@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.
Files changed (38) hide show
  1. package/dist/lib/agent-resolution.d.ts.map +1 -1
  2. package/dist/lib/agent-resolution.js.map +1 -1
  3. package/dist/lib/composer.d.ts +25 -2
  4. package/dist/lib/composer.d.ts.map +1 -1
  5. package/dist/lib/composer.js +237 -81
  6. package/dist/lib/composer.js.map +1 -1
  7. package/dist/lib/launch-identity/canonical-contract.d.ts +1 -0
  8. package/dist/lib/launch-identity/canonical-contract.d.ts.map +1 -1
  9. package/dist/lib/launch-identity/canonical-contract.js +14 -2
  10. package/dist/lib/launch-identity/canonical-contract.js.map +1 -1
  11. package/dist/lib/launch-identity/compiled-session-launch-plan.d.ts.map +1 -1
  12. package/dist/lib/launch-identity/compiled-session-launch-plan.js +1 -5
  13. package/dist/lib/launch-identity/compiled-session-launch-plan.js.map +1 -1
  14. package/dist/lib/launch-identity/index.d.ts +2 -0
  15. package/dist/lib/launch-identity/index.d.ts.map +1 -1
  16. package/dist/lib/launch-identity/index.js +2 -0
  17. package/dist/lib/launch-identity/index.js.map +1 -1
  18. package/dist/lib/launch-identity/preparation-generation.d.ts +26 -0
  19. package/dist/lib/launch-identity/preparation-generation.d.ts.map +1 -0
  20. package/dist/lib/launch-identity/preparation-generation.js +88 -0
  21. package/dist/lib/launch-identity/preparation-generation.js.map +1 -0
  22. package/dist/lib/launch-identity/prepared-launch-variant.d.ts +46 -0
  23. package/dist/lib/launch-identity/prepared-launch-variant.d.ts.map +1 -0
  24. package/dist/lib/launch-identity/prepared-launch-variant.js +118 -0
  25. package/dist/lib/launch-identity/prepared-launch-variant.js.map +1 -0
  26. package/dist/lib/launch-identity/runtime-template-key.d.ts.map +1 -1
  27. package/dist/lib/launch-identity/runtime-template-key.js +1 -5
  28. package/dist/lib/launch-identity/runtime-template-key.js.map +1 -1
  29. package/package.json +21 -20
  30. package/src/lib/agent-resolution.ts +15 -4
  31. package/src/lib/composer.ts +396 -135
  32. package/src/lib/launch-identity/canonical-contract.ts +36 -2
  33. package/src/lib/launch-identity/compiled-session-launch-plan.ts +2 -10
  34. package/src/lib/launch-identity/index.ts +2 -0
  35. package/src/lib/launch-identity/preparation-generation.ts +171 -0
  36. package/src/lib/launch-identity/prepared-launch-variant.ts +263 -0
  37. package/src/lib/launch-identity/runtime-template-key.ts +2 -7
  38. 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":"AAUA,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;AA6BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAyE3E;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAE7E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAExE"}
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.requireNonEmptyString)(object.imageDigest, 'RuntimeTemplateKey.imageDigest');
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":"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"}
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.7.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
- * How `primaryInstructions` combine with the base kernel's `systemPrompt`
101
- * (the root node's `promptMode`). `null` ⇒ Append (back-compat). `Replace`
102
- * makes `primaryInstructions` the system prompt; the base kernel prompt body
103
- * is dropped (config still inherited). The session overlay always appends.
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. */