@xemahq/agent-session-runtime 0.5.0 → 0.6.1
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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-resolution.d.ts +43 -0
- package/dist/lib/agent-resolution.d.ts.map +1 -0
- package/dist/lib/agent-resolution.js +236 -0
- package/dist/lib/agent-resolution.js.map +1 -0
- package/dist/lib/agent-workspace-manifest.d.ts +51 -0
- package/dist/lib/agent-workspace-manifest.d.ts.map +1 -0
- package/dist/lib/agent-workspace-manifest.js +178 -0
- package/dist/lib/agent-workspace-manifest.js.map +1 -0
- package/dist/lib/composition-resolution.d.ts +4 -4
- package/dist/lib/composition-resolution.d.ts.map +1 -1
- package/dist/lib/composition-resolution.js +15 -15
- package/dist/lib/composition-resolution.js.map +1 -1
- package/dist/lib/composition-workspace-manifest.d.ts +13 -13
- package/dist/lib/composition-workspace-manifest.d.ts.map +1 -1
- package/dist/lib/composition-workspace-manifest.js +15 -15
- package/dist/lib/composition-workspace-manifest.js.map +1 -1
- package/package.json +7 -4
- package/src/index.ts +2 -2
- package/src/lib/{composition-resolution.ts → agent-resolution.ts} +16 -16
- package/src/lib/{composition-workspace-manifest.ts → agent-workspace-manifest.ts} +31 -31
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.AgentResolutionError = void 0;
|
|
4
|
+
exports.flattenAgentTree = flattenAgentTree;
|
|
5
5
|
exports.collectSkills = collectSkills;
|
|
6
6
|
exports.collectTools = collectTools;
|
|
7
7
|
exports.collectInstructionsBySlug = collectInstructionsBySlug;
|
|
@@ -11,17 +11,17 @@ exports.appendInstructions = appendInstructions;
|
|
|
11
11
|
exports.normalizeInstructions = normalizeInstructions;
|
|
12
12
|
exports.normalizePermission = normalizePermission;
|
|
13
13
|
exports.projectModelOverride = projectModelOverride;
|
|
14
|
-
exports.
|
|
14
|
+
exports.projectAgentToRuntimeConfig = projectAgentToRuntimeConfig;
|
|
15
15
|
const workflow_1 = require("@xemahq/kernel-contracts/workflow");
|
|
16
16
|
const mcp_tool_1 = require("@xemahq/kernel-contracts/mcp-tool");
|
|
17
|
-
class
|
|
17
|
+
class AgentResolutionError extends Error {
|
|
18
18
|
constructor(context, detail) {
|
|
19
19
|
super(`Agent resolution failed for "${context}": ${detail}`);
|
|
20
|
-
this.name = '
|
|
20
|
+
this.name = 'AgentResolutionError';
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
exports.
|
|
24
|
-
function
|
|
23
|
+
exports.AgentResolutionError = AgentResolutionError;
|
|
24
|
+
function flattenAgentTree(root) {
|
|
25
25
|
const seen = new Set();
|
|
26
26
|
const out = [];
|
|
27
27
|
const visit = (node) => {
|
|
@@ -148,14 +148,14 @@ function projectModelOverride(raw, context) {
|
|
|
148
148
|
}
|
|
149
149
|
if (raw.kind === workflow_1.ModelRefKind.CONCRETE) {
|
|
150
150
|
if (typeof raw.modelId !== 'string' || raw.modelId.trim().length === 0) {
|
|
151
|
-
throw new
|
|
151
|
+
throw new AgentResolutionError(context, 'concrete modelOverride is missing a modelId');
|
|
152
152
|
}
|
|
153
153
|
return raw;
|
|
154
154
|
}
|
|
155
155
|
const modelClass = raw.modelClass;
|
|
156
156
|
if (modelClass === undefined ||
|
|
157
157
|
!workflow_1.MODEL_CLASS_VALUES.includes(modelClass)) {
|
|
158
|
-
throw new
|
|
158
|
+
throw new AgentResolutionError(context, `strategy modelOverride.modelClass must be one of ${workflow_1.MODEL_CLASS_VALUES.join(', ')}`);
|
|
159
159
|
}
|
|
160
160
|
return raw;
|
|
161
161
|
}
|
|
@@ -176,11 +176,11 @@ function projectToolSelection(tools, context) {
|
|
|
176
176
|
for (const [idx, tool] of tools.entries()) {
|
|
177
177
|
if (typeof tool.providerKind !== 'string' ||
|
|
178
178
|
!validKinds.has(tool.providerKind)) {
|
|
179
|
-
throw new
|
|
179
|
+
throw new AgentResolutionError(context, `tools[${idx}].providerKind must be one of ${Object.values(mcp_tool_1.ToolProviderKind).join(', ')}`);
|
|
180
180
|
}
|
|
181
181
|
if (typeof tool.resourceId !== 'string' ||
|
|
182
182
|
tool.resourceId.trim().length === 0) {
|
|
183
|
-
throw new
|
|
183
|
+
throw new AgentResolutionError(context, `tools[${idx}].resourceId must be a non-empty string`);
|
|
184
184
|
}
|
|
185
185
|
if (tool.kind === 'provider') {
|
|
186
186
|
out.push({
|
|
@@ -192,7 +192,7 @@ function projectToolSelection(tools, context) {
|
|
|
192
192
|
else if (tool.kind === 'tool') {
|
|
193
193
|
if (typeof tool.toolName !== 'string' ||
|
|
194
194
|
tool.toolName.trim().length === 0) {
|
|
195
|
-
throw new
|
|
195
|
+
throw new AgentResolutionError(context, `tools[${idx}].toolName must be a non-empty string for kind='tool'`);
|
|
196
196
|
}
|
|
197
197
|
out.push({
|
|
198
198
|
kind: 'tool',
|
|
@@ -202,12 +202,12 @@ function projectToolSelection(tools, context) {
|
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
else {
|
|
205
|
-
throw new
|
|
205
|
+
throw new AgentResolutionError(context, `tools[${idx}].kind must be "provider" or "tool"`);
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
return out;
|
|
209
209
|
}
|
|
210
|
-
function
|
|
210
|
+
function projectAgentToRuntimeConfig(resolved, overlay) {
|
|
211
211
|
const root = resolved.root;
|
|
212
212
|
const agentRef = `${resolved.slug}@${resolved.version}`;
|
|
213
213
|
const rootInstructions = normalizeInstructions(root.instructions);
|
|
@@ -217,7 +217,7 @@ function projectCompositionToRuntimeConfig(resolved, overlay) {
|
|
|
217
217
|
const overlayModelOverride = projectModelOverride(overlay?.modelOverride, `${agentRef}#overlay`);
|
|
218
218
|
const rootPermission = normalizePermission(root.permission);
|
|
219
219
|
const overlayPermission = normalizePermission(overlay?.permission);
|
|
220
|
-
const flattened =
|
|
220
|
+
const flattened = flattenAgentTree(root);
|
|
221
221
|
return {
|
|
222
222
|
agentRef,
|
|
223
223
|
primaryAgentSlug: root.kernel.slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition-resolution.js","sourceRoot":"","sources":["../../src/lib/composition-resolution.ts"],"names":[],"mappings":";;;AA6HA,
|
|
1
|
+
{"version":3,"file":"composition-resolution.js","sourceRoot":"","sources":["../../src/lib/composition-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,28 +2,28 @@ import { type CompiledManifestCredential, type CompiledManifestPermissions, type
|
|
|
2
2
|
import type { PermissionMap } from '@xemahq/kernel-contracts/agent-permission';
|
|
3
3
|
import { type CompiledWorkspaceManifest } from '@xemahq/dsl/workspace-manifest';
|
|
4
4
|
export type { CompiledWorkspaceManifest };
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class AgentMountLayoutError extends Error {
|
|
6
6
|
constructor(agentRef: string, detail: string);
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
8
|
+
export interface AgentRunConfigInput {
|
|
9
9
|
readonly stage: string;
|
|
10
10
|
readonly role: string;
|
|
11
11
|
readonly deliverableSpecRef?: string;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
13
|
+
export interface AgentMountLayoutInput {
|
|
14
14
|
readonly mounts: Readonly<Record<string, unknown>>;
|
|
15
|
-
readonly agentRunConfig:
|
|
15
|
+
readonly agentRunConfig: AgentRunConfigInput;
|
|
16
16
|
readonly seedFiles: readonly unknown[];
|
|
17
17
|
readonly inputs: Readonly<Record<string, unknown>>;
|
|
18
18
|
}
|
|
19
|
-
export interface
|
|
19
|
+
export interface AgentSubAgentBindingInput {
|
|
20
20
|
readonly slug: string;
|
|
21
21
|
readonly alias?: string;
|
|
22
22
|
readonly modelOverride?: ModelRef;
|
|
23
23
|
readonly instructions?: string;
|
|
24
24
|
readonly permission?: PermissionMap;
|
|
25
25
|
}
|
|
26
|
-
export interface
|
|
26
|
+
export interface AgentOutputSurfaceInput {
|
|
27
27
|
readonly kind: 'none' | 'web' | 'static' | 'app' | 'tunnel';
|
|
28
28
|
readonly port?: number;
|
|
29
29
|
readonly healthPath?: string;
|
|
@@ -32,20 +32,20 @@ export interface CompositionOutputSurfaceInput {
|
|
|
32
32
|
readonly root?: string;
|
|
33
33
|
readonly defaultDocument?: string;
|
|
34
34
|
}
|
|
35
|
-
export interface
|
|
35
|
+
export interface AgentManifestSource {
|
|
36
36
|
readonly agentRef: string;
|
|
37
37
|
readonly primaryAgentSlug: string;
|
|
38
|
-
readonly subAgentBindings: readonly
|
|
39
|
-
readonly mountLayout:
|
|
40
|
-
readonly outputSurface?:
|
|
38
|
+
readonly subAgentBindings: readonly AgentSubAgentBindingInput[];
|
|
39
|
+
readonly mountLayout: AgentMountLayoutInput | undefined;
|
|
40
|
+
readonly outputSurface?: AgentOutputSurfaceInput;
|
|
41
41
|
readonly credentials?: readonly CompiledManifestCredential[];
|
|
42
42
|
readonly permissions?: CompiledManifestPermissions;
|
|
43
43
|
}
|
|
44
|
-
export interface
|
|
44
|
+
export interface AgentManifestImplicitInputs {
|
|
45
45
|
readonly orgId: string;
|
|
46
46
|
readonly projectId: string;
|
|
47
47
|
readonly sessionId?: string;
|
|
48
48
|
}
|
|
49
|
-
export declare function
|
|
50
|
-
export declare function
|
|
49
|
+
export declare function compileAgentWorkspaceManifest(source: AgentManifestSource, bindInputs: Readonly<Record<string, unknown>>): CompiledWorkspaceManifest;
|
|
50
|
+
export declare function buildAgentManifestBindInputs(source: AgentManifestSource, explicitInputs: Record<string, unknown> | null, implicitInputs: AgentManifestImplicitInputs): Readonly<Record<string, unknown>>;
|
|
51
51
|
//# sourceMappingURL=composition-workspace-manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition-workspace-manifest.d.ts","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"AA6BA,OAAO,EAIL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,QAAQ,EACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAEL,KAAK,yBAAyB,EAU/B,MAAM,gCAAgC,CAAC;AAMxC,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAQ1C,qBAAa,
|
|
1
|
+
{"version":3,"file":"composition-workspace-manifest.d.ts","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
3
|
+
exports.AgentMountLayoutError = void 0;
|
|
4
|
+
exports.compileAgentWorkspaceManifest = compileAgentWorkspaceManifest;
|
|
5
|
+
exports.buildAgentManifestBindInputs = buildAgentManifestBindInputs;
|
|
6
6
|
const workflow_1 = require("@xemahq/kernel-contracts/workflow");
|
|
7
7
|
const workspace_manifest_1 = require("@xemahq/dsl/workspace-manifest");
|
|
8
|
-
class
|
|
8
|
+
class AgentMountLayoutError extends Error {
|
|
9
9
|
constructor(agentRef, detail) {
|
|
10
10
|
super(`Cannot derive a workspace mount layout from Agent ` +
|
|
11
11
|
`"${agentRef}": ${detail}`);
|
|
12
|
-
this.name = '
|
|
12
|
+
this.name = 'AgentMountLayoutError';
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
exports.
|
|
16
|
-
function
|
|
15
|
+
exports.AgentMountLayoutError = AgentMountLayoutError;
|
|
16
|
+
function compileAgentWorkspaceManifest(source, bindInputs) {
|
|
17
17
|
const mountLayout = source.mountLayout;
|
|
18
18
|
if (!mountLayout) {
|
|
19
|
-
throw new
|
|
19
|
+
throw new AgentMountLayoutError(source.agentRef, 'the composition declares no `workspace.mountLayout` block — its ' +
|
|
20
20
|
'source workspace manifest was not projected by the llm-registry-api ' +
|
|
21
21
|
'composition seeder. Re-seed compositions (boot llm-registry-api) or ' +
|
|
22
22
|
'fix the source manifest.');
|
|
@@ -75,7 +75,7 @@ function compileCompositionWorkspaceManifest(source, bindInputs) {
|
|
|
75
75
|
};
|
|
76
76
|
const result = (0, workspace_manifest_1.compileManifest)(envelope, bindInputs);
|
|
77
77
|
if (!result.ok) {
|
|
78
|
-
throw new
|
|
78
|
+
throw new AgentMountLayoutError(source.agentRef, `reconstructed manifest failed to compile: ${result.errors
|
|
79
79
|
.map((e) => `${e.path}: ${e.message}`)
|
|
80
80
|
.join('; ')}`);
|
|
81
81
|
}
|
|
@@ -118,19 +118,19 @@ function projectPermissions(permissions) {
|
|
|
118
118
|
},
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
|
-
function
|
|
121
|
+
function buildAgentManifestBindInputs(source, explicitInputs, implicitInputs) {
|
|
122
122
|
const declared = new Set(Object.keys(source.mountLayout?.inputs ?? {}));
|
|
123
123
|
if (declared.size === 0) {
|
|
124
124
|
return {};
|
|
125
125
|
}
|
|
126
126
|
if (explicitInputs !== null &&
|
|
127
127
|
(typeof explicitInputs !== 'object' || Array.isArray(explicitInputs))) {
|
|
128
|
-
throw new
|
|
128
|
+
throw new AgentMountLayoutError(source.agentRef, 'explicit manifest inputs must be an object when provided');
|
|
129
129
|
}
|
|
130
130
|
const explicit = explicitInputs ?? {};
|
|
131
131
|
for (const [key, value] of Object.entries(explicit)) {
|
|
132
132
|
if (!declared.has(key)) {
|
|
133
|
-
throw new
|
|
133
|
+
throw new AgentMountLayoutError(source.agentRef, `manifest inputs contain undeclared key "${key}"`);
|
|
134
134
|
}
|
|
135
135
|
assertManifestInputValue(source.agentRef, key, value);
|
|
136
136
|
}
|
|
@@ -156,7 +156,7 @@ function buildCompositionManifestBindInputs(source, explicitInputs, implicitInpu
|
|
|
156
156
|
function splitAgentRef(ref) {
|
|
157
157
|
const at = ref.lastIndexOf('@');
|
|
158
158
|
if (at <= 0 || at === ref.length - 1) {
|
|
159
|
-
throw new
|
|
159
|
+
throw new AgentMountLayoutError(ref, 'expected a version-pinned `slug@version` composition ref — the ' +
|
|
160
160
|
'session resolver always pins the resolved version');
|
|
161
161
|
}
|
|
162
162
|
return [ref.slice(0, at), ref.slice(at + 1)];
|
|
@@ -167,12 +167,12 @@ function assertManifestInputValue(agentRef, key, value) {
|
|
|
167
167
|
typeof value !== 'number' &&
|
|
168
168
|
typeof value !== 'boolean' &&
|
|
169
169
|
!Array.isArray(value)) {
|
|
170
|
-
throw new
|
|
170
|
+
throw new AgentMountLayoutError(agentRef, `manifest input "${key}" must be a primitive ` +
|
|
171
171
|
`(string, number, boolean, string[]) — got ${typeof value}`);
|
|
172
172
|
}
|
|
173
173
|
if (Array.isArray(value) &&
|
|
174
174
|
!value.every((entry) => typeof entry === 'string')) {
|
|
175
|
-
throw new
|
|
175
|
+
throw new AgentMountLayoutError(agentRef, `manifest input "${key}" is an array — every element must be a string`);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
//# sourceMappingURL=composition-workspace-manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition-workspace-manifest.js","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":";;;AAwPA,
|
|
1
|
+
{"version":3,"file":"composition-workspace-manifest.js","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/agent-session-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -34,11 +34,14 @@
|
|
|
34
34
|
"jest": "^30.3.0",
|
|
35
35
|
"prettier": "3.6.2",
|
|
36
36
|
"ts-jest": "^29.4.9",
|
|
37
|
-
"typescript": "5.9.3"
|
|
37
|
+
"typescript": "5.9.3",
|
|
38
|
+
"@xemahq/kernel-contracts": "^0.13.0"
|
|
38
39
|
},
|
|
39
40
|
"dependencies": {
|
|
40
|
-
"@xemahq/dsl": "^0.
|
|
41
|
-
|
|
41
|
+
"@xemahq/dsl": "^0.4.0"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"@xemahq/kernel-contracts": ">=0.13.0"
|
|
42
45
|
},
|
|
43
46
|
"scripts": {
|
|
44
47
|
"clean": "rm -rf dist",
|
package/src/index.ts
CHANGED
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
|
|
26
26
|
export * from './lib/types';
|
|
27
27
|
export * from './lib/composer';
|
|
28
|
-
export * from './lib/
|
|
29
|
-
export * from './lib/
|
|
28
|
+
export * from './lib/agent-workspace-manifest';
|
|
29
|
+
export * from './lib/agent-resolution';
|
|
30
30
|
export * from './lib/skill-bundle-template-resolver';
|
|
31
31
|
export * from './lib/errors';
|
|
32
32
|
export * from './lib/environment-resolver';
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
//
|
|
17
17
|
// Tier-1 functions (collect / walk) copy the canonical agent-session-api
|
|
18
18
|
// resolver semantics EXACTLY: depth-first PRE-ORDER over DESCENDANTS,
|
|
19
|
-
// FIRST-occurrence-by-slug wins. Tier-2 (`
|
|
19
|
+
// FIRST-occurrence-by-slug wins. Tier-2 (`projectAgentToRuntimeConfig`)
|
|
20
20
|
// assembles those into the runtime projection.
|
|
21
21
|
//
|
|
22
22
|
// `RuntimeAgentConfig` lives HERE, not in `@xemahq/kernel-contracts`, because
|
|
@@ -52,10 +52,10 @@ import {
|
|
|
52
52
|
* composition resolver in llm-registry-api owns the wire format, so drift is
|
|
53
53
|
* a platform bug, not a user error. Fail-fast: no silent coercion.
|
|
54
54
|
*/
|
|
55
|
-
export class
|
|
55
|
+
export class AgentResolutionError extends Error {
|
|
56
56
|
constructor(context: string, detail: string) {
|
|
57
57
|
super(`Agent resolution failed for "${context}": ${detail}`);
|
|
58
|
-
this.name = '
|
|
58
|
+
this.name = 'AgentResolutionError';
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -68,7 +68,7 @@ export class CompositionResolutionError extends Error {
|
|
|
68
68
|
* dropped. Mirrors {@link SubAgentBinding} minus the kernel's intrinsic-floor
|
|
69
69
|
* semantics (those are merged downstream, per-consumer).
|
|
70
70
|
*/
|
|
71
|
-
export interface
|
|
71
|
+
export interface FlattenedAgentNode {
|
|
72
72
|
readonly slug: string;
|
|
73
73
|
readonly alias?: string;
|
|
74
74
|
readonly modelOverride?: ModelRef;
|
|
@@ -123,11 +123,11 @@ export interface RuntimeAgentConfig {
|
|
|
123
123
|
* This is where the worker drift is corrected: `modelOverride` is carried on
|
|
124
124
|
* every entry, never dropped.
|
|
125
125
|
*/
|
|
126
|
-
export function
|
|
126
|
+
export function flattenAgentTree(
|
|
127
127
|
root: ResolvedAgentNode,
|
|
128
|
-
): readonly
|
|
128
|
+
): readonly FlattenedAgentNode[] {
|
|
129
129
|
const seen = new Set<string>();
|
|
130
|
-
const out:
|
|
130
|
+
const out: FlattenedAgentNode[] = [];
|
|
131
131
|
const visit = (node: ResolvedAgentNode): void => {
|
|
132
132
|
for (const child of node.children) {
|
|
133
133
|
const slug = child.kernel.slug;
|
|
@@ -215,7 +215,7 @@ export function collectTools(
|
|
|
215
215
|
|
|
216
216
|
/**
|
|
217
217
|
* Per-descendant-slug normalized instructions, keyed by agent slug. Mirrors
|
|
218
|
-
* {@link
|
|
218
|
+
* {@link flattenAgentTree} (DFS pre-order, first-wins). A descendant
|
|
219
219
|
* with no (or whitespace-only) instructions contributes no key.
|
|
220
220
|
*/
|
|
221
221
|
export function collectInstructionsBySlug(
|
|
@@ -354,7 +354,7 @@ export function projectModelOverride(
|
|
|
354
354
|
}
|
|
355
355
|
if (raw.kind === ModelRefKind.CONCRETE) {
|
|
356
356
|
if (typeof raw.modelId !== 'string' || raw.modelId.trim().length === 0) {
|
|
357
|
-
throw new
|
|
357
|
+
throw new AgentResolutionError(
|
|
358
358
|
context,
|
|
359
359
|
'concrete modelOverride is missing a modelId',
|
|
360
360
|
);
|
|
@@ -368,7 +368,7 @@ export function projectModelOverride(
|
|
|
368
368
|
modelClass === undefined ||
|
|
369
369
|
!MODEL_CLASS_VALUES.includes(modelClass as ModelClass)
|
|
370
370
|
) {
|
|
371
|
-
throw new
|
|
371
|
+
throw new AgentResolutionError(
|
|
372
372
|
context,
|
|
373
373
|
`strategy modelOverride.modelClass must be one of ${MODEL_CLASS_VALUES.join(
|
|
374
374
|
', ',
|
|
@@ -410,7 +410,7 @@ function projectToolSelection(
|
|
|
410
410
|
typeof tool.providerKind !== 'string' ||
|
|
411
411
|
!validKinds.has(tool.providerKind)
|
|
412
412
|
) {
|
|
413
|
-
throw new
|
|
413
|
+
throw new AgentResolutionError(
|
|
414
414
|
context,
|
|
415
415
|
`tools[${idx}].providerKind must be one of ${Object.values(
|
|
416
416
|
ToolProviderKind,
|
|
@@ -421,7 +421,7 @@ function projectToolSelection(
|
|
|
421
421
|
typeof tool.resourceId !== 'string' ||
|
|
422
422
|
tool.resourceId.trim().length === 0
|
|
423
423
|
) {
|
|
424
|
-
throw new
|
|
424
|
+
throw new AgentResolutionError(
|
|
425
425
|
context,
|
|
426
426
|
`tools[${idx}].resourceId must be a non-empty string`,
|
|
427
427
|
);
|
|
@@ -437,7 +437,7 @@ function projectToolSelection(
|
|
|
437
437
|
typeof tool.toolName !== 'string' ||
|
|
438
438
|
tool.toolName.trim().length === 0
|
|
439
439
|
) {
|
|
440
|
-
throw new
|
|
440
|
+
throw new AgentResolutionError(
|
|
441
441
|
context,
|
|
442
442
|
`tools[${idx}].toolName must be a non-empty string for kind='tool'`,
|
|
443
443
|
);
|
|
@@ -449,7 +449,7 @@ function projectToolSelection(
|
|
|
449
449
|
toolName: tool.toolName,
|
|
450
450
|
});
|
|
451
451
|
} else {
|
|
452
|
-
throw new
|
|
452
|
+
throw new AgentResolutionError(
|
|
453
453
|
context,
|
|
454
454
|
`tools[${idx}].kind must be "provider" or "tool"`,
|
|
455
455
|
);
|
|
@@ -477,7 +477,7 @@ function projectToolSelection(
|
|
|
477
477
|
* deep-merge against the AGENT's authored permission happens in the
|
|
478
478
|
* downstream materializer, not in this projection).
|
|
479
479
|
*/
|
|
480
|
-
export function
|
|
480
|
+
export function projectAgentToRuntimeConfig(
|
|
481
481
|
resolved: ResolvedAgent,
|
|
482
482
|
overlay?: NodeOverlayFragment,
|
|
483
483
|
): RuntimeAgentConfig {
|
|
@@ -504,7 +504,7 @@ export function projectCompositionToRuntimeConfig(
|
|
|
504
504
|
const rootPermission = normalizePermission(root.permission);
|
|
505
505
|
const overlayPermission = normalizePermission(overlay?.permission);
|
|
506
506
|
|
|
507
|
-
const flattened =
|
|
507
|
+
const flattened = flattenAgentTree(root);
|
|
508
508
|
|
|
509
509
|
return {
|
|
510
510
|
agentRef,
|