@resolveio/server-lib 22.2.44 → 22.2.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ type AiAssistantCoreTermHint = {
3
3
  collections: string[];
4
4
  };
5
5
  export declare const AI_ASSISTANT_CORE_HEURISTICS: Readonly<{
6
- version: 2;
6
+ version: 3;
7
7
  collection_aliases: Record<string, string>;
8
8
  collection_alias_options: Record<string, string[]>;
9
9
  collection_term_hints: AiAssistantCoreTermHint[];
@@ -92,7 +92,7 @@ function buildCollectionNameTerms(collection) {
92
92
  : normalized;
93
93
  var tokens = withoutReportPrefix.split(/[-_.]+/g).filter(Boolean);
94
94
  var singularTokens = tokens.map(singularizeToken).filter(Boolean);
95
- var terms = uniqueStrings([
95
+ return uniqueStrings([
96
96
  normalized,
97
97
  withoutReportPrefix,
98
98
  withoutReportPrefix.replace(/[-_.]+/g, ' '),
@@ -101,7 +101,6 @@ function buildCollectionNameTerms(collection) {
101
101
  singularTokens.join(' '),
102
102
  singularTokens.join('')
103
103
  ]);
104
- return terms;
105
104
  }
106
105
  function buildCollectionTermHintsFromCandidates(collections) {
107
106
  return uniqueCollections(collections).map(function (collection) { return ({
@@ -123,23 +122,7 @@ var REPORT_COLLECTION_HINT_CANDIDATES = uniqueCollections([
123
122
  'saved-reports',
124
123
  'qb-reports',
125
124
  'dashboard-configs',
126
- 'dashboard-widgets',
127
- 'report-chemical-blends',
128
- 'inventory-reports',
129
- 'incident-reports',
130
- 'field-reports',
131
- 'fmc-daily-reports'
132
- ]);
133
- var SUPPORT_COLLECTION_HINT_CANDIDATES = uniqueCollections([
134
- 'support-tickets',
135
- 'tickets',
136
- 'delivery-tickets',
137
- 'field-tickets',
138
- 'return-tickets',
139
- 'pick-tickets',
140
- 'service-field-tickets',
141
- 'notes',
142
- 'tasks'
125
+ 'dashboard-widgets'
143
126
  ]);
144
127
  var AUTH_COLLECTION_HINT_CANDIDATES = uniqueCollections([
145
128
  'users',
@@ -157,9 +140,6 @@ var PERMISSION_NAV_COLLECTION_HINT_CANDIDATES = uniqueCollections([
157
140
  'permissions',
158
141
  'role-permissions',
159
142
  'user-groups',
160
- 'clients',
161
- 'client-types',
162
- 'systems',
163
143
  'dashboard-configs',
164
144
  'homepage-configs',
165
145
  'homepage-sections'
@@ -181,7 +161,6 @@ var SYSTEM_COLLECTION_HINT_CANDIDATES = uniqueCollections([
181
161
  'settings',
182
162
  'configs',
183
163
  'company-secrets',
184
- 'distributions',
185
164
  'ai-coder-apps',
186
165
  'ai-development-jobs',
187
166
  'build-instance-logs',
@@ -194,28 +173,8 @@ var SYSTEM_COLLECTION_HINT_CANDIDATES = uniqueCollections([
194
173
  'aws-heartbeats',
195
174
  'aws-app-versions'
196
175
  ]);
197
- var TABLE_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES, ['invoices', 'orders', 'work-order-dynamics', 'work-orders']);
198
- var REVENUE_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(['invoices', 'orders', 'sales-orders', 'purchase-orders'], REPORT_COLLECTION_HINT_CANDIDATES);
199
- var PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(['orders', 'purchase-orders', 'sales-orders', 'work-order-dynamics'], REPORT_COLLECTION_HINT_CANDIDATES);
200
- var CHEMICAL_COLLECTION_HINT_CANDIDATES = mergeCollectionLists([
201
- 'chemicals',
202
- 'chemical-blends',
203
- 'chemical-activities',
204
- 'chemical-inventory-snapshots',
205
- 'chemical-inventory-adjustments',
206
- 'chemical-receives',
207
- 'chemical-reconciles',
208
- 'chemical-transactions',
209
- 'chemical-transfers',
210
- 'products',
211
- 'items',
212
- 'inventory',
213
- 'blends'
214
- ], REPORT_COLLECTION_HINT_CANDIDATES);
215
- var WORK_ORDER_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(['work-order-dynamics', 'work-orders', 'maintenance-orders', 'repair-orders', 'orders', 'jobs'], REPORT_COLLECTION_HINT_CANDIDATES);
216
- var CREDIT_MEMO_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(['qb-credit-memos', 'credit-memos', 'invoices'], REPORT_COLLECTION_HINT_CANDIDATES);
176
+ var TABLE_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES);
217
177
  var NAV_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(PERMISSION_NAV_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES, ['modules', 'menus', 'navigation-items']);
218
- // Permission/role language should resolve through user collections first.
219
178
  var USER_PERMISSION_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(['users', 'client-users', 'billing-logged-in-users'], AUTH_COLLECTION_HINT_CANDIDATES, PERMISSION_NAV_COLLECTION_HINT_CANDIDATES);
220
179
  var AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS = {
221
180
  report: REPORT_COLLECTION_HINT_CANDIDATES,
@@ -238,41 +197,6 @@ var AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS = {
238
197
  graphs: REPORT_COLLECTION_HINT_CANDIDATES,
239
198
  visualization: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),
240
199
  visualizations: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),
241
- revenue: REVENUE_COLLECTION_HINT_CANDIDATES,
242
- revenues: REVENUE_COLLECTION_HINT_CANDIDATES,
243
- salesrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,
244
- grossrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,
245
- netrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,
246
- totalrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,
247
- invoice: REVENUE_COLLECTION_HINT_CANDIDATES,
248
- invoices: REVENUE_COLLECTION_HINT_CANDIDATES,
249
- billing: REVENUE_COLLECTION_HINT_CANDIDATES,
250
- billings: REVENUE_COLLECTION_HINT_CANDIDATES,
251
- accountsreceivable: REVENUE_COLLECTION_HINT_CANDIDATES,
252
- accountsreceivables: REVENUE_COLLECTION_HINT_CANDIDATES,
253
- araging: REVENUE_COLLECTION_HINT_CANDIDATES,
254
- inv: REVENUE_COLLECTION_HINT_CANDIDATES,
255
- invs: REVENUE_COLLECTION_HINT_CANDIDATES,
256
- po: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,
257
- pos: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,
258
- purchaseorder: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,
259
- purchaseorders: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,
260
- poreport: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,
261
- popending: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,
262
- chemical: CHEMICAL_COLLECTION_HINT_CANDIDATES,
263
- chemicals: CHEMICAL_COLLECTION_HINT_CANDIDATES,
264
- chem: CHEMICAL_COLLECTION_HINT_CANDIDATES,
265
- chems: CHEMICAL_COLLECTION_HINT_CANDIDATES,
266
- blend: CHEMICAL_COLLECTION_HINT_CANDIDATES,
267
- blends: CHEMICAL_COLLECTION_HINT_CANDIDATES,
268
- workorder: WORK_ORDER_COLLECTION_HINT_CANDIDATES,
269
- workorders: WORK_ORDER_COLLECTION_HINT_CANDIDATES,
270
- wo: WORK_ORDER_COLLECTION_HINT_CANDIDATES,
271
- wos: WORK_ORDER_COLLECTION_HINT_CANDIDATES,
272
- creditmemo: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,
273
- creditmemos: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,
274
- creditnote: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,
275
- creditnotes: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,
276
200
  widget: UI_WIDGET_COLLECTION_HINT_CANDIDATES,
277
201
  widgets: UI_WIDGET_COLLECTION_HINT_CANDIDATES,
278
202
  collapsetable: TABLE_COLLECTION_HINT_CANDIDATES,
@@ -285,8 +209,6 @@ var AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS = {
285
209
  datatables: TABLE_COLLECTION_HINT_CANDIDATES,
286
210
  datagrid: TABLE_COLLECTION_HINT_CANDIDATES,
287
211
  datagrids: TABLE_COLLECTION_HINT_CANDIDATES,
288
- gridtable: TABLE_COLLECTION_HINT_CANDIDATES,
289
- gridtables: TABLE_COLLECTION_HINT_CANDIDATES,
290
212
  navbar: NAV_COLLECTION_HINT_CANDIDATES,
291
213
  navbars: NAV_COLLECTION_HINT_CANDIDATES,
292
214
  navbarmain: NAV_COLLECTION_HINT_CANDIDATES,
@@ -299,16 +221,6 @@ var AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS = {
299
221
  menus: NAV_COLLECTION_HINT_CANDIDATES,
300
222
  modulemenu: NAV_COLLECTION_HINT_CANDIDATES,
301
223
  modulemenus: NAV_COLLECTION_HINT_CANDIDATES,
302
- supportticket: SUPPORT_COLLECTION_HINT_CANDIDATES,
303
- supporttickets: SUPPORT_COLLECTION_HINT_CANDIDATES,
304
- helpdesk: SUPPORT_COLLECTION_HINT_CANDIDATES,
305
- servicedesk: SUPPORT_COLLECTION_HINT_CANDIDATES,
306
- ticket: SUPPORT_COLLECTION_HINT_CANDIDATES,
307
- tickets: SUPPORT_COLLECTION_HINT_CANDIDATES,
308
- issue: SUPPORT_COLLECTION_HINT_CANDIDATES,
309
- issues: SUPPORT_COLLECTION_HINT_CANDIDATES,
310
- bug: SUPPORT_COLLECTION_HINT_CANDIDATES,
311
- bugs: SUPPORT_COLLECTION_HINT_CANDIDATES,
312
224
  login: AUTH_COLLECTION_HINT_CANDIDATES,
313
225
  logins: AUTH_COLLECTION_HINT_CANDIDATES,
314
226
  signin: AUTH_COLLECTION_HINT_CANDIDATES,
@@ -373,93 +285,6 @@ var AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS = [
373
285
  ],
374
286
  collections: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES)
375
287
  },
376
- {
377
- terms: [
378
- 'revenue',
379
- 'total revenue',
380
- 'gross revenue',
381
- 'net revenue',
382
- 'sales revenue',
383
- 'billing revenue',
384
- 'monthly revenue',
385
- 'revenue by customer',
386
- 'revenue by month',
387
- 'invoice revenue',
388
- 'accounts receivable',
389
- 'ar aging',
390
- 'open invoices',
391
- 'outstanding invoices',
392
- 'inv',
393
- 'invs'
394
- ],
395
- collections: REVENUE_COLLECTION_HINT_CANDIDATES
396
- },
397
- {
398
- terms: [
399
- 'po',
400
- 'pos',
401
- 'open po',
402
- 'open pos',
403
- 'pending po',
404
- 'purchase order',
405
- 'purchase orders',
406
- 'po list',
407
- 'po status',
408
- 'po approval',
409
- 'purchase approvals',
410
- 'procurement order'
411
- ],
412
- collections: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES
413
- },
414
- {
415
- terms: [
416
- 'chemical',
417
- 'chemicals',
418
- 'chem',
419
- 'chems',
420
- 'chemical inventory',
421
- 'chemical blend',
422
- 'blend inventory',
423
- 'blend usage'
424
- ],
425
- collections: CHEMICAL_COLLECTION_HINT_CANDIDATES
426
- },
427
- {
428
- terms: [
429
- 'work order',
430
- 'work orders',
431
- 'workorder',
432
- 'workorders',
433
- 'wo',
434
- 'wos',
435
- 'open work orders',
436
- 'completed work orders'
437
- ],
438
- collections: WORK_ORDER_COLLECTION_HINT_CANDIDATES
439
- },
440
- {
441
- terms: [
442
- 'credit memo',
443
- 'credit memos',
444
- 'creditmemo',
445
- 'creditmemos',
446
- 'credit note',
447
- 'credit notes'
448
- ],
449
- collections: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES
450
- },
451
- {
452
- terms: [
453
- 'support ticket',
454
- 'support tickets',
455
- 'help desk',
456
- 'service desk',
457
- 'customer issue',
458
- 'issue ticket',
459
- 'bug ticket'
460
- ],
461
- collections: SUPPORT_COLLECTION_HINT_CANDIDATES
462
- },
463
288
  {
464
289
  terms: [
465
290
  'login issue',
@@ -514,7 +339,7 @@ var AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS = [
514
339
  collections: SYSTEM_COLLECTION_HINT_CANDIDATES
515
340
  }
516
341
  ];
517
- var AI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES = uniqueCollections(mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, SUPPORT_COLLECTION_HINT_CANDIDATES, AUTH_COLLECTION_HINT_CANDIDATES, PERMISSION_NAV_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES, SYSTEM_COLLECTION_HINT_CANDIDATES, TABLE_COLLECTION_HINT_CANDIDATES, NAV_COLLECTION_HINT_CANDIDATES, Object.values(AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS)
342
+ var AI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES = uniqueCollections(mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, AUTH_COLLECTION_HINT_CANDIDATES, PERMISSION_NAV_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES, SYSTEM_COLLECTION_HINT_CANDIDATES, TABLE_COLLECTION_HINT_CANDIDATES, NAV_COLLECTION_HINT_CANDIDATES, Object.values(AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS)
518
343
  .reduce(function (acc, group) { return acc.concat(group || []); }, [])));
519
344
  var AI_ASSISTANT_CORE_COLLECTION_TERM_HINTS = buildCollectionTermHintsFromCandidates(AI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES);
520
345
  var AI_ASSISTANT_CORE_TERM_HINTS = __spreadArray(__spreadArray([], __read(AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS), false), __read(AI_ASSISTANT_CORE_COLLECTION_TERM_HINTS), false).map(function (entry) { return ({
@@ -522,7 +347,7 @@ var AI_ASSISTANT_CORE_TERM_HINTS = __spreadArray(__spreadArray([], __read(AI_ASS
522
347
  collections: uniqueCollections(entry.collections || [])
523
348
  }); }).filter(function (entry) { return entry.terms.length && entry.collections.length; });
524
349
  exports.AI_ASSISTANT_CORE_HEURISTICS = Object.freeze({
525
- version: 2,
350
+ version: 3,
526
351
  collection_aliases: AI_ASSISTANT_CORE_COLLECTION_ALIASES,
527
352
  collection_alias_options: AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS,
528
353
  collection_term_hints: AI_ASSISTANT_CORE_TERM_HINTS
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ai/assistant-core-heuristics.ts"],"names":[],"mappings":"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","file":"assistant-core-heuristics.js","sourcesContent":["type AiAssistantCoreTermHint = {\n\tterms: string[];\n\tcollections: string[];\n};\n\nfunction normalizeTerm(value: string): string {\n\treturn String(value || '')\n\t\t.trim()\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, ' ');\n}\n\nfunction uniqueStrings(values: string[]): string[] {\n\tconst seen = new Set<string>();\n\tconst unique: string[] = [];\n\t(values || []).forEach((value) => {\n\t\tconst normalized = normalizeTerm(value);\n\t\tif (!normalized || seen.has(normalized)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(normalized);\n\t\tunique.push(normalized);\n\t});\n\treturn unique;\n}\n\nfunction uniqueCollections(values: string[]): string[] {\n\tconst seen = new Set<string>();\n\tconst unique: string[] = [];\n\t(values || []).forEach((value) => {\n\t\tconst normalized = normalizeTerm(value).replace(/[^a-z0-9._-]/g, '');\n\t\tif (!normalized || seen.has(normalized)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(normalized);\n\t\tunique.push(normalized);\n\t});\n\treturn unique;\n}\n\nfunction mergeCollectionLists(...groups: string[][]): string[] {\n\treturn uniqueCollections(\n\t\t(groups || []).reduce((acc, group) => acc.concat(Array.isArray(group) ? group : []), [] as string[])\n\t);\n}\n\nfunction singularizeToken(token: string): string {\n\tconst normalized = normalizeTerm(token);\n\tif (!normalized) {\n\t\treturn '';\n\t}\n\tif (normalized.endsWith('ies') && normalized.length > 4) {\n\t\treturn `${normalized.slice(0, -3)}y`;\n\t}\n\tif (\n\t\tnormalized.length > 4\n\t\t&& normalized.endsWith('s')\n\t\t&& !normalized.endsWith('ss')\n\t\t&& !normalized.endsWith('us')\n\t\t&& !normalized.endsWith('is')\n\t) {\n\t\treturn normalized.slice(0, -1);\n\t}\n\treturn normalized;\n}\n\nfunction buildCollectionNameTerms(collection: string): string[] {\n\tconst normalized = normalizeTerm(collection).replace(/[^a-z0-9._-]/g, '');\n\tif (!normalized) {\n\t\treturn [];\n\t}\n\tconst withoutReportPrefix = normalized.startsWith('report-')\n\t\t? normalized.slice('report-'.length)\n\t\t: normalized;\n\tconst tokens = withoutReportPrefix.split(/[-_.]+/g).filter(Boolean);\n\tconst singularTokens = tokens.map(singularizeToken).filter(Boolean);\n\tconst terms = uniqueStrings([\n\t\tnormalized,\n\t\twithoutReportPrefix,\n\t\twithoutReportPrefix.replace(/[-_.]+/g, ' '),\n\t\twithoutReportPrefix.replace(/[-_.]+/g, ''),\n\t\tsingularTokens.join('-'),\n\t\tsingularTokens.join(' '),\n\t\tsingularTokens.join('')\n\t]);\n\treturn terms;\n}\n\nfunction buildCollectionTermHintsFromCandidates(collections: string[]): AiAssistantCoreTermHint[] {\n\treturn uniqueCollections(collections).map((collection) => ({\n\t\tterms: buildCollectionNameTerms(collection),\n\t\tcollections: [collection]\n\t}));\n}\n\nconst REPORT_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'reports',\n\t'report-templates',\n\t'report-layouts',\n\t'report-builder-configs',\n\t'report-builder-layouts',\n\t'report-dashboards',\n\t'report-widgets',\n\t'report-favorites',\n\t'report-schedules',\n\t'report-runs',\n\t'saved-reports',\n\t'qb-reports',\n\t'dashboard-configs',\n\t'dashboard-widgets',\n\t'report-chemical-blends',\n\t'inventory-reports',\n\t'incident-reports',\n\t'field-reports',\n\t'fmc-daily-reports'\n]);\n\nconst SUPPORT_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'support-tickets',\n\t'tickets',\n\t'delivery-tickets',\n\t'field-tickets',\n\t'return-tickets',\n\t'pick-tickets',\n\t'service-field-tickets',\n\t'notes',\n\t'tasks'\n]);\n\nconst AUTH_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'users',\n\t'client-users',\n\t'billing-logged-in-users',\n\t'customer-auth-accounts',\n\t'customer-auth-sessions',\n\t'customer-portal-accounts',\n\t'customer-portal-sessions',\n\t'customer-portal-invites',\n\t'owners'\n]);\n\nconst PERMISSION_NAV_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'roles',\n\t'permissions',\n\t'role-permissions',\n\t'user-groups',\n\t'clients',\n\t'client-types',\n\t'systems',\n\t'dashboard-configs',\n\t'homepage-configs',\n\t'homepage-sections'\n]);\n\nconst UI_WIDGET_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'dashboard-widgets',\n\t'report-widgets',\n\t'report-layouts',\n\t'report-templates',\n\t'dashboard-configs',\n\t'homepage-configs',\n\t'homepage-sections',\n\t'homepage-announcements',\n\t'ai-assist-configs',\n\t'systems'\n]);\n\nconst SYSTEM_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'systems',\n\t'settings',\n\t'configs',\n\t'company-secrets',\n\t'distributions',\n\t'ai-coder-apps',\n\t'ai-development-jobs',\n\t'build-instance-logs',\n\t'error-autofix-logs',\n\t'slow-query-logs',\n\t'work-logs',\n\t'crm-usage-logs',\n\t'mongo-performance-metrics',\n\t'mongo-snapshots',\n\t'aws-heartbeats',\n\t'aws-app-versions'\n]);\n\nconst TABLE_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\tREPORT_COLLECTION_HINT_CANDIDATES,\n\tUI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\t['invoices', 'orders', 'work-order-dynamics', 'work-orders']\n);\n\nconst REVENUE_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t['invoices', 'orders', 'sales-orders', 'purchase-orders'],\n\tREPORT_COLLECTION_HINT_CANDIDATES\n);\n\nconst PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t['orders', 'purchase-orders', 'sales-orders', 'work-order-dynamics'],\n\tREPORT_COLLECTION_HINT_CANDIDATES\n);\n\nconst CHEMICAL_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t[\n\t\t'chemicals',\n\t\t'chemical-blends',\n\t\t'chemical-activities',\n\t\t'chemical-inventory-snapshots',\n\t\t'chemical-inventory-adjustments',\n\t\t'chemical-receives',\n\t\t'chemical-reconciles',\n\t\t'chemical-transactions',\n\t\t'chemical-transfers',\n\t\t'products',\n\t\t'items',\n\t\t'inventory',\n\t\t'blends'\n\t],\n\tREPORT_COLLECTION_HINT_CANDIDATES\n);\n\nconst WORK_ORDER_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t['work-order-dynamics', 'work-orders', 'maintenance-orders', 'repair-orders', 'orders', 'jobs'],\n\tREPORT_COLLECTION_HINT_CANDIDATES\n);\n\nconst CREDIT_MEMO_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t['qb-credit-memos', 'credit-memos', 'invoices'],\n\tREPORT_COLLECTION_HINT_CANDIDATES\n);\n\nconst NAV_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\tPERMISSION_NAV_COLLECTION_HINT_CANDIDATES,\n\tUI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\t['modules', 'menus', 'navigation-items']\n);\n\n// Permission/role language should resolve through user collections first.\nconst USER_PERMISSION_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t['users', 'client-users', 'billing-logged-in-users'],\n\tAUTH_COLLECTION_HINT_CANDIDATES,\n\tPERMISSION_NAV_COLLECTION_HINT_CANDIDATES\n);\n\nconst AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS: Record<string, string[]> = {\n\treport: REPORT_COLLECTION_HINT_CANDIDATES,\n\treports: REPORT_COLLECTION_HINT_CANDIDATES,\n\treporting: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportbuilder: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportbuilders: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportdesigner: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportdesigners: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportschema: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportschemas: REPORT_COLLECTION_HINT_CANDIDATES,\n\tdashboard: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\tdashboards: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\tanalytics: REPORT_COLLECTION_HINT_CANDIDATES,\n\tkpi: REPORT_COLLECTION_HINT_CANDIDATES,\n\tkpis: REPORT_COLLECTION_HINT_CANDIDATES,\n\tchart: REPORT_COLLECTION_HINT_CANDIDATES,\n\tcharts: REPORT_COLLECTION_HINT_CANDIDATES,\n\tgraph: REPORT_COLLECTION_HINT_CANDIDATES,\n\tgraphs: REPORT_COLLECTION_HINT_CANDIDATES,\n\tvisualization: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\tvisualizations: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\trevenue: REVENUE_COLLECTION_HINT_CANDIDATES,\n\trevenues: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tsalesrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tgrossrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tnetrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,\n\ttotalrevenue: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tinvoice: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tinvoices: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tbilling: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tbillings: REVENUE_COLLECTION_HINT_CANDIDATES,\n\taccountsreceivable: REVENUE_COLLECTION_HINT_CANDIDATES,\n\taccountsreceivables: REVENUE_COLLECTION_HINT_CANDIDATES,\n\taraging: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tinv: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tinvs: REVENUE_COLLECTION_HINT_CANDIDATES,\n\tpo: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,\n\tpos: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,\n\tpurchaseorder: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,\n\tpurchaseorders: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,\n\tporeport: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,\n\tpopending: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES,\n\tchemical: CHEMICAL_COLLECTION_HINT_CANDIDATES,\n\tchemicals: CHEMICAL_COLLECTION_HINT_CANDIDATES,\n\tchem: CHEMICAL_COLLECTION_HINT_CANDIDATES,\n\tchems: CHEMICAL_COLLECTION_HINT_CANDIDATES,\n\tblend: CHEMICAL_COLLECTION_HINT_CANDIDATES,\n\tblends: CHEMICAL_COLLECTION_HINT_CANDIDATES,\n\tworkorder: WORK_ORDER_COLLECTION_HINT_CANDIDATES,\n\tworkorders: WORK_ORDER_COLLECTION_HINT_CANDIDATES,\n\two: WORK_ORDER_COLLECTION_HINT_CANDIDATES,\n\twos: WORK_ORDER_COLLECTION_HINT_CANDIDATES,\n\tcreditmemo: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,\n\tcreditmemos: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,\n\tcreditnote: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,\n\tcreditnotes: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES,\n\twidget: UI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\twidgets: UI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\tcollapsetable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tcollapsetables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tcollapsibletable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tcollapsibletables: TABLE_COLLECTION_HINT_CANDIDATES,\n\texpandabletable: TABLE_COLLECTION_HINT_CANDIDATES,\n\texpandabletables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatatable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatatables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatagrid: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatagrids: TABLE_COLLECTION_HINT_CANDIDATES,\n\tgridtable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tgridtables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tnavbar: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavbars: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavbarmain: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavbarmodule: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavigation: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavigations: NAV_COLLECTION_HINT_CANDIDATES,\n\tsidebar: NAV_COLLECTION_HINT_CANDIDATES,\n\tsidebars: NAV_COLLECTION_HINT_CANDIDATES,\n\tmenu: NAV_COLLECTION_HINT_CANDIDATES,\n\tmenus: NAV_COLLECTION_HINT_CANDIDATES,\n\tmodulemenu: NAV_COLLECTION_HINT_CANDIDATES,\n\tmodulemenus: NAV_COLLECTION_HINT_CANDIDATES,\n\tsupportticket: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tsupporttickets: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\thelpdesk: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tservicedesk: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tticket: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\ttickets: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tissue: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tissues: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tbug: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tbugs: SUPPORT_COLLECTION_HINT_CANDIDATES,\n\tlogin: AUTH_COLLECTION_HINT_CANDIDATES,\n\tlogins: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsignin: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsignins: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsigninpage: AUTH_COLLECTION_HINT_CANDIDATES,\n\tauthentication: AUTH_COLLECTION_HINT_CANDIDATES,\n\tauth: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsession: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsessions: AUTH_COLLECTION_HINT_CANDIDATES,\n\tpermission: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\tpermissions: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\trole: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\troles: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\taccess: mergeCollectionLists(USER_PERMISSION_COLLECTION_HINT_CANDIDATES, AUTH_COLLECTION_HINT_CANDIDATES),\n\tauthorization: mergeCollectionLists(USER_PERMISSION_COLLECTION_HINT_CANDIDATES, AUTH_COLLECTION_HINT_CANDIDATES),\n\tsystem: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tsystems: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tsetting: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tsettings: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfig: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfigs: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfiguration: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfigurations: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\taudit: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\taudits: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tlog: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tlogs: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tnotification: mergeCollectionLists(SYSTEM_COLLECTION_HINT_CANDIDATES, ['user-notifications']),\n\tnotifications: mergeCollectionLists(SYSTEM_COLLECTION_HINT_CANDIDATES, ['user-notifications'])\n};\n\nconst AI_ASSISTANT_CORE_COLLECTION_ALIASES: Record<string, string> = Object.keys(AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS)\n\t.reduce((acc, key) => {\n\t\tconst options = AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS[key] || [];\n\t\tconst best = options[0];\n\t\tif (best) {\n\t\t\tacc[key] = best;\n\t\t}\n\t\treturn acc;\n\t}, {} as Record<string, string>);\n\nconst AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS: AiAssistantCoreTermHint[] = [\n\t{\n\t\tterms: [\n\t\t\t'report builder',\n\t\t\t'report builder schema',\n\t\t\t'report schema',\n\t\t\t'report designer',\n\t\t\t'build report',\n\t\t\t'custom report',\n\t\t\t'report filters',\n\t\t\t'report columns',\n\t\t\t'report query'\n\t\t],\n\t\tcollections: REPORT_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'dashboard report',\n\t\t\t'dashboard widget',\n\t\t\t'analytics dashboard',\n\t\t\t'kpi dashboard',\n\t\t\t'chart dashboard'\n\t\t],\n\t\tcollections: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES)\n\t},\n\t{\n\t\tterms: [\n\t\t\t'revenue',\n\t\t\t'total revenue',\n\t\t\t'gross revenue',\n\t\t\t'net revenue',\n\t\t\t'sales revenue',\n\t\t\t'billing revenue',\n\t\t\t'monthly revenue',\n\t\t\t'revenue by customer',\n\t\t\t'revenue by month',\n\t\t\t'invoice revenue',\n\t\t\t'accounts receivable',\n\t\t\t'ar aging',\n\t\t\t'open invoices',\n\t\t\t'outstanding invoices',\n\t\t\t'inv',\n\t\t\t'invs'\n\t\t],\n\t\tcollections: REVENUE_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'po',\n\t\t\t'pos',\n\t\t\t'open po',\n\t\t\t'open pos',\n\t\t\t'pending po',\n\t\t\t'purchase order',\n\t\t\t'purchase orders',\n\t\t\t'po list',\n\t\t\t'po status',\n\t\t\t'po approval',\n\t\t\t'purchase approvals',\n\t\t\t'procurement order'\n\t\t],\n\t\tcollections: PURCHASE_ORDER_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'chemical',\n\t\t\t'chemicals',\n\t\t\t'chem',\n\t\t\t'chems',\n\t\t\t'chemical inventory',\n\t\t\t'chemical blend',\n\t\t\t'blend inventory',\n\t\t\t'blend usage'\n\t\t],\n\t\tcollections: CHEMICAL_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'work order',\n\t\t\t'work orders',\n\t\t\t'workorder',\n\t\t\t'workorders',\n\t\t\t'wo',\n\t\t\t'wos',\n\t\t\t'open work orders',\n\t\t\t'completed work orders'\n\t\t],\n\t\tcollections: WORK_ORDER_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'credit memo',\n\t\t\t'credit memos',\n\t\t\t'creditmemo',\n\t\t\t'creditmemos',\n\t\t\t'credit note',\n\t\t\t'credit notes'\n\t\t],\n\t\tcollections: CREDIT_MEMO_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'support ticket',\n\t\t\t'support tickets',\n\t\t\t'help desk',\n\t\t\t'service desk',\n\t\t\t'customer issue',\n\t\t\t'issue ticket',\n\t\t\t'bug ticket'\n\t\t],\n\t\tcollections: SUPPORT_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'login issue',\n\t\t\t'cannot login',\n\t\t\t'log in failed',\n\t\t\t'sign in failed',\n\t\t\t'authentication issue',\n\t\t\t'session issue',\n\t\t\t'access denied'\n\t\t],\n\t\tcollections: mergeCollectionLists(AUTH_COLLECTION_HINT_CANDIDATES, PERMISSION_NAV_COLLECTION_HINT_CANDIDATES)\n\t},\n\t{\n\t\tterms: [\n\t\t\t'collapse table',\n\t\t\t'collapsible table',\n\t\t\t'expandable table',\n\t\t\t'collapse-table',\n\t\t\t'data table',\n\t\t\t'data-table',\n\t\t\t'datatable',\n\t\t\t'data grid',\n\t\t\t'table widget'\n\t\t],\n\t\tcollections: TABLE_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'navbar main',\n\t\t\t'main navbar',\n\t\t\t'navbar module',\n\t\t\t'module navbar',\n\t\t\t'navigation bar',\n\t\t\t'main navigation',\n\t\t\t'module navigation',\n\t\t\t'sidebar navigation',\n\t\t\t'menu bar'\n\t\t],\n\t\tcollections: NAV_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'system settings',\n\t\t\t'system config',\n\t\t\t'system configuration',\n\t\t\t'global settings',\n\t\t\t'platform settings',\n\t\t\t'admin settings',\n\t\t\t'audit log',\n\t\t\t'activity log'\n\t\t],\n\t\tcollections: SYSTEM_COLLECTION_HINT_CANDIDATES\n\t}\n];\n\nconst AI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES = uniqueCollections(\n\tmergeCollectionLists(\n\t\tREPORT_COLLECTION_HINT_CANDIDATES,\n\t\tSUPPORT_COLLECTION_HINT_CANDIDATES,\n\t\tAUTH_COLLECTION_HINT_CANDIDATES,\n\t\tPERMISSION_NAV_COLLECTION_HINT_CANDIDATES,\n\t\tUI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\t\tSYSTEM_COLLECTION_HINT_CANDIDATES,\n\t\tTABLE_COLLECTION_HINT_CANDIDATES,\n\t\tNAV_COLLECTION_HINT_CANDIDATES,\n\t\tObject.values(AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS)\n\t\t\t.reduce((acc, group) => acc.concat(group || []), [] as string[])\n\t)\n);\n\nconst AI_ASSISTANT_CORE_COLLECTION_TERM_HINTS = buildCollectionTermHintsFromCandidates(\n\tAI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES\n);\n\nconst AI_ASSISTANT_CORE_TERM_HINTS: AiAssistantCoreTermHint[] = [\n\t...AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS,\n\t...AI_ASSISTANT_CORE_COLLECTION_TERM_HINTS\n].map((entry) => ({\n\tterms: uniqueStrings(entry.terms || []),\n\tcollections: uniqueCollections(entry.collections || [])\n})).filter((entry) => entry.terms.length && entry.collections.length);\n\nexport const AI_ASSISTANT_CORE_HEURISTICS = Object.freeze({\n\tversion: 2,\n\tcollection_aliases: AI_ASSISTANT_CORE_COLLECTION_ALIASES,\n\tcollection_alias_options: AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS,\n\tcollection_term_hints: AI_ASSISTANT_CORE_TERM_HINTS\n});\n"]}
1
+ {"version":3,"sources":["../../src/ai/assistant-core-heuristics.ts"],"names":[],"mappings":"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","file":"assistant-core-heuristics.js","sourcesContent":["type AiAssistantCoreTermHint = {\n\tterms: string[];\n\tcollections: string[];\n};\n\nfunction normalizeTerm(value: string): string {\n\treturn String(value || '')\n\t\t.trim()\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, ' ');\n}\n\nfunction uniqueStrings(values: string[]): string[] {\n\tconst seen = new Set<string>();\n\tconst unique: string[] = [];\n\t(values || []).forEach((value) => {\n\t\tconst normalized = normalizeTerm(value);\n\t\tif (!normalized || seen.has(normalized)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(normalized);\n\t\tunique.push(normalized);\n\t});\n\treturn unique;\n}\n\nfunction uniqueCollections(values: string[]): string[] {\n\tconst seen = new Set<string>();\n\tconst unique: string[] = [];\n\t(values || []).forEach((value) => {\n\t\tconst normalized = normalizeTerm(value).replace(/[^a-z0-9._-]/g, '');\n\t\tif (!normalized || seen.has(normalized)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(normalized);\n\t\tunique.push(normalized);\n\t});\n\treturn unique;\n}\n\nfunction mergeCollectionLists(...groups: string[][]): string[] {\n\treturn uniqueCollections(\n\t\t(groups || []).reduce((acc, group) => acc.concat(Array.isArray(group) ? group : []), [] as string[])\n\t);\n}\n\nfunction singularizeToken(token: string): string {\n\tconst normalized = normalizeTerm(token);\n\tif (!normalized) {\n\t\treturn '';\n\t}\n\tif (normalized.endsWith('ies') && normalized.length > 4) {\n\t\treturn `${normalized.slice(0, -3)}y`;\n\t}\n\tif (\n\t\tnormalized.length > 4\n\t\t&& normalized.endsWith('s')\n\t\t&& !normalized.endsWith('ss')\n\t\t&& !normalized.endsWith('us')\n\t\t&& !normalized.endsWith('is')\n\t) {\n\t\treturn normalized.slice(0, -1);\n\t}\n\treturn normalized;\n}\n\nfunction buildCollectionNameTerms(collection: string): string[] {\n\tconst normalized = normalizeTerm(collection).replace(/[^a-z0-9._-]/g, '');\n\tif (!normalized) {\n\t\treturn [];\n\t}\n\tconst withoutReportPrefix = normalized.startsWith('report-')\n\t\t? normalized.slice('report-'.length)\n\t\t: normalized;\n\tconst tokens = withoutReportPrefix.split(/[-_.]+/g).filter(Boolean);\n\tconst singularTokens = tokens.map(singularizeToken).filter(Boolean);\n\treturn uniqueStrings([\n\t\tnormalized,\n\t\twithoutReportPrefix,\n\t\twithoutReportPrefix.replace(/[-_.]+/g, ' '),\n\t\twithoutReportPrefix.replace(/[-_.]+/g, ''),\n\t\tsingularTokens.join('-'),\n\t\tsingularTokens.join(' '),\n\t\tsingularTokens.join('')\n\t]);\n}\n\nfunction buildCollectionTermHintsFromCandidates(collections: string[]): AiAssistantCoreTermHint[] {\n\treturn uniqueCollections(collections).map((collection) => ({\n\t\tterms: buildCollectionNameTerms(collection),\n\t\tcollections: [collection]\n\t}));\n}\n\nconst REPORT_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'reports',\n\t'report-templates',\n\t'report-layouts',\n\t'report-builder-configs',\n\t'report-builder-layouts',\n\t'report-dashboards',\n\t'report-widgets',\n\t'report-favorites',\n\t'report-schedules',\n\t'report-runs',\n\t'saved-reports',\n\t'qb-reports',\n\t'dashboard-configs',\n\t'dashboard-widgets'\n]);\n\nconst AUTH_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'users',\n\t'client-users',\n\t'billing-logged-in-users',\n\t'customer-auth-accounts',\n\t'customer-auth-sessions',\n\t'customer-portal-accounts',\n\t'customer-portal-sessions',\n\t'customer-portal-invites',\n\t'owners'\n]);\n\nconst PERMISSION_NAV_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'roles',\n\t'permissions',\n\t'role-permissions',\n\t'user-groups',\n\t'dashboard-configs',\n\t'homepage-configs',\n\t'homepage-sections'\n]);\n\nconst UI_WIDGET_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'dashboard-widgets',\n\t'report-widgets',\n\t'report-layouts',\n\t'report-templates',\n\t'dashboard-configs',\n\t'homepage-configs',\n\t'homepage-sections',\n\t'homepage-announcements',\n\t'ai-assist-configs',\n\t'systems'\n]);\n\nconst SYSTEM_COLLECTION_HINT_CANDIDATES = uniqueCollections([\n\t'systems',\n\t'settings',\n\t'configs',\n\t'company-secrets',\n\t'ai-coder-apps',\n\t'ai-development-jobs',\n\t'build-instance-logs',\n\t'error-autofix-logs',\n\t'slow-query-logs',\n\t'work-logs',\n\t'crm-usage-logs',\n\t'mongo-performance-metrics',\n\t'mongo-snapshots',\n\t'aws-heartbeats',\n\t'aws-app-versions'\n]);\n\nconst TABLE_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\tREPORT_COLLECTION_HINT_CANDIDATES,\n\tUI_WIDGET_COLLECTION_HINT_CANDIDATES\n);\n\nconst NAV_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\tPERMISSION_NAV_COLLECTION_HINT_CANDIDATES,\n\tUI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\t['modules', 'menus', 'navigation-items']\n);\n\nconst USER_PERMISSION_COLLECTION_HINT_CANDIDATES = mergeCollectionLists(\n\t['users', 'client-users', 'billing-logged-in-users'],\n\tAUTH_COLLECTION_HINT_CANDIDATES,\n\tPERMISSION_NAV_COLLECTION_HINT_CANDIDATES\n);\n\nconst AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS: Record<string, string[]> = {\n\treport: REPORT_COLLECTION_HINT_CANDIDATES,\n\treports: REPORT_COLLECTION_HINT_CANDIDATES,\n\treporting: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportbuilder: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportbuilders: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportdesigner: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportdesigners: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportschema: REPORT_COLLECTION_HINT_CANDIDATES,\n\treportschemas: REPORT_COLLECTION_HINT_CANDIDATES,\n\tdashboard: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\tdashboards: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\tanalytics: REPORT_COLLECTION_HINT_CANDIDATES,\n\tkpi: REPORT_COLLECTION_HINT_CANDIDATES,\n\tkpis: REPORT_COLLECTION_HINT_CANDIDATES,\n\tchart: REPORT_COLLECTION_HINT_CANDIDATES,\n\tcharts: REPORT_COLLECTION_HINT_CANDIDATES,\n\tgraph: REPORT_COLLECTION_HINT_CANDIDATES,\n\tgraphs: REPORT_COLLECTION_HINT_CANDIDATES,\n\tvisualization: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\tvisualizations: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES),\n\twidget: UI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\twidgets: UI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\tcollapsetable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tcollapsetables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tcollapsibletable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tcollapsibletables: TABLE_COLLECTION_HINT_CANDIDATES,\n\texpandabletable: TABLE_COLLECTION_HINT_CANDIDATES,\n\texpandabletables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatatable: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatatables: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatagrid: TABLE_COLLECTION_HINT_CANDIDATES,\n\tdatagrids: TABLE_COLLECTION_HINT_CANDIDATES,\n\tnavbar: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavbars: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavbarmain: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavbarmodule: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavigation: NAV_COLLECTION_HINT_CANDIDATES,\n\tnavigations: NAV_COLLECTION_HINT_CANDIDATES,\n\tsidebar: NAV_COLLECTION_HINT_CANDIDATES,\n\tsidebars: NAV_COLLECTION_HINT_CANDIDATES,\n\tmenu: NAV_COLLECTION_HINT_CANDIDATES,\n\tmenus: NAV_COLLECTION_HINT_CANDIDATES,\n\tmodulemenu: NAV_COLLECTION_HINT_CANDIDATES,\n\tmodulemenus: NAV_COLLECTION_HINT_CANDIDATES,\n\tlogin: AUTH_COLLECTION_HINT_CANDIDATES,\n\tlogins: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsignin: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsignins: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsigninpage: AUTH_COLLECTION_HINT_CANDIDATES,\n\tauthentication: AUTH_COLLECTION_HINT_CANDIDATES,\n\tauth: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsession: AUTH_COLLECTION_HINT_CANDIDATES,\n\tsessions: AUTH_COLLECTION_HINT_CANDIDATES,\n\tpermission: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\tpermissions: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\trole: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\troles: USER_PERMISSION_COLLECTION_HINT_CANDIDATES,\n\taccess: mergeCollectionLists(USER_PERMISSION_COLLECTION_HINT_CANDIDATES, AUTH_COLLECTION_HINT_CANDIDATES),\n\tauthorization: mergeCollectionLists(USER_PERMISSION_COLLECTION_HINT_CANDIDATES, AUTH_COLLECTION_HINT_CANDIDATES),\n\tsystem: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tsystems: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tsetting: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tsettings: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfig: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfigs: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfiguration: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tconfigurations: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\taudit: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\taudits: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tlog: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tlogs: SYSTEM_COLLECTION_HINT_CANDIDATES,\n\tnotification: mergeCollectionLists(SYSTEM_COLLECTION_HINT_CANDIDATES, ['user-notifications']),\n\tnotifications: mergeCollectionLists(SYSTEM_COLLECTION_HINT_CANDIDATES, ['user-notifications'])\n};\n\nconst AI_ASSISTANT_CORE_COLLECTION_ALIASES: Record<string, string> = Object.keys(AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS)\n\t.reduce((acc, key) => {\n\t\tconst options = AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS[key] || [];\n\t\tconst best = options[0];\n\t\tif (best) {\n\t\t\tacc[key] = best;\n\t\t}\n\t\treturn acc;\n\t}, {} as Record<string, string>);\n\nconst AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS: AiAssistantCoreTermHint[] = [\n\t{\n\t\tterms: [\n\t\t\t'report builder',\n\t\t\t'report builder schema',\n\t\t\t'report schema',\n\t\t\t'report designer',\n\t\t\t'build report',\n\t\t\t'custom report',\n\t\t\t'report filters',\n\t\t\t'report columns',\n\t\t\t'report query'\n\t\t],\n\t\tcollections: REPORT_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'dashboard report',\n\t\t\t'dashboard widget',\n\t\t\t'analytics dashboard',\n\t\t\t'kpi dashboard',\n\t\t\t'chart dashboard'\n\t\t],\n\t\tcollections: mergeCollectionLists(REPORT_COLLECTION_HINT_CANDIDATES, UI_WIDGET_COLLECTION_HINT_CANDIDATES)\n\t},\n\t{\n\t\tterms: [\n\t\t\t'login issue',\n\t\t\t'cannot login',\n\t\t\t'log in failed',\n\t\t\t'sign in failed',\n\t\t\t'authentication issue',\n\t\t\t'session issue',\n\t\t\t'access denied'\n\t\t],\n\t\tcollections: mergeCollectionLists(AUTH_COLLECTION_HINT_CANDIDATES, PERMISSION_NAV_COLLECTION_HINT_CANDIDATES)\n\t},\n\t{\n\t\tterms: [\n\t\t\t'collapse table',\n\t\t\t'collapsible table',\n\t\t\t'expandable table',\n\t\t\t'collapse-table',\n\t\t\t'data table',\n\t\t\t'data-table',\n\t\t\t'datatable',\n\t\t\t'data grid',\n\t\t\t'table widget'\n\t\t],\n\t\tcollections: TABLE_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'navbar main',\n\t\t\t'main navbar',\n\t\t\t'navbar module',\n\t\t\t'module navbar',\n\t\t\t'navigation bar',\n\t\t\t'main navigation',\n\t\t\t'module navigation',\n\t\t\t'sidebar navigation',\n\t\t\t'menu bar'\n\t\t],\n\t\tcollections: NAV_COLLECTION_HINT_CANDIDATES\n\t},\n\t{\n\t\tterms: [\n\t\t\t'system settings',\n\t\t\t'system config',\n\t\t\t'system configuration',\n\t\t\t'global settings',\n\t\t\t'platform settings',\n\t\t\t'admin settings',\n\t\t\t'audit log',\n\t\t\t'activity log'\n\t\t],\n\t\tcollections: SYSTEM_COLLECTION_HINT_CANDIDATES\n\t}\n];\n\nconst AI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES = uniqueCollections(\n\tmergeCollectionLists(\n\t\tREPORT_COLLECTION_HINT_CANDIDATES,\n\t\tAUTH_COLLECTION_HINT_CANDIDATES,\n\t\tPERMISSION_NAV_COLLECTION_HINT_CANDIDATES,\n\t\tUI_WIDGET_COLLECTION_HINT_CANDIDATES,\n\t\tSYSTEM_COLLECTION_HINT_CANDIDATES,\n\t\tTABLE_COLLECTION_HINT_CANDIDATES,\n\t\tNAV_COLLECTION_HINT_CANDIDATES,\n\t\tObject.values(AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS)\n\t\t\t.reduce((acc, group) => acc.concat(group || []), [] as string[])\n\t)\n);\n\nconst AI_ASSISTANT_CORE_COLLECTION_TERM_HINTS = buildCollectionTermHintsFromCandidates(\n\tAI_ASSISTANT_CORE_COLLECTION_HINT_CANDIDATES\n);\n\nconst AI_ASSISTANT_CORE_TERM_HINTS: AiAssistantCoreTermHint[] = [\n\t...AI_ASSISTANT_CORE_DOMAIN_TERM_HINTS,\n\t...AI_ASSISTANT_CORE_COLLECTION_TERM_HINTS\n].map((entry) => ({\n\tterms: uniqueStrings(entry.terms || []),\n\tcollections: uniqueCollections(entry.collections || [])\n})).filter((entry) => entry.terms.length && entry.collections.length);\n\nexport const AI_ASSISTANT_CORE_HEURISTICS = Object.freeze({\n\tversion: 3,\n\tcollection_aliases: AI_ASSISTANT_CORE_COLLECTION_ALIASES,\n\tcollection_alias_options: AI_ASSISTANT_CORE_COLLECTION_ALIAS_OPTIONS,\n\tcollection_term_hints: AI_ASSISTANT_CORE_TERM_HINTS\n});\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ResolveIOPlatformDurableMemoryEntry, ResolveIOPlatformSharedMemoryEntry } from './resolveio-platform-intelligence-types';
2
+ export declare function getResolveIOPlatformSharedMemoryCorpus(): ResolveIOPlatformSharedMemoryEntry[];
3
+ export declare function getResolveIOPlatformSharedDurableMemoryEntries(): ResolveIOPlatformDurableMemoryEntry[];
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
+ if (ar || !(i in from)) {
32
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
+ ar[i] = from[i];
34
+ }
35
+ }
36
+ return to.concat(ar || Array.prototype.slice.call(from));
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getResolveIOPlatformSharedMemoryCorpus = getResolveIOPlatformSharedMemoryCorpus;
40
+ exports.getResolveIOPlatformSharedDurableMemoryEntries = getResolveIOPlatformSharedDurableMemoryEntries;
41
+ var RESOLVEIO_PLATFORM_SHARED_MEMORY_CORPUS = Object.freeze([
42
+ {
43
+ family: 'rio-select',
44
+ kind: 'accepted_pattern',
45
+ summary: 'Preserve the existing `[options]` plus `optionLabelFn` or `optionLabelKey` contract when it already fits, and debug the label refresh pipeline before changing control mode.',
46
+ tags: ['rio-select', 'options', 'optionlabelfn', 'optionlabelkey', 'select', 'performance'],
47
+ matchTerms: ['rio-select', '[options]', 'optionLabelFn', 'optionLabelKey', 'rio-option', 'selected label', 'no options'],
48
+ priority: 120
49
+ },
50
+ {
51
+ family: 'rio-select',
52
+ kind: 'rejected_fix_shape',
53
+ 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.',
54
+ tags: ['rio-select', 'options', 'rio-option', 'select'],
55
+ matchTerms: ['rio-select', '[options]', '<rio-option>', 'projected option', 'mixed mode'],
56
+ priority: 118
57
+ },
58
+ {
59
+ family: 'rio-select',
60
+ kind: 'contract_violation',
61
+ summary: 'Mixing `[options]` with projected `<rio-option>` children on the same `rio-select` is an invalid ResolveIO library contract.',
62
+ tags: ['rio-select', 'options', 'rio-option', 'contract'],
63
+ matchTerms: ['rio-select', '[options]', '<rio-option>', 'invalid contract'],
64
+ priority: 118
65
+ },
66
+ {
67
+ family: 'rio-date-picker',
68
+ kind: 'contract_violation',
69
+ summary: 'Do not apply Bootstrap `form-control` directly to `rio-date-picker`; keep component-specific styling so the shared control behavior remains intact.',
70
+ tags: ['rio-date-picker', 'form-control', 'bootstrap', 'styling'],
71
+ matchTerms: ['rio-date-picker', 'form-control', 'date picker'],
72
+ priority: 76
73
+ },
74
+ {
75
+ family: 'resolveio-list-template',
76
+ kind: 'accepted_pattern',
77
+ 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.',
78
+ tags: ['resolveio-list-template', 'filter', 'distinct', 'list', 'all-option'],
79
+ matchTerms: ['resolveio-list-template', 'distinct filter', 'optionsDistinctKey', 'All option', 'filter dropdown'],
80
+ priority: 70
81
+ },
82
+ {
83
+ family: 'generated-method-publication',
84
+ kind: 'accepted_pattern',
85
+ summary: 'Edit the real server method or publication definitions first, then regenerate Angular socket artifacts and verify the callers.',
86
+ tags: ['methods.ts', 'publications.ts', 'generated', 'socket', 'regeneration'],
87
+ matchTerms: ['angular/app/methods.ts', 'angular/app/publications.ts', 'generated socket', 'method signature', 'publication signature'],
88
+ priority: 110
89
+ },
90
+ {
91
+ family: 'generated-method-publication',
92
+ kind: 'contract_violation',
93
+ summary: 'Hand-editing generated `angular/app/methods.ts` or `angular/app/publications.ts` breaks the generated-file contract.',
94
+ tags: ['methods.ts', 'publications.ts', 'generated', 'contract'],
95
+ matchTerms: ['angular/app/methods.ts', 'angular/app/publications.ts', 'generated file'],
96
+ priority: 109
97
+ },
98
+ {
99
+ family: 'shared-library-ownership',
100
+ kind: 'accepted_pattern',
101
+ 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.',
102
+ tags: ['resolveio-client-lib', 'resolveio-server-lib', 'shared library', 'ownership'],
103
+ matchTerms: ['resolveio-client-lib', 'resolveio-server-lib', 'shared library', '@resolveio/', 'library bug'],
104
+ priority: 115
105
+ },
106
+ {
107
+ family: 'shared-library-ownership',
108
+ kind: 'rejected_fix_shape',
109
+ summary: 'Do not use `patch-package`, `node_modules` edits, or app-local dependency patches as the final fix for `@resolveio/*` library defects.',
110
+ tags: ['patch-package', 'node_modules', 'shared library', 'dependency patch'],
111
+ matchTerms: ['patch-package', 'node_modules', '@resolveio/', 'local dependency patch'],
112
+ priority: 114
113
+ },
114
+ {
115
+ family: 'identifier-contract',
116
+ kind: 'accepted_pattern',
117
+ summary: 'Keep ResolveIO `_id` and `id_*` values string-compatible across server, Angular, and shared-library contracts unless verified external integration code proves otherwise.',
118
+ tags: ['_id', 'id_', 'string', 'contract'],
119
+ matchTerms: ['_id', 'ObjectId', 'object id', 'id_client', 'id_', 'string id'],
120
+ priority: 112
121
+ },
122
+ {
123
+ family: 'identifier-contract',
124
+ kind: 'contract_violation',
125
+ summary: 'ResolveIO app `_id` and `id_*` contracts are string-based; introducing Mongo `ObjectId` assumptions is a cross-run contract break.',
126
+ tags: ['_id', 'id_', 'string', 'ObjectId', 'contract'],
127
+ matchTerms: ['ObjectId', 'object id', '_id', 'id_'],
128
+ priority: 112
129
+ },
130
+ {
131
+ family: 'collection-inference',
132
+ kind: 'accepted_pattern',
133
+ 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.',
134
+ tags: ['collection', 'workflow', 'route', 'mapping', 'business language'],
135
+ matchTerms: ['business language', 'workflow', 'route', 'collection', 'map the issue'],
136
+ priority: 88
137
+ },
138
+ {
139
+ family: 'report-builder',
140
+ kind: 'accepted_pattern',
141
+ summary: 'Resolve the collection and `permissionView`, then use `REPORT_BUILDER_READ` or `REPORT_BUILDER_AGG` plus tiny probes before concluding there is no data.',
142
+ tags: ['report-builder', 'permissionView', 'REPORT_BUILDER_READ', 'REPORT_BUILDER_AGG', 'query'],
143
+ matchTerms: ['REPORT_BUILDER_READ', 'REPORT_BUILDER_AGG', 'permissionView', 'report builder', 'no data'],
144
+ priority: 96
145
+ },
146
+ {
147
+ family: 'report-builder',
148
+ kind: 'rejected_fix_shape',
149
+ summary: 'Do not jump straight to raw unrestricted collection queries or version collections when a scoped report-builder bridge can answer the request safely.',
150
+ tags: ['report-builder', 'query', 'versions', 'raw collection'],
151
+ matchTerms: ['raw collection query', '.versions', 'report builder', 'permissionView'],
152
+ priority: 92
153
+ },
154
+ {
155
+ family: 'execution-quality',
156
+ kind: 'accepted_pattern',
157
+ 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.',
158
+ tags: ['verification', 'failing path', 'comparator', 'evidence'],
159
+ matchTerms: ['failing path', 'working comparator', 'verify the fix', 'evidence-to-fix'],
160
+ priority: 100
161
+ },
162
+ {
163
+ family: 'execution-quality',
164
+ kind: 'rejected_fix_shape',
165
+ 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.',
166
+ tags: ['whitespace', 'formatting', 'noise', 'placeholder', 'fake fix'],
167
+ matchTerms: ['whitespace', 'formatting only', 'placeholder text', 'no real fix', 'fake fix'],
168
+ priority: 100
169
+ },
170
+ {
171
+ family: 'feature-module-generation',
172
+ kind: 'accepted_pattern',
173
+ summary: 'Generate full feature-module wiring with real routes, permissions, services, data flow, and working list/new/edit/detail surfaces instead of partial placeholders.',
174
+ tags: ['feature module', 'routing', 'permission', 'service', 'list', 'detail'],
175
+ matchTerms: ['feature module', 'routing', 'permission', 'manage module', 'list/new/edit/detail'],
176
+ priority: 74
177
+ },
178
+ {
179
+ family: 'dashboard-hub',
180
+ kind: 'contract_violation',
181
+ summary: 'Generic hub placeholder copy, dead quick actions, and fake dashboard links are not acceptable finished ResolveIO dashboard work.',
182
+ tags: ['dashboard', 'hub', 'quick action', 'placeholder', 'dead link'],
183
+ matchTerms: ['dashboard hub', 'quick action', 'placeholder dashboard', 'dead link'],
184
+ priority: 68
185
+ },
186
+ {
187
+ family: 'auth-shell',
188
+ kind: 'rejected_fix_shape',
189
+ 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.',
190
+ tags: ['auth', 'staff app', 'customer portal', 'login'],
191
+ matchTerms: ['customer portal login', 'staff app login', 'chooser flow', 'signup flow'],
192
+ priority: 62
193
+ }
194
+ ]);
195
+ function cloneDurableEntry(entry) {
196
+ return {
197
+ family: entry.family,
198
+ kind: entry.kind,
199
+ summary: entry.summary,
200
+ modes: Array.isArray(entry.modes) ? __spreadArray([], __read(entry.modes), false) : [],
201
+ tags: Array.isArray(entry.tags) ? __spreadArray([], __read(entry.tags), false) : []
202
+ };
203
+ }
204
+ function cloneSharedEntry(entry) {
205
+ return __assign(__assign({}, cloneDurableEntry(entry)), { matchTerms: Array.isArray(entry.matchTerms) ? __spreadArray([], __read(entry.matchTerms), false) : [], priority: Number(entry.priority || 0) });
206
+ }
207
+ function getResolveIOPlatformSharedMemoryCorpus() {
208
+ return RESOLVEIO_PLATFORM_SHARED_MEMORY_CORPUS.map(cloneSharedEntry);
209
+ }
210
+ function getResolveIOPlatformSharedDurableMemoryEntries() {
211
+ return RESOLVEIO_PLATFORM_SHARED_MEMORY_CORPUS.map(cloneDurableEntry);
212
+ }
213
+
214
+ //# sourceMappingURL=resolveio-platform-intelligence-memory-corpus.js.map