@appchy/jarvis 0.1.121 → 0.1.122
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/bin.js +4 -33
- package/dist/bin.js.map +1 -1
- package/harness/harness/gate.py +146 -99
- package/harness/harness/peers.py +42 -27
- package/harness/test_work.py +62 -0
- package/package.json +3 -3
package/dist/bin.js
CHANGED
|
@@ -4794,24 +4794,11 @@ function toVerification(said) {
|
|
|
4794
4794
|
commit: String(parsed.commit ?? ""),
|
|
4795
4795
|
message: String(parsed.message ?? ""),
|
|
4796
4796
|
reason: REASONS.includes(parsed.reason) ? parsed.reason : "",
|
|
4797
|
-
run: toRun(parsed.run),
|
|
4798
4797
|
notices: []
|
|
4799
4798
|
};
|
|
4800
4799
|
}
|
|
4801
4800
|
var STATES = ["idle", "started", "running", "busy", "finished"];
|
|
4802
4801
|
var REASONS = ["", "none", "other", "lost", "moved", "gone", "read"];
|
|
4803
|
-
function toRun(said) {
|
|
4804
|
-
if (!said || typeof said !== "object") return null;
|
|
4805
|
-
const run6 = said;
|
|
4806
|
-
return {
|
|
4807
|
-
task: String(run6.task ?? ""),
|
|
4808
|
-
gate: String(run6.gate ?? ""),
|
|
4809
|
-
done: Array.isArray(run6.done) ? run6.done.map(String) : [],
|
|
4810
|
-
gates: Array.isArray(run6.gates) ? run6.gates.map(String) : [],
|
|
4811
|
-
elapsedSeconds: Number(run6.elapsedSeconds) || 0,
|
|
4812
|
-
by: String(run6.by ?? "")
|
|
4813
|
-
};
|
|
4814
|
-
}
|
|
4815
4802
|
function read(said) {
|
|
4816
4803
|
for (const line of said.split("\n").reverse()) {
|
|
4817
4804
|
if (!line.trim().startsWith("{")) continue;
|
|
@@ -10299,7 +10286,7 @@ import { createRequire as createRequire2 } from "module";
|
|
|
10299
10286
|
var _require = createRequire2(import.meta.url);
|
|
10300
10287
|
var VERSION2 = _require("../package.json").version ?? "0.0.0";
|
|
10301
10288
|
var IS_DEV = String(_require("../package.json").name ?? "").endsWith("-dev");
|
|
10302
|
-
var SHA = "
|
|
10289
|
+
var SHA = "63c9236";
|
|
10303
10290
|
var BUILT = "2026-09-12";
|
|
10304
10291
|
var BUILD = SHA ?? "source";
|
|
10305
10292
|
var BUILD_LABEL = `${SHA ? `${VERSION2} (${SHA}${BUILT ? ` ${BUILT}` : ""})` : `${VERSION2} (source)`}${IS_DEV ? " \u2014 development build" : ""}`;
|
|
@@ -11927,7 +11914,7 @@ function updateTool(handlers) {
|
|
|
11927
11914
|
function verifyTool(handlers) {
|
|
11928
11915
|
return {
|
|
11929
11916
|
name: "work_verify",
|
|
11930
|
-
description: "Run this repo's own gates against an item and record the result on it. Completion refuses until they have passed at the current commit, so run this before work_complete rather than after being refused. It runs the whole configured set \u2014 there is no way to ask for one gate. Call once with start:true to set them going, then call WITHOUT it for progress and the result: asking never starts a run. They take minutes. One run per checkout
|
|
11917
|
+
description: "Run this repo's own gates against an item and record the result on it. Completion refuses until they have passed at the current commit, so run this before work_complete rather than after being refused. It runs the whole configured set \u2014 there is no way to ask for one gate. Call once with start:true to set them going, then call WITHOUT it for progress and the result: asking never starts a run. They take minutes. One run per checkout, so 'busy' means the slot is somebody else's and nothing holds your place \u2014 ask again once it frees.",
|
|
11931
11918
|
metadata: { readOnly: false },
|
|
11932
11919
|
input: {
|
|
11933
11920
|
type: "object",
|
|
@@ -11944,28 +11931,12 @@ function verifyTool(handlers) {
|
|
|
11944
11931
|
state: {
|
|
11945
11932
|
type: "string",
|
|
11946
11933
|
enum: ["idle", "started", "running", "busy", "finished"],
|
|
11947
|
-
description: "
|
|
11934
|
+
description: "'running' is YOUR run, 'busy' somebody else's holding the slot \u2014 on 'busy' every gate field here is empty because you have no run. Only 'finished' carries a result. 'idle': nothing usable ran; `reason` says why."
|
|
11948
11935
|
},
|
|
11949
11936
|
reason: {
|
|
11950
11937
|
type: "string",
|
|
11951
11938
|
enum: ["", "none", "other", "lost", "moved", "gone", "read"],
|
|
11952
|
-
description: "Why there is no result
|
|
11953
|
-
},
|
|
11954
|
-
run: {
|
|
11955
|
-
type: ["object", "null"],
|
|
11956
|
-
description: "The run holding this CHECKOUT, which is not always yours \u2014 every other field here is about the item you asked about. Null when none is running.",
|
|
11957
|
-
properties: {
|
|
11958
|
-
task: { type: "string", description: "The item it is proving." },
|
|
11959
|
-
gate: { type: "string" },
|
|
11960
|
-
done: { type: "array", items: { type: "string" } },
|
|
11961
|
-
gates: { type: "array", items: { type: "string" } },
|
|
11962
|
-
elapsedSeconds: { type: "number" },
|
|
11963
|
-
by: {
|
|
11964
|
-
type: "string",
|
|
11965
|
-
description: "Who started it and whether you can reach them. Empty when nothing can say \u2014 never a guess about who did what."
|
|
11966
|
-
}
|
|
11967
|
-
},
|
|
11968
|
-
required: ["task", "gate", "done", "gates", "elapsedSeconds", "by"]
|
|
11939
|
+
description: "Why there is no result. Empty when there is one; `message` explains it."
|
|
11969
11940
|
},
|
|
11970
11941
|
gate: { type: "string", description: "The gate executing now, when it is yours." },
|
|
11971
11942
|
elapsedSeconds: { type: "number" },
|