fmea-api-mcp-server 1.1.32 → 1.1.34
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/data/endpoint-lookup.json +1 -1
- package/data/search-index.oxy +1 -1
- package/dist/index.js +1 -1
- package/dist/services/search/OramaSearchService.js +14 -3
- package/dist/synonyms.js +9 -3
- package/endpoints/v2/api-keys/core.json +12 -12
- package/endpoints/v2/auth/core.json +6 -6
- package/endpoints/v2/dashboard/core.json +916 -0
- package/endpoints/v2/fm-checkpoint/core.json +333 -0
- package/endpoints/v2/process-symbols/core.json +109 -0
- package/endpoints/v2/projects/core.json +0 -170
- package/endpoints/v2/scoring/core.json +419 -0
- package/endpoints/v2/templates/core.json +1 -1
- package/endpoints/v2/users/core.json +9 -9
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -257,13 +257,24 @@ export class OramaSearchService {
|
|
|
257
257
|
// [R22] Apply tiny path-length penalty to break ties in same-resource results
|
|
258
258
|
// Only applies when scores are extremely close (within 0.005)
|
|
259
259
|
// This prevents over-specific sub-paths from outranking their parent paths
|
|
260
|
+
// [R30] Path-component match boost: when query tokens match a path segment, boost instead of penalize
|
|
260
261
|
if (results.length > 1 && intent.resource) {
|
|
262
|
+
const queryTokens = safeQuery.toLowerCase().split(/\s+/).filter(t => t.length >= 2);
|
|
261
263
|
const maxScore = results[0]?.score || 0;
|
|
262
264
|
for (const r of results) {
|
|
263
265
|
if (maxScore - (r.score || 0) < 0.005) {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
266
|
+
const pathSegments = (r.path || '').split('/').filter(Boolean);
|
|
267
|
+
// Check if any query token matches a non-parameterized path segment
|
|
268
|
+
const pathLeafSegments = pathSegments.filter(s => !s.startsWith('{'));
|
|
269
|
+
const hasPathTokenMatch = queryTokens.some(token => pathLeafSegments.some(seg => seg === token || seg.split('-').includes(token)));
|
|
270
|
+
if (hasPathTokenMatch) {
|
|
271
|
+
// Boost results where query tokens match path components
|
|
272
|
+
r.score = (r.score || 0) + 0.001;
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
// Tiny penalty based on path segment count (prefer shallower paths within same resource)
|
|
276
|
+
r.score = (r.score || 0) - pathSegments.length * 0.0001;
|
|
277
|
+
}
|
|
267
278
|
}
|
|
268
279
|
}
|
|
269
280
|
}
|
package/dist/synonyms.js
CHANGED
|
@@ -48,10 +48,13 @@ export const RESOURCE_ALIASES = {
|
|
|
48
48
|
'high-item': ['high item', 'high items', 'high priority item', 'high priority risk', 'high priority', 'top item', 'top risk', 'risk ranking', 'high risk', 'priority list', 'batch upsert items', 'reorder items'], // [R23] High items resource
|
|
49
49
|
'workspace-bootstrap': ['bootstrap', 'workspace bootstrap', 'workspace init', 'workspace setup'], // [R21] Workspace bootstrap data
|
|
50
50
|
'search-failure-mode': ['global failure mode', 'search failure mode', 'failure mode search', 'global search failure', 'cross-project failure mode'], // [R25] Global failure mode search
|
|
51
|
-
'dashboard': ['dashboard', 'dashboard summary', 'my projects summary', 'projects overview'], // [R25] Dashboard summary resource
|
|
52
|
-
'evaluation': ['evaluation', 'evaluation criteria', 'assessment', 'rating criteria', 'grading'
|
|
51
|
+
'dashboard': ['dashboard', 'dashboard summary', 'my projects summary', 'projects overview', 'action items', 'overdue', 'rpn distribution', 'project status'], // [R25] [R29] Dashboard summary resource
|
|
52
|
+
'evaluation': ['evaluation', 'evaluation criteria', 'assessment', 'rating criteria', 'grading'], // [R27] Evaluation criteria resource — removed 'scoring criteria' (now dedicated resource [R30])
|
|
53
53
|
'significance-criteria': ['significance criteria', 'significance', 'sod threshold', 'rpn threshold', 'severity occurrence detection', 'sod criteria'], // [R27] Significance criteria sub-resource
|
|
54
|
-
'classification': ['classification', 'classification group', 'classification item', 'symbol', 'label group', 'risk classification'], // [R28] Classification groups and items
|
|
54
|
+
'classification': ['classification', 'classification group', 'classification item', 'symbol', 'label group', 'risk classification', 'project classification'], // [R28] [R29] Classification groups and items
|
|
55
|
+
'fm-checkpoint': ['fm checkpoint', 'failure mode checkpoint', 'checkpoint', 'checklist', 'check item'], // [R30] FM Checkpoint tree management
|
|
56
|
+
'scoring-criteria': ['scoring criteria', 'scoring', 'score criteria', 'completeness scoring', 'scoring tree'], // [R30] Scoring criteria tree management
|
|
57
|
+
'process-symbol': ['process symbol', 'process symbols', 'flow chart symbol', 'flowchart symbol', 'process flow'], // [R30] Process flow chart symbols
|
|
55
58
|
};
|
|
56
59
|
export const SYNONYM_GROUPS = {
|
|
57
60
|
// Read / Retrieve
|
|
@@ -151,6 +154,9 @@ export const SYNONYM_GROUPS = {
|
|
|
151
154
|
// [R28] Classification Domain
|
|
152
155
|
"classification": ["category", "label", "symbol", "group", "class", "tag"],
|
|
153
156
|
"symbol": ["icon", "marker", "badge", "image", "label"],
|
|
157
|
+
// [R30] FM Checkpoint & Scoring Domain
|
|
158
|
+
"checkpoint": ["checklist", "check item", "verification", "audit item"],
|
|
159
|
+
"breadcrumb": ["path", "navigation", "hierarchy path", "ancestor"],
|
|
154
160
|
};
|
|
155
161
|
/**
|
|
156
162
|
* Expands a single token into a list of synonyms including itself.
|
|
@@ -191,9 +191,9 @@
|
|
|
191
191
|
"userLevel": {
|
|
192
192
|
"type": "string",
|
|
193
193
|
"enum": [
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
"
|
|
194
|
+
"ADMIN",
|
|
195
|
+
"NORMAL",
|
|
196
|
+
"READER"
|
|
197
197
|
]
|
|
198
198
|
},
|
|
199
199
|
"createdAt": {
|
|
@@ -396,9 +396,9 @@
|
|
|
396
396
|
"userLevel": {
|
|
397
397
|
"type": "string",
|
|
398
398
|
"enum": [
|
|
399
|
-
"
|
|
400
|
-
"
|
|
401
|
-
"
|
|
399
|
+
"ADMIN",
|
|
400
|
+
"NORMAL",
|
|
401
|
+
"READER"
|
|
402
402
|
]
|
|
403
403
|
},
|
|
404
404
|
"createdAt": {
|
|
@@ -453,9 +453,9 @@
|
|
|
453
453
|
"userLevel": {
|
|
454
454
|
"type": "string",
|
|
455
455
|
"enum": [
|
|
456
|
-
"
|
|
457
|
-
"
|
|
458
|
-
"
|
|
456
|
+
"ADMIN",
|
|
457
|
+
"NORMAL",
|
|
458
|
+
"READER"
|
|
459
459
|
]
|
|
460
460
|
}
|
|
461
461
|
}
|
|
@@ -725,9 +725,9 @@
|
|
|
725
725
|
"userLevel": {
|
|
726
726
|
"type": "string",
|
|
727
727
|
"enum": [
|
|
728
|
-
"
|
|
729
|
-
"
|
|
730
|
-
"
|
|
728
|
+
"ADMIN",
|
|
729
|
+
"NORMAL",
|
|
730
|
+
"READER"
|
|
731
731
|
]
|
|
732
732
|
},
|
|
733
733
|
"createdAt": {
|
|
@@ -125,9 +125,9 @@
|
|
|
125
125
|
"userLevel": {
|
|
126
126
|
"type": "string",
|
|
127
127
|
"enum": [
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
128
|
+
"ADMIN",
|
|
129
|
+
"NORMAL",
|
|
130
|
+
"READER"
|
|
131
131
|
]
|
|
132
132
|
},
|
|
133
133
|
"creationDate": {
|
|
@@ -331,9 +331,9 @@
|
|
|
331
331
|
"userLevel": {
|
|
332
332
|
"type": "string",
|
|
333
333
|
"enum": [
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
"
|
|
334
|
+
"ADMIN",
|
|
335
|
+
"NORMAL",
|
|
336
|
+
"READER"
|
|
337
337
|
]
|
|
338
338
|
},
|
|
339
339
|
"creationDate": {
|