@adhdev/daemon-core 0.9.82-rc.86 → 0.9.82-rc.88

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/index.js CHANGED
@@ -16104,6 +16104,54 @@ function getMessageNewestReceivedAt(messages) {
16104
16104
  }
16105
16105
  return newest;
16106
16106
  }
16107
+ function readHistorySessionIdFromMessages(messages) {
16108
+ for (const message of messages) {
16109
+ const historySessionId = typeof message?.historySessionId === "string" ? message.historySessionId.trim() : "";
16110
+ if (historySessionId) return historySessionId;
16111
+ }
16112
+ return void 0;
16113
+ }
16114
+ function normalizeNativeHistoryMessages(providerType, messages) {
16115
+ let turnIndex = 0;
16116
+ return normalizeChatMessages(messages).map((message, index) => {
16117
+ const role = typeof message.role === "string" ? message.role.trim().toLowerCase() : "";
16118
+ const kind = typeof message.kind === "string" && message.kind.trim() ? message.kind.trim() : role === "system" ? "system" : "standard";
16119
+ if ((role === "user" || role === "human") && index > 0) turnIndex += 1;
16120
+ const historySessionId = typeof message.historySessionId === "string" ? message.historySessionId.trim() : "";
16121
+ const contentHash = hashSignatureParts([
16122
+ providerType,
16123
+ historySessionId,
16124
+ String(message.receivedAt || message.timestamp || index),
16125
+ role,
16126
+ kind,
16127
+ flattenContent(message.content)
16128
+ ]).slice(0, 12);
16129
+ const providerUnitKey = typeof message.providerUnitKey === "string" && message.providerUnitKey.trim() ? message.providerUnitKey.trim() : `${providerType}:native:${historySessionId || "workspace"}:${index}:${role || "message"}:${kind}:${contentHash}`;
16130
+ const meta = message.meta && typeof message.meta === "object" ? message.meta : void 0;
16131
+ const isSystemSessionStart = role === "system" || kind === "system" || kind === "session_start";
16132
+ const isActivity = role === "assistant" && (kind === "tool" || kind === "terminal" || kind === "thought");
16133
+ return {
16134
+ ...message,
16135
+ role: role === "human" ? "user" : role || "assistant",
16136
+ kind: isSystemSessionStart ? "system" : kind,
16137
+ providerUnitKey,
16138
+ bubbleId: typeof message.bubbleId === "string" && message.bubbleId.trim() ? message.bubbleId.trim() : `bubble:${providerUnitKey}`,
16139
+ _turnKey: typeof message._turnKey === "string" && message._turnKey.trim() ? message._turnKey.trim() : `${providerType}:native-turn:${historySessionId || "workspace"}:${turnIndex}`,
16140
+ bubbleState: message.bubbleState || "final",
16141
+ ...isSystemSessionStart ? {
16142
+ visibility: message.visibility || "hidden",
16143
+ transcriptVisibility: message.transcriptVisibility || "hidden",
16144
+ audience: message.audience || "internal",
16145
+ source: message.source || "runtime_status"
16146
+ } : isActivity ? {
16147
+ source: message.source || (kind === "terminal" ? "terminal_command" : "tool_call"),
16148
+ meta: { ...meta, label: message.senderName || meta?.label || (kind === "terminal" ? "Terminal" : "Tool") }
16149
+ } : {
16150
+ source: message.source || (role === "assistant" ? "assistant_text" : void 0)
16151
+ }
16152
+ };
16153
+ });
16154
+ }
16107
16155
  function buildCliMessageSourceProvenance(args) {
16108
16156
  const sourceMtimeMs = Number(args.sourceMtimeMs || 0);
16109
16157
  const sourceMtimeAgeMs = sourceMtimeMs > 0 ? Math.max(0, Date.now() - sourceMtimeMs) : void 0;
@@ -16146,7 +16194,7 @@ function buildNativeHistoryFallbackReason(args) {
16146
16194
  }
16147
16195
  function supportsCliNativeTranscript(providerType, provider) {
16148
16196
  if (CLI_NATIVE_TRANSCRIPT_PROVIDERS.has(providerType)) return true;
16149
- return provider?.category === "cli" && provider?.canonicalHistory?.mode === "native-source";
16197
+ return provider?.category === "cli" && isNativeSourceCanonicalHistory(provider?.canonicalHistory);
16150
16198
  }
16151
16199
  function hasSafeNativeHistoryMapping(args) {
16152
16200
  const explicitSessionId = String(args.historySessionId || args.providerSessionId || "").trim();
@@ -16159,6 +16207,32 @@ function hasSafeNativeHistoryMapping(args) {
16159
16207
  if (!workspace) return false;
16160
16208
  return args.nativeMessages.some((message) => String(message?.workspace || "").trim() === workspace);
16161
16209
  }
16210
+ function readCliProviderNativeHistory(agentStr, args) {
16211
+ const sessionHistory = readProviderChatHistory(agentStr, {
16212
+ canonicalHistory: args.canonicalHistory,
16213
+ historySessionId: args.historySessionId,
16214
+ workspace: args.workspace,
16215
+ offset: args.offset,
16216
+ limit: args.limit,
16217
+ excludeRecentCount: args.excludeRecentCount,
16218
+ historyBehavior: args.historyBehavior,
16219
+ scripts: args.scripts
16220
+ });
16221
+ if (sessionHistory.source !== "native-unavailable" || !args.historySessionId || !args.workspace) {
16222
+ return { ...sessionHistory, lookup: "session" };
16223
+ }
16224
+ const workspaceHistory = readProviderChatHistory(agentStr, {
16225
+ canonicalHistory: args.canonicalHistory,
16226
+ historySessionId: void 0,
16227
+ workspace: args.workspace,
16228
+ offset: args.offset,
16229
+ limit: args.limit,
16230
+ excludeRecentCount: args.excludeRecentCount,
16231
+ historyBehavior: args.historyBehavior,
16232
+ scripts: args.scripts
16233
+ });
16234
+ return { ...workspaceHistory, lookup: "workspace" };
16235
+ }
16162
16236
  function isNativeHistoryFreshEnough(args) {
16163
16237
  const nativeNewest = getMessageNewestReceivedAt(args.nativeMessages);
16164
16238
  const ptyNewest = getMessageNewestReceivedAt(args.ptyMessages);
@@ -16758,7 +16832,7 @@ async function handleReadChat(h, args) {
16758
16832
  returnedMessages,
16759
16833
  ptyStatusApprovalOnly: false
16760
16834
  });
16761
- if (supportsCliNativeTranscript(providerType, provider) && provider?.canonicalHistory?.mode === "native-source") {
16835
+ if (supportsCliNativeTranscript(providerType, provider) && isNativeSourceCanonicalHistory(provider?.canonicalHistory)) {
16762
16836
  const agentStr = provider?.type || args?.agentType || getCurrentProviderType(h, adapter.cliType);
16763
16837
  const workspace = typeof args?.workspace === "string" ? args.workspace : typeof h.currentSession?.workspace === "string" ? h.currentSession.workspace : typeof adapter.workingDir === "string" ? adapter.workingDir : void 0;
16764
16838
  const nativeHistoryLimit = Math.max(
@@ -16768,7 +16842,7 @@ async function handleReadChat(h, args) {
16768
16842
  );
16769
16843
  let nativeHistory = null;
16770
16844
  try {
16771
- nativeHistory = readProviderChatHistory(agentStr, {
16845
+ nativeHistory = readCliProviderNativeHistory(agentStr, {
16772
16846
  canonicalHistory: provider?.canonicalHistory,
16773
16847
  historySessionId,
16774
16848
  workspace,
@@ -16791,11 +16865,12 @@ async function handleReadChat(h, args) {
16791
16865
  nativeHistory = null;
16792
16866
  }
16793
16867
  if (nativeHistory) {
16794
- const nativeMessages = Array.isArray(nativeHistory.messages) ? normalizeChatMessages(nativeHistory.messages) : [];
16795
- const historyProviderSessionId = typeof nativeHistory?.providerSessionId === "string" ? nativeHistory.providerSessionId : historySessionId;
16868
+ const nativeMessages = Array.isArray(nativeHistory.messages) ? normalizeNativeHistoryMessages(agentStr, nativeHistory.messages) : [];
16869
+ const historyProviderSessionId = typeof nativeHistory?.providerSessionId === "string" ? nativeHistory.providerSessionId : readHistorySessionIdFromMessages(nativeMessages) || historySessionId;
16870
+ const lookup = nativeHistory.lookup === "workspace" ? "workspace" : "session";
16796
16871
  const safeMapping = hasSafeNativeHistoryMapping({
16797
- historySessionId,
16798
- providerSessionId,
16872
+ historySessionId: lookup === "workspace" ? void 0 : historySessionId,
16873
+ providerSessionId: lookup === "workspace" ? void 0 : providerSessionId,
16799
16874
  workspace,
16800
16875
  nativeMessages
16801
16876
  });
@@ -16879,7 +16954,16 @@ async function handleReadChat(h, args) {
16879
16954
  try {
16880
16955
  const agentStr = provider?.type || args?.agentType || getCurrentProviderType(h);
16881
16956
  const workspace = typeof args?.workspace === "string" ? args.workspace : typeof h.currentSession?.workspace === "string" ? h.currentSession.workspace : void 0;
16882
- const history = readProviderChatHistory(agentStr, {
16957
+ const history = supportsCliNativeTranscript(agentStr, provider) && isNativeSourceCanonicalHistory(provider?.canonicalHistory) ? readCliProviderNativeHistory(agentStr, {
16958
+ canonicalHistory: provider?.canonicalHistory,
16959
+ historySessionId,
16960
+ workspace,
16961
+ offset: 0,
16962
+ limit: historyLimit,
16963
+ excludeRecentCount: 0,
16964
+ historyBehavior: provider?.historyBehavior,
16965
+ scripts: provider?.scripts
16966
+ }) : readProviderChatHistory(agentStr, {
16883
16967
  canonicalHistory: provider?.canonicalHistory,
16884
16968
  historySessionId,
16885
16969
  workspace,
@@ -16889,11 +16973,12 @@ async function handleReadChat(h, args) {
16889
16973
  historyBehavior: provider?.historyBehavior,
16890
16974
  scripts: provider?.scripts
16891
16975
  });
16892
- const historyProviderSessionId = typeof history?.providerSessionId === "string" ? history.providerSessionId : historySessionId;
16893
- const historyMessages = Array.isArray(history?.messages) ? normalizeChatMessages(history.messages) : [];
16976
+ const lookup = history.lookup === "workspace" ? "workspace" : "session";
16977
+ const historyMessages = Array.isArray(history?.messages) ? normalizeNativeHistoryMessages(agentStr, history.messages) : [];
16978
+ const historyProviderSessionId = typeof history?.providerSessionId === "string" ? history.providerSessionId : readHistorySessionIdFromMessages(historyMessages) || historySessionId;
16894
16979
  const safeMapping = supportsCliNativeTranscript(agentStr, provider) ? hasSafeNativeHistoryMapping({
16895
- historySessionId,
16896
- providerSessionId: historyProviderSessionId,
16980
+ historySessionId: lookup === "workspace" ? void 0 : historySessionId,
16981
+ providerSessionId: lookup === "workspace" ? void 0 : historyProviderSessionId,
16897
16982
  workspace,
16898
16983
  nativeMessages: historyMessages
16899
16984
  }) : false;
@@ -16919,7 +17004,7 @@ async function handleReadChat(h, args) {
16919
17004
  freshEnough: true,
16920
17005
  ptyStatusApprovalOnly: false
16921
17006
  });
16922
- const requiresNativeSource = supportsCliNativeTranscript(agentStr, provider) && provider?.canonicalHistory?.mode === "native-source";
17007
+ const requiresNativeSource = supportsCliNativeTranscript(agentStr, provider) && isNativeSourceCanonicalHistory(provider?.canonicalHistory);
16923
17008
  if (requiresNativeSource && !nativeSelected) {
16924
17009
  return {
16925
17010
  success: false,