@agent-link/agent 0.1.197 → 0.1.199

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.
Files changed (41) hide show
  1. package/README.md +1 -4
  2. package/dist/agent-entra-timer.d.ts +30 -0
  3. package/dist/agent-entra-timer.js +98 -0
  4. package/dist/agent-entra-timer.js.map +1 -0
  5. package/dist/claude.js +0 -2
  6. package/dist/claude.js.map +1 -1
  7. package/dist/cli.js +12 -31
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config.d.ts +0 -1
  10. package/dist/config.js +0 -2
  11. package/dist/config.js.map +1 -1
  12. package/dist/connection.js +15 -62
  13. package/dist/connection.js.map +1 -1
  14. package/dist/daemon.js +1 -1
  15. package/dist/daemon.js.map +1 -1
  16. package/dist/directory-handlers.js +1 -1
  17. package/dist/directory-handlers.js.map +1 -1
  18. package/dist/history-message-transform.d.ts +47 -0
  19. package/dist/history-message-transform.js +107 -0
  20. package/dist/history-message-transform.js.map +1 -0
  21. package/dist/history.d.ts +3 -11
  22. package/dist/history.js +2 -101
  23. package/dist/history.js.map +1 -1
  24. package/dist/index.d.ts +0 -1
  25. package/dist/index.js +2 -16
  26. package/dist/index.js.map +1 -1
  27. package/dist/scheduler-persistence.d.ts +28 -0
  28. package/dist/scheduler-persistence.js +212 -0
  29. package/dist/scheduler-persistence.js.map +1 -0
  30. package/dist/scheduler.js +14 -208
  31. package/dist/scheduler.js.map +1 -1
  32. package/dist/service.js +2 -7
  33. package/dist/service.js.map +1 -1
  34. package/dist/session-metadata.d.ts +0 -1
  35. package/dist/session-metadata.js.map +1 -1
  36. package/dist/tunnel.js +3 -1
  37. package/dist/tunnel.js.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/auto-update.d.ts +0 -18
  40. package/dist/auto-update.js +0 -199
  41. package/dist/auto-update.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Pure user-message transformation functions, extracted from history.ts.
