@eir-labs/coltrane 0.6.2 → 0.7.3
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/lineage-scout-external.json +25 -0
- package/agents/lineage-scout-internal.json +32 -0
- package/agents/lineage-scribe.json +21 -0
- package/agents/lineage-weaver.json +23 -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/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/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/genome_schema.d.ts +1203 -166
- package/dist/src/genome_schema.js +344 -34
- package/dist/src/genome_schema.js.map +1 -1
- package/dist/src/genome_store.d.ts +53 -3
- package/dist/src/genome_store.js +316 -139
- package/dist/src/genome_store.js.map +1 -1
- 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/index.d.ts +1 -0
- package/dist/src/index.js +1 -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 +54 -4
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/output_mirror.d.ts +1 -1
- package/dist/src/outputs.d.ts +75 -1
- package/dist/src/outputs.js +142 -28
- package/dist/src/outputs.js.map +1 -1
- package/dist/src/reuse.d.ts +71 -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/server.d.ts +16 -0
- package/dist/src/server.js +600 -64
- package/dist/src/server.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/worker.d.ts +228 -0
- package/dist/src/worker.js +737 -0
- package/dist/src/worker.js.map +1 -0
- package/domain_types/alignment-plan.json +16 -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/internal-inventory.json +26 -0
- package/domain_types/lineage-hit.json +19 -0
- package/domain_types/lineage-map.json +32 -0
- package/domain_types/lineage-question.json +17 -0
- package/domain_types/lineage-record.json +19 -0
- package/domain_types/lineage-verdict.json +16 -0
- package/domain_types/preview-deployment.json +32 -0
- package/institutions/quartet.json +344 -0
- package/package.json +4 -1
- 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/lineage-pass-v1.json +96 -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
- package/dist/src/conduct_daemon.d.ts +0 -59
- package/dist/src/conduct_daemon.js +0 -178
- package/dist/src/conduct_daemon.js.map +0 -1
- package/dist/src/play_worker.d.ts +0 -24
- package/dist/src/play_worker.js +0 -49
- package/dist/src/play_worker.js.map +0 -1
- package/dist/src/supabase_genome.d.ts +0 -28
- package/dist/src/supabase_genome.js +0 -49
- package/dist/src/supabase_genome.js.map +0 -1
package/dist/src/genome_store.js
CHANGED
|
@@ -17,7 +17,8 @@ import { join } from "node:path";
|
|
|
17
17
|
import { resolveGenome, GenomeLoadError, } from "./loader.js";
|
|
18
18
|
import { writeGenomeFileVersioned } from "./genome_writer.js";
|
|
19
19
|
import { defineAgent, composeStandard } from "./composition.js";
|
|
20
|
-
import {
|
|
20
|
+
import { composeChart, chartEntrySeedTypes } from "./chart.js";
|
|
21
|
+
import { DomainTypeSchema, SkillSchema, ChartSchema, VenueSchema, venueDefect } from "./genome_schema.js";
|
|
21
22
|
import { domainTypeDefect } from "./registry.js";
|
|
22
23
|
import { CANONICAL_CORE_TYPES } from "./canonical_core_types.js";
|
|
23
24
|
const CLASS_SUBDIR = {
|
|
@@ -25,6 +26,8 @@ const CLASS_SUBDIR = {
|
|
|
25
26
|
standard: "standards",
|
|
26
27
|
skill: "skills",
|
|
27
28
|
domain_type: "domain_types",
|
|
29
|
+
chart: "charts",
|
|
30
|
+
venue: "venues",
|
|
28
31
|
};
|
|
29
32
|
/** Local-dev backing: the existing loader/writer, behavior identical. load() is
|
|
30
33
|
* resolveGenome (manifest-aware, canonical-core seeding); upsert() writes the loadable
|
|
@@ -68,9 +71,11 @@ const Q = {
|
|
|
68
71
|
core_types: "coltrane_core_types?select=slug,primitive,base_schema,description",
|
|
69
72
|
domain_types: "coltrane_domain_types?select=slug,version,extends,domain,status,schema,required_fields",
|
|
70
73
|
agents: "coltrane_agent_profiles?select=slug,version,status,primitives,input_types,output_types,domain," +
|
|
71
|
-
"identity,method,constraints,depth_profile,permissions,behavioral_primitives,skill_slots,default_skills",
|
|
72
|
-
standards: "coltrane_standards?select=slug,version,status,domain,phases,output_types",
|
|
74
|
+
"identity,method,constraints,depth_profile,permissions,behavioral_primitives,skill_slots,default_skills,carried_skills",
|
|
75
|
+
standards: "coltrane_standards?select=slug,version,status,domain,phases,input_types,output_types",
|
|
73
76
|
skills: "coltrane_skills?select=slug,name,description,skill_md,tier,input_type,output_type,status",
|
|
77
|
+
charts: "coltrane_charts?select=slug,definition",
|
|
78
|
+
venues: "coltrane_venues?select=slug,definition",
|
|
74
79
|
};
|
|
75
80
|
async function restGet(ctx, pathAndQuery) {
|
|
76
81
|
const res = await fetch(`${ctx.baseUrl}/rest/v1/${pathAndQuery}`, {
|
|
@@ -110,6 +115,9 @@ function agentDefFromRow(row) {
|
|
|
110
115
|
code_tool_access: perms["code_tool_access"],
|
|
111
116
|
depth_profile: row["depth_profile"],
|
|
112
117
|
skill_slugs: row["default_skills"],
|
|
118
|
+
// Carried skills travel WITH the agent row (the player's own technique, portable across
|
|
119
|
+
// institutions); absent column or null → the agent simply carries none.
|
|
120
|
+
skills: row["carried_skills"] ?? undefined,
|
|
113
121
|
};
|
|
114
122
|
for (const k of Object.keys(def))
|
|
115
123
|
if (def[k] === undefined || def[k] === null)
|
|
@@ -120,153 +128,216 @@ function agentDefFromRow(row) {
|
|
|
120
128
|
return def;
|
|
121
129
|
}
|
|
122
130
|
const REQUIRED_CORE_SLUGS = ["Signal", "Interpretation", "Judgment", "Plan", "Artifact", "Verdict"];
|
|
131
|
+
/** Reconstruct the loader's in-memory genome shape from store rows — ONE reconstruction,
|
|
132
|
+
* shared by every backing, so a JWT-loaded genome and a ctk-loaded genome cannot drift. */
|
|
133
|
+
export function reconstructGenome(rows) {
|
|
134
|
+
const { core_types: coreRows, domain_types: typeRows, agents: agentRows, standards: standardRows, skills: skillRows } = rows;
|
|
135
|
+
const load_errors = [];
|
|
136
|
+
// core types — engine-owned, immutable 6. No rows visible → seed the canonical set,
|
|
137
|
+
// exactly as loadGenome does for a root with no core_types/. A PARTIAL set is a corrupt
|
|
138
|
+
// store view and hard-fails, mirroring the loader's strict gate.
|
|
139
|
+
const core_types = new Map();
|
|
140
|
+
if (coreRows.length === 0) {
|
|
141
|
+
for (const c of CANONICAL_CORE_TYPES)
|
|
142
|
+
core_types.set(c.slug, c);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
for (const r of coreRows) {
|
|
146
|
+
core_types.set(String(r["slug"]), {
|
|
147
|
+
slug: String(r["slug"]),
|
|
148
|
+
primitive: String(r["primitive"]),
|
|
149
|
+
description: String(r["description"] ?? ""),
|
|
150
|
+
schema: (r["base_schema"] ?? {}),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const missing = REQUIRED_CORE_SLUGS.filter((s) => !core_types.has(s));
|
|
154
|
+
if (missing.length > 0) {
|
|
155
|
+
throw new GenomeLoadError(`coltrane_core_types missing required slugs: ${missing.join(", ")}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// domain types — the loader's three checks, in the loader's order: core-type extends,
|
|
159
|
+
// representability (domainTypeDefect), then the single Zod source. Soft-fail per row.
|
|
160
|
+
const domain_types = new Map();
|
|
161
|
+
for (const r of typeRows) {
|
|
162
|
+
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
163
|
+
const path = `postgrest:coltrane_domain_types/${slug ?? "?"}`;
|
|
164
|
+
try {
|
|
165
|
+
if (!core_types.has(String(r["extends"]))) {
|
|
166
|
+
throw new Error(`field "extends" references "${String(r["extends"])}" which is not a core type`);
|
|
167
|
+
}
|
|
168
|
+
const defect = domainTypeDefect(r);
|
|
169
|
+
if (defect)
|
|
170
|
+
throw new Error(defect);
|
|
171
|
+
const check = DomainTypeSchema.safeParse(r);
|
|
172
|
+
if (!check.success)
|
|
173
|
+
throw new Error(`type schema validation failed — ${zodWhy(check.error.issues)}`);
|
|
174
|
+
const rec = check.data;
|
|
175
|
+
domain_types.set(`${rec.slug}@${rec.version}`, rec);
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
load_errors.push({ kind: "domain_type", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// agents — defineAgent is the loader's own gate (schema parse + composition rules).
|
|
182
|
+
// Hosted rows soft-fail per row: one broken profile is a reported load error, not a
|
|
183
|
+
// dead genome for every caller behind this RLS scope.
|
|
184
|
+
const agents = new Map();
|
|
185
|
+
for (const r of agentRows) {
|
|
186
|
+
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
187
|
+
const path = `postgrest:coltrane_agent_profiles/${slug ?? "?"}`;
|
|
188
|
+
try {
|
|
189
|
+
if (!slug)
|
|
190
|
+
throw new Error(`missing required "slug" field`);
|
|
191
|
+
if (agents.has(slug))
|
|
192
|
+
throw new Error(`duplicate agent slug "${slug}"`);
|
|
193
|
+
agents.set(slug, defineAgent(agentDefFromRow(r)));
|
|
194
|
+
}
|
|
195
|
+
catch (e) {
|
|
196
|
+
load_errors.push({ kind: "agent", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// standards — phases jsonb is already the engine phase shape; the agents a standard
|
|
200
|
+
// composes are the ones its chairs name. composeStandard is the loader's own gate.
|
|
201
|
+
const standards = new Map();
|
|
202
|
+
for (const r of standardRows) {
|
|
203
|
+
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
204
|
+
const path = `postgrest:coltrane_standards/${slug ?? "?"}`;
|
|
205
|
+
try {
|
|
206
|
+
if (!slug)
|
|
207
|
+
throw new Error(`missing required "slug" field`);
|
|
208
|
+
if (standards.has(slug))
|
|
209
|
+
throw new Error(`duplicate standard slug "${slug}"`);
|
|
210
|
+
const phases = (r["phases"] ?? []);
|
|
211
|
+
const chairAgentSlugs = [
|
|
212
|
+
...new Set(phases.flatMap((p) => (p.chairs ?? []).map((c) => c.agent_slug).filter((s) => !!s))),
|
|
213
|
+
];
|
|
214
|
+
const resolved = chairAgentSlugs.map((aslug) => {
|
|
215
|
+
const a = agents.get(aslug);
|
|
216
|
+
if (!a)
|
|
217
|
+
throw new Error(`references unknown agent "${aslug}"`);
|
|
218
|
+
return a;
|
|
219
|
+
});
|
|
220
|
+
standards.set(slug, composeStandard({
|
|
221
|
+
slug,
|
|
222
|
+
domain: String(r["domain"] ?? ""),
|
|
223
|
+
agents: resolved,
|
|
224
|
+
phases,
|
|
225
|
+
status: r["status"] ?? "active",
|
|
226
|
+
// input_types is load-bearing: it names the entry-chair contracts the GIG INPUT
|
|
227
|
+
// satisfies. Dropping it fails composition at every entry chair (found live).
|
|
228
|
+
...(Array.isArray(r["input_types"]) ? { input_types: r["input_types"] } : {}),
|
|
229
|
+
...(Array.isArray(r["output_types"]) ? { output_types: r["output_types"] } : {}),
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
load_errors.push({ kind: "standard", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// skills — the row's skill_md IS the loaded reasoning half (`md`, the prompt's Skills
|
|
237
|
+
// layer). Hosted skills carry no local package dir / code half by construction.
|
|
238
|
+
const skills = new Map();
|
|
239
|
+
for (const r of skillRows) {
|
|
240
|
+
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
241
|
+
const path = `postgrest:coltrane_skills/${slug ?? "?"}`;
|
|
242
|
+
try {
|
|
243
|
+
if (!slug)
|
|
244
|
+
throw new Error(`missing required "slug" field`);
|
|
245
|
+
if (skills.has(slug))
|
|
246
|
+
throw new Error(`duplicate skill slug "${slug}"`);
|
|
247
|
+
const meta = {
|
|
248
|
+
slug,
|
|
249
|
+
description: r["description"] ?? undefined,
|
|
250
|
+
input_type: r["input_type"] ?? undefined,
|
|
251
|
+
output_type: r["output_type"] ?? undefined,
|
|
252
|
+
...(typeof r["tier"] === "number" ? { permission: { tier: r["tier"] } } : {}),
|
|
253
|
+
...(typeof r["skill_md"] === "string" ? { md: r["skill_md"] } : {}),
|
|
254
|
+
};
|
|
255
|
+
for (const k of Object.keys(meta))
|
|
256
|
+
if (meta[k] === undefined)
|
|
257
|
+
delete meta[k];
|
|
258
|
+
const check = SkillSchema.safeParse(meta);
|
|
259
|
+
if (!check.success)
|
|
260
|
+
throw new Error(`skill schema validation failed — ${zodWhy(check.error.issues)}`);
|
|
261
|
+
skills.set(slug, check.data);
|
|
262
|
+
}
|
|
263
|
+
catch (e) {
|
|
264
|
+
load_errors.push({ kind: "skill", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// evals — no hosted table today; present and empty, the same shape as a genome
|
|
268
|
+
// root with no evals/ directory.
|
|
269
|
+
const evals = new Map();
|
|
270
|
+
// charts + venues — likewise: the classes exist in the engine and are authorable over the file
|
|
271
|
+
// backing, but the store has no coltrane_charts / coltrane_venues table to read yet. Present and
|
|
272
|
+
// empty is the same shape as a genome root with no charts/ or venues/ directory, so every reader
|
|
273
|
+
// (chart_browse, gig_dispatch, system_health) behaves identically against a hosted genome — it
|
|
274
|
+
// finds nothing, and says nothing was found. Adding the two tables + the upsert branches is
|
|
275
|
+
// store-side work; nothing here changes when they land.
|
|
276
|
+
const charts = new Map();
|
|
277
|
+
const venues = new Map();
|
|
278
|
+
// venues before charts — a chart names a venue, exactly the loader's ordering.
|
|
279
|
+
for (const r of rows.venues ?? []) {
|
|
280
|
+
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
281
|
+
const path = `postgrest:coltrane_venues/${slug ?? "?"}`;
|
|
282
|
+
try {
|
|
283
|
+
const check = VenueSchema.safeParse(r["definition"]);
|
|
284
|
+
if (!check.success)
|
|
285
|
+
throw new Error(`venue schema validation failed — ${zodWhy(check.error.issues)}`);
|
|
286
|
+
const defect = venueDefect(check.data);
|
|
287
|
+
if (defect)
|
|
288
|
+
throw new Error(defect);
|
|
289
|
+
if (venues.has(check.data.slug))
|
|
290
|
+
throw new Error(`duplicate venue slug "${check.data.slug}"`);
|
|
291
|
+
venues.set(check.data.slug, check.data);
|
|
292
|
+
}
|
|
293
|
+
catch (e) {
|
|
294
|
+
load_errors.push({ kind: "venue", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
for (const r of rows.charts ?? []) {
|
|
298
|
+
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
299
|
+
const path = `postgrest:coltrane_charts/${slug ?? "?"}`;
|
|
300
|
+
try {
|
|
301
|
+
const check = ChartSchema.safeParse(r["definition"]);
|
|
302
|
+
if (!check.success)
|
|
303
|
+
throw new Error(`R0: chart does not parse — ${zodWhy(check.error.issues)}`);
|
|
304
|
+
if (charts.has(check.data.slug))
|
|
305
|
+
throw new Error(`duplicate chart slug "${check.data.slug}"`);
|
|
306
|
+
const composed = composeChart({
|
|
307
|
+
chart: check.data,
|
|
308
|
+
standards,
|
|
309
|
+
agents,
|
|
310
|
+
venues,
|
|
311
|
+
// the loader's own load-time stand-in for the dispatch payload
|
|
312
|
+
payload_types: chartEntrySeedTypes(check.data, standards),
|
|
313
|
+
});
|
|
314
|
+
if (!composed.ok)
|
|
315
|
+
throw new Error(composed.violations.map((v) => `${v.rule}: ${v.detail}`).join(" | "));
|
|
316
|
+
charts.set(check.data.slug, composed.chart);
|
|
317
|
+
}
|
|
318
|
+
catch (e) {
|
|
319
|
+
load_errors.push({ kind: "chart", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return { core_types, domain_types, agents, standards, skills, evals, charts, venues, load_errors };
|
|
323
|
+
}
|
|
123
324
|
/** Hosted backing: load the genome from the store's five tables and reconstruct the SAME
|
|
124
325
|
* in-memory shape the file loader produces; upsert through the governed RPC. */
|
|
125
326
|
export function postgrestGenomeStore(ctx) {
|
|
126
327
|
return {
|
|
127
328
|
async load() {
|
|
128
|
-
const [
|
|
329
|
+
const [core_types, domain_types, agents, standards, skills, charts, venues] = await Promise.all([
|
|
129
330
|
restGet(ctx, Q.core_types),
|
|
130
331
|
restGet(ctx, Q.domain_types),
|
|
131
332
|
restGet(ctx, Q.agents),
|
|
132
333
|
restGet(ctx, Q.standards),
|
|
133
334
|
restGet(ctx, Q.skills),
|
|
335
|
+
restGet(ctx, Q.charts),
|
|
336
|
+
restGet(ctx, Q.venues),
|
|
134
337
|
]);
|
|
135
|
-
|
|
136
|
-
// core types — engine-owned, immutable 6. No rows visible → seed the canonical set,
|
|
137
|
-
// exactly as loadGenome does for a root with no core_types/. A PARTIAL set is a corrupt
|
|
138
|
-
// store view and hard-fails, mirroring the loader's strict gate.
|
|
139
|
-
const core_types = new Map();
|
|
140
|
-
if (coreRows.length === 0) {
|
|
141
|
-
for (const c of CANONICAL_CORE_TYPES)
|
|
142
|
-
core_types.set(c.slug, c);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
for (const r of coreRows) {
|
|
146
|
-
core_types.set(String(r["slug"]), {
|
|
147
|
-
slug: String(r["slug"]),
|
|
148
|
-
primitive: String(r["primitive"]),
|
|
149
|
-
description: String(r["description"] ?? ""),
|
|
150
|
-
schema: (r["base_schema"] ?? {}),
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
const missing = REQUIRED_CORE_SLUGS.filter((s) => !core_types.has(s));
|
|
154
|
-
if (missing.length > 0) {
|
|
155
|
-
throw new GenomeLoadError(`coltrane_core_types missing required slugs: ${missing.join(", ")}`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// domain types — the loader's three checks, in the loader's order: core-type extends,
|
|
159
|
-
// representability (domainTypeDefect), then the single Zod source. Soft-fail per row.
|
|
160
|
-
const domain_types = new Map();
|
|
161
|
-
for (const r of typeRows) {
|
|
162
|
-
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
163
|
-
const path = `postgrest:coltrane_domain_types/${slug ?? "?"}`;
|
|
164
|
-
try {
|
|
165
|
-
if (!core_types.has(String(r["extends"]))) {
|
|
166
|
-
throw new Error(`field "extends" references "${String(r["extends"])}" which is not a core type`);
|
|
167
|
-
}
|
|
168
|
-
const defect = domainTypeDefect(r);
|
|
169
|
-
if (defect)
|
|
170
|
-
throw new Error(defect);
|
|
171
|
-
const check = DomainTypeSchema.safeParse(r);
|
|
172
|
-
if (!check.success)
|
|
173
|
-
throw new Error(`type schema validation failed — ${zodWhy(check.error.issues)}`);
|
|
174
|
-
const rec = check.data;
|
|
175
|
-
domain_types.set(`${rec.slug}@${rec.version}`, rec);
|
|
176
|
-
}
|
|
177
|
-
catch (e) {
|
|
178
|
-
load_errors.push({ kind: "domain_type", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// agents — defineAgent is the loader's own gate (schema parse + composition rules).
|
|
182
|
-
// Hosted rows soft-fail per row: one broken profile is a reported load error, not a
|
|
183
|
-
// dead genome for every caller behind this RLS scope.
|
|
184
|
-
const agents = new Map();
|
|
185
|
-
for (const r of agentRows) {
|
|
186
|
-
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
187
|
-
const path = `postgrest:coltrane_agent_profiles/${slug ?? "?"}`;
|
|
188
|
-
try {
|
|
189
|
-
if (!slug)
|
|
190
|
-
throw new Error(`missing required "slug" field`);
|
|
191
|
-
if (agents.has(slug))
|
|
192
|
-
throw new Error(`duplicate agent slug "${slug}"`);
|
|
193
|
-
agents.set(slug, defineAgent(agentDefFromRow(r)));
|
|
194
|
-
}
|
|
195
|
-
catch (e) {
|
|
196
|
-
load_errors.push({ kind: "agent", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
// standards — phases jsonb is already the engine phase shape; the agents a standard
|
|
200
|
-
// composes are the ones its chairs name. composeStandard is the loader's own gate.
|
|
201
|
-
const standards = new Map();
|
|
202
|
-
for (const r of standardRows) {
|
|
203
|
-
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
204
|
-
const path = `postgrest:coltrane_standards/${slug ?? "?"}`;
|
|
205
|
-
try {
|
|
206
|
-
if (!slug)
|
|
207
|
-
throw new Error(`missing required "slug" field`);
|
|
208
|
-
if (standards.has(slug))
|
|
209
|
-
throw new Error(`duplicate standard slug "${slug}"`);
|
|
210
|
-
const phases = (r["phases"] ?? []);
|
|
211
|
-
const chairAgentSlugs = [
|
|
212
|
-
...new Set(phases.flatMap((p) => (p.chairs ?? []).map((c) => c.agent_slug).filter((s) => !!s))),
|
|
213
|
-
];
|
|
214
|
-
const resolved = chairAgentSlugs.map((aslug) => {
|
|
215
|
-
const a = agents.get(aslug);
|
|
216
|
-
if (!a)
|
|
217
|
-
throw new Error(`references unknown agent "${aslug}"`);
|
|
218
|
-
return a;
|
|
219
|
-
});
|
|
220
|
-
standards.set(slug, composeStandard({
|
|
221
|
-
slug,
|
|
222
|
-
domain: String(r["domain"] ?? ""),
|
|
223
|
-
agents: resolved,
|
|
224
|
-
phases,
|
|
225
|
-
status: r["status"] ?? "active",
|
|
226
|
-
...(Array.isArray(r["output_types"]) ? { output_types: r["output_types"] } : {}),
|
|
227
|
-
}));
|
|
228
|
-
}
|
|
229
|
-
catch (e) {
|
|
230
|
-
load_errors.push({ kind: "standard", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
// skills — the row's skill_md IS the loaded reasoning half (`md`, the prompt's Skills
|
|
234
|
-
// layer). Hosted skills carry no local package dir / code half by construction.
|
|
235
|
-
const skills = new Map();
|
|
236
|
-
for (const r of skillRows) {
|
|
237
|
-
const slug = typeof r["slug"] === "string" ? r["slug"] : null;
|
|
238
|
-
const path = `postgrest:coltrane_skills/${slug ?? "?"}`;
|
|
239
|
-
try {
|
|
240
|
-
if (!slug)
|
|
241
|
-
throw new Error(`missing required "slug" field`);
|
|
242
|
-
if (skills.has(slug))
|
|
243
|
-
throw new Error(`duplicate skill slug "${slug}"`);
|
|
244
|
-
const meta = {
|
|
245
|
-
slug,
|
|
246
|
-
description: r["description"] ?? undefined,
|
|
247
|
-
input_type: r["input_type"] ?? undefined,
|
|
248
|
-
output_type: r["output_type"] ?? undefined,
|
|
249
|
-
...(typeof r["tier"] === "number" ? { permission: { tier: r["tier"] } } : {}),
|
|
250
|
-
...(typeof r["skill_md"] === "string" ? { md: r["skill_md"] } : {}),
|
|
251
|
-
};
|
|
252
|
-
for (const k of Object.keys(meta))
|
|
253
|
-
if (meta[k] === undefined)
|
|
254
|
-
delete meta[k];
|
|
255
|
-
const check = SkillSchema.safeParse(meta);
|
|
256
|
-
if (!check.success)
|
|
257
|
-
throw new Error(`skill schema validation failed — ${zodWhy(check.error.issues)}`);
|
|
258
|
-
skills.set(slug, check.data);
|
|
259
|
-
}
|
|
260
|
-
catch (e) {
|
|
261
|
-
load_errors.push({ kind: "skill", path, slug, error: e instanceof Error ? e.message : String(e) });
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
// evals — no hosted table today; present and empty, the same shape as a genome
|
|
265
|
-
// root with no evals/ directory.
|
|
266
|
-
const evals = new Map();
|
|
267
|
-
return { core_types, domain_types, agents, standards, skills, evals, load_errors };
|
|
338
|
+
return reconstructGenome({ core_types, domain_types, agents, standards, skills, charts, venues });
|
|
268
339
|
},
|
|
269
|
-
async upsert(cls, payload) {
|
|
340
|
+
async upsert(cls, payload, org_slug) {
|
|
270
341
|
const res = await fetch(`${ctx.baseUrl}/rest/v1/rpc/coltrane_genome_upsert`, {
|
|
271
342
|
method: "POST",
|
|
272
343
|
headers: {
|
|
@@ -274,7 +345,7 @@ export function postgrestGenomeStore(ctx) {
|
|
|
274
345
|
Authorization: `Bearer ${ctx.bearer}`,
|
|
275
346
|
"Content-Type": "application/json",
|
|
276
347
|
},
|
|
277
|
-
body: JSON.stringify({ p_class: cls, p_payload: payload }),
|
|
348
|
+
body: JSON.stringify({ p_class: cls, p_payload: payload, p_org_slug: org_slug ?? null }),
|
|
278
349
|
});
|
|
279
350
|
if (!res.ok) {
|
|
280
351
|
const text = await res.text();
|
|
@@ -290,6 +361,112 @@ export function postgrestGenomeStore(ctx) {
|
|
|
290
361
|
},
|
|
291
362
|
};
|
|
292
363
|
}
|
|
364
|
+
/** Agent-token backing: the org genome through coltrane_mcp_genome. PostgREST verifies only
|
|
365
|
+
* JWTs, so a ctk_ bearer cannot ride the REST tables — the definer RPC resolves the token's
|
|
366
|
+
* hash inside the store and returns the org's rows. Same reconstruction as every backing.
|
|
367
|
+
* Read-only by design: an agent token does not author genome (authoring is a member act,
|
|
368
|
+
* governed by the upsert RPC as auth.uid()). */
|
|
369
|
+
export function rpcGenomeStore(ctx) {
|
|
370
|
+
return {
|
|
371
|
+
async load() {
|
|
372
|
+
const res = await fetch(`${ctx.baseUrl}/rest/v1/rpc/coltrane_mcp_genome`, {
|
|
373
|
+
method: "POST",
|
|
374
|
+
headers: {
|
|
375
|
+
apikey: ctx.anonKey,
|
|
376
|
+
// The ctk bearer is NOT a JWT: it authenticates inside the definer RPC via the
|
|
377
|
+
// body; the transport rides the anon key.
|
|
378
|
+
Authorization: `Bearer ${ctx.anonKey}`,
|
|
379
|
+
"Content-Type": "application/json",
|
|
380
|
+
},
|
|
381
|
+
body: JSON.stringify({ p_bearer: ctx.agentToken }),
|
|
382
|
+
});
|
|
383
|
+
const text = await res.text();
|
|
384
|
+
if (!res.ok) {
|
|
385
|
+
let message = text || `store error ${res.status}`;
|
|
386
|
+
try {
|
|
387
|
+
const parsed = JSON.parse(text);
|
|
388
|
+
if (parsed.message)
|
|
389
|
+
message = parsed.message;
|
|
390
|
+
}
|
|
391
|
+
catch { /* keep the raw text */ }
|
|
392
|
+
throw new GenomeLoadError(`genome load (agent token): ${message}`);
|
|
393
|
+
}
|
|
394
|
+
const rows = JSON.parse(text);
|
|
395
|
+
return reconstructGenome({
|
|
396
|
+
core_types: rows.core_types ?? [],
|
|
397
|
+
domain_types: rows.domain_types ?? [],
|
|
398
|
+
agents: rows.agents ?? [],
|
|
399
|
+
standards: rows.standards ?? [],
|
|
400
|
+
skills: rows.skills ?? [],
|
|
401
|
+
charts: rows.charts ?? [],
|
|
402
|
+
venues: rows.venues ?? [],
|
|
403
|
+
});
|
|
404
|
+
},
|
|
405
|
+
async upsert() {
|
|
406
|
+
throw new Error("an agent token does not author genome — authoring is a member act through the governed upsert");
|
|
407
|
+
},
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
/** Set the caller's working organization — the formal switch, recorded in the store as a
|
|
411
|
+
* member act. After this, every member write resolves the org without being told. */
|
|
412
|
+
export function postgrestOrgUse(ctx) {
|
|
413
|
+
return async (org_slug) => {
|
|
414
|
+
const res = await fetch(`${ctx.baseUrl}/rest/v1/rpc/coltrane_org_use`, {
|
|
415
|
+
method: "POST",
|
|
416
|
+
headers: {
|
|
417
|
+
apikey: ctx.anonKey,
|
|
418
|
+
Authorization: `Bearer ${ctx.bearer}`,
|
|
419
|
+
"Content-Type": "application/json",
|
|
420
|
+
},
|
|
421
|
+
body: JSON.stringify({ p_org_slug: org_slug }),
|
|
422
|
+
});
|
|
423
|
+
const text = await res.text();
|
|
424
|
+
if (!res.ok) {
|
|
425
|
+
let message = text || `store error ${res.status}`;
|
|
426
|
+
try {
|
|
427
|
+
const parsed = JSON.parse(text);
|
|
428
|
+
if (parsed.message)
|
|
429
|
+
message = parsed.message;
|
|
430
|
+
}
|
|
431
|
+
catch { /* keep the raw text */ }
|
|
432
|
+
throw new Error(message);
|
|
433
|
+
}
|
|
434
|
+
return JSON.parse(text);
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
/** The agent-token gig-queue seam: queue one run through coltrane_mcp_dispatch, where the
|
|
438
|
+
* chair contract authorizes (the seat grants the standard; the token may only narrow).
|
|
439
|
+
* Same return shape as postgrestQueueGig so a host can swap them by bearer class. */
|
|
440
|
+
export function rpcQueueGig(ctx) {
|
|
441
|
+
return async (args) => {
|
|
442
|
+
const res = await fetch(`${ctx.baseUrl}/rest/v1/rpc/coltrane_mcp_dispatch`, {
|
|
443
|
+
method: "POST",
|
|
444
|
+
headers: {
|
|
445
|
+
apikey: ctx.anonKey,
|
|
446
|
+
Authorization: `Bearer ${ctx.anonKey}`,
|
|
447
|
+
"Content-Type": "application/json",
|
|
448
|
+
},
|
|
449
|
+
body: JSON.stringify({
|
|
450
|
+
p_bearer: ctx.agentToken,
|
|
451
|
+
p_standard: args["standard_slug"],
|
|
452
|
+
p_mode: args["mode"] ?? "live",
|
|
453
|
+
p_input: args["input"] ?? {},
|
|
454
|
+
}),
|
|
455
|
+
});
|
|
456
|
+
const text = await res.text();
|
|
457
|
+
if (!res.ok) {
|
|
458
|
+
let message = text || `store error ${res.status}`;
|
|
459
|
+
try {
|
|
460
|
+
const parsed = JSON.parse(text);
|
|
461
|
+
if (parsed.message)
|
|
462
|
+
message = parsed.message;
|
|
463
|
+
}
|
|
464
|
+
catch { /* keep the raw text */ }
|
|
465
|
+
throw new Error(message);
|
|
466
|
+
}
|
|
467
|
+
return { gig_id: JSON.parse(text), status: "queued" };
|
|
468
|
+
};
|
|
469
|
+
}
|
|
293
470
|
/** The hosted gig-queue seam for createToolSurface: queue one run through the governor-gated
|
|
294
471
|
* dispatch RPC AS THE CALLER (member JWT — RLS + the governor gate decide). Queuing only;
|
|
295
472
|
* a drain worker claims and runs it. Shape mirrors hosted_tools' member dispatch path. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genome_store.js","sourceRoot":"","sources":["../../src/genome_store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"genome_store.js","sourceRoot":"","sources":["../../src/genome_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,10 +21,14 @@ export interface GigChairState {
|
|
|
21
21
|
* cancelled run could only surface as `failed` carrying a kill-shaped error string —
|
|
22
22
|
* indistinguishable from a genuine crash, which is the opposite of what an operator who
|
|
23
23
|
* just cancelled it needs to see. */
|
|
24
|
-
export type GigStatus = "running" | "complete" | "failed" | "aborted";
|
|
24
|
+
export type GigStatus = "running" | "complete" | "failed" | "aborted" | "awaiting_approval";
|
|
25
25
|
export interface GigRunState {
|
|
26
26
|
gig_id: string;
|
|
27
27
|
standard_slug: string;
|
|
28
|
+
/** Set when this run is a PERFORMANCE of a chart rather than of one standard. `standard_slug`
|
|
29
|
+
* then names the standard the performance opens with — a chart has no single standard, so the
|
|
30
|
+
* arrangement is named here instead of overloading the field that means one thing. */
|
|
31
|
+
chart_slug?: string;
|
|
28
32
|
status: GigStatus;
|
|
29
33
|
started_at: string;
|
|
30
34
|
finished_at?: string;
|
|
@@ -36,6 +40,12 @@ export interface GigRunState {
|
|
|
36
40
|
run_fingerprint?: string;
|
|
37
41
|
genome_hash?: string;
|
|
38
42
|
error?: string;
|
|
43
|
+
/** Set with `awaiting_approval`: the human chair the run parked at. The status says a person
|
|
44
|
+
* is the blocker; this says WHICH seat, which is what the operator needs to act. */
|
|
45
|
+
awaiting?: {
|
|
46
|
+
phase: string;
|
|
47
|
+
role: string;
|
|
48
|
+
};
|
|
39
49
|
usage?: GigUsage;
|
|
40
50
|
/** Chairs that did not run because a sealed output stood in for them (#resume/#reuse). */
|
|
41
51
|
skipped_chairs?: Array<{
|
package/dist/src/gig_tracker.js
CHANGED
|
@@ -72,6 +72,10 @@ export function applyGigProgress(state, ev) {
|
|
|
72
72
|
case "gig_complete":
|
|
73
73
|
state.outputs_count = ev.outputs;
|
|
74
74
|
break;
|
|
75
|
+
case "gig_awaiting_approval":
|
|
76
|
+
state.status = "awaiting_approval";
|
|
77
|
+
state.awaiting = { phase: ev.phase, role: ev.role };
|
|
78
|
+
break;
|
|
75
79
|
case "gig_failed":
|
|
76
80
|
state.error = ev.error;
|
|
77
81
|
break;
|
|
@@ -124,6 +128,7 @@ export function gigEventLogLine(gig_id, ev) {
|
|
|
124
128
|
case "chair_skipped": return JSON.stringify({ ...base, ev: "chair_skipped", phase: ev.phase, role: ev.role, why: ev.reason, from_gig: ev.source_gig_id, sealed: ev.output_types });
|
|
125
129
|
case "reuse_rejected": return JSON.stringify({ ...base, ev: "reuse_rejected", phase: ev.phase, role: ev.role, reason: ev.reason, detail: ev.detail });
|
|
126
130
|
case "gig_complete": return JSON.stringify({ ...base, ev: "gig_complete", outputs: ev.outputs });
|
|
131
|
+
case "gig_awaiting_approval": return JSON.stringify({ ...base, ev: "gig_awaiting_approval", phase: ev.phase, role: ev.role });
|
|
127
132
|
case "gig_failed": return JSON.stringify({ ...base, ev: "gig_failed", error: ev.error });
|
|
128
133
|
case "gig_aborted": return JSON.stringify({ ...base, ev: "gig_aborted", reason: ev.reason });
|
|
129
134
|
case "agent_event":
|