@onepointfour-packs/flaredeck-agent 0.2.15 → 0.2.20
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/agent.js +14 -1
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/connect.js +6 -6
- package/dist/connect.js.map +1 -1
- package/dist/engine-antigravity.js +1 -1
- package/dist/flaredeck-proxy.d.ts +6 -0
- package/dist/flaredeck-proxy.js +6 -0
- package/dist/flaredeck-proxy.js.map +1 -1
- package/dist/jevguard.d.ts +5 -0
- package/dist/jevguard.js +12 -5
- package/dist/jevguard.js.map +1 -1
- package/dist/localmcp.js +1 -1
- package/dist/main.js +22 -11
- package/dist/main.js.map +1 -1
- package/dist/oauth.js +11 -1
- package/dist/oauth.js.map +1 -1
- package/dist/preflight.js +44 -2
- package/dist/preflight.js.map +1 -1
- package/dist/runs.d.ts +43 -14
- package/dist/runs.js +91 -50
- package/dist/runs.js.map +1 -1
- package/dist/serve.js +57 -23
- package/dist/serve.js.map +1 -1
- package/dist/team.js +3 -3
- package/dist/team.js.map +1 -1
- package/dist/ui.d.ts +1 -1
- package/package.json +1 -1
package/dist/oauth.js
CHANGED
|
@@ -17,7 +17,9 @@ import { createInterface } from 'node:readline';
|
|
|
17
17
|
*/
|
|
18
18
|
const b64u = (b) => b.toString('base64url');
|
|
19
19
|
async function discover(baseUrl) {
|
|
20
|
-
const res = await fetch(`${baseUrl}/.well-known/oauth-authorization-server
|
|
20
|
+
const res = await fetch(`${baseUrl}/.well-known/oauth-authorization-server`, {
|
|
21
|
+
signal: AbortSignal.timeout(20_000),
|
|
22
|
+
});
|
|
21
23
|
if (!res.ok)
|
|
22
24
|
throw new Error(`OAuth discovery failed (${res.status})`);
|
|
23
25
|
return (await res.json());
|
|
@@ -25,6 +27,7 @@ async function discover(baseUrl) {
|
|
|
25
27
|
/** Register this machine as a client. Dynamic registration, so there is nothing to pre-provision. */
|
|
26
28
|
async function registerClient(endpoint, redirectUri) {
|
|
27
29
|
const res = await fetch(endpoint, {
|
|
30
|
+
signal: AbortSignal.timeout(20_000),
|
|
28
31
|
method: 'POST',
|
|
29
32
|
headers: { 'Content-Type': 'application/json' },
|
|
30
33
|
body: JSON.stringify({
|
|
@@ -115,10 +118,17 @@ function openBrowser(url) {
|
|
|
115
118
|
function waitForCode(port, state, say, remote) {
|
|
116
119
|
return new Promise((resolve, reject) => {
|
|
117
120
|
let done = false;
|
|
121
|
+
// Ten minutes, then give up. There was no limit at all, so a browser that did not open — or a
|
|
122
|
+
// sign-in nobody finished — left `login` sitting there with no sign of what it wanted, in the
|
|
123
|
+
// middle of a run connecting several services. A wait that cannot end is indistinguishable
|
|
124
|
+
// from a crash.
|
|
125
|
+
const giveUp = setTimeout(() => finish(() => reject(new Error('Nobody completed the sign-in within ten minutes. The address was printed above — open it ' +
|
|
126
|
+
'and try again, or run this one on its own later.'))), 10 * 60_000);
|
|
118
127
|
const finish = (fn) => {
|
|
119
128
|
if (done)
|
|
120
129
|
return;
|
|
121
130
|
done = true;
|
|
131
|
+
clearTimeout(giveUp);
|
|
122
132
|
try {
|
|
123
133
|
server.close();
|
|
124
134
|
}
|
package/dist/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;;;;;;GAYG;AAEH,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAapD,KAAK,UAAU,QAAQ,CAAC,OAAe;IACrC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,yCAAyC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;;;;;;GAYG;AAEH,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAapD,KAAK,UAAU,QAAQ,CAAC,OAAe;IACrC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,yCAAyC,EAAE;QAC3E,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAc,CAAC;AACzC,CAAC;AAED,qGAAqG;AACrG,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,WAAmB;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,WAAW,EAAE,sBAAsB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,cAAc,EAAE;YAC9E,aAAa,EAAE,CAAC,WAAW,CAAC;YAC5B,WAAW,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC;YACpD,cAAc,EAAE,CAAC,MAAM,CAAC;YACxB,0BAA0B,EAAE,oBAAoB;YAChD,KAAK,EAAE,WAAW;SACnB,CAAC;KACH,CAAC,CAAC;IACH,MAAM,IAAI,GAAQ,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAmB,EAAE,YAAY,EAAE,IAAI,CAAC,aAAmC,EAAE,CAAC;AACxG,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,GAAwB,EACxB,IAAI,GAAG,KAAK;AACZ,gGAAgG;AAChG,OAA8C,EAAE;IAEhD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,oBAAoB,IAAI,WAAW,CAAC;IACxD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAEjG,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjD,GAAG,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,WAAW;QACzB,cAAc,EAAE,SAAS;QACzB,qBAAqB,EAAE,MAAM;QAC7B,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,WAAW;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,OAAO,GAAG;KACzC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,gFAAgF,CAAC,CAAC;QACtF,GAAG,CAAC,uEAAuE,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,qEAAqE,CAAC,CAAC;QAC3E,GAAG,CAAC,uEAAuE,CAAC,CAAC;IAC/E,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,MAAM;QAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;QACnC,UAAU,EAAE,oBAAoB;QAChC,IAAI;QACJ,YAAY,EAAE,WAAW;QACzB,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,QAAQ;QACvB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACH,uGAAuG;AACvG,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,+FAA+F;AAC/F,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IACzG,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAA+C,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa,EAAE,GAAwB,EAAE,MAAe;IACzF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,8FAA8F;QAC9F,8FAA8F;QAC9F,2FAA2F;QAC3F,gBAAgB;QAChB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAC3D,2FAA2F;YAC3F,kDAAkD,CACnD,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;YAChC,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACrD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,EAAE,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3B,IAAI,GAAQ,CAAC;YACb,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,4FAA4F,CAAC,CAAC;gBAClG,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI;gBAAE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;YACjF,+EAA+E;YAC/E,IAAI,GAAG,KAAK,KAAK;gBAAE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC;YACtG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;YAClF,IAAI,CAAC,oBAAoB,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,kEAAkE;QAClE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC;QACjG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;YAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,4FAA4F;QAC5F,4FAA4F;QAC5F,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,iFAAiF,CAAC,CAAC;YACvF,GAAG,CAAC,kFAAkF,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,gFAAgF,CAAC,CAAC;YACtF,GAAG,CAAC,wEAAwE,CAAC,CAAC;QAChF,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnB,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,aAAqB,EACrB,IAA4B,EAC5B,QAAgB,EAChB,YAAqB;IAErB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC,CAAC;IACH,MAAM,IAAI,GAAQ,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,iBAAiB,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI;QAChE,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,MAAc,EACd,WAAgC;IAEhC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAEjG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;QAC/C,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAEzC,8FAA8F;IAC9F,sEAAsE;IACtE,MAAM,MAAM,GAAW,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IAC3F,WAAW,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC"}
|
package/dist/preflight.js
CHANGED
|
@@ -37,6 +37,8 @@ export function loadMergeConfig(repo) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
const TIMEOUT_MS = 60_000;
|
|
40
|
+
/** An install is minutes on a monorepo, where a check is seconds. */
|
|
41
|
+
const INSTALL_TIMEOUT_MS = 10 * 60_000;
|
|
40
42
|
export function loadChecks(repo) {
|
|
41
43
|
const path = join(repo, '.flaredeck', 'agent.yaml');
|
|
42
44
|
if (!existsSync(path))
|
|
@@ -53,7 +55,7 @@ export function loadChecks(repo) {
|
|
|
53
55
|
return [];
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
|
-
function run(command, cwd) {
|
|
58
|
+
function run(command, cwd, timeoutMs = TIMEOUT_MS) {
|
|
57
59
|
return new Promise((resolve) => {
|
|
58
60
|
const child = spawn(command, { cwd, shell: true, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
59
61
|
let out = '';
|
|
@@ -62,14 +64,54 @@ function run(command, cwd) {
|
|
|
62
64
|
child.stdout.on('data', cap);
|
|
63
65
|
child.stderr.on('data', cap);
|
|
64
66
|
// A check that hangs is a failed check: the point is to be quick about it.
|
|
65
|
-
const timer = setTimeout(() => { child.kill('SIGKILL'); resolve({ code: 124, out: `${out}\n(timed out)` }); },
|
|
67
|
+
const timer = setTimeout(() => { child.kill('SIGKILL'); resolve({ code: 124, out: `${out}\n(timed out)` }); }, timeoutMs);
|
|
66
68
|
child.on('close', (code) => { clearTimeout(timer); resolve({ code: code ?? 1, out }); });
|
|
67
69
|
child.on('error', (e) => { clearTimeout(timer); resolve({ code: 1, out: String(e) }); });
|
|
68
70
|
});
|
|
69
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Install the project's dependencies if they are missing.
|
|
74
|
+
*
|
|
75
|
+
* A fresh worktree has tracked files and nothing else, so the first thing an agent needs is the
|
|
76
|
+
* one thing it cannot have: node_modules. One asked a person — "can you run npm install on CASE's
|
|
77
|
+
* and TARS's machines?" — which is a card stopped for hours on something mechanical that any
|
|
78
|
+
* machine can do for itself.
|
|
79
|
+
*
|
|
80
|
+
* It is the harness's job for the same reason the worktree is: it is the same every time, it has
|
|
81
|
+
* one right answer, and asking a model (or a person) to do it is asking for variety nobody wants.
|
|
82
|
+
*/
|
|
83
|
+
async function installDeps(repo, onStep) {
|
|
84
|
+
if (!existsSync(join(repo, 'package.json')))
|
|
85
|
+
return null;
|
|
86
|
+
if (existsSync(join(repo, 'node_modules')))
|
|
87
|
+
return null;
|
|
88
|
+
// `ci` is exact and fast but needs a lockfile that matches; `install` is the fallback.
|
|
89
|
+
const lock = existsSync(join(repo, 'package-lock.json'));
|
|
90
|
+
// --include=dev deliberately: the harness sets NODE_ENV=production for its own rendering, and
|
|
91
|
+
// anything inherited that leaves out devDependencies leaves the agent with no typecheck.
|
|
92
|
+
const cmd = lock ? 'npm ci --include=dev' : 'npm install --include=dev';
|
|
93
|
+
onStep('installing dependencies (fresh worktree)');
|
|
94
|
+
let { code, out } = await run(cmd, repo, INSTALL_TIMEOUT_MS);
|
|
95
|
+
if (code !== 0 && lock) {
|
|
96
|
+
// A lockfile out of step with package.json fails `ci` and nothing else. Worth one retry.
|
|
97
|
+
onStep('npm ci did not fit the lockfile — trying npm install');
|
|
98
|
+
({ code, out } = await run('npm install --include=dev', repo, INSTALL_TIMEOUT_MS));
|
|
99
|
+
}
|
|
100
|
+
onStep(code === 0 ? 'dependencies installed' : 'dependencies could NOT be installed');
|
|
101
|
+
return {
|
|
102
|
+
name: 'dependencies',
|
|
103
|
+
ok: code === 0,
|
|
104
|
+
fixed: code === 0,
|
|
105
|
+
detail: code === 0 ? '' : out.trim().split('\n').slice(-6).join('\n').slice(0, 600),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
70
108
|
export async function preflight(repo, onStep) {
|
|
71
109
|
const checks = loadChecks(repo);
|
|
72
110
|
const results = [];
|
|
111
|
+
// Before anything the project declares: nothing it declares can run without these.
|
|
112
|
+
const deps = await installDeps(repo, onStep);
|
|
113
|
+
if (deps)
|
|
114
|
+
results.push(deps);
|
|
73
115
|
for (const check of checks) {
|
|
74
116
|
let { code, out } = await run(check.run, repo);
|
|
75
117
|
let fixed = false;
|
package/dist/preflight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AA0C7B;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;QAC7D,OAAO,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QAC1D,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YACvC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YAC9D,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
|
package/dist/runs.d.ts
CHANGED
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
import type { RunTarget } from './config.js';
|
|
2
2
|
import type { Flaredeck } from './flaredeck.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Being stuck, as one tool.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* An agent that cannot get further has exactly one thing to reach for, and what it puts in the
|
|
7
|
+
* call decides what a person sees. Without a script it is a question: the card is flagged, the
|
|
8
|
+
* board's named answerer is told, and the session ends until somebody clears it. With a script
|
|
9
|
+
* it is a request: the script goes on the card as an approval, a person reads it and taps, and
|
|
10
|
+
* if they approve THE HARNESS runs it and hands the output back — the agent carries on in the
|
|
11
|
+
* same turn, holding no credential and having executed nothing itself.
|
|
11
12
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
13
|
+
* This was two tools, and the split was the problem rather than the solution. `set-needs-human`
|
|
14
|
+
* was the only escalation most agents ever saw, because the other one was mounted only on a
|
|
15
|
+
* machine with a production target configured — and none were. So an agent that needed one
|
|
16
|
+
* command run asked a person to go and type it on two machines, and waited. One tool with an
|
|
17
|
+
* optional script cannot have that failure: the script path is always there, and a shell on this
|
|
18
|
+
* machine is a target without anybody configuring one.
|
|
19
|
+
*
|
|
20
|
+
* What a person approves is what runs. The script is bound to the approval by its hash, and
|
|
21
|
+
* where it is an UPDATE or DELETE with a WHERE clause the harness derives a COUNT from that same
|
|
22
|
+
* clause and runs it first, so "would touch N rows" sits beside the script while they decide.
|
|
23
|
+
* That count is the harness's, from the agent's clause — the agent's own description of its own
|
|
24
|
+
* script is never enough on its own.
|
|
18
25
|
*/
|
|
19
26
|
export declare const RUN_TOOL_NAMES: string[];
|
|
27
|
+
/** The wire name on the approval request: what a lead reviews and what a restart resumes. */
|
|
28
|
+
export declare const SCRIPT_REQUEST = "run_script";
|
|
29
|
+
/**
|
|
30
|
+
* The target every machine has without anybody configuring one. No cwd, so it runs in the
|
|
31
|
+
* checkout of the card being worked — and a script may still leave it, because a person read
|
|
32
|
+
* the script before it ran.
|
|
33
|
+
*/
|
|
34
|
+
export declare const SHELL: RunTarget;
|
|
35
|
+
/** Configured targets, plus the shell. A configured `shell` wins — the machine's owner meant it. */
|
|
36
|
+
export declare const allTargets: (configured?: Record<string, RunTarget>) => Record<string, RunTarget>;
|
|
20
37
|
export type Current = {
|
|
38
|
+
/** The Firestore key, which is what the stream gives us. */
|
|
21
39
|
card: string;
|
|
22
40
|
cwd: string;
|
|
41
|
+
/** The board, which set-needs-human needs alongside a key. */
|
|
42
|
+
board?: string;
|
|
43
|
+
/** The human code, which resolves on its own and is the only one worth printing. */
|
|
44
|
+
code?: string;
|
|
23
45
|
};
|
|
24
46
|
/** What the harness is told while a request waits, so the pane can show and answer it. */
|
|
25
47
|
export type AskEvent = {
|
|
@@ -49,8 +71,15 @@ export declare function previewFor(script: string): string | null;
|
|
|
49
71
|
* on the card next time it looks.
|
|
50
72
|
*/
|
|
51
73
|
export declare function resumeApprovedRuns(targets: Record<string, RunTarget>, deck: Flaredeck, cwd: string, log: (text: string) => void): Promise<number>;
|
|
52
|
-
|
|
53
|
-
|
|
74
|
+
/** What the harness does on the agent's behalf once a person has to be involved. */
|
|
75
|
+
export type HumanHooks = {
|
|
76
|
+
/** Flag the card and tell whoever the board names. Returns who was told, when it says. */
|
|
77
|
+
flag: (reason: string, kind: string) => Promise<string | null>;
|
|
78
|
+
/** The card has been answered, so it is no longer waiting on anybody. */
|
|
79
|
+
unflag: () => Promise<void>;
|
|
80
|
+
};
|
|
81
|
+
export declare function runTools(configured: Record<string, RunTarget>, current: () => Current | null, deck: Flaredeck | null, log: (text: string) => void, human: HumanHooks,
|
|
82
|
+
/** This agent's lead, when it has one: a script goes there first, and a person is asked only if the lead endorses it. */
|
|
54
83
|
lead?: () => string | null,
|
|
55
84
|
/** The pane, told when a request is posted and when it is answered. */
|
|
56
85
|
onAsk?: (e: AskEvent) => void): {
|
package/dist/runs.js
CHANGED
|
@@ -5,22 +5,42 @@ import { sdkServer } from './localmcp.js';
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { flaredeckDecider } from './approval.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Being stuck, as one tool.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* An agent that cannot get further has exactly one thing to reach for, and what it puts in the
|
|
11
|
+
* call decides what a person sees. Without a script it is a question: the card is flagged, the
|
|
12
|
+
* board's named answerer is told, and the session ends until somebody clears it. With a script
|
|
13
|
+
* it is a request: the script goes on the card as an approval, a person reads it and taps, and
|
|
14
|
+
* if they approve THE HARNESS runs it and hands the output back — the agent carries on in the
|
|
15
|
+
* same turn, holding no credential and having executed nothing itself.
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* This was two tools, and the split was the problem rather than the solution. `set-needs-human`
|
|
18
|
+
* was the only escalation most agents ever saw, because the other one was mounted only on a
|
|
19
|
+
* machine with a production target configured — and none were. So an agent that needed one
|
|
20
|
+
* command run asked a person to go and type it on two machines, and waited. One tool with an
|
|
21
|
+
* optional script cannot have that failure: the script path is always there, and a shell on this
|
|
22
|
+
* machine is a target without anybody configuring one.
|
|
23
|
+
*
|
|
24
|
+
* What a person approves is what runs. The script is bound to the approval by its hash, and
|
|
25
|
+
* where it is an UPDATE or DELETE with a WHERE clause the harness derives a COUNT from that same
|
|
26
|
+
* clause and runs it first, so "would touch N rows" sits beside the script while they decide.
|
|
27
|
+
* That count is the harness's, from the agent's clause — the agent's own description of its own
|
|
28
|
+
* script is never enough on its own.
|
|
29
|
+
*/
|
|
30
|
+
export const RUN_TOOL_NAMES = ['mcp__human__set-needs-human'];
|
|
31
|
+
/** The wire name on the approval request: what a lead reviews and what a restart resumes. */
|
|
32
|
+
export const SCRIPT_REQUEST = 'run_script';
|
|
33
|
+
/**
|
|
34
|
+
* The target every machine has without anybody configuring one. No cwd, so it runs in the
|
|
35
|
+
* checkout of the card being worked — and a script may still leave it, because a person read
|
|
36
|
+
* the script before it ran.
|
|
22
37
|
*/
|
|
23
|
-
export const
|
|
38
|
+
export const SHELL = {
|
|
39
|
+
command: ['bash', '-lc', '{script}'],
|
|
40
|
+
about: 'a shell on this machine, starting in your checkout',
|
|
41
|
+
};
|
|
42
|
+
/** Configured targets, plus the shell. A configured `shell` wins — the machine's owner meant it. */
|
|
43
|
+
export const allTargets = (configured = {}) => ({ shell: SHELL, ...configured });
|
|
24
44
|
/** Long enough for a person on a phone; a run that nobody answers is not run. */
|
|
25
45
|
const RUN_APPROVAL_MS = 60 * 60 * 1000;
|
|
26
46
|
const OUTPUT_CAP = 6000;
|
|
@@ -100,7 +120,7 @@ export async function resumeApprovedRuns(targets, deck, cwd, log) {
|
|
|
100
120
|
return 0;
|
|
101
121
|
}
|
|
102
122
|
for (const a of owed) {
|
|
103
|
-
if (a.tool_name !==
|
|
123
|
+
if (a.tool_name !== SCRIPT_REQUEST)
|
|
104
124
|
continue;
|
|
105
125
|
const desc = a.description || '';
|
|
106
126
|
const name = desc.split('"')[1] ?? a.request_id;
|
|
@@ -124,54 +144,70 @@ export async function resumeApprovedRuns(targets, deck, cwd, log) {
|
|
|
124
144
|
}
|
|
125
145
|
return n;
|
|
126
146
|
}
|
|
127
|
-
export function runTools(
|
|
128
|
-
/** This agent's lead, when it has one:
|
|
147
|
+
export function runTools(configured, current, deck, log, human,
|
|
148
|
+
/** This agent's lead, when it has one: a script goes there first, and a person is asked only if the lead endorses it. */
|
|
129
149
|
lead = () => null,
|
|
130
150
|
/** The pane, told when a request is posted and when it is answered. */
|
|
131
151
|
onAsk = () => { }) {
|
|
152
|
+
const targets = allTargets(configured);
|
|
132
153
|
const names = Object.keys(targets);
|
|
133
154
|
const list = names.map((n) => ` · ${n}${targets[n].about ? ` — ${targets[n].about}` : ''}`).join('\n');
|
|
134
155
|
const server = sdkServer({
|
|
135
|
-
name: '
|
|
156
|
+
name: 'human',
|
|
136
157
|
version: '1.0.0',
|
|
137
158
|
tools: [
|
|
138
|
-
tool('
|
|
139
|
-
'
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
143
|
-
'
|
|
144
|
-
'it is
|
|
145
|
-
'
|
|
146
|
-
'
|
|
147
|
-
'
|
|
148
|
-
'
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
159
|
+
tool('set-needs-human', 'Stop and involve a person. This is the ONLY way to do that, and what you put in it ' +
|
|
160
|
+
'decides what they get.\n\n' +
|
|
161
|
+
'Without `script` it is a question. The card is flagged, whoever the board names for this ' +
|
|
162
|
+
'kind of thing is told, and your turn ends — you are not waiting, and you do not carry on ' +
|
|
163
|
+
'without the answer. Use it for what only a person can supply: a decision, a credential, ' +
|
|
164
|
+
'access that does not exist.\n\n' +
|
|
165
|
+
'With `script` it is a request to RUN something. A person reads the script itself and ' +
|
|
166
|
+
'approves or denies it; if they approve, the HARNESS runs it and gives you the output, and ' +
|
|
167
|
+
'you carry on in this same turn. Use it when the thing you need is a command, in a place ' +
|
|
168
|
+
'you cannot reach — a live database, a deployed service, a checkout that is not yours. ' +
|
|
169
|
+
'You never hold the credential and you never run it. If you report to a lead, the lead ' +
|
|
170
|
+
'reads the script first and only an endorsed request reaches a person. A denial is final ' +
|
|
171
|
+
'for that script: do not send it again unchanged.\n\n' +
|
|
172
|
+
'What does NOT belong here: anything inside your own checkout. Installing dependencies, ' +
|
|
173
|
+
'building, running the tests, starting the app — you have the shell, do it yourself. ' +
|
|
174
|
+
'Asking a person to type a command you could have typed costs them an hour and you the ' +
|
|
175
|
+
'card.\n\nPlaces a script can run:\n' + list, {
|
|
176
|
+
reason: z.string().describe('What you need and why, in plain sentences, for the person reading it.'),
|
|
177
|
+
kind: z
|
|
178
|
+
.enum(['technical', 'product', 'access', 'information', 'business'])
|
|
179
|
+
.describe('What sort of thing this is, so it reaches the right person: technical, product, access, information, or business.'),
|
|
180
|
+
script: z.string().optional().describe('The exact script, when what you need is something RUN. What is approved is what runs, byte for byte. Leave it out if you are asking a question.'),
|
|
181
|
+
where: z.string().optional().describe(`Which place the script runs in. One of: ${names.join(', ')}. Defaults to shell.`),
|
|
182
|
+
expected_effect: z.string().optional().describe('With a script: what you expect it to change or return, e.g. "1 row inserted" or "returns ~5 rows".'),
|
|
183
|
+
}, async ({ reason, kind, script, where, expected_effect }) => {
|
|
158
184
|
const cur = current();
|
|
159
185
|
if (!cur)
|
|
160
|
-
return say('There is no card being worked, so there is
|
|
186
|
+
return say('There is no card being worked, so there is nobody to ask about it.', true);
|
|
161
187
|
if (!deck)
|
|
162
|
-
return say('This harness has no FlareDeck credentials of its own, so it cannot
|
|
163
|
-
const body = script.trim();
|
|
164
|
-
|
|
165
|
-
|
|
188
|
+
return say('This harness has no FlareDeck credentials of its own, so it cannot reach a person.', true);
|
|
189
|
+
const body = (script ?? '').trim();
|
|
190
|
+
// A question. The card is flagged and the turn is over — nothing here waits.
|
|
191
|
+
if (!body) {
|
|
192
|
+
const told = await human.flag(reason, kind);
|
|
193
|
+
return say(`Flagged for a person.${told ? ` ${told}` : ''}\n\nEnd your turn now. You are not waiting for ` +
|
|
194
|
+
`this — the card comes back to you when somebody clears it, and whatever you have done so ` +
|
|
195
|
+
`far should be committed and said on the card before you stop.`);
|
|
196
|
+
}
|
|
197
|
+
const name = where?.trim() || 'shell';
|
|
198
|
+
const t = targets[name];
|
|
199
|
+
if (!t)
|
|
200
|
+
return say(`There is no place called "${name}" to run a script. Places: ${names.join(', ')}.`, true);
|
|
166
201
|
if (body.length > 18_000)
|
|
167
202
|
return say(`The script is ${body.length} characters; the approval record holds 18,000. Split it into smaller runs, each reviewed on its own.`, true);
|
|
168
203
|
const hash = createHash('sha256').update(body).digest('hex').slice(0, 12);
|
|
204
|
+
const label = reason.trim().split('\n')[0].slice(0, 60);
|
|
169
205
|
// The harness's own check, before anyone is asked. Read-only by construction.
|
|
170
206
|
let previewNote = '';
|
|
171
207
|
let previewLine = '';
|
|
172
208
|
const preview = previewFor(body);
|
|
173
209
|
if (preview) {
|
|
174
|
-
log(`preview for ${
|
|
210
|
+
log(`preview for ${label}: ${preview}`);
|
|
175
211
|
const p = await exec(t, preview, cur.cwd);
|
|
176
212
|
previewLine = p.code === 0
|
|
177
213
|
? `would touch: ${p.out.split('\n').slice(-1)[0]?.trim() || '?'}`
|
|
@@ -180,6 +216,9 @@ onAsk = () => { }) {
|
|
|
180
216
|
? `-- harness preview (${preview}):\n-- ${p.out.split('\n').slice(-3).join(' | ')}\n\n`
|
|
181
217
|
: `-- harness preview FAILED (exit ${p.code}): ${p.out.split('\n').slice(0, 2).join(' ')}\n\n`;
|
|
182
218
|
}
|
|
219
|
+
// Flagged as well as asked. The approval raises its own push, but the flag is what puts
|
|
220
|
+
// the card in a person's "Needs you" list — which is where they actually look.
|
|
221
|
+
const told = await human.flag(reason, kind);
|
|
183
222
|
// Same request shape and same wait loop as every other approval: renders with
|
|
184
223
|
// Approve/Deny, raises the push, and accepts a typed `approve <id>`.
|
|
185
224
|
const leadId = lead();
|
|
@@ -190,24 +229,26 @@ onAsk = () => { }) {
|
|
|
190
229
|
}, (p) => {
|
|
191
230
|
posted = p;
|
|
192
231
|
onAsk({
|
|
193
|
-
kind: 'asking', requestId: p.request_id, commentId: p.comment_id, name, target,
|
|
194
|
-
purpose:
|
|
232
|
+
kind: 'asking', requestId: p.request_id, commentId: p.comment_id, name: label, target: name,
|
|
233
|
+
purpose: reason.trim(), ...(previewLine ? { preview: previewLine } : {}), script: body, withLead: !!leadId,
|
|
195
234
|
});
|
|
196
235
|
});
|
|
197
|
-
log(leadId ? `asking the lead to review ${name}` : `asking for approval
|
|
236
|
+
log(leadId ? `asking the lead to review a script on ${name}` : `asking for approval to run a script on ${name}${told ? ` · ${told}` : ''}`);
|
|
198
237
|
const verdict = await ask({
|
|
199
|
-
toolName:
|
|
238
|
+
toolName: SCRIPT_REQUEST,
|
|
200
239
|
input: {
|
|
201
|
-
description: `
|
|
240
|
+
description: `SCRIPT "${label}" on ${name} — ${reason.trim()}${expected_effect ? ` Expected: ${expected_effect.trim()}` : ''} [${hash}]`,
|
|
202
241
|
command: `${previewNote}${body}`,
|
|
203
242
|
whole: true,
|
|
204
243
|
},
|
|
205
244
|
}, { signal: new AbortController().signal });
|
|
206
245
|
onAsk({ kind: 'answered', requestId: hash });
|
|
246
|
+
// Answered either way, so the card is no longer waiting on anybody.
|
|
247
|
+
await human.unflag();
|
|
207
248
|
if (!verdict.allow)
|
|
208
249
|
return say(`Not run. ${verdict.reason}`, true);
|
|
209
|
-
const r = await runAndReport(t, { commentId: posted?.comment_id ?? '', card: cur.card, cwd: cur.cwd, name, target, script: body, hash }, deck, log);
|
|
210
|
-
return say(`${r.code === 0 ? 'Ran' : `FAILED (exit ${r.code})`}
|
|
250
|
+
const r = await runAndReport(t, { commentId: posted?.comment_id ?? '', card: cur.card, cwd: cur.cwd, name: label, target: name, script: body, hash }, deck, log);
|
|
251
|
+
return say(`${r.code === 0 ? 'Ran' : `FAILED (exit ${r.code})`} on ${name}. Output:\n${r.out || '(no output)'}`, r.code !== 0);
|
|
211
252
|
}),
|
|
212
253
|
],
|
|
213
254
|
});
|
package/dist/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|