@scotthuang/agent-knock-knock 0.14.2 → 0.14.4

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.
Files changed (131) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +233 -108
  3. package/dist/src/backend-callback-public-projection.d.ts +27 -0
  4. package/dist/src/backend-callback-public-projection.js +58 -0
  5. package/dist/src/backend-callback-public-projection.js.map +1 -0
  6. package/dist/src/backend-public-progress.d.ts +2 -0
  7. package/dist/src/backend-public-progress.js +4 -1
  8. package/dist/src/backend-public-progress.js.map +1 -1
  9. package/dist/src/backend-recovery-semantic.js +5 -4
  10. package/dist/src/backend-recovery-semantic.js.map +1 -1
  11. package/dist/src/callback-transport.d.ts +1 -1
  12. package/dist/src/callback-transport.js +2 -2
  13. package/dist/src/callback-transport.js.map +1 -1
  14. package/dist/src/claude-conversation-routing-cli-adapter.d.ts +2 -0
  15. package/dist/src/claude-conversation-routing-cli-adapter.js +127 -0
  16. package/dist/src/claude-conversation-routing-cli-adapter.js.map +1 -0
  17. package/dist/src/claude-conversation-routing-identity.d.ts +11 -0
  18. package/dist/src/claude-conversation-routing-identity.js +46 -0
  19. package/dist/src/claude-conversation-routing-identity.js.map +1 -0
  20. package/dist/src/claude-native-cli-adapter.d.ts +18 -0
  21. package/dist/src/claude-native-cli-adapter.js +159 -0
  22. package/dist/src/claude-native-cli-adapter.js.map +1 -0
  23. package/dist/src/claude-native-client.d.ts +57 -0
  24. package/dist/src/claude-native-client.js +197 -0
  25. package/dist/src/claude-native-client.js.map +1 -0
  26. package/dist/src/claude-native-discovery.d.ts +20 -0
  27. package/dist/src/claude-native-discovery.js +111 -0
  28. package/dist/src/claude-native-discovery.js.map +1 -0
  29. package/dist/src/claude-native-identity.d.ts +29 -0
  30. package/dist/src/claude-native-identity.js +54 -0
  31. package/dist/src/claude-native-identity.js.map +1 -0
  32. package/dist/src/claude-native-monitor.d.ts +13 -0
  33. package/dist/src/claude-native-monitor.js +123 -0
  34. package/dist/src/claude-native-monitor.js.map +1 -0
  35. package/dist/src/claude-native-observation.d.ts +54 -0
  36. package/dist/src/claude-native-observation.js +418 -0
  37. package/dist/src/claude-native-observation.js.map +1 -0
  38. package/dist/src/claude-native-outbox.d.ts +16 -0
  39. package/dist/src/claude-native-outbox.js +122 -0
  40. package/dist/src/claude-native-outbox.js.map +1 -0
  41. package/dist/src/claude-native-peer-helper.d.ts +2 -0
  42. package/dist/src/claude-native-peer-helper.js +121 -0
  43. package/dist/src/claude-native-peer-helper.js.map +1 -0
  44. package/dist/src/claude-native-public-projection.d.ts +605 -0
  45. package/dist/src/claude-native-public-projection.js +98 -0
  46. package/dist/src/claude-native-public-projection.js.map +1 -0
  47. package/dist/src/claude-native-runtime.d.ts +25 -0
  48. package/dist/src/claude-native-runtime.js +74 -0
  49. package/dist/src/claude-native-runtime.js.map +1 -0
  50. package/dist/src/claude-native-state-store.d.ts +49 -0
  51. package/dist/src/claude-native-state-store.js +96 -0
  52. package/dist/src/claude-native-state-store.js.map +1 -0
  53. package/dist/src/claude-native-task-service.d.ts +70 -0
  54. package/dist/src/claude-native-task-service.js +327 -0
  55. package/dist/src/claude-native-task-service.js.map +1 -0
  56. package/dist/src/cli-core.js +2 -1
  57. package/dist/src/cli-core.js.map +1 -1
  58. package/dist/src/cli-runtime-context.d.ts +2 -0
  59. package/dist/src/cli-runtime-context.js.map +1 -1
  60. package/dist/src/codex-native-cli-adapter.js +3 -4
  61. package/dist/src/codex-native-cli-adapter.js.map +1 -1
  62. package/dist/src/codex-native-client.d.ts +2 -0
  63. package/dist/src/codex-native-client.js +13 -3
  64. package/dist/src/codex-native-client.js.map +1 -1
  65. package/dist/src/codex-native-outbox.js +7 -5
  66. package/dist/src/codex-native-outbox.js.map +1 -1
  67. package/dist/src/codex-native-public-projection.d.ts +24 -8
  68. package/dist/src/codex-native-public-projection.js +38 -15
  69. package/dist/src/codex-native-public-projection.js.map +1 -1
  70. package/dist/src/codex-native-runtime.d.ts +1 -1
  71. package/dist/src/codex-native-runtime.js +15 -2
  72. package/dist/src/codex-native-runtime.js.map +1 -1
  73. package/dist/src/codex-native-semantic.js +15 -5
  74. package/dist/src/codex-native-semantic.js.map +1 -1
  75. package/dist/src/codex-native-state-store.d.ts +2 -0
  76. package/dist/src/codex-native-state-store.js +4 -2
  77. package/dist/src/codex-native-state-store.js.map +1 -1
  78. package/dist/src/codex-native-task-service.js +20 -4
  79. package/dist/src/codex-native-task-service.js.map +1 -1
  80. package/dist/src/conversation-list.js +30 -3
  81. package/dist/src/conversation-list.js.map +1 -1
  82. package/dist/src/conversation-routing-cli-adapter.d.ts +2 -7
  83. package/dist/src/conversation-routing-cli-adapter.js +4 -2
  84. package/dist/src/conversation-routing-cli-adapter.js.map +1 -1
  85. package/dist/src/conversation-routing-commands.d.ts +5 -0
  86. package/dist/src/conversation-routing-commands.js.map +1 -1
  87. package/dist/src/desktop-command-presentation.js +3 -1
  88. package/dist/src/desktop-command-presentation.js.map +1 -1
  89. package/dist/src/desktop-public-projection.js +3 -6
  90. package/dist/src/desktop-public-projection.js.map +1 -1
  91. package/dist/src/desktop-task-service.js +10 -3
  92. package/dist/src/desktop-task-service.js.map +1 -1
  93. package/dist/src/durable-notification-kernel.d.ts +10 -0
  94. package/dist/src/durable-notification-kernel.js +18 -1
  95. package/dist/src/durable-notification-kernel.js.map +1 -1
  96. package/dist/src/host-monitor-reconciliation.js +9 -1
  97. package/dist/src/host-monitor-reconciliation.js.map +1 -1
  98. package/dist/src/host-profile-runtime.js +3 -1
  99. package/dist/src/host-profile-runtime.js.map +1 -1
  100. package/dist/src/local-codex-cli-adapter.js +4 -3
  101. package/dist/src/local-codex-cli-adapter.js.map +1 -1
  102. package/dist/src/openclaw-callback-evidence.d.ts +17 -0
  103. package/dist/src/openclaw-callback-evidence.js +75 -0
  104. package/dist/src/openclaw-callback-evidence.js.map +1 -0
  105. package/dist/src/openclaw-callback-transport.js +90 -9
  106. package/dist/src/openclaw-callback-transport.js.map +1 -1
  107. package/dist/src/semantic-conversation-target.js +1 -1
  108. package/dist/src/semantic-conversation-target.js.map +1 -1
  109. package/dist/src/semantic-tool-command-helpers.d.ts +0 -1
  110. package/dist/src/semantic-tool-command-helpers.js +45 -19
  111. package/dist/src/semantic-tool-command-helpers.js.map +1 -1
  112. package/dist/src/semantic-tool-descriptions.js +3 -3
  113. package/dist/src/semantic-tool-descriptions.js.map +1 -1
  114. package/dist/src/semantic-tool-list-projection.js +13 -6
  115. package/dist/src/semantic-tool-list-projection.js.map +1 -1
  116. package/dist/src/semantic-tool-presentation.js +17 -3
  117. package/dist/src/semantic-tool-presentation.js.map +1 -1
  118. package/dist/src/semantic-tool-runtime.js +8 -1
  119. package/dist/src/semantic-tool-runtime.js.map +1 -1
  120. package/dist/src/semantic-tool-schemas.js +15 -15
  121. package/dist/src/semantic-tool-schemas.js.map +1 -1
  122. package/dist/src/terminal-list-cli-adapter.js +5 -1
  123. package/dist/src/terminal-list-cli-adapter.js.map +1 -1
  124. package/dist/src/terminal-list-ownership-service.js +1 -1
  125. package/dist/src/terminal-list-ownership-service.js.map +1 -1
  126. package/docs/backend-task-recovery.md +43 -0
  127. package/docs/claude-cli-direct.md +60 -0
  128. package/docs/codex-0.162.1-compatibility.md +65 -10
  129. package/docs/codex-cli-native-compatibility.md +21 -0
  130. package/package.json +2 -2
  131. package/templates/openclaw-skills/agent-knock-knock/SKILL.md +14 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-native-public-projection.js","sourceRoot":"","sources":["../../src/claude-native-public-projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type ClaudeNativeClient } from "./claude-native-client.js";
