@xemahq/agent-session-runtime 0.7.0 → 0.9.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/dist/lib/agent-resolution.d.ts.map +1 -1
- package/dist/lib/agent-resolution.js.map +1 -1
- package/dist/lib/composer.d.ts +25 -2
- package/dist/lib/composer.d.ts.map +1 -1
- package/dist/lib/composer.js +237 -81
- package/dist/lib/composer.js.map +1 -1
- package/dist/lib/launch-identity/canonical-contract.d.ts +1 -0
- package/dist/lib/launch-identity/canonical-contract.d.ts.map +1 -1
- package/dist/lib/launch-identity/canonical-contract.js +14 -2
- package/dist/lib/launch-identity/canonical-contract.js.map +1 -1
- package/dist/lib/launch-identity/compiled-session-launch-plan.d.ts.map +1 -1
- package/dist/lib/launch-identity/compiled-session-launch-plan.js +1 -5
- package/dist/lib/launch-identity/compiled-session-launch-plan.js.map +1 -1
- package/dist/lib/launch-identity/index.d.ts +2 -0
- package/dist/lib/launch-identity/index.d.ts.map +1 -1
- package/dist/lib/launch-identity/index.js +2 -0
- package/dist/lib/launch-identity/index.js.map +1 -1
- package/dist/lib/launch-identity/preparation-generation.d.ts +26 -0
- package/dist/lib/launch-identity/preparation-generation.d.ts.map +1 -0
- package/dist/lib/launch-identity/preparation-generation.js +88 -0
- package/dist/lib/launch-identity/preparation-generation.js.map +1 -0
- package/dist/lib/launch-identity/prepared-launch-variant.d.ts +46 -0
- package/dist/lib/launch-identity/prepared-launch-variant.d.ts.map +1 -0
- package/dist/lib/launch-identity/prepared-launch-variant.js +118 -0
- package/dist/lib/launch-identity/prepared-launch-variant.js.map +1 -0
- package/dist/lib/launch-identity/runtime-template-key.d.ts.map +1 -1
- package/dist/lib/launch-identity/runtime-template-key.js +1 -5
- package/dist/lib/launch-identity/runtime-template-key.js.map +1 -1
- package/package.json +21 -20
- package/src/lib/agent-resolution.ts +15 -4
- package/src/lib/composer.ts +396 -135
- package/src/lib/launch-identity/canonical-contract.ts +36 -2
- package/src/lib/launch-identity/compiled-session-launch-plan.ts +2 -10
- package/src/lib/launch-identity/index.ts +2 -0
- package/src/lib/launch-identity/preparation-generation.ts +171 -0
- package/src/lib/launch-identity/prepared-launch-variant.ts +263 -0
- package/src/lib/launch-identity/runtime-template-key.ts +2 -7
- package/LICENSE +0 -176
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PreparedLaunchVariantStatus = void 0;
|
|
4
|
+
exports.createPreparedLaunchVariantKey = createPreparedLaunchVariantKey;
|
|
5
|
+
exports.serializePreparedLaunchVariantKey = serializePreparedLaunchVariantKey;
|
|
6
|
+
exports.hashPreparedLaunchVariantKey = hashPreparedLaunchVariantKey;
|
|
7
|
+
exports.createPreparedLaunchVariant = createPreparedLaunchVariant;
|
|
8
|
+
exports.serializePreparedLaunchVariant = serializePreparedLaunchVariant;
|
|
9
|
+
exports.hashPreparedLaunchVariant = hashPreparedLaunchVariant;
|
|
10
|
+
const worker_runtime_1 = require("@xemahq/kernel-contracts/worker-runtime");
|
|
11
|
+
const canonical_contract_1 = require("./canonical-contract");
|
|
12
|
+
const preparation_generation_1 = require("./preparation-generation");
|
|
13
|
+
const runtime_template_key_1 = require("./runtime-template-key");
|
|
14
|
+
var PreparedLaunchVariantStatus;
|
|
15
|
+
(function (PreparedLaunchVariantStatus) {
|
|
16
|
+
PreparedLaunchVariantStatus["Materializing"] = "materializing";
|
|
17
|
+
PreparedLaunchVariantStatus["Ready"] = "ready";
|
|
18
|
+
PreparedLaunchVariantStatus["Failed"] = "failed";
|
|
19
|
+
PreparedLaunchVariantStatus["Retired"] = "retired";
|
|
20
|
+
})(PreparedLaunchVariantStatus || (exports.PreparedLaunchVariantStatus = PreparedLaunchVariantStatus = {}));
|
|
21
|
+
const KEY_KEYS = [
|
|
22
|
+
'schemaVersion',
|
|
23
|
+
'runtimeKind',
|
|
24
|
+
'runtimeRevision',
|
|
25
|
+
'imageDigest',
|
|
26
|
+
'layoutProfileRef',
|
|
27
|
+
'staticDependencyClosureHash',
|
|
28
|
+
'tenantDependency',
|
|
29
|
+
'trustPolicy',
|
|
30
|
+
'policyGenerationHash',
|
|
31
|
+
'region',
|
|
32
|
+
];
|
|
33
|
+
const VARIANT_KEYS = [
|
|
34
|
+
'id',
|
|
35
|
+
'preparationGenerationId',
|
|
36
|
+
'key',
|
|
37
|
+
'keyHash',
|
|
38
|
+
'compiledLaunchPlanHash',
|
|
39
|
+
'preparedRuntimeTemplateHash',
|
|
40
|
+
'preparedRuntimeTemplateRef',
|
|
41
|
+
'status',
|
|
42
|
+
'rowVersion',
|
|
43
|
+
];
|
|
44
|
+
const VARIANT_OPTIONAL_KEYS = ['failure'];
|
|
45
|
+
const RUNTIME_KINDS = Object.values(worker_runtime_1.WorkerRuntimeKind);
|
|
46
|
+
const TENANT_DEPENDENCY_KINDS = Object.values(runtime_template_key_1.RuntimeTemplateTenantDependency);
|
|
47
|
+
const TRUST_POLICIES = Object.values(runtime_template_key_1.RuntimeTemplateTrustPolicy);
|
|
48
|
+
const VARIANT_STATUSES = Object.values(PreparedLaunchVariantStatus);
|
|
49
|
+
function createPreparedLaunchVariantKey(input) {
|
|
50
|
+
const object = (0, canonical_contract_1.requireExactObject)(input, 'PreparedLaunchVariantKey', KEY_KEYS);
|
|
51
|
+
if (object.schemaVersion !== 1) {
|
|
52
|
+
throw new TypeError('PreparedLaunchVariantKey.schemaVersion must be 1.');
|
|
53
|
+
}
|
|
54
|
+
return Object.freeze({
|
|
55
|
+
schemaVersion: 1,
|
|
56
|
+
runtimeKind: (0, canonical_contract_1.requireEnumValue)(object.runtimeKind, 'PreparedLaunchVariantKey.runtimeKind', RUNTIME_KINDS),
|
|
57
|
+
runtimeRevision: (0, canonical_contract_1.requireNonEmptyString)(object.runtimeRevision, 'PreparedLaunchVariantKey.runtimeRevision'),
|
|
58
|
+
imageDigest: (0, canonical_contract_1.requireImageDigest)(object.imageDigest, 'PreparedLaunchVariantKey.imageDigest'),
|
|
59
|
+
layoutProfileRef: (0, canonical_contract_1.requireNonEmptyString)(object.layoutProfileRef, 'PreparedLaunchVariantKey.layoutProfileRef'),
|
|
60
|
+
staticDependencyClosureHash: (0, canonical_contract_1.requireSha256)(object.staticDependencyClosureHash, 'PreparedLaunchVariantKey.staticDependencyClosureHash'),
|
|
61
|
+
tenantDependency: requireTenantDependency(object.tenantDependency),
|
|
62
|
+
trustPolicy: (0, canonical_contract_1.requireEnumValue)(object.trustPolicy, 'PreparedLaunchVariantKey.trustPolicy', TRUST_POLICIES),
|
|
63
|
+
policyGenerationHash: (0, canonical_contract_1.requireSha256)(object.policyGenerationHash, 'PreparedLaunchVariantKey.policyGenerationHash'),
|
|
64
|
+
region: (0, canonical_contract_1.requireNonEmptyString)(object.region, 'PreparedLaunchVariantKey.region'),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function serializePreparedLaunchVariantKey(input) {
|
|
68
|
+
return (0, canonical_contract_1.canonicalContractJson)(createPreparedLaunchVariantKey(input));
|
|
69
|
+
}
|
|
70
|
+
function hashPreparedLaunchVariantKey(input) {
|
|
71
|
+
return (0, canonical_contract_1.hashCanonicalContract)(createPreparedLaunchVariantKey(input));
|
|
72
|
+
}
|
|
73
|
+
function createPreparedLaunchVariant(input) {
|
|
74
|
+
const object = (0, canonical_contract_1.requireExactObject)(input, 'PreparedLaunchVariant', VARIANT_KEYS, VARIANT_OPTIONAL_KEYS);
|
|
75
|
+
const key = createPreparedLaunchVariantKey(object.key);
|
|
76
|
+
const keyHash = (0, canonical_contract_1.requireSha256)(object.keyHash, 'PreparedLaunchVariant.keyHash');
|
|
77
|
+
if (keyHash !== hashPreparedLaunchVariantKey(key)) {
|
|
78
|
+
throw new TypeError('PreparedLaunchVariant.keyHash must equal the canonical key hash.');
|
|
79
|
+
}
|
|
80
|
+
const status = (0, canonical_contract_1.requireEnumValue)(object.status, 'PreparedLaunchVariant.status', VARIANT_STATUSES);
|
|
81
|
+
const failure = (0, preparation_generation_1.requirePreparationFailureForStatus)(object.failure, Object.hasOwn(object, 'failure'), status === PreparedLaunchVariantStatus.Failed, 'PreparedLaunchVariant');
|
|
82
|
+
return Object.freeze({
|
|
83
|
+
id: (0, canonical_contract_1.requireNonEmptyString)(object.id, 'PreparedLaunchVariant.id'),
|
|
84
|
+
preparationGenerationId: (0, canonical_contract_1.requireNonEmptyString)(object.preparationGenerationId, 'PreparedLaunchVariant.preparationGenerationId'),
|
|
85
|
+
key,
|
|
86
|
+
keyHash,
|
|
87
|
+
compiledLaunchPlanHash: (0, canonical_contract_1.requireSha256)(object.compiledLaunchPlanHash, 'PreparedLaunchVariant.compiledLaunchPlanHash'),
|
|
88
|
+
preparedRuntimeTemplateHash: (0, canonical_contract_1.requireSha256)(object.preparedRuntimeTemplateHash, 'PreparedLaunchVariant.preparedRuntimeTemplateHash'),
|
|
89
|
+
preparedRuntimeTemplateRef: (0, canonical_contract_1.requireNonEmptyString)(object.preparedRuntimeTemplateRef, 'PreparedLaunchVariant.preparedRuntimeTemplateRef'),
|
|
90
|
+
status,
|
|
91
|
+
...(failure === undefined ? {} : { failure }),
|
|
92
|
+
rowVersion: (0, canonical_contract_1.requireNonNegativeSafeInteger)(object.rowVersion, 'PreparedLaunchVariant.rowVersion'),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function serializePreparedLaunchVariant(input) {
|
|
96
|
+
return (0, canonical_contract_1.canonicalContractJson)(createPreparedLaunchVariant(input));
|
|
97
|
+
}
|
|
98
|
+
function hashPreparedLaunchVariant(input) {
|
|
99
|
+
return (0, canonical_contract_1.hashCanonicalContract)(createPreparedLaunchVariant(input));
|
|
100
|
+
}
|
|
101
|
+
function requireTenantDependency(input) {
|
|
102
|
+
const base = (0, canonical_contract_1.requireExactObject)(input, 'PreparedLaunchVariantKey.tenantDependency', ['kind'], ['organizationScopeHash']);
|
|
103
|
+
const kind = (0, canonical_contract_1.requireEnumValue)(base.kind, 'PreparedLaunchVariantKey.tenantDependency.kind', TENANT_DEPENDENCY_KINDS);
|
|
104
|
+
if (kind === runtime_template_key_1.RuntimeTemplateTenantDependency.OrganizationNeutral) {
|
|
105
|
+
if (Object.hasOwn(base, 'organizationScopeHash')) {
|
|
106
|
+
throw new TypeError('PreparedLaunchVariantKey.tenantDependency.organizationScopeHash is forbidden for organization-neutral variants.');
|
|
107
|
+
}
|
|
108
|
+
return Object.freeze({ kind });
|
|
109
|
+
}
|
|
110
|
+
if (!Object.hasOwn(base, 'organizationScopeHash')) {
|
|
111
|
+
throw new TypeError('PreparedLaunchVariantKey.tenantDependency.organizationScopeHash is required for organization-bound variants.');
|
|
112
|
+
}
|
|
113
|
+
return Object.freeze({
|
|
114
|
+
kind,
|
|
115
|
+
organizationScopeHash: (0, canonical_contract_1.requireSha256)(base.organizationScopeHash, 'PreparedLaunchVariantKey.tenantDependency.organizationScopeHash'),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=prepared-launch-variant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-launch-variant.js","sourceRoot":"","sources":["../../../src/lib/launch-identity/prepared-launch-variant.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-template-key.d.ts","sourceRoot":"","sources":["../../../src/lib/launch-identity/runtime-template-key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime-template-key.d.ts","sourceRoot":"","sources":["../../../src/lib/launch-identity/runtime-template-key.ts"],"names":[],"mappings":"AAWA,oBAAY,+BAA+B;IACzC,mBAAmB,yBAAyB;IAC5C,iBAAiB,uBAAuB;CACzC;AAED,oBAAY,0BAA0B;IACpC,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AA4BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAoE3E;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAE7E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAExE"}
|
|
@@ -35,17 +35,13 @@ const REQUIRED_KEYS = [
|
|
|
35
35
|
];
|
|
36
36
|
const TENANT_DEPENDENCIES = Object.values(RuntimeTemplateTenantDependency);
|
|
37
37
|
const TRUST_POLICIES = Object.values(RuntimeTemplateTrustPolicy);
|
|
38
|
-
const IMAGE_DIGEST_PATTERN = /^sha256:[a-f0-9]{64}$/u;
|
|
39
38
|
function createRuntimeTemplateKey(input) {
|
|
40
39
|
(0, canonical_contract_1.assertNoTenantOrSecretTemplateFields)(input, 'RuntimeTemplateKey');
|
|
41
40
|
const object = (0, canonical_contract_1.requireExactObject)(input, 'RuntimeTemplateKey', REQUIRED_KEYS);
|
|
42
41
|
if (object.schemaVersion !== 1) {
|
|
43
42
|
throw new TypeError('RuntimeTemplateKey.schemaVersion must be 1.');
|
|
44
43
|
}
|
|
45
|
-
const imageDigest = (0, canonical_contract_1.
|
|
46
|
-
if (!IMAGE_DIGEST_PATTERN.test(imageDigest)) {
|
|
47
|
-
throw new TypeError('RuntimeTemplateKey.imageDigest must be an immutable sha256 image digest.');
|
|
48
|
-
}
|
|
44
|
+
const imageDigest = (0, canonical_contract_1.requireImageDigest)(object.imageDigest, 'RuntimeTemplateKey.imageDigest');
|
|
49
45
|
return Object.freeze({
|
|
50
46
|
schemaVersion: 1,
|
|
51
47
|
tenantDependency: (0, canonical_contract_1.requireEnumValue)(object.tenantDependency, 'RuntimeTemplateKey.tenantDependency', TENANT_DEPENDENCIES),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-template-key.js","sourceRoot":"","sources":["../../../src/lib/launch-identity/runtime-template-key.ts"],"names":[],"mappings":";;;AAkEA,
|
|
1
|
+
{"version":3,"file":"runtime-template-key.js","sourceRoot":"","sources":["../../../src/lib/launch-identity/runtime-template-key.ts"],"names":[],"mappings":";;;AAkEA,4DAoEC;AAED,kEAEC;AAED,wDAEC;AA9ID,6DAS8B;AAE9B,IAAY,+BAGX;AAHD,WAAY,+BAA+B;IACzC,+EAA4C,CAAA;IAC5C,2EAAwC,CAAA;AAC1C,CAAC,EAHW,+BAA+B,+CAA/B,+BAA+B,QAG1C;AAED,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,+CAAiB,CAAA;IACjB,qDAAuB,CAAA;IACvB,2DAA6B,CAAA;AAC/B,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAoBD,MAAM,aAAa,GAAG;IACpB,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,2BAA2B;IAC3B,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;CACP,CAAC;AAEX,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAOjE,SAAgB,wBAAwB,CAAC,KAAc;IACrD,IAAA,yDAAoC,EAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC,KAAK,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAE9E,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,uCAAkB,EACpC,MAAM,CAAC,WAAW,EAClB,gCAAgC,CACjC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,IAAA,qCAAgB,EAChC,MAAM,CAAC,gBAAgB,EACvB,qCAAqC,EACrC,mBAAmB,CACpB;QACD,WAAW,EAAE,IAAA,qCAAgB,EAC3B,MAAM,CAAC,WAAW,EAClB,gCAAgC,EAChC,cAAc,CACf;QACD,UAAU,EAAE,IAAA,0CAAqB,EAC/B,MAAM,CAAC,UAAU,EACjB,+BAA+B,CAChC;QACD,eAAe,EAAE,IAAA,0CAAqB,EACpC,MAAM,CAAC,eAAe,EACtB,oCAAoC,CACrC;QACD,WAAW;QACX,aAAa,EAAE,IAAA,0CAAqB,EAClC,MAAM,CAAC,aAAa,EACpB,kCAAkC,CACnC;QACD,gBAAgB,EAAE,IAAA,kCAAa,EAC7B,MAAM,CAAC,gBAAgB,EACvB,qCAAqC,CACtC;QACD,aAAa,EAAE,IAAA,kCAAa,EAC1B,MAAM,CAAC,aAAa,EACpB,kCAAkC,CACnC;QACD,UAAU,EAAE,IAAA,kCAAa,EACvB,MAAM,CAAC,UAAU,EACjB,+BAA+B,CAChC;QACD,SAAS,EAAE,IAAA,kCAAa,EAAC,MAAM,CAAC,SAAS,EAAE,8BAA8B,CAAC;QAC1E,yBAAyB,EAAE,IAAA,kCAAa,EACtC,MAAM,CAAC,yBAAyB,EAChC,8CAA8C,CAC/C;QACD,kBAAkB,EAAE,IAAA,kCAAa,EAC/B,MAAM,CAAC,kBAAkB,EACzB,uCAAuC,CACxC;QACD,iBAAiB,EAAE,IAAA,kCAAa,EAC9B,MAAM,CAAC,iBAAiB,EACxB,sCAAsC,CACvC;QACD,aAAa,EAAE,IAAA,0CAAqB,EAClC,MAAM,CAAC,aAAa,EACpB,kCAAkC,CACnC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,2BAA2B,CAAC,KAAyB;IACnE,OAAO,IAAA,0CAAqB,EAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAyB;IAC9D,OAAO,IAAA,0CAAqB,EAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/agent-session-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Runtime for composing and running Xema agent sessions — workspace manifests, skill bundles, environment resolution, and drift detection.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
|
|
@@ -38,28 +38,29 @@
|
|
|
38
38
|
"dist",
|
|
39
39
|
"src"
|
|
40
40
|
],
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/jest": "^30.0.0",
|
|
43
|
-
"@types/node": "25.2.3",
|
|
44
|
-
"jest": "^30.3.0",
|
|
45
|
-
"prettier": "3.6.2",
|
|
46
|
-
"ts-jest": "^29.4.9",
|
|
47
|
-
"typescript": "5.9.3",
|
|
48
|
-
"@xemahq/kernel-contracts": "^0.60.0"
|
|
49
|
-
},
|
|
50
|
-
"dependencies": {
|
|
51
|
-
"@xemahq/declarative-reconciler": "^0.1.1",
|
|
52
|
-
"@xemahq/dsl": "^0.6.1",
|
|
53
|
-
"@xemahq/kernel-contracts": "^0.60.0"
|
|
54
|
-
},
|
|
55
|
-
"peerDependencies": {
|
|
56
|
-
"@xemahq/kernel-contracts": ">=0.13.0"
|
|
57
|
-
},
|
|
58
41
|
"scripts": {
|
|
59
42
|
"clean": "rm -rf dist",
|
|
60
|
-
"build": "tsc -p tsconfig.json",
|
|
43
|
+
"build": "tsc -p tsconfig.build.json",
|
|
61
44
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
62
45
|
"test": "jest --config jest.config.ts",
|
|
63
46
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/jest": "catalog:",
|
|
50
|
+
"@types/node": "catalog:",
|
|
51
|
+
"jest": "catalog:",
|
|
52
|
+
"prettier": "catalog:",
|
|
53
|
+
"ts-jest": "catalog:",
|
|
54
|
+
"typescript": "catalog:",
|
|
55
|
+
"@xemahq/dsl": "catalog:",
|
|
56
|
+
"@xemahq/kernel-contracts": "catalog:"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@xemahq/declarative-reconciler": "workspace:^0.1.1",
|
|
60
|
+
"@xemahq/kernel-contracts": "catalog:"
|
|
61
|
+
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"@xemahq/dsl": ">=0.6.1",
|
|
64
|
+
"@xemahq/kernel-contracts": "^5.0.0"
|
|
64
65
|
}
|
|
65
|
-
}
|
|
66
|
+
}
|
|
@@ -97,10 +97,21 @@ export interface RuntimeAgentConfig {
|
|
|
97
97
|
/** Root instructions (+ overlay), normalized; `null` when none. */
|
|
98
98
|
readonly primaryInstructions: string | null;
|
|
99
99
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* is
|
|
100
|
+
* The root node's `promptMode`, carried VERBATIM — `null` means the node
|
|
101
|
+
* DECLARED none, not "defaulted to something here".
|
|
102
|
+
*
|
|
103
|
+
* `NodeOverlayFragment.promptMode` is optional in the kernel contract, so an
|
|
104
|
+
* absent mode is a legal, meaningful state and this projection does NOT
|
|
105
|
+
* resolve it: every consumer spreads the field conditionally
|
|
106
|
+
* (`...(primaryPromptMode ? { promptMode } : {})`), so `null` propagates as
|
|
107
|
+
* "field omitted" and the closed-set default is applied ONCE, at the point
|
|
108
|
+
* that materializes the prompt. Restating the default rule here would be a
|
|
109
|
+
* second source of truth for it; fail-fast would be wrong because "omitted"
|
|
110
|
+
* is contractually valid.
|
|
111
|
+
*
|
|
112
|
+
* `Replace` makes `primaryInstructions` the system prompt; the base agent
|
|
113
|
+
* prompt body is dropped (config still inherited). The session overlay
|
|
114
|
+
* always appends.
|
|
104
115
|
*/
|
|
105
116
|
readonly primaryPromptMode: PromptMergeMode | null;
|
|
106
117
|
/** Root permission (+ overlay); `null` when none. */
|