@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.
- package/README.md +1 -4
- package/dist/agent-entra-timer.d.ts +30 -0
- package/dist/agent-entra-timer.js +98 -0
- package/dist/agent-entra-timer.js.map +1 -0
- package/dist/claude.js +0 -2
- package/dist/claude.js.map +1 -1
- package/dist/cli.js +12 -31
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -2
- package/dist/config.js.map +1 -1
- package/dist/connection.js +15 -62
- package/dist/connection.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/daemon.js.map +1 -1
- package/dist/directory-handlers.js +1 -1
- package/dist/directory-handlers.js.map +1 -1
- package/dist/history-message-transform.d.ts +47 -0
- package/dist/history-message-transform.js +107 -0
- package/dist/history-message-transform.js.map +1 -0
- package/dist/history.d.ts +3 -11
- package/dist/history.js +2 -101
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +2 -16
- package/dist/index.js.map +1 -1
- package/dist/scheduler-persistence.d.ts +28 -0
- package/dist/scheduler-persistence.js +212 -0
- package/dist/scheduler-persistence.js.map +1 -0
- package/dist/scheduler.js +14 -208
- package/dist/scheduler.js.map +1 -1
- package/dist/service.js +2 -7
- package/dist/service.js.map +1 -1
- package/dist/session-metadata.d.ts +0 -1
- package/dist/session-metadata.js.map +1 -1
- package/dist/tunnel.js +3 -1
- package/dist/tunnel.js.map +1 -1
- package/package.json +1 -1
- package/dist/auto-update.d.ts +0 -18
- package/dist/auto-update.js +0 -199
- 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.
|
package/dist/history.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,oFAAoF;AACpF,MAAM,UAAU,mBAAmB;IACjC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAU,EAAE,CAAC;QACjH,MAAM,IAAI,GAAI,OAAe,CAAC,MAAM,CAAC,CAAC;QACrC,OAAe,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;IAAE,mBAAmB,EAAE,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,
|
|
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
|