@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.
- package/ai/assistant-core-heuristics.d.ts +1 -1
- package/ai/assistant-core-heuristics.js +5 -180
- package/ai/assistant-core-heuristics.js.map +1 -1
- package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +3 -0
- package/ai/resolveio-platform-intelligence-memory-corpus.js +214 -0
- package/ai/resolveio-platform-intelligence-memory-corpus.js.map +1 -0
- package/ai/resolveio-platform-intelligence-memory.d.ts +20 -0
- package/ai/resolveio-platform-intelligence-memory.js +341 -0
- package/ai/resolveio-platform-intelligence-memory.js.map +1 -0
- package/ai/resolveio-platform-intelligence-types.d.ts +26 -0
- package/ai/resolveio-platform-intelligence-types.js +4 -0
- package/ai/resolveio-platform-intelligence-types.js.map +1 -0
- package/ai/resolveio-platform-intelligence.d.ts +6 -0
- package/ai/resolveio-platform-intelligence.js +463 -0
- package/ai/resolveio-platform-intelligence.js.map +1 -0
- package/methods/ai-terminal.d.ts +7 -0
- package/methods/ai-terminal.js +830 -3535
- package/methods/ai-terminal.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +3 -0
- package/public_api.js +3 -0
- package/public_api.js.map +1 -1
|
@@ -3,7 +3,7 @@ type AiAssistantCoreTermHint = {
|
|
|
3
3
|
collections: string[];
|
|
4
4
|
};
|
|
5
5
|
export declare const AI_ASSISTANT_CORE_HEURISTICS: Readonly<{
|
|
6
|
-
version:
|
|
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
|
-
|
|
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
|
|
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,
|
|
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:
|
|
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
|