adhdev 0.8.98 → 0.8.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +257 -46
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +257 -46
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/defaults.d.mts +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/defaults.d.ts +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/defaults.js +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/defaults.js.map +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/defaults.mjs +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/defaults.mjs.map +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/index.js +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/index.js.map +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/index.mjs +1 -1
- package/vendor/session-host-daemon/node_modules/@adhdev/session-host-core/index.mjs.map +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/defaults.d.mts +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/defaults.d.ts +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/defaults.js +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/defaults.js.map +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/defaults.mjs +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/defaults.mjs.map +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/index.js +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/index.js.map +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/index.mjs +1 -1
- package/vendor/terminal-mux-cli/node_modules/@adhdev/session-host-core/index.mjs.map +1 -1
package/dist/index.js
CHANGED
|
@@ -739,6 +739,9 @@ function normalizeProviderSessionId(providerType, providerSessionId) {
|
|
|
739
739
|
if (normalizedProviderType === "hermes-cli" && !HERMES_SESSION_ID_RE.test(normalizedId)) {
|
|
740
740
|
return "";
|
|
741
741
|
}
|
|
742
|
+
if (normalizedProviderType === "claude-cli" && !CLAUDE_SESSION_ID_RE.test(normalizedId)) {
|
|
743
|
+
return "";
|
|
744
|
+
}
|
|
742
745
|
return normalizedId;
|
|
743
746
|
}
|
|
744
747
|
function isLegacyVolatileSessionReadKey(key) {
|
|
@@ -746,11 +749,12 @@ function isLegacyVolatileSessionReadKey(key) {
|
|
|
746
749
|
if (!normalizedKey) return false;
|
|
747
750
|
return normalizedKey.startsWith("provider:codex:vscode-webview://");
|
|
748
751
|
}
|
|
749
|
-
var HERMES_SESSION_ID_RE;
|
|
752
|
+
var HERMES_SESSION_ID_RE, CLAUDE_SESSION_ID_RE;
|
|
750
753
|
var init_provider_session_id = __esm({
|
|
751
754
|
"../../oss/packages/daemon-core/src/providers/provider-session-id.ts"() {
|
|
752
755
|
"use strict";
|
|
753
756
|
HERMES_SESSION_ID_RE = /^\d{8}_\d{6}_[a-z0-9]+$/i;
|
|
757
|
+
CLAUDE_SESSION_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
754
758
|
}
|
|
755
759
|
});
|
|
756
760
|
|
|
@@ -4157,9 +4161,16 @@ function extractCanonicalHermesMessageTimestamp(message, fallbackTs) {
|
|
|
4157
4161
|
if (Number.isFinite(stringTimestamp) && stringTimestamp > 0) return stringTimestamp;
|
|
4158
4162
|
return fallbackTs;
|
|
4159
4163
|
}
|
|
4160
|
-
function
|
|
4164
|
+
function extractTimestampValue(value) {
|
|
4165
|
+
const numericTimestamp = Number(value || 0);
|
|
4166
|
+
if (Number.isFinite(numericTimestamp) && numericTimestamp > 0) return numericTimestamp;
|
|
4167
|
+
const stringTimestamp = typeof value === "string" ? Date.parse(value) : NaN;
|
|
4168
|
+
if (Number.isFinite(stringTimestamp) && stringTimestamp > 0) return stringTimestamp;
|
|
4169
|
+
return 0;
|
|
4170
|
+
}
|
|
4171
|
+
function readExistingSessionStartRecord(agentType, historySessionId) {
|
|
4161
4172
|
try {
|
|
4162
|
-
const dir = path7.join(HISTORY_DIR,
|
|
4173
|
+
const dir = path7.join(HISTORY_DIR, agentType);
|
|
4163
4174
|
if (!fs3.existsSync(dir)) return null;
|
|
4164
4175
|
const files = listHistoryFiles(dir, historySessionId).sort();
|
|
4165
4176
|
for (const file2 of files) {
|
|
@@ -4180,6 +4191,28 @@ function readExistingHermesSessionStartRecord(historySessionId) {
|
|
|
4180
4191
|
return null;
|
|
4181
4192
|
}
|
|
4182
4193
|
}
|
|
4194
|
+
function rewriteCanonicalSavedHistory(agentType, historySessionId, records) {
|
|
4195
|
+
if (records.length === 0) return false;
|
|
4196
|
+
try {
|
|
4197
|
+
const dir = path7.join(HISTORY_DIR, agentType);
|
|
4198
|
+
fs3.mkdirSync(dir, { recursive: true });
|
|
4199
|
+
const prefix = `${historySessionId.replace(/[^a-zA-Z0-9_-]/g, "_")}_`;
|
|
4200
|
+
for (const file2 of fs3.readdirSync(dir)) {
|
|
4201
|
+
if (file2.startsWith(prefix) && file2.endsWith(".jsonl")) {
|
|
4202
|
+
fs3.unlinkSync(path7.join(dir, file2));
|
|
4203
|
+
}
|
|
4204
|
+
}
|
|
4205
|
+
const targetDate = new Date(records[records.length - 1].receivedAt || Date.now()).toISOString().slice(0, 10);
|
|
4206
|
+
const filePath = path7.join(dir, `${prefix}${targetDate}.jsonl`);
|
|
4207
|
+
fs3.writeFileSync(filePath, `${records.map((record2) => JSON.stringify(record2)).join("\n")}
|
|
4208
|
+
`, "utf-8");
|
|
4209
|
+
invalidatePersistedSavedHistoryIndex(agentType, dir);
|
|
4210
|
+
savedHistorySessionCache.delete(agentType.replace(/[^a-zA-Z0-9_-]/g, "_"));
|
|
4211
|
+
return true;
|
|
4212
|
+
} catch {
|
|
4213
|
+
return false;
|
|
4214
|
+
}
|
|
4215
|
+
}
|
|
4183
4216
|
function rebuildHermesSavedHistoryFromCanonicalSession(historySessionId) {
|
|
4184
4217
|
const normalizedSessionId = normalizeSavedHistorySessionId("hermes-cli", historySessionId);
|
|
4185
4218
|
if (!normalizedSessionId) return false;
|
|
@@ -4190,7 +4223,7 @@ function rebuildHermesSavedHistoryFromCanonicalSession(historySessionId) {
|
|
|
4190
4223
|
const canonicalMessages = Array.isArray(raw.messages) ? raw.messages : [];
|
|
4191
4224
|
const dir = path7.join(HISTORY_DIR, "hermes-cli");
|
|
4192
4225
|
fs3.mkdirSync(dir, { recursive: true });
|
|
4193
|
-
const existingSessionStart =
|
|
4226
|
+
const existingSessionStart = readExistingSessionStartRecord("hermes-cli", normalizedSessionId);
|
|
4194
4227
|
const records = [];
|
|
4195
4228
|
if (existingSessionStart) {
|
|
4196
4229
|
records.push({
|
|
@@ -4242,20 +4275,167 @@ function rebuildHermesSavedHistoryFromCanonicalSession(historySessionId) {
|
|
|
4242
4275
|
});
|
|
4243
4276
|
}
|
|
4244
4277
|
}
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4278
|
+
return rewriteCanonicalSavedHistory("hermes-cli", normalizedSessionId, records);
|
|
4279
|
+
} catch {
|
|
4280
|
+
return false;
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4283
|
+
function resolveClaudeProjectTranscriptPath(historySessionId, workspace) {
|
|
4284
|
+
const claudeProjectsDir = path7.join(os5.homedir(), ".claude", "projects");
|
|
4285
|
+
if (!fs3.existsSync(claudeProjectsDir)) return null;
|
|
4286
|
+
const normalizedWorkspace = typeof workspace === "string" ? workspace.trim() : "";
|
|
4287
|
+
if (normalizedWorkspace) {
|
|
4288
|
+
const directPath = path7.join(claudeProjectsDir, normalizedWorkspace.replace(/[\\/]/g, "-"), `${historySessionId}.jsonl`);
|
|
4289
|
+
if (fs3.existsSync(directPath)) return directPath;
|
|
4290
|
+
}
|
|
4291
|
+
const stack = [claudeProjectsDir];
|
|
4292
|
+
while (stack.length > 0) {
|
|
4293
|
+
const current = stack.pop();
|
|
4294
|
+
if (!current) continue;
|
|
4295
|
+
for (const entry of fs3.readdirSync(current, { withFileTypes: true })) {
|
|
4296
|
+
const entryPath = path7.join(current, entry.name);
|
|
4297
|
+
if (entry.isDirectory()) {
|
|
4298
|
+
stack.push(entryPath);
|
|
4299
|
+
continue;
|
|
4300
|
+
}
|
|
4301
|
+
if (entry.isFile() && entry.name === `${historySessionId}.jsonl`) {
|
|
4302
|
+
return entryPath;
|
|
4250
4303
|
}
|
|
4251
4304
|
}
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
return
|
|
4305
|
+
}
|
|
4306
|
+
return null;
|
|
4307
|
+
}
|
|
4308
|
+
function extractClaudeAssistantContentParts(content) {
|
|
4309
|
+
if (typeof content === "string") {
|
|
4310
|
+
const trimmed = content.trim();
|
|
4311
|
+
return trimmed ? [{ content: trimmed, kind: "standard", role: "assistant" }] : [];
|
|
4312
|
+
}
|
|
4313
|
+
if (!Array.isArray(content)) return [];
|
|
4314
|
+
const parts = [];
|
|
4315
|
+
for (const block of content) {
|
|
4316
|
+
if (!block || typeof block !== "object") continue;
|
|
4317
|
+
const record2 = block;
|
|
4318
|
+
const type = String(record2.type || "").trim();
|
|
4319
|
+
if (type === "text") {
|
|
4320
|
+
const text = String(record2.text || "").trim();
|
|
4321
|
+
if (text) parts.push({ content: text, kind: "standard", role: "assistant" });
|
|
4322
|
+
continue;
|
|
4323
|
+
}
|
|
4324
|
+
if (type === "tool_use") {
|
|
4325
|
+
const name = String(record2.name || "").trim() || "Tool";
|
|
4326
|
+
const input = record2.input && typeof record2.input === "object" ? record2.input : null;
|
|
4327
|
+
const command = input ? String(input.command || "").trim() : "";
|
|
4328
|
+
const summary = command ? `${name}: ${command}` : name;
|
|
4329
|
+
if (summary) parts.push({ content: summary, kind: "tool", senderName: "Tool", role: "assistant" });
|
|
4330
|
+
}
|
|
4331
|
+
}
|
|
4332
|
+
return parts;
|
|
4333
|
+
}
|
|
4334
|
+
function extractClaudeUserContentParts(content) {
|
|
4335
|
+
if (typeof content === "string") {
|
|
4336
|
+
const trimmed = content.trim();
|
|
4337
|
+
return trimmed ? [{ role: "user", content: trimmed, kind: "standard" }] : [];
|
|
4338
|
+
}
|
|
4339
|
+
if (!Array.isArray(content)) return [];
|
|
4340
|
+
const parts = [];
|
|
4341
|
+
for (const block of content) {
|
|
4342
|
+
if (!block || typeof block !== "object") continue;
|
|
4343
|
+
const record2 = block;
|
|
4344
|
+
const type = String(record2.type || "").trim();
|
|
4345
|
+
if (type === "text") {
|
|
4346
|
+
const text = String(record2.text || "").trim();
|
|
4347
|
+
if (text) parts.push({ role: "user", content: text, kind: "standard" });
|
|
4348
|
+
continue;
|
|
4349
|
+
}
|
|
4350
|
+
if (type === "tool_result") {
|
|
4351
|
+
const rawContent = record2.content;
|
|
4352
|
+
const text = typeof rawContent === "string" ? rawContent.trim() : Array.isArray(rawContent) ? rawContent.map((entry) => {
|
|
4353
|
+
if (typeof entry === "string") return entry.trim();
|
|
4354
|
+
if (!entry || typeof entry !== "object") return "";
|
|
4355
|
+
const nested = entry;
|
|
4356
|
+
if (typeof nested.text === "string") return nested.text.trim();
|
|
4357
|
+
if (typeof nested.content === "string") return nested.content.trim();
|
|
4358
|
+
return "";
|
|
4359
|
+
}).filter(Boolean).join("\n") : "";
|
|
4360
|
+
if (text) parts.push({ role: "assistant", content: text, kind: "tool", senderName: "Tool" });
|
|
4361
|
+
}
|
|
4362
|
+
}
|
|
4363
|
+
return parts;
|
|
4364
|
+
}
|
|
4365
|
+
function rebuildClaudeSavedHistoryFromNativeProject(historySessionId, workspace) {
|
|
4366
|
+
const normalizedSessionId = normalizeSavedHistorySessionId("claude-cli", historySessionId);
|
|
4367
|
+
if (!normalizedSessionId) return false;
|
|
4368
|
+
try {
|
|
4369
|
+
const transcriptPath = resolveClaudeProjectTranscriptPath(normalizedSessionId, workspace);
|
|
4370
|
+
if (!transcriptPath) return false;
|
|
4371
|
+
const lines = fs3.readFileSync(transcriptPath, "utf-8").split("\n").filter(Boolean);
|
|
4372
|
+
const records = [];
|
|
4373
|
+
const existingSessionStart = readExistingSessionStartRecord("claude-cli", normalizedSessionId);
|
|
4374
|
+
if (existingSessionStart) {
|
|
4375
|
+
records.push({
|
|
4376
|
+
...existingSessionStart,
|
|
4377
|
+
historySessionId: normalizedSessionId
|
|
4378
|
+
});
|
|
4379
|
+
}
|
|
4380
|
+
let fallbackTs = Date.now();
|
|
4381
|
+
for (const line of lines) {
|
|
4382
|
+
let parsed = null;
|
|
4383
|
+
try {
|
|
4384
|
+
parsed = JSON.parse(line);
|
|
4385
|
+
} catch {
|
|
4386
|
+
parsed = null;
|
|
4387
|
+
}
|
|
4388
|
+
if (!parsed) continue;
|
|
4389
|
+
const parsedSessionId = String(parsed.sessionId || "").trim();
|
|
4390
|
+
if (parsedSessionId && parsedSessionId !== normalizedSessionId) continue;
|
|
4391
|
+
const receivedAt = extractTimestampValue(parsed.timestamp) || fallbackTs;
|
|
4392
|
+
fallbackTs = receivedAt + 1;
|
|
4393
|
+
const parsedWorkspace = String(parsed.cwd || workspace || "").trim();
|
|
4394
|
+
if (records.length === 0 && parsedWorkspace) {
|
|
4395
|
+
records.push({
|
|
4396
|
+
ts: new Date(receivedAt).toISOString(),
|
|
4397
|
+
receivedAt,
|
|
4398
|
+
role: "system",
|
|
4399
|
+
kind: "session_start",
|
|
4400
|
+
content: parsedWorkspace,
|
|
4401
|
+
agent: "claude-cli",
|
|
4402
|
+
historySessionId: normalizedSessionId,
|
|
4403
|
+
workspace: parsedWorkspace
|
|
4404
|
+
});
|
|
4405
|
+
}
|
|
4406
|
+
const type = String(parsed.type || "").trim();
|
|
4407
|
+
const message = parsed.message && typeof parsed.message === "object" ? parsed.message : null;
|
|
4408
|
+
if (type === "user" && message) {
|
|
4409
|
+
for (const part of extractClaudeUserContentParts(message.content)) {
|
|
4410
|
+
records.push({
|
|
4411
|
+
ts: new Date(receivedAt).toISOString(),
|
|
4412
|
+
receivedAt,
|
|
4413
|
+
role: part.role,
|
|
4414
|
+
content: part.content,
|
|
4415
|
+
kind: part.kind,
|
|
4416
|
+
senderName: part.senderName,
|
|
4417
|
+
agent: "claude-cli",
|
|
4418
|
+
historySessionId: normalizedSessionId
|
|
4419
|
+
});
|
|
4420
|
+
}
|
|
4421
|
+
continue;
|
|
4422
|
+
}
|
|
4423
|
+
if (type === "assistant" && message) {
|
|
4424
|
+
for (const part of extractClaudeAssistantContentParts(message.content)) {
|
|
4425
|
+
records.push({
|
|
4426
|
+
ts: new Date(receivedAt).toISOString(),
|
|
4427
|
+
receivedAt,
|
|
4428
|
+
role: "assistant",
|
|
4429
|
+
content: part.content,
|
|
4430
|
+
kind: part.kind,
|
|
4431
|
+
senderName: part.senderName,
|
|
4432
|
+
agent: "claude-cli",
|
|
4433
|
+
historySessionId: normalizedSessionId
|
|
4434
|
+
});
|
|
4435
|
+
}
|
|
4436
|
+
}
|
|
4437
|
+
}
|
|
4438
|
+
return rewriteCanonicalSavedHistory("claude-cli", normalizedSessionId, records);
|
|
4259
4439
|
} catch {
|
|
4260
4440
|
return false;
|
|
4261
4441
|
}
|
|
@@ -10632,7 +10812,7 @@ var init_dist = __esm({
|
|
|
10632
10812
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
10633
10813
|
});
|
|
10634
10814
|
DEFAULT_SESSION_HOST_COLS = 80;
|
|
10635
|
-
DEFAULT_SESSION_HOST_ROWS =
|
|
10815
|
+
DEFAULT_SESSION_HOST_ROWS = 32;
|
|
10636
10816
|
SessionHostClient = class {
|
|
10637
10817
|
endpoint;
|
|
10638
10818
|
socket = null;
|
|
@@ -13701,7 +13881,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13701
13881
|
parsedMessages = historyMessageCount > 0 ? parsedMessages.slice(-historyMessageCount) : [];
|
|
13702
13882
|
}
|
|
13703
13883
|
const mergedMessages = this.mergeConversationMessages(parsedMessages);
|
|
13704
|
-
const
|
|
13884
|
+
const canonicalBackedHistory = this.syncCanonicalSavedHistoryIfNeeded();
|
|
13705
13885
|
const dirName = this.workingDir.split("/").filter(Boolean).pop() || "session";
|
|
13706
13886
|
if (parsedMessages.length > 0) {
|
|
13707
13887
|
const shouldSkipReplayPersist = this.suppressIdleHistoryReplay && adapterStatus.status === "idle" && parsedStatus?.status === "idle";
|
|
@@ -13719,7 +13899,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13719
13899
|
senderName: typeof message.senderName === "string" ? message.senderName : void 0,
|
|
13720
13900
|
receivedAt: typeof message.receivedAt === "number" ? message.receivedAt : message.timestamp
|
|
13721
13901
|
}));
|
|
13722
|
-
if (!
|
|
13902
|
+
if (!canonicalBackedHistory && !shouldSkipReplayPersist && normalizedMessagesToSave.length > 0) {
|
|
13723
13903
|
const incrementalMessages = buildIncrementalHistoryAppendMessages(this.lastPersistedHistoryMessages, normalizedMessagesToSave);
|
|
13724
13904
|
this.historyWriter.appendNewMessages(
|
|
13725
13905
|
this.type,
|
|
@@ -13729,7 +13909,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13729
13909
|
this.providerSessionId
|
|
13730
13910
|
);
|
|
13731
13911
|
}
|
|
13732
|
-
if (!
|
|
13912
|
+
if (!canonicalBackedHistory) {
|
|
13733
13913
|
this.lastPersistedHistoryMessages = normalizedMessagesToSave;
|
|
13734
13914
|
}
|
|
13735
13915
|
}
|
|
@@ -14084,7 +14264,14 @@ ${effect.notification.body || ""}`.trim();
|
|
|
14084
14264
|
return this.provider.name;
|
|
14085
14265
|
}
|
|
14086
14266
|
shouldAutoApprove() {
|
|
14087
|
-
|
|
14267
|
+
if (typeof this.settings.autoApprove === "boolean") {
|
|
14268
|
+
return this.settings.autoApprove;
|
|
14269
|
+
}
|
|
14270
|
+
const providerDefault = this.provider.settings?.autoApprove?.default;
|
|
14271
|
+
if (typeof providerDefault === "boolean") {
|
|
14272
|
+
return providerDefault;
|
|
14273
|
+
}
|
|
14274
|
+
return false;
|
|
14088
14275
|
}
|
|
14089
14276
|
recordAutoApproval(modalMessage, buttonLabel, now = Date.now()) {
|
|
14090
14277
|
this.appendRuntimeSystemMessage(
|
|
@@ -14206,32 +14393,52 @@ ${effect.notification.body || ""}`.trim();
|
|
|
14206
14393
|
});
|
|
14207
14394
|
LOG.info("CLI", `[${this.type}] discovered provider session id: ${nextSessionId}`);
|
|
14208
14395
|
}
|
|
14209
|
-
|
|
14210
|
-
if (
|
|
14211
|
-
|
|
14212
|
-
|
|
14213
|
-
|
|
14214
|
-
|
|
14215
|
-
|
|
14216
|
-
|
|
14217
|
-
|
|
14218
|
-
|
|
14219
|
-
|
|
14220
|
-
|
|
14221
|
-
|
|
14222
|
-
|
|
14223
|
-
|
|
14224
|
-
|
|
14225
|
-
|
|
14226
|
-
|
|
14227
|
-
|
|
14228
|
-
|
|
14229
|
-
|
|
14396
|
+
syncCanonicalSavedHistoryIfNeeded() {
|
|
14397
|
+
if (!this.providerSessionId) return false;
|
|
14398
|
+
if (this.type === "hermes-cli") {
|
|
14399
|
+
try {
|
|
14400
|
+
const canonicalPath = path11.join(os13.homedir(), ".hermes", "sessions", `session_${this.providerSessionId}.json`);
|
|
14401
|
+
if (!fs5.existsSync(canonicalPath)) return false;
|
|
14402
|
+
const stat4 = fs5.statSync(canonicalPath);
|
|
14403
|
+
if (stat4.mtimeMs <= this.lastCanonicalHermesSyncMtimeMs) return true;
|
|
14404
|
+
const rebuilt = rebuildHermesSavedHistoryFromCanonicalSession(this.providerSessionId);
|
|
14405
|
+
if (!rebuilt) return false;
|
|
14406
|
+
this.lastCanonicalHermesSyncMtimeMs = stat4.mtimeMs;
|
|
14407
|
+
const restoredHistory = readChatHistory(this.type, 0, Number.MAX_SAFE_INTEGER, this.providerSessionId);
|
|
14408
|
+
this.lastPersistedHistoryMessages = restoredHistory.messages.map((message) => ({
|
|
14409
|
+
role: message.role,
|
|
14410
|
+
content: message.content,
|
|
14411
|
+
kind: message.kind,
|
|
14412
|
+
senderName: message.senderName,
|
|
14413
|
+
receivedAt: message.receivedAt
|
|
14414
|
+
}));
|
|
14415
|
+
return true;
|
|
14416
|
+
} catch {
|
|
14417
|
+
return false;
|
|
14418
|
+
}
|
|
14230
14419
|
}
|
|
14420
|
+
if (this.type === "claude-cli") {
|
|
14421
|
+
try {
|
|
14422
|
+
const rebuilt = rebuildClaudeSavedHistoryFromNativeProject(this.providerSessionId, this.workingDir);
|
|
14423
|
+
if (!rebuilt) return false;
|
|
14424
|
+
const restoredHistory = readChatHistory(this.type, 0, Number.MAX_SAFE_INTEGER, this.providerSessionId);
|
|
14425
|
+
this.lastPersistedHistoryMessages = restoredHistory.messages.map((message) => ({
|
|
14426
|
+
role: message.role,
|
|
14427
|
+
content: message.content,
|
|
14428
|
+
kind: message.kind,
|
|
14429
|
+
senderName: message.senderName,
|
|
14430
|
+
receivedAt: message.receivedAt
|
|
14431
|
+
}));
|
|
14432
|
+
return true;
|
|
14433
|
+
} catch {
|
|
14434
|
+
return false;
|
|
14435
|
+
}
|
|
14436
|
+
}
|
|
14437
|
+
return false;
|
|
14231
14438
|
}
|
|
14232
14439
|
restorePersistedHistoryFromCurrentSession() {
|
|
14233
14440
|
if (!this.providerSessionId) return;
|
|
14234
|
-
this.
|
|
14441
|
+
this.syncCanonicalSavedHistoryIfNeeded();
|
|
14235
14442
|
this.historyWriter.compactHistorySession(this.type, this.providerSessionId);
|
|
14236
14443
|
const restoredHistory = readChatHistory(this.type, 0, Number.MAX_SAFE_INTEGER, this.providerSessionId);
|
|
14237
14444
|
this.historyWriter.seedSessionHistory(
|
|
@@ -37965,9 +38172,12 @@ function prepareSessionChatTailUpdate(input) {
|
|
|
37965
38172
|
}
|
|
37966
38173
|
function prepareSessionModalUpdate(input) {
|
|
37967
38174
|
const { modalMessage, modalButtons } = normalizeSessionModalFields(input.activeModal);
|
|
38175
|
+
const status = normalizeManagedStatus(input.status, {
|
|
38176
|
+
activeModal: modalButtons.length > 0 ? { buttons: modalButtons } : null
|
|
38177
|
+
});
|
|
37968
38178
|
const deliverySignature = buildSessionModalDeliverySignature({
|
|
37969
38179
|
sessionId: input.sessionId,
|
|
37970
|
-
status
|
|
38180
|
+
status,
|
|
37971
38181
|
...input.title ? { title: input.title } : {},
|
|
37972
38182
|
...modalMessage ? { modalMessage } : {},
|
|
37973
38183
|
...modalButtons.length > 0 ? { modalButtons } : {}
|
|
@@ -37987,7 +38197,7 @@ function prepareSessionModalUpdate(input) {
|
|
|
37987
38197
|
topic: "session.modal",
|
|
37988
38198
|
key: input.key,
|
|
37989
38199
|
sessionId: input.sessionId,
|
|
37990
|
-
status
|
|
38200
|
+
status,
|
|
37991
38201
|
...input.title ? { title: input.title } : {},
|
|
37992
38202
|
...modalMessage ? { modalMessage } : {},
|
|
37993
38203
|
...modalButtons.length > 0 ? { modalButtons } : {},
|
|
@@ -38001,6 +38211,7 @@ var init_subscription_updates = __esm({
|
|
|
38001
38211
|
"../../oss/packages/daemon-core/src/chat/subscription-updates.ts"() {
|
|
38002
38212
|
"use strict";
|
|
38003
38213
|
init_chat_signatures();
|
|
38214
|
+
init_normalize();
|
|
38004
38215
|
}
|
|
38005
38216
|
});
|
|
38006
38217
|
|
|
@@ -55130,7 +55341,7 @@ var init_adhdev_daemon = __esm({
|
|
|
55130
55341
|
init_version();
|
|
55131
55342
|
init_src();
|
|
55132
55343
|
init_runtime_defaults();
|
|
55133
|
-
pkgVersion = resolvePackageVersion({ injectedVersion: "0.8.
|
|
55344
|
+
pkgVersion = resolvePackageVersion({ injectedVersion: "0.8.100" });
|
|
55134
55345
|
AdhdevDaemon = class _AdhdevDaemon {
|
|
55135
55346
|
localHttpServer = null;
|
|
55136
55347
|
localWss = null;
|