@eir-labs/coltrane 0.5.1 → 0.7.2
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/README.md +23 -0
- package/agents/bill.json +59 -0
- package/agents/deploy-agent.json +68 -0
- package/agents/deploy-scout.json +40 -0
- package/agents/john.json +42 -0
- package/agents/miles.json +44 -0
- package/charts/software-delivery-v1.json +9 -0
- package/charts/software-delivery-v2.json +39 -0
- package/dist/src/bifrost_invoker.js +5 -3
- package/dist/src/bifrost_invoker.js.map +1 -1
- package/dist/src/canonical_form.d.ts +23 -0
- package/dist/src/canonical_form.js +53 -0
- package/dist/src/canonical_form.js.map +1 -1
- package/dist/src/chart.d.ts +254 -0
- package/dist/src/chart.js +897 -0
- package/dist/src/chart.js.map +1 -0
- package/dist/src/claude_invoker.d.ts +20 -3
- package/dist/src/claude_invoker.js +30 -5
- package/dist/src/claude_invoker.js.map +1 -1
- package/dist/src/cli.d.ts +19 -4
- package/dist/src/cli.js +132 -9
- package/dist/src/cli.js.map +1 -1
- package/dist/src/composition.d.ts +24 -0
- package/dist/src/composition.js +50 -5
- package/dist/src/composition.js.map +1 -1
- package/dist/src/conduct_daemon.d.ts +59 -0
- package/dist/src/conduct_daemon.js +178 -0
- package/dist/src/conduct_daemon.js.map +1 -0
- package/dist/src/genome_schema.d.ts +1476 -146
- package/dist/src/genome_schema.js +438 -32
- package/dist/src/genome_schema.js.map +1 -1
- package/dist/src/genome_store.d.ts +79 -0
- package/dist/src/genome_store.js +503 -0
- package/dist/src/genome_store.js.map +1 -0
- package/dist/src/gig_tracker.d.ts +11 -1
- package/dist/src/gig_tracker.js +5 -0
- package/dist/src/gig_tracker.js.map +1 -1
- package/dist/src/hosted_tools.d.ts +23 -0
- package/dist/src/hosted_tools.js +170 -0
- package/dist/src/hosted_tools.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/ledger.d.ts +22 -0
- package/dist/src/ledger.js +4 -0
- package/dist/src/ledger.js.map +1 -1
- package/dist/src/loader.d.ts +9 -1
- package/dist/src/loader.js +105 -5
- package/dist/src/loader.js.map +1 -1
- package/dist/src/mcp.js +52 -5
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/output_mirror.d.ts +70 -0
- package/dist/src/output_mirror.js +381 -0
- package/dist/src/output_mirror.js.map +1 -0
- package/dist/src/outputs.d.ts +77 -1
- package/dist/src/outputs.js +179 -37
- package/dist/src/outputs.js.map +1 -1
- package/dist/src/play_worker.d.ts +24 -0
- package/dist/src/play_worker.js +49 -0
- package/dist/src/play_worker.js.map +1 -0
- package/dist/src/registry.d.ts +2 -0
- package/dist/src/registry.js +63 -33
- package/dist/src/registry.js.map +1 -1
- package/dist/src/reuse.d.ts +56 -0
- package/dist/src/reuse.js +0 -0
- package/dist/src/reuse.js.map +1 -1
- package/dist/src/runtime.d.ts +91 -2
- package/dist/src/runtime.js +236 -18
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/seal_drill.d.ts +32 -0
- package/dist/src/seal_drill.js +138 -0
- package/dist/src/seal_drill.js.map +1 -0
- package/dist/src/server.d.ts +39 -1
- package/dist/src/server.js +760 -68
- package/dist/src/server.js.map +1 -1
- package/dist/src/skill_subprocess.js +12 -4
- package/dist/src/skill_subprocess.js.map +1 -1
- package/dist/src/supabase_genome.d.ts +28 -0
- package/dist/src/supabase_genome.js +49 -0
- package/dist/src/supabase_genome.js.map +1 -0
- package/dist/src/tool_surface.d.ts +5 -0
- package/dist/src/tool_surface.js +15 -0
- package/dist/src/tool_surface.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/worker.d.ts +182 -0
- package/dist/src/worker.js +609 -0
- package/dist/src/worker.js.map +1 -0
- package/domain_types/branch-state.json +21 -0
- package/domain_types/change-context.json +39 -0
- package/domain_types/change-decision.json +36 -0
- package/domain_types/change-plan.json +47 -0
- package/domain_types/change-request.json +24 -0
- package/domain_types/change-set.json +46 -0
- package/domain_types/change-verdict.json +26 -0
- package/domain_types/deploy-verdict.json +23 -0
- package/domain_types/design-brief.json +37 -0
- package/domain_types/design-concept.json +36 -0
- package/domain_types/design-definition.json +37 -0
- package/domain_types/design-question.json +23 -0
- package/domain_types/design-verdict.json +27 -0
- package/domain_types/preview-deployment.json +32 -0
- package/institutions/quartet.json +344 -0
- package/package.json +21 -3
- package/skills/vercel-api/fixtures/error.json +10 -0
- package/skills/vercel-api/fixtures/ready.json +10 -0
- package/skills/vercel-api/fixtures/unsettled.json +10 -0
- package/skills/vercel-api/meta.json +10 -0
- package/skills/vercel-api/skill.mjs +63 -0
- package/standards/preview-deploy-v1.json +89 -0
- package/standards/product-design-v1.json +122 -0
- package/standards/promote-v1.json +41 -0
- package/standards/software-change-v1.json +147 -0
- package/venues/ci-deploy-room-v1.json +28 -0
- package/venues/empty-room-v1.json +19 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// hosted_tools.ts — the INTERIM six-tool hosted surface. DEPRECATED in favor of the full
|
|
2
|
+
// engine surface: `createToolSurface` (subpath "./tool_surface") mounts ALL engine tools
|
|
3
|
+
// per-request, backed by a GenomeStore (subpath "./genome_store" — postgrestGenomeStore
|
|
4
|
+
// rides the same {baseUrl, anonKey, bearer} context this module established). Kept because
|
|
5
|
+
// the current deploy still consumes it; new hosts should mount the full surface instead.
|
|
6
|
+
//
|
|
7
|
+
// The original charter, still true of the pattern this module pioneered:
|
|
8
|
+
// the hosted MCP tool surface, defined ONCE here (OSS, npm-published) and
|
|
9
|
+
// consumed by any host: the Vercel app, a self-hosted wrapper, a test harness. The split of
|
|
10
|
+
// responsibilities is the auth-boundary law applied to tooling:
|
|
11
|
+
//
|
|
12
|
+
// * THE ENGINE (this module) owns what the tools ARE — names, schemas, store-facing
|
|
13
|
+
// behavior. It is dependency-free (plain fetch against a PostgREST-shaped org store)
|
|
14
|
+
// and auth-BLIND: it never decides whether a bearer is valid, it only routes by the
|
|
15
|
+
// bearer's CLASS, and the store refuses invalid credentials where the hashes live.
|
|
16
|
+
// * THE HOST owns transport and authentication — it verifies/obtains the bearer (OAuth
|
|
17
|
+
// browser login for humans, issued ctk_ capability tokens for agents), mounts these
|
|
18
|
+
// definitions on whatever MCP transport it serves, and passes the context in.
|
|
19
|
+
//
|
|
20
|
+
// Two bearer classes, per the mcp-auth model:
|
|
21
|
+
// * ctk_ agent capability token → security-definer RPCs (coltrane_mcp_*) resolve the
|
|
22
|
+
// token's hash inside the store and scope to its org + exact may_dispatch list.
|
|
23
|
+
// * a member session JWT → rides PostgREST directly; RLS scopes rows to the member, and
|
|
24
|
+
// dispatch runs the governor-gated RPC as them (auth.uid()).
|
|
25
|
+
const isAgentBearer = (bearer) => bearer.startsWith("ctk_");
|
|
26
|
+
const ok = (data) => ({ text: JSON.stringify(data) });
|
|
27
|
+
const err = (message) => ({ text: message, isError: true });
|
|
28
|
+
async function rpc(ctx, fn, body, asCaller) {
|
|
29
|
+
const res = await fetch(`${ctx.baseUrl}/rest/v1/rpc/${fn}`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: {
|
|
32
|
+
apikey: ctx.anonKey,
|
|
33
|
+
// The JWT authenticates via the header (PostgREST verifies it; RLS/auth.uid() scope it).
|
|
34
|
+
// A ctk_ bearer is NOT a JWT — it authenticates inside the definer RPC via the body, and
|
|
35
|
+
// the transport rides the anon key.
|
|
36
|
+
Authorization: `Bearer ${asCaller ? ctx.bearer : ctx.anonKey}`,
|
|
37
|
+
"Content-Type": "application/json",
|
|
38
|
+
},
|
|
39
|
+
body: JSON.stringify(body),
|
|
40
|
+
});
|
|
41
|
+
const text = await res.text();
|
|
42
|
+
if (!res.ok) {
|
|
43
|
+
try {
|
|
44
|
+
const parsed = JSON.parse(text);
|
|
45
|
+
return err(parsed.message ?? text);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return err(text || `store error ${res.status}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { text: text || "null" };
|
|
52
|
+
}
|
|
53
|
+
async function restGet(ctx, pathAndQuery) {
|
|
54
|
+
const res = await fetch(`${ctx.baseUrl}/rest/v1/${pathAndQuery}`, {
|
|
55
|
+
headers: {
|
|
56
|
+
apikey: ctx.anonKey,
|
|
57
|
+
Authorization: `Bearer ${ctx.bearer}`,
|
|
58
|
+
"Content-Type": "application/json",
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
const text = await res.text();
|
|
62
|
+
if (!res.ok)
|
|
63
|
+
return err(text || `store error ${res.status}`);
|
|
64
|
+
return { text };
|
|
65
|
+
}
|
|
66
|
+
export const HOSTED_TOOLS = [
|
|
67
|
+
{
|
|
68
|
+
name: "list_standards",
|
|
69
|
+
title: "List standards",
|
|
70
|
+
description: "The standards in your organizations' genome layers — what a gig can be.",
|
|
71
|
+
paramsJsonSchema: { type: "object", properties: {} },
|
|
72
|
+
async handler(_args, ctx) {
|
|
73
|
+
if (isAgentBearer(ctx.bearer))
|
|
74
|
+
return rpc(ctx, "coltrane_mcp_standards", { p_bearer: ctx.bearer }, false);
|
|
75
|
+
return restGet(ctx, "coltrane_standards?select=slug,version,status,domain,output_types,org_id&order=slug");
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "list_gigs",
|
|
80
|
+
title: "List gigs",
|
|
81
|
+
description: "The queue and the history — the gig table IS the queue. Optionally filter by status (queued|running|completed|failed|aborted).",
|
|
82
|
+
paramsJsonSchema: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
status: { type: "string", description: "queued|running|completed|failed|aborted" },
|
|
86
|
+
limit: { type: "number" },
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
async handler(args, ctx) {
|
|
90
|
+
if (isAgentBearer(ctx.bearer))
|
|
91
|
+
return err("agent tokens read single gigs via gig_status; listing is a member surface");
|
|
92
|
+
const limit = Math.min(Number(args["limit"] ?? 25), 100);
|
|
93
|
+
const status = args["status"] ? `&status=eq.${encodeURIComponent(String(args["status"]))}` : "";
|
|
94
|
+
return restGet(ctx, `coltrane_gigs?select=id,standard_slug,status,mode,total_cost_usd,dispatched_by,acting_for,created_at,completed_at&order=created_at.desc&limit=${limit}${status}`);
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "gig_status",
|
|
99
|
+
title: "Gig status",
|
|
100
|
+
description: "One gig's status, spend, and reproducibility keys (org-scoped).",
|
|
101
|
+
paramsJsonSchema: {
|
|
102
|
+
type: "object",
|
|
103
|
+
properties: { gig_id: { type: "string" } },
|
|
104
|
+
required: ["gig_id"],
|
|
105
|
+
},
|
|
106
|
+
async handler(args, ctx) {
|
|
107
|
+
const gig = String(args["gig_id"] ?? "");
|
|
108
|
+
if (isAgentBearer(ctx.bearer))
|
|
109
|
+
return rpc(ctx, "coltrane_mcp_gig_status", { p_bearer: ctx.bearer, p_gig: gig }, false);
|
|
110
|
+
return restGet(ctx, `coltrane_gigs?select=id,standard_slug,status,mode,total_cost_usd,genome_hash,run_fingerprint,started_at,completed_at,manifest&id=eq.${encodeURIComponent(gig)}`);
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: "gig_outputs",
|
|
115
|
+
title: "Gig outputs",
|
|
116
|
+
description: "A gig's sealed outputs with their provenance (content_sha + input_shas).",
|
|
117
|
+
paramsJsonSchema: {
|
|
118
|
+
type: "object",
|
|
119
|
+
properties: { gig_id: { type: "string" } },
|
|
120
|
+
required: ["gig_id"],
|
|
121
|
+
},
|
|
122
|
+
async handler(args, ctx) {
|
|
123
|
+
const gig = String(args["gig_id"] ?? "");
|
|
124
|
+
if (isAgentBearer(ctx.bearer))
|
|
125
|
+
return rpc(ctx, "coltrane_mcp_gig_outputs", { p_bearer: ctx.bearer, p_gig: gig }, false);
|
|
126
|
+
return restGet(ctx, `coltrane_outputs?select=id,domain_type,agent_slug,phase,content_sha,input_shas,created_at,data&gig_id=eq.${encodeURIComponent(gig)}&order=created_at`);
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: "roster",
|
|
131
|
+
title: "Roster",
|
|
132
|
+
description: "The named players and humans of your organizations — names, forebears, status (member surface).",
|
|
133
|
+
paramsJsonSchema: { type: "object", properties: {} },
|
|
134
|
+
async handler(_args, ctx) {
|
|
135
|
+
if (isAgentBearer(ctx.bearer))
|
|
136
|
+
return err("the roster is a member surface; agent tokens read gigs and outputs");
|
|
137
|
+
return restGet(ctx, "coltrane_agent?select=slug,name,kind,status,named_from_forebear&order=slug");
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "dispatch_gig",
|
|
142
|
+
title: "Dispatch a gig",
|
|
143
|
+
description: "Queue one run of a standard. Queuing only — a drain worker claims and runs it. Members dispatch as themselves (governor-gated); agent tokens are limited to their exact may_dispatch list.",
|
|
144
|
+
paramsJsonSchema: {
|
|
145
|
+
type: "object",
|
|
146
|
+
properties: {
|
|
147
|
+
standard_slug: { type: "string" },
|
|
148
|
+
mode: { type: "string", enum: ["rehearsal", "studio", "live"] },
|
|
149
|
+
input: { type: "object" },
|
|
150
|
+
org_slug: { type: "string", description: "Disambiguates when you belong to several orgs carrying the standard." },
|
|
151
|
+
},
|
|
152
|
+
required: ["standard_slug", "mode", "input"],
|
|
153
|
+
},
|
|
154
|
+
async handler(args, ctx) {
|
|
155
|
+
if (isAgentBearer(ctx.bearer)) {
|
|
156
|
+
const out = await rpc(ctx, "coltrane_mcp_dispatch", { p_bearer: ctx.bearer, p_standard: args["standard_slug"], p_mode: args["mode"], p_input: args["input"] ?? {} }, false);
|
|
157
|
+
return out.isError ? out : ok({ gig_id: JSON.parse(out.text), status: "queued" });
|
|
158
|
+
}
|
|
159
|
+
const out = await rpc(ctx, "coltrane_gig_dispatch", { p_standard: args["standard_slug"], p_mode: args["mode"], p_input: args["input"] ?? {}, p_org_slug: args["org_slug"] ?? null }, true);
|
|
160
|
+
return out.isError ? out : ok({ gig_id: JSON.parse(out.text), status: "queued" });
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
];
|
|
164
|
+
export function hostedToolByName(name) {
|
|
165
|
+
const tool = HOSTED_TOOLS.find((t) => t.name === name);
|
|
166
|
+
if (!tool)
|
|
167
|
+
throw new Error(`unknown hosted tool: ${name}`);
|
|
168
|
+
return tool;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=hosted_tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted_tools.js","sourceRoot":"","sources":["../../src/hosted_tools.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,yFAAyF;AACzF,wFAAwF;AACxF,2FAA2F;AAC3F,yFAAyF;AACzF,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,4FAA4F;AAC5F,gEAAgE;AAChE,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,wFAAwF;AACxF,uFAAuF;AACvF,yFAAyF;AACzF,wFAAwF;AACxF,kFAAkF;AAClF,EAAE;AACF,8CAA8C;AAC9C,uFAAuF;AACvF,oFAAoF;AACpF,0FAA0F;AAC1F,iEAAiE;AA0BjE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,EAAE,GAAG,CAAC,IAAa,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjF,MAAM,GAAG,GAAG,CAAC,OAAe,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtF,KAAK,UAAU,GAAG,CAAC,GAAsB,EAAE,EAAU,EAAE,IAA6B,EAAE,QAAiB;IACrG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,gBAAgB,EAAE,EAAE,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,yFAAyF;YACzF,yFAAyF;YACzF,oCAAoC;YACpC,aAAa,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;YAC9D,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;YACxD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,IAAI,IAAI,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAsB,EAAE,YAAoB;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,YAAY,YAAY,EAAE,EAAE;QAChE,OAAO,EAAE;YACP,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,aAAa,EAAE,UAAU,GAAG,CAAC,MAAM,EAAE;YACrC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC,IAAI,IAAI,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,yEAAyE;QACtF,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;YACtB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1G,OAAO,OAAO,CAAC,GAAG,EAAE,qFAAqF,CAAC,CAAC;QAC7G,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,gIAAgI;QAClI,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAClF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,2EAA2E,CAAC,CAAC;YACvH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,OAAO,CACZ,GAAG,EACH,iJAAiJ,KAAK,GAAG,MAAM,EAAE,CAClK,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,iEAAiE;QAC9E,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACvH,OAAO,OAAO,CACZ,GAAG,EACH,uIAAuI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CACjK,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,0EAA0E;QACvF,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACxH,OAAO,OAAO,CACZ,GAAG,EACH,4GAA4G,kBAAkB,CAAC,GAAG,CAAC,mBAAmB,CACvJ,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,iGAAiG;QAC9G,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;YACtB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAChH,OAAO,OAAO,CAAC,GAAG,EAAE,4EAA4E,CAAC,CAAC;QACpG,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,4LAA4L;QAC9L,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sEAAsE,EAAE;aAClH;YACD,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC;SAC7C;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,GAAG,EACH,uBAAuB,EACvB,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAC/G,KAAK,CACN,CAAC;gBACF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,GAAG,EACH,uBAAuB,EACvB,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAC/H,IAAI,CACL,CAAC;YACF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;KACF;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -18,10 +18,14 @@ export * from "./canonical_core_types.js";
|
|
|
18
18
|
export * from "./canonical_form.js";
|
|
19
19
|
export * from "./ledger.js";
|
|
20
20
|
export * from "./outputs.js";
|
|
21
|
+
export * from "./output_mirror.js";
|
|
22
|
+
export * from "./hosted_tools.js";
|
|
23
|
+
export * from "./genome_store.js";
|
|
21
24
|
export * from "./reuse.js";
|
|
22
25
|
export * from "./charter.js";
|
|
23
26
|
export * from "./server.js";
|
|
24
27
|
export * from "./runtime.js";
|
|
28
|
+
export * from "./chart.js";
|
|
25
29
|
export * from "./claude_invoker.js";
|
|
26
30
|
export * from "./bifrost_invoker.js";
|
|
27
31
|
export * from "./circle_of_fifths.js";
|
package/dist/src/index.js
CHANGED
|
@@ -18,10 +18,14 @@ export * from "./canonical_core_types.js";
|
|
|
18
18
|
export * from "./canonical_form.js";
|
|
19
19
|
export * from "./ledger.js";
|
|
20
20
|
export * from "./outputs.js";
|
|
21
|
+
export * from "./output_mirror.js";
|
|
22
|
+
export * from "./hosted_tools.js";
|
|
23
|
+
export * from "./genome_store.js";
|
|
21
24
|
export * from "./reuse.js";
|
|
22
25
|
export * from "./charter.js";
|
|
23
26
|
export * from "./server.js";
|
|
24
27
|
export * from "./runtime.js";
|
|
28
|
+
export * from "./chart.js";
|
|
25
29
|
export * from "./claude_invoker.js";
|
|
26
30
|
export * from "./bifrost_invoker.js";
|
|
27
31
|
export * from "./circle_of_fifths.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
package/dist/src/ledger.d.ts
CHANGED
|
@@ -71,7 +71,25 @@ interface LedgerEntryBase {
|
|
|
71
71
|
export interface GigLedgerEntry extends LedgerEntryBase {
|
|
72
72
|
kind: "gig";
|
|
73
73
|
gig_id: string;
|
|
74
|
+
/**
|
|
75
|
+
* WHICH standard ran. Still non-null, and still populated on every row — including a chart's.
|
|
76
|
+
*
|
|
77
|
+
* A gig row is sealed per MOVEMENT, and a movement always names exactly one standard, so there is
|
|
78
|
+
* no row for which `null` would be truthful. (The chart spec anticipated a chart-level row with
|
|
79
|
+
* no single standard; this engine seals none — see `chart_slug` below.) An existing consumer
|
|
80
|
+
* reading `standard_slug` on a single-standard gig is therefore unaffected.
|
|
81
|
+
*/
|
|
74
82
|
standard_slug: string;
|
|
83
|
+
/**
|
|
84
|
+
* The ARRANGEMENT this run was a movement of, and WHICH movement (charts only).
|
|
85
|
+
*
|
|
86
|
+
* For the degenerate one-movement chart both equal `standard_slug`, so a chart-shaped reader and
|
|
87
|
+
* a standard-shaped reader see the same run the same way. Optional because ~50 direct `runGig`
|
|
88
|
+
* callers (and every row written before charts existed) legitimately have no arrangement — an
|
|
89
|
+
* absent field means "not part of a chart", never a sentinel.
|
|
90
|
+
*/
|
|
91
|
+
chart_slug?: string;
|
|
92
|
+
movement_id?: string;
|
|
75
93
|
genome_hash: string;
|
|
76
94
|
run_fingerprint: string;
|
|
77
95
|
usage?: GigUsage;
|
|
@@ -114,6 +132,10 @@ export interface LedgerQuery {
|
|
|
114
132
|
subject_gig_id?: string;
|
|
115
133
|
gig_id?: string;
|
|
116
134
|
standard_slug?: string;
|
|
135
|
+
/** "what did this arrangement do" / "what did this movement of it do" — a chart is auditable
|
|
136
|
+
* by the same filtering as a standard, or it is only auditable by hand. */
|
|
137
|
+
chart_slug?: string;
|
|
138
|
+
movement_id?: string;
|
|
117
139
|
genome_hash?: string;
|
|
118
140
|
effective_hash?: string;
|
|
119
141
|
after?: string;
|
package/dist/src/ledger.js
CHANGED
|
@@ -104,6 +104,10 @@ function matches(entry, filter) {
|
|
|
104
104
|
return false;
|
|
105
105
|
if (filter.standard_slug && e["standard_slug"] !== filter.standard_slug)
|
|
106
106
|
return false;
|
|
107
|
+
if (filter.chart_slug && e["chart_slug"] !== filter.chart_slug)
|
|
108
|
+
return false;
|
|
109
|
+
if (filter.movement_id && e["movement_id"] !== filter.movement_id)
|
|
110
|
+
return false;
|
|
107
111
|
if (filter.genome_hash && e["genome_hash"] !== filter.genome_hash)
|
|
108
112
|
return false;
|
|
109
113
|
if (filter.effective_hash && e["effective_hash"] !== filter.effective_hash)
|
package/dist/src/ledger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/ledger.ts"],"names":[],"mappings":"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"}
|
package/dist/src/loader.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Agent, type AgentDef, type Standard, type PhaseDef } from "./composition.js";
|
|
2
2
|
import { type SkillOutput, type EvalOutput, type DomainTypeOutput } from "./genome_schema.js";
|
|
3
|
+
import { type Chart, type Venue } from "./chart.js";
|
|
3
4
|
export interface CoreTypeRecord {
|
|
4
5
|
slug: string;
|
|
5
6
|
primitive: string;
|
|
@@ -29,7 +30,7 @@ export type SkillRecord = SkillOutput & {
|
|
|
29
30
|
};
|
|
30
31
|
export type EvalRecord = EvalOutput;
|
|
31
32
|
export interface LoadError {
|
|
32
|
-
readonly kind: "domain_type" | "agent" | "standard" | "skill" | "eval" | "manifest";
|
|
33
|
+
readonly kind: "domain_type" | "agent" | "standard" | "skill" | "eval" | "chart" | "venue" | "manifest";
|
|
33
34
|
readonly path: string;
|
|
34
35
|
readonly slug: string | null;
|
|
35
36
|
readonly error: string;
|
|
@@ -41,6 +42,8 @@ export interface LoadedGenome {
|
|
|
41
42
|
standards: Map<string, Standard>;
|
|
42
43
|
skills: Map<string, SkillRecord>;
|
|
43
44
|
evals: Map<string, EvalRecord>;
|
|
45
|
+
charts: Map<string, Chart>;
|
|
46
|
+
venues: Map<string, Venue>;
|
|
44
47
|
load_errors: LoadError[];
|
|
45
48
|
provenance?: ReadonlyMap<string, string>;
|
|
46
49
|
}
|
|
@@ -48,6 +51,11 @@ export declare class GenomeLoadError extends Error {
|
|
|
48
51
|
}
|
|
49
52
|
export declare function loadGenome(root: string, opts?: {
|
|
50
53
|
inheritedAgents?: ReadonlyMap<string, Agent>;
|
|
54
|
+
/** Genome extension, the chart's side: a consumer chart arranges the BASE's standards and is
|
|
55
|
+
* held in the base's venues, so both have to be resolvable while this layer's charts compose.
|
|
56
|
+
* Same shape and same reason as `inheritedAgents`. */
|
|
57
|
+
inheritedStandards?: ReadonlyMap<string, Standard>;
|
|
58
|
+
inheritedVenues?: ReadonlyMap<string, Venue>;
|
|
51
59
|
/** Set by loadLayeredGenome: defer the dangling-skill-binding post-pass to after the
|
|
52
60
|
* fold, so a base agent binding a skill the consumer layer supplies isn't false-flagged. */
|
|
53
61
|
deferSkillBindingCheck?: boolean;
|
package/dist/src/loader.js
CHANGED
|
@@ -4,7 +4,8 @@ import { join, extname, resolve, isAbsolute, dirname } from "node:path";
|
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
5
|
import { defineAgent, composeStandard, CompositionError, GenomeIncompleteError } from "./composition.js";
|
|
6
6
|
import { loadSkillPackage, SkillLoadError } from "./skills.js";
|
|
7
|
-
import { SkillSchema, EvalSchema, DomainTypeSchema } from "./genome_schema.js";
|
|
7
|
+
import { SkillSchema, EvalSchema, DomainTypeSchema, VenueSchema, ChartSchema, venueDefect } from "./genome_schema.js";
|
|
8
|
+
import { composeChart, chartEntrySeedTypes } from "./chart.js";
|
|
8
9
|
import { CANONICAL_CORE_TYPES } from "./canonical_core_types.js";
|
|
9
10
|
export class GenomeLoadError extends Error {
|
|
10
11
|
}
|
|
@@ -68,7 +69,12 @@ const REQUIRED_CORE_SLUGS = new Set([
|
|
|
68
69
|
function danglingSkillBindingErrors(agents, skills, pathOf) {
|
|
69
70
|
const out = [];
|
|
70
71
|
for (const [slug, agent] of agents) {
|
|
71
|
-
|
|
72
|
+
// A slug the agent CARRIES a definition for is not dangling: the definition on the record IS
|
|
73
|
+
// the package for that slug, and resolution prefers it over a repertoire package of the same
|
|
74
|
+
// name (src/runtime.ts resolveSkills). Only a slug nothing answers — neither the genome's
|
|
75
|
+
// skills map nor the agent's own carried set — is a dead reference.
|
|
76
|
+
const carried = new Set((agent.skills ?? []).map((s) => s.slug));
|
|
77
|
+
const missing = (agent.skill_slugs ?? []).filter((s) => !skills.has(s) && !carried.has(s));
|
|
72
78
|
if (missing.length === 0)
|
|
73
79
|
continue;
|
|
74
80
|
out.push({
|
|
@@ -321,11 +327,96 @@ export function loadGenome(root, opts) {
|
|
|
321
327
|
load_errors.push({ kind: "eval", path, slug, error: err instanceof Error ? err.message : String(err) });
|
|
322
328
|
}
|
|
323
329
|
}
|
|
330
|
+
// venues/ — the institution's configured performance spaces. Loaded BEFORE charts, because a
|
|
331
|
+
// chart names a venue and a chart's compose refuses a venue it cannot resolve. Soft-fail per
|
|
332
|
+
// file, the standards stance: one unsound room does not cost the genome its other rooms.
|
|
333
|
+
// BOTH gates run, the domain_types idiom: the single Zod source for the shape, then venueDefect
|
|
334
|
+
// for the cross-field rules a field cannot state — so a venue authored on disk cannot slip past a
|
|
335
|
+
// check a venue registered via venue_define would hit.
|
|
336
|
+
const venueRead = readJsonDir(join(root, "venues"));
|
|
337
|
+
for (const f of venueRead.parse_failures) {
|
|
338
|
+
load_errors.push({ kind: "venue", path: f.path, slug: null, error: f.error });
|
|
339
|
+
}
|
|
340
|
+
const venues = new Map();
|
|
341
|
+
const venue_paths = new Map();
|
|
342
|
+
for (const { path, data: def } of venueRead.files) {
|
|
343
|
+
const slug = typeof def?.slug === "string" ? def.slug : null;
|
|
344
|
+
try {
|
|
345
|
+
if (!slug)
|
|
346
|
+
throw new Error(`missing required "slug" field`);
|
|
347
|
+
if (venues.has(slug)) {
|
|
348
|
+
throw new Error(`duplicate venue slug "${slug}" (first seen in ${venue_paths.get(slug)})`);
|
|
349
|
+
}
|
|
350
|
+
const parsed = VenueSchema.safeParse(def);
|
|
351
|
+
if (!parsed.success) {
|
|
352
|
+
const why = parsed.error.issues.map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`).join("; ");
|
|
353
|
+
throw new Error(`venue schema validation failed — ${why}`);
|
|
354
|
+
}
|
|
355
|
+
const defect = venueDefect(parsed.data);
|
|
356
|
+
if (defect)
|
|
357
|
+
throw new Error(defect);
|
|
358
|
+
venues.set(slug, parsed.data);
|
|
359
|
+
venue_paths.set(slug, path);
|
|
360
|
+
}
|
|
361
|
+
catch (e) {
|
|
362
|
+
load_errors.push({ kind: "venue", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// charts/ — the ARRANGEMENTS: a chart names standards by slug and is validated the same way a
|
|
366
|
+
// standard is, through the function that owns the rules. `composeChart` resolves every movement's
|
|
367
|
+
// standard, every seating's agent and the named venue against what this genome actually holds, so
|
|
368
|
+
// a chart naming a missing standard fails HERE, where it is a load error with the rule that fired
|
|
369
|
+
// named — not at minute nine of a performance. Soft-fail per file, like standards.
|
|
370
|
+
const chartRead = readJsonDir(join(root, "charts"));
|
|
371
|
+
for (const f of chartRead.parse_failures) {
|
|
372
|
+
load_errors.push({ kind: "chart", path: f.path, slug: null, error: f.error });
|
|
373
|
+
}
|
|
374
|
+
const charts = new Map();
|
|
375
|
+
const chart_paths = new Map();
|
|
376
|
+
for (const { path, data: def } of chartRead.files) {
|
|
377
|
+
const slug = typeof def?.slug === "string" ? def.slug : null;
|
|
378
|
+
try {
|
|
379
|
+
if (!slug)
|
|
380
|
+
throw new Error(`missing required "slug" field`);
|
|
381
|
+
if (charts.has(slug)) {
|
|
382
|
+
throw new Error(`duplicate chart slug "${slug}" (first seen in ${chart_paths.get(slug)})`);
|
|
383
|
+
}
|
|
384
|
+
// Shape first, so the seed computation below reads a parsed chart rather than raw JSON.
|
|
385
|
+
// composeChart re-runs the same parse as its R0 — idempotent, and it keeps ONE owner of the
|
|
386
|
+
// rules rather than a second half-check here.
|
|
387
|
+
const shape = ChartSchema.safeParse(def);
|
|
388
|
+
if (!shape.success) {
|
|
389
|
+
const why = shape.error.issues.map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`).join("; ");
|
|
390
|
+
throw new Error(`R0: chart does not parse — ${why}`);
|
|
391
|
+
}
|
|
392
|
+
// A movement's standard (and a seating's agent, and the venue) resolves against this layer
|
|
393
|
+
// first, then whatever a lower layer supplied — the same resolution order a standard's
|
|
394
|
+
// agent_slugs already get, so a consumer chart may arrange base standards.
|
|
395
|
+
const scopedStandards = new Map([...(opts?.inheritedStandards ?? []), ...standards]);
|
|
396
|
+
const composed = composeChart({
|
|
397
|
+
chart: shape.data,
|
|
398
|
+
standards: scopedStandards,
|
|
399
|
+
agents: new Map([...(opts?.inheritedAgents ?? []), ...agents]),
|
|
400
|
+
venues: new Map([...(opts?.inheritedVenues ?? []), ...venues]),
|
|
401
|
+
// The payload is a dispatch fact; at load time a boundary movement's declared gig contract
|
|
402
|
+
// stands in for it. See chartEntrySeedTypes — the interior dead slot still fires.
|
|
403
|
+
payload_types: chartEntrySeedTypes(shape.data, scopedStandards),
|
|
404
|
+
});
|
|
405
|
+
if (!composed.ok) {
|
|
406
|
+
throw new Error(composed.violations.map((v) => `${v.rule}: ${v.detail}`).join(" | "));
|
|
407
|
+
}
|
|
408
|
+
charts.set(slug, composed.chart);
|
|
409
|
+
chart_paths.set(slug, path);
|
|
410
|
+
}
|
|
411
|
+
catch (e) {
|
|
412
|
+
load_errors.push({ kind: "chart", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
413
|
+
}
|
|
414
|
+
}
|
|
324
415
|
// #241 — post-pass, now that BOTH the agents and skills maps exist.
|
|
325
416
|
if (!opts?.deferSkillBindingCheck) {
|
|
326
417
|
load_errors.push(...danglingSkillBindingErrors(agents, skills, (slug) => agent_paths.get(slug) ?? join(root, "agents")));
|
|
327
418
|
}
|
|
328
|
-
return { core_types, domain_types, agents, standards, skills, evals, load_errors };
|
|
419
|
+
return { core_types, domain_types, agents, standards, skills, evals, charts, venues, load_errors };
|
|
329
420
|
}
|
|
330
421
|
/**
|
|
331
422
|
* Resolve a LAYERED genome from a stack of roots, lowest → highest (genome extension
|
|
@@ -345,6 +436,8 @@ export function loadLayeredGenome(roots) {
|
|
|
345
436
|
const standards = new Map();
|
|
346
437
|
const skills = new Map();
|
|
347
438
|
const evals = new Map();
|
|
439
|
+
const charts = new Map();
|
|
440
|
+
const venues = new Map();
|
|
348
441
|
const load_errors = [];
|
|
349
442
|
const provenance = new Map();
|
|
350
443
|
let core_types = new Map();
|
|
@@ -360,13 +453,20 @@ export function loadLayeredGenome(roots) {
|
|
|
360
453
|
// #241 — the skill-binding check is deferred to the post-fold pass below: a BASE agent
|
|
361
454
|
// may legitimately bind a skill a HIGHER layer supplies, so per-layer it would report a
|
|
362
455
|
// dangle that the resolved genome does not have.
|
|
363
|
-
const layer = loadGenome(root, {
|
|
456
|
+
const layer = loadGenome(root, {
|
|
457
|
+
inheritedAgents: agents,
|
|
458
|
+
inheritedStandards: standards,
|
|
459
|
+
inheritedVenues: venues,
|
|
460
|
+
deferSkillBindingCheck: true,
|
|
461
|
+
});
|
|
364
462
|
core_types = layer.core_types; // immutable 6 — top layer's (all identical)
|
|
365
463
|
fold(domain_types, layer.domain_types, root, "domain_type");
|
|
366
464
|
fold(agents, layer.agents, root, "agent");
|
|
367
465
|
fold(standards, layer.standards, root, "standard");
|
|
368
466
|
fold(skills, layer.skills, root, "skill");
|
|
369
467
|
fold(evals, layer.evals, root, "eval");
|
|
468
|
+
fold(venues, layer.venues, root, "venue");
|
|
469
|
+
fold(charts, layer.charts, root, "chart");
|
|
370
470
|
for (const e of layer.load_errors)
|
|
371
471
|
load_errors.push(e);
|
|
372
472
|
}
|
|
@@ -375,7 +475,7 @@ export function loadLayeredGenome(roots) {
|
|
|
375
475
|
const layerRoot = provenance.get(`agent:${slug}`);
|
|
376
476
|
return layerRoot ? join(layerRoot, "agents") : "";
|
|
377
477
|
}));
|
|
378
|
-
return { core_types, domain_types, agents, standards, skills, evals, load_errors, provenance };
|
|
478
|
+
return { core_types, domain_types, agents, standards, skills, evals, charts, venues, load_errors, provenance };
|
|
379
479
|
}
|
|
380
480
|
/**
|
|
381
481
|
* Manifest-aware genome load (genome extension Phase 2 — opt-in). A genome root may
|