@xemahq/kernel-contracts 0.12.0 → 0.13.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.
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import type { AgentLimits } from './composition';
3
+ export declare const AgentLimitsSchema: z.ZodType<AgentLimits>;
4
+ //# sourceMappingURL=composition-limits-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-limits-schema.d.ts","sourceRoot":"","sources":["../../../src/agent-composition/lib/composition-limits-schema.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AASjD,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAO1C,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentLimitsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.AgentLimitsSchema = zod_1.z
6
+ .object({
7
+ maxDepth: zod_1.z.number().int().positive(),
8
+ maxFanout: zod_1.z.number().int().positive(),
9
+ maxSpawns: zod_1.z.number().int().positive(),
10
+ tokenBudget: zod_1.z.number().int().positive().optional(),
11
+ })
12
+ .strict();
13
+ //# sourceMappingURL=composition-limits-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-limits-schema.js","sourceRoot":"","sources":["../../../src/agent-composition/lib/composition-limits-schema.ts"],"names":[],"mappings":";;;AAmBA,6BAAwB;AAWX,QAAA,iBAAiB,GAA2B,OAAC;KACvD,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,MAAM,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { WorkingFileBinding, WorkspaceEnvVar, WorkspacePersistenceSpec } from '../../agent-workspace';
2
+ import type { AgentRunRole, CompiledManifestCredential, CompiledManifestPermissions, OutputSurfaceKind } from '../../workflow';
3
+ export type { WorkingFileBinding, WorkspaceEnvVar, WorkspacePersistenceSpec, } from '../../agent-workspace';
4
+ export declare enum AgentOutputSurfaceMode {
5
+ Single = "single",
6
+ Multi = "multi"
7
+ }
8
+ export interface AgentOutputSurface {
9
+ readonly kind: OutputSurfaceKind;
10
+ readonly port?: number;
11
+ readonly healthPath?: string;
12
+ readonly autoOpen?: boolean;
13
+ readonly mode?: AgentOutputSurfaceMode;
14
+ readonly root?: string;
15
+ readonly defaultDocument?: string;
16
+ }
17
+ export interface AgentRunConfig {
18
+ readonly stage: string;
19
+ readonly role: AgentRunRole;
20
+ readonly deliverableSpecRef?: string;
21
+ }
22
+ export interface AgentMountLayout {
23
+ readonly mounts: Readonly<Record<string, unknown>>;
24
+ readonly agentRunConfig: AgentRunConfig;
25
+ readonly seedFiles: readonly Readonly<Record<string, unknown>>[];
26
+ readonly inputs: Readonly<Record<string, unknown>>;
27
+ }
28
+ export interface AgentWorkspaceConfig {
29
+ readonly persistence?: WorkspacePersistenceSpec;
30
+ readonly env?: readonly WorkspaceEnvVar[];
31
+ readonly outputSurface?: AgentOutputSurface;
32
+ readonly mountLayout?: AgentMountLayout;
33
+ readonly workingFiles?: readonly WorkingFileBinding[];
34
+ readonly credentials?: readonly CompiledManifestCredential[];
35
+ readonly permissions?: CompiledManifestPermissions;
36
+ }
37
+ //# sourceMappingURL=composition-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-workspace.d.ts","sourceRoot":"","sources":["../../../src/agent-composition/lib/composition-workspace.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAQ/B,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAsBD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B,QAAQ,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAMvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAMvB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAcD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA6BD,MAAM,WAAW,gBAAgB;IAO/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAOxC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAOjE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAQD,MAAM,WAAW,oBAAoB;IAKnC,QAAQ,CAAC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IAOhD,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAK1C,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAQ5C,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAgBxC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAWtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAW7D,QAAQ,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAC;CACpD"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentOutputSurfaceMode = void 0;
4
+ var AgentOutputSurfaceMode;
5
+ (function (AgentOutputSurfaceMode) {
6
+ AgentOutputSurfaceMode["Single"] = "single";
7
+ AgentOutputSurfaceMode["Multi"] = "multi";
8
+ })(AgentOutputSurfaceMode || (exports.AgentOutputSurfaceMode = AgentOutputSurfaceMode = {}));
9
+ //# sourceMappingURL=composition-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-workspace.js","sourceRoot":"","sources":["../../../src/agent-composition/lib/composition-workspace.ts"],"names":[],"mappings":";;;AA6CA,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACjB,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC"}
@@ -0,0 +1,65 @@
1
+ import type { ToolSelectionEntry } from '../../mcp-tool';
2
+ import type { NodeOverlayFragment } from '../../workflow';
3
+ import type { SkillRef } from '../../skill';
4
+ import type { BiomeAvailabilityScoped } from '../../biome-availability';
5
+ import type { CapabilityLayer } from './capability-layer';
6
+ import type { AgentWorkspaceConfig } from './composition-workspace';
7
+ export interface AgentKernelRef {
8
+ readonly slug: string;
9
+ readonly version?: string;
10
+ }
11
+ export declare enum AgentSpace {
12
+ System = "system",
13
+ Biome = "biome",
14
+ Org = "org",
15
+ Project = "project",
16
+ User = "user"
17
+ }
18
+ export declare enum AgentLifecycle {
19
+ Draft = "draft",
20
+ Published = "published",
21
+ Archived = "archived"
22
+ }
23
+ export interface AgentLimits {
24
+ readonly maxDepth: number;
25
+ readonly maxFanout: number;
26
+ readonly maxSpawns: number;
27
+ readonly tokenBudget?: number | undefined;
28
+ }
29
+ export interface AgentNode extends NodeOverlayFragment, BiomeAvailabilityScoped {
30
+ readonly kernel: AgentKernelRef;
31
+ readonly alias?: string;
32
+ readonly skills: readonly SkillRef[];
33
+ readonly tools: readonly ToolSelectionEntry[];
34
+ readonly children: readonly AgentNode[];
35
+ readonly limits?: AgentLimits;
36
+ }
37
+ export interface Agent {
38
+ readonly slug: string;
39
+ readonly version: string;
40
+ readonly displayName: string;
41
+ readonly description?: string;
42
+ readonly scope: AgentSpace;
43
+ readonly lifecycle: AgentLifecycle;
44
+ readonly root: AgentNode;
45
+ readonly capability?: CapabilityLayer;
46
+ readonly workspace?: AgentWorkspaceConfig;
47
+ }
48
+ export interface ResolvedAgentNode extends NodeOverlayFragment, BiomeAvailabilityScoped {
49
+ readonly kernel: Required<AgentKernelRef>;
50
+ readonly alias?: string;
51
+ readonly skills: readonly SkillRef[];
52
+ readonly tools: readonly ToolSelectionEntry[];
53
+ readonly children: readonly ResolvedAgentNode[];
54
+ readonly limits?: AgentLimits;
55
+ }
56
+ export interface ResolvedAgent {
57
+ readonly slug: string;
58
+ readonly version: string;
59
+ readonly displayName: string;
60
+ readonly scope: AgentSpace;
61
+ readonly root: ResolvedAgentNode;
62
+ readonly capability: CapabilityLayer;
63
+ readonly workspace?: AgentWorkspaceConfig;
64
+ }
65
+ //# sourceMappingURL=composition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/agent-composition/lib/composition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentLifecycle = exports.AgentSpace = void 0;
4
+ var AgentSpace;
5
+ (function (AgentSpace) {
6
+ AgentSpace["System"] = "system";
7
+ AgentSpace["Biome"] = "biome";
8
+ AgentSpace["Org"] = "org";
9
+ AgentSpace["Project"] = "project";
10
+ AgentSpace["User"] = "user";
11
+ })(AgentSpace || (exports.AgentSpace = AgentSpace = {}));
12
+ var AgentLifecycle;
13
+ (function (AgentLifecycle) {
14
+ AgentLifecycle["Draft"] = "draft";
15
+ AgentLifecycle["Published"] = "published";
16
+ AgentLifecycle["Archived"] = "archived";
17
+ })(AgentLifecycle || (exports.AgentLifecycle = AgentLifecycle = {}));
18
+ //# sourceMappingURL=composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/agent-composition/lib/composition.ts"],"names":[],"mappings":";;;AAoCA,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,yBAAW,CAAA;IACX,iCAAmB,CAAA;IACnB,2BAAa,CAAA;AACf,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAQD,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://xema.dev/schemas/awp-spec.v1.json",
3
- "emittedAt": "2026-06-18T12:50:13.190Z",
3
+ "emittedAt": "2026-06-20T15:02:55.255Z",
4
4
  "spec": {
5
5
  "id": "awp/v1",
6
6
  "version": "1.2.0",
@@ -0,0 +1,15 @@
1
+ import { GitPushBranchSuffix, GitPushConcurrencyMode, type WorkspaceSpec } from './workspace-spec';
2
+ export declare const AWP_V1_SPEC: WorkspaceSpec;
3
+ export declare function findSlot(spec: WorkspaceSpec, key: string): import("./workspace-spec").SlotDefinition | undefined;
4
+ export declare function isKnownSlotKey(spec: WorkspaceSpec, key: string): boolean;
5
+ export declare function listAlwaysOnSlotKeys(spec: WorkspaceSpec): readonly string[];
6
+ export declare function listTarballPersistedRelPaths(spec: WorkspaceSpec): readonly string[];
7
+ export interface ResolvedGitPushSlot {
8
+ readonly key: string;
9
+ readonly path: string;
10
+ readonly branchPrefix: string;
11
+ readonly branchSuffix: GitPushBranchSuffix;
12
+ readonly concurrencyMode: GitPushConcurrencyMode;
13
+ }
14
+ export declare function listGitPushPersistedSlots(spec: WorkspaceSpec): readonly ResolvedGitPushSlot[];
15
+ //# sourceMappingURL=awp-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awp-v1.d.ts","sourceRoot":"","sources":["../../../src/agent-workspace/lib/awp-v1.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EAEtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAgB1B,eAAO,MAAM,WAAW,EAAE,aAwMzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,yDAExD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAE3E;AAQD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAInF;AAQD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;CAClD;AAOD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,aAAa,GAClB,SAAS,mBAAmB,EAAE,CAgBhC"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AWP_V1_SPEC = void 0;
4
+ exports.findSlot = findSlot;
5
+ exports.isKnownSlotKey = isKnownSlotKey;
6
+ exports.listAlwaysOnSlotKeys = listAlwaysOnSlotKeys;
7
+ exports.listTarballPersistedRelPaths = listTarballPersistedRelPaths;
8
+ exports.listGitPushPersistedSlots = listGitPushPersistedSlots;
9
+ const workspace_spec_1 = require("./workspace-spec");
10
+ exports.AWP_V1_SPEC = {
11
+ id: 'awp/v1',
12
+ version: '1.2.0',
13
+ slots: [
14
+ {
15
+ key: 'inputs',
16
+ path: '/workspace/inputs',
17
+ presence: 'always',
18
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
19
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
20
+ ownership: 'user',
21
+ humanDescription: "Read-only inputs supplied at session/run start (the workflow's `with:` block or the session's customConfig). The DSL input bag lands at `inputs.json`.",
22
+ persistencePolicy: { kind: 'none' },
23
+ },
24
+ {
25
+ key: 'tmp',
26
+ path: '/workspace/tmp',
27
+ presence: 'always',
28
+ allowedModes: [workspace_spec_1.SlotMode.ReadWrite],
29
+ defaultMode: workspace_spec_1.SlotMode.ReadWrite,
30
+ ownership: 'user',
31
+ humanDescription: 'Your scratch space — drafts, intermediate computation, working notes. Snapshot-persisted so retries see prior state. Never harvested.',
32
+ persistencePolicy: { kind: 'tarball' },
33
+ },
34
+ {
35
+ key: 'uploads',
36
+ path: '/workspace/uploads',
37
+ presence: 'optional',
38
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
39
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
40
+ ownership: 'user',
41
+ humanDescription: 'User-uploaded files (briefs, screenshots, sketches). Read-only — never write here.',
42
+ persistencePolicy: { kind: 'tarball' },
43
+ },
44
+ {
45
+ key: 'references',
46
+ path: '/workspace/references',
47
+ presence: 'optional',
48
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
49
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
50
+ ownership: 'user',
51
+ humanDescription: 'Curated evidence library (knowledge-base spaces, prior artifacts, external project mounts). Read-only.',
52
+ persistencePolicy: { kind: 'none' },
53
+ subSlots: [
54
+ {
55
+ key: 'kb',
56
+ path: '/workspace/references/kb',
57
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
58
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
59
+ ownership: 'user',
60
+ },
61
+ {
62
+ key: 'external-projects',
63
+ path: '/workspace/references/external-projects',
64
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
65
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
66
+ ownership: 'user',
67
+ },
68
+ ],
69
+ },
70
+ {
71
+ key: 'deliverable-specs',
72
+ path: '/workspace/deliverable-specs',
73
+ presence: 'optional',
74
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
75
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
76
+ ownership: 'user',
77
+ humanDescription: 'Schemas + metadata for the deliverable spec(s) this run targets. Read-only — consult before writing under deliverables/.',
78
+ persistencePolicy: { kind: 'none' },
79
+ },
80
+ {
81
+ key: 'deliverables',
82
+ path: '/workspace/deliverables',
83
+ presence: 'optional',
84
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly, workspace_spec_1.SlotMode.ReadWrite],
85
+ defaultMode: workspace_spec_1.SlotMode.ReadWrite,
86
+ ownership: 'user',
87
+ humanDescription: "Your writable output area. Files written here are harvested by the runtime per the deliverable spec's contract.",
88
+ persistencePolicy: { kind: 'tarball' },
89
+ },
90
+ {
91
+ key: 'repos',
92
+ path: '/workspace/repos',
93
+ presence: 'optional',
94
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly, workspace_spec_1.SlotMode.ReadWrite],
95
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
96
+ ownership: 'user',
97
+ humanDescription: 'Project repositories. Read-only unless the workflow explicitly granted write authority (engineer roles only).',
98
+ persistencePolicy: { kind: 'git-push', branchPrefix: 'xema/session/' },
99
+ },
100
+ {
101
+ key: 'agents-md',
102
+ path: '/workspace/AGENTS.md',
103
+ presence: 'always',
104
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
105
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
106
+ singleFile: true,
107
+ ownership: 'platform',
108
+ persistencePolicy: { kind: 'none' },
109
+ },
110
+ {
111
+ key: 'context-json',
112
+ path: '/workspace/context.json',
113
+ presence: 'always',
114
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
115
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
116
+ singleFile: true,
117
+ ownership: 'platform',
118
+ persistencePolicy: { kind: 'none' },
119
+ },
120
+ {
121
+ key: 'system-overlay',
122
+ path: '/workspace/.xema/system-overlay.md',
123
+ presence: 'always',
124
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
125
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
126
+ singleFile: true,
127
+ ownership: 'platform',
128
+ persistencePolicy: { kind: 'none' },
129
+ },
130
+ {
131
+ key: 'agent-bundles',
132
+ path: '/workspace/.opencode/agents',
133
+ presence: 'always',
134
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
135
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
136
+ ownership: 'platform',
137
+ persistencePolicy: { kind: 'none' },
138
+ },
139
+ {
140
+ key: 'skill-bundles',
141
+ path: '/workspace/.opencode/skills',
142
+ presence: 'optional',
143
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
144
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
145
+ ownership: 'platform',
146
+ persistencePolicy: { kind: 'none' },
147
+ },
148
+ {
149
+ key: 'commands',
150
+ path: '/workspace/.opencode/command',
151
+ presence: 'optional',
152
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
153
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
154
+ ownership: 'platform',
155
+ persistencePolicy: { kind: 'none' },
156
+ },
157
+ {
158
+ key: 'instructions',
159
+ path: '/workspace/.xema/instructions',
160
+ presence: 'optional',
161
+ allowedModes: [workspace_spec_1.SlotMode.ReadOnly],
162
+ defaultMode: workspace_spec_1.SlotMode.ReadOnly,
163
+ ownership: 'platform',
164
+ persistencePolicy: { kind: 'none' },
165
+ },
166
+ ],
167
+ };
168
+ function findSlot(spec, key) {
169
+ return spec.slots.find((s) => s.key === key);
170
+ }
171
+ function isKnownSlotKey(spec, key) {
172
+ return spec.slots.some((s) => s.key === key);
173
+ }
174
+ function listAlwaysOnSlotKeys(spec) {
175
+ return spec.slots.filter((s) => s.presence === 'always').map((s) => s.key);
176
+ }
177
+ function listTarballPersistedRelPaths(spec) {
178
+ return spec.slots
179
+ .filter((s) => s.persistencePolicy?.kind === 'tarball')
180
+ .map((s) => s.path.replace(/^\/workspace\//, ''));
181
+ }
182
+ function listGitPushPersistedSlots(spec) {
183
+ const out = [];
184
+ for (const slot of spec.slots) {
185
+ if (slot.persistencePolicy?.kind === 'git-push') {
186
+ out.push({
187
+ key: slot.key,
188
+ path: slot.path,
189
+ branchPrefix: slot.persistencePolicy.branchPrefix,
190
+ branchSuffix: slot.persistencePolicy.branchSuffix ?? workspace_spec_1.GitPushBranchSuffix.SessionId,
191
+ concurrencyMode: slot.persistencePolicy.concurrencyMode ?? workspace_spec_1.GitPushConcurrencyMode.Force,
192
+ });
193
+ }
194
+ }
195
+ return out;
196
+ }
197
+ //# sourceMappingURL=awp-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awp-v1.js","sourceRoot":"","sources":["../../../src/agent-workspace/lib/awp-v1.ts"],"names":[],"mappings":";;;AAmOA,4BAEC;AAED,wCAEC;AAED,oDAEC;AAQD,oEAIC;AAqBD,8DAkBC;AAhSD,qDAK0B;AAgBb,QAAA,WAAW,GAAkB;IACxC,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL;YACE,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,wJAAwJ;YAC1J,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAIE,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,CAAC,yBAAQ,CAAC,SAAS,CAAC;YAClC,WAAW,EAAE,yBAAQ,CAAC,SAAS;YAC/B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,uIAAuI;YACzI,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD;YACE,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,oFAAoF;YACtF,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD;YACE,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,wGAAwG;YAC1G,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACnC,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,0BAA0B;oBAChC,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;oBACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;oBAC9B,SAAS,EAAE,MAAM;iBAClB;gBACD;oBACE,GAAG,EAAE,mBAAmB;oBACxB,IAAI,EAAE,yCAAyC;oBAC/C,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;oBACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;oBAC9B,SAAS,EAAE,MAAM;iBAClB;aACF;SACF;QACD;YACE,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,0HAA0H;YAC5H,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YACE,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,EAAE,yBAAQ,CAAC,SAAS,CAAC;YACrD,WAAW,EAAE,yBAAQ,CAAC,SAAS;YAC/B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,iHAAiH;YACnH,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD;YAKE,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,EAAE,yBAAQ,CAAC,SAAS,CAAC;YACrD,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,MAAM;YACjB,gBAAgB,EACd,+GAA+G;YACjH,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE;SACvE;QAED;YAIE,GAAG,EAAE,WAAW;YAChB,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAIE,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAQE,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE,oCAAoC;YAC1C,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAKE,GAAG,EAAE,eAAe;YACpB,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAGE,GAAG,EAAE,eAAe;YACpB,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAKE,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD;YAME,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,+BAA+B;YACrC,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,yBAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,UAAU;YACrB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;KACF;CACF,CAAC;AAMF,SAAgB,QAAQ,CAAC,IAAmB,EAAE,GAAW;IACvD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,cAAc,CAAC,IAAmB,EAAE,GAAW;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAmB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7E,CAAC;AAQD,SAAgB,4BAA4B,CAAC,IAAmB;IAC9D,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,KAAK,SAAS,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAqBD,SAAgB,yBAAyB,CACvC,IAAmB;IAEnB,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY;gBACjD,YAAY,EACV,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,oCAAmB,CAAC,SAAS;gBACtE,eAAe,EACb,IAAI,CAAC,iBAAiB,CAAC,eAAe,IAAI,uCAAsB,CAAC,KAAK;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -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.12.0",
3
+ "version": "0.13.0",
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/",
@@ -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) {