@xemahq/agent-session-runtime 0.1.1 → 0.3.0
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/LICENSE +175 -201
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/composition-resolution.d.ts +43 -0
- package/dist/lib/composition-resolution.d.ts.map +1 -0
- package/dist/lib/composition-resolution.js +236 -0
- package/dist/lib/composition-resolution.js.map +1 -0
- package/dist/lib/composition-workspace-manifest.d.ts +7 -0
- package/dist/lib/composition-workspace-manifest.d.ts.map +1 -1
- package/dist/lib/composition-workspace-manifest.js +36 -1
- package/dist/lib/composition-workspace-manifest.js.map +1 -1
- package/package.json +8 -3
- package/src/index.ts +1 -0
- package/src/lib/composition-resolution.ts +524 -0
- package/src/lib/composition-workspace-manifest.ts +126 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompositionResolutionError = void 0;
|
|
4
|
+
exports.flattenCompositionTree = flattenCompositionTree;
|
|
5
|
+
exports.collectSkills = collectSkills;
|
|
6
|
+
exports.collectTools = collectTools;
|
|
7
|
+
exports.collectInstructionsBySlug = collectInstructionsBySlug;
|
|
8
|
+
exports.collectPermissionsBySlug = collectPermissionsBySlug;
|
|
9
|
+
exports.collectModelOverridesBySlug = collectModelOverridesBySlug;
|
|
10
|
+
exports.appendInstructions = appendInstructions;
|
|
11
|
+
exports.normalizeInstructions = normalizeInstructions;
|
|
12
|
+
exports.normalizePermission = normalizePermission;
|
|
13
|
+
exports.projectModelOverride = projectModelOverride;
|
|
14
|
+
exports.projectCompositionToRuntimeConfig = projectCompositionToRuntimeConfig;
|
|
15
|
+
const workflow_1 = require("@xemahq/kernel-contracts/workflow");
|
|
16
|
+
const mcp_tool_1 = require("@xemahq/kernel-contracts/mcp-tool");
|
|
17
|
+
class CompositionResolutionError extends Error {
|
|
18
|
+
constructor(context, detail) {
|
|
19
|
+
super(`Composition resolution failed for "${context}": ${detail}`);
|
|
20
|
+
this.name = 'CompositionResolutionError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.CompositionResolutionError = CompositionResolutionError;
|
|
24
|
+
function flattenCompositionTree(root) {
|
|
25
|
+
const seen = new Set();
|
|
26
|
+
const out = [];
|
|
27
|
+
const visit = (node) => {
|
|
28
|
+
for (const child of node.children) {
|
|
29
|
+
const slug = child.agent.slug;
|
|
30
|
+
if (slug.length === 0) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (!seen.has(slug)) {
|
|
34
|
+
seen.add(slug);
|
|
35
|
+
out.push({
|
|
36
|
+
slug,
|
|
37
|
+
...(child.alias ? { alias: child.alias } : {}),
|
|
38
|
+
...(child.modelOverride
|
|
39
|
+
? { modelOverride: child.modelOverride }
|
|
40
|
+
: {}),
|
|
41
|
+
...(child.instructions ? { instructions: child.instructions } : {}),
|
|
42
|
+
...(child.permission ? { permission: child.permission } : {}),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
visit(child);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
visit(root);
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
function collectSkills(root, opts) {
|
|
52
|
+
const scope = opts?.scope ?? 'tree';
|
|
53
|
+
const seen = new Set();
|
|
54
|
+
const out = [];
|
|
55
|
+
const addNode = (node) => {
|
|
56
|
+
for (const slug of projectSkillSlugs(node.skills)) {
|
|
57
|
+
if (!seen.has(slug)) {
|
|
58
|
+
seen.add(slug);
|
|
59
|
+
out.push(slug);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
addNode(root);
|
|
64
|
+
if (scope === 'tree') {
|
|
65
|
+
const visit = (node) => {
|
|
66
|
+
for (const child of node.children) {
|
|
67
|
+
addNode(child);
|
|
68
|
+
visit(child);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
visit(root);
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
function collectTools(root, opts) {
|
|
76
|
+
const scope = opts?.scope ?? 'root';
|
|
77
|
+
const ctx = root.agent.slug;
|
|
78
|
+
if (scope === 'root') {
|
|
79
|
+
return projectToolSelection(root.tools, ctx);
|
|
80
|
+
}
|
|
81
|
+
const out = [...projectToolSelection(root.tools, ctx)];
|
|
82
|
+
const visit = (node) => {
|
|
83
|
+
for (const child of node.children) {
|
|
84
|
+
out.push(...projectToolSelection(child.tools, child.agent.slug));
|
|
85
|
+
visit(child);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
visit(root);
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
function collectInstructionsBySlug(root) {
|
|
92
|
+
return collectDescendantOverlay(root, (child) => normalizeInstructions(child.instructions));
|
|
93
|
+
}
|
|
94
|
+
function collectPermissionsBySlug(root) {
|
|
95
|
+
return collectDescendantOverlay(root, (child) => normalizePermission(child.permission));
|
|
96
|
+
}
|
|
97
|
+
function collectModelOverridesBySlug(root) {
|
|
98
|
+
return collectDescendantOverlay(root, (child) => projectModelOverride(child.modelOverride, child.agent.slug));
|
|
99
|
+
}
|
|
100
|
+
function collectDescendantOverlay(root, project) {
|
|
101
|
+
const out = {};
|
|
102
|
+
const seen = new Set();
|
|
103
|
+
const visit = (node) => {
|
|
104
|
+
for (const child of node.children) {
|
|
105
|
+
const slug = child.agent.slug;
|
|
106
|
+
if (slug.length === 0) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (!seen.has(slug)) {
|
|
110
|
+
seen.add(slug);
|
|
111
|
+
const value = project(child);
|
|
112
|
+
if (value !== null) {
|
|
113
|
+
out[slug] = value;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
visit(child);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
visit(root);
|
|
120
|
+
return out;
|
|
121
|
+
}
|
|
122
|
+
function appendInstructions(baseSystemPrompt, nodeInstructions) {
|
|
123
|
+
const trimmed = nodeInstructions === null ? '' : nodeInstructions.trim();
|
|
124
|
+
if (trimmed.length === 0) {
|
|
125
|
+
return baseSystemPrompt;
|
|
126
|
+
}
|
|
127
|
+
if (baseSystemPrompt.length === 0) {
|
|
128
|
+
return trimmed;
|
|
129
|
+
}
|
|
130
|
+
return `${baseSystemPrompt}\n\n${trimmed}`;
|
|
131
|
+
}
|
|
132
|
+
function normalizeInstructions(raw) {
|
|
133
|
+
if (typeof raw !== 'string') {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
const trimmed = raw.trim();
|
|
137
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
138
|
+
}
|
|
139
|
+
function normalizePermission(raw) {
|
|
140
|
+
if (!raw || typeof raw !== 'object' || Object.keys(raw).length === 0) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
return raw;
|
|
144
|
+
}
|
|
145
|
+
function projectModelOverride(raw, context) {
|
|
146
|
+
if (raw === undefined) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
if (raw.kind === workflow_1.ModelRefKind.CONCRETE) {
|
|
150
|
+
if (typeof raw.modelId !== 'string' || raw.modelId.trim().length === 0) {
|
|
151
|
+
throw new CompositionResolutionError(context, 'concrete modelOverride is missing a modelId');
|
|
152
|
+
}
|
|
153
|
+
return raw;
|
|
154
|
+
}
|
|
155
|
+
const modelClass = raw.modelClass;
|
|
156
|
+
if (modelClass === undefined ||
|
|
157
|
+
!workflow_1.MODEL_CLASS_VALUES.includes(modelClass)) {
|
|
158
|
+
throw new CompositionResolutionError(context, `strategy modelOverride.modelClass must be one of ${workflow_1.MODEL_CLASS_VALUES.join(', ')}`);
|
|
159
|
+
}
|
|
160
|
+
return raw;
|
|
161
|
+
}
|
|
162
|
+
function projectSkillSlugs(skills) {
|
|
163
|
+
if (!Array.isArray(skills)) {
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
return skills
|
|
167
|
+
.map((s) => s.slug)
|
|
168
|
+
.filter((slug) => typeof slug === 'string' && slug.length > 0);
|
|
169
|
+
}
|
|
170
|
+
function projectToolSelection(tools, context) {
|
|
171
|
+
if (!Array.isArray(tools)) {
|
|
172
|
+
return [];
|
|
173
|
+
}
|
|
174
|
+
const validKinds = new Set(Object.values(mcp_tool_1.ToolProviderKind));
|
|
175
|
+
const out = [];
|
|
176
|
+
for (const [idx, tool] of tools.entries()) {
|
|
177
|
+
if (typeof tool.providerKind !== 'string' ||
|
|
178
|
+
!validKinds.has(tool.providerKind)) {
|
|
179
|
+
throw new CompositionResolutionError(context, `tools[${idx}].providerKind must be one of ${Object.values(mcp_tool_1.ToolProviderKind).join(', ')}`);
|
|
180
|
+
}
|
|
181
|
+
if (typeof tool.resourceId !== 'string' ||
|
|
182
|
+
tool.resourceId.trim().length === 0) {
|
|
183
|
+
throw new CompositionResolutionError(context, `tools[${idx}].resourceId must be a non-empty string`);
|
|
184
|
+
}
|
|
185
|
+
if (tool.kind === 'provider') {
|
|
186
|
+
out.push({
|
|
187
|
+
kind: 'provider',
|
|
188
|
+
providerKind: tool.providerKind,
|
|
189
|
+
resourceId: tool.resourceId,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else if (tool.kind === 'tool') {
|
|
193
|
+
if (typeof tool.toolName !== 'string' ||
|
|
194
|
+
tool.toolName.trim().length === 0) {
|
|
195
|
+
throw new CompositionResolutionError(context, `tools[${idx}].toolName must be a non-empty string for kind='tool'`);
|
|
196
|
+
}
|
|
197
|
+
out.push({
|
|
198
|
+
kind: 'tool',
|
|
199
|
+
providerKind: tool.providerKind,
|
|
200
|
+
resourceId: tool.resourceId,
|
|
201
|
+
toolName: tool.toolName,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
throw new CompositionResolutionError(context, `tools[${idx}].kind must be "provider" or "tool"`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
function projectCompositionToRuntimeConfig(resolved, overlay) {
|
|
211
|
+
const root = resolved.root;
|
|
212
|
+
const compositionRef = `${resolved.slug}@${resolved.version}`;
|
|
213
|
+
const rootInstructions = normalizeInstructions(root.instructions);
|
|
214
|
+
const overlayInstructions = normalizeInstructions(overlay?.instructions);
|
|
215
|
+
const primaryInstructions = appendInstructions(rootInstructions ?? '', overlayInstructions);
|
|
216
|
+
const rootModelOverride = projectModelOverride(root.modelOverride, compositionRef);
|
|
217
|
+
const overlayModelOverride = projectModelOverride(overlay?.modelOverride, `${compositionRef}#overlay`);
|
|
218
|
+
const rootPermission = normalizePermission(root.permission);
|
|
219
|
+
const overlayPermission = normalizePermission(overlay?.permission);
|
|
220
|
+
const flattened = flattenCompositionTree(root);
|
|
221
|
+
return {
|
|
222
|
+
compositionRef,
|
|
223
|
+
primaryAgentSlug: root.agent.slug,
|
|
224
|
+
primaryInstructions: primaryInstructions.length > 0 ? primaryInstructions : null,
|
|
225
|
+
primaryPermission: overlayPermission ?? rootPermission,
|
|
226
|
+
primaryModelOverride: overlayModelOverride ?? rootModelOverride,
|
|
227
|
+
subAgentBindings: flattened.map((n) => ({ ...n })),
|
|
228
|
+
subAgentInstructionsBySlug: collectInstructionsBySlug(root),
|
|
229
|
+
subAgentPermissionBySlug: collectPermissionsBySlug(root),
|
|
230
|
+
subAgentModelOverridesBySlug: collectModelOverridesBySlug(root),
|
|
231
|
+
defaultSkillSlugs: collectSkills(root, { scope: 'root' }),
|
|
232
|
+
allSkillSlugs: collectSkills(root, { scope: 'tree' }),
|
|
233
|
+
defaultToolSelection: collectTools(root, { scope: 'root' }),
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=composition-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-resolution.js","sourceRoot":"","sources":["../../src/lib/composition-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type CompiledManifestCredential, type CompiledManifestPermissions, type ModelRef } from '@xemahq/kernel-contracts/workflow';
|
|
2
|
+
import type { PermissionMap } from '@xemahq/kernel-contracts/agent-permission';
|
|
1
3
|
import { type CompiledWorkspaceManifest } from '@xemahq/dsl/workspace-manifest';
|
|
2
4
|
export type { CompiledWorkspaceManifest };
|
|
3
5
|
export declare class CompositionMountLayoutError extends Error {
|
|
@@ -17,6 +19,9 @@ export interface CompositionMountLayoutInput {
|
|
|
17
19
|
export interface CompositionSubAgentBindingInput {
|
|
18
20
|
readonly slug: string;
|
|
19
21
|
readonly alias?: string;
|
|
22
|
+
readonly modelOverride?: ModelRef;
|
|
23
|
+
readonly instructions?: string;
|
|
24
|
+
readonly permission?: PermissionMap;
|
|
20
25
|
}
|
|
21
26
|
export interface CompositionOutputSurfaceInput {
|
|
22
27
|
readonly kind: 'none' | 'web' | 'static' | 'app' | 'tunnel';
|
|
@@ -33,6 +38,8 @@ export interface CompositionManifestSource {
|
|
|
33
38
|
readonly subAgentBindings: readonly CompositionSubAgentBindingInput[];
|
|
34
39
|
readonly mountLayout: CompositionMountLayoutInput | undefined;
|
|
35
40
|
readonly outputSurface?: CompositionOutputSurfaceInput;
|
|
41
|
+
readonly credentials?: readonly CompiledManifestCredential[];
|
|
42
|
+
readonly permissions?: CompiledManifestPermissions;
|
|
36
43
|
}
|
|
37
44
|
export interface CompositionManifestImplicitInputs {
|
|
38
45
|
readonly orgId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition-workspace-manifest.d.ts","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"composition-workspace-manifest.d.ts","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,8 +25,19 @@ function compileCompositionWorkspaceManifest(source, bindInputs) {
|
|
|
25
25
|
const subAgents = source.subAgentBindings.map((binding) => ({
|
|
26
26
|
slug: binding.slug,
|
|
27
27
|
...(binding.alias !== undefined ? { alias: binding.alias } : {}),
|
|
28
|
+
...(binding.modelOverride !== undefined
|
|
29
|
+
? { defaultModel: binding.modelOverride }
|
|
30
|
+
: {}),
|
|
31
|
+
...(binding.instructions !== undefined
|
|
32
|
+
? { instructions: binding.instructions }
|
|
33
|
+
: {}),
|
|
34
|
+
...(binding.permission !== undefined
|
|
35
|
+
? { permission: binding.permission }
|
|
36
|
+
: {}),
|
|
28
37
|
}));
|
|
29
38
|
const outputSurface = projectOutputSurface(source.outputSurface);
|
|
39
|
+
const credentials = projectCredentials(source.credentials);
|
|
40
|
+
const permissions = projectPermissions(source.permissions);
|
|
30
41
|
const spec = {
|
|
31
42
|
mounts: mountLayout.mounts,
|
|
32
43
|
agent: {
|
|
@@ -49,6 +60,8 @@ function compileCompositionWorkspaceManifest(source, bindInputs) {
|
|
|
49
60
|
}
|
|
50
61
|
: {}),
|
|
51
62
|
...(outputSurface === undefined ? {} : { outputSurface }),
|
|
63
|
+
...(credentials === undefined ? {} : { credentials }),
|
|
64
|
+
...(permissions === undefined ? {} : { permissions }),
|
|
52
65
|
};
|
|
53
66
|
const envelope = {
|
|
54
67
|
apiVersion: 'xema.dev/workspace/v1',
|
|
@@ -74,7 +87,9 @@ function projectOutputSurface(surface) {
|
|
|
74
87
|
return {
|
|
75
88
|
kind: surface.kind,
|
|
76
89
|
...(surface.port === undefined ? {} : { port: surface.port }),
|
|
77
|
-
...(surface.healthPath === undefined
|
|
90
|
+
...(surface.healthPath === undefined
|
|
91
|
+
? {}
|
|
92
|
+
: { healthPath: surface.healthPath }),
|
|
78
93
|
...(surface.autoOpen === undefined ? {} : { autoOpen: surface.autoOpen }),
|
|
79
94
|
...(surface.mode === undefined ? {} : { mode: surface.mode }),
|
|
80
95
|
...(surface.root === undefined ? {} : { root: surface.root }),
|
|
@@ -83,6 +98,26 @@ function projectOutputSurface(surface) {
|
|
|
83
98
|
: { defaultDocument: surface.defaultDocument }),
|
|
84
99
|
};
|
|
85
100
|
}
|
|
101
|
+
function projectCredentials(credentials) {
|
|
102
|
+
if (credentials === undefined)
|
|
103
|
+
return undefined;
|
|
104
|
+
return credentials.map((credential) => ({
|
|
105
|
+
name: credential.name,
|
|
106
|
+
kind: credential.kind,
|
|
107
|
+
sourceRef: credential.sourceRef,
|
|
108
|
+
required: credential.required,
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
function projectPermissions(permissions) {
|
|
112
|
+
if (permissions === undefined)
|
|
113
|
+
return undefined;
|
|
114
|
+
return {
|
|
115
|
+
tools: {
|
|
116
|
+
allow: permissions.tools.allow,
|
|
117
|
+
deny: permissions.tools.deny,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
86
121
|
function buildCompositionManifestBindInputs(source, explicitInputs, implicitInputs) {
|
|
87
122
|
const declared = new Set(Object.keys(source.mountLayout?.inputs ?? {}));
|
|
88
123
|
if (declared.size === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition-workspace-manifest.js","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"composition-workspace-manifest.js","sourceRoot":"","sources":["../../src/lib/composition-workspace-manifest.ts"],"names":[],"mappings":";;;AAwPA,kFAyGC;AA0GD,gFAiDC;AA/dD,gEAO2C;AAE3C,uEAYwC;AAcxC,MAAa,2BAA4B,SAAQ,KAAK;IACpD,YAAY,cAAsB,EAAE,MAAc;QAChD,KAAK,CACH,gEAAgE;YAC9D,IAAI,cAAc,MAAM,MAAM,EAAE,CACnC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AARD,kEAQC;AAgLD,SAAgB,mCAAmC,CACjD,MAAiC,EACjC,UAA6C;IAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,2BAA2B,CACnC,MAAM,CAAC,cAAc,EACrB,kEAAkE;YAChE,sEAAsE;YACtE,sEAAsE;YACtE,0BAA0B,CAC7B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAOnE,MAAM,SAAS,GAAuB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAC/D,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAMhE,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CACH,CAAC;IAOF,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,IAAI,GAA0B;QAClC,MAAM,EAAE,WAAW,CAAC,MAAwC;QAC5D,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC,gBAAgB;YAC7B,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,KAAK;YACvC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,IAAoB;YACrD,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,KAAK,SAAS;gBAC7D,CAAC,CAAC,EAAE,kBAAkB,EAAE,WAAW,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBACvE,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YAC5C,CAAC,CAAC;gBACE,MAAM,EAAE,WAAW,CAAC,MAGnB;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAC;gBACE,SAAS,EACP,WAAW,CAAC,SAAmD;aAClE;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC;IAEF,MAAM,QAAQ,GAAyB;QACrC,UAAU,EAAE,uBAAuB;QACnC,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE;YACR,IAAI;YACJ,OAAO;YAIP,aAAa,EAAE,CAAC,0BAAe,CAAC,aAAa,CAAC;SAC/C;QACD,IAAI;KACL,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,2BAA2B,CACnC,MAAM,CAAC,cAAc,EACrB,6CAA6C,MAAM,CAAC,MAAM;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAcD,SAAS,oBAAoB,CAC3B,OAAkD;IAElD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAyB;QACvC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAmBD,SAAS,kBAAkB,CACzB,WAA8D;IAE9D,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AAqBD,SAAS,kBAAkB,CACzB,WAAoD;IAEpD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO;QACL,KAAK,EAAE;YACL,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK;YAC9B,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI;SAC7B;KACF,CAAC;AACJ,CAAC;AAeD,SAAgB,kCAAkC,CAChD,MAAiC,EACjC,cAA8C,EAC9C,cAAiD;IAEjD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IACE,cAAc,KAAK,IAAI;QACvB,CAAC,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EACrE,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,MAAM,CAAC,cAAc,EACrB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,IAAI,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,2BAA2B,CACnC,MAAM,CAAC,cAAc,EACrB,2CAA2C,GAAG,GAAG,CAClD,CAAC;QACJ,CAAC;QACD,wBAAwB,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAuC;QACnD,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,GAAG,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,2BAA2B,CACnC,GAAG,EACH,iEAAiE;YAC/D,mDAAmD,CACtD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAQD,SAAS,wBAAwB,CAC/B,cAAsB,EACtB,GAAW,EACX,KAAc;IAEd,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,cAAc,EACd,mBAAmB,GAAG,wBAAwB;YAC5C,6CAA6C,OAAO,KAAK,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAClD,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,cAAc,EACd,mBAAmB,GAAG,gDAAgD,CACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/agent-session-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"publishConfig": {
|
|
5
|
-
"registry": "https://
|
|
5
|
+
"registry": "https://registry.npmjs.org/",
|
|
6
|
+
"access": "public"
|
|
6
7
|
},
|
|
7
8
|
"main": "dist/index.js",
|
|
8
9
|
"types": "dist/index.d.ts",
|
|
@@ -28,18 +29,22 @@
|
|
|
28
29
|
"src"
|
|
29
30
|
],
|
|
30
31
|
"devDependencies": {
|
|
32
|
+
"@types/jest": "^30.0.0",
|
|
31
33
|
"@types/node": "25.2.3",
|
|
34
|
+
"jest": "^30.3.0",
|
|
32
35
|
"prettier": "3.6.2",
|
|
36
|
+
"ts-jest": "^29.4.9",
|
|
33
37
|
"typescript": "5.9.3"
|
|
34
38
|
},
|
|
35
39
|
"dependencies": {
|
|
36
40
|
"@xemahq/dsl": "^0.1.1",
|
|
37
|
-
"@xemahq/kernel-contracts": "^0.
|
|
41
|
+
"@xemahq/kernel-contracts": "^0.3.7"
|
|
38
42
|
},
|
|
39
43
|
"scripts": {
|
|
40
44
|
"clean": "rm -rf dist",
|
|
41
45
|
"build": "tsc -p tsconfig.json",
|
|
42
46
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
47
|
+
"test": "jest --config jest.config.ts",
|
|
43
48
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
44
49
|
}
|
|
45
50
|
}
|
package/src/index.ts
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
export * from './lib/types';
|
|
27
27
|
export * from './lib/composer';
|
|
28
28
|
export * from './lib/composition-workspace-manifest';
|
|
29
|
+
export * from './lib/composition-resolution';
|
|
29
30
|
export * from './lib/skill-bundle-template-resolver';
|
|
30
31
|
export * from './lib/errors';
|
|
31
32
|
export * from './lib/environment-resolver';
|