@eir-labs/coltrane 0.4.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -4
- package/dist/src/access_grant.d.ts +21 -0
- package/dist/src/access_grant.js +33 -4
- package/dist/src/access_grant.js.map +1 -1
- package/dist/src/claude_invoker.d.ts +28 -0
- package/dist/src/claude_invoker.js +68 -7
- package/dist/src/claude_invoker.js.map +1 -1
- package/dist/src/cli.d.ts +44 -0
- package/dist/src/cli.js +358 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/cli_entry.d.ts +2 -0
- package/dist/src/cli_entry.js +23 -0
- package/dist/src/cli_entry.js.map +1 -0
- package/dist/src/composition.d.ts +2 -0
- package/dist/src/composition.js.map +1 -1
- package/dist/src/fs_atomic.d.ts +1 -0
- package/dist/src/fs_atomic.js +34 -0
- package/dist/src/fs_atomic.js.map +1 -0
- package/dist/src/genome_schema.d.ts +5 -1
- package/dist/src/genome_schema.js +12 -1
- package/dist/src/genome_schema.js.map +1 -1
- package/dist/src/genome_writer.d.ts +2 -2
- package/dist/src/genome_writer.js +17 -4
- package/dist/src/genome_writer.js.map +1 -1
- package/dist/src/gig_tracker.d.ts +29 -1
- package/dist/src/gig_tracker.js +27 -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 +3 -0
- package/dist/src/ledger.js.map +1 -1
- package/dist/src/loader.d.ts +2 -0
- package/dist/src/loader.js +10 -0
- package/dist/src/loader.js.map +1 -1
- package/dist/src/mcp.js +82 -20
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/outputs.d.ts +74 -0
- package/dist/src/outputs.js +106 -71
- package/dist/src/outputs.js.map +1 -1
- package/dist/src/registry.d.ts +13 -0
- package/dist/src/registry.js +112 -0
- package/dist/src/registry.js.map +1 -1
- package/dist/src/reuse.d.ts +276 -0
- package/dist/src/reuse.js +215 -0
- package/dist/src/reuse.js.map +1 -0
- package/dist/src/runtime.d.ts +157 -4
- package/dist/src/runtime.js +519 -30
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/server.d.ts +20 -0
- package/dist/src/server.js +733 -28
- package/dist/src/server.js.map +1 -1
- package/dist/src/server_relay.d.ts +2 -0
- package/dist/src/server_relay.js +31 -8
- package/dist/src/server_relay.js.map +1 -1
- package/dist/src/skill_runner.mjs +8 -2
- package/dist/src/skill_subprocess.d.ts +47 -5
- package/dist/src/skill_subprocess.js +242 -11
- package/dist/src/skill_subprocess.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +11 -7
- package/dist/src/version.js.map +1 -1
- package/package.json +8 -7
|
@@ -6,25 +6,126 @@
|
|
|
6
6
|
// load-bearing instrument: they are the skill's test suite, the determinism meter
|
|
7
7
|
// (stable across repeated runs), AND the evolution gate (an improved skill.mjs is
|
|
8
8
|
// accepted only if every fixture still passes).
|
|
9
|
-
import { spawnSync } from "node:child_process";
|
|
10
|
-
import { readFileSync, readdirSync, existsSync } from "node:fs";
|
|
11
|
-
import { join, extname } from "node:path";
|
|
9
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
10
|
+
import { readFileSync, readdirSync, existsSync, realpathSync } from "node:fs";
|
|
11
|
+
import { join, extname, dirname } from "node:path";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
13
|
const RUNNER = fileURLToPath(new URL("./skill_runner.mjs", import.meta.url));
|
|
14
14
|
/**
|
|
15
|
-
* Permission tier → Node --permission flags
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
15
|
+
* Permission tier → Node --permission flags, SCOPED TO THE SKILL.
|
|
16
|
+
*
|
|
17
|
+
* This used to be `--allow-fs-read=*` for every tier, with a comment asserting that tier 0
|
|
18
|
+
* "cannot write, spawn, or reach the network". Probed through `executeSkill` on a real
|
|
19
|
+
* machine, a tier-0 skill read `/etc/passwd`, read all 77 of the parent's environment
|
|
20
|
+
* variables, and completed an outbound HTTPS request. `--allow-fs-read=*` is literally
|
|
21
|
+
* "read every file", so the first was never confined at all.
|
|
22
|
+
*
|
|
23
|
+
* The reads are now scoped to the skill's own package directory plus the runner that has to
|
|
24
|
+
* import it. `tests/skill_sandbox_confinement.test.ts` probes the capability rather than the
|
|
25
|
+
* flag string, because asserting on flags is how the previous claim survived being false.
|
|
26
|
+
*
|
|
27
|
+
* WHAT THIS DOES NOT DO: Node's permission model has no network gate. There is no flag here
|
|
28
|
+
* that stops `fetch`, and there was never one — the old guarantee was unimplementable in this
|
|
29
|
+
* runtime, not merely misconfigured. A pre-open-source ancestor of this engine ran skills under
|
|
30
|
+
* Deno (`--allow-read=<dir>` plus a net allowlist), which is the runtime with the primitive
|
|
31
|
+
* this wants. Until that returns, an outbound request from a skill is possible and is stated
|
|
32
|
+
* rather than denied. What has changed is that the credential is no longer in reach: the child
|
|
33
|
+
* gets an explicit minimal environment (see `skillEnv`), so there is nothing worth exfiltrating.
|
|
19
34
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
35
|
+
/** Node major running this process. */
|
|
36
|
+
function nodeMajor() {
|
|
37
|
+
return Number(process.versions.node.split(".")[0] ?? 0);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The runtime floor for skill execution, checked where it can be explained.
|
|
41
|
+
*
|
|
42
|
+
* The sandbox spawns with `--permission`, which is Node 22+. On Node 20 the child dies with
|
|
43
|
+
* `node: bad option: --permission` — a message that names the flag rather than the reason, and
|
|
44
|
+
* appears once per skill rather than once per process. `engines` in package.json says `>=22`,
|
|
45
|
+
* but npm treats that as advisory, so a consumer on 20 reaches here anyway.
|
|
46
|
+
*
|
|
47
|
+
* Refusing loudly is the only honest option. There is no degraded mode: running a skill on a
|
|
48
|
+
* runtime with no permission model means running it UNSANDBOXED, and silently doing that would
|
|
49
|
+
* invert the guarantee this module exists to provide.
|
|
50
|
+
*/
|
|
51
|
+
export const MIN_NODE_FOR_SANDBOX = 22;
|
|
52
|
+
function assertSandboxCapableRuntime() {
|
|
53
|
+
const major = nodeMajor();
|
|
54
|
+
if (major < MIN_NODE_FOR_SANDBOX) {
|
|
55
|
+
throw new Error(`coltrane needs Node ${MIN_NODE_FOR_SANDBOX}+ to execute skills; this is Node ${process.versions.node}. ` +
|
|
56
|
+
`Skill execution is sandboxed with --permission, which does not exist before Node ${MIN_NODE_FOR_SANDBOX}. ` +
|
|
57
|
+
`Running without it would execute skill code unsandboxed, so it is refused rather than degraded.`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function tierFlags(tier, skillDir) {
|
|
61
|
+
// `RUNNER` lives in this package's dist/; the child must be able to read it to start, and to
|
|
62
|
+
// read the skill it imports. Nothing else.
|
|
63
|
+
// One flag PER PATH: Node no longer accepts a comma-separated list here, and silently
|
|
64
|
+
// warns rather than failing, so a joined list degrades into "no readable paths" and every
|
|
65
|
+
// skill breaks at import time.
|
|
66
|
+
//
|
|
67
|
+
// REAL paths, not the caller's. Node's permission model matches on the resolved path, and on
|
|
68
|
+
// macOS the system temp dir is a symlink (`/var/folders/...` → `/private/var/folders/...`),
|
|
69
|
+
// so granting the symlinked path grants nothing and every skill under it fails at import.
|
|
70
|
+
const real = (pth) => { try {
|
|
71
|
+
return realpathSync(pth);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return pth;
|
|
75
|
+
} };
|
|
76
|
+
const own = [real(dirname(RUNNER)), ...(skillDir ? [real(skillDir)] : [])];
|
|
77
|
+
const flags = ["--permission"];
|
|
78
|
+
// TIER 0 is confined to its own package. The tier is documented as "read-only with no side
|
|
79
|
+
// effects — can load its own code + read inputs", and a tier-0 skill's inputs arrive on
|
|
80
|
+
// STDIN, not from the filesystem. It never had a reason to read elsewhere; `--allow-fs-read=*`
|
|
81
|
+
// simply granted it because that was the easiest flag to write.
|
|
82
|
+
//
|
|
83
|
+
// TIER 1+ reads broadly, because that is what those tiers are FOR — a skill that extracts
|
|
84
|
+
// text from a document at a path it was handed, or runs a test band over a repo, has to
|
|
85
|
+
// reach outside its own directory. Confining them would not be security, it would be
|
|
86
|
+
// removing the capability the tier exists to grant.
|
|
22
87
|
if (tier >= 1)
|
|
23
|
-
flags.push("--allow-fs-write=*");
|
|
88
|
+
flags.push("--allow-fs-read=*", "--allow-fs-write=*");
|
|
89
|
+
else
|
|
90
|
+
flags.push(...own.map((p2) => `--allow-fs-read=${p2}`));
|
|
24
91
|
if (tier >= 2)
|
|
25
92
|
flags.push("--allow-child-process");
|
|
26
93
|
return flags;
|
|
27
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* The environment a skill child receives.
|
|
97
|
+
*
|
|
98
|
+
* Deliberately NOT `process.env`. The parent's environment carries the provider credential —
|
|
99
|
+
* `ANTHROPIC_API_KEY` in any real deployment — and a skill that can read it plus reach the
|
|
100
|
+
* network can exfiltrate it in one line. Inheriting the whole environment made that a
|
|
101
|
+
* one-liner; this makes it impossible regardless of the network gap above.
|
|
102
|
+
*
|
|
103
|
+
* PATH is kept because a tier-2 skill that may spawn needs to resolve a binary at all, and
|
|
104
|
+
* HOME/TMPDIR because Node itself consults them during startup.
|
|
105
|
+
*/
|
|
106
|
+
export function skillEnv() {
|
|
107
|
+
const keep = ["PATH", "HOME", "TMPDIR", "LANG", "NODE_OPTIONS"];
|
|
108
|
+
const env = {};
|
|
109
|
+
for (const k of keep)
|
|
110
|
+
if (process.env[k] !== undefined)
|
|
111
|
+
env[k] = process.env[k];
|
|
112
|
+
return env;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The skill directory as the permission model sees it.
|
|
116
|
+
*
|
|
117
|
+
* Grants are matched on RESOLVED paths, so the path handed to the child must be the same one
|
|
118
|
+
* that was granted. Granting `/private/var/...` while passing `/var/...` (the macOS temp-dir
|
|
119
|
+
* symlink) grants a path the child never asks for, and every read is denied.
|
|
120
|
+
*/
|
|
121
|
+
function realDir(skillDir) {
|
|
122
|
+
try {
|
|
123
|
+
return realpathSync(skillDir);
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return skillDir;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
28
129
|
export function readSkillMeta(skillDir) {
|
|
29
130
|
return JSON.parse(readFileSync(join(skillDir, "meta.json"), "utf-8"));
|
|
30
131
|
}
|
|
@@ -48,12 +149,15 @@ export function executeSkill(skillDir, input, timeoutMs = 120_000, tierOverride)
|
|
|
48
149
|
// SIGTERM-trapping child can't survive the timeout.
|
|
49
150
|
const timeout = typeof meta.timeout_ms === "number" ? Math.min(timeoutMs, meta.timeout_ms) : timeoutMs;
|
|
50
151
|
const started = Date.now();
|
|
51
|
-
|
|
152
|
+
assertSandboxCapableRuntime();
|
|
153
|
+
const dir = realDir(skillDir);
|
|
154
|
+
const res = spawnSync("node", [...tierFlags(tier, dir), RUNNER, dir], {
|
|
52
155
|
input: JSON.stringify(input),
|
|
53
156
|
encoding: "utf-8",
|
|
54
157
|
maxBuffer: 64 * 1024 * 1024,
|
|
55
158
|
timeout,
|
|
56
159
|
killSignal: "SIGKILL",
|
|
160
|
+
env: skillEnv(),
|
|
57
161
|
});
|
|
58
162
|
const duration_ms = Date.now() - started;
|
|
59
163
|
if (res.error)
|
|
@@ -66,6 +170,133 @@ export function executeSkill(skillDir, input, timeoutMs = 120_000, tierOverride)
|
|
|
66
170
|
return { ok: false, error: `unparseable skill output: ${(res.stdout || res.stderr || "").slice(0, 300)}`, duration_ms };
|
|
67
171
|
}
|
|
68
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* #253 — the same execution, without blocking the event loop, and cancellable.
|
|
175
|
+
*
|
|
176
|
+
* `executeSkill` uses `spawnSync`, which blocks the thread until the child exits. The
|
|
177
|
+
* runtime's abort chain (#249/#250) is cooperative — `checkpoint()` reads the signal between
|
|
178
|
+
* phases and batches, and the invoker kills its child when the signal fires — and NONE of
|
|
179
|
+
* that can run while the loop is blocked. The abort event cannot even be *delivered*. So
|
|
180
|
+
* `gig_abort` during a skill chair was a promise the engine could not keep for up to the
|
|
181
|
+
* skill's timeout, which by default is 120 seconds.
|
|
182
|
+
*
|
|
183
|
+
* That is #249's shape again: a control the operator reaches for that reports success and
|
|
184
|
+
* does nothing. The difference is that #249 was a missing kill and this was a missing
|
|
185
|
+
* opportunity to kill.
|
|
186
|
+
*
|
|
187
|
+
* `executeSkill` is kept as-is rather than reimplemented on top of this. Its callers — the
|
|
188
|
+
* fixture runner and the determinism meter — are batch tools with no cancellation story, and
|
|
189
|
+
* making them async would ripple through the skill-authoring surface for no benefit. The
|
|
190
|
+
* RUNTIME is the caller that needed this.
|
|
191
|
+
*/
|
|
192
|
+
export async function executeSkillAsync(skillDir, input, timeoutMs = 120_000, opts = {}) {
|
|
193
|
+
const started = Date.now();
|
|
194
|
+
const abortResult = () => ({
|
|
195
|
+
ok: false,
|
|
196
|
+
error: `skill aborted: ${opts.signal ? abortReason(opts.signal) : "cancelled"}`,
|
|
197
|
+
duration_ms: Date.now() - started,
|
|
198
|
+
});
|
|
199
|
+
// Cheapest possible honouring of a cancellation: if it is already aborted, spawn nothing.
|
|
200
|
+
if (opts.signal?.aborted)
|
|
201
|
+
return abortResult();
|
|
202
|
+
const meta = readSkillMeta(skillDir);
|
|
203
|
+
const tier = opts.tierOverride ?? (meta.permission?.tier ?? 0);
|
|
204
|
+
// As in executeSkill: the skill's own declared ceiling caps the caller's timeout, so a
|
|
205
|
+
// runaway code half cannot outlive its budget.
|
|
206
|
+
const timeout = typeof meta.timeout_ms === "number" ? Math.min(timeoutMs, meta.timeout_ms) : timeoutMs;
|
|
207
|
+
return await new Promise((resolve) => {
|
|
208
|
+
assertSandboxCapableRuntime();
|
|
209
|
+
const dir = realDir(skillDir);
|
|
210
|
+
const child = spawn("node", [...tierFlags(tier, dir), RUNNER, dir], {
|
|
211
|
+
stdio: ["pipe", "pipe", "pipe"], env: skillEnv(),
|
|
212
|
+
});
|
|
213
|
+
// Mirror executeSkill's `maxBuffer: 64 MB`. Accumulating without a cap was a regression
|
|
214
|
+
// against the function this replaces: tier 0 grants --allow-fs-read=*, so "print a large
|
|
215
|
+
// file" is one line of skill code, and an unbounded read grows the LONG-LIVED MCP server's
|
|
216
|
+
// heap by the size of whatever it printed. Bounded, killed, and named — a truncated read
|
|
217
|
+
// must not surface as "unparseable skill output", which says nothing about what happened.
|
|
218
|
+
const MAX_OUTPUT_BYTES = 64 * 1024 * 1024;
|
|
219
|
+
let stdout = "";
|
|
220
|
+
let stderr = "";
|
|
221
|
+
let overflowed = false;
|
|
222
|
+
let settled = false;
|
|
223
|
+
const done = (r) => {
|
|
224
|
+
if (settled)
|
|
225
|
+
return;
|
|
226
|
+
settled = true;
|
|
227
|
+
clearTimeout(timer);
|
|
228
|
+
opts.signal?.removeEventListener("abort", onAbort);
|
|
229
|
+
resolve(r);
|
|
230
|
+
};
|
|
231
|
+
// SIGKILL, not the default SIGTERM — a SIGTERM-trapping child must not survive a stop.
|
|
232
|
+
const kill = () => {
|
|
233
|
+
try {
|
|
234
|
+
child.kill("SIGKILL");
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
/* already gone */
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
const onAbort = () => {
|
|
241
|
+
kill();
|
|
242
|
+
done(abortResult());
|
|
243
|
+
};
|
|
244
|
+
const timer = setTimeout(() => {
|
|
245
|
+
kill();
|
|
246
|
+
done({ ok: false, error: `skill timed out after ${timeout}ms`, duration_ms: Date.now() - started });
|
|
247
|
+
}, timeout);
|
|
248
|
+
opts.signal?.addEventListener("abort", onAbort, { once: true });
|
|
249
|
+
const capture = (buf, which) => {
|
|
250
|
+
if (overflowed)
|
|
251
|
+
return;
|
|
252
|
+
const next = (which === "out" ? stdout : stderr) + buf.toString();
|
|
253
|
+
if (next.length > MAX_OUTPUT_BYTES) {
|
|
254
|
+
overflowed = true;
|
|
255
|
+
kill();
|
|
256
|
+
done({
|
|
257
|
+
ok: false,
|
|
258
|
+
error: `skill output exceeded ${MAX_OUTPUT_BYTES} bytes and was killed`,
|
|
259
|
+
duration_ms: Date.now() - started,
|
|
260
|
+
});
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (which === "out")
|
|
264
|
+
stdout = next;
|
|
265
|
+
else
|
|
266
|
+
stderr = next;
|
|
267
|
+
};
|
|
268
|
+
child.stdout.on("data", (c) => capture(c, "out"));
|
|
269
|
+
child.stderr.on("data", (c) => capture(c, "err"));
|
|
270
|
+
child.on("error", (e) => done({ ok: false, error: String(e.message), duration_ms: Date.now() - started }));
|
|
271
|
+
child.on("close", () => {
|
|
272
|
+
const duration_ms = Date.now() - started;
|
|
273
|
+
try {
|
|
274
|
+
const parsed = JSON.parse(stdout);
|
|
275
|
+
done({ ...parsed, duration_ms });
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
done({
|
|
279
|
+
ok: false,
|
|
280
|
+
error: `unparseable skill output: ${(stdout || stderr || "").slice(0, 300)}`,
|
|
281
|
+
duration_ms,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
child.stdin.on("error", () => {
|
|
286
|
+
/* the child may exit before we finish writing; `close` reports the real outcome */
|
|
287
|
+
});
|
|
288
|
+
child.stdin.end(JSON.stringify(input));
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
/** The human-readable cause behind an abort, whatever shape the aborter used. */
|
|
292
|
+
function abortReason(signal) {
|
|
293
|
+
const r = signal.reason;
|
|
294
|
+
if (r instanceof Error)
|
|
295
|
+
return r.message;
|
|
296
|
+
if (typeof r === "string" && r)
|
|
297
|
+
return r;
|
|
298
|
+
return "cancelled";
|
|
299
|
+
}
|
|
69
300
|
function getPath(obj, path) {
|
|
70
301
|
return path.split(".").reduce((acc, k) => (acc != null ? acc[k] : undefined), obj);
|
|
71
302
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill_subprocess.js","sourceRoot":"","sources":["../../src/skill_subprocess.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill_subprocess.js","sourceRoot":"","sources":["../../src/skill_subprocess.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,kEAAkE;AAClE,6DAA6D;AAC7D,kFAAkF;AAClF,mFAAmF;AACnF,kFAAkF;AAClF,kFAAkF;AAClF,gDAAgD;AAChD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AA6B7E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,uCAAuC;AACvC,SAAS,SAAS;IAChB,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,SAAS,2BAA2B;IAClC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,oBAAoB,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,uBAAuB,oBAAoB,qCAAqC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;YACvG,oFAAoF,oBAAoB,IAAI;YAC5G,iGAAiG,CACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,QAAiB;IACvD,6FAA6F;IAC7F,2CAA2C;IAC3C,sFAAsF;IACtF,0FAA0F;IAC1F,+BAA+B;IAC/B,EAAE;IACF,6FAA6F;IAC7F,4FAA4F;IAC5F,0FAA0F;IAC1F,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,GAAG,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC;IAE/B,2FAA2F;IAC3F,wFAAwF;IACxF,+FAA+F;IAC/F,gEAAgE;IAChE,EAAE;IACF,0FAA0F;IAC1F,wFAAwF;IACxF,qFAAqF;IACrF,oDAAoD;IACpD,IAAI,IAAI,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;;QAChE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAI,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAU,CAAC;IACzE,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,QAAgB;IAC/B,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,QAAQ,CAAC;IAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAc,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,WAAW,CAAC,GAAG,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;SACrC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAiB,CAAC,CAAC;AACjF,CAAC;AAED;;0CAE0C;AAC1C,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAc,EAAE,SAAS,GAAG,OAAO,EAAE,YAAqB;IACvG,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1D,wFAAwF;IACxF,yFAAyF;IACzF,oDAAoD;IACpD,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,2BAA2B,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QACpE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,OAAO;QACP,UAAU,EAAE,SAAS;QACrB,GAAG,EAAE,QAAQ,EAAE;KAChB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACzC,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAsD,CAAC;QAC3F,OAAO,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC;IAC1H,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,KAAc,EACd,SAAS,GAAG,OAAO,EACnB,OAAgF,EAAE;IAElF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,GAAkB,EAAE,CAAC,CAAC;QACxC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC/E,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;KAClC,CAAC,CAAC;IAEH,0FAA0F;IAC1F,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;QAAE,OAAO,WAAW,EAAE,CAAC;IAE/C,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/D,uFAAuF;IACvF,+CAA+C;IAC/C,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvG,OAAO,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;QAClD,2BAA2B,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;YAClE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE;SACjD,CAAC,CAAC;QACH,wFAAwF;QACxF,yFAAyF;QACzF,2FAA2F;QAC3F,yFAAyF;QACzF,0FAA0F;QAC1F,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAgB,EAAQ,EAAE;YACtC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC;QACF,uFAAuF;QACvF,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,OAAO,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAoB,EAAQ,EAAE;YAC1D,IAAI,UAAU;gBAAE,OAAO;YACvB,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClE,IAAI,IAAI,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBACnC,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC;oBACH,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,yBAAyB,gBAAgB,uBAAuB;oBACvE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;iBAClC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,KAAK,KAAK,KAAK;gBAAE,MAAM,GAAG,IAAI,CAAC;;gBAC9B,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;QAClH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAsD,CAAC;gBACvF,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,6BAA6B,CAAC,MAAM,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;oBAC5E,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,mFAAmF;QACrF,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAiB,CAAC;IACnC,IAAI,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACzC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,OAAO,CAAC,GAAY,EAAE,IAAY;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3H,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,CAAgD;IACvF,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;QACpD,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC/C,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC/C,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC;QACjD,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAU,EAAE,CAAU;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AACD,SAAS,KAAK,CAAC,CAAU;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAkBD,4FAA4F;AAC5F,uFAAuF;AACvF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5F,MAAM,eAAe,GAAG,EAAE,CAAC,eAAe,KAAK,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;QACrG,MAAM,cAAc,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,eAAe,IAAI,cAAc,CAAC;QACtD,IAAI,EAAE;YAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM;YAAE,aAAa,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,MAAM;QACN,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,aAAa;QACb,gBAAgB,EAAE,gBAAgB;QAClC,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Engine semver. Keep in lockstep with package.json `version` (enforced by test). */
|
|
2
|
-
export declare const COLTRANE_VERSION = "0.
|
|
2
|
+
export declare const COLTRANE_VERSION = "0.5.1";
|
|
3
3
|
/**
|
|
4
4
|
* The commit this engine checkout is sitting on, or null when it can't be determined.
|
|
5
5
|
*
|
package/dist/src/version.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// The engine's version identity — the thing a consumer can assert against.
|
|
2
2
|
//
|
|
3
|
-
// Why this exists:
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
3
|
+
// Why this exists: a consumer needs to answer "is the engine I just loaded the engine I
|
|
4
|
+
// was built against?" The only available check was duck-typing two function names, which
|
|
5
|
+
// passes for *every* revision of the engine and therefore proves nothing. A version
|
|
6
|
+
// mismatch then surfaces as a contract failure deep inside a running gig, minutes and
|
|
7
|
+
// dollars in, instead of at boot.
|
|
8
|
+
//
|
|
9
|
+
// This predates publication — it was written when downstreams vendored the engine as a
|
|
10
|
+
// git clone and the range in their package.json could not be the answer. It still is not:
|
|
11
|
+
// a semver range says what npm was asked to install, not what got loaded, and the vendored
|
|
12
|
+
// path remains supported.
|
|
9
13
|
//
|
|
10
14
|
// COLTRANE_VERSION is the single source of truth in code and MUST equal package.json's
|
|
11
15
|
// `version` — `tests/version_identity.test.ts` fails the build if they drift.
|
|
@@ -13,7 +17,7 @@ import { existsSync, readFileSync, statSync } from "node:fs";
|
|
|
13
17
|
import { dirname, join, resolve } from "node:path";
|
|
14
18
|
import { fileURLToPath } from "node:url";
|
|
15
19
|
/** Engine semver. Keep in lockstep with package.json `version` (enforced by test). */
|
|
16
|
-
export const COLTRANE_VERSION = "0.
|
|
20
|
+
export const COLTRANE_VERSION = "0.5.1";
|
|
17
21
|
/**
|
|
18
22
|
* The commit this engine checkout is sitting on, or null when it can't be determined.
|
|
19
23
|
*
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eir-labs/coltrane",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A methodology engine
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"description": "A methodology engine \u2014 a typed substrate for defining agents, composing multi-phase standards, dispatching gigs, and sealing every output to a content-addressed ledger. Ships as an MCP server.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"author": "Eir",
|
|
8
|
-
"homepage": "https://github.com/eir-
|
|
8
|
+
"homepage": "https://github.com/eir-labs/coltrane#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/eir-
|
|
11
|
+
"url": "git+https://github.com/eir-labs/coltrane.git"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://github.com/eir-
|
|
14
|
+
"url": "https://github.com/eir-labs/coltrane/issues"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
17
|
"mcp",
|
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
"workflow-engine"
|
|
23
23
|
],
|
|
24
24
|
"engines": {
|
|
25
|
-
"node": ">=
|
|
25
|
+
"node": ">=22"
|
|
26
26
|
},
|
|
27
27
|
"bin": {
|
|
28
|
+
"coltrane": "./dist/src/cli_entry.js",
|
|
28
29
|
"coltrane-server": "./dist/src/server_entry.js"
|
|
29
30
|
},
|
|
30
31
|
"main": "./dist/src/index.js",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"access": "public"
|
|
52
53
|
},
|
|
53
54
|
"scripts": {
|
|
54
|
-
"build": "tsc && cp src/skill_runner.mjs dist/src/ && chmod +x dist/src/server_entry.js dist/src/server_relay.js",
|
|
55
|
+
"build": "tsc && cp src/skill_runner.mjs dist/src/ && chmod +x dist/src/server_entry.js dist/src/server_relay.js dist/src/cli_entry.js",
|
|
55
56
|
"dev": "tsc --watch",
|
|
56
57
|
"prepare": "npm run build",
|
|
57
58
|
"test": "vitest run",
|