@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.
@@ -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;AAmBpB,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"}
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":"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"}
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farazirfan/costar-server-executor",
3
- "version": "1.7.9",
3
+ "version": "1.7.10",
4
4
  "description": "CoStar Server Executor - 24/7 autonomous agent in TypeScript (cloned from OpenClaw)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",