@adhdev/daemon-core 0.8.70 → 0.8.72

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.
@@ -0,0 +1,34 @@
1
+ export interface ChatMessageSignatureInput {
2
+ id?: string | number | null;
3
+ index?: number | null;
4
+ role?: string | null;
5
+ receivedAt?: string | number | null;
6
+ timestamp?: string | number | null;
7
+ content?: unknown;
8
+ }
9
+ export interface ChatTailDeliverySignatureInput {
10
+ sessionId: string;
11
+ historySessionId?: string;
12
+ messages: unknown[];
13
+ status: string;
14
+ title?: string;
15
+ activeModal?: {
16
+ message: string;
17
+ buttons: string[];
18
+ } | null;
19
+ syncMode: string;
20
+ replaceFrom: number;
21
+ totalMessages: number;
22
+ lastMessageSignature: string;
23
+ }
24
+ export interface SessionModalDeliverySignatureInput {
25
+ sessionId: string;
26
+ status: string;
27
+ title?: string;
28
+ modalMessage?: string;
29
+ modalButtons?: string[];
30
+ }
31
+ export declare function hashSignatureParts(parts: string[]): string;
32
+ export declare function buildChatMessageSignature(message: ChatMessageSignatureInput | null | undefined): string;
33
+ export declare function buildChatTailDeliverySignature(payload: ChatTailDeliverySignatureInput): string;
34
+ export declare function buildSessionModalDeliverySignature(payload: SessionModalDeliverySignatureInput): string;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/chat/chat-signatures.ts
21
+ var chat_signatures_exports = {};
22
+ __export(chat_signatures_exports, {
23
+ buildChatMessageSignature: () => buildChatMessageSignature,
24
+ buildChatTailDeliverySignature: () => buildChatTailDeliverySignature,
25
+ buildSessionModalDeliverySignature: () => buildSessionModalDeliverySignature,
26
+ hashSignatureParts: () => hashSignatureParts
27
+ });
28
+ module.exports = __toCommonJS(chat_signatures_exports);
29
+ function hashSignatureParts(parts) {
30
+ let hash = 2166136261;
31
+ for (const part of parts) {
32
+ const text = String(part || "");
33
+ for (let i = 0; i < text.length; i += 1) {
34
+ hash ^= text.charCodeAt(i);
35
+ hash = Math.imul(hash, 16777619) >>> 0;
36
+ }
37
+ hash ^= 255;
38
+ hash = Math.imul(hash, 16777619) >>> 0;
39
+ }
40
+ return hash.toString(16).padStart(8, "0");
41
+ }
42
+ function stringifySignatureContent(content) {
43
+ try {
44
+ return JSON.stringify(content ?? "");
45
+ } catch {
46
+ return String(content ?? "");
47
+ }
48
+ }
49
+ function stringifySignatureMessages(messages) {
50
+ try {
51
+ return JSON.stringify(messages);
52
+ } catch {
53
+ return String(messages.length);
54
+ }
55
+ }
56
+ function buildChatMessageSignature(message) {
57
+ if (!message) return "";
58
+ return hashSignatureParts([
59
+ String(message.id || ""),
60
+ String(message.index ?? ""),
61
+ String(message.role || ""),
62
+ String(message.receivedAt ?? message.timestamp ?? ""),
63
+ stringifySignatureContent(message.content)
64
+ ]);
65
+ }
66
+ function buildChatTailDeliverySignature(payload) {
67
+ return hashSignatureParts([
68
+ payload.sessionId,
69
+ payload.historySessionId || "",
70
+ payload.status,
71
+ payload.title || "",
72
+ payload.syncMode,
73
+ String(payload.replaceFrom),
74
+ String(payload.totalMessages),
75
+ payload.lastMessageSignature,
76
+ payload.activeModal ? `${payload.activeModal.message}|${payload.activeModal.buttons.join("")}` : "",
77
+ stringifySignatureMessages(payload.messages)
78
+ ]);
79
+ }
80
+ function buildSessionModalDeliverySignature(payload) {
81
+ return hashSignatureParts([
82
+ payload.sessionId,
83
+ payload.status,
84
+ payload.title || "",
85
+ payload.modalMessage || "",
86
+ Array.isArray(payload.modalButtons) ? payload.modalButtons.join("") : ""
87
+ ]);
88
+ }
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ buildChatMessageSignature,
92
+ buildChatTailDeliverySignature,
93
+ buildSessionModalDeliverySignature,
94
+ hashSignatureParts
95
+ });
96
+ //# sourceMappingURL=chat-signatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/chat/chat-signatures.ts"],"sourcesContent":["export interface ChatMessageSignatureInput {\n id?: string | number | null\n index?: number | null\n role?: string | null\n receivedAt?: string | number | null\n timestamp?: string | number | null\n content?: unknown\n}\n\nexport interface ChatTailDeliverySignatureInput {\n sessionId: string\n historySessionId?: string\n messages: unknown[]\n status: string\n title?: string\n activeModal?: { message: string; buttons: string[] } | null\n syncMode: string\n replaceFrom: number\n totalMessages: number\n lastMessageSignature: string\n}\n\nexport interface SessionModalDeliverySignatureInput {\n sessionId: string\n status: string\n title?: string\n modalMessage?: string\n modalButtons?: string[]\n}\n\nexport function hashSignatureParts(parts: string[]): string {\n let hash = 0x811c9dc5\n for (const part of parts) {\n const text = String(part || '')\n for (let i = 0; i < text.length; i += 1) {\n hash ^= text.charCodeAt(i)\n hash = Math.imul(hash, 0x01000193) >>> 0\n }\n hash ^= 0xff\n hash = Math.imul(hash, 0x01000193) >>> 0\n }\n return hash.toString(16).padStart(8, '0')\n}\n\nfunction stringifySignatureContent(content: unknown): string {\n try {\n return JSON.stringify(content ?? '')\n } catch {\n return String(content ?? '')\n }\n}\n\nfunction stringifySignatureMessages(messages: unknown[]): string {\n try {\n return JSON.stringify(messages)\n } catch {\n return String(messages.length)\n }\n}\n\nexport function buildChatMessageSignature(message: ChatMessageSignatureInput | null | undefined): string {\n if (!message) return ''\n return hashSignatureParts([\n String(message.id || ''),\n String(message.index ?? ''),\n String(message.role || ''),\n String(message.receivedAt ?? message.timestamp ?? ''),\n stringifySignatureContent(message.content),\n ])\n}\n\nexport function buildChatTailDeliverySignature(payload: ChatTailDeliverySignatureInput): string {\n return hashSignatureParts([\n payload.sessionId,\n payload.historySessionId || '',\n payload.status,\n payload.title || '',\n payload.syncMode,\n String(payload.replaceFrom),\n String(payload.totalMessages),\n payload.lastMessageSignature,\n payload.activeModal ? `${payload.activeModal.message}|${payload.activeModal.buttons.join('\\u001f')}` : '',\n stringifySignatureMessages(payload.messages),\n ])\n}\n\nexport function buildSessionModalDeliverySignature(payload: SessionModalDeliverySignatureInput): string {\n return hashSignatureParts([\n payload.sessionId,\n payload.status,\n payload.title || '',\n payload.modalMessage || '',\n Array.isArray(payload.modalButtons) ? payload.modalButtons.join('\\u001f') : '',\n ])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BO,SAAS,mBAAmB,OAAyB;AAC1D,MAAI,OAAO;AACX,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,OAAO,QAAQ,EAAE;AAC9B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,cAAQ,KAAK,WAAW,CAAC;AACzB,aAAO,KAAK,KAAK,MAAM,QAAU,MAAM;AAAA,IACzC;AACA,YAAQ;AACR,WAAO,KAAK,KAAK,MAAM,QAAU,MAAM;AAAA,EACzC;AACA,SAAO,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC1C;AAEA,SAAS,0BAA0B,SAA0B;AAC3D,MAAI;AACF,WAAO,KAAK,UAAU,WAAW,EAAE;AAAA,EACrC,QAAQ;AACN,WAAO,OAAO,WAAW,EAAE;AAAA,EAC7B;AACF;AAEA,SAAS,2BAA2B,UAA6B;AAC/D,MAAI;AACF,WAAO,KAAK,UAAU,QAAQ;AAAA,EAChC,QAAQ;AACN,WAAO,OAAO,SAAS,MAAM;AAAA,EAC/B;AACF;AAEO,SAAS,0BAA0B,SAA+D;AACvG,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,mBAAmB;AAAA,IACxB,OAAO,QAAQ,MAAM,EAAE;AAAA,IACvB,OAAO,QAAQ,SAAS,EAAE;AAAA,IAC1B,OAAO,QAAQ,QAAQ,EAAE;AAAA,IACzB,OAAO,QAAQ,cAAc,QAAQ,aAAa,EAAE;AAAA,IACpD,0BAA0B,QAAQ,OAAO;AAAA,EAC3C,CAAC;AACH;AAEO,SAAS,+BAA+B,SAAiD;AAC9F,SAAO,mBAAmB;AAAA,IACxB,QAAQ;AAAA,IACR,QAAQ,oBAAoB;AAAA,IAC5B,QAAQ;AAAA,IACR,QAAQ,SAAS;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO,QAAQ,WAAW;AAAA,IAC1B,OAAO,QAAQ,aAAa;AAAA,IAC5B,QAAQ;AAAA,IACR,QAAQ,cAAc,GAAG,QAAQ,YAAY,OAAO,IAAI,QAAQ,YAAY,QAAQ,KAAK,GAAQ,CAAC,KAAK;AAAA,IACvG,2BAA2B,QAAQ,QAAQ;AAAA,EAC7C,CAAC;AACH;AAEO,SAAS,mCAAmC,SAAqD;AACtG,SAAO,mBAAmB;AAAA,IACxB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ,SAAS;AAAA,IACjB,QAAQ,gBAAgB;AAAA,IACxB,MAAM,QAAQ,QAAQ,YAAY,IAAI,QAAQ,aAAa,KAAK,GAAQ,IAAI;AAAA,EAC9E,CAAC;AACH;","names":[]}
@@ -0,0 +1,68 @@
1
+ // src/chat/chat-signatures.ts
2
+ function hashSignatureParts(parts) {
3
+ let hash = 2166136261;
4
+ for (const part of parts) {
5
+ const text = String(part || "");
6
+ for (let i = 0; i < text.length; i += 1) {
7
+ hash ^= text.charCodeAt(i);
8
+ hash = Math.imul(hash, 16777619) >>> 0;
9
+ }
10
+ hash ^= 255;
11
+ hash = Math.imul(hash, 16777619) >>> 0;
12
+ }
13
+ return hash.toString(16).padStart(8, "0");
14
+ }
15
+ function stringifySignatureContent(content) {
16
+ try {
17
+ return JSON.stringify(content ?? "");
18
+ } catch {
19
+ return String(content ?? "");
20
+ }
21
+ }
22
+ function stringifySignatureMessages(messages) {
23
+ try {
24
+ return JSON.stringify(messages);
25
+ } catch {
26
+ return String(messages.length);
27
+ }
28
+ }
29
+ function buildChatMessageSignature(message) {
30
+ if (!message) return "";
31
+ return hashSignatureParts([
32
+ String(message.id || ""),
33
+ String(message.index ?? ""),
34
+ String(message.role || ""),
35
+ String(message.receivedAt ?? message.timestamp ?? ""),
36
+ stringifySignatureContent(message.content)
37
+ ]);
38
+ }
39
+ function buildChatTailDeliverySignature(payload) {
40
+ return hashSignatureParts([
41
+ payload.sessionId,
42
+ payload.historySessionId || "",
43
+ payload.status,
44
+ payload.title || "",
45
+ payload.syncMode,
46
+ String(payload.replaceFrom),
47
+ String(payload.totalMessages),
48
+ payload.lastMessageSignature,
49
+ payload.activeModal ? `${payload.activeModal.message}|${payload.activeModal.buttons.join("")}` : "",
50
+ stringifySignatureMessages(payload.messages)
51
+ ]);
52
+ }
53
+ function buildSessionModalDeliverySignature(payload) {
54
+ return hashSignatureParts([
55
+ payload.sessionId,
56
+ payload.status,
57
+ payload.title || "",
58
+ payload.modalMessage || "",
59
+ Array.isArray(payload.modalButtons) ? payload.modalButtons.join("") : ""
60
+ ]);
61
+ }
62
+ export {
63
+ buildChatMessageSignature,
64
+ buildChatTailDeliverySignature,
65
+ buildSessionModalDeliverySignature,
66
+ hashSignatureParts
67
+ };
68
+ //# sourceMappingURL=chat-signatures.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/chat/chat-signatures.ts"],"sourcesContent":["export interface ChatMessageSignatureInput {\n id?: string | number | null\n index?: number | null\n role?: string | null\n receivedAt?: string | number | null\n timestamp?: string | number | null\n content?: unknown\n}\n\nexport interface ChatTailDeliverySignatureInput {\n sessionId: string\n historySessionId?: string\n messages: unknown[]\n status: string\n title?: string\n activeModal?: { message: string; buttons: string[] } | null\n syncMode: string\n replaceFrom: number\n totalMessages: number\n lastMessageSignature: string\n}\n\nexport interface SessionModalDeliverySignatureInput {\n sessionId: string\n status: string\n title?: string\n modalMessage?: string\n modalButtons?: string[]\n}\n\nexport function hashSignatureParts(parts: string[]): string {\n let hash = 0x811c9dc5\n for (const part of parts) {\n const text = String(part || '')\n for (let i = 0; i < text.length; i += 1) {\n hash ^= text.charCodeAt(i)\n hash = Math.imul(hash, 0x01000193) >>> 0\n }\n hash ^= 0xff\n hash = Math.imul(hash, 0x01000193) >>> 0\n }\n return hash.toString(16).padStart(8, '0')\n}\n\nfunction stringifySignatureContent(content: unknown): string {\n try {\n return JSON.stringify(content ?? '')\n } catch {\n return String(content ?? '')\n }\n}\n\nfunction stringifySignatureMessages(messages: unknown[]): string {\n try {\n return JSON.stringify(messages)\n } catch {\n return String(messages.length)\n }\n}\n\nexport function buildChatMessageSignature(message: ChatMessageSignatureInput | null | undefined): string {\n if (!message) return ''\n return hashSignatureParts([\n String(message.id || ''),\n String(message.index ?? ''),\n String(message.role || ''),\n String(message.receivedAt ?? message.timestamp ?? ''),\n stringifySignatureContent(message.content),\n ])\n}\n\nexport function buildChatTailDeliverySignature(payload: ChatTailDeliverySignatureInput): string {\n return hashSignatureParts([\n payload.sessionId,\n payload.historySessionId || '',\n payload.status,\n payload.title || '',\n payload.syncMode,\n String(payload.replaceFrom),\n String(payload.totalMessages),\n payload.lastMessageSignature,\n payload.activeModal ? `${payload.activeModal.message}|${payload.activeModal.buttons.join('\\u001f')}` : '',\n stringifySignatureMessages(payload.messages),\n ])\n}\n\nexport function buildSessionModalDeliverySignature(payload: SessionModalDeliverySignatureInput): string {\n return hashSignatureParts([\n payload.sessionId,\n payload.status,\n payload.title || '',\n payload.modalMessage || '',\n Array.isArray(payload.modalButtons) ? payload.modalButtons.join('\\u001f') : '',\n ])\n}\n"],"mappings":";AA8BO,SAAS,mBAAmB,OAAyB;AAC1D,MAAI,OAAO;AACX,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,OAAO,QAAQ,EAAE;AAC9B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,cAAQ,KAAK,WAAW,CAAC;AACzB,aAAO,KAAK,KAAK,MAAM,QAAU,MAAM;AAAA,IACzC;AACA,YAAQ;AACR,WAAO,KAAK,KAAK,MAAM,QAAU,MAAM;AAAA,EACzC;AACA,SAAO,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC1C;AAEA,SAAS,0BAA0B,SAA0B;AAC3D,MAAI;AACF,WAAO,KAAK,UAAU,WAAW,EAAE;AAAA,EACrC,QAAQ;AACN,WAAO,OAAO,WAAW,EAAE;AAAA,EAC7B;AACF;AAEA,SAAS,2BAA2B,UAA6B;AAC/D,MAAI;AACF,WAAO,KAAK,UAAU,QAAQ;AAAA,EAChC,QAAQ;AACN,WAAO,OAAO,SAAS,MAAM;AAAA,EAC/B;AACF;AAEO,SAAS,0BAA0B,SAA+D;AACvG,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,mBAAmB;AAAA,IACxB,OAAO,QAAQ,MAAM,EAAE;AAAA,IACvB,OAAO,QAAQ,SAAS,EAAE;AAAA,IAC1B,OAAO,QAAQ,QAAQ,EAAE;AAAA,IACzB,OAAO,QAAQ,cAAc,QAAQ,aAAa,EAAE;AAAA,IACpD,0BAA0B,QAAQ,OAAO;AAAA,EAC3C,CAAC;AACH;AAEO,SAAS,+BAA+B,SAAiD;AAC9F,SAAO,mBAAmB;AAAA,IACxB,QAAQ;AAAA,IACR,QAAQ,oBAAoB;AAAA,IAC5B,QAAQ;AAAA,IACR,QAAQ,SAAS;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO,QAAQ,WAAW;AAAA,IAC1B,OAAO,QAAQ,aAAa;AAAA,IAC5B,QAAQ;AAAA,IACR,QAAQ,cAAc,GAAG,QAAQ,YAAY,OAAO,IAAI,QAAQ,YAAY,QAAQ,KAAK,GAAQ,CAAC,KAAK;AAAA,IACvG,2BAA2B,QAAQ,QAAQ;AAAA,EAC7C,CAAC;AACH;AAEO,SAAS,mCAAmC,SAAqD;AACtG,SAAO,mBAAmB;AAAA,IACxB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ,SAAS;AAAA,IACjB,QAAQ,gBAAgB;AAAA,IACxB,MAAM,QAAQ,QAAQ,YAAY,IAAI,QAAQ,aAAa,KAAK,GAAQ,IAAI;AAAA,EAC9E,CAAC;AACH;","names":[]}
@@ -0,0 +1,50 @@
1
+ import type { ReadChatCursor, ReadChatSyncResult, SessionChatTailUpdate, SessionModalUpdate } from '../shared-types.js';
2
+ export interface ChatTailSubscriptionCursor extends Pick<ReadChatCursor, 'knownMessageCount' | 'lastMessageSignature' | 'tailLimit'> {
3
+ }
4
+ export type SessionChatTailCommandResult = Partial<Omit<ReadChatSyncResult, 'activeModal'>> & {
5
+ success?: boolean;
6
+ activeModal?: unknown;
7
+ };
8
+ export interface PrepareSessionChatTailUpdateInput {
9
+ key: string;
10
+ sessionId: string;
11
+ historySessionId?: string;
12
+ seq: number;
13
+ timestamp: number;
14
+ interactionId?: string;
15
+ cursor: ChatTailSubscriptionCursor;
16
+ lastDeliveredSignature: string;
17
+ result: SessionChatTailCommandResult | null | undefined;
18
+ }
19
+ export interface PreparedSessionChatTailUpdate {
20
+ cursor: ChatTailSubscriptionCursor;
21
+ seq: number;
22
+ lastDeliveredSignature: string;
23
+ update: SessionChatTailUpdate | null;
24
+ }
25
+ export interface PrepareSessionModalUpdateInput {
26
+ key: string;
27
+ sessionId: string;
28
+ status: string;
29
+ title?: string;
30
+ activeModal?: unknown;
31
+ seq: number;
32
+ timestamp: number;
33
+ interactionId?: string;
34
+ lastDeliveredSignature: string;
35
+ }
36
+ export interface PreparedSessionModalUpdate {
37
+ seq: number;
38
+ lastDeliveredSignature: string;
39
+ update: SessionModalUpdate | null;
40
+ }
41
+ export declare function normalizeChatTailActiveModal(activeModal: unknown): {
42
+ message: string;
43
+ buttons: string[];
44
+ } | null;
45
+ export declare function normalizeSessionModalFields(activeModal: unknown): {
46
+ modalMessage?: string;
47
+ modalButtons: string[];
48
+ };
49
+ export declare function prepareSessionChatTailUpdate(input: PrepareSessionChatTailUpdateInput): PreparedSessionChatTailUpdate;
50
+ export declare function prepareSessionModalUpdate(input: PrepareSessionModalUpdateInput): PreparedSessionModalUpdate;
@@ -0,0 +1,2 @@
1
+ export type LegacyStringScript = (params?: Record<string, unknown> | string) => string | null | undefined;
2
+ export declare function resolveLegacyProviderScript(fn: LegacyStringScript | null | undefined, scriptName: string, params?: Record<string, unknown> | string): string | null;
package/dist/index.d.ts CHANGED
@@ -61,6 +61,10 @@ export { DaemonCliManager } from './commands/cli-manager.js';
61
61
  export { launchWithCdp, getAvailableIdeIds, killIdeProcess, isIdeRunning } from './launch.js';
62
62
  export { DEFAULT_DAEMON_PORT, DAEMON_WS_PATH } from './ipc-protocol.js';
63
63
  export { readChatHistory } from './config/chat-history.js';
64
+ export { hashSignatureParts, buildChatMessageSignature, buildChatTailDeliverySignature, buildSessionModalDeliverySignature, } from './chat/chat-signatures.js';
65
+ export type { ChatMessageSignatureInput, ChatTailDeliverySignatureInput, SessionModalDeliverySignatureInput, } from './chat/chat-signatures.js';
66
+ export { normalizeChatTailActiveModal, normalizeSessionModalFields, prepareSessionChatTailUpdate, prepareSessionModalUpdate, } from './chat/subscription-updates.js';
67
+ export type { ChatTailSubscriptionCursor, PrepareSessionChatTailUpdateInput, PreparedSessionChatTailUpdate, PrepareSessionModalUpdateInput, PreparedSessionModalUpdate, SessionChatTailCommandResult, } from './chat/subscription-updates.js';
64
68
  export { DaemonAgentStreamManager } from './agent-stream/index.js';
65
69
  export { AgentStreamPoller } from './agent-stream/index.js';
66
70
  export type { AgentStreamPollerDeps } from './agent-stream/index.js';