@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.
- package/dist/agent-composition/lib/composition-limits-schema.d.ts +4 -0
- package/dist/agent-composition/lib/composition-limits-schema.d.ts.map +1 -0
- package/dist/agent-composition/lib/composition-limits-schema.js +13 -0
- package/dist/agent-composition/lib/composition-limits-schema.js.map +1 -0
- package/dist/agent-composition/lib/composition-workspace.d.ts +37 -0
- package/dist/agent-composition/lib/composition-workspace.d.ts.map +1 -0
- package/dist/agent-composition/lib/composition-workspace.js +9 -0
- package/dist/agent-composition/lib/composition-workspace.js.map +1 -0
- package/dist/agent-composition/lib/composition.d.ts +65 -0
- package/dist/agent-composition/lib/composition.d.ts.map +1 -0
- package/dist/agent-composition/lib/composition.js +18 -0
- package/dist/agent-composition/lib/composition.js.map +1 -0
- package/dist/agent-workspace/awp-spec.json +1 -1
- package/dist/agent-workspace/lib/awp-v1.d.ts +15 -0
- package/dist/agent-workspace/lib/awp-v1.d.ts.map +1 -0
- package/dist/agent-workspace/lib/awp-v1.js +197 -0
- package/dist/agent-workspace/lib/awp-v1.js.map +1 -0
- 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/object/lib/xema-object-ref.ts +16 -8
|
@@ -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"}
|
|
@@ -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":"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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.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
|
-
|
|
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) {
|