3
+ *
4
+ * No I/O, no side effects — these operate on raw text from JSONL files and
5
+ * produce displayable history entries. Unit-testable in isolation.
6
+ */
7
+ export const PLAN_MODE_NOTICE_RE = /^\[SYSTEM NOTICE: Plan mode has been (activated|deactivated)\.[^\]]*\]\s*/;
8
+ /** Convert a workdir path to its Claude CLI project-folder name. */
9
+ export function pathToProjectFolder(workDir) {
10
+ const sanitized = workDir.replace(/[^a-zA-Z0-9]/g, '-');
11
+ if (sanitized.length <= 200)
12
+ return sanitized;
13
+ // Hash for long paths (matches Claude CLI's Java-style hashCode)
14
+ let hash = 0;
15
+ for (let i = 0; i < workDir.length; i++) {
16
+ hash = (hash << 5) - hash + workDir.charCodeAt(i);
17
+ hash |= 0;
18
+ }
19
+ return `${sanitized.slice(0, 200)}-${Math.abs(hash).toString(36)}`;
20
+ }
21
+ /** Messages that are pure CLI metadata or system tags — always hidden */
22
+ export function isHiddenCommand(text) {
23
+ return text.includes('<local-command-caveat>') ||
24
+ text.includes('<command-name>') ||
25
+ text.includes('<task-notification>') ||
26
+ text.includes('<system-reminder>') ||
27
+ text.includes('<user-prompt-submit-hook>') ||
28
+ text.includes('<available-deferred-tools>');
29
+ }
30
+ /** Strip system-injected tags from user/assistant text */
31
+ export function stripSystemTags(text) {
32
+ return text
33
+ .replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g, '')
34
+ .replace(/<task-notification>[\s\S]*?<\/task-notification>/g, '')
35
+ .replace(/<user-prompt-submit-hook>[\s\S]*?<\/user-prompt-submit-hook>/g, '')
36
+ .replace(/<available-deferred-tools>[\s\S]*?<\/available-deferred-tools>/g, '')
37
+ .trim();
38
+ }
39
+ /** Extract displayable output from local command stdout/stderr tags */
40
+ export function extractCommandOutput(text) {
41
+ const stdoutMatch = text.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);
42
+ if (stdoutMatch)
43
+ return stdoutMatch[1].trim();
44
+ const stderrMatch = text.match(/<local-command-stderr>([\s\S]*?)<\/local-command-stderr>/);
45
+ if (stderrMatch)
46
+ return stderrMatch[1].trim();
47
+ return null;
48
+ }
49
+ /**
50
+ * Process a raw user message text through the full cleanup pipeline.
51
+ * Each step can filter, transform, or emit synthetic prefix entries.
52
+ *
53
+ * Steps (in order):
54
+ * 1. Skip hidden CLI commands
55
+ * 2. Extract command output (e.g. /cost results)
56
+ * 3. Strip system-injected XML tags
57
+ * 4. Extract plan mode notices → synthetic EnterPlanMode/ExitPlanMode dividers
58
+ */
59
+ export function processUserMessage(text, ts) {
60
+ const none = { prefixEntries: [], userEntry: null };
61
+ // 1. Hidden command → skip entirely
62
+ if (isHiddenCommand(text))
63
+ return none;
64
+ // 2. Command output → return as-is with flag
65
+ const cmdOutput = extractCommandOutput(text);
66
+ if (cmdOutput) {
67
+ return {
68
+ prefixEntries: [],
69
+ userEntry: { role: 'user', content: cmdOutput, timestamp: ts, isCommandOutput: true },
70
+ };
71
+ }
72
+ // 3. Strip system tags
73
+ let cleaned = stripSystemTags(text);
74
+ if (!cleaned)
75
+ return none;
76
+ // 4. Plan mode notice → synthetic tool divider + cleaned text
77
+ const prefixEntries = [];
78
+ const planMatch = cleaned.match(PLAN_MODE_NOTICE_RE);
79
+ if (planMatch) {
80
+ const planMode = planMatch[1] === 'activated' ? 'enter' : 'exit';
81
+ prefixEntries.push({
82
+ role: 'tool', content: '',
83
+ toolName: planMode === 'enter' ? 'EnterPlanMode' : 'ExitPlanMode',
84
+ toolInput: '{}', toolId: `plan-${ts || Date.now()}`,
85
+ timestamp: ts,
86
+ });
87
+ cleaned = cleaned.replace(PLAN_MODE_NOTICE_RE, '');
88
+ }
89
+ if (!cleaned)
90
+ return { prefixEntries, userEntry: null };
91
+ return { prefixEntries, userEntry: { role: 'user', content: cleaned, timestamp: ts } };
92
+ }
93
+ /**
94
+ * Clean user message text for display (title, preview, context).
95
+ * Strips all system artifacts without emitting synthetic entries.
96
+ */
97
+ export function cleanUserText(text) {
98
+ if (isHiddenCommand(text))
99
+ return '';
100
+ if (extractCommandOutput(text))
101
+ return '';
102
+ let cleaned = stripSystemTags(text);
103
+ if (cleaned)
104
+ cleaned = cleaned.replace(PLAN_MODE_NOTICE_RE, '');
105
+ return cleaned;
106
+ }
107
+ //# sourceMappingURL=history-message-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-message-transform.js","sourceRoot":"","sources":["../src/history-message-transform.ts"],"names":[],"mappings":"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"}
package/dist/history.d.ts CHANGED
@@ -4,6 +4,9 @@
4
4
  * Claude stores sessions as JSONL files organized by project directory.
5
5
  * Path-to-folder mapping: `/foo/bar` → `-foo-bar`, `C:\foo\bar` → `C--foo-bar`
