@adhdev/daemon-core 0.9.76-rc.16 → 0.9.76-rc.17

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.
@@ -8,6 +8,7 @@ import { type ProviderModule } from './contracts.js';
8
8
  import type { ProviderInstance, ProviderState, InstanceContext, HotChatSessionState, SessionModalState } from './provider-instance.js';
9
9
  import { ProviderCliAdapter } from '../cli-adapters/provider-cli-adapter.js';
10
10
  import type { PtyTransportFactory } from '../cli-adapters/pty-transport.js';
11
+ import type { ChatMessage } from '../types.js';
11
12
  type PersistableCliHistoryMessage = {
12
13
  role: string;
13
14
  content: string;
@@ -113,6 +114,7 @@ export declare class CliProviderInstance implements ProviderInstance {
113
114
  private maybeAppendRuntimeRecoveryMessage;
114
115
  private appendRuntimeSystemMessage;
115
116
  private appendRuntimeMessage;
117
+ mergeRuntimeChatMessages(parsedMessages: ChatMessage[]): ChatMessage[];
116
118
  private mergeConversationMessages;
117
119
  private formatApprovalRequestMessage;
118
120
  private promoteProviderSessionId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/daemon-core",
3
- "version": "0.9.76-rc.16",
3
+ "version": "0.9.76-rc.17",
4
4
  "description": "ADHDev daemon core — CDP, IDE detection, providers, command execution",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,6 +28,10 @@ interface ApprovalSelectableInstance extends ProviderInstance {
28
28
  recordApprovalSelection?(buttonText: string): void;
29
29
  }
30
30
 
31
+ interface RuntimeChatMessageMerger extends ProviderInstance {
32
+ mergeRuntimeChatMessages?(messages: ChatMessage[]): ChatMessage[];
33
+ }
34
+
31
35
  type LegacyStringScript = (params?: Record<string, unknown> | string) => string;
32
36
 
33
37
  function getCurrentProviderType(h: CommandHelpers, fallback = ''): string {
@@ -761,9 +765,15 @@ export async function handleReadChat(h: CommandHelpers, args: any): Promise<Comm
761
765
  : undefined;
762
766
  const activeModal = parsedRecord.activeModal ?? parsedRecord.modal ?? null;
763
767
  const returnedStatus = parsedRecord.status || 'idle';
764
- LOG.debug('Command', `[read_chat] cli-like parsed provider=${adapter.cliType} target=${String(args?.targetSessionId || '')} adapterStatus=${String(adapterStatus.status || '')} parsedStatus=${String(parsedRecord.status || '')} parsedMsgCount=${parsedRecord.messages.length}`);
768
+ const runtimeMessageMerger = getTargetInstance(h, args) as RuntimeChatMessageMerger | null;
769
+ const returnedMessages = runtimeMessageMerger?.category === 'cli'
770
+ && runtimeMessageMerger.type === adapter.cliType
771
+ && typeof runtimeMessageMerger.mergeRuntimeChatMessages === 'function'
772
+ ? runtimeMessageMerger.mergeRuntimeChatMessages(parsedRecord.messages as ChatMessage[])
773
+ : parsedRecord.messages;
774
+ LOG.debug('Command', `[read_chat] cli-like parsed provider=${adapter.cliType} target=${String(args?.targetSessionId || '')} adapterStatus=${String(adapterStatus.status || '')} parsedStatus=${String(parsedRecord.status || '')} parsedMsgCount=${parsedRecord.messages.length} returnedMsgCount=${returnedMessages.length}`);
765
775
  return buildReadChatCommandResult({
766
- messages: parsedRecord.messages,
776
+ messages: returnedMessages,
767
777
  status: returnedStatus,
768
778
  activeModal,
769
779
  debugReadChat: {
@@ -774,7 +784,7 @@ export async function handleReadChat(h: CommandHelpers, args: any): Promise<Comm
774
784
  returnedStatus: String(returnedStatus || ''),
775
785
  shouldPreferAdapterMessages: false,
776
786
  parsedMsgCount: parsedRecord.messages.length,
777
- returnedMsgCount: parsedRecord.messages.length,
787
+ returnedMsgCount: returnedMessages.length,
778
788
  },
779
789
  ...(title ? { title } : {}),
780
790
  ...(providerSessionId ? { providerSessionId } : {}),
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import type { ProviderModule } from './contracts.js';
8
8
  import type { ProviderInstance, ProviderState, InstanceContext } from './provider-instance.js';
9
+ import type { ChatMessage } from '../types.js';
9
10
  import { ProviderCliAdapter } from '../cli-adapters/provider-cli-adapter.js';
10
11
  import type { PtyTransportFactory } from '../cli-adapters/pty-transport.js';
11
12
  export declare class CliProviderInstance implements ProviderInstance {
@@ -77,6 +78,7 @@ export declare class CliProviderInstance implements ProviderInstance {
77
78
  private formatMarkerTimestamp;
78
79
  private maybeAppendRuntimeRecoveryMessage;
79
80
  private appendRuntimeSystemMessage;
81
+ mergeRuntimeChatMessages(parsedMessages: ChatMessage[]): ChatMessage[];
80
82
  private mergeConversationMessages;
81
83
  private formatApprovalRequestMessage;
82
84
  private promoteProviderSessionId;
@@ -978,6 +978,10 @@ export class CliProviderInstance implements ProviderInstance {
978
978
  }
979
979
  }
980
980
 
981
+ mergeRuntimeChatMessages(parsedMessages: ChatMessage[]): ChatMessage[] {
982
+ return this.mergeConversationMessages(parsedMessages);
983
+ }
984
+
981
985
  private mergeConversationMessages(parsedMessages: any[]): ChatMessage[] {
982
986
  if (this.runtimeMessages.length === 0) return normalizeChatMessages(parsedMessages);
983
987