looply-cli 0.5.31 → 0.5.33
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/autonomy-controller.d.ts.map +1 -1
- package/dist/autonomy-controller.js +6 -0
- package/dist/autonomy-controller.js.map +1 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -1
- package/dist/branch-delivery-wiring.d.ts +3 -1
- package/dist/branch-delivery-wiring.d.ts.map +1 -1
- package/dist/branch-delivery-wiring.js +5 -3
- package/dist/branch-delivery-wiring.js.map +1 -1
- package/dist/branch-delivery.d.ts +9 -1
- package/dist/branch-delivery.d.ts.map +1 -1
- package/dist/branch-delivery.js +36 -1
- package/dist/branch-delivery.js.map +1 -1
- package/dist/daemon-cmd.d.ts.map +1 -1
- package/dist/daemon-cmd.js +12 -1
- package/dist/daemon-cmd.js.map +1 -1
- package/dist/goal-adaptive.d.ts +23 -1
- package/dist/goal-adaptive.d.ts.map +1 -1
- package/dist/goal-adaptive.js +34 -1
- package/dist/goal-adaptive.js.map +1 -1
- package/dist/goal-compile.d.ts +2 -0
- package/dist/goal-compile.d.ts.map +1 -1
- package/dist/goal-compile.js +13 -1
- package/dist/goal-compile.js.map +1 -1
- package/dist/goal-execution-evidence.d.ts +6 -0
- package/dist/goal-execution-evidence.d.ts.map +1 -1
- package/dist/goal-execution-evidence.js +34 -1
- package/dist/goal-execution-evidence.js.map +1 -1
- package/dist/goal-gap.d.ts +22 -0
- package/dist/goal-gap.d.ts.map +1 -1
- package/dist/goal-gap.js +28 -6
- package/dist/goal-gap.js.map +1 -1
- package/dist/grant-waiting-wiring.d.ts +5 -0
- package/dist/grant-waiting-wiring.d.ts.map +1 -1
- package/dist/grant-waiting-wiring.js +5 -0
- package/dist/grant-waiting-wiring.js.map +1 -1
- package/dist/mcp-main.js +2 -0
- package/dist/mcp-main.js.map +1 -1
- package/dist/mcp-server.d.ts +2 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +13 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/model-transport.d.ts.map +1 -1
- package/dist/model-transport.js +3 -0
- package/dist/model-transport.js.map +1 -1
- package/dist/project-terminal.d.ts +4 -1
- package/dist/project-terminal.d.ts.map +1 -1
- package/dist/project-terminal.js +8 -3
- package/dist/project-terminal.js.map +1 -1
- package/dist/pursuit-ending.d.ts.map +1 -1
- package/dist/pursuit-ending.js +5 -1
- package/dist/pursuit-ending.js.map +1 -1
- package/dist/run-cmd.d.ts.map +1 -1
- package/dist/run-cmd.js +48 -10
- package/dist/run-cmd.js.map +1 -1
- package/dist/ticket-attachments.d.ts +66 -0
- package/dist/ticket-attachments.d.ts.map +1 -0
- package/dist/ticket-attachments.js +155 -0
- package/dist/ticket-attachments.js.map +1 -0
- package/dist/ticket-words.d.ts.map +1 -1
- package/dist/ticket-words.js +8 -2
- package/dist/ticket-words.js.map +1 -1
- package/dist/trusted-git.d.ts.map +1 -1
- package/dist/trusted-git.js +6 -1
- package/dist/trusted-git.js.map +1 -1
- package/dist/verifier.d.ts +2 -0
- package/dist/verifier.d.ts.map +1 -1
- package/dist/verifier.js +4 -1
- package/dist/verifier.js.map +1 -1
- package/dist/verify-cmd.d.ts +15 -1
- package/dist/verify-cmd.d.ts.map +1 -1
- package/dist/verify-cmd.js +21 -3
- package/dist/verify-cmd.js.map +1 -1
- package/dist/verify-pass.d.ts +6 -1
- package/dist/verify-pass.d.ts.map +1 -1
- package/dist/verify-pass.js +4 -1
- package/dist/verify-pass.js.map +1 -1
- package/dist/visual-proof-run.d.ts +6 -0
- package/dist/visual-proof-run.d.ts.map +1 -1
- package/dist/visual-proof-run.js +26 -1
- package/dist/visual-proof-run.js.map +1 -1
- package/dist/visual-proof-store.d.ts +8 -0
- package/dist/visual-proof-store.d.ts.map +1 -1
- package/dist/visual-proof-store.js +5 -0
- package/dist/visual-proof-store.js.map +1 -1
- package/dist/visual-proof.d.ts.map +1 -1
- package/dist/visual-proof.js +1 -0
- package/dist/visual-proof.js.map +1 -1
- package/dist/workspace-provisioner.d.ts +1 -0
- package/dist/workspace-provisioner.d.ts.map +1 -1
- package/dist/workspace-provisioner.js +2 -1
- package/dist/workspace-provisioner.js.map +1 -1
- package/dist/workspace.d.ts +21 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +59 -0
- package/dist/workspace.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-terminal.js","sourceRoot":"","sources":["../src/project-terminal.ts"],"names":[],"mappings":";;AAiBA,
|
|
1
|
+
{"version":3,"file":"project-terminal.js","sourceRoot":"","sources":["../src/project-terminal.ts"],"names":[],"mappings":";;AAiBA,kDAkDC;AAnED,uCAAkG;AAElG,uDAAmD;AAInD;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAC,IAYnC;IAMC,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC3C,MAAM,SAAS,GAAG,IAAA,gCAAc,EAAC,KAAK,CAAC,CAAC;QACxC,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;YACnF,+EAA+E;YAC/E,+GAA+G;YAC/G,6EAA6E;YAC7E,MAAM,KAAK,GAAG,IAAI,KAAK,uBAAuB,CAAC;YAC/C,MAAM,QAAQ,GAAG,SAAS,KAAK,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxG,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,uHAAuH,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxK,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,4BAAqB,EAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE;gBACvE,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,SAAS;gBAChB,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBACpC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChD,6DAA6D;gBAC7D,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;aACxE,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pursuit-ending.d.ts","sourceRoot":"","sources":["../src/pursuit-ending.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"pursuit-ending.d.ts","sourceRoot":"","sources":["../src/pursuit-ending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG1H;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,KAAK,EAAE,iBAAiB,CAAC;IACzB,kDAAkD;IAClD,GAAG,EAAE,cAAc,CAAC;IACpB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD,iDAAiD;AACjD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CA+FvE"}
|
package/dist/pursuit-ending.js
CHANGED
|
@@ -60,7 +60,8 @@ function describePursuitEnding(ctx) {
|
|
|
60
60
|
code,
|
|
61
61
|
because: (0, core_1.cleanPursuitEndReason)(because),
|
|
62
62
|
});
|
|
63
|
-
|
|
63
|
+
// The checker's own words, in full (LOO-B-1): a person reads them on the ticket and must be able to act on them.
|
|
64
|
+
const refusal = ctx.refusal === undefined || ctx.refusal === '' ? null : quote(ctx.refusal, core_1.PURSUIT_END_REASON_MAX - 200);
|
|
64
65
|
switch (ctx.end) {
|
|
65
66
|
case 'start_never_began': {
|
|
66
67
|
const n = ctx.attempts ?? 3;
|
|
@@ -74,6 +75,9 @@ function describePursuitEnding(ctx) {
|
|
|
74
75
|
return out('plan_limit_reached', 'Looply re-planned this goal as many times as it is allowed and it is still not done, so it stopped rather than plan again' +
|
|
75
76
|
(refusal === null ? '. ' : ` (its last check: ${refusal}). `) +
|
|
76
77
|
'Someone needs to look at what was delivered and say what is still missing.');
|
|
78
|
+
case 'sibling_change_needed':
|
|
79
|
+
return out('sibling_change_needed', `Split across components: ${refusal ?? "this repository's part is done; the rest is in another component's repository"}. ` +
|
|
80
|
+
"This repository's work is delivered for review and is not merged on its own; the other part needs its own ticket.");
|
|
77
81
|
case 'needs_decision':
|
|
78
82
|
return out('needs_decision',
|
|
79
83
|
// A question keeps its own question mark (a bug that did not show asks one: `bug-repro.ts`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pursuit-ending.js","sourceRoot":"","sources":["../src/pursuit-ending.ts"],"names":[],"mappings":";;;AA0FA,
|
|
1
|
+
{"version":3,"file":"pursuit-ending.js","sourceRoot":"","sources":["../src/pursuit-ending.ts"],"names":[],"mappings":";;;AA0FA,sDA+FC;AAzLD,uCAA0H;AAC1H,iDAAgD;AAEhD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sEAAsE;AACzD,QAAA,kBAAkB,GAAG,mCAAmC,CAAC;AACtE,6EAA6E;AAChE,QAAA,oBAAoB,GAAG,iCAAiC,CAAC;AAkCtE,wFAAwF;AACxF,SAAS,KAAK,CAAC,IAAY,EAAE,GAAG,GAAG,GAAG;IACpC,uFAAuF;IACvF,IAAI,CAAC,GAAG,IAAA,4BAAqB,EAAC,IAAA,6BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG;QAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;IAC5D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,iBAAiB,GACrB,wGAAwG;IACxG,2FAA2F,CAAC;AAE9F,6FAA6F;AAC7F,SAAS,WAAW,CAAC,IAAwB;IAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAAkB,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAClG,IAAI,IAAI,CAAC,QAAQ,CAAC,4BAAoB,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,QAAQ,EACN,yBAAyB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,0BAA0B;gBAC/G,0GAA0G;gBAC1G,8GAA8G;SACjH,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iDAAiD;AACjD,SAAgB,qBAAqB,CAAC,GAAkB;IACtD,MAAM,GAAG,GAAG,CAAC,IAAoB,EAAE,OAAe,EAAiB,EAAE,CAAC,CAAC;QACrE,IAAI;QACJ,OAAO,EAAE,IAAA,4BAAqB,EAAC,OAAO,CAAC;KACxC,CAAC,CAAC;IACH,iHAAiH;IACjH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,6BAAsB,GAAG,GAAG,CAAC,CAAC;IAE1H,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC5B,MAAM,GAAG,GACP,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,KAAK,EAAE;gBAC3D,CAAC,CAAC,4DAA4D;gBAC9D,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChC,OAAO,GAAG,CACR,mBAAmB,EACnB,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,wBAAwB,GAAG,IAAI;gBACxG,+BAA+B,GAAG,CAAC,OAAO,0GAA0G,CACvJ,CAAC;QACJ,CAAC;QAED,KAAK,oBAAoB;YACvB,OAAO,GAAG,CACR,oBAAoB,EACpB,2HAA2H;gBACzH,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,OAAO,KAAK,CAAC;gBAC7D,4EAA4E,CAC/E,CAAC;QAEJ,KAAK,uBAAuB;YAC1B,OAAO,GAAG,CACR,uBAAuB,EACvB,4BAA4B,OAAO,IAAI,+EAA+E,IAAI;gBACxH,mHAAmH,CACtH,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,GAAG,CACR,gBAAgB;YAChB,6FAA6F;YAC7F,gEAAgE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9I,CAAC;QAEJ,KAAK,uBAAuB;YAC1B,OAAO,GAAG,CACR,uBAAuB,EACvB,yEAAyE;gBACvE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC;gBAC5C,2FAA2F,CAC9F,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO,GAAG,CACR,oBAAoB,EACpB,eAAe,GAAG,CAAC,OAAO,yEAAyE;gBACjG,qGAAqG,CACxG,CAAC;QAEJ,KAAK,aAAa;YAChB,OAAO,GAAG,CACR,aAAa,EACb,4CAA4C,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,gEAAgE,CACnJ,CAAC;QAEJ,KAAK,iBAAiB;YACpB,OAAO,GAAG,CACR,iBAAiB,EACjB,4DAA4D,GAAG,CAAC,OAAO,+CAA+C;gBACpH,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,kEAAkE,CAChG,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,GAAG,CACR,gBAAgB,EAChB,mCAAmC,GAAG,CAAC,OAAO,0BAA0B,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK;gBAClG,qDAAqD,CACxD,CAAC;QAEJ,KAAK,aAAa,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE7B,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,OAAO,GAAG,CAAC,CAAC;QACnG,KAAK,YAAY;YACf,OAAO,GAAG,CAAC,YAAY,EAAE,uEAAuE,CAAC,CAAC;QACpG,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;QACpD,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;QAEpD;YACE,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,6BAAc,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,SAAS,CAAC,GAAkB,EAAE,GAA6D;IAClG,MAAM,IAAI,GACR,GAAG,CAAC,GAAG,KAAK,aAAa;QACvB,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,mBAAmB,GAAG,CAAC,SAAS,qDAAqD,CAAC;IAE5F,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,GAAG,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;QACtE,OAAO,GAAG,CACR,oBAAoB,EACpB,GAAG,IAAI,oBAAoB,GAAG,CAAC,OAAO,2CAA2C,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK;YAC/G,gCAAgC,GAAG,CAAC,OAAO,wBAAwB,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;QAC5D,OAAO,GAAG,CACR,cAAc,EACd,GAAG,IAAI,oFAAoF,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK;YACpH,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;QAC5D,OAAO,GAAG,CACR,kBAAkB,EAClB,GAAG,IAAI,yBAAyB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,2DAA2D,CAClH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,gFAAgF,CAAC,CAAC;AAC/G,CAAC"}
|
package/dist/run-cmd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cmd.d.ts","sourceRoot":"","sources":["../src/run-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOvD,OAAO,EAGL,KAAK,cAAc,EAKnB,KAAK,IAAI,EAaT,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA8C/E,OAAO,EAGL,KAAK,aAAa,EAIlB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAqBxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA0C9E,OAAO,EAGL,KAAK,yBAAyB,EAE/B,MAAM,uBAAuB,CAAC;AAe/B,OAAO,EAaL,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"run-cmd.d.ts","sourceRoot":"","sources":["../src/run-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/run-cmd.js
CHANGED
|
@@ -105,6 +105,7 @@ const providers_1 = require("./providers");
|
|
|
105
105
|
const core_4 = require("@looply/core");
|
|
106
106
|
const core_5 = require("@looply/core");
|
|
107
107
|
const feature_settings_cache_1 = require("./feature-settings-cache");
|
|
108
|
+
const ticket_attachments_1 = require("./ticket-attachments");
|
|
108
109
|
const queue_write_lease_1 = require("./queue-write-lease");
|
|
109
110
|
const surface_lease_1 = require("./surface-lease");
|
|
110
111
|
const spend_ledger_1 = require("./spend-ledger");
|
|
@@ -2861,6 +2862,10 @@ async function runLoop(opts) {
|
|
|
2861
2862
|
const adaptiveTier = adaptiveBudget.compile;
|
|
2862
2863
|
let compileTimedOut = false;
|
|
2863
2864
|
let checkTimedOut = false;
|
|
2865
|
+
// RBB-B-218: the step check's own tier, and whether a pass this run checked nothing in time.
|
|
2866
|
+
const verifyKey = binding.kind === 'bound' ? (0, verify_cmd_2.verifyTimeoutKey)(binding.goal.id, binding.goal.version) : null;
|
|
2867
|
+
const verifyTier = (0, verify_cmd_2.verifierTierFor)(verifyKey === null ? 0 : (0, planner_timeouts_1.plannerTimeoutsFor)(projectStateDirPath, verifyKey));
|
|
2868
|
+
let verifyTimedOut = false;
|
|
2864
2869
|
/**
|
|
2865
2870
|
* A PLANNER THAT RAN OUT OF TIME IS THE MACHINE'S LIMIT, NOT THE GOAL'S FAULT: the run leaves
|
|
2866
2871
|
* with `environment` / `planner_timeout`, so the controller voids this Start (it costs no try),
|
|
@@ -2872,6 +2877,16 @@ async function runLoop(opts) {
|
|
|
2872
2877
|
* at the same eight minutes again — finished work that is never judged is never delivered.
|
|
2873
2878
|
*/
|
|
2874
2879
|
const plannerTimedOut = (message) => {
|
|
2880
|
+
/**
|
|
2881
|
+
* A STEP CHECK THAT RAN OUT OF TIME, with nothing made ready (RBB-B-218): the machine's limit.
|
|
2882
|
+
* The goal is neither judged nor re-planned on it — four plans were spent that way on steps
|
|
2883
|
+
* never tried, and the goal ended "plan_limit_reached" with nothing delivered.
|
|
2884
|
+
*/
|
|
2885
|
+
if (verifyTimedOut && verifyKey !== null) {
|
|
2886
|
+
const n = (0, planner_timeouts_1.notePlannerTimeout)(projectStateDirPath, verifyKey);
|
|
2887
|
+
return new RunRefused(`${message} — checking this plan's steps against the code took longer than its limit; the next Start checks each with ` +
|
|
2888
|
+
`${Math.round((0, verify_cmd_2.verifierTierFor)(n).timeoutMs / 60000)} minutes, and this Start does not count`, 'environment', undefined, undefined, 'planner_timeout');
|
|
2889
|
+
}
|
|
2875
2890
|
if (checkTimedOut && binding.kind === 'bound') {
|
|
2876
2891
|
const n = (0, planner_timeouts_1.notePlannerTimeout)(projectStateDirPath, (0, adaptive_budget_1.goalCheckTimeoutKey)(binding.goal.id, binding.goal.version));
|
|
2877
2892
|
return new RunRefused(`${message} — the goal check took longer than its limit; the next Start checks with ${Math.round((0, goal_gap_1.goalCheckTimeoutFor)(n) / 60000)} minutes, ` +
|
|
@@ -2884,7 +2899,7 @@ async function runLoop(opts) {
|
|
|
2884
2899
|
return new RunRefused(`${message} — planning took longer than its limit; the next Start plans with ${Math.round(next.timeoutMs / 60000)} minutes ` +
|
|
2885
2900
|
`for at most ${next.maxSteps} steps, and this Start does not count`, 'environment', undefined, undefined, 'planner_timeout');
|
|
2886
2901
|
};
|
|
2887
|
-
let verifyBudget = Math.min(verify_cmd_2.VERIFY_MAX_PER_RUN, compileTier.maxSteps);
|
|
2902
|
+
let verifyBudget = Math.min(verify_cmd_2.VERIFY_MAX_PER_RUN, compileTier.maxSteps, verifyTier.maxPerRun);
|
|
2888
2903
|
/**
|
|
2889
2904
|
* EVERYTHING A START DOES BEFORE THE RUN, under one guard.
|
|
2890
2905
|
*
|
|
@@ -3035,6 +3050,13 @@ async function runLoop(opts) {
|
|
|
3035
3050
|
* A bug that does not show asks one question instead of spending a fix attempt — only when the
|
|
3036
3051
|
* reproduction happened in THIS Start, so a resumed goal is never asked the same thing twice.
|
|
3037
3052
|
*/
|
|
3053
|
+
/**
|
|
3054
|
+
* THE TICKET'S IMAGES, BEFORE ANYTHING IS DECIDED (LOO-B-2): downloaded once per goal version on the host and listed
|
|
3055
|
+
* for the read-only `view_attachment` tool; every prompt carrying the goal's words names them (`withAttachments`).
|
|
3056
|
+
*/
|
|
3057
|
+
if (binding.kind === 'bound') {
|
|
3058
|
+
await (0, ticket_attachments_1.ensureTicketAttachments)({ cwd, goalKey: `${binding.goal.id}@${binding.goal.version}`, goalText: binding.goal.text, log }).catch(() => null);
|
|
3059
|
+
}
|
|
3038
3060
|
// On unless switched off: config.yaml `bug_repro.enabled`, else the switch in AutoRyn (feature switches).
|
|
3039
3061
|
const reproSwitch = (0, core_5.bugReproEnabled)(config.bugRepro?.enabled, (0, feature_settings_cache_1.remoteFeaturesFor)(opts.cwd));
|
|
3040
3062
|
if (!reproSwitch.enabled && binding.kind === 'bound' && (0, bug_repro_1.isBugGoal)(binding.goal.text)) {
|
|
@@ -3047,7 +3069,7 @@ async function runLoop(opts) {
|
|
|
3047
3069
|
repro = await (0, bug_repro_1.reproduceBug)({
|
|
3048
3070
|
goalId: binding.goal.id,
|
|
3049
3071
|
goalVersion: binding.goal.version,
|
|
3050
|
-
goalText: binding.goal.text,
|
|
3072
|
+
goalText: (0, ticket_attachments_1.withAttachments)(binding.goal.text, cwd, `${binding.goal.id}@${binding.goal.version}`),
|
|
3051
3073
|
projectName: config.project.name,
|
|
3052
3074
|
gates: config.gates,
|
|
3053
3075
|
}, {
|
|
@@ -3082,7 +3104,7 @@ async function runLoop(opts) {
|
|
|
3082
3104
|
// answer (the first and any re-plan) is made against the same committed tree.
|
|
3083
3105
|
const compiledAt = await git.headTreeSha().catch(() => null);
|
|
3084
3106
|
// A reproduced bug's test rides with the goal's words: the plan's first job is to make it pass.
|
|
3085
|
-
const planText = (0, bug_repro_1.withReproduction)(binding.goal.text, reproFor(binding.goal.id, binding.goal.version));
|
|
3107
|
+
const planText = (0, bug_repro_1.withReproduction)((0, ticket_attachments_1.withAttachments)(binding.goal.text, cwd, `${binding.goal.id}@${binding.goal.version}`), reproFor(binding.goal.id, binding.goal.version));
|
|
3086
3108
|
const recovered = await (0, plan_recovery_1.compileWithRecovery)({
|
|
3087
3109
|
goalId: binding.goal.id,
|
|
3088
3110
|
goalVersion: binding.goal.version,
|
|
@@ -3300,7 +3322,7 @@ async function runLoop(opts) {
|
|
|
3300
3322
|
const pass = await (0, verify_pass_1.verifyDrafts)({
|
|
3301
3323
|
queue: runQueue,
|
|
3302
3324
|
ledger: ledgerForRun,
|
|
3303
|
-
verify: (0, verify_cmd_1.makeItemVerifier)(verifyAgent, queue),
|
|
3325
|
+
verify: (0, verify_cmd_1.makeItemVerifier)(verifyAgent, queue, verifyTier.timeoutMs),
|
|
3304
3326
|
cachePut: (id, head, ev) => evidence.put(id, head, ev),
|
|
3305
3327
|
headSha: () => git.headSha(),
|
|
3306
3328
|
projectId,
|
|
@@ -3321,6 +3343,8 @@ async function runLoop(opts) {
|
|
|
3321
3343
|
verifyBudget -= pass.checked;
|
|
3322
3344
|
log(`verify : ${pass.ready} of ${pass.checked} are ready to work on`);
|
|
3323
3345
|
pickable = pass.ready;
|
|
3346
|
+
if (pass.ready === 0 && pass.timedOut > 0)
|
|
3347
|
+
verifyTimedOut = true;
|
|
3324
3348
|
}
|
|
3325
3349
|
}
|
|
3326
3350
|
/**
|
|
@@ -3341,7 +3365,8 @@ async function runLoop(opts) {
|
|
|
3341
3365
|
* work, and it is never reached again afterwards. `runner.run()` returns to a
|
|
3342
3366
|
* `finally` that does nothing but clean up.
|
|
3343
3367
|
*/
|
|
3344
|
-
|
|
3368
|
+
// A pass that checked nothing in time judges nothing: the goal check and a new plan wait for a Start that can (RBB-B-218).
|
|
3369
|
+
if (!pickable && scope !== null && binding.kind === 'bound' && !compiledThisRun && !verifyTimedOut) {
|
|
3345
3370
|
const bound = binding.goal;
|
|
3346
3371
|
// Captured, because `scope` moves when a new plan is materialised below and
|
|
3347
3372
|
// the callbacks here must go on describing the goal they were built for.
|
|
@@ -3437,7 +3462,7 @@ async function runLoop(opts) {
|
|
|
3437
3462
|
adaptive = await (0, goal_adaptive_1.decideAdaptive)({
|
|
3438
3463
|
goalId: scope.goalId,
|
|
3439
3464
|
goalVersion: bound.version,
|
|
3440
|
-
goalText: (0, bug_repro_1.withReproduction)(bound.text, reproFor(scope.goalId, bound.version)),
|
|
3465
|
+
goalText: (0, bug_repro_1.withReproduction)((0, ticket_attachments_1.withAttachments)(bound.text, cwd, `${scope.goalId}@${bound.version}`), reproFor(scope.goalId, bound.version)),
|
|
3441
3466
|
projectId,
|
|
3442
3467
|
projectName: config.project.name,
|
|
3443
3468
|
currentRevision: revision,
|
|
@@ -3484,7 +3509,9 @@ async function runLoop(opts) {
|
|
|
3484
3509
|
log,
|
|
3485
3510
|
});
|
|
3486
3511
|
// A reproduced bug is met only when its test passes at this tree, run by the machine (`bug-repro.ts`).
|
|
3487
|
-
|
|
3512
|
+
// The ticket's images are named to the check too (LOO-B-2).
|
|
3513
|
+
const seen = { ...i, goalText: (0, ticket_attachments_1.withAttachments)(i.goalText, cwd, `${bound.id}@${bound.version}`) };
|
|
3514
|
+
const gap = await (0, goal_gap_1.evaluateGoalGap)(screenshots.length > 0 ? { ...seen, screenshots } : seen, { invoke: planAgent, timeoutMs: adaptiveBudget.checkMs });
|
|
3488
3515
|
if (!gap.ok && gap.timedOut === true)
|
|
3489
3516
|
checkTimedOut = true;
|
|
3490
3517
|
return (0, bug_repro_1.evaluateWithReproduction)(gap, reproFor(goalId, bound.version), {
|
|
@@ -3727,7 +3754,7 @@ async function runLoop(opts) {
|
|
|
3727
3754
|
const pass = await (0, verify_pass_1.verifyDrafts)({
|
|
3728
3755
|
queue: runQueue,
|
|
3729
3756
|
ledger: ledgerForRun,
|
|
3730
|
-
verify: (0, verify_cmd_1.makeItemVerifier)(verifyAgent, queue),
|
|
3757
|
+
verify: (0, verify_cmd_1.makeItemVerifier)(verifyAgent, queue, verifyTier.timeoutMs),
|
|
3731
3758
|
cachePut: (id, head, ev) => evidence.put(id, head, ev),
|
|
3732
3759
|
headSha: () => git.headSha(),
|
|
3733
3760
|
projectId,
|
|
@@ -3740,6 +3767,8 @@ async function runLoop(opts) {
|
|
|
3740
3767
|
verifyBudget -= pass.checked;
|
|
3741
3768
|
log(`verify : ${pass.ready} of ${pass.checked} are ready to work on`);
|
|
3742
3769
|
pickable = pass.ready;
|
|
3770
|
+
if (pass.ready === 0 && pass.timedOut > 0)
|
|
3771
|
+
verifyTimedOut = true;
|
|
3743
3772
|
}
|
|
3744
3773
|
}
|
|
3745
3774
|
}
|
|
@@ -3761,6 +3790,8 @@ async function runLoop(opts) {
|
|
|
3761
3790
|
return reproAsks;
|
|
3762
3791
|
if (seamFailure !== null)
|
|
3763
3792
|
return `could not check this goal — ${seamFailure}`;
|
|
3793
|
+
if (verifyTimedOut && adaptive === null)
|
|
3794
|
+
return `no step of this plan could be checked against the code in time — ${(0, queue_summary_1.describeNoReady)(runQueue.list())}`;
|
|
3764
3795
|
const said = adaptive === null ? null : (0, goal_adaptive_1.describeAdaptive)(adaptive, attestedNow(), coverage);
|
|
3765
3796
|
if (said !== null)
|
|
3766
3797
|
return said.message;
|
|
@@ -3888,13 +3919,20 @@ async function runLoop(opts) {
|
|
|
3888
3919
|
const deliveryNow = () => deliveringRunId !== null && deliveringSha !== null && key2Saw !== null
|
|
3889
3920
|
? { runId: deliveringRunId, sha: deliveringSha, checks: Object.fromEntries(key2Saw.checks) }
|
|
3890
3921
|
: undefined;
|
|
3891
|
-
|
|
3922
|
+
// A split goal (RBB-B-209) delivers what this repository holds too, when its evidence held.
|
|
3923
|
+
const delivery = said.terminal && (said.code === 'goal_satisfied' || said.code === 'sibling_change_required') ? deliveryNow() : undefined;
|
|
3892
3924
|
await releaseHold();
|
|
3893
3925
|
// The branch the controller will ask the lane about: the one that delivered (F20).
|
|
3894
3926
|
const refusedOn = deliveredOn;
|
|
3895
3927
|
throw said.terminal ? new RunRefused(said.message, said.code, refusedOn, delivery) : (plannerTimedOut(said.message) ?? new Error(said.message));
|
|
3896
3928
|
}
|
|
3897
3929
|
}
|
|
3930
|
+
if (verifyTimedOut) {
|
|
3931
|
+
// Before the work-set exits: a step left `unclear` by a timeout is not a person's question.
|
|
3932
|
+
await releaseHold();
|
|
3933
|
+
const unchecked = `no step of this plan could be checked against the code in time — ${(0, queue_summary_1.describeNoReady)(runQueue.list())}`;
|
|
3934
|
+
throw plannerTimedOut(unchecked) ?? new Error(unchecked);
|
|
3935
|
+
}
|
|
3898
3936
|
const left = scope === null ? null : (0, core_1.workLeft)(runQueue.list());
|
|
3899
3937
|
if (left === 'finished') {
|
|
3900
3938
|
// A WORK-SET fact, not a goal verdict: every row reached a terminal state.
|
|
@@ -4122,7 +4160,7 @@ async function runLoop(opts) {
|
|
|
4122
4160
|
* bound to — a second read could straddle an amendment and show a
|
|
4123
4161
|
* goal this work was never authorised against.
|
|
4124
4162
|
*/
|
|
4125
|
-
binding.kind === 'bound' ? (0, bug_repro_1.withReproduction)(binding.goal.text, reproFor(binding.goal.id, binding.goal.version)) : undefined,
|
|
4163
|
+
binding.kind === 'bound' ? (0, bug_repro_1.withReproduction)((0, ticket_attachments_1.withAttachments)(binding.goal.text, cwd, `${binding.goal.id}@${binding.goal.version}`), reproFor(binding.goal.id, binding.goal.version)) : undefined,
|
|
4126
4164
|
// The other repositories this change spans, resolved once for the run.
|
|
4127
4165
|
span),
|
|
4128
4166
|
timeoutMs: AGENT_TIMEOUT_MS,
|