6
6
  */
7
+ import { pathToProjectFolder, type HistoryMessage } from './history-message-transform.js';
8
+ export { pathToProjectFolder };
9
+ export type { HistoryMessage };
7
10
  export interface SessionInfo {
8
11
  sessionId: string;
9
12
  title: string;
@@ -20,17 +23,6 @@ export interface GlobalSessionInfo {
20
23
  lastModified: number;
21
24
  gitBranch?: string;
22
25
  }
23
- export interface HistoryMessage {
24
- role: 'user' | 'assistant' | 'tool';
25
- content: string;
26
- toolName?: string;
27
- toolInput?: string;
28
- toolId?: string;
29
- toolOutput?: string;
30
- timestamp?: string;
31
- isCommandOutput?: boolean;
32
- }
33
- export declare function pathToProjectFolder(workDir: string): string;
34
26
  /**
35
27
  * List sessions for a given working directory by scanning JSONL files.
36
28
  * Returns sessions sorted by lastModified descending.
package/dist/history.js CHANGED
@@ -8,110 +8,11 @@ import { homedir } from 'os';
8
8
  import { existsSync, readFileSync, readdirSync, statSync, unlinkSync, appendFileSync, createReadStream } from 'fs';
9
9
  import { join } from 'path';
10
10
  import { createInterface } from 'readline';
11
+ import { pathToProjectFolder, isHiddenCommand, extractCommandOutput, cleanUserText, processUserMessage, } from './history-message-transform.js';
12
+ export { pathToProjectFolder };
11
13
  function getClaudeProjectsDir() {
12
14
  return join(homedir(), '.claude', 'projects');
13
15
  }
14
- export function pathToProjectFolder(workDir) {
15
- const sanitized = workDir.replace(/[^a-zA-Z0-9]/g, '-');
16
- if (sanitized.length <= 200)
17
- return sanitized;
18
- // Hash for long paths (matches Claude CLI's Java-style hashCode)
19
- let hash = 0;
20
- for (let i = 0; i < workDir.length; i++) {
21
- hash = (hash << 5) - hash + workDir.charCodeAt(i);
22
- hash |= 0;
23
- }
24
- return `${sanitized.slice(0, 200)}-${Math.abs(hash).toString(36)}`;
25
- }
26
- /** Messages that are pure CLI metadata or system tags — always hidden */
27
- function isHiddenCommand(text) {
28
- return text.includes('<local-command-caveat>') ||
29
- text.includes('<command-name>') ||
30
- text.includes('<task-notification>') ||
31
- text.includes('<system-reminder>') ||
32
- text.includes('<user-prompt-submit-hook>') ||
33
- text.includes('<available-deferred-tools>');
34
- }
35
- /** Strip system-injected tags from user/assistant text */
36
- function stripSystemTags(text) {
37
- return text
38
- .replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g, '')
39
- .replace(/<task-notification>[\s\S]*?<\/task-notification>/g, '')
40
- .replace(/<user-prompt-submit-hook>[\s\S]*?<\/user-prompt-submit-hook>/g, '')
41
- .replace(/<available-deferred-tools>[\s\S]*?<\/available-deferred-tools>/g, '')
42
- .trim();
43
- }
44
- /** Extract displayable output from local command stdout/stderr tags */
45
- function extractCommandOutput(text) {
46
- const stdoutMatch = text.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);
47
- if (stdoutMatch)
48
- return stdoutMatch[1].trim();
49
- const stderrMatch = text.match(/<local-command-stderr>([\s\S]*?)<\/local-command-stderr>/);
50
- if (stderrMatch)
51
- return stderrMatch[1].trim();
52
- return null;
53
- }
54
- // ── User message preprocessing pipeline ─────────────────────────────────────
55
- // All special-case logic for transforming raw JSONL user messages into display
56
- // entries lives here. Add new transformations as steps in processUserMessage().
57
- const PLAN_MODE_NOTICE_RE = /^\[SYSTEM NOTICE: Plan mode has been (activated|deactivated)\.[^\]]*\]\s*/;
58
- /**
59
- * Process a raw user message text through the full cleanup pipeline.
60
- * Each step can filter, transform, or emit synthetic prefix entries.
61
- *
62
- * Steps (in order):
63
- * 1. Skip hidden CLI commands
64
- * 2. Extract command output (e.g. /cost results)
65
- * 3. Strip system-injected XML tags
66
- * 4. Extract plan mode notices → synthetic EnterPlanMode/ExitPlanMode dividers
67
- * (future steps go here)
68
- */
69
- function processUserMessage(text, ts) {
70
- const none = { prefixEntries: [], userEntry: null };
71
- // 1. Hidden command → skip entirely
72
- if (isHiddenCommand(text))
73
- return none;
74
- // 2. Command output → return as-is with flag
75
- const cmdOutput = extractCommandOutput(text);
76
- if (cmdOutput) {
77
- return { prefixEntries: [], userEntry: { role: 'user', content: cmdOutput, timestamp: ts, isCommandOutput: true } };
78
- }
79
- // 3. Strip system tags
80
- let cleaned = stripSystemTags(text);
81
- if (!cleaned)
82
- return none;
83
- // 4. Plan mode notice → synthetic tool divider + cleaned text
84
- const prefixEntries = [];
85
- const planMatch = cleaned.match(PLAN_MODE_NOTICE_RE);
86
- if (planMatch) {
87
- const planMode = planMatch[1] === 'activated' ? 'enter' : 'exit';
88
- prefixEntries.push({
89
- role: 'tool', content: '',
90
- toolName: planMode === 'enter' ? 'EnterPlanMode' : 'ExitPlanMode',
91
- toolInput: '{}', toolId: `plan-${ts || Date.now()}`,
92
- timestamp: ts,
93
- });
94
- cleaned = cleaned.replace(PLAN_MODE_NOTICE_RE, '');
95
- }
96
- // (future preprocessing steps go here)
97
- if (!cleaned)
98
- return { prefixEntries, userEntry: null };
99
- return { prefixEntries, userEntry: { role: 'user', content: cleaned, timestamp: ts } };
100
- }
101
- /**
102
- * Clean user message text for display (title, preview, context).
103
- * Strips all system artifacts without emitting synthetic entries.
104
- */
105
- function cleanUserText(text) {
106
- if (isHiddenCommand(text))
107
- return '';
108
- if (extractCommandOutput(text))
109
- return '';
110
- let cleaned = stripSystemTags(text);
111
- if (cleaned)
112
- cleaned = cleaned.replace(PLAN_MODE_NOTICE_RE, '');
113
- return cleaned;
114
- }
115
16
  /**
116
17
  * List sessions for a given working directory by scanning JSONL files.
117
18
  * Returns sessions sorted by lastModified descending.
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import type { AgentConfig } from './config.js';
2
2
  /** Enable timestamped console output — call once at startup for daemon/log mode. */
