@farazirfan/costar-server-executor 1.7.9 → 1.7.10
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/pi-embedded-runner/run.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/run.js +12 -4
- package/dist/agent/pi-embedded-runner/run.js.map +1 -1
- package/dist/agent/pi-embedded-runner/session-tool-result-guard.d.ts +25 -0
- package/dist/agent/pi-embedded-runner/session-tool-result-guard.d.ts.map +1 -0
- package/dist/agent/pi-embedded-runner/session-tool-result-guard.js +165 -0
- package/dist/agent/pi-embedded-runner/session-tool-result-guard.js.map +1 -0
- package/dist/agent/pi-embedded-runner/session-write-lock.d.ts +29 -0
- package/dist/agent/pi-embedded-runner/session-write-lock.d.ts.map +1 -0
- package/dist/agent/pi-embedded-runner/session-write-lock.js +185 -0
- package/dist/agent/pi-embedded-runner/session-write-lock.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAqBpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAQ1E;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAiN9B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE"}
|
|
@@ -18,6 +18,8 @@ import { buildAgentSystemPrompt, createSystemPromptOverride } from "./system-pro
|
|
|
18
18
|
import { subscribeEmbeddedPiSession } from "./subscribe.js";
|
|
19
19
|
import { prepareSessionManagerForRun, getSessionDiagnostics } from "./session-manager-init.js";
|
|
20
20
|
import { repairSessionFileIfNeeded } from "./session-file-repair.js";
|
|
21
|
+
import { guardSessionManager } from "./session-tool-result-guard.js";
|
|
22
|
+
import { acquireSessionWriteLock } from "./session-write-lock.js";
|
|
21
23
|
import { isContextOverflowError, isCompactionFailureError, describeUnknownError, } from "../pi-embedded-helpers/errors.js";
|
|
22
24
|
import { compactEmbeddedPiSessionDirect } from "./compact.js";
|
|
23
25
|
import { truncateOversizedToolResultsInSession, sessionLikelyHasOversizedToolResults, } from "./tool-result-truncation.js";
|
|
@@ -252,6 +254,10 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
|
|
|
252
254
|
.then(() => true)
|
|
253
255
|
.catch(() => false);
|
|
254
256
|
console.log(`[PI_ATTEMPT] Session file: ${params.sessionFile} (exists: ${hadSessionFile})`);
|
|
257
|
+
// Acquire session write lock to prevent concurrent writes (cron + chat safety)
|
|
258
|
+
const sessionLock = await acquireSessionWriteLock({
|
|
259
|
+
sessionFile: params.sessionFile,
|
|
260
|
+
});
|
|
255
261
|
// Repair session file if corrupted (e.g., from old resetSessionFile bug writing "{}")
|
|
256
262
|
if (hadSessionFile) {
|
|
257
263
|
const repairResult = await repairSessionFileIfNeeded({
|
|
@@ -262,8 +268,8 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
|
|
|
262
268
|
console.log(`[PI_ATTEMPT] Session file repaired: dropped ${repairResult.droppedLines} malformed lines`);
|
|
263
269
|
}
|
|
264
270
|
}
|
|
265
|
-
// Open or create session manager
|
|
266
|
-
let sessionManager = SessionManager.open(params.sessionFile);
|
|
271
|
+
// Open or create session manager, wrapped with tool result guard
|
|
272
|
+
let sessionManager = guardSessionManager(SessionManager.open(params.sessionFile));
|
|
267
273
|
// Log session diagnostics BEFORE preparation
|
|
268
274
|
let diagBefore = getSessionDiagnostics(sessionManager);
|
|
269
275
|
console.log(`[PI_ATTEMPT] Session loaded — messages: ${diagBefore.messageCount} (user: ${diagBefore.userMessages}, assistant: ${diagBefore.assistantMessages}), flushed: ${diagBefore.flushed}, hasHeader: ${diagBefore.hasHeader}`);
|
|
@@ -283,8 +289,8 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
|
|
|
283
289
|
}
|
|
284
290
|
// Reset to empty so SessionManager creates a fresh session
|
|
285
291
|
await fs.writeFile(params.sessionFile, "", "utf-8");
|
|
286
|
-
// Re-open with fresh state
|
|
287
|
-
sessionManager = SessionManager.open(params.sessionFile);
|
|
292
|
+
// Re-open with fresh state (with guard)
|
|
293
|
+
sessionManager = guardSessionManager(SessionManager.open(params.sessionFile));
|
|
288
294
|
diagBefore = getSessionDiagnostics(sessionManager);
|
|
289
295
|
console.log(`[PI_ATTEMPT] Session after reset — messages: ${diagBefore.messageCount}, flushed: ${diagBefore.flushed}, hasHeader: ${diagBefore.hasHeader}`);
|
|
290
296
|
}
|
|
@@ -440,6 +446,8 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
|
|
|
440
446
|
catch (disposeErr) {
|
|
441
447
|
console.error(`[PI_ATTEMPT] Session dispose error:`, disposeErr);
|
|
442
448
|
}
|
|
449
|
+
// Release session write lock (always, even on error)
|
|
450
|
+
await sessionLock.release();
|
|
443
451
|
}
|
|
444
452
|
}
|
|
445
453
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Tool Result Guard
|
|
3
|
+
* Ported from OpenClaw's session-tool-result-guard.ts + wrapper
|
|
4
|
+
*
|
|
5
|
+
* Wraps SessionManager.appendMessage to:
|
|
6
|
+
* 1. Cap oversized tool results before they're persisted (prevents context overflow)
|
|
7
|
+
* 2. Track pending tool calls and synthesize missing results
|
|
8
|
+
* 3. Sanitize malformed tool call inputs
|
|
9
|
+
* 4. Expose flushPendingToolResults() for cleanup before dispose
|
|
10
|
+
*
|
|
11
|
+
* Without this, tool results can be lost or oversized, causing the session
|
|
12
|
+
* file to grow unbounded or the LLM to reject the transcript.
|
|
13
|
+
*/
|
|
14
|
+
import type { SessionManager } from "@mariozechner/pi-coding-agent";
|
|
15
|
+
export type GuardedSessionManager = SessionManager & {
|
|
16
|
+
/** Flush any synthetic tool results for pending tool calls. Idempotent. */
|
|
17
|
+
flushPendingToolResults?: () => void;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Apply the tool-result guard to a SessionManager.
|
|
21
|
+
* Wraps appendMessage to cap sizes, track pending tool calls,
|
|
22
|
+
* and synthesize missing tool results before disposal.
|
|
23
|
+
*/
|
|
24
|
+
export declare function guardSessionManager(sessionManager: SessionManager): GuardedSessionManager;
|
|
25
|
+
//# sourceMappingURL=session-tool-result-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-tool-result-guard.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/session-tool-result-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AASpE,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC,CAAC;AA2GF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,cAAc,GAAG,qBAAqB,CA2DzF"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Tool Result Guard
|
|
3
|
+
* Ported from OpenClaw's session-tool-result-guard.ts + wrapper
|
|
4
|
+
*
|
|
5
|
+
* Wraps SessionManager.appendMessage to:
|
|
6
|
+
* 1. Cap oversized tool results before they're persisted (prevents context overflow)
|
|
7
|
+
* 2. Track pending tool calls and synthesize missing results
|
|
8
|
+
* 3. Sanitize malformed tool call inputs
|
|
9
|
+
* 4. Expose flushPendingToolResults() for cleanup before dispose
|
|
10
|
+
*
|
|
11
|
+
* Without this, tool results can be lost or oversized, causing the session
|
|
12
|
+
* file to grow unbounded or the LLM to reject the transcript.
|
|
13
|
+
*/
|
|
14
|
+
// Same limit as OpenClaw — safety net for oversized tool results
|
|
15
|
+
const HARD_MAX_TOOL_RESULT_CHARS = 400_000;
|
|
16
|
+
const GUARD_TRUNCATION_SUFFIX = "\n\n⚠️ [Content truncated during persistence — original exceeded size limit. " +
|
|
17
|
+
"Use offset/limit parameters or request specific sections for large content.]";
|
|
18
|
+
// ─── Helper Functions ──────────────────────────────────────────
|
|
19
|
+
/** Cap oversized text content blocks in a tool result message. */
|
|
20
|
+
function capToolResultSize(msg) {
|
|
21
|
+
const record = msg;
|
|
22
|
+
if (record.role !== "toolResult" || !Array.isArray(record.content)) {
|
|
23
|
+
return msg;
|
|
24
|
+
}
|
|
25
|
+
let totalTextChars = 0;
|
|
26
|
+
for (const block of record.content) {
|
|
27
|
+
if (block && typeof block === "object" && block.type === "text") {
|
|
28
|
+
const text = block.text;
|
|
29
|
+
if (typeof text === "string") {
|
|
30
|
+
totalTextChars += text.length;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (totalTextChars <= HARD_MAX_TOOL_RESULT_CHARS) {
|
|
35
|
+
return msg;
|
|
36
|
+
}
|
|
37
|
+
console.log(`[SESSION_GUARD] Capping oversized tool result: ${totalTextChars} chars → ${HARD_MAX_TOOL_RESULT_CHARS} chars`);
|
|
38
|
+
const newContent = record.content.map((block) => {
|
|
39
|
+
if (!block || typeof block !== "object" || block.type !== "text") {
|
|
40
|
+
return block;
|
|
41
|
+
}
|
|
42
|
+
const textBlock = block;
|
|
43
|
+
if (typeof textBlock.text !== "string") {
|
|
44
|
+
return block;
|
|
45
|
+
}
|
|
46
|
+
const blockShare = textBlock.text.length / totalTextChars;
|
|
47
|
+
const blockBudget = Math.max(2_000, Math.floor(HARD_MAX_TOOL_RESULT_CHARS * blockShare) - GUARD_TRUNCATION_SUFFIX.length);
|
|
48
|
+
if (textBlock.text.length <= blockBudget) {
|
|
49
|
+
return block;
|
|
50
|
+
}
|
|
51
|
+
// Try to cut at a newline boundary
|
|
52
|
+
let cutPoint = blockBudget;
|
|
53
|
+
const lastNewline = textBlock.text.lastIndexOf("\n", blockBudget);
|
|
54
|
+
if (lastNewline > blockBudget * 0.8) {
|
|
55
|
+
cutPoint = lastNewline;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
...textBlock,
|
|
59
|
+
text: textBlock.text.slice(0, cutPoint) + GUARD_TRUNCATION_SUFFIX,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
return { ...record, content: newContent };
|
|
63
|
+
}
|
|
64
|
+
/** Extract tool calls from an assistant message. */
|
|
65
|
+
function extractAssistantToolCalls(msg) {
|
|
66
|
+
const record = msg;
|
|
67
|
+
if (record.role !== "assistant" || !Array.isArray(record.content)) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
const toolCalls = [];
|
|
71
|
+
for (const block of record.content) {
|
|
72
|
+
if (!block || typeof block !== "object")
|
|
73
|
+
continue;
|
|
74
|
+
const rec = block;
|
|
75
|
+
if (typeof rec.id !== "string" || !rec.id)
|
|
76
|
+
continue;
|
|
77
|
+
if (rec.type === "toolCall" || rec.type === "toolUse" || rec.type === "functionCall") {
|
|
78
|
+
toolCalls.push({ id: rec.id, name: rec.name });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return toolCalls;
|
|
82
|
+
}
|
|
83
|
+
/** Extract tool result ID from a tool result message. */
|
|
84
|
+
function extractToolResultId(msg) {
|
|
85
|
+
const record = msg;
|
|
86
|
+
if (typeof record.toolCallId === "string" && record.toolCallId)
|
|
87
|
+
return record.toolCallId;
|
|
88
|
+
if (typeof record.toolUseId === "string" && record.toolUseId)
|
|
89
|
+
return record.toolUseId;
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
/** Create a synthetic missing tool result. */
|
|
93
|
+
function makeMissingToolResult(params) {
|
|
94
|
+
return {
|
|
95
|
+
role: "toolResult",
|
|
96
|
+
toolCallId: params.toolCallId,
|
|
97
|
+
toolName: params.toolName ?? "unknown",
|
|
98
|
+
content: [
|
|
99
|
+
{
|
|
100
|
+
type: "text",
|
|
101
|
+
text: "[costar] missing tool result in session history; inserted synthetic error result for transcript repair.",
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
isError: true,
|
|
105
|
+
timestamp: Date.now(),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
// ─── Main Guard ──────────────────────────────────────────
|
|
109
|
+
/**
|
|
110
|
+
* Apply the tool-result guard to a SessionManager.
|
|
111
|
+
* Wraps appendMessage to cap sizes, track pending tool calls,
|
|
112
|
+
* and synthesize missing tool results before disposal.
|
|
113
|
+
*/
|
|
114
|
+
export function guardSessionManager(sessionManager) {
|
|
115
|
+
// Don't double-guard
|
|
116
|
+
if (typeof sessionManager.flushPendingToolResults === "function") {
|
|
117
|
+
return sessionManager;
|
|
118
|
+
}
|
|
119
|
+
const originalAppend = sessionManager.appendMessage.bind(sessionManager);
|
|
120
|
+
const pending = new Map();
|
|
121
|
+
const flushPendingToolResults = () => {
|
|
122
|
+
if (pending.size === 0)
|
|
123
|
+
return;
|
|
124
|
+
console.log(`[SESSION_GUARD] Flushing ${pending.size} pending synthetic tool results`);
|
|
125
|
+
for (const [id, name] of pending.entries()) {
|
|
126
|
+
const synthetic = makeMissingToolResult({ toolCallId: id, toolName: name });
|
|
127
|
+
originalAppend(synthetic);
|
|
128
|
+
}
|
|
129
|
+
pending.clear();
|
|
130
|
+
};
|
|
131
|
+
const guardedAppend = (message) => {
|
|
132
|
+
const role = message.role;
|
|
133
|
+
if (role === "toolResult") {
|
|
134
|
+
const id = extractToolResultId(message);
|
|
135
|
+
if (id)
|
|
136
|
+
pending.delete(id);
|
|
137
|
+
// Cap oversized tool results before persistence
|
|
138
|
+
const capped = capToolResultSize(message);
|
|
139
|
+
return originalAppend(capped);
|
|
140
|
+
}
|
|
141
|
+
const toolCalls = role === "assistant" ? extractAssistantToolCalls(message) : [];
|
|
142
|
+
// If previous tool calls are still pending and new non-tool-result arrives,
|
|
143
|
+
// flush synthetic results to keep the transcript valid
|
|
144
|
+
if (pending.size > 0 && toolCalls.length === 0) {
|
|
145
|
+
flushPendingToolResults();
|
|
146
|
+
}
|
|
147
|
+
// If new tool calls arrive while older ones are pending, flush old ones first
|
|
148
|
+
if (pending.size > 0 && toolCalls.length > 0) {
|
|
149
|
+
flushPendingToolResults();
|
|
150
|
+
}
|
|
151
|
+
const result = originalAppend(message);
|
|
152
|
+
// Track new tool calls as pending
|
|
153
|
+
if (toolCalls.length > 0) {
|
|
154
|
+
for (const call of toolCalls) {
|
|
155
|
+
pending.set(call.id, call.name);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
};
|
|
160
|
+
// Monkey-patch appendMessage with guarded version
|
|
161
|
+
sessionManager.appendMessage = guardedAppend;
|
|
162
|
+
sessionManager.flushPendingToolResults = flushPendingToolResults;
|
|
163
|
+
return sessionManager;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=session-tool-result-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-tool-result-guard.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/session-tool-result-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,iEAAiE;AACjE,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAE3C,MAAM,uBAAuB,GAC3B,+EAA+E;IAC/E,8EAA8E,CAAC;AASjF,kEAAkE;AAElE,kEAAkE;AAClE,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,MAAM,GAAG,GAA6C,CAAC;IAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAA2B,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvF,MAAM,IAAI,GAAI,KAA2B,CAAC,IAAI,CAAC;YAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc,IAAI,0BAA0B,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,GAAG,CACT,kDAAkD,cAAc,YAAY,0BAA0B,QAAQ,CAC/G,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;QACvD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAA2B,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,KAAuC,CAAC;QAC1D,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC,GAAG,uBAAuB,CAAC,MAAM,CACrF,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,mCAAmC;QACnC,IAAI,QAAQ,GAAG,WAAW,CAAC;QAC3B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAClE,IAAI,WAAW,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;YACpC,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QACD,OAAO;YACL,GAAG,SAAS;YACZ,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,uBAAuB;SAClE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,oDAAoD;AACpD,SAAS,yBAAyB,CAAC,GAAY;IAC7C,MAAM,MAAM,GAAG,GAA6C,CAAC;IAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,KAAsD,CAAC;QACnE,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,SAAS;QACpD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACrF,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yDAAyD;AACzD,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,MAAM,GAAG,GAAkD,CAAC;IAClE,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IACzF,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8CAA8C;AAC9C,SAAS,qBAAqB,CAAC,MAAiD;IAC9E,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,yGAAyG;aAChH;SACF;QACD,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,4DAA4D;AAE5D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,cAA8B;IAChE,qBAAqB;IACrB,IAAI,OAAQ,cAAwC,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;QAC5F,OAAO,cAAuC,CAAC;IACjD,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtD,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACnC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACvF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,cAAc,CAAC,SAAkB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE;QACzC,MAAM,IAAI,GAAI,OAA6B,CAAC,IAAI,CAAC;QAEjD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,EAAE;gBAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,gDAAgD;YAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,cAAc,CAAC,MAAe,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjF,4EAA4E;QAC5E,uDAAuD;QACvD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,uBAAuB,EAAE,CAAC;QAC5B,CAAC;QACD,8EAA8E;QAC9E,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,uBAAuB,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,OAAgB,CAAC,CAAC;QAEhD,kCAAkC;QAClC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,kDAAkD;IAClD,cAAc,CAAC,aAAa,GAAG,aAAgD,CAAC;IAC/E,cAAwC,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;IAE5F,OAAO,cAAuC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Write Lock
|
|
3
|
+
* Ported from OpenClaw's session-write-lock.ts
|
|
4
|
+
*
|
|
5
|
+
* File-based lock that prevents concurrent writes to the session file.
|
|
6
|
+
* This is critical because cron jobs, heartbeat, and chat all share the
|
|
7
|
+
* same Agent and session file — without a lock, concurrent executeTurn()
|
|
8
|
+
* calls can corrupt the JSONL session file.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Reentrant (reference counted) — same process can acquire multiple times
|
|
12
|
+
* - Stale lock detection — clears locks from dead processes
|
|
13
|
+
* - Cleanup on process exit/signals
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Acquire an exclusive write lock for a session file.
|
|
17
|
+
* Returns a release function that MUST be called in a finally block.
|
|
18
|
+
*
|
|
19
|
+
* Reentrant: if the same process already holds the lock, increments the
|
|
20
|
+
* reference count. Only the last release actually removes the lock file.
|
|
21
|
+
*/
|
|
22
|
+
export declare function acquireSessionWriteLock(params: {
|
|
23
|
+
sessionFile: string;
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
staleMs?: number;
|
|
26
|
+
}): Promise<{
|
|
27
|
+
release: () => Promise<void>;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=session-write-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-write-lock.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/session-write-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmGH;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC,CAmFD"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Write Lock
|
|
3
|
+
* Ported from OpenClaw's session-write-lock.ts
|
|
4
|
+
*
|
|
5
|
+
* File-based lock that prevents concurrent writes to the session file.
|
|
6
|
+
* This is critical because cron jobs, heartbeat, and chat all share the
|
|
7
|
+
* same Agent and session file — without a lock, concurrent executeTurn()
|
|
8
|
+
* calls can corrupt the JSONL session file.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Reentrant (reference counted) — same process can acquire multiple times
|
|
12
|
+
* - Stale lock detection — clears locks from dead processes
|
|
13
|
+
* - Cleanup on process exit/signals
|
|
14
|
+
*/
|
|
15
|
+
import fsSync from "node:fs";
|
|
16
|
+
import fs from "node:fs/promises";
|
|
17
|
+
import path from "node:path";
|
|
18
|
+
const HELD_LOCKS = new Map();
|
|
19
|
+
const CLEANUP_SIGNALS = ["SIGINT", "SIGTERM", "SIGQUIT", "SIGABRT"];
|
|
20
|
+
const cleanupHandlers = new Map();
|
|
21
|
+
function isAlive(pid) {
|
|
22
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
23
|
+
return false;
|
|
24
|
+
try {
|
|
25
|
+
process.kill(pid, 0);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Synchronously release all held locks on process exit. */
|
|
33
|
+
function releaseAllLocksSync() {
|
|
34
|
+
for (const [sessionFile, held] of HELD_LOCKS) {
|
|
35
|
+
try {
|
|
36
|
+
if (typeof held.handle.close === "function") {
|
|
37
|
+
void held.handle.close().catch(() => { });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// best effort
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
fsSync.rmSync(held.lockPath, { force: true });
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// best effort
|
|
48
|
+
}
|
|
49
|
+
HELD_LOCKS.delete(sessionFile);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
let cleanupRegistered = false;
|
|
53
|
+
function handleTerminationSignal(signal) {
|
|
54
|
+
releaseAllLocksSync();
|
|
55
|
+
const shouldReraise = process.listenerCount(signal) === 1;
|
|
56
|
+
if (shouldReraise) {
|
|
57
|
+
const handler = cleanupHandlers.get(signal);
|
|
58
|
+
if (handler) {
|
|
59
|
+
process.off(signal, handler);
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
process.kill(process.pid, signal);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// best effort
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function registerCleanupHandlers() {
|
|
70
|
+
if (cleanupRegistered)
|
|
71
|
+
return;
|
|
72
|
+
cleanupRegistered = true;
|
|
73
|
+
process.on("exit", () => {
|
|
74
|
+
releaseAllLocksSync();
|
|
75
|
+
});
|
|
76
|
+
for (const signal of CLEANUP_SIGNALS) {
|
|
77
|
+
try {
|
|
78
|
+
const handler = () => handleTerminationSignal(signal);
|
|
79
|
+
cleanupHandlers.set(signal, handler);
|
|
80
|
+
process.on(signal, handler);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// unsupported signal on this platform
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async function readLockPayload(lockPath) {
|
|
88
|
+
try {
|
|
89
|
+
const raw = await fs.readFile(lockPath, "utf8");
|
|
90
|
+
const parsed = JSON.parse(raw);
|
|
91
|
+
if (typeof parsed.pid !== "number" || typeof parsed.createdAt !== "string")
|
|
92
|
+
return null;
|
|
93
|
+
return { pid: parsed.pid, createdAt: parsed.createdAt };
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Acquire an exclusive write lock for a session file.
|
|
101
|
+
* Returns a release function that MUST be called in a finally block.
|
|
102
|
+
*
|
|
103
|
+
* Reentrant: if the same process already holds the lock, increments the
|
|
104
|
+
* reference count. Only the last release actually removes the lock file.
|
|
105
|
+
*/
|
|
106
|
+
export async function acquireSessionWriteLock(params) {
|
|
107
|
+
registerCleanupHandlers();
|
|
108
|
+
const timeoutMs = params.timeoutMs ?? 10_000;
|
|
109
|
+
const staleMs = params.staleMs ?? 30 * 60 * 1000; // 30 min
|
|
110
|
+
const sessionFile = path.resolve(params.sessionFile);
|
|
111
|
+
const sessionDir = path.dirname(sessionFile);
|
|
112
|
+
await fs.mkdir(sessionDir, { recursive: true });
|
|
113
|
+
let normalizedDir = sessionDir;
|
|
114
|
+
try {
|
|
115
|
+
normalizedDir = await fs.realpath(sessionDir);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// fall back to resolved path
|
|
119
|
+
}
|
|
120
|
+
const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
|
|
121
|
+
const lockPath = `${normalizedSessionFile}.lock`;
|
|
122
|
+
// Reentrant: already held by this process
|
|
123
|
+
const held = HELD_LOCKS.get(normalizedSessionFile);
|
|
124
|
+
if (held) {
|
|
125
|
+
held.count += 1;
|
|
126
|
+
return {
|
|
127
|
+
release: async () => {
|
|
128
|
+
const current = HELD_LOCKS.get(normalizedSessionFile);
|
|
129
|
+
if (!current)
|
|
130
|
+
return;
|
|
131
|
+
current.count -= 1;
|
|
132
|
+
if (current.count > 0)
|
|
133
|
+
return;
|
|
134
|
+
HELD_LOCKS.delete(normalizedSessionFile);
|
|
135
|
+
await current.handle.close();
|
|
136
|
+
await fs.rm(current.lockPath, { force: true });
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const startedAt = Date.now();
|
|
141
|
+
let attempt = 0;
|
|
142
|
+
while (Date.now() - startedAt < timeoutMs) {
|
|
143
|
+
attempt += 1;
|
|
144
|
+
try {
|
|
145
|
+
// Exclusive create — fails if file exists
|
|
146
|
+
const handle = await fs.open(lockPath, "wx");
|
|
147
|
+
await handle.writeFile(JSON.stringify({ pid: process.pid, createdAt: new Date().toISOString() }, null, 2), "utf8");
|
|
148
|
+
HELD_LOCKS.set(normalizedSessionFile, { count: 1, handle, lockPath });
|
|
149
|
+
return {
|
|
150
|
+
release: async () => {
|
|
151
|
+
const current = HELD_LOCKS.get(normalizedSessionFile);
|
|
152
|
+
if (!current)
|
|
153
|
+
return;
|
|
154
|
+
current.count -= 1;
|
|
155
|
+
if (current.count > 0)
|
|
156
|
+
return;
|
|
157
|
+
HELD_LOCKS.delete(normalizedSessionFile);
|
|
158
|
+
await current.handle.close();
|
|
159
|
+
await fs.rm(current.lockPath, { force: true });
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
const code = err.code;
|
|
165
|
+
if (code !== "EEXIST")
|
|
166
|
+
throw err;
|
|
167
|
+
// Lock exists — check if stale or owner is dead
|
|
168
|
+
const payload = await readLockPayload(lockPath);
|
|
169
|
+
const createdAt = payload?.createdAt ? Date.parse(payload.createdAt) : NaN;
|
|
170
|
+
const stale = !Number.isFinite(createdAt) || Date.now() - createdAt > staleMs;
|
|
171
|
+
const alive = payload?.pid ? isAlive(payload.pid) : false;
|
|
172
|
+
if (stale || !alive) {
|
|
173
|
+
await fs.rm(lockPath, { force: true });
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
// Wait with exponential backoff
|
|
177
|
+
const delay = Math.min(1000, 50 * attempt);
|
|
178
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
const payload = await readLockPayload(lockPath);
|
|
182
|
+
const owner = payload?.pid ? `pid=${payload.pid}` : "unknown";
|
|
183
|
+
throw new Error(`session file locked (timeout ${timeoutMs}ms): ${owner} ${lockPath}`);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=session-write-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-write-lock.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/session-write-lock.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED