adhdev 0.9.35 → 0.9.36
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 +89 -23
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +89 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -12913,7 +12913,16 @@ var init_provider_cli_adapter = __esm({
|
|
|
12913
12913
|
if (baseMessages.length <= _ProviderCliAdapter.PARSE_MESSAGE_TAIL_LIMIT) return baseMessages;
|
|
12914
12914
|
return baseMessages.slice(-_ProviderCliAdapter.PARSE_MESSAGE_TAIL_LIMIT);
|
|
12915
12915
|
}
|
|
12916
|
+
messagesShareStableIdentity(left2, right2) {
|
|
12917
|
+
if (left2 === right2) return true;
|
|
12918
|
+
if (!left2 || !right2) return false;
|
|
12919
|
+
if ((left2.role || "") !== (right2.role || "")) return false;
|
|
12920
|
+
if (left2.id && right2.id && String(left2.id) === String(right2.id)) return true;
|
|
12921
|
+
if (typeof left2.index === "number" && typeof right2.index === "number" && left2.index === right2.index) return true;
|
|
12922
|
+
return false;
|
|
12923
|
+
}
|
|
12916
12924
|
messagesComparable(left2, right2) {
|
|
12925
|
+
if (this.messagesShareStableIdentity(left2, right2)) return true;
|
|
12917
12926
|
if (!left2 || !right2) return false;
|
|
12918
12927
|
if ((left2.role || "") !== (right2.role || "")) return false;
|
|
12919
12928
|
const leftText = normalizeComparableTranscriptText(left2.content);
|
|
@@ -14064,6 +14073,69 @@ var init_provider_cli_adapter = __esm({
|
|
|
14064
14073
|
this.committedMessages = normalized;
|
|
14065
14074
|
this.syncMessageViews();
|
|
14066
14075
|
}
|
|
14076
|
+
getSharedCommittedPrefixLength(parsedMessages) {
|
|
14077
|
+
const committedMessages = this.committedMessages;
|
|
14078
|
+
const max = Math.min(parsedMessages.length, committedMessages.length);
|
|
14079
|
+
let index = 0;
|
|
14080
|
+
while (index < max && this.messagesShareStableIdentity(parsedMessages[index], committedMessages[index])) {
|
|
14081
|
+
index += 1;
|
|
14082
|
+
}
|
|
14083
|
+
return index;
|
|
14084
|
+
}
|
|
14085
|
+
hydrateCommittedPrefixForParsedStatus(parsedMessages) {
|
|
14086
|
+
const sharedPrefixLength = this.getSharedCommittedPrefixLength(parsedMessages);
|
|
14087
|
+
if (sharedPrefixLength !== this.committedMessages.length) return null;
|
|
14088
|
+
const committedHydratedMessages = this.committedMessages.map((message, index) => {
|
|
14089
|
+
const timestamp = typeof message.timestamp === "number" && Number.isFinite(message.timestamp) ? message.timestamp : this.lastOutputAt || this.currentTurnScope?.startedAt || Date.now();
|
|
14090
|
+
const contentValue = message.content;
|
|
14091
|
+
return {
|
|
14092
|
+
role: message.role,
|
|
14093
|
+
content: typeof contentValue === "string" ? contentValue : String(contentValue || ""),
|
|
14094
|
+
timestamp,
|
|
14095
|
+
receivedAt: typeof message.receivedAt === "number" && Number.isFinite(message.receivedAt) ? message.receivedAt : timestamp,
|
|
14096
|
+
kind: message.kind,
|
|
14097
|
+
id: message.id || `msg_${index}`,
|
|
14098
|
+
index: typeof message.index === "number" ? message.index : index,
|
|
14099
|
+
meta: message.meta,
|
|
14100
|
+
senderName: message.senderName
|
|
14101
|
+
};
|
|
14102
|
+
});
|
|
14103
|
+
const extraMessages = parsedMessages.slice(sharedPrefixLength);
|
|
14104
|
+
if (extraMessages.length === 0) return committedHydratedMessages;
|
|
14105
|
+
const extraHydratedMessages = hydrateCliParsedMessages(extraMessages, {
|
|
14106
|
+
committedMessages: [],
|
|
14107
|
+
scope: this.currentTurnScope,
|
|
14108
|
+
lastOutputAt: this.lastOutputAt
|
|
14109
|
+
}).map((message, offset) => ({
|
|
14110
|
+
...message,
|
|
14111
|
+
id: message.id || `msg_${sharedPrefixLength + offset}`,
|
|
14112
|
+
index: typeof message.index === "number" ? message.index : sharedPrefixLength + offset
|
|
14113
|
+
}));
|
|
14114
|
+
return [...committedHydratedMessages, ...extraHydratedMessages];
|
|
14115
|
+
}
|
|
14116
|
+
hydrateParsedMessagesForStatus(parsedMessages) {
|
|
14117
|
+
return this.hydrateCommittedPrefixForParsedStatus(parsedMessages) || hydrateCliParsedMessages(parsedMessages, {
|
|
14118
|
+
committedMessages: this.committedMessages,
|
|
14119
|
+
scope: this.currentTurnScope,
|
|
14120
|
+
lastOutputAt: this.lastOutputAt
|
|
14121
|
+
});
|
|
14122
|
+
}
|
|
14123
|
+
buildCommittedChatMessages() {
|
|
14124
|
+
return this.committedMessages.map((message, index) => {
|
|
14125
|
+
const contentValue = message.content;
|
|
14126
|
+
return buildChatMessage({
|
|
14127
|
+
role: message.role,
|
|
14128
|
+
content: typeof contentValue === "string" ? contentValue : String(contentValue || ""),
|
|
14129
|
+
timestamp: message.timestamp,
|
|
14130
|
+
kind: message.kind,
|
|
14131
|
+
meta: message.meta,
|
|
14132
|
+
senderName: message.senderName,
|
|
14133
|
+
id: message.id || `msg_${index}`,
|
|
14134
|
+
index: typeof message.index === "number" ? message.index : index,
|
|
14135
|
+
receivedAt: typeof message.receivedAt === "number" ? message.receivedAt : message.timestamp
|
|
14136
|
+
});
|
|
14137
|
+
});
|
|
14138
|
+
}
|
|
14067
14139
|
/**
|
|
14068
14140
|
* Script-based full parse — returns ReadChatResult.
|
|
14069
14141
|
* Called by command handler / dashboard for rich content rendering.
|
|
@@ -14089,7 +14161,7 @@ var init_provider_cli_adapter = __esm({
|
|
|
14089
14161
|
this.onStatusChange?.();
|
|
14090
14162
|
}
|
|
14091
14163
|
}
|
|
14092
|
-
if (parsed && Array.isArray(parsed.messages)) {
|
|
14164
|
+
if (parsed && Array.isArray(parsed.messages) && this.provider.allowInputDuringGeneration === true) {
|
|
14093
14165
|
const hydratedForCommit = normalizeCliParsedMessages(parsed.messages, {
|
|
14094
14166
|
committedMessages: this.committedMessages,
|
|
14095
14167
|
scope: this.currentTurnScope,
|
|
@@ -14108,21 +14180,21 @@ var init_provider_cli_adapter = __esm({
|
|
|
14108
14180
|
const shouldPreferCommittedMessages = !this.currentTurnScope && !this.activeModal && this.currentStatus === "idle";
|
|
14109
14181
|
let result;
|
|
14110
14182
|
if (parsed && Array.isArray(parsed.messages)) {
|
|
14111
|
-
const parsedHydratedMessages =
|
|
14112
|
-
committedMessages: this.committedMessages,
|
|
14113
|
-
scope: this.currentTurnScope,
|
|
14114
|
-
lastOutputAt: this.lastOutputAt
|
|
14115
|
-
});
|
|
14116
|
-
const committedHydratedMessages = this.committedMessages.map((message, index) => buildChatMessage({
|
|
14117
|
-
...message,
|
|
14118
|
-
id: message.id || `msg_${index}`,
|
|
14119
|
-
index: typeof message.index === "number" ? message.index : index,
|
|
14120
|
-
receivedAt: typeof message.receivedAt === "number" ? message.receivedAt : message.timestamp
|
|
14121
|
-
}));
|
|
14183
|
+
const parsedHydratedMessages = this.hydrateParsedMessagesForStatus(parsed.messages);
|
|
14122
14184
|
const parsedLastAssistant = [...parsedHydratedMessages].reverse().find((message) => message.role === "assistant" && typeof message.content === "string" && message.content.trim());
|
|
14123
|
-
const shouldAdoptParsedIdleReplay = !this.currentTurnScope && !this.activeModal && !!parsedLastAssistant && parsedTranscriptIsRicherThanCommitted(parsedHydratedMessages,
|
|
14185
|
+
const shouldAdoptParsedIdleReplay = !this.currentTurnScope && !this.activeModal && !!parsedLastAssistant && parsedTranscriptIsRicherThanCommitted(parsedHydratedMessages, this.committedMessages) && (this.currentStatus === "idle" || this.currentStatus === "generating" && this.isWaitingForResponse && parsed.status === "idle" && this.runDetectStatus(this.recentOutputBuffer) === "idle");
|
|
14124
14186
|
if (shouldAdoptParsedIdleReplay) {
|
|
14125
|
-
this.committedMessages =
|
|
14187
|
+
this.committedMessages = this.getSharedCommittedPrefixLength(parsed.messages) === this.committedMessages.length ? parsedHydratedMessages.map((message) => ({
|
|
14188
|
+
role: message.role,
|
|
14189
|
+
content: typeof message.content === "string" ? message.content : String(message.content || ""),
|
|
14190
|
+
timestamp: message.timestamp,
|
|
14191
|
+
receivedAt: message.receivedAt,
|
|
14192
|
+
kind: message.kind,
|
|
14193
|
+
id: message.id,
|
|
14194
|
+
index: message.index,
|
|
14195
|
+
meta: message.meta,
|
|
14196
|
+
senderName: message.senderName
|
|
14197
|
+
})) : normalizeCliParsedMessages(parsed.messages, {
|
|
14126
14198
|
committedMessages: this.committedMessages,
|
|
14127
14199
|
scope: this.currentTurnScope,
|
|
14128
14200
|
lastOutputAt: this.lastOutputAt
|
|
@@ -14141,15 +14213,9 @@ var init_provider_cli_adapter = __esm({
|
|
|
14141
14213
|
this.onStatusChange?.();
|
|
14142
14214
|
}
|
|
14143
14215
|
}
|
|
14144
|
-
const
|
|
14145
|
-
...message,
|
|
14146
|
-
id: message.id || `msg_${index}`,
|
|
14147
|
-
index: typeof message.index === "number" ? message.index : index,
|
|
14148
|
-
receivedAt: typeof message.receivedAt === "number" ? message.receivedAt : message.timestamp
|
|
14149
|
-
})) : committedHydratedMessages;
|
|
14150
|
-
const shouldPreferCommittedHistoryReplay = !this.currentTurnScope && !this.activeModal && effectiveCommittedHydratedMessages.length > parsedHydratedMessages.length;
|
|
14216
|
+
const shouldPreferCommittedHistoryReplay = !this.currentTurnScope && !this.activeModal && this.committedMessages.length > parsedHydratedMessages.length;
|
|
14151
14217
|
const shouldPreferCommittedIdleReplay = shouldPreferCommittedMessages && !shouldAdoptParsedIdleReplay;
|
|
14152
|
-
const hydratedMessages = shouldPreferCommittedIdleReplay || shouldPreferCommittedHistoryReplay ?
|
|
14218
|
+
const hydratedMessages = shouldPreferCommittedIdleReplay || shouldPreferCommittedHistoryReplay ? this.buildCommittedChatMessages() : parsedHydratedMessages;
|
|
14153
14219
|
result = {
|
|
14154
14220
|
id: parsed.id || "cli_session",
|
|
14155
14221
|
status: parsed.status || this.currentStatus,
|
|
@@ -88169,7 +88235,7 @@ var init_adhdev_daemon = __esm({
|
|
|
88169
88235
|
init_version();
|
|
88170
88236
|
init_src();
|
|
88171
88237
|
init_runtime_defaults();
|
|
88172
|
-
pkgVersion = resolvePackageVersion({ injectedVersion: "0.9.
|
|
88238
|
+
pkgVersion = resolvePackageVersion({ injectedVersion: "0.9.36" });
|
|
88173
88239
|
AdhdevDaemon = class _AdhdevDaemon {
|
|
88174
88240
|
localHttpServer = null;
|
|
88175
88241
|
localWss = null;
|