@defai.digital/agent-domain 13.4.7 → 13.4.8
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/dist/capability-router.d.ts.map +1 -1
- package/dist/capability-router.js +21 -8
- package/dist/capability-router.js.map +1 -1
- package/dist/provider-selector.d.ts.map +1 -1
- package/dist/provider-selector.js +4 -1
- package/dist/provider-selector.js.map +1 -1
- package/package.json +4 -4
- package/src/capability-router.ts +29 -8
- package/src/provider-selector.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-router.d.ts","sourceRoot":"","sources":["../src/capability-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-router.d.ts","sourceRoot":"","sources":["../src/capability-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAsB/F;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,2BAA2B;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,uGAAuG;IACvG,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,kDAAkD;IAClD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,2FAA2F;IAC3F,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,qBAAqB,CA6EvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,KAAK,EAAE,YAAY,GAClB,MAAM,EAAE,CAkBV;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAiB9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/D"}
|
|
@@ -15,6 +15,19 @@
|
|
|
15
15
|
* - INV-TC-003: Default workflow fallback
|
|
16
16
|
*/
|
|
17
17
|
import { classifyTask, createTaskClassifier, extractTaskDescription } from './task-classifier.js';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Constants
|
|
20
|
+
// ============================================================================
|
|
21
|
+
/** Default capability priority for sorting */
|
|
22
|
+
const DEFAULT_CAPABILITY_PRIORITY = 50;
|
|
23
|
+
/** Standard workflow path prefix */
|
|
24
|
+
const STD_WORKFLOW_PREFIX = 'std/';
|
|
25
|
+
/** Base path for standard workflows */
|
|
26
|
+
const WORKFLOWS_BASE_PATH = 'workflows/std';
|
|
27
|
+
/** Supported workflow file extensions */
|
|
28
|
+
const WORKFLOW_EXTENSIONS = ['.yaml', '.json'];
|
|
29
|
+
/** Default workflow extension when not specified */
|
|
30
|
+
const DEFAULT_WORKFLOW_EXTENSION = '.yaml';
|
|
18
31
|
/**
|
|
19
32
|
* Route input to appropriate capability
|
|
20
33
|
*
|
|
@@ -74,7 +87,7 @@ export function routeToCapability(agent, input) {
|
|
|
74
87
|
const matchingCapabilities = agent.capabilityMappings.filter((c) => c.taskType === classification.taskType);
|
|
75
88
|
// Sort by priority (highest first), then by array order
|
|
76
89
|
const capability = matchingCapabilities.length > 0
|
|
77
|
-
? matchingCapabilities.sort((a, b) => (b.priority ??
|
|
90
|
+
? matchingCapabilities.sort((a, b) => (b.priority ?? DEFAULT_CAPABILITY_PRIORITY) - (a.priority ?? DEFAULT_CAPABILITY_PRIORITY))[0]
|
|
78
91
|
: undefined;
|
|
79
92
|
if (capability) {
|
|
80
93
|
return {
|
|
@@ -136,17 +149,17 @@ export function getAbilitiesForCapability(capability, agent) {
|
|
|
136
149
|
*/
|
|
137
150
|
export function resolveWorkflowRef(workflowRef) {
|
|
138
151
|
// Standard workflow reference (e.g., "std/code-review")
|
|
139
|
-
if (workflowRef.startsWith(
|
|
140
|
-
const workflowName = workflowRef.slice(
|
|
152
|
+
if (workflowRef.startsWith(STD_WORKFLOW_PREFIX)) {
|
|
153
|
+
const workflowName = workflowRef.slice(STD_WORKFLOW_PREFIX.length);
|
|
141
154
|
// INV-CAP-006: Guard against empty workflow name (e.g., "std/" alone)
|
|
142
155
|
if (!workflowName) {
|
|
143
156
|
throw new Error(`Invalid workflow reference: "${workflowRef}" - workflow name is empty`);
|
|
144
157
|
}
|
|
145
|
-
return
|
|
158
|
+
return `${WORKFLOWS_BASE_PATH}/${workflowName}${DEFAULT_WORKFLOW_EXTENSION}`;
|
|
146
159
|
}
|
|
147
|
-
// Custom workflow reference - append
|
|
148
|
-
if (!
|
|
149
|
-
return `${workflowRef}
|
|
160
|
+
// Custom workflow reference - append extension if needed
|
|
161
|
+
if (!WORKFLOW_EXTENSIONS.some(ext => workflowRef.endsWith(ext))) {
|
|
162
|
+
return `${workflowRef}${DEFAULT_WORKFLOW_EXTENSION}`;
|
|
150
163
|
}
|
|
151
164
|
return workflowRef;
|
|
152
165
|
}
|
|
@@ -154,6 +167,6 @@ export function resolveWorkflowRef(workflowRef) {
|
|
|
154
167
|
* Check if a workflow reference is a standard workflow
|
|
155
168
|
*/
|
|
156
169
|
export function isStandardWorkflow(workflowRef) {
|
|
157
|
-
return workflowRef.startsWith(
|
|
170
|
+
return workflowRef.startsWith(STD_WORKFLOW_PREFIX);
|
|
158
171
|
}
|
|
159
172
|
//# sourceMappingURL=capability-router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-router.js","sourceRoot":"","sources":["../src/capability-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-router.js","sourceRoot":"","sources":["../src/capability-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../src/provider-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;aAI/B,SAAS,EAAE,MAAM,EAAE;aACnB,SAAS,EAAE,MAAM,EAAE;aACnB,QAAQ,EAAE,MAAM,EAAE;IALpC,SAAgB,IAAI,2BAA2B;gBAG7B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,EAAE;IAapC,OAAO,CAAC,MAAM,CAAC,cAAc;CAgB9B;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,cAAc,CACZ,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,uBAAuB,CAAC;CAC5B;AAMD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,MAAM,GAAE,OAAO,CAAC,6BAA6B,CAAM;IAO/D;;;;;OAKG;IACH,cAAc,CACZ,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,uBAAuB;
|
|
1
|
+
{"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../src/provider-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;aAI/B,SAAS,EAAE,MAAM,EAAE;aACnB,SAAS,EAAE,MAAM,EAAE;aACnB,QAAQ,EAAE,MAAM,EAAE;IALpC,SAAgB,IAAI,2BAA2B;gBAG7B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,EAAE;IAapC,OAAO,CAAC,MAAM,CAAC,cAAc;CAgB9B;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,cAAc,CACZ,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,uBAAuB,CAAC;CAC5B;AAMD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,MAAM,GAAE,OAAO,CAAC,6BAA6B,CAAM;IAO/D;;;;;OAKG;IACH,cAAc,CACZ,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,uBAAuB;IAkG1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA2B3B;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC9C,gBAAgB,CAElB;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GACvF,gBAAgB,CA4ClB"}
|
|
@@ -121,7 +121,10 @@ export class DefaultProviderSelector {
|
|
|
121
121
|
};
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
//
|
|
124
|
+
// INV-PROV-SEL-006: Final fallback - use first candidate if not in global priority
|
|
125
|
+
// Safety: candidates[0] is guaranteed to exist because we checked candidates.length === 0
|
|
126
|
+
// at line 143 and threw NoProviderAvailableError. All code paths after that point
|
|
127
|
+
// can safely assume candidates is non-empty.
|
|
125
128
|
const selected = candidates[0];
|
|
126
129
|
const fallbackChain = candidates.slice(1);
|
|
127
130
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../src/provider-selector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../src/provider-selector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/agent-domain",
|
|
3
|
-
"version": "13.4.
|
|
3
|
+
"version": "13.4.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent profiles and orchestration for AutomatosX",
|
|
6
6
|
"license": "BUSL-1.1",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"yaml": "^2.8.1",
|
|
37
|
-
"@defai.digital/ability-domain": "13.4.
|
|
38
|
-
"@defai.digital/agent-execution": "13.4.
|
|
39
|
-
"@defai.digital/contracts": "13.4.
|
|
37
|
+
"@defai.digital/ability-domain": "13.4.8",
|
|
38
|
+
"@defai.digital/agent-execution": "13.4.8",
|
|
39
|
+
"@defai.digital/contracts": "13.4.8"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"typescript": "^5.7.2"
|
package/src/capability-router.ts
CHANGED
|
@@ -18,6 +18,25 @@
|
|
|
18
18
|
import type { AgentProfile, CapabilityMapping, AgentTaskType } from '@defai.digital/contracts';
|
|
19
19
|
import { classifyTask, createTaskClassifier, extractTaskDescription } from './task-classifier.js';
|
|
20
20
|
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Constants
|
|
23
|
+
// ============================================================================
|
|
24
|
+
|
|
25
|
+
/** Default capability priority for sorting */
|
|
26
|
+
const DEFAULT_CAPABILITY_PRIORITY = 50;
|
|
27
|
+
|
|
28
|
+
/** Standard workflow path prefix */
|
|
29
|
+
const STD_WORKFLOW_PREFIX = 'std/';
|
|
30
|
+
|
|
31
|
+
/** Base path for standard workflows */
|
|
32
|
+
const WORKFLOWS_BASE_PATH = 'workflows/std';
|
|
33
|
+
|
|
34
|
+
/** Supported workflow file extensions */
|
|
35
|
+
const WORKFLOW_EXTENSIONS = ['.yaml', '.json'] as const;
|
|
36
|
+
|
|
37
|
+
/** Default workflow extension when not specified */
|
|
38
|
+
const DEFAULT_WORKFLOW_EXTENSION = '.yaml';
|
|
39
|
+
|
|
21
40
|
/**
|
|
22
41
|
* Result of capability routing
|
|
23
42
|
*/
|
|
@@ -110,7 +129,9 @@ export function routeToCapability(
|
|
|
110
129
|
|
|
111
130
|
// Sort by priority (highest first), then by array order
|
|
112
131
|
const capability = matchingCapabilities.length > 0
|
|
113
|
-
? matchingCapabilities.sort((a, b) =>
|
|
132
|
+
? matchingCapabilities.sort((a, b) =>
|
|
133
|
+
(b.priority ?? DEFAULT_CAPABILITY_PRIORITY) - (a.priority ?? DEFAULT_CAPABILITY_PRIORITY)
|
|
134
|
+
)[0]
|
|
114
135
|
: undefined;
|
|
115
136
|
|
|
116
137
|
if (capability) {
|
|
@@ -182,18 +203,18 @@ export function getAbilitiesForCapability(
|
|
|
182
203
|
*/
|
|
183
204
|
export function resolveWorkflowRef(workflowRef: string): string {
|
|
184
205
|
// Standard workflow reference (e.g., "std/code-review")
|
|
185
|
-
if (workflowRef.startsWith(
|
|
186
|
-
const workflowName = workflowRef.slice(
|
|
206
|
+
if (workflowRef.startsWith(STD_WORKFLOW_PREFIX)) {
|
|
207
|
+
const workflowName = workflowRef.slice(STD_WORKFLOW_PREFIX.length);
|
|
187
208
|
// INV-CAP-006: Guard against empty workflow name (e.g., "std/" alone)
|
|
188
209
|
if (!workflowName) {
|
|
189
210
|
throw new Error(`Invalid workflow reference: "${workflowRef}" - workflow name is empty`);
|
|
190
211
|
}
|
|
191
|
-
return
|
|
212
|
+
return `${WORKFLOWS_BASE_PATH}/${workflowName}${DEFAULT_WORKFLOW_EXTENSION}`;
|
|
192
213
|
}
|
|
193
214
|
|
|
194
|
-
// Custom workflow reference - append
|
|
195
|
-
if (!
|
|
196
|
-
return `${workflowRef}
|
|
215
|
+
// Custom workflow reference - append extension if needed
|
|
216
|
+
if (!WORKFLOW_EXTENSIONS.some(ext => workflowRef.endsWith(ext))) {
|
|
217
|
+
return `${workflowRef}${DEFAULT_WORKFLOW_EXTENSION}`;
|
|
197
218
|
}
|
|
198
219
|
|
|
199
220
|
return workflowRef;
|
|
@@ -203,5 +224,5 @@ export function resolveWorkflowRef(workflowRef: string): string {
|
|
|
203
224
|
* Check if a workflow reference is a standard workflow
|
|
204
225
|
*/
|
|
205
226
|
export function isStandardWorkflow(workflowRef: string): boolean {
|
|
206
|
-
return workflowRef.startsWith(
|
|
227
|
+
return workflowRef.startsWith(STD_WORKFLOW_PREFIX);
|
|
207
228
|
}
|
package/src/provider-selector.ts
CHANGED
|
@@ -217,7 +217,10 @@ export class DefaultProviderSelector implements ProviderSelector {
|
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
//
|
|
220
|
+
// INV-PROV-SEL-006: Final fallback - use first candidate if not in global priority
|
|
221
|
+
// Safety: candidates[0] is guaranteed to exist because we checked candidates.length === 0
|
|
222
|
+
// at line 143 and threw NoProviderAvailableError. All code paths after that point
|
|
223
|
+
// can safely assume candidates is non-empty.
|
|
221
224
|
const selected = candidates[0]!;
|
|
222
225
|
const fallbackChain = candidates.slice(1);
|
|
223
226
|
return {
|