3
3
  export declare function enableLogTimestamps(): void;
4
- export declare function setPreserveRuntimeState(v: boolean): void;
5
4
  export declare function start(config: AgentConfig, daemon?: boolean, pidFile?: string): Promise<void>;
package/dist/index.js CHANGED
@@ -9,19 +9,11 @@ export function enableLogTimestamps() {
9
9
  // Auto-enable timestamps when output is redirected (daemon mode / nohup)
10
10
  if (!process.stdout.isTTY)
11
11
  enableLogTimestamps();
12
- import { saveRuntimeState, clearRuntimeState, writePidFile, encodeBase64Url } from './config.js';
12
+ import { saveRuntimeState, clearRuntimePid, writePidFile, encodeBase64Url } from './config.js';
13
13
  import { connect, disconnect, getE2EKey } from './connection.js';
14
- import { startAutoUpdate, stopAutoUpdate } from './auto-update.js';
15
14
  import { shutdownScheduler } from './scheduler.js';
16
15
  const require = createRequire(import.meta.url);
17
16
  const qrcode = require('qrcode-terminal');
18
- /**
19
- * When true, the shutdown handler skips clearRuntimeState() so that
20
- * agent.json (with the sessionId) survives for the replacement process.
21
- * Set by auto-update before calling process.exit().
22
- */
23
- let preserveRuntimeState = false;
24
- export function setPreserveRuntimeState(v) { preserveRuntimeState = v; }
25
17
  /** Highlight a URL with bold + underline ANSI codes if stdout supports color. */
26
18
  function highlightUrl(url) {
27
19
  if (!process.stdout.isTTY)
@@ -62,17 +54,11 @@ export async function start(config, daemon = false, pidFile) {
62
54
  if (pidFile) {
63
55
  writePidFile(pidFile, { pid: process.pid, sessionUrl, password: config.password });
64
56
  }
65
- // Start auto-update checker (opt-in, disabled by default)
66
- if (config.autoUpdate === true) {
67
- startAutoUpdate(daemon);
68
- }
69
57
  // Keep process alive, handle graceful shutdown
70
58
  const shutdown = () => {
71
59
  console.log('\n[AgentLink] Shutting down...');
72
60
  shutdownScheduler();
73
- stopAutoUpdate();
74
- if (!preserveRuntimeState)
75
- clearRuntimeState();
61
+ clearRuntimePid();
76
62
  disconnect();
77
63
  process.exit(0);
78
64
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Persistence layer for the Loop scheduler.
3
+ *
4
+ * Handles disk I/O for:
5
+ * - loops.json (Loop definitions)
6
+ * - loop-executions/<loopId>/index.jsonl (per-loop execution metadata)
7
+ * - loop-executions/<loopId>/<executionId>.jsonl (per-execution raw message log)
8
+ *
9
+ * Pure I/O — no scheduling, no in-memory state. Atomic write for loops.json
10
+ * (write tmp → rename) to survive crashes.
11
+ */
12
+ import type { ClaudeMessage } from './claude.js';
13
+ import type { HistoryMessage } from './history.js';
14
+ import type { Loop, LoopExecution } from './scheduler.js';
15
+ export declare function loadLoopsFromDisk(): Loop[];
16
+ export declare function saveLoopsToDisk(loops: Loop[]): void;
17
+ export declare function ensureExecutionDir(loopId: string): void;
18
+ export declare function getExecutionIndexPath(loopId: string): string;
19
+ export declare function getExecutionLogPath(loopId: string, executionId: string): string;
20
+ export declare function appendExecutionIndex(loopId: string, execution: LoopExecution): void;
21
+ export declare function updateExecutionIndex(loopId: string, execution: LoopExecution): void;
22
+ /**
23
+ * Read the execution index for a loop, sorted by startedAt descending.
24
+ * Caller is responsible for merging in-memory running-state overrides.
25
+ */
26
+ export declare function readExecutionIndex(loopId: string, limit: number): LoopExecution[];
27
+ export declare function appendToExecutionLog(loopId: string, executionId: string, msg: ClaudeMessage): void;
28
+ export declare function readExecutionLog(loopId: string, executionId: string): HistoryMessage[];
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Persistence layer for the Loop scheduler.
3
+ *
4
+ * Handles disk I/O for:
5
+ * - loops.json (Loop definitions)
6
+ * - loop-executions/<loopId>/index.jsonl (per-loop execution metadata)
7
+ * - loop-executions/<loopId>/<executionId>.jsonl (per-execution raw message log)
8
+ *
9
+ * Pure I/O — no scheduling, no in-memory state. Atomic write for loops.json
10
+ * (write tmp → rename) to survive crashes.
11
+ */
12
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, appendFileSync, renameSync, } from 'fs';
13
+ import { join } from 'path';
14
+ import { CONFIG_DIR } from './config.js';
15
+ const LOOPS_FILE = join(CONFIG_DIR, 'loops.json');
16
+ const EXECUTIONS_DIR = join(CONFIG_DIR, 'loop-executions');
17
+ // ── Loops ──────────────────────────────────────────────────────────────────
18
+ export function loadLoopsFromDisk() {
19
+ try {
20
+ if (!existsSync(LOOPS_FILE))
21
+ return [];
22
+ const raw = readFileSync(LOOPS_FILE, 'utf-8');
23
+ const parsed = JSON.parse(raw);
24
+ if (!Array.isArray(parsed))
25
+ return [];
26
+ return parsed;
27
+ }
28
+ catch (err) {
29
+ console.error(`[Scheduler] Failed to load loops.json: ${err.message}`);
30
+ return [];
31
+ }
32
+ }
33
+ export function saveLoopsToDisk(loops) {
34
+ try {
35
+ if (!existsSync(CONFIG_DIR)) {
36
+ mkdirSync(CONFIG_DIR, { recursive: true });
37
+ }
38
+ const tmpFile = LOOPS_FILE + '.tmp';
39
+ writeFileSync(tmpFile, JSON.stringify(loops, null, 2) + '\n', 'utf-8');
40
+ renameSync(tmpFile, LOOPS_FILE);
41
+ }
42
+ catch (err) {
43
+ console.error(`[Scheduler] Failed to save loops.json: ${err.message}`);
44
+ }
45
+ }
46
+ // ── Executions ─────────────────────────────────────────────────────────────
47
+ export function ensureExecutionDir(loopId) {
48
+ const dir = join(EXECUTIONS_DIR, loopId);
49
+ if (!existsSync(dir)) {
50
+ mkdirSync(dir, { recursive: true });
51
+ }
52
+ }
53
+ export function getExecutionIndexPath(loopId) {
54
+ return join(EXECUTIONS_DIR, loopId, 'index.jsonl');
55
+ }
56
+ export function getExecutionLogPath(loopId, executionId) {
57
+ return join(EXECUTIONS_DIR, loopId, `${executionId}.jsonl`);
58
+ }
59
+ export function appendExecutionIndex(loopId, execution) {
60
+ try {
61
+ ensureExecutionDir(loopId);
62
+ const line = JSON.stringify(execution) + '\n';
63
+ appendFileSync(getExecutionIndexPath(loopId), line, 'utf-8');
64
+ }
65
+ catch (err) {
66
+ console.error(`[Scheduler] Failed to append execution index: ${err.message}`);
67
+ }
68
+ }
69
+ export function updateExecutionIndex(loopId, execution) {
70
+ try {
71
+ const indexPath = getExecutionIndexPath(loopId);
72
+ if (!existsSync(indexPath)) {
73
+ appendExecutionIndex(loopId, execution);
74
+ return;
75
+ }
76
+ const raw = readFileSync(indexPath, 'utf-8');
77
+ const lines = raw.trim().split('\n').filter(l => l.trim());
78
+ const updated = [];
79
+ let found = false;
80
+ for (const line of lines) {
81
+ try {
82
+ const entry = JSON.parse(line);
83
+ if (entry.id === execution.id) {
84
+ updated.push(JSON.stringify(execution));
85
+ found = true;
86
+ }
87
+ else {
88
+ updated.push(line);
89
+ }
90
+ }
91
+ catch {
92
+ updated.push(line); // preserve unparseable lines
93
+ }
94
+ }
95
+ if (!found) {
96
+ updated.push(JSON.stringify(execution));
97
+ }
98
+ writeFileSync(indexPath, updated.join('\n') + '\n', 'utf-8');
99
+ }
100
+ catch (err) {
101
+ console.error(`[Scheduler] Failed to update execution index: ${err.message}`);
102
+ }
103
+ }
104
+ /**
105
+ * Read the execution index for a loop, sorted by startedAt descending.
106
+ * Caller is responsible for merging in-memory running-state overrides.
107
+ */
108
+ export function readExecutionIndex(loopId, limit) {
109
+ try {
110
+ const indexPath = getExecutionIndexPath(loopId);
111
+ if (!existsSync(indexPath))
112
+ return [];
113
+ const raw = readFileSync(indexPath, 'utf-8');
114
+ const lines = raw.trim().split('\n').filter(l => l.trim());
115
+ const executions = [];
116
+ for (const line of lines) {
117
+ try {
118
+ executions.push(JSON.parse(line));
119
+ }
120
+ catch {
121
+ // skip unparseable lines
122
+ }
123
+ }
124
+ executions.sort((a, b) => new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime());
125
+ return executions.slice(0, limit);
126
+ }
127
+ catch (err) {
128
+ console.error(`[Scheduler] Failed to read execution index: ${err.message}`);
129
+ return [];
130
+ }
131
+ }
132
+ export function appendToExecutionLog(loopId, executionId, msg) {
133
+ try {
134
+ ensureExecutionDir(loopId);
135
+ const line = JSON.stringify(msg) + '\n';
136
+ appendFileSync(getExecutionLogPath(loopId, executionId), line, 'utf-8');
137
+ }
138
+ catch (err) {
139
+ console.error(`[Scheduler] Failed to append execution log: ${err.message}`);
140
+ }
141
+ }
142
+ export function readExecutionLog(loopId, executionId) {
143
+ try {
144
+ const logPath = getExecutionLogPath(loopId, executionId);
145
+ if (!existsSync(logPath))
146
+ return [];
147
+ const raw = readFileSync(logPath, 'utf-8');
148
+ const lines = raw.trim().split('\n').filter(l => l.trim());
149
+ const result = [];
150
+ for (const line of lines) {
151
+ try {
152
+ const data = JSON.parse(line);
153
+ const ts = data.timestamp || undefined;
154
+ if (data.type === 'user' && data.message?.content) {
155
+ const content = data.message.content;
156
+ if (Array.isArray(content)) {
157
+ for (const block of content) {
158
+ if (block.type === 'tool_result' && block.content) {
159
+ const text = typeof block.content === 'string'
160
+ ? block.content
161
+ : JSON.stringify(block.content);
162
+ for (let i = result.length - 1; i >= 0; i--) {
163
+ if (result[i].role === 'tool' && result[i].toolId === block.tool_use_id) {
164
+ result[i].toolOutput = text;
165
+ break;
166
+ }
167
+ }
168
+ }
169
+ }
170
+ }
171
+ else if (typeof content === 'string' && content.trim()) {
172
+ result.push({ role: 'user', content, timestamp: ts });
173
+ }
174
+ }
175
+ if (data.type === 'assistant' && data.message?.content && Array.isArray(data.message.content)) {
176
+ const textParts = [];
177
+ const toolBlocks = [];
178
+ for (const block of data.message.content) {
179
+ if (block.type === 'text' && block.text) {
180
+ textParts.push(block.text);
181
+ }
182
+ else if (block.type === 'tool_use') {
183
+ toolBlocks.push(block);
184
+ }
185
+ }
186
+ if (textParts.length > 0) {
187
+ result.push({ role: 'assistant', content: textParts.join('\n\n'), timestamp: ts });
188
+ }
189
+ for (const tool of toolBlocks) {
190
+ result.push({
191
+ role: 'tool',
192
+ content: '',
193
+ toolName: tool.name,
194
+ toolInput: JSON.stringify(tool.input || {}),
195
+ toolId: tool.id,
196
+ timestamp: ts,
197
+ });
198
+ }
199
+ }
200
+ }
201
+ catch {
202
+ // skip unparseable lines
203
+ }
204
+ }
205
+ return result;
206
+ }
207
+ catch (err) {
208
+ console.error(`[Scheduler] Failed to read execution log: ${err.message}`);
209
+ return [];
210
+ }
211
+ }
212
+ //# sourceMappingURL=scheduler-persistence.js.map