teamshare-bridge 0.21.51 → 0.21.53
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/cli/commands/plan.js +27 -0
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/lib/harness/session-store.d.ts +8 -1
- package/dist/lib/harness/session-store.js +24 -1
- package/dist/lib/harness/session-store.js.map +1 -1
- package/dist/lib/tools/qr-generator.js +7 -2
- package/dist/lib/tools/qr-generator.js.map +1 -1
- package/package.json +1 -1
|
@@ -126,7 +126,27 @@ async function cmdPlan(flags) {
|
|
|
126
126
|
log = (0, utils_1.makeLog)(reporter);
|
|
127
127
|
(0, utils_1.applyOpenCodeKey)(agentId, log, settings);
|
|
128
128
|
let summary = '';
|
|
129
|
+
let claimedTaskId;
|
|
130
|
+
let claimRenewalTimer;
|
|
129
131
|
try {
|
|
132
|
+
// Claim the task so the frontend banner shows "Agent is working" during planning.
|
|
133
|
+
try {
|
|
134
|
+
const claim = await api.claimTask(taskId);
|
|
135
|
+
claimedTaskId = taskId;
|
|
136
|
+
log(`[claim] task ${taskId} claimed - lease until ${claim.claimExpiresAt}`);
|
|
137
|
+
claimRenewalTimer = setInterval(() => {
|
|
138
|
+
if (!claimedTaskId)
|
|
139
|
+
return;
|
|
140
|
+
void api.renewClaim(claimedTaskId).catch(() => {
|
|
141
|
+
log(`[claim] renewal failed for ${claimedTaskId} — claim may have expired`, 'stderr');
|
|
142
|
+
claimedTaskId = undefined;
|
|
143
|
+
});
|
|
144
|
+
}, 5 * 60 * 1000);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
const e = err;
|
|
148
|
+
log(`[claim] warning: could not claim task ${taskId}: ${e.message ?? e.code}`, 'stderr');
|
|
149
|
+
}
|
|
130
150
|
await (0, brief_1.reportStatus)(api, agentId, 'working', taskId, sessionId);
|
|
131
151
|
// Plan-run tracking (2026-09): count the pass on the hub + stamp the start.
|
|
132
152
|
await api
|
|
@@ -195,6 +215,13 @@ async function cmdPlan(flags) {
|
|
|
195
215
|
process.exitCode = 1;
|
|
196
216
|
}
|
|
197
217
|
finally {
|
|
218
|
+
// Release the claim so the frontend banner clears.
|
|
219
|
+
if (claimRenewalTimer)
|
|
220
|
+
clearInterval(claimRenewalTimer);
|
|
221
|
+
if (claimedTaskId) {
|
|
222
|
+
await api.releaseTask(claimedTaskId).catch(() => undefined);
|
|
223
|
+
log(`[claim] task ${claimedTaskId} released`);
|
|
224
|
+
}
|
|
198
225
|
// Plan-run tracking (2026-09): always report the pass outcome. A successful
|
|
199
226
|
// pass sets the definitive `plannedAt` marker on the hub; a failure stores
|
|
200
227
|
// the reason. Best-effort - never masks the real exit code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,0BAiLC;AAED,4BAEC;AAlPD;;;;;;;GAOG;AACH,qCAAmD;AACnD,yCAAiC;AACjC,uCAA6C;AAC7C,2CAAmE;AACnE,2CAAkD;AAClD,yCAA0D;AAC1D,oEAAgE;AAChE,kEAA6D;AAC7D,6CAAuC;AACvC,oCAKkB;AAClB,uCAAyC;AACzC,qCAA6C;AAE7C,SAAS,eAAe,CACtB,IAQC,EACD,WAAmB;IAEnB,OAAO,CACL,qJAAqJ;QACrJ,WAAW;QACX,kBAAkB,WAAW,IAAI;QACjC,kBAAkB,IAAI,CAAC,EAAE,IAAI;QAC7B,gBAAgB,IAAI,CAAC,KAAK,IAAI;QAC9B,iBAAiB,IAAI,CAAC,MAAM,oBAAoB,IAAI,CAAC,QAAQ,IAAI;QACjE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,6BAA6B,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,QAAQ,IAAI;QACrE,qCAAqC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,QAAQ,IAAI;QACpF,+BAA+B;QAC/B,uHAAuH;QACvH,qIAAqI;QACrI,sEAAsE;QACtE,oFAAoF;QACpF,0VAA0V;QAC1V,sKAAsK;QACtK,oFAAoF,IAAI,CAAC,EAAE,4CAA4C;QACvI,8IAA8I;QAC9I,2HAA2H,CAC5H,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,KAA0B;IACtD,MAAM,OAAO,GAAG,IAAA,YAAI,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAA,YAAI,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,kBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3E,IAAI,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAkB,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5E,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,CAAC,wDAAa,sBAAsB,GAAC,CAAC,CAAC,YAAY,CACvE,IAAA,eAAO,EAAC,KAAK,EAAE,QAAQ,CAAC,EACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CACzB,CAAC;IACF,IAAI,aAAa,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC1C,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnD,GAAG,CAAC,4BAA4B,MAAM,KAAK,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;IACzD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC;IAC5D,MAAM,UAAU,GAAG,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC;IAEvD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC;QAClC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAA,6BAAY,GAAE;QACjD,OAAO;QACP,IAAI,EAAE,KAAK;QACX,SAAS;KACV,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAW,EAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE;QAC1D,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,gBAAgB,OAAO,uBAAuB,CAAC;KACrE,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,GAAG,GAAG,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC;IACxB,IAAA,wBAAgB,EAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEzC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,aAAiC,CAAC;IACtC,IAAI,iBAA6C,CAAC;IAElD,IAAI,CAAC;QACH,kFAAkF;QAClF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,aAAa,GAAG,MAAM,CAAC;YACvB,GAAG,CAAC,gBAAgB,MAAM,0BAA0B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YAC5E,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAC3B,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBAC5C,GAAG,CAAC,8BAA8B,aAAa,2BAA2B,EAAE,QAAQ,CAAC,CAAC;oBACtF,aAAa,GAAG,SAAS,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAA0C,CAAC;YACrD,GAAG,CAAC,yCAAyC,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,4EAA4E;QAC5E,MAAM,GAAG;aACN,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAA,eAAO,EAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;aAC7E,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAErD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC;gBACH,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxE,IAAA,uBAAa,EACX,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EACzD,MAAM,EACN,MAAM,CACP,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;gBACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,EAChC,GAAG,EACH,MAAM,EACN,MAAM,EACN;gBACE,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,SAAS,EAAE,OAAO;gBAClB,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,gCAAgC,WAAW,uBAAuB;gBAC5H,WAAW,EAAE,IAAA,qBAAa,EAAC,KAAK,EAAE,QAAQ,CAAC;gBAC3C,SAAS,EAAE,IAAA,mBAAW,EAAC,KAAK,EAAE,QAAQ,CAAC;gBACvC,WAAW,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;aAC1C,EACD,SAAS,CACV,CAAC;YACF,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gCAAgC,MAAM,CAAC,UAAU,cAAc,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,MAAM,IAAA,sBAAY,EAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;gBAClD,KAAK,EAAE,IAAA,eAAO,EAAC,KAAK,EAAE,QAAQ,CAAC;gBAC/B,WAAW,EAAE,IAAA,qBAAa,EAAC,KAAK,EAAE,QAAQ,CAAC;gBAC3C,MAAM,EAAE,IAAA,gBAAQ,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAA,qBAAa,EAAC,OAAO,CAAC;gBAC3D,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;gBACzB,UAAU,EAAE,IAAA,yBAAiB,EAAC,KAAK,CAAC;gBACpC,KAAK,EAAE,aAAa,MAAM,EAAE;gBAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM;gBACpB,UAAU,EAAE,GAAG,CAAC,OAAO;gBACvB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;gBAC9C,WAAW,EAAE,KAAK;gBAClB,SAAS;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC/C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM;gBACpC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM;aACnC,CAAC,CAAC;YACH,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,2BAA2B,QAAQ,GAAG,CAAC;QAChG,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,MAAM,EAAE,UAAU,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9D,GAAG,CAAC,eAAe,MAAM,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,iBAAiB,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,mDAAmD;QACnD,IAAI,iBAAiB;YAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5D,GAAG,CAAC,gBAAgB,aAAa,WAAW,CAAC,CAAC;QAChD,CAAC;QACD,4EAA4E;QAC5E,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAC/D,MAAM,GAAG;aACN,aAAa,CAAC,MAAM,EAAE;YACrB,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACrC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS;SACjD,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;QACrB,MAAM,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -15,7 +15,14 @@ export interface HarnessSessionRecord {
|
|
|
15
15
|
attempts: number;
|
|
16
16
|
lastError?: string;
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Load a record when valid for this harness + cwd; otherwise null (fresh).
|
|
20
|
+
*
|
|
21
|
+
* Session continuity (2026-09): when loading for `build` mode and no build
|
|
22
|
+
* session exists, fall back to the `plan` session so the build harness resumes
|
|
23
|
+
* the planning context (the agent already explored the codebase, wrote a plan,
|
|
24
|
+
* and left breadcrumbs — starting fresh would lose that work).
|
|
25
|
+
*/
|
|
19
26
|
export declare function loadHarnessSession(agentId: string, taskId: string, mode: string, harness: string, cwd: string): HarnessSessionRecord | null;
|
|
20
27
|
/** Persist a record (best-effort). */
|
|
21
28
|
export declare function saveHarnessSession(rec: HarnessSessionRecord): void;
|
|
@@ -23,8 +23,31 @@ const STORE_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.teamshare',
|
|
|
23
23
|
function recordPath(agentId, taskId, mode) {
|
|
24
24
|
return (0, node_path_1.join)(STORE_DIR, agentId, `${taskId}.${mode}.json`);
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Load a record when valid for this harness + cwd; otherwise null (fresh).
|
|
28
|
+
*
|
|
29
|
+
* Session continuity (2026-09): when loading for `build` mode and no build
|
|
30
|
+
* session exists, fall back to the `plan` session so the build harness resumes
|
|
31
|
+
* the planning context (the agent already explored the codebase, wrote a plan,
|
|
32
|
+
* and left breadcrumbs — starting fresh would lose that work).
|
|
33
|
+
*/
|
|
27
34
|
function loadHarnessSession(agentId, taskId, mode, harness, cwd) {
|
|
35
|
+
const rec = loadRecord(agentId, taskId, mode, harness, cwd);
|
|
36
|
+
if (rec)
|
|
37
|
+
return rec;
|
|
38
|
+
// Build-mode fallback: resume the plan session if no build session exists.
|
|
39
|
+
if (mode === 'build') {
|
|
40
|
+
const planRec = loadRecord(agentId, taskId, 'plan', harness, cwd);
|
|
41
|
+
if (planRec) {
|
|
42
|
+
// Mutate the mode so the caller sees it as a build session (the
|
|
43
|
+
// saveHarnessSession call after resume will persist it under `build`).
|
|
44
|
+
planRec.mode = 'build';
|
|
45
|
+
return planRec;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
function loadRecord(agentId, taskId, mode, harness, cwd) {
|
|
28
51
|
try {
|
|
29
52
|
const raw = (0, node_fs_1.readFileSync)(recordPath(agentId, taskId, mode), 'utf8');
|
|
30
53
|
const rec = JSON.parse(raw);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/lib/harness/session-store.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/lib/harness/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,11 @@ const ERROR_CORRECTION_MAP = {
|
|
|
16
16
|
quartile: 'Q',
|
|
17
17
|
high: 'H',
|
|
18
18
|
};
|
|
19
|
+
const HEX_RE = /^#[0-9a-fA-F]{6}$/;
|
|
20
|
+
/** Validate and normalise a hex colour; falls back to the provided default. */
|
|
21
|
+
function sanitiseHex(raw, fallback) {
|
|
22
|
+
return HEX_RE.test(raw) ? raw.toLowerCase() : fallback;
|
|
23
|
+
}
|
|
19
24
|
class QrGeneratorTool {
|
|
20
25
|
key = 'qr-generator';
|
|
21
26
|
async run(params) {
|
|
@@ -25,8 +30,8 @@ class QrGeneratorTool {
|
|
|
25
30
|
}
|
|
26
31
|
const width = params.width ? Number(params.width) : 300;
|
|
27
32
|
const errorCorrection = ERROR_CORRECTION_MAP[String(params.errorCorrection ?? 'medium')] ?? 'M';
|
|
28
|
-
const foreground = String(params.foreground ?? '#000000');
|
|
29
|
-
const background = String(params.background ?? '#ffffff');
|
|
33
|
+
const foreground = sanitiseHex(String(params.foreground ?? ''), '#000000');
|
|
34
|
+
const background = sanitiseHex(String(params.background ?? ''), '#ffffff');
|
|
30
35
|
const margin = params.margin !== undefined ? Number(params.margin) : 4;
|
|
31
36
|
// Validate dimensions
|
|
32
37
|
if (width < 100 || width > 2000) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qr-generator.js","sourceRoot":"","sources":["../../../src/lib/tools/qr-generator.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,oDAA4B;AAG5B,MAAM,oBAAoB,GAA0C;IAClE,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAa,eAAe;IAC1B,GAAG,GAAG,cAAc,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,MAA+B;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;QAChG,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"qr-generator.js","sourceRoot":"","sources":["../../../src/lib/tools/qr-generator.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,oDAA4B;AAG5B,MAAM,oBAAoB,GAA0C;IAClE,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,+EAA+E;AAC/E,SAAS,WAAW,CAAC,GAAW,EAAE,QAAgB;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,MAAa,eAAe;IAC1B,GAAG,GAAG,cAAc,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,MAA+B;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;QAChG,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,sBAAsB;QACtB,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC5C,IAAI,EAAE,KAAK;YACX,KAAK;YACL,oBAAoB,EAAE,eAAe;YACrC,MAAM;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;aAClB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,MAAM;oBACN,QAAQ,EAAE,aAAa;oBACvB,IAAI,EAAE,WAAW;iBAClB;aACF;YACD,GAAG,EAAE;gBACH,mBAAmB;gBACnB,YAAY,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC1E,SAAS,KAAK,IAAI,KAAK,IAAI;gBAC3B,qBAAqB,eAAe,EAAE;gBACtC,YAAY,UAAU,OAAO,UAAU,EAAE;aAC1C;SACF,CAAC;IACJ,CAAC;CACF;AAhDD,0CAgDC"}
|
package/package.json
CHANGED