"use strict";
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __read = (this && this.__read) || function (o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    }
    catch (error) { e = { error: error }; }
    finally {
        try {
            if (r && !r.done && (m = i["return"])) m.call(i);
        }
        finally { if (e) throw e.error; }
    }
    return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getResolveIOPlatformSharedMemoryCorpus = getResolveIOPlatformSharedMemoryCorpus;
exports.getResolveIOPlatformSharedDurableMemoryEntries = getResolveIOPlatformSharedDurableMemoryEntries;
var RESOLVEIO_PLATFORM_SHARED_MEMORY_CORPUS = Object.freeze([
    {
        family: 'rio-select',
        kind: 'accepted_pattern',
        summary: 'Preserve the existing `[options]` plus `optionLabelFn` or `optionLabelKey` contract when it already fits, and debug the label refresh pipeline before changing control mode.',
        tags: ['rio-select', 'options', 'optionlabelfn', 'optionlabelkey', 'select', 'performance'],
        matchTerms: ['rio-select', '[options]', 'optionLabelFn', 'optionLabelKey', 'rio-option', 'selected label', 'no options'],
        priority: 120
    },
    {
        family: 'rio-select',
        kind: 'rejected_fix_shape',
        summary: 'Do not rewrite an existing `[options]` control to projected `<rio-option>` children or mix both modes on the same control as a shortcut fix.',
        tags: ['rio-select', 'options', 'rio-option', 'select'],
        matchTerms: ['rio-select', '[options]', '<rio-option>', 'projected option', 'mixed mode'],
        priority: 118
    },
    {
        family: 'rio-select',
        kind: 'contract_violation',
        summary: 'Mixing `[options]` with projected `<rio-option>` children on the same `rio-select` is an invalid ResolveIO library contract.',
        tags: ['rio-select', 'options', 'rio-option', 'contract'],
        matchTerms: ['rio-select', '[options]', '<rio-option>', 'invalid contract'],
        priority: 118
    },
    {
        family: 'rio-date-picker',
        kind: 'contract_violation',
        summary: 'Do not apply Bootstrap `form-control` directly to `rio-date-picker`; keep component-specific styling so the shared control behavior remains intact.',
        tags: ['rio-date-picker', 'form-control', 'bootstrap', 'styling'],
        matchTerms: ['rio-date-picker', 'form-control', 'date picker'],
        priority: 76
    },
    {
        family: 'resolveio-list-template',
        kind: 'accepted_pattern',
        summary: 'For list filters, prefer distinct-backed options from real collection data and preserve an explicit `All` option instead of hardcoding dataset-driven filter values.',
        tags: ['resolveio-list-template', 'filter', 'distinct', 'list', 'all-option'],
        matchTerms: ['resolveio-list-template', 'distinct filter', 'optionsDistinctKey', 'All option', 'filter dropdown'],
        priority: 70
    },
    {
        family: 'generated-method-publication',
        kind: 'accepted_pattern',
        summary: 'Edit the real server method or publication definitions first, then regenerate Angular socket artifacts and verify the callers.',
        tags: ['methods.ts', 'publications.ts', 'generated', 'socket', 'regeneration'],
        matchTerms: ['angular/app/methods.ts', 'angular/app/publications.ts', 'generated socket', 'method signature', 'publication signature'],
        priority: 110
    },
    {
        family: 'generated-method-publication',
        kind: 'contract_violation',
        summary: 'Hand-editing generated `angular/app/methods.ts` or `angular/app/publications.ts` breaks the generated-file contract.',
        tags: ['methods.ts', 'publications.ts', 'generated', 'contract'],
        matchTerms: ['angular/app/methods.ts', 'angular/app/publications.ts', 'generated file'],
        priority: 109
    },
    {
        family: 'shared-library-ownership',
        kind: 'accepted_pattern',
        summary: 'When the root cause belongs in a shared ResolveIO library, fix the source library and preserve downstream app contracts instead of patching each app separately.',
        tags: ['resolveio-client-lib', 'resolveio-server-lib', 'shared library', 'ownership'],
        matchTerms: ['resolveio-client-lib', 'resolveio-server-lib', 'shared library', '@resolveio/', 'library bug'],
        priority: 115
    },
    {
        family: 'shared-library-ownership',
        kind: 'rejected_fix_shape',
        summary: 'Do not use `patch-package`, `node_modules` edits, or app-local dependency patches as the final fix for `@resolveio/*` library defects.',
        tags: ['patch-package', 'node_modules', 'shared library', 'dependency patch'],
        matchTerms: ['patch-package', 'node_modules', '@resolveio/', 'local dependency patch'],
        priority: 114
    },
    {
        family: 'identifier-contract',
        kind: 'accepted_pattern',
        summary: 'Keep ResolveIO `_id` and `id_*` values string-compatible across server, Angular, and shared-library contracts unless verified external integration code proves otherwise.',
        tags: ['_id', 'id_', 'string', 'contract'],
        matchTerms: ['_id', 'ObjectId', 'object id', 'id_client', 'id_', 'string id'],
        priority: 112
    },
    {
        family: 'identifier-contract',
        kind: 'contract_violation',
        summary: 'ResolveIO app `_id` and `id_*` contracts are string-based; introducing Mongo `ObjectId` assumptions is a cross-run contract break.',
        tags: ['_id', 'id_', 'string', 'ObjectId', 'contract'],
        matchTerms: ['ObjectId', 'object id', '_id', 'id_'],
        priority: 112
    },
    {
        family: 'collection-inference',
        kind: 'accepted_pattern',
        summary: 'Map business-language ticket or user wording to the real collection, route, workflow, or module yourself, then verify that mapping in code or live data before editing.',
        tags: ['collection', 'workflow', 'route', 'mapping', 'business language'],
        matchTerms: ['business language', 'workflow', 'route', 'collection', 'map the issue'],
        priority: 88
    },
    {
        family: 'report-builder',
        kind: 'accepted_pattern',
        summary: 'Resolve the collection and `permissionView`, then use `REPORT_BUILDER_READ` or `REPORT_BUILDER_AGG` plus tiny probes before concluding there is no data.',
        tags: ['report-builder', 'permissionView', 'REPORT_BUILDER_READ', 'REPORT_BUILDER_AGG', 'query'],
        matchTerms: ['REPORT_BUILDER_READ', 'REPORT_BUILDER_AGG', 'permissionView', 'report builder', 'no data'],
        priority: 96
    },
    {
        family: 'report-builder',
        kind: 'rejected_fix_shape',
        summary: 'Do not jump straight to raw unrestricted collection queries or version collections when a scoped report-builder bridge can answer the request safely.',
        tags: ['report-builder', 'query', 'versions', 'raw collection'],
        matchTerms: ['raw collection query', '.versions', 'report builder', 'permissionView'],
        priority: 92
    },
    {
        family: 'execution-quality',
        kind: 'accepted_pattern',
        summary: 'Build an evidence-to-fix chain on the real failing path, copy the minimal proven comparator delta when needed, and verify the behavior after the code change.',
        tags: ['verification', 'failing path', 'comparator', 'evidence'],
        matchTerms: ['failing path', 'working comparator', 'verify the fix', 'evidence-to-fix'],
        priority: 100
    },
    {
        family: 'execution-quality',
        kind: 'rejected_fix_shape',
        summary: 'Whitespace-only, formatting-only, comment-only, analyzer-only, or placeholder-text-only diffs do not count as finished fixes when the reported behavior is still unchanged.',
        tags: ['whitespace', 'formatting', 'noise', 'placeholder', 'fake fix'],
        matchTerms: ['whitespace', 'formatting only', 'placeholder text', 'no real fix', 'fake fix'],
        priority: 100
    },
    {
        family: 'feature-module-generation',
        kind: 'accepted_pattern',
        summary: 'Generate full feature-module wiring with real routes, permissions, services, data flow, and working list/new/edit/detail surfaces instead of partial placeholders.',
        tags: ['feature module', 'routing', 'permission', 'service', 'list', 'detail'],
        matchTerms: ['feature module', 'routing', 'permission', 'manage module', 'list/new/edit/detail'],
        priority: 74
    },
    {
        family: 'dashboard-hub',
        kind: 'contract_violation',
        summary: 'Generic hub placeholder copy, dead quick actions, and fake dashboard links are not acceptable finished ResolveIO dashboard work.',
        tags: ['dashboard', 'hub', 'quick action', 'placeholder', 'dead link'],
        matchTerms: ['dashboard hub', 'quick action', 'placeholder dashboard', 'dead link'],
        priority: 68
    },
    {
        family: 'auth-shell',
        kind: 'rejected_fix_shape',
        summary: 'Do not add stray customer login/signup flows or generic chooser shells to normal staff apps when the request does not require a customer-portal auth split.',
        tags: ['auth', 'staff app', 'customer portal', 'login'],
        matchTerms: ['customer portal login', 'staff app login', 'chooser flow', 'signup flow'],
        priority: 62
    }
]);
function cloneDurableEntry(entry) {
    return {
        family: entry.family,
        kind: entry.kind,
        summary: entry.summary,
        modes: Array.isArray(entry.modes) ? __spreadArray([], __read(entry.modes), false) : [],
        tags: Array.isArray(entry.tags) ? __spreadArray([], __read(entry.tags), false) : []
    };
}
function cloneSharedEntry(entry) {
    return __assign(__assign({}, cloneDurableEntry(entry)), { matchTerms: Array.isArray(entry.matchTerms) ? __spreadArray([], __read(entry.matchTerms), false) : [], priority: Number(entry.priority || 0) });
}
function getResolveIOPlatformSharedMemoryCorpus() {
    return RESOLVEIO_PLATFORM_SHARED_MEMORY_CORPUS.map(cloneSharedEntry);
}
function getResolveIOPlatformSharedDurableMemoryEntries() {
    return RESOLVEIO_PLATFORM_SHARED_MEMORY_CORPUS.map(cloneDurableEntry);
}

//# sourceMappingURL=resolveio-platform-intelligence-memory-corpus.js.map