2
+ import { type ClaudeNativeIdentity } from "./claude-native-identity.js";
3
+ import type { CallbackAttemptOutcome, CallbackTransportDeliverInput } from "./callback-transport.js";
4
+ export interface ClaudeNativeRuntimeOptions {
5
+ storeDir: string;
6
+ claudeConfigDirs: string[];
7
+ claudeBin?: string;
8
+ pythonBin?: string;
9
+ openclawBin?: string;
10
+ client?: Pick<ClaudeNativeClient, "discover" | "inspect" | "send" | "close">;
11
+ callbackDeliver?(input: CallbackTransportDeliverInput): Promise<CallbackAttemptOutcome> | CallbackAttemptOutcome;
12
+ processCheck?(identity: ClaudeNativeIdentity): Promise<void>;
13
+ }
14
+ /** Exit and PID reuse are separate from an unavailable registry or an unknown protocol. */
15
+ export declare function assertClaudeOriginalProcess(identity: ClaudeNativeIdentity): Promise<void>;
16
+ export declare function createClaudeNativeRuntime(options: ClaudeNativeRuntimeOptions): {
17
+ catalog: {
18
+ discover: () => Promise<import("./claude-native-discovery.js").ClaudeNativeDiscoveryResult>;
19
+ };
20
+ tasks: import("./claude-native-task-service.js").ClaudeNativeTasks;
21
+ inspect: (identity: ClaudeNativeIdentity) => Promise<import("./claude-native-identity.js").ClaudeNativeCatalogEntry>;
22
+ read(identity: ClaudeNativeIdentity, exactInputUuid?: string, messageId?: string): Promise<import("./claude-native-observation.js").ClaudeNativeSnapshot>;
23
+ reconcile: (id: string) => Promise<import("./claude-native-state-store.js").ClaudeNativeTaskRecord>;
24
+ close(): Promise<void>;
25
+ };
@@ -0,0 +1,74 @@
1
+ import path from "node:path";
2
+ import fs from "node:fs";
3
+ import { createClaudeNativeClient } from "./claude-native-client.js";
4
+ import { runClaudeNativeCommand } from "./claude-native-discovery.js";
5
+ import { ClaudeNativeError } from "./claude-native-identity.js";
6
+ import { readClaudeNativeSnapshot } from "./claude-native-observation.js";
7
+ import { createClaudeNativeStateStore } from "./claude-native-state-store.js";
8
+ import { createClaudeNativeTaskService } from "./claude-native-task-service.js";
9
+ import { createFileLockCliAdapter } from "./file-lock-cli-adapter.js";
10
+ import { createOpenClawCallbackTransport } from "./openclaw-callback-transport.js";
11
+ import { createHostProfileCallbackTransport } from "./host-profile-callback-transport.js";
12
+ import { cliCwd, cliEnv, cliNow, cliNowMs, cliPid, cliSleepSync } from "./cli-runtime-context.js";
13
+ /** Exit and PID reuse are separate from an unavailable registry or an unknown protocol. */
14
+ export async function assertClaudeOriginalProcess(identity) {
15
+ let info;
16
+ try {
17
+ info = await runClaudeNativeCommand("/bin/ps", ["-p", String(identity.pid), "-o", "uid=", "-o", "lstart="], { ...process.env, LC_ALL: "C", TZ: "UTC" });
18
+ }
19
+ catch {
20
+ try {
21
+ process.kill(identity.pid, 0);
22
+ }
23
+ catch (error) {
24
+ if (error.code === "ESRCH")
25
+ throw new ClaudeNativeError("process_exited", "Original Claude process exited");
26
+ }
27
+ throw new ClaudeNativeError("process_check_unavailable", "Could not verify the original Claude process");
28
+ }
29
+ if (info.trim().replace(/\s+/gu, " ") !== `${process.getuid?.()} ${identity.processStart}`) {
30
+ throw new ClaudeNativeError("process_changed", "Original Claude process identity changed");
31
+ }
32
+ }
33
+ export function createClaudeNativeRuntime(options) {
34
+ const canonical = (dir) => { try {
35
+ return fs.realpathSync(dir);
36
+ }
37
+ catch {
38
+ return path.resolve(dir);
39
+ } };
40
+ const homes = new Set(options.claudeConfigDirs.map(canonical));
41
+ const client = options.client ?? createClaudeNativeClient({ configDirs: [...homes], claudePath: options.claudeBin, pythonPath: options.pythonBin });
42
+ function assertConfigured(identity) {
43
+ if (!path.isAbsolute(identity.configDir) || !homes.has(canonical(identity.configDir)))
44
+ throw new ClaudeNativeError("unconfigured_home", "Claude target is outside configured local homes");
45
+ }
46
+ async function inspect(identity) {
47
+ assertConfigured(identity);
48
+ await (options.processCheck ?? assertClaudeOriginalProcess)(identity);
49
+ return client.inspect(identity);
50
+ }
51
+ const locks = createFileLockCliAdapter({ now: cliNow, nowMs: cliNowMs, pid: cliPid, sleepSync: cliSleepSync });
52
+ const repository = createClaudeNativeStateStore(options.storeDir, { acquire: lock => locks.acquire(lock) });
53
+ const legacy = createOpenClawCallbackTransport({ now: cliNow, environment: cliEnv,
54
+ redactConversation: () => { throw new Error("Claude native callbacks use exact task records"); },
55
+ recordCallbackProcessDelivery: () => { throw new Error("Claude native callbacks use their durable outbox"); } });
56
+ const callbacks = createHostProfileCallbackTransport({ legacyTransport: legacy, environment: cliEnv, cwd: cliCwd(), now: cliNow });
57
+ const tasks = createClaudeNativeTaskService({ repository, inspect, now: cliNow,
58
+ send: (identity, input) => { assertConfigured(identity); return client.send(identity, input); },
59
+ observe: async (entry, observation) => {
60
+ const current = await inspect(entry);
61
+ return readClaudeNativeSnapshot(current, { ...observation, processAlive: true });
62
+ },
63
+ deliver: options.callbackDeliver ?? (input => callbacks.deliver(input)),
64
+ resolveCallbackContext: task => ({ legacyOptions: { gatewayMethod: "chat.send", openclawSession: task.controller_session,
65
+ gatewaySession: task.controller_session, openclawBin: options.openclawBin } }) });
66
+ return { catalog: { discover: () => client.discover() }, tasks, inspect,
67
+ async read(identity, exactInputUuid, messageId) {
68
+ const entry = await inspect(identity);
69
+ return readClaudeNativeSnapshot(entry, { exactInputUuid, messageId, processAlive: true });
70
+ },
71
+ reconcile: (id) => tasks.reconcile(id),
72
+ async close() { client.close(); } };
73
+ }
74
+ //# sourceMappingURL=claude-native-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-native-runtime.js","sourceRoot":"","sources":["../../src/claude-native-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { type CallbackRouteV1 } from "./callback-transport.js";
2
+ import { type BackendRecoveryFields } from "./backend-task-recovery.js";
3
+ import { type NativeRecordRepository } from "./codex-native-record-store.js";
4
+ import type { CodexNativeNotification } from "./codex-native-state-store.js";
5
+ import { type ClaudeNativeIdentity, type ClaudeNativeCatalogEntry } from "./claude-native-identity.js";
6
+ import type { ClaudeNativeTranscriptSource, ClaudeNativePublicProgress } from "./claude-native-observation.js";
7
+ export type ClaudeNativeTaskStatus = "awaiting_acceptance" | "watching" | "completed" | "failed" | "interrupted" | "exited" | "timed_out" | "cancelled";
8
+ export interface ClaudeNativeSendIntent {
9
+ message_id: string;
10
+ client_user_message_id: string;
11
+ native_message_id: string;
12
+ text: string;
13
+ sender_pid?: number;
14
+ state: "reserved" | "uncertain" | "accepted" | "not_sent" | "held" | "refused" | "attached";
15
+ dispatched_at: string;
16
+ error_code?: string;
17
+ }
18
+ export interface ClaudeNativeTaskRecord extends BackendRecoveryFields {
19
+ schema: "agent-knock-knock/claude-native-task";
20
+ version: 1;
21
+ revision: number;
22
+ id: string;
23
+ watch_id: string;
24
+ native_id: string;
25
+ target: ClaudeNativeIdentity;
26
+ entry: ClaudeNativeCatalogEntry;
27
+ controller_session: string;
28
+ kind: "send" | "watch";
29
+ status: ClaudeNativeTaskStatus;
30
+ created_at: string;
31
+ updated_at: string;
32
+ deadline_at: string;
33
+ native_input_id?: string;
34
+ source?: ClaudeNativeTranscriptSource;
35
+ send_intent?: ClaudeNativeSendIntent;
36
+ callback_route?: CallbackRouteV1;
37
+ observed_at?: string;
38
+ observation_error?: string;
39
+ response_text?: string;
40
+ response_truncated?: boolean;
41
+ progress?: ClaudeNativePublicProgress;
42
+ waiting_for?: string;
43
+ notifications: CodexNativeNotification[];
44
+ }
45
+ export type ClaudeNativeStateRepository = NativeRecordRepository<ClaudeNativeTaskRecord>;
46
+ export declare function assertClaudeNativeTaskRecord(value: unknown): asserts value is ClaudeNativeTaskRecord;
47
+ export declare function createClaudeNativeStateStore(storeDir: string, locks: {
48
+ acquire(lock: string): () => void;
49
+ }): ClaudeNativeStateRepository;
@@ -0,0 +1,96 @@
1
+ import { isDeepStrictEqual } from "node:util";
2
+ import { createCallbackEnvelope, parseCallbackRoute, parseCallbackAttemptOutcome } from "./callback-transport.js";
3
+ import { assertBackendRecoveryFields, assertBackendRecoveryUpdate } from "./backend-task-recovery.js";
4
+ import { createNativeRecordRepository } from "./codex-native-record-store.js";
5
+ import { createClaudeNativeConversationId, isClaudeNativeWatchId, isClaudeNativeUuid } from "./claude-native-identity.js";
6
+ const time = (v) => typeof v === "string" && Number.isFinite(Date.parse(v));
7
+ const text = (v) => typeof v === "string" && v.trim().length > 0;
8
+ export function assertClaudeNativeTaskRecord(value) {
9
+ const r = value;
10
+ if (!r || r.schema !== "agent-knock-knock/claude-native-task" || r.version !== 1 ||
11
+ !Number.isSafeInteger(r.revision) || r.revision < 1 || !isClaudeNativeWatchId(r.id) || r.watch_id !== r.id ||
12
+ !text(r.controller_session) || !["send", "watch"].includes(r.kind) ||
13
+ !["awaiting_acceptance", "watching", "completed", "failed", "interrupted", "exited", "timed_out", "cancelled"].includes(r.status) ||
14
+ ![r.created_at, r.updated_at, r.deadline_at].every(time) || !Array.isArray(r.notifications))
15
+ throw new Error("Invalid Claude native task");
16
+ assertTaskIdentity(r);
17
+ assertSendIntent(r);
18
+ if (r.source && (!text(r.source.relativePath) || !/^\d+$/u.test(r.source.device) || !/^\d+$/u.test(r.source.inode)))
19
+ throw new Error("Invalid Claude transcript anchor");
20
+ if (r.callback_route && parseCallbackRoute(r.callback_route).controller_session_id !== r.controller_session)
21
+ throw new Error("Claude callback owner mismatch");
22
+ assertNotifications(r);
23
+ }
24
+ function assertTaskIdentity(r) {
25
+ if (createClaudeNativeConversationId(r.target) !== r.native_id || createClaudeNativeConversationId(r.entry) !== r.native_id)
26
+ throw new Error("Claude task identity mismatch");
27
+ assertBackendRecoveryFields(r);
28
+ if (r.native_input_id !== undefined && !isClaudeNativeUuid(r.native_input_id))
29
+ throw new Error("Invalid Claude input anchor");
30
+ if (r.kind === "watch" && (!r.native_input_id || r.send_intent))
31
+ throw new Error("Claude Watch requires exact input");
32
+ }
33
+ function assertSendIntent(r) {
34
+ if (r.kind === "send") {
35
+ const i = r.send_intent;
36
+ if (!i || !text(i.message_id) || !text(i.text) || !isClaudeNativeUuid(i.client_user_message_id) ||
37
+ !isClaudeNativeUuid(i.native_message_id) || !time(i.dispatched_at) ||
38
+ !["reserved", "uncertain", "accepted", "not_sent", "held", "refused", "attached"].includes(i.state) ||
39
+ i.sender_pid !== undefined && (!Number.isSafeInteger(i.sender_pid) || i.sender_pid < 1) ||
40
+ r.native_input_id && r.native_input_id !== i.client_user_message_id)
41
+ throw new Error("Invalid Claude send intent");
42
+ if (i.state === "accepted" && (!r.native_input_id || !i.sender_pid))
43
+ throw new Error("Claude acceptance requires exact native provenance");
44
+ }
45
+ }
46
+ function assertNotifications(r) {
47
+ const ids = new Set();
48
+ for (const n of r.notifications) {
49
+ if (!n || !r.callback_route || !text(n.id) || ids.has(n.id) || !Number.isSafeInteger(n.attempts) || n.attempts < 0 ||
50
+ !["ready", "leased", "retry_wait", "accepted", "failed", "uncertain"].includes(n.status))
51
+ throw new Error("Invalid Claude callback");
52
+ ids.add(n.id);
53
+ assertNotificationIdentity(r, n);
54
+ if (n.outcome)
55
+ parseCallbackAttemptOutcome(n.outcome);
56
+ if (n.status === "leased" && (!text(n.attempt_id) || !time(n.lease_expires_at)))
57
+ throw new Error("Invalid Claude callback lease");
58
+ if (n.status === "retry_wait" && (!time(n.retry_at) || n.outcome?.disposition !== "retryable_failure"))
59
+ throw new Error("Invalid Claude callback retry");
60
+ }
61
+ }
62
+ function assertNotificationIdentity(r, n) {
63
+ const envelope = createCallbackEnvelope({ route: r.callback_route, source: n.envelope.source, event: n.envelope.event });
64
+ if (!isDeepStrictEqual(envelope, n.envelope) || envelope.source.kind !== "claude_native_watch" ||
65
+ envelope.source.watch_id !== r.id || envelope.source.native_id !== r.native_id || envelope.event.id !== n.id)
66
+ throw new Error("Claude callback identity mismatch");
67
+ }
68
+ export function createClaudeNativeStateStore(storeDir, locks) {
69
+ return createNativeRecordRepository({ storeDir, directory: "claude-native-tasks", prefix: "claude-cli-watch:",
70
+ acquire: locks.acquire, assert: assertClaudeNativeTaskRecord,
71
+ assertUpdate(previous, next) {
72
+ for (const key of ["id", "watch_id", "native_id", "target", "controller_session", "kind", "created_at", "callback_route"]) {
73
+ if (!isDeepStrictEqual(previous[key], next[key]))
74
+ throw new Error(`Claude immutable ${key} changed`);
75
+ }
76
+ assertBackendRecoveryUpdate(previous, next);
77
+ if (previous.native_input_id && previous.native_input_id !== next.native_input_id)
78
+ throw new Error("Claude input anchor changed");
79
+ if (previous.source && !isDeepStrictEqual(previous.source, next.source))
80
+ throw new Error("Claude transcript anchor changed");
81
+ if (previous.send_intent) {
82
+ for (const key of ["message_id", "client_user_message_id", "native_message_id", "text", "dispatched_at"]) {
83
+ if (previous.send_intent[key] !== next.send_intent?.[key])
84
+ throw new Error("Claude send intent changed");
85
+ }
86
+ if (previous.send_intent.sender_pid && previous.send_intent.sender_pid !== next.send_intent?.sender_pid)
87
+ throw new Error("Claude sender changed");
88
+ }
89
+ for (const before of previous.notifications) {
90
+ const after = next.notifications.find(n => n.id === before.id);
91
+ if (!after || !isDeepStrictEqual(before.envelope, after.envelope))
92
+ throw new Error("Claude notification changed");
93
+ }
94
+ } });
95
+ }
96
+ //# sourceMappingURL=claude-native-state-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-native-state-store.js","sourceRoot":"","sources":["../../src/claude-native-state-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { type CallbackRouteV1 } from "./callback-transport.js";
2
+ import { type ClaudeNativeCatalogEntry, type ClaudeNativeIdentity } from "./claude-native-identity.js";
3
+ import type { ClaudeNativeClient } from "./claude-native-client.js";
4
+ import type { ClaudeNativeSnapshot, ClaudeNativeObservationOptions } from "./claude-native-observation.js";
5
+ import { type ClaudeNativeOutboxDependencies } from "./claude-native-outbox.js";
6
+ import type { ClaudeNativeTaskRecord } from "./claude-native-state-store.js";
7
+ export interface ClaudeNativeTaskInput {
8
+ target: ClaudeNativeIdentity;
9
+ nativeId: string;
10
+ controllerSession: string;
11
+ callbackRoute?: CallbackRouteV1;
12
+ timeoutMs?: number;
13
+ }
14
+ export interface ClaudeNativeTaskDependencies extends ClaudeNativeOutboxDependencies {
15
+ inspect(identity: ClaudeNativeIdentity): Promise<ClaudeNativeCatalogEntry>;
16
+ observe(entry: ClaudeNativeCatalogEntry, options: ClaudeNativeObservationOptions): Promise<ClaudeNativeSnapshot>;
17
+ send: ClaudeNativeClient["send"];
18
+ acceptancePollAttempts?: number;
19
+ acceptancePollIntervalMs?: number;
20
+ sleep?(ms: number): Promise<void>;
21
+ }
22
+ export declare function claudeNativeTaskNeedsReconciliation(task: ClaudeNativeTaskRecord): boolean;
23
+ export declare function claudeNativeErrorCode(error: unknown): string;
24
+ export declare function createClaudeNativeTaskService(deps: ClaudeNativeTaskDependencies): ClaudeNativeTasks;
25
+ export declare class ClaudeNativeTasks {
26
+ private readonly deps;
27
+ private readonly now;
28
+ private readonly uuid;
29
+ private readonly outbox;
30
+ constructor(deps: ClaudeNativeTaskDependencies);
31
+ status(id: string): ClaudeNativeTaskRecord;
32
+ list(): ClaudeNativeTaskRecord[];
33
+ shouldMonitor(id: string): boolean;
34
+ private update;
35
+ private make;
36
+ private notify;
37
+ private sameSend;
38
+ send(input: ClaudeNativeTaskInput & {
39
+ messageId: string;
40
+ text: string;
41
+ }): Promise<ClaudeNativeTaskRecord>;
42
+ watch(input: ClaudeNativeTaskInput): Promise<ClaudeNativeTaskRecord>;
43
+ private apply;
44
+ reconcile(id: string): Promise<ClaudeNativeTaskRecord>;
45
+ reconcileAll(): Promise<{
46
+ tasks: ClaudeNativeTaskRecord[];
47
+ errors: {
48
+ id: string;
49
+ error_code: string;
50
+ }[];
51
+ }>;
52
+ unwatch(id: string, input: {
53
+ controllerSession: string;
54
+ }): ClaudeNativeTaskRecord;
55
+ close(id: string, input: {
56
+ controllerSession: string;
57
+ reason?: string;
58
+ }): ClaudeNativeTaskRecord;
59
+ renew(id: string, input: {
60
+ controllerSession: string;
61
+ timeoutMs?: number;
62
+ }): Promise<ClaudeNativeTaskRecord>;
63
+ recover(id: string, input: {
64
+ controllerSession: string;
65
+ }): Promise<ClaudeNativeTaskRecord>;
66
+ retryCallback(id: string, input: {
67
+ controllerSession: string;
68
+ notificationId?: string;
69
+ }): Promise<ClaudeNativeTaskRecord>;
70
+ }