cli-jaw 2.2.2 → 2.2.3
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/README.ja.md +13 -9
- package/README.ko.md +5 -5
- package/README.md +7 -6
- package/README.zh-CN.md +5 -5
- package/dist/bin/commands/goal.js +14 -1
- package/dist/bin/commands/goal.js.map +1 -1
- package/dist/src/agent/agy-bootstrap.js +104 -0
- package/dist/src/agent/agy-bootstrap.js.map +1 -0
- package/dist/src/agent/agy-capabilities.js +103 -0
- package/dist/src/agent/agy-capabilities.js.map +1 -0
- package/dist/src/agent/agy-transcript-watcher.js +11 -0
- package/dist/src/agent/agy-transcript-watcher.js.map +1 -1
- package/dist/src/agent/args.js +32 -13
- package/dist/src/agent/args.js.map +1 -1
- package/dist/src/agent/events/claude.js +8 -4
- package/dist/src/agent/events/claude.js.map +1 -1
- package/dist/src/agent/events/helpers.js +13 -0
- package/dist/src/agent/events/helpers.js.map +1 -1
- package/dist/src/agent/events/index.js +24 -4
- package/dist/src/agent/events/index.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +25 -4
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/spawn/queue.js +11 -5
- package/dist/src/agent/spawn/queue.js.map +1 -1
- package/dist/src/agent/spawn.js +49 -13
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/browser/web-ai/ax-snapshot.js +131 -8
- package/dist/src/browser/web-ai/ax-snapshot.js.map +1 -1
- package/dist/src/browser/web-ai/candidate-reconcile.js +61 -0
- package/dist/src/browser/web-ai/candidate-reconcile.js.map +1 -0
- package/dist/src/browser/web-ai/capability-probe.js +92 -0
- package/dist/src/browser/web-ai/capability-probe.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-archive.js +90 -0
- package/dist/src/browser/web-ai/chatgpt-archive.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-attachments.js +70 -3
- package/dist/src/browser/web-ai/chatgpt-attachments.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-composer.js +97 -11
- package/dist/src/browser/web-ai/chatgpt-composer.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-deep-research-report.js +63 -0
- package/dist/src/browser/web-ai/chatgpt-deep-research-report.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-deep-research.js +76 -13
- package/dist/src/browser/web-ai/chatgpt-deep-research.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-files.js +328 -0
- package/dist/src/browser/web-ai/chatgpt-files.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-images.js +281 -0
- package/dist/src/browser/web-ai/chatgpt-images.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-model.js +35 -14
- package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-multi-turn.js +28 -4
- package/dist/src/browser/web-ai/chatgpt-multi-turn.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-project-sources.js +191 -0
- package/dist/src/browser/web-ai/chatgpt-project-sources.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-response-dom.js +64 -0
- package/dist/src/browser/web-ai/chatgpt-response-dom.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-response-observer.js +170 -0
- package/dist/src/browser/web-ai/chatgpt-response-observer.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt-response.js +99 -60
- package/dist/src/browser/web-ai/chatgpt-response.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-tools.js +48 -1
- package/dist/src/browser/web-ai/chatgpt-tools.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-upload-surface.js +202 -0
- package/dist/src/browser/web-ai/chatgpt-upload-surface.js.map +1 -0
- package/dist/src/browser/web-ai/chatgpt.js +93 -12
- package/dist/src/browser/web-ai/chatgpt.js.map +1 -1
- package/dist/src/browser/web-ai/code-artifact.js +32 -10
- package/dist/src/browser/web-ai/code-artifact.js.map +1 -1
- package/dist/src/browser/web-ai/code-mode.js +40 -4
- package/dist/src/browser/web-ai/code-mode.js.map +1 -1
- package/dist/src/browser/web-ai/contract-audit.js +7 -22
- package/dist/src/browser/web-ai/contract-audit.js.map +1 -1
- package/dist/src/browser/web-ai/control-summary.js +43 -0
- package/dist/src/browser/web-ai/control-summary.js.map +1 -0
- package/dist/src/browser/web-ai/copy-markdown.js +10 -0
- package/dist/src/browser/web-ai/copy-markdown.js.map +1 -1
- package/dist/src/browser/web-ai/diagnostics.js +7 -0
- package/dist/src/browser/web-ai/diagnostics.js.map +1 -1
- package/dist/src/browser/web-ai/errors.js +17 -0
- package/dist/src/browser/web-ai/errors.js.map +1 -1
- package/dist/src/browser/web-ai/gemini-capabilities.js +46 -0
- package/dist/src/browser/web-ai/gemini-capabilities.js.map +1 -0
- package/dist/src/browser/web-ai/gemini-live.js +6 -0
- package/dist/src/browser/web-ai/gemini-live.js.map +1 -1
- package/dist/src/browser/web-ai/gemini-model.js +41 -0
- package/dist/src/browser/web-ai/gemini-model.js.map +1 -1
- package/dist/src/browser/web-ai/grok-capabilities.js +41 -0
- package/dist/src/browser/web-ai/grok-capabilities.js.map +1 -0
- package/dist/src/browser/web-ai/grok-live.js +5 -0
- package/dist/src/browser/web-ai/grok-live.js.map +1 -1
- package/dist/src/browser/web-ai/grok-model.js +38 -0
- package/dist/src/browser/web-ai/grok-model.js.map +1 -1
- package/dist/src/browser/web-ai/index.js +10 -0
- package/dist/src/browser/web-ai/index.js.map +1 -1
- package/dist/src/browser/web-ai/navigation-ready.js +123 -0
- package/dist/src/browser/web-ai/navigation-ready.js.map +1 -0
- package/dist/src/browser/web-ai/observation-bundle.js +26 -1
- package/dist/src/browser/web-ai/observation-bundle.js.map +1 -1
- package/dist/src/browser/web-ai/provider-adapter.js.map +1 -1
- package/dist/src/browser/web-ai/session-artifacts.js +156 -0
- package/dist/src/browser/web-ai/session-artifacts.js.map +1 -0
- package/dist/src/browser/web-ai/session-doctor.js +101 -0
- package/dist/src/browser/web-ai/session-doctor.js.map +1 -0
- package/dist/src/browser/web-ai/session-store.js +94 -17
- package/dist/src/browser/web-ai/session-store.js.map +1 -1
- package/dist/src/browser/web-ai/session.js +73 -0
- package/dist/src/browser/web-ai/session.js.map +1 -1
- package/dist/src/browser/web-ai/tab-inspect.js +143 -0
- package/dist/src/browser/web-ai/tab-inspect.js.map +1 -0
- package/dist/src/browser/web-ai/tab-lease-store.js +114 -4
- package/dist/src/browser/web-ai/tab-lease-store.js.map +1 -1
- package/dist/src/browser/web-ai/tier-timeout.js +58 -0
- package/dist/src/browser/web-ai/tier-timeout.js.map +1 -0
- package/dist/src/browser/web-ai/vendor-editor-contract.js +6 -3
- package/dist/src/browser/web-ai/vendor-editor-contract.js.map +1 -1
- package/dist/src/browser/web-ai/watcher-lock.js +125 -0
- package/dist/src/browser/web-ai/watcher-lock.js.map +1 -0
- package/dist/src/browser/web-ai/watcher.js +23 -4
- package/dist/src/browser/web-ai/watcher.js.map +1 -1
- package/dist/src/cli/handlers-workflows.js +14 -3
- package/dist/src/cli/handlers-workflows.js.map +1 -1
- package/dist/src/core/cli-detection.js +2 -3
- package/dist/src/core/cli-detection.js.map +1 -1
- package/dist/src/core/settings-merge.js +2 -2
- package/dist/src/core/settings-merge.js.map +1 -1
- package/dist/src/goal/heartbeat.js +13 -7
- package/dist/src/goal/heartbeat.js.map +1 -1
- package/dist/src/goal/pause-gate.js +22 -0
- package/dist/src/goal/pause-gate.js.map +1 -0
- package/dist/src/goal/store.js +5 -0
- package/dist/src/goal/store.js.map +1 -1
- package/dist/src/manager/lifecycle.js +2 -1
- package/dist/src/manager/lifecycle.js.map +1 -1
- package/dist/src/manager/preview-origin-proxy.js +36 -6
- package/dist/src/manager/preview-origin-proxy.js.map +1 -1
- package/dist/src/manager/proxy.js +25 -4
- package/dist/src/manager/proxy.js.map +1 -1
- package/dist/src/manager/registry.js +36 -3
- package/dist/src/manager/registry.js.map +1 -1
- package/dist/src/manager/routes/runtime-monitor.js +2 -0
- package/dist/src/manager/routes/runtime-monitor.js.map +1 -1
- package/dist/src/manager/routes/telegram-hub.js +120 -0
- package/dist/src/manager/routes/telegram-hub.js.map +1 -0
- package/dist/src/manager/server.js +4 -0
- package/dist/src/manager/server.js.map +1 -1
- package/dist/src/manager/telegram-hub/hub-bot.js +409 -0
- package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -0
- package/dist/src/manager/telegram-hub/routing-store.js +24 -0
- package/dist/src/manager/telegram-hub/routing-store.js.map +1 -0
- package/dist/src/manager/telegram-hub/types.js +5 -0
- package/dist/src/manager/telegram-hub/types.js.map +1 -0
- package/dist/src/messaging/thread-target.js +21 -0
- package/dist/src/messaging/thread-target.js.map +1 -0
- package/dist/src/orchestrator/gateway.js +10 -7
- package/dist/src/orchestrator/gateway.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +19 -0
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/orchestrator/worker-registry.js.map +1 -1
- package/dist/src/routes/command.js +58 -2
- package/dist/src/routes/command.js.map +1 -1
- package/dist/src/routes/goal.js +6 -3
- package/dist/src/routes/goal.js.map +1 -1
- package/dist/src/routes/messaging.js +7 -2
- package/dist/src/routes/messaging.js.map +1 -1
- package/dist/src/routes/orchestrate.js +2 -0
- package/dist/src/routes/orchestrate.js.map +1 -1
- package/dist/src/telegram/bot.js +59 -4
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/forwarder.js +4 -1
- package/dist/src/telegram/forwarder.js.map +1 -1
- package/dist/src/telegram/hub-callback.js +21 -0
- package/dist/src/telegram/hub-callback.js.map +1 -0
- package/dist/src/telegram/rich-message.js +20 -0
- package/dist/src/telegram/rich-message.js.map +1 -0
- package/dist/src/telegram/telegram-file.js +4 -3
- package/dist/src/telegram/telegram-file.js.map +1 -1
- package/dist/src/workflows/status.js +14 -4
- package/dist/src/workflows/status.js.map +1 -1
- package/package.json +5 -5
- package/public/dist/assets/{Agent-wJtedbz4.js → Agent-Ci12HWhE.js} +1 -1
- package/public/dist/assets/{Heartbeat-CjgQ-0p8.js → Heartbeat-D-Rfp094.js} +1 -1
- package/public/dist/assets/{Memory-6o-wyhAT.js → Memory-VH4ZJCMW.js} +1 -1
- package/public/dist/assets/ModelProvider-_tUCghOF.js +1 -0
- package/public/dist/assets/TelegramHub-CuJoPPib.js +1 -0
- package/public/dist/assets/{agent-meta-g8UDRdWA.js → agent-meta-DqBTGRRQ.js} +1 -1
- package/public/dist/assets/{app-CLrfEHAk.js → app-DaORcAyD.js} +4 -4
- package/public/dist/assets/bgtask-badge-B3HLOZae.js +1 -0
- package/public/dist/assets/{bgtask-badge-xWbw-l-0.js → bgtask-badge-BtUXEe1T.js} +1 -1
- package/public/dist/assets/constants-DkJ3E63Y.js +1 -0
- package/public/dist/assets/{employees-C5GPj3d3.js → employees-CZSyvJbx.js} +1 -1
- package/public/dist/assets/manager-D3waO_XX.css +1 -0
- package/public/dist/assets/manager-DB5qTw1A.js +13 -0
- package/public/dist/assets/memory-BEruUlfu.js +1 -0
- package/public/dist/assets/{memory-CcnjBuo-.js → memory-cWI_Htbn.js} +1 -1
- package/public/dist/assets/message-history-DU1V9ZAW.js +142 -0
- package/public/dist/assets/message-history-tjkyOp_K.js +1 -0
- package/public/dist/assets/{render-C2g_qvCg.js → render-Bp8eyqCf.js} +1 -1
- package/public/dist/assets/settings-B-GgyJZI.js +1 -0
- package/public/dist/assets/{settings-DxClXVD0.js → settings-DLkP7qRV.js} +1 -1
- package/public/dist/assets/{settings-core-CSUV4-QG.js → settings-core-B5XRRNcX.js} +1 -1
- package/public/dist/assets/settings-core-Cw1av-Ox.js +1 -0
- package/public/dist/assets/{sidebar-CJz_SnMW.js → sidebar-CsogFOse.js} +3 -3
- package/public/dist/assets/skills-CLcoop6W.js +1 -0
- package/public/dist/assets/{skills-PKg2h1N4.js → skills-Dmf4v9rj.js} +1 -1
- package/public/dist/assets/slash-commands-DY6-hzq6.js +1 -0
- package/public/dist/assets/{slash-commands-FMOOfedZ.js → slash-commands-vcf7FuPD.js} +1 -1
- package/public/dist/assets/{trace-drawer-BoU1ucw7.js → trace-drawer-DuQQ0SNq.js} +1 -1
- package/public/dist/assets/{ui-BX-IfLze.js → ui-BKYuBdZE.js} +1 -1
- package/public/dist/assets/ui-CqlGwgUo.js +1 -0
- package/public/dist/index.html +1 -1
- package/public/dist/manager/index.html +2 -2
- package/public/js/constants.ts +2 -3
- package/public/js/features/process-block.ts +61 -9
- package/public/manager/src/code/code-composer.css +1 -0
- package/public/manager/src/code/code.css +7 -2
- package/public/manager/src/dashboard-settings/DashboardSettingsSidebar.tsx +6 -2
- package/public/manager/src/dashboard-settings/DashboardSettingsWorkspace.tsx +91 -2
- package/public/manager/src/goal-status/GoalPabcdStatusPanel.tsx +9 -1
- package/public/manager/src/goal-status/goal-pabcd-status-client.ts +9 -0
- package/public/manager/src/settings/SettingsShell.tsx +1 -0
- package/public/manager/src/settings/SettingsSidebar.tsx +1 -0
- package/public/manager/src/settings/pages/TelegramHub.tsx +179 -0
- package/public/manager/src/settings/pages/components/PerCliRow.tsx +23 -13
- package/public/manager/src/settings/pages/components/agent/agent-meta.ts +3 -1
- package/public/manager/src/settings/types.ts +1 -0
- package/public/manager/src/settings-shell.css +11 -0
- package/public/sw.js +1 -1
- package/scripts/bundle-sidecar.sh +6 -1
- package/public/dist/assets/ModelProvider-CNu6WOjM.js +0 -1
- package/public/dist/assets/bgtask-badge-4OjtCvDq.js +0 -1
- package/public/dist/assets/constants-CCiCctGV.js +0 -1
- package/public/dist/assets/manager-Ceg2x8D0.js +0 -13
- package/public/dist/assets/manager-CwAlpgV7.css +0 -1
- package/public/dist/assets/memory-B1beDKbo.js +0 -1
- package/public/dist/assets/message-history-BSWJwi__.js +0 -142
- package/public/dist/assets/message-history-CzaziSe8.js +0 -1
- package/public/dist/assets/settings-Dst1mUjn.js +0 -1
- package/public/dist/assets/settings-core-BW5mtFPE.js +0 -1
- package/public/dist/assets/skills-B2io6S_4.js +0 -1
- package/public/dist/assets/slash-commands-D1IS00Eg.js +0 -1
- package/public/dist/assets/ui-C-al0etg.js +0 -1
- /package/public/dist/assets/{TerminalPanel-B7WRXPsE.js → TerminalPanel-DSCJeGjp.js} +0 -0
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
*
|
|
5
5
|
* No hosted/cloud, no stealth, no CAPTCHA bypass, no external CDP.
|
|
6
6
|
*/
|
|
7
|
+
function isElementRef(ref) {
|
|
8
|
+
return /^@?e\d+$/.test(ref);
|
|
9
|
+
}
|
|
10
|
+
/** FNV-1a hash of (url, capturedAt, refCount) for a stable default observationId. */
|
|
11
|
+
function hashBasis(url, capturedAt, refCount) {
|
|
12
|
+
let hash = 2166136261;
|
|
13
|
+
const input = `${url}|${capturedAt}|${refCount}`;
|
|
14
|
+
for (let i = 0; i < input.length; i += 1) {
|
|
15
|
+
hash ^= input.charCodeAt(i);
|
|
16
|
+
hash = Math.imul(hash, 16777619);
|
|
17
|
+
}
|
|
18
|
+
return (hash >>> 0).toString(16);
|
|
19
|
+
}
|
|
7
20
|
const SCHEMA_VERSION = 'observation-bundle-v1';
|
|
8
21
|
const DEFAULT_MAX_TEXT_CHARS = 2000;
|
|
9
22
|
function clampText(s, max) {
|
|
@@ -30,7 +43,8 @@ export function buildObservationBundle(input) {
|
|
|
30
43
|
for (const node of input.snapshotNodes) {
|
|
31
44
|
if (!node || typeof node.ref !== 'string')
|
|
32
45
|
continue;
|
|
33
|
-
|
|
46
|
+
// 104.22: accept bare or @-prefixed element refs (@?e\d+); reject non-element refs like @x.
|
|
47
|
+
if (!isElementRef(node.ref))
|
|
34
48
|
continue;
|
|
35
49
|
const row = {
|
|
36
50
|
ref: node.ref,
|
|
@@ -55,8 +69,12 @@ export function buildObservationBundle(input) {
|
|
|
55
69
|
for (const r of refs)
|
|
56
70
|
if (r.box)
|
|
57
71
|
boxCount += 1;
|
|
72
|
+
const targetId = input.targetId || '';
|
|
73
|
+
const observationId = input.observationId || `obs-${hashBasis(input.url, capturedAt, refs.length)}`;
|
|
58
74
|
return {
|
|
59
75
|
schemaVersion: SCHEMA_VERSION,
|
|
76
|
+
observationId,
|
|
77
|
+
targetId,
|
|
60
78
|
url: input.url,
|
|
61
79
|
title: String(input.title || ''),
|
|
62
80
|
viewport: { width: input.viewport.width, height: input.viewport.height },
|
|
@@ -65,6 +83,13 @@ export function buildObservationBundle(input) {
|
|
|
65
83
|
refs,
|
|
66
84
|
screenshot,
|
|
67
85
|
textSummary,
|
|
86
|
+
basis: {
|
|
87
|
+
url: input.url,
|
|
88
|
+
targetId,
|
|
89
|
+
viewport: { width: input.viewport.width, height: input.viewport.height },
|
|
90
|
+
dpr,
|
|
91
|
+
capturedAt,
|
|
92
|
+
},
|
|
68
93
|
stats: {
|
|
69
94
|
refCount: refs.length,
|
|
70
95
|
boxCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation-bundle.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/observation-bundle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"observation-bundle.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/observation-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/provider-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/provider-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuCH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAC1C,MAAM,CAAgB;IACtB,KAAK,CAAoB;IAClC,YAAY,MAAqB,EAAE,QAA2B,sBAAsB;QAChF,KAAK,CAAC,8BAA8B,MAAM,oCAAoC,KAAK,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAqB;IAC/D,OAAO;QACH,MAAM;QACN,eAAe,EAAE,KAAK;QACtB,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,CAAC,UAAU,KAAK,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,CAAC,YAAY,KAAK,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACtF,KAAK,CAAC,eAAe,KAAK,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;KAC9F,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { basename, join } from 'node:path';
|
|
3
|
+
import { JAW_HOME } from '../../core/config.js';
|
|
4
|
+
/** Sanitize a path segment to prevent directory traversal. */
|
|
5
|
+
function sanitizeSegment(segment) {
|
|
6
|
+
return segment.replace(/[/\\:*?"<>|.]/g, '_').replace(/^_+|_+$/g, '') || 'unknown';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the artifacts directory for a session, under JAW_HOME (cli-jaw home — not
|
|
10
|
+
* agbrowse's ~/.browser-agent). Created lazily on first write, not eagerly.
|
|
11
|
+
*/
|
|
12
|
+
export function resolveArtifactsDir(sessionId) {
|
|
13
|
+
return join(JAW_HOME, 'web-ai-artifacts', sanitizeSegment(sessionId));
|
|
14
|
+
}
|
|
15
|
+
function ensureDir(dir) {
|
|
16
|
+
if (!existsSync(dir))
|
|
17
|
+
mkdirSync(dir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
export function saveTranscript(sessionId, markdown) {
|
|
20
|
+
const dir = resolveArtifactsDir(sessionId);
|
|
21
|
+
ensureDir(dir);
|
|
22
|
+
const filename = 'transcript.md';
|
|
23
|
+
writeFileSync(join(dir, filename), markdown, 'utf8');
|
|
24
|
+
return {
|
|
25
|
+
kind: 'transcript',
|
|
26
|
+
label: 'Conversation transcript',
|
|
27
|
+
path: filename,
|
|
28
|
+
mimeType: 'text/markdown',
|
|
29
|
+
sizeBytes: Buffer.byteLength(markdown, 'utf8'),
|
|
30
|
+
savedAt: new Date().toISOString(),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function trySaveTranscript(sessionId, markdown) {
|
|
34
|
+
try {
|
|
35
|
+
return { ok: true, descriptor: saveTranscript(sessionId, markdown) };
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
return { ok: false, stage: 'artifact-transcript', error: err?.message || String(err) };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function saveReport(sessionId, report) {
|
|
42
|
+
const dir = resolveArtifactsDir(sessionId);
|
|
43
|
+
ensureDir(dir);
|
|
44
|
+
const filename = 'report.md';
|
|
45
|
+
let content = report.text;
|
|
46
|
+
if (report.sources?.length) {
|
|
47
|
+
content += '\n\n## Sources\n' + report.sources.map((s, i) => `${i + 1}. ${s}`).join('\n');
|
|
48
|
+
}
|
|
49
|
+
writeFileSync(join(dir, filename), content, 'utf8');
|
|
50
|
+
return {
|
|
51
|
+
kind: 'report',
|
|
52
|
+
label: 'Deep Research report',
|
|
53
|
+
path: filename,
|
|
54
|
+
mimeType: 'text/markdown',
|
|
55
|
+
sizeBytes: Buffer.byteLength(content, 'utf8'),
|
|
56
|
+
savedAt: new Date().toISOString(),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function trySaveReport(sessionId, report) {
|
|
60
|
+
try {
|
|
61
|
+
return { ok: true, descriptor: saveReport(sessionId, report) };
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
return { ok: false, stage: 'artifact-report', error: err?.message || String(err) };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function saveImageArtifact(sessionId, image) {
|
|
68
|
+
const dir = resolveArtifactsDir(sessionId);
|
|
69
|
+
ensureDir(dir);
|
|
70
|
+
const ext = image.filename.split('.').pop() ?? '';
|
|
71
|
+
const stem = basename(image.filename, ext ? '.' + ext : '');
|
|
72
|
+
const safeName = sanitizeSegment(stem) + '.' + (image.mimeType.split('/')[1] || 'png');
|
|
73
|
+
writeFileSync(join(dir, safeName), image.buffer);
|
|
74
|
+
return {
|
|
75
|
+
kind: 'image',
|
|
76
|
+
label: image.filename,
|
|
77
|
+
path: safeName,
|
|
78
|
+
mimeType: image.mimeType,
|
|
79
|
+
sizeBytes: image.buffer.length,
|
|
80
|
+
...(image.sourceUrl ? { sourceUrl: image.sourceUrl } : {}),
|
|
81
|
+
savedAt: new Date().toISOString(),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function trySaveImageArtifact(sessionId, image) {
|
|
85
|
+
try {
|
|
86
|
+
return { ok: true, descriptor: saveImageArtifact(sessionId, image) };
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return { ok: false, stage: 'artifact-image', error: err?.message || String(err) };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build a safe artifact basename for a generic file: strip any directory, preserve the
|
|
94
|
+
* resolved filename's extension when present, else fall back to the MIME subtype.
|
|
95
|
+
*/
|
|
96
|
+
function safeFileArtifactName(filename, mimeType) {
|
|
97
|
+
const base = basename(String(filename || ''));
|
|
98
|
+
const dot = base.lastIndexOf('.');
|
|
99
|
+
const stem = sanitizeSegment(dot > 0 ? base.slice(0, dot) : base);
|
|
100
|
+
const rawExt = dot > 0 ? base.slice(dot + 1) : '';
|
|
101
|
+
const mimeExt = mimeType ? ((mimeType.split('/')[1] ?? '').split(';')[0] ?? '') : '';
|
|
102
|
+
const ext = sanitizeSegment(rawExt || mimeExt);
|
|
103
|
+
return ext && ext !== 'unknown' ? `${stem}.${ext}` : stem;
|
|
104
|
+
}
|
|
105
|
+
export function saveFileArtifact(sessionId, file) {
|
|
106
|
+
const dir = resolveArtifactsDir(sessionId);
|
|
107
|
+
ensureDir(dir);
|
|
108
|
+
const safeName = safeFileArtifactName(file.filename, file.mimeType);
|
|
109
|
+
writeFileSync(join(dir, safeName), file.buffer);
|
|
110
|
+
return {
|
|
111
|
+
kind: 'file',
|
|
112
|
+
label: file.filename,
|
|
113
|
+
path: safeName,
|
|
114
|
+
mimeType: file.mimeType,
|
|
115
|
+
sizeBytes: file.buffer.length,
|
|
116
|
+
...(file.sourceUrl ? { sourceUrl: file.sourceUrl } : {}),
|
|
117
|
+
savedAt: new Date().toISOString(),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function trySaveFileArtifact(sessionId, file) {
|
|
121
|
+
try {
|
|
122
|
+
return { ok: true, descriptor: saveFileArtifact(sessionId, file) };
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
return { ok: false, stage: 'artifact-file', error: err?.message || String(err) };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export function saveDiagnosticsArtifact(sessionId, diag) {
|
|
129
|
+
const dir = resolveArtifactsDir(sessionId);
|
|
130
|
+
ensureDir(dir);
|
|
131
|
+
const stem = `diagnostics-${sanitizeSegment(diag.context || 'failure')}`;
|
|
132
|
+
const jsonPath = `${stem}.json`;
|
|
133
|
+
writeFileSync(join(dir, jsonPath), JSON.stringify(diag.domJson ?? {}, null, 2));
|
|
134
|
+
const descriptor = {
|
|
135
|
+
kind: 'diagnostics',
|
|
136
|
+
label: diag.context || 'failure',
|
|
137
|
+
path: jsonPath,
|
|
138
|
+
mimeType: 'application/json',
|
|
139
|
+
savedAt: new Date().toISOString(),
|
|
140
|
+
};
|
|
141
|
+
if (diag.screenshotBuffer) {
|
|
142
|
+
const pngPath = `${stem}.png`;
|
|
143
|
+
writeFileSync(join(dir, pngPath), diag.screenshotBuffer);
|
|
144
|
+
descriptor.screenshotPath = pngPath;
|
|
145
|
+
}
|
|
146
|
+
return descriptor;
|
|
147
|
+
}
|
|
148
|
+
export function trySaveDiagnosticsArtifact(sessionId, diag) {
|
|
149
|
+
try {
|
|
150
|
+
return { ok: true, descriptor: saveDiagnosticsArtifact(sessionId, diag) };
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
return { ok: false, stage: 'artifact-diagnostics', error: err?.message || String(err) };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=session-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-artifacts.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/session-artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// Parity catalog 102 (session-doctor). Strict-TS port of agbrowse web-ai/session-doctor.mjs.
|
|
2
|
+
// Read-only session diagnostic report: never reads prompt/answer text and redacts
|
|
3
|
+
// conversation URLs to host + pathname. cli-jaw doctor.ts is a feature-capability prober —
|
|
4
|
+
// it does NOT cover session-level reporting (lock PID/staleness + verifySessionTab). Deps
|
|
5
|
+
// are injected (cli-jaw's session/lock/tab APIs are spread across modules) so the report
|
|
6
|
+
// builder is fully unit-testable; sanitize/summarize/recommend helpers are pure.
|
|
7
|
+
/**
|
|
8
|
+
* Build a session diagnostic report. Read-only: never reads prompt or answer text,
|
|
9
|
+
* and redacts conversation URLs down to host + pathname.
|
|
10
|
+
*/
|
|
11
|
+
export async function buildSessionDoctorReport(deps, sessionId, options = {}) {
|
|
12
|
+
const session = deps.getSession(sessionId);
|
|
13
|
+
if (!session) {
|
|
14
|
+
return {
|
|
15
|
+
ok: false,
|
|
16
|
+
status: 'session-doctor',
|
|
17
|
+
sessionId,
|
|
18
|
+
summary: 'missing session record',
|
|
19
|
+
recommendations: ['Run: web-ai sessions list'],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const port = (typeof deps.getPort === 'function' ? deps.getPort() : 9222) || 9222;
|
|
23
|
+
const target = await deps.verifySessionTab(session).catch((error) => ({
|
|
24
|
+
valid: false,
|
|
25
|
+
needsRecovery: true,
|
|
26
|
+
error: error?.message || String(error),
|
|
27
|
+
}));
|
|
28
|
+
const lock = deps.readSessionCommandLock(sessionId);
|
|
29
|
+
const activeCommands = await deps.listActiveCommands({ browserProfileKey: String(port) })
|
|
30
|
+
.catch((error) => [{ status: 'unknown', error: error?.message || String(error) }]);
|
|
31
|
+
const recommendations = recommendSessionActions({ session, target, lock, navigate: options.navigate === true });
|
|
32
|
+
const report = {
|
|
33
|
+
ok: true,
|
|
34
|
+
status: 'session-doctor',
|
|
35
|
+
sessionId,
|
|
36
|
+
summary: summarizeSession({ session, target, lock }),
|
|
37
|
+
session: sanitizeSession(session),
|
|
38
|
+
target,
|
|
39
|
+
lock,
|
|
40
|
+
activeCommands,
|
|
41
|
+
recommendations,
|
|
42
|
+
};
|
|
43
|
+
if (session.vendor)
|
|
44
|
+
report.vendor = session.vendor;
|
|
45
|
+
return report;
|
|
46
|
+
}
|
|
47
|
+
/** Redact a session record to the safe, reportable fields (URLs → host+path). */
|
|
48
|
+
export function sanitizeSession(session) {
|
|
49
|
+
return {
|
|
50
|
+
sessionId: session.sessionId,
|
|
51
|
+
vendor: session.vendor,
|
|
52
|
+
status: session.status,
|
|
53
|
+
deadlineAt: session.deadlineAt ?? null,
|
|
54
|
+
targetId: session.targetId || null,
|
|
55
|
+
tabId: session.tabId || null,
|
|
56
|
+
originalUrl: redactUrl(session.originalUrl),
|
|
57
|
+
conversationUrl: redactUrl(session.conversationUrl),
|
|
58
|
+
updatedAt: session.updatedAt,
|
|
59
|
+
warnings: session.warnings || [],
|
|
60
|
+
lastError: session.lastError ?? null,
|
|
61
|
+
tabState: session.tabState ?? null,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function summarizeSession({ session, target, lock }) {
|
|
65
|
+
if (lock?.pid && lock?.stale === false)
|
|
66
|
+
return 'locked by another command';
|
|
67
|
+
if (!target?.valid)
|
|
68
|
+
return 'target missing or needs recovery';
|
|
69
|
+
return `${session.status} on live target`;
|
|
70
|
+
}
|
|
71
|
+
export function recommendSessionActions({ session, target, lock, navigate, }) {
|
|
72
|
+
const out = [];
|
|
73
|
+
if (lock?.pid && lock?.stale === false) {
|
|
74
|
+
out.push('A command lock is active; wait or inspect the PID before retrying.');
|
|
75
|
+
}
|
|
76
|
+
if (!target?.valid && navigate) {
|
|
77
|
+
out.push(`Run sessions reattach ${session.sessionId} --navigate to recover the tab.`);
|
|
78
|
+
}
|
|
79
|
+
if (!target?.valid && !navigate) {
|
|
80
|
+
out.push(`Run sessions doctor ${session.sessionId} --navigate or poll --session ${session.sessionId} --navigate.`);
|
|
81
|
+
}
|
|
82
|
+
if (session.status === 'timeout') {
|
|
83
|
+
out.push('If the provider tab is still streaming and deadline is future, retry poll/watch with --session.');
|
|
84
|
+
}
|
|
85
|
+
if (out.length === 0) {
|
|
86
|
+
out.push(`Run: web-ai poll --vendor ${session.vendor || 'chatgpt'} --session ${session.sessionId} --navigate`);
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
function redactUrl(url) {
|
|
91
|
+
if (!url)
|
|
92
|
+
return null;
|
|
93
|
+
try {
|
|
94
|
+
const u = new URL(url);
|
|
95
|
+
return `${u.protocol}//${u.hostname}${u.pathname}`;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return String(url);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=session-doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-doctor.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/session-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
|
-
import { existsSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { existsSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { JAW_HOME } from '../../core/config.js';
|
|
5
5
|
import { WebAiError } from './errors.js';
|
|
@@ -77,18 +77,26 @@ export function withStoreLock(fn) {
|
|
|
77
77
|
while (attempts < LOCK_RETRY_LIMIT) {
|
|
78
78
|
try {
|
|
79
79
|
const fd = openSync(path, 'wx');
|
|
80
|
+
closeSync(fd);
|
|
81
|
+
const tmpMeta = `${path}.meta.${process.pid}`;
|
|
80
82
|
try {
|
|
81
|
-
writeFileSync(
|
|
83
|
+
writeFileSync(tmpMeta, JSON.stringify({ pid: process.pid, acquiredAt: new Date().toISOString() }));
|
|
84
|
+
renameSync(tmpMeta, `${path}.meta`);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
try {
|
|
88
|
+
unlinkSync(tmpMeta);
|
|
89
|
+
}
|
|
90
|
+
catch { /* cleanup */ }
|
|
82
91
|
}
|
|
83
|
-
catch { /* best-effort metadata write */ }
|
|
84
92
|
try {
|
|
85
93
|
return fn();
|
|
86
94
|
}
|
|
87
95
|
finally {
|
|
88
96
|
try {
|
|
89
|
-
|
|
97
|
+
unlinkSync(`${path}.meta`);
|
|
90
98
|
}
|
|
91
|
-
catch { /* already
|
|
99
|
+
catch { /* already gone */ }
|
|
92
100
|
try {
|
|
93
101
|
unlinkSync(path);
|
|
94
102
|
}
|
|
@@ -101,6 +109,10 @@ export function withStoreLock(fn) {
|
|
|
101
109
|
attempts += 1;
|
|
102
110
|
const stale = isStaleLock(path);
|
|
103
111
|
if (stale) {
|
|
112
|
+
try {
|
|
113
|
+
unlinkSync(`${path}.meta`);
|
|
114
|
+
}
|
|
115
|
+
catch { /* may not exist */ }
|
|
104
116
|
try {
|
|
105
117
|
unlinkSync(path);
|
|
106
118
|
}
|
|
@@ -117,18 +129,39 @@ export function withStoreLock(fn) {
|
|
|
117
129
|
message: `web-ai session store: failed to acquire lock at ${path} after ${LOCK_RETRY_LIMIT} attempts`,
|
|
118
130
|
});
|
|
119
131
|
}
|
|
120
|
-
function isStaleLock(path) {
|
|
132
|
+
export function isStaleLock(path) {
|
|
133
|
+
const metaPath = `${path}.meta`;
|
|
121
134
|
try {
|
|
122
|
-
const raw = readFileSync(
|
|
135
|
+
const raw = readFileSync(metaPath, 'utf8');
|
|
123
136
|
const parsed = JSON.parse(raw);
|
|
124
|
-
|
|
125
|
-
|
|
137
|
+
if (parsed?.pid != null && !pidAlive(Number(parsed.pid)))
|
|
138
|
+
return true;
|
|
139
|
+
const stamp = Date.parse(parsed?.heartbeatAt || parsed?.acquiredAt || '');
|
|
140
|
+
if (!Number.isFinite(stamp))
|
|
126
141
|
return true;
|
|
127
|
-
return Date.now() -
|
|
142
|
+
return Date.now() - stamp > STALE_LOCK_MS;
|
|
128
143
|
}
|
|
129
144
|
catch {
|
|
145
|
+
try {
|
|
146
|
+
const lockStat = statSync(path);
|
|
147
|
+
if (Date.now() - lockStat.mtimeMs < 2000)
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
catch { /* lock file gone */ }
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** True if the process is alive (or exists but not ours: EPERM). */
|
|
155
|
+
function pidAlive(pid) {
|
|
156
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
157
|
+
return false;
|
|
158
|
+
try {
|
|
159
|
+
process.kill(pid, 0);
|
|
130
160
|
return true;
|
|
131
161
|
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
return err?.code === 'EPERM';
|
|
164
|
+
}
|
|
132
165
|
}
|
|
133
166
|
function sleepBlockingMs(ms) {
|
|
134
167
|
const end = Date.now() + ms;
|
|
@@ -157,9 +190,30 @@ export function patchSession(sessionId, patch) {
|
|
|
157
190
|
return merged;
|
|
158
191
|
});
|
|
159
192
|
}
|
|
193
|
+
const ACTIVE_SESSION_STATUSES = new Set(['sent', 'polling']);
|
|
194
|
+
function sessionDeadlineMs(session) {
|
|
195
|
+
if (session.deadlineAt) {
|
|
196
|
+
const d = Date.parse(session.deadlineAt);
|
|
197
|
+
if (Number.isFinite(d))
|
|
198
|
+
return d;
|
|
199
|
+
}
|
|
200
|
+
const timeoutMs = session['timeoutMs'];
|
|
201
|
+
if (session.createdAt && typeof timeoutMs === 'number') {
|
|
202
|
+
const d = Date.parse(session.createdAt) + timeoutMs;
|
|
203
|
+
if (Number.isFinite(d))
|
|
204
|
+
return d;
|
|
205
|
+
}
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
/** 104.2: active = an active status AND not past its deadline (expired sessions are inactive). */
|
|
209
|
+
export function isSessionActive(session, now = Date.now()) {
|
|
210
|
+
if (!ACTIVE_SESSION_STATUSES.has(session.status))
|
|
211
|
+
return false;
|
|
212
|
+
const deadline = sessionDeadlineMs(session);
|
|
213
|
+
return deadline === null || deadline > now;
|
|
214
|
+
}
|
|
160
215
|
export function listStoredSessions(filter = {}) {
|
|
161
216
|
const store = readSessionStoreLocked();
|
|
162
|
-
const active = new Set(['sent', 'polling']);
|
|
163
217
|
let rows = store.sessions;
|
|
164
218
|
if (filter.sessionId)
|
|
165
219
|
rows = rows.filter(s => s.sessionId === filter.sessionId);
|
|
@@ -168,7 +222,7 @@ export function listStoredSessions(filter = {}) {
|
|
|
168
222
|
if (filter.status)
|
|
169
223
|
rows = rows.filter(s => s.status === filter.status);
|
|
170
224
|
if (filter.active === true)
|
|
171
|
-
rows = rows.filter(s =>
|
|
225
|
+
rows = rows.filter(s => isSessionActive(s));
|
|
172
226
|
rows = rows.slice().sort((a, b) => String(a.createdAt).localeCompare(String(b.createdAt)));
|
|
173
227
|
if (typeof filter.limit === 'number' && filter.limit > 0)
|
|
174
228
|
rows = rows.slice(-filter.limit);
|
|
@@ -179,16 +233,25 @@ function sessionCommandLockPath(sessionId) {
|
|
|
179
233
|
}
|
|
180
234
|
export async function withSessionCommandLock(sessionId, fn) {
|
|
181
235
|
const path = sessionCommandLockPath(sessionId);
|
|
236
|
+
const metaPath = `${path}.meta`;
|
|
182
237
|
mkdirSync(dirname(path), { recursive: true });
|
|
183
238
|
let fd = null;
|
|
184
239
|
let attempts = 0;
|
|
185
240
|
while (attempts < LOCK_RETRY_LIMIT) {
|
|
186
241
|
try {
|
|
187
242
|
fd = openSync(path, 'wx');
|
|
243
|
+
closeSync(fd);
|
|
244
|
+
const tmpMeta = `${path}.meta.${process.pid}`;
|
|
188
245
|
try {
|
|
189
|
-
writeFileSync(
|
|
246
|
+
writeFileSync(tmpMeta, JSON.stringify({ pid: process.pid, acquiredAt: new Date().toISOString(), heartbeatAt: new Date().toISOString(), sessionId }));
|
|
247
|
+
renameSync(tmpMeta, metaPath);
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
try {
|
|
251
|
+
unlinkSync(tmpMeta);
|
|
252
|
+
}
|
|
253
|
+
catch { /* cleanup */ }
|
|
190
254
|
}
|
|
191
|
-
catch { /* best-effort metadata write */ }
|
|
192
255
|
break;
|
|
193
256
|
}
|
|
194
257
|
catch (err) {
|
|
@@ -197,13 +260,17 @@ export async function withSessionCommandLock(sessionId, fn) {
|
|
|
197
260
|
attempts += 1;
|
|
198
261
|
const stale = isStaleLock(path);
|
|
199
262
|
if (stale) {
|
|
263
|
+
try {
|
|
264
|
+
unlinkSync(metaPath);
|
|
265
|
+
}
|
|
266
|
+
catch { /* may not exist */ }
|
|
200
267
|
try {
|
|
201
268
|
unlinkSync(path);
|
|
202
269
|
}
|
|
203
270
|
catch { /* races resolve naturally */ }
|
|
204
271
|
continue;
|
|
205
272
|
}
|
|
206
|
-
|
|
273
|
+
await new Promise(resolve => setTimeout(resolve, LOCK_RETRY_MS));
|
|
207
274
|
}
|
|
208
275
|
}
|
|
209
276
|
if (fd === null) {
|
|
@@ -214,14 +281,24 @@ export async function withSessionCommandLock(sessionId, fn) {
|
|
|
214
281
|
message: `web-ai session command: failed to acquire lock for ${sessionId} after ${LOCK_RETRY_LIMIT} attempts`,
|
|
215
282
|
});
|
|
216
283
|
}
|
|
284
|
+
const heartbeatTimer = setInterval(() => {
|
|
285
|
+
try {
|
|
286
|
+
const tmpHb = `${metaPath}.hb.${process.pid}`;
|
|
287
|
+
writeFileSync(tmpHb, JSON.stringify({ pid: process.pid, acquiredAt: new Date().toISOString(), heartbeatAt: new Date().toISOString(), sessionId }));
|
|
288
|
+
renameSync(tmpHb, metaPath);
|
|
289
|
+
}
|
|
290
|
+
catch { /* best-effort heartbeat */ }
|
|
291
|
+
}, 60_000);
|
|
292
|
+
heartbeatTimer.unref();
|
|
217
293
|
try {
|
|
218
294
|
return await fn();
|
|
219
295
|
}
|
|
220
296
|
finally {
|
|
297
|
+
clearInterval(heartbeatTimer);
|
|
221
298
|
try {
|
|
222
|
-
|
|
299
|
+
unlinkSync(metaPath);
|
|
223
300
|
}
|
|
224
|
-
catch { /* already
|
|
301
|
+
catch { /* already gone */ }
|
|
225
302
|
try {
|
|
226
303
|
unlinkSync(path);
|
|
227
304
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/session-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/session-store.ts"],"names":[],"mappings":"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"}
|