@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.
- package/dist/agent-workspace/awp-spec.json +1 -1
- package/dist/capability/lib/errors.d.ts +1 -1
- package/dist/capability/lib/errors.d.ts.map +1 -1
- package/dist/capability/lib/errors.js +1 -1
- package/dist/capability/lib/errors.js.map +1 -1
- package/dist/object/lib/xema-object-ref.d.ts.map +1 -1
- package/dist/object/lib/xema-object-ref.js +3 -5
- package/dist/object/lib/xema-object-ref.js.map +1 -1
- package/package.json +1 -1
- package/src/biome-availability/lib/biome-availability.ts +1 -1
- package/src/capability/lib/capability-policy.ts +1 -1
- package/src/capability/lib/errors.ts +1 -1
- package/src/object/lib/xema-object-ref.ts +16 -8
|
@@ -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
|
-
|
|
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,
|
|
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["
|
|
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":";;;AAAA,6BAAwB;AAgBxB,IAAY,mBA4CX;AA5CD,WAAY,mBAAmB;IAC7B,sEAA+C,CAAA;IAC/C,qEAA8C,CAAA;IAC9C,
|
|
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;
|
|
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
|
|
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 =
|
|
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":";;;
|
|
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.
|
|
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 `
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|