@xemahq/kernel-contracts 0.10.0 → 0.11.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://xema.dev/schemas/awp-spec.v1.json",
3
- "emittedAt": "2026-06-15T16:09:01.492Z",
3
+ "emittedAt": "2026-06-20T14:53:01.917Z",
4
4
  "spec": {
5
5
  "id": "awp/v1",
6
6
  "version": "1.2.0",
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  export declare enum CapabilityErrorCode {
3
3
  CapabilityRefInvalid = "CAPABILITY_REF_INVALID",
4
4
  CapabilityUnresolved = "CAPABILITY_UNRESOLVED",
5
- CapabilityDeniedByZone = "CAPABILITY_DENIED_BY_ZONE",
5
+ CapabilityDeniedByEnvironment = "CAPABILITY_DENIED_BY_ENVIRONMENT",
6
6
  CapabilityDeniedByGrant = "CAPABILITY_DENIED_BY_GRANT",
7
7
  CapabilityDeniedByRateLimit = "CAPABILITY_DENIED_BY_RATE_LIMIT",
8
8
  CapabilityRequiresApproval = "CAPABILITY_REQUIRES_APPROVAL",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/capability/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,oBAAY,mBAAmB;IAC7B,oBAAoB,2BAA2B;IAC/C,oBAAoB,0BAA0B;IAC9C,sBAAsB,8BAA8B;IACpD,uBAAuB,+BAA+B;IACtD,2BAA2B,oCAAoC;IAC/D,0BAA0B,iCAAiC;IAC3D,uBAAuB,8BAA8B;IACrD,wBAAwB,8BAA8B;IAStD,mBAAmB,0BAA0B;IAQ7C,8BAA8B,sCAAsC;IAOpE,iBAAiB,wBAAwB;IAWzC,wBAAwB,+BAA+B;CACxD;AAED,eAAO,MAAM,yBAAyB,uCAAoC,CAAC;AAS3E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,4BAA4B,EAGnC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAWxC,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEN,eAAO,MAAM,gCAAgC,EAiBvC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAU5C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,IAAI,EAAE,mBAAmB,CAAC;IAC1C,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAgB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAgB,OAAO,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;gBAE3D,IAAI,EAAE;QAChB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;KAC7C;CAUF;AASD,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAQnD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/capability/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,oBAAY,mBAAmB;IAC7B,oBAAoB,2BAA2B;IAC/C,oBAAoB,0BAA0B;IAC9C,6BAA6B,qCAAqC;IAClE,uBAAuB,+BAA+B;IACtD,2BAA2B,oCAAoC;IAC/D,0BAA0B,iCAAiC;IAC3D,uBAAuB,8BAA8B;IACrD,wBAAwB,8BAA8B;IAStD,mBAAmB,0BAA0B;IAQ7C,8BAA8B,sCAAsC;IAOpE,iBAAiB,wBAAwB;IAWzC,wBAAwB,+BAA+B;CACxD;AAED,eAAO,MAAM,yBAAyB,uCAAoC,CAAC;AAS3E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,4BAA4B,EAGnC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAWxC,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEN,eAAO,MAAM,gCAAgC,EAiBvC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAU5C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,IAAI,EAAE,mBAAmB,CAAC;IAC1C,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAgB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAgB,OAAO,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;gBAE3D,IAAI,EAAE;QAChB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;KAC7C;CAUF;AASD,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAQnD"}
@@ -6,7 +6,7 @@ var CapabilityErrorCode;
6
6
  (function (CapabilityErrorCode) {
7
7
  CapabilityErrorCode["CapabilityRefInvalid"] = "CAPABILITY_REF_INVALID";
8
8
  CapabilityErrorCode["CapabilityUnresolved"] = "CAPABILITY_UNRESOLVED";
9
- CapabilityErrorCode["CapabilityDeniedByZone"] = "CAPABILITY_DENIED_BY_ZONE";
9
+ CapabilityErrorCode["CapabilityDeniedByEnvironment"] = "CAPABILITY_DENIED_BY_ENVIRONMENT";
10
10
  CapabilityErrorCode["CapabilityDeniedByGrant"] = "CAPABILITY_DENIED_BY_GRANT";
11
11
  CapabilityErrorCode["CapabilityDeniedByRateLimit"] = "CAPABILITY_DENIED_BY_RATE_LIMIT";
12
12
  CapabilityErrorCode["CapabilityRequiresApproval"] = "CAPABILITY_REQUIRES_APPROVAL";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/capability/lib/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/capability/lib/errors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xema-object-ref.d.ts","sourceRoot":"","sources":["../../../src/object/lib/xema-object-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAA6B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAe1E,MAAM,MAAM,aAAa,GAAG,UAAU,MAAM,EAAE,CAAC;AAI/C,eAAO,MAAM,mBAAmB,2GAK7B,CAAC;AAOJ,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM/C;AAQD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA0ED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CA4ElE;AAOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAkB5E"}
1
+ {"version":3,"file":"xema-object-ref.d.ts","sourceRoot":"","sources":["../../../src/object/lib/xema-object-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAA6B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAe1E,MAAM,MAAM,aAAa,GAAG,UAAU,MAAM,EAAE,CAAC;AAI/C,eAAO,MAAM,mBAAmB,2GAK7B,CAAC;AAOJ,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM/C;AAQD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAmFD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CA2ElE;AAOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAkB5E"}
@@ -22,7 +22,8 @@ class XemaObjectRefParseError extends Error {
22
22
  }
23
23
  }
24
24
  exports.XemaObjectRefParseError = XemaObjectRefParseError;
25
- const SLUG_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/;
25
+ const SLUG_SEGMENT = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
26
+ const SLUG_PATTERN = new RegExp(`^${SLUG_SEGMENT}(?:/${SLUG_SEGMENT})*$`);
26
27
  const VERSION_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_.+-]*$/;
27
28
  function requireSegment(segments, index, ref, label) {
28
29
  const value = segments[index];
@@ -103,11 +104,8 @@ function parseXemaObjectRef(ref) {
103
104
  if (remaining.length < 2) {
104
105
  throw new XemaObjectRefParseError(ref, 'missing <kind>/<slug> after scope segments');
105
106
  }
106
- if (remaining.length > 2) {
107
- throw new XemaObjectRefParseError(ref, `unexpected trailing path segments after <kind>/<slug>: ${remaining.slice(2).join('/')}`);
108
- }
109
107
  const kindRaw = requireSegment(remaining, 0, ref, 'kind');
110
- const slug = requireSegment(remaining, 1, ref, 'slug');
108
+ const slug = remaining.slice(1).join('/');
111
109
  const kindParsed = xema_object_kind_1.XemaObjectKindSchema.safeParse(kindRaw);
112
110
  if (!kindParsed.success) {
113
111
  throw new XemaObjectRefParseError(ref, `unknown XemaObjectKind "${kindRaw}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"xema-object-ref.js","sourceRoot":"","sources":["../../../src/object/lib/xema-object-ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xema-object-ref.js","sourceRoot":"","sources":["../../../src/object/lib/xema-object-ref.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/kernel-contracts",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "description": "Consolidated Xema OS kernel wire contracts — pure types + zod schemas for the 32 kernel protocol surfaces. One package, one npm scope, wildcard per-surface subpath exports. No framework/runtime deps.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -4,7 +4,7 @@
4
4
  // A definition (an Agent node, an Agent definition, a workflow
5
5
  // job, a Session) MAY declare which biomes' contributions it wants in or out.
6
6
  // This is a POST-SCOPE FILTER applied AFTER implicit-by-scope resolution
7
- // (the 5-tier `SkillScope`/`AgentSpace` precedence): it NARROWS the
7
+ // (the 5-tier `SkillSpace`/`AgentSpace` precedence): it NARROWS the
8
8
  // already-visible set; it never widens it and it is NOT a parallel
9
9
  // availability/binding table (see `.claude/rules/skills-and-composition.md`).
10
10
  //
@@ -16,7 +16,7 @@ export { GrantConstraintsSchema } from './capability-grant';
16
16
  * A environment's policy is a NECESSARY-but-not-sufficient condition for a runtime
17
17
  * call: the environment allows the capability AND the subject has a matching
18
18
  * `CapabilityGrant`. Failing the environment check raises
19
- * `CapabilityErrorCode.CapabilityDeniedByZone`; failing the grant check
19
+ * `CapabilityErrorCode.CapabilityDeniedByEnvironment`; failing the grant check
20
20
  * raises `CapabilityErrorCode.CapabilityDeniedByGrant`.
21
21
  */
22
22
  export interface CapabilityPolicy {
@@ -17,7 +17,7 @@ import { z } from 'zod';
17
17
  export enum CapabilityErrorCode {
18
18
  CapabilityRefInvalid = 'CAPABILITY_REF_INVALID',
19
19
  CapabilityUnresolved = 'CAPABILITY_UNRESOLVED',
20
- CapabilityDeniedByZone = 'CAPABILITY_DENIED_BY_ZONE',
20
+ CapabilityDeniedByEnvironment = 'CAPABILITY_DENIED_BY_ENVIRONMENT',
21
21
  CapabilityDeniedByGrant = 'CAPABILITY_DENIED_BY_GRANT',
22
22
  CapabilityDeniedByRateLimit = 'CAPABILITY_DENIED_BY_RATE_LIMIT',
23
23
  CapabilityRequiresApproval = 'CAPABILITY_REQUIRES_APPROVAL',
@@ -57,7 +57,16 @@ export interface XemaObjectRefParts {
57
57
  version?: string;
58
58
  }
59
59
 
60
- const SLUG_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/;
60
+ // A slug is one or more `/`-separated segments. Most XemaObjects use a single
61
+ // segment (e.g. `code-reviewer`, `kb.page.read`); Skills are hierarchical and
62
+ // carry a multi-segment path (e.g. `software-engineering/requirements`, per the
63
+ // skill primitive's `@@unique([scopeKey, slug])` identity). Each segment starts
64
+ // alphanumeric and may contain `_`, `.`, `-`; segments are joined by a single
65
+ // `/` (no leading, trailing, or doubled slash). The grammar stays unambiguous
66
+ // because the scope is fixed-arity per head and `<kind>` is exactly one segment,
67
+ // so everything after `<kind>` is the slug.
68
+ const SLUG_SEGMENT = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
69
+ const SLUG_PATTERN = new RegExp(`^${SLUG_SEGMENT}(?:/${SLUG_SEGMENT})*$`);
61
70
  const VERSION_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_.+-]*$/;
62
71
 
63
72
  interface ScopeParse {
@@ -177,15 +186,14 @@ export function parseXemaObjectRef(ref: string): XemaObjectRefParts {
177
186
  'missing <kind>/<slug> after scope segments',
178
187
  );
179
188
  }
180
- if (remaining.length > 2) {
181
- throw new XemaObjectRefParseError(
182
- ref,
183
- `unexpected trailing path segments after <kind>/<slug>: ${remaining.slice(2).join('/')}`,
184
- );
185
- }
186
189
 
187
190
  const kindRaw = requireSegment(remaining, 0, ref, 'kind');
188
- const slug = requireSegment(remaining, 1, ref, 'slug');
191
+ // Everything after <kind> is the slug. Skills carry hierarchical, multi-
192
+ // segment slugs (e.g. `software-engineering/requirements`), so the slug is
193
+ // the `/`-join of all trailing segments — not a single segment. The trailing
194
+ // `SLUG_PATTERN` check rejects any malformed shape (leading/trailing/doubled
195
+ // slash is already impossible: empty segments were filtered above).
196
+ const slug = remaining.slice(1).join('/');
189
197
 
190
198
  const kindParsed = XemaObjectKindSchema.safeParse(kindRaw);
191
199
  if (!kindParsed.success) {