@tschmz/imp 0.1.0 → 0.2.0
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/CHANGELOG.md +27 -0
- package/README.md +2 -2
- package/dist/application/chat-use-case.d.ts +21 -0
- package/dist/application/chat-use-case.js +106 -0
- package/dist/application/chat-use-case.js.map +1 -0
- package/dist/application/commands/utils.js +10 -3
- package/dist/application/commands/utils.js.map +1 -1
- package/dist/cli/create-cli.d.ts +4 -0
- package/dist/cli/create-cli.js +11 -0
- package/dist/cli/create-cli.js.map +1 -1
- package/dist/config/prompt-init-config.js +1 -1
- package/dist/config/prompt-init-config.js.map +1 -1
- package/dist/config/resolve-runtime-config.d.ts +1 -0
- package/dist/config/resolve-runtime-config.js +3 -6
- package/dist/config/resolve-runtime-config.js.map +1 -1
- package/dist/config/types.d.ts +4 -1
- package/dist/config/validate-secret-references.js +3 -0
- package/dist/config/validate-secret-references.js.map +1 -1
- package/dist/daemon/create-daemon.d.ts +4 -0
- package/dist/daemon/create-daemon.js +2 -2
- package/dist/daemon/create-daemon.js.map +1 -1
- package/dist/daemon/runtime-runner.d.ts +1 -1
- package/dist/daemon/types.d.ts +5 -1
- package/dist/files/tar-archive.js +4 -2
- package/dist/files/tar-archive.js.map +1 -1
- package/dist/logging/file-logger.d.ts +1 -0
- package/dist/logging/file-logger.js +17 -5
- package/dist/logging/file-logger.js.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/dist/runtime/message-mapping.d.ts +1 -3
- package/dist/runtime/message-mapping.js +2 -23
- package/dist/runtime/message-mapping.js.map +1 -1
- package/dist/runtime/tool-resolution.js +7 -6
- package/dist/runtime/tool-resolution.js.map +1 -1
- package/dist/service/install-plan.js +3 -1
- package/dist/service/install-plan.js.map +1 -1
- package/dist/service/platforms/linux-systemd-user-adapter.js +9 -2
- package/dist/service/platforms/linux-systemd-user-adapter.js.map +1 -1
- package/dist/storage/fs-store.js +4 -211
- package/dist/storage/fs-store.js.map +1 -1
- package/dist/transports/builtins.js +7 -1
- package/dist/transports/builtins.js.map +1 -1
- package/dist/transports/cli/cli-transport.d.ts +4 -0
- package/dist/transports/cli/cli-transport.js +224 -0
- package/dist/transports/cli/cli-transport.js.map +1 -0
- package/dist/transports/cli/transport-adapter.d.ts +18 -0
- package/dist/transports/cli/transport-adapter.js +44 -0
- package/dist/transports/cli/transport-adapter.js.map +1 -0
- package/dist/transports/telegram/transport-adapter.js +8 -1
- package/dist/transports/telegram/transport-adapter.js.map +1 -1
- package/package.json +2 -1
|
@@ -7,20 +7,30 @@ const LOG_LEVEL_PRIORITY = {
|
|
|
7
7
|
error: 40,
|
|
8
8
|
};
|
|
9
9
|
export function createFileLogger(path, level = "info") {
|
|
10
|
+
return createFileLoggerWithOptions(path, level, { writeConsole: true });
|
|
11
|
+
}
|
|
12
|
+
export function createFileOnlyLogger(path, level = "info") {
|
|
13
|
+
return createFileLoggerWithOptions(path, level, { writeConsole: false });
|
|
14
|
+
}
|
|
15
|
+
function createFileLoggerWithOptions(path, level, options) {
|
|
10
16
|
return {
|
|
11
17
|
async debug(message, fields) {
|
|
12
18
|
if (!shouldLog("debug", level)) {
|
|
13
19
|
return;
|
|
14
20
|
}
|
|
15
21
|
await writeLogLine(path, "DEBUG", message, fields);
|
|
16
|
-
|
|
22
|
+
if (options.writeConsole) {
|
|
23
|
+
console.debug(formatConsoleLog(message, fields));
|
|
24
|
+
}
|
|
17
25
|
},
|
|
18
26
|
async info(message, fields) {
|
|
19
27
|
if (!shouldLog("info", level)) {
|
|
20
28
|
return;
|
|
21
29
|
}
|
|
22
30
|
await writeLogLine(path, "INFO", message, fields);
|
|
23
|
-
|
|
31
|
+
if (options.writeConsole) {
|
|
32
|
+
console.log(formatConsoleLog(message, fields));
|
|
33
|
+
}
|
|
24
34
|
},
|
|
25
35
|
async error(message, fields, error) {
|
|
26
36
|
if (!shouldLog("error", level)) {
|
|
@@ -30,9 +40,11 @@ export function createFileLogger(path, level = "info") {
|
|
|
30
40
|
if (error !== undefined) {
|
|
31
41
|
await writeLogLine(path, "ERROR", formatError(error), fields);
|
|
32
42
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
if (options.writeConsole) {
|
|
44
|
+
console.error(formatConsoleLog(message, fields));
|
|
45
|
+
if (error !== undefined) {
|
|
46
|
+
console.error(error);
|
|
47
|
+
}
|
|
36
48
|
}
|
|
37
49
|
},
|
|
38
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-logger.js","sourceRoot":"","sources":["../../src/logging/file-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,kBAAkB,GAA6B;IACnD,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAkB,MAAM;IACrE,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,MAAkB;YAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"file-logger.js","sourceRoot":"","sources":["../../src/logging/file-logger.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createBackupUseCases } from "./application/backup-use-cases.js";
|
|
3
|
+
import { createChatUseCase } from "./application/chat-use-case.js";
|
|
3
4
|
import { createGetConfigValueUseCase } from "./application/get-config-value-use-case.js";
|
|
4
5
|
import { createInitConfigUseCase } from "./application/init-config-use-case.js";
|
|
5
6
|
import { createReloadConfigUseCase } from "./application/reload-config-use-case.js";
|
|
@@ -29,6 +30,7 @@ async function main() {
|
|
|
29
30
|
const outcome = await runDaemonUseCase(options);
|
|
30
31
|
presentRunDaemonOutcome(outcome);
|
|
31
32
|
},
|
|
33
|
+
startChat: createChatUseCase(),
|
|
32
34
|
viewLogs: createViewLogsUseCase(),
|
|
33
35
|
validateConfig: validateConfigUseCase,
|
|
34
36
|
reloadConfig: createReloadConfigUseCase(),
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import type { AgentMessage } from "@mariozechner/pi-agent-core";
|
|
2
|
-
import type { Api as AiApi, AssistantMessage, Model, ToolResultMessage,
|
|
2
|
+
import type { Api as AiApi, AssistantMessage, Model, ToolResultMessage, UserMessage } from "@mariozechner/pi-ai";
|
|
3
3
|
import type { ConversationEvent } from "../domain/conversation.js";
|
|
4
|
-
declare const EMPTY_USAGE: Usage;
|
|
5
4
|
export declare function toAgentMessages(messages: ConversationEvent[], model: Model<AiApi>): Array<UserMessage | AssistantMessage | ToolResultMessage>;
|
|
6
5
|
export declare function toConversationEvents(messages: AgentMessage[], options: {
|
|
7
6
|
parentMessageId: string;
|
|
8
7
|
correlationId: string;
|
|
9
8
|
}): ConversationEvent[];
|
|
10
9
|
export declare function getAssistantText(message: AssistantMessage): string;
|
|
11
|
-
export { EMPTY_USAGE };
|
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
const TRANSCRIBED_MESSAGE_PREFIX = "[Transcribed from a Telegram voice message. Automatic speech recognition may contain mistakes. If the request seems unclear or inconsistent with the conversation, ask a brief clarifying question before acting on uncertain details.]\n";
|
|
2
|
-
const EMPTY_USAGE = {
|
|
3
|
-
input: 0,
|
|
4
|
-
output: 0,
|
|
5
|
-
cacheRead: 0,
|
|
6
|
-
cacheWrite: 0,
|
|
7
|
-
totalTokens: 0,
|
|
8
|
-
cost: {
|
|
9
|
-
input: 0,
|
|
10
|
-
output: 0,
|
|
11
|
-
cacheRead: 0,
|
|
12
|
-
cacheWrite: 0,
|
|
13
|
-
total: 0,
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
2
|
export function toAgentMessages(messages, model) {
|
|
17
3
|
return messages.map((message) => {
|
|
18
4
|
if (message.role === "user") {
|
|
@@ -40,8 +26,8 @@ export function toAgentMessages(messages, model) {
|
|
|
40
26
|
provider: message.provider ?? model.provider,
|
|
41
27
|
model: message.model ?? model.id,
|
|
42
28
|
...(message.responseId ? { responseId: message.responseId } : {}),
|
|
43
|
-
usage: message.usage
|
|
44
|
-
stopReason: message.stopReason
|
|
29
|
+
usage: message.usage,
|
|
30
|
+
stopReason: message.stopReason,
|
|
45
31
|
...(message.errorMessage ? { errorMessage: message.errorMessage } : {}),
|
|
46
32
|
timestamp: resolveMessageTimestamp(message),
|
|
47
33
|
};
|
|
@@ -113,17 +99,10 @@ function resolveMessageTimestamp(message) {
|
|
|
113
99
|
const parsed = Date.parse(message.createdAt);
|
|
114
100
|
return Number.isNaN(parsed) ? Date.now() : parsed;
|
|
115
101
|
}
|
|
116
|
-
function inferLegacyAssistantStopReason(message) {
|
|
117
|
-
if (message.errorMessage !== undefined) {
|
|
118
|
-
return "error";
|
|
119
|
-
}
|
|
120
|
-
return message.content.some((content) => content.type === "toolCall") ? "toolUse" : "stop";
|
|
121
|
-
}
|
|
122
102
|
export function getAssistantText(message) {
|
|
123
103
|
return message.content
|
|
124
104
|
.filter((content) => content.type === "text")
|
|
125
105
|
.map((content) => content.text)
|
|
126
106
|
.join("\n");
|
|
127
107
|
}
|
|
128
|
-
export { EMPTY_USAGE };
|
|
129
108
|
//# sourceMappingURL=message-mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-mapping.js","sourceRoot":"","sources":["../../src/runtime/message-mapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message-mapping.js","sourceRoot":"","sources":["../../src/runtime/message-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readFile, stat } from "node:fs/promises";
|
|
2
|
-
import { delimiter as pathDelimiter } from "node:path";
|
|
2
|
+
import { delimiter as pathDelimiter, resolve } from "node:path";
|
|
3
3
|
import { createFindTool, createGrepTool, createLsTool, createCodingTools } from "@mariozechner/pi-coding-agent";
|
|
4
4
|
import { createToolRegistry } from "../tools/registry.js";
|
|
5
5
|
export function resolveWorkingDirectory(agent) {
|
|
@@ -215,14 +215,15 @@ function createSetWorkingDirectoryTool(workingDirectoryState) {
|
|
|
215
215
|
parameters,
|
|
216
216
|
async execute(_toolCallId, params) {
|
|
217
217
|
const { path } = parseSetWorkingDirectoryParams(params);
|
|
218
|
-
const
|
|
218
|
+
const workingDirectory = resolve(workingDirectoryState.get(), path);
|
|
219
|
+
const directoryStats = await stat(workingDirectory);
|
|
219
220
|
if (!directoryStats.isDirectory()) {
|
|
220
|
-
throw new Error(`Not a directory: ${
|
|
221
|
+
throw new Error(`Not a directory: ${workingDirectory}`);
|
|
221
222
|
}
|
|
222
|
-
workingDirectoryState.set(
|
|
223
|
+
workingDirectoryState.set(workingDirectory);
|
|
223
224
|
return {
|
|
224
|
-
content: [{ type: "text", text:
|
|
225
|
-
details: { workingDirectory
|
|
225
|
+
content: [{ type: "text", text: workingDirectory }],
|
|
226
|
+
details: { workingDirectory },
|
|
226
227
|
};
|
|
227
228
|
},
|
|
228
229
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-resolution.js","sourceRoot":"","sources":["../../src/runtime/tool-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-resolution.js","sourceRoot":"","sources":["../../src/runtime/tool-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@ export function createServiceInstallPlan(options) {
|
|
|
18
18
|
command: commandLine.command,
|
|
19
19
|
args: commandLine.args,
|
|
20
20
|
environmentPath: platform === "linux-systemd-user"
|
|
21
|
-
?
|
|
21
|
+
? options.environmentPath
|
|
22
|
+
? resolve(options.environmentPath)
|
|
23
|
+
: resolve(dirname(configPath), "service.env")
|
|
22
24
|
: undefined,
|
|
23
25
|
};
|
|
24
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-plan.js","sourceRoot":"","sources":["../../src/service/install-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAgBxF,MAAM,UAAU,wBAAwB,CAAC,OAMxC;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,yBAAyB,CAAC;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU;KACX,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,SAAS;QACvB,UAAU;QACV,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC;QACrC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,eAAe,EACb,QAAQ,KAAK,oBAAoB;YAC/B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"install-plan.js","sourceRoot":"","sources":["../../src/service/install-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ export const linuxSystemdUserAdapter = {
|
|
|
12
12
|
"",
|
|
13
13
|
"[Service]",
|
|
14
14
|
"Type=simple",
|
|
15
|
-
`WorkingDirectory=${plan.workingDirectory}`,
|
|
16
|
-
...(plan.environmentPath ? [`EnvironmentFile=${plan.environmentPath}`] : []),
|
|
15
|
+
`WorkingDirectory=${escapeSystemdPath(plan.workingDirectory)}`,
|
|
16
|
+
...(plan.environmentPath ? [`EnvironmentFile=${escapeSystemdPath(plan.environmentPath)}`] : []),
|
|
17
17
|
`ExecStart=${[plan.command, ...plan.args].map(quoteSystemdValue).join(" ")}`,
|
|
18
18
|
"Restart=on-failure",
|
|
19
19
|
"RestartSec=3",
|
|
@@ -96,4 +96,11 @@ export const linuxSystemdUserAdapter = {
|
|
|
96
96
|
function quoteSystemdValue(value) {
|
|
97
97
|
return `"${value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"`;
|
|
98
98
|
}
|
|
99
|
+
function escapeSystemdPath(value) {
|
|
100
|
+
return value
|
|
101
|
+
.replaceAll("\\", "\\\\")
|
|
102
|
+
.replaceAll("%", "%%")
|
|
103
|
+
.replaceAll("\"", "\\x22")
|
|
104
|
+
.replaceAll(" ", "\\x20");
|
|
105
|
+
}
|
|
99
106
|
//# sourceMappingURL=linux-systemd-user-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux-systemd-user-adapter.js","sourceRoot":"","sources":["../../../src/service/platforms/linux-systemd-user-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,GAGnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,QAAQ,EAAE,oBAAoB;IAC9B,gBAAgB,CAAC,IAAwB;QACvC,OAAO;YACL,QAAQ;YACR,wBAAwB;YACxB,6BAA6B;YAC7B,6BAA6B;YAC7B,EAAE;YACF,WAAW;YACX,aAAa;YACb,oBAAoB,IAAI,CAAC,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"linux-systemd-user-adapter.js","sourceRoot":"","sources":["../../../src/service/platforms/linux-systemd-user-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/fs-store.js
CHANGED
|
@@ -2,31 +2,11 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { mkdir, open, readFile, readdir, rename, rm, writeFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
const conversationWriteQueues = new Map();
|
|
5
|
-
const legacySessionId = "legacy";
|
|
6
5
|
// The critical section is intentionally short: read latest snapshot, compute next state, atomically rename.
|
|
7
6
|
// A short-lived lock file guards that section across processes while the in-memory queue serializes writers locally.
|
|
8
7
|
const lockTtlMs = 30_000;
|
|
9
8
|
const lockRetryDelayMs = 25;
|
|
10
9
|
const lockRetryCount = 400;
|
|
11
|
-
const LEGACY_ASSISTANT_REPLAY_SOURCE = {
|
|
12
|
-
api: "legacy",
|
|
13
|
-
provider: "legacy",
|
|
14
|
-
model: "legacy",
|
|
15
|
-
};
|
|
16
|
-
const EMPTY_USAGE = {
|
|
17
|
-
input: 0,
|
|
18
|
-
output: 0,
|
|
19
|
-
cacheRead: 0,
|
|
20
|
-
cacheWrite: 0,
|
|
21
|
-
totalTokens: 0,
|
|
22
|
-
cost: {
|
|
23
|
-
input: 0,
|
|
24
|
-
output: 0,
|
|
25
|
-
cacheRead: 0,
|
|
26
|
-
cacheWrite: 0,
|
|
27
|
-
total: 0,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
10
|
function getChatDir(conversationsDir, ref) {
|
|
31
11
|
return join(conversationsDir, sanitizePathSegment(ref.transport), sanitizePathSegment(ref.externalId));
|
|
32
12
|
}
|
|
@@ -53,7 +33,6 @@ export function createFsConversationStore(paths) {
|
|
|
53
33
|
return readSessionSnapshot(ref, paths.conversationsDir);
|
|
54
34
|
}
|
|
55
35
|
return withConversationWriteQueue(ref, async () => withConversationLock(paths.conversationsDir, ref, async () => {
|
|
56
|
-
await migrateLegacyConversationIfNeeded(paths.conversationsDir, ref);
|
|
57
36
|
const activeRef = await readActiveConversationRef(paths.conversationsDir, ref);
|
|
58
37
|
if (!activeRef) {
|
|
59
38
|
return undefined;
|
|
@@ -76,14 +55,12 @@ export function createFsConversationStore(paths) {
|
|
|
76
55
|
},
|
|
77
56
|
async listBackups(ref) {
|
|
78
57
|
return withConversationWriteQueue(ref, async () => withConversationLock(paths.conversationsDir, ref, async () => {
|
|
79
|
-
await migrateLegacyConversationIfNeeded(paths.conversationsDir, ref);
|
|
80
58
|
const activeRef = await readActiveConversationRef(paths.conversationsDir, ref);
|
|
81
59
|
return readInactiveSessions(paths.conversationsDir, ref, activeRef?.sessionId);
|
|
82
60
|
}));
|
|
83
61
|
},
|
|
84
62
|
async restore(ref, backupId) {
|
|
85
63
|
return withConversationWriteQueue(ref, async () => withConversationLock(paths.conversationsDir, ref, async () => {
|
|
86
|
-
await migrateLegacyConversationIfNeeded(paths.conversationsDir, ref);
|
|
87
64
|
const summaries = await readInactiveSessions(paths.conversationsDir, ref);
|
|
88
65
|
const selected = summaries.find((summary) => summary.id === backupId);
|
|
89
66
|
if (!selected) {
|
|
@@ -99,7 +76,6 @@ export function createFsConversationStore(paths) {
|
|
|
99
76
|
},
|
|
100
77
|
async create(ref, options) {
|
|
101
78
|
return withConversationWriteQueue(ref, async () => withConversationLock(paths.conversationsDir, ref, async () => {
|
|
102
|
-
await migrateLegacyConversationIfNeeded(paths.conversationsDir, ref);
|
|
103
79
|
const context = createEmptyConversationContext(ref, options);
|
|
104
80
|
await writeConversationSnapshot(paths.conversationsDir, context);
|
|
105
81
|
await writeActiveConversationRef(paths.conversationsDir, context.state.conversation);
|
|
@@ -108,7 +84,6 @@ export function createFsConversationStore(paths) {
|
|
|
108
84
|
},
|
|
109
85
|
async ensureActive(ref, options) {
|
|
110
86
|
return withConversationWriteQueue(ref, async () => withConversationLock(paths.conversationsDir, ref, async () => {
|
|
111
|
-
await migrateLegacyConversationIfNeeded(paths.conversationsDir, ref);
|
|
112
87
|
const activeRef = await readActiveConversationRef(paths.conversationsDir, ref);
|
|
113
88
|
if (activeRef) {
|
|
114
89
|
const existing = await readSessionSnapshot(activeRef, paths.conversationsDir);
|
|
@@ -183,7 +158,7 @@ function pathsafeRef(ref, sessionId) {
|
|
|
183
158
|
};
|
|
184
159
|
}
|
|
185
160
|
function toBackupSummary(snapshot) {
|
|
186
|
-
const sessionId = snapshot.state.conversation
|
|
161
|
+
const sessionId = requireSessionId(snapshot.state.conversation);
|
|
187
162
|
return {
|
|
188
163
|
id: sessionId,
|
|
189
164
|
sessionId,
|
|
@@ -238,89 +213,6 @@ async function writeActiveConversationRef(conversationsDir, ref) {
|
|
|
238
213
|
await writeFile(tempPath, `${JSON.stringify({ sessionId: ref.sessionId }, null, 2)}\n`, "utf8");
|
|
239
214
|
await rename(tempPath, activePath);
|
|
240
215
|
}
|
|
241
|
-
async function migrateLegacyConversationIfNeeded(conversationsDir, ref) {
|
|
242
|
-
const activeRef = await readActiveConversationRef(conversationsDir, ref);
|
|
243
|
-
if (activeRef) {
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
const legacy = await readLegacyConversation(conversationsDir, ref);
|
|
247
|
-
if (!legacy) {
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
const migratedRef = {
|
|
251
|
-
transport: ref.transport,
|
|
252
|
-
externalId: ref.externalId,
|
|
253
|
-
sessionId: legacySessionId,
|
|
254
|
-
};
|
|
255
|
-
const migrated = normalizeSnapshot({
|
|
256
|
-
...legacy,
|
|
257
|
-
state: {
|
|
258
|
-
...legacy.state,
|
|
259
|
-
conversation: migratedRef,
|
|
260
|
-
},
|
|
261
|
-
});
|
|
262
|
-
const snapshotPath = getSessionSnapshotPath(conversationsDir, migratedRef);
|
|
263
|
-
const tempPath = `${snapshotPath}.${process.pid}.tmp`;
|
|
264
|
-
await mkdir(dirname(snapshotPath), { recursive: true });
|
|
265
|
-
await writeFile(tempPath, JSON.stringify(migrated, null, 2));
|
|
266
|
-
await rename(tempPath, snapshotPath);
|
|
267
|
-
await writeActiveConversationRef(conversationsDir, migratedRef);
|
|
268
|
-
}
|
|
269
|
-
async function readLegacyConversation(conversationsDir, ref) {
|
|
270
|
-
const snapshotPath = join(getChatDir(conversationsDir, ref), "conversation.json");
|
|
271
|
-
try {
|
|
272
|
-
const raw = await readFile(snapshotPath, "utf8");
|
|
273
|
-
return normalizeSnapshot(JSON.parse(raw));
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
if (!isMissingFile(error)) {
|
|
277
|
-
throw error;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
const statePath = join(getChatDir(conversationsDir, ref), "meta.json");
|
|
281
|
-
try {
|
|
282
|
-
const raw = await readFile(statePath, "utf8");
|
|
283
|
-
const state = JSON.parse(raw);
|
|
284
|
-
const messages = await readLegacyMessages(conversationsDir, ref);
|
|
285
|
-
return normalizeSnapshot({
|
|
286
|
-
state: {
|
|
287
|
-
conversation: {
|
|
288
|
-
transport: ref.transport,
|
|
289
|
-
externalId: ref.externalId,
|
|
290
|
-
sessionId: legacySessionId,
|
|
291
|
-
},
|
|
292
|
-
agentId: state.agentId,
|
|
293
|
-
...(typeof state.title === "string" ? { title: state.title } : {}),
|
|
294
|
-
...(typeof state.workingDirectory === "string"
|
|
295
|
-
? { workingDirectory: state.workingDirectory }
|
|
296
|
-
: {}),
|
|
297
|
-
createdAt: state.createdAt,
|
|
298
|
-
updatedAt: state.updatedAt,
|
|
299
|
-
version: state.version,
|
|
300
|
-
},
|
|
301
|
-
messages,
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
catch (error) {
|
|
305
|
-
if (isMissingFile(error)) {
|
|
306
|
-
return undefined;
|
|
307
|
-
}
|
|
308
|
-
throw error;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
async function readLegacyMessages(conversationsDir, ref) {
|
|
312
|
-
const path = join(getChatDir(conversationsDir, ref), "messages.json");
|
|
313
|
-
try {
|
|
314
|
-
const raw = await readFile(path, "utf8");
|
|
315
|
-
return JSON.parse(raw).map((message) => normalizeConversationEvent(message));
|
|
316
|
-
}
|
|
317
|
-
catch (error) {
|
|
318
|
-
if (isMissingFile(error)) {
|
|
319
|
-
return [];
|
|
320
|
-
}
|
|
321
|
-
throw error;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
216
|
function normalizeSnapshot(snapshot) {
|
|
325
217
|
return {
|
|
326
218
|
...snapshot,
|
|
@@ -395,18 +287,6 @@ function areMessagesEqual(left, right) {
|
|
|
395
287
|
return JSON.stringify(left) === JSON.stringify(right);
|
|
396
288
|
}
|
|
397
289
|
function normalizeConversationEvent(message) {
|
|
398
|
-
if (isLegacyToolCallEvent(message)) {
|
|
399
|
-
return normalizeLegacyToolCallEvent(message);
|
|
400
|
-
}
|
|
401
|
-
if (isLegacyToolResultEvent(message)) {
|
|
402
|
-
return normalizeLegacyToolResultEvent(message);
|
|
403
|
-
}
|
|
404
|
-
if (isLegacyUserMessage(message)) {
|
|
405
|
-
return normalizeLegacyUserMessage(message);
|
|
406
|
-
}
|
|
407
|
-
if (isLegacyAssistantMessage(message)) {
|
|
408
|
-
return normalizeLegacyAssistantMessage(message);
|
|
409
|
-
}
|
|
410
290
|
if (isConversationUserMessage(message)) {
|
|
411
291
|
return normalizeConversationUserMessage(message);
|
|
412
292
|
}
|
|
@@ -435,12 +315,8 @@ function normalizeConversationAssistantMessage(message) {
|
|
|
435
315
|
arguments: content.arguments ?? {},
|
|
436
316
|
}
|
|
437
317
|
: content),
|
|
438
|
-
|
|
439
|
-
stopReason: message.stopReason ?? inferAssistantStopReason(message),
|
|
318
|
+
stopReason: message.stopReason,
|
|
440
319
|
timestamp: normalizeTimestamp(message.timestamp, message.createdAt),
|
|
441
|
-
...(message.api ? {} : LEGACY_ASSISTANT_REPLAY_SOURCE),
|
|
442
|
-
...(message.provider ? {} : { provider: LEGACY_ASSISTANT_REPLAY_SOURCE.provider }),
|
|
443
|
-
...(message.model ? {} : { model: LEGACY_ASSISTANT_REPLAY_SOURCE.model }),
|
|
444
320
|
};
|
|
445
321
|
}
|
|
446
322
|
function normalizeConversationToolResultMessage(message) {
|
|
@@ -452,69 +328,6 @@ function normalizeConversationToolResultMessage(message) {
|
|
|
452
328
|
isError: message.isError ?? false,
|
|
453
329
|
};
|
|
454
330
|
}
|
|
455
|
-
function normalizeLegacyUserMessage(message) {
|
|
456
|
-
return {
|
|
457
|
-
kind: "message",
|
|
458
|
-
id: message.id,
|
|
459
|
-
role: "user",
|
|
460
|
-
content: message.text,
|
|
461
|
-
createdAt: message.createdAt,
|
|
462
|
-
timestamp: normalizeTimestamp(undefined, message.createdAt),
|
|
463
|
-
...(message.correlationId ? { correlationId: message.correlationId } : {}),
|
|
464
|
-
...(message.source ? { source: message.source } : {}),
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
function normalizeLegacyAssistantMessage(message) {
|
|
468
|
-
return {
|
|
469
|
-
kind: "message",
|
|
470
|
-
id: message.id,
|
|
471
|
-
role: "assistant",
|
|
472
|
-
content: [{ type: "text", text: message.text }],
|
|
473
|
-
createdAt: message.createdAt,
|
|
474
|
-
timestamp: normalizeTimestamp(undefined, message.createdAt),
|
|
475
|
-
...(message.correlationId ? { correlationId: message.correlationId } : {}),
|
|
476
|
-
...LEGACY_ASSISTANT_REPLAY_SOURCE,
|
|
477
|
-
usage: EMPTY_USAGE,
|
|
478
|
-
stopReason: "stop",
|
|
479
|
-
};
|
|
480
|
-
}
|
|
481
|
-
function normalizeLegacyToolCallEvent(message) {
|
|
482
|
-
return {
|
|
483
|
-
kind: "message",
|
|
484
|
-
id: message.id,
|
|
485
|
-
role: "assistant",
|
|
486
|
-
createdAt: message.createdAt,
|
|
487
|
-
timestamp: normalizeTimestamp(undefined, message.createdAt),
|
|
488
|
-
...(message.correlationId ? { correlationId: message.correlationId } : {}),
|
|
489
|
-
...LEGACY_ASSISTANT_REPLAY_SOURCE,
|
|
490
|
-
usage: EMPTY_USAGE,
|
|
491
|
-
stopReason: "toolUse",
|
|
492
|
-
content: [
|
|
493
|
-
...(message.text ? [{ type: "text", text: message.text }] : []),
|
|
494
|
-
...message.toolCalls.map((toolCall) => ({
|
|
495
|
-
type: "toolCall",
|
|
496
|
-
id: toolCall.id,
|
|
497
|
-
name: toolCall.name,
|
|
498
|
-
arguments: toolCall.arguments ?? {},
|
|
499
|
-
})),
|
|
500
|
-
],
|
|
501
|
-
};
|
|
502
|
-
}
|
|
503
|
-
function normalizeLegacyToolResultEvent(message) {
|
|
504
|
-
return {
|
|
505
|
-
kind: "message",
|
|
506
|
-
id: message.id,
|
|
507
|
-
role: "toolResult",
|
|
508
|
-
createdAt: message.createdAt,
|
|
509
|
-
timestamp: normalizeTimestamp(undefined, message.createdAt),
|
|
510
|
-
...(message.correlationId ? { correlationId: message.correlationId } : {}),
|
|
511
|
-
toolCallId: message.toolCallId,
|
|
512
|
-
toolName: message.toolName,
|
|
513
|
-
content: normalizeToolResultContent(message.content),
|
|
514
|
-
...(message.details !== undefined ? { details: message.details } : {}),
|
|
515
|
-
isError: message.isError ?? false,
|
|
516
|
-
};
|
|
517
|
-
}
|
|
518
331
|
function normalizeUserContent(content) {
|
|
519
332
|
if (content === undefined) {
|
|
520
333
|
return "";
|
|
@@ -534,24 +347,6 @@ function normalizeTimestamp(timestamp, createdAt) {
|
|
|
534
347
|
const parsed = Date.parse(createdAt);
|
|
535
348
|
return Number.isNaN(parsed) ? Date.now() : parsed;
|
|
536
349
|
}
|
|
537
|
-
function inferAssistantStopReason(message) {
|
|
538
|
-
if (message.errorMessage !== undefined) {
|
|
539
|
-
return "error";
|
|
540
|
-
}
|
|
541
|
-
return message.content.some((content) => content.type === "toolCall") ? "toolUse" : "stop";
|
|
542
|
-
}
|
|
543
|
-
function isLegacyUserMessage(message) {
|
|
544
|
-
return hasMessageRole(message, "user") && hasProperty(message, "text");
|
|
545
|
-
}
|
|
546
|
-
function isLegacyAssistantMessage(message) {
|
|
547
|
-
return hasMessageRole(message, "assistant") && hasProperty(message, "text");
|
|
548
|
-
}
|
|
549
|
-
function isLegacyToolCallEvent(message) {
|
|
550
|
-
return hasKind(message, "tool-call");
|
|
551
|
-
}
|
|
552
|
-
function isLegacyToolResultEvent(message) {
|
|
553
|
-
return hasKind(message, "tool-result");
|
|
554
|
-
}
|
|
555
350
|
function isConversationUserMessage(message) {
|
|
556
351
|
return hasMessageRole(message, "user") && hasProperty(message, "content");
|
|
557
352
|
}
|
|
@@ -561,9 +356,6 @@ function isConversationAssistantMessage(message) {
|
|
|
561
356
|
function isConversationToolResultMessage(message) {
|
|
562
357
|
return hasMessageRole(message, "toolResult") && hasProperty(message, "content");
|
|
563
358
|
}
|
|
564
|
-
function hasKind(message, kind) {
|
|
565
|
-
return typeof message === "object" && message !== null && "kind" in message && message.kind === kind;
|
|
566
|
-
}
|
|
567
359
|
function hasMessageRole(message, role) {
|
|
568
360
|
return typeof message === "object" && message !== null && "role" in message && message.role === role;
|
|
569
361
|
}
|
|
@@ -696,7 +488,8 @@ function isAlreadyExistsError(error) {
|
|
|
696
488
|
return typeof error === "object" && error !== null && "code" in error && error.code === "EEXIST";
|
|
697
489
|
}
|
|
698
490
|
function sanitizePathSegment(value) {
|
|
699
|
-
|
|
491
|
+
const sanitized = value.replaceAll(/[\\/]/g, "_");
|
|
492
|
+
return sanitized.length === 0 || sanitized === "." || sanitized === ".." ? "_" : sanitized;
|
|
700
493
|
}
|
|
701
494
|
function requireSessionId(ref) {
|
|
702
495
|
if (!ref.sessionId) {
|