wildcrane-runner 0.6.15 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/akb/dist/kanban.mjs +6 -6
- package/dist/akb/package.json +1 -1
- package/dist/launcher.mjs +2 -2
- package/dist/runner.mjs +9 -4
- package/package.json +1 -1
package/dist/akb/dist/kanban.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// ai4kanban 0.11.
|
|
2
|
+
// ai4kanban 0.11.13 — built by runner/scripts/build.mjs. Do not edit.
|
|
3
3
|
import { createRequire as __ai4kanbanRequire } from 'node:module'
|
|
4
4
|
const require = __ai4kanbanRequire(import.meta.url)
|
|
5
5
|
var __create = Object.create;
|
|
@@ -5514,7 +5514,7 @@ var init_package = __esm({
|
|
|
5514
5514
|
"../cli/package.json"() {
|
|
5515
5515
|
package_default = {
|
|
5516
5516
|
name: "wildcrane",
|
|
5517
|
-
version: "0.11.
|
|
5517
|
+
version: "0.11.13",
|
|
5518
5518
|
akbContract: 5,
|
|
5519
5519
|
description: "WildCrane's `akb` command \u2014 scaffold the Markdown board under docs/kanban/, put an agent on a card, and carry the flows the agent works by.",
|
|
5520
5520
|
keywords: [
|
|
@@ -27926,7 +27926,7 @@ async function followRun(sessionId, already = "", program2 = "akb", events = fal
|
|
|
27926
27926
|
last = await followOne(current, printed, events);
|
|
27927
27927
|
seen.add(current.sessionId);
|
|
27928
27928
|
printed = 0;
|
|
27929
|
-
const deliveryId2 =
|
|
27929
|
+
const deliveryId2 = first.deliveryId ?? last.deliveryId;
|
|
27930
27930
|
const next = nextInFlow(first, current.sessionId, seen) ?? (deliveryId2 ? await moveDelivery(deliveryId2, idle) : void 0);
|
|
27931
27931
|
if (next === void 0) break;
|
|
27932
27932
|
if (next === null) {
|
|
@@ -27947,7 +27947,7 @@ async function followRun(sessionId, already = "", program2 = "akb", events = fal
|
|
|
27947
27947
|
}
|
|
27948
27948
|
say("");
|
|
27949
27949
|
say(runLine(last, program2));
|
|
27950
|
-
const deliveryId =
|
|
27950
|
+
const deliveryId = first.deliveryId ?? last.deliveryId;
|
|
27951
27951
|
const delivery = deliveryId ? deliveryOutcome(deliveryId) : void 0;
|
|
27952
27952
|
if (delivery) say(`delivery ${delivery.id}: ${delivery.line}`);
|
|
27953
27953
|
const failed = last.status !== "done" ? `run ${short(last.sessionId)} ended ${last.status}${last.error ? `: ${last.error}` : ""}` : delivery && delivery.status !== "finished" ? `delivery ${delivery.id} did not land${idle.timedOut ? ` \u2014 nothing moved it for ${ago(follow.idleMs)}` : ""}: ${delivery.line}` : void 0;
|
|
@@ -28013,7 +28013,7 @@ async function followOne(view, already, events) {
|
|
|
28013
28013
|
}
|
|
28014
28014
|
function nextInFlow(first, after2, seen) {
|
|
28015
28015
|
const runs = readRuns();
|
|
28016
|
-
const next = runs.filter((r) => !seen.has(r.sessionId) && r.action !== "sub" && r.startedAt >= first.startedAt).filter((r) => r.resumedFrom === after2 || !!first.flowId && r.flowId === first.flowId).sort((a, b) => a.startedAt - b.startedAt)[0];
|
|
28016
|
+
const next = runs.filter((r) => !seen.has(r.sessionId) && r.action !== "sub" && r.startedAt >= first.startedAt).filter((r) => !first.deliveryId || !r.deliveryId || r.deliveryId === first.deliveryId).filter((r) => r.resumedFrom === after2 || !!first.flowId && r.flowId === first.flowId).sort((a, b) => a.startedAt - b.startedAt)[0];
|
|
28017
28017
|
return next ? { ...next } : void 0;
|
|
28018
28018
|
}
|
|
28019
28019
|
async function moveDelivery(deliveryId, idle) {
|
|
@@ -28033,7 +28033,7 @@ async function moveDelivery(deliveryId, idle) {
|
|
|
28033
28033
|
const ask2 = await advanceLanding();
|
|
28034
28034
|
if (!ask2) return null;
|
|
28035
28035
|
const started = await startRun(ask2);
|
|
28036
|
-
return "error" in started ? null : { ...started.run };
|
|
28036
|
+
return "error" in started || started.run.deliveryId !== deliveryId ? null : { ...started.run };
|
|
28037
28037
|
}
|
|
28038
28038
|
function deliveryOutcome(deliveryId) {
|
|
28039
28039
|
const delivery = findDelivery(deliveryId);
|
package/dist/akb/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"wildcrane","version":"0.11.
|
|
1
|
+
{"name":"wildcrane","version":"0.11.13","akbContract":5,"type":"module","private":true}
|
package/dist/launcher.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// wildcrane-runner 0.6.
|
|
1
|
+
// wildcrane-runner 0.6.16 — built by runner/scripts/build.mjs. Do not edit.
|
|
2
2
|
import { createRequire as __ai4kanbanRequire } from 'node:module'
|
|
3
3
|
const require = __ai4kanbanRequire(import.meta.url)
|
|
4
4
|
|
|
@@ -107,7 +107,7 @@ function status(line) {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
// src/protocol.ts
|
|
110
|
-
var VERSION = true ? "0.6.
|
|
110
|
+
var VERSION = true ? "0.6.16" : "0.0.0";
|
|
111
111
|
var EXIT_REFUSED = 10;
|
|
112
112
|
var EXIT_OUTDATED = 11;
|
|
113
113
|
var EXIT_UPDATE = 12;
|
package/dist/runner.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// wildcrane-runner 0.6.
|
|
1
|
+
// wildcrane-runner 0.6.16 — built by runner/scripts/build.mjs. Do not edit.
|
|
2
2
|
import { createRequire as __ai4kanbanRequire } from 'node:module'
|
|
3
3
|
const require = __ai4kanbanRequire(import.meta.url)
|
|
4
4
|
var __create = Object.create;
|
|
@@ -84435,8 +84435,8 @@ function status(line) {
|
|
|
84435
84435
|
}
|
|
84436
84436
|
|
|
84437
84437
|
// src/protocol.ts
|
|
84438
|
-
var VERSION = true ? "0.6.
|
|
84439
|
-
var AKB_VERSION = true ? "0.11.
|
|
84438
|
+
var VERSION = true ? "0.6.16" : "0.0.0";
|
|
84439
|
+
var AKB_VERSION = true ? "0.11.13" : "0.0.0";
|
|
84440
84440
|
var AKB_CONTRACT = true ? 5 : 0;
|
|
84441
84441
|
var EXIT_REFUSED = 10;
|
|
84442
84442
|
var EXIT_OUTDATED = 11;
|
|
@@ -85923,7 +85923,7 @@ function createTail(log) {
|
|
|
85923
85923
|
// ../cli/package.json
|
|
85924
85924
|
var package_default = {
|
|
85925
85925
|
name: "wildcrane",
|
|
85926
|
-
version: "0.11.
|
|
85926
|
+
version: "0.11.13",
|
|
85927
85927
|
akbContract: 5,
|
|
85928
85928
|
description: "WildCrane's `akb` command \u2014 scaffold the Markdown board under docs/kanban/, put an agent on a card, and carry the flows the agent works by.",
|
|
85929
85929
|
keywords: [
|
|
@@ -92827,6 +92827,7 @@ ${draftLine(ws)}
|
|
|
92827
92827
|
if (verb === "revise" && !text3) return fail("Say what to change.");
|
|
92828
92828
|
let note = verb === "resolve" || verb === "revise" ? text3 : "";
|
|
92829
92829
|
let continuation;
|
|
92830
|
+
let expectedDelivery;
|
|
92830
92831
|
if (verb === "implement" && flow.resume) {
|
|
92831
92832
|
const restored = await akb(["delivery", "resume", String(id2), "--json"]);
|
|
92832
92833
|
const resumed = answerOf2(restored);
|
|
@@ -92835,6 +92836,7 @@ ${draftLine(ws)}
|
|
|
92835
92836
|
if (restored.code !== 0 && resumed?.error?.reason !== "deliveryActive") return fail(resumed?.error?.message ?? refusal(restored));
|
|
92836
92837
|
const deliveryId = resumed?.deliveryId ?? resumed?.error?.args?.id;
|
|
92837
92838
|
if (!deliveryId) return fail("\u627E\u4E0D\u5230\u4E0A\u6B21\u6784\u5EFA\u7684\u4EA4\u4ED8\u8BB0\u5F55\uFF0C\u65E0\u6CD5\u6062\u590D\u539F\u5BF9\u8BDD\u3002");
|
|
92839
|
+
expectedDelivery = deliveryId;
|
|
92838
92840
|
const previous = answerOf2(await akb(["run", "list", "--card", String(id2), "--all", "--json"]))?.runs?.filter((r2) => ["implement", "conflict", "hook"].includes(r2.action ?? "") && r2.deliveryId === deliveryId).sort((a3, b2) => (b2.startedAt ?? 0) - (a3.startedAt ?? 0))[0];
|
|
92839
92841
|
if (!previous) return fail("\u627E\u4E0D\u5230\u4E0A\u6B21\u6784\u5EFA\u7684\u8FD0\u884C\u8BB0\u5F55\uFF0C\u65E0\u6CD5\u6062\u590D\u539F\u5BF9\u8BDD\u3002");
|
|
92840
92842
|
continuation = previous.status === "done" ? ["run", "log", previous.sessionId] : ["run", "resume", previous.sessionId, "--require-session"];
|
|
@@ -92846,6 +92848,9 @@ ${draftLine(ws)}
|
|
|
92846
92848
|
const ran = await akb(continuation ? [...continuation, "--follow", "--events", "--json"] : ["card", verb, String(id2), "--follow", "--events", "--json", ...carryArgs(verb), ...note ? ["--", note] : []], true);
|
|
92847
92849
|
if (io.lost()) return fail("");
|
|
92848
92850
|
const answer = answerOf2(ran);
|
|
92851
|
+
if (expectedDelivery && answer?.delivery?.id && answer.delivery.id !== expectedDelivery) {
|
|
92852
|
+
return fail("\u7EED\u8DD1\u8FD4\u56DE\u4E86\u5176\u4ED6\u4EA4\u4ED8\u7684\u7ED3\u679C\uFF0C\u539F\u4EA4\u4ED8\u4FDD\u6301\u672A\u5B8C\u6210\u3002");
|
|
92853
|
+
}
|
|
92849
92854
|
if (verb === "implement") {
|
|
92850
92855
|
const ending = deliveryEnding(ws, answer?.delivery?.id ?? answer?.error?.delivery?.id);
|
|
92851
92856
|
if (ending) return ending;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wildcrane-runner",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.16",
|
|
4
4
|
"description": "WildCrane's Local Runner — connects this computer to WildCrane and runs its jobs on your local Claude Code, Codex, OpenCode or Cursor.",
|
|
5
5
|
"license": "FSL-1.1-ALv2",
|
|
6
6
|
"homepage": "https://wildcrane.ai/",
|