@agents-tower/core 0.1.0

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 (178) hide show
  1. package/dist/adapters/claude.d.ts +2 -0
  2. package/dist/adapters/claude.js +43 -0
  3. package/dist/adapters/claude.js.map +1 -0
  4. package/dist/adapters/codex-cloud.d.ts +4 -0
  5. package/dist/adapters/codex-cloud.js +80 -0
  6. package/dist/adapters/codex-cloud.js.map +1 -0
  7. package/dist/adapters/codex-local.d.ts +17 -0
  8. package/dist/adapters/codex-local.js +180 -0
  9. package/dist/adapters/codex-local.js.map +1 -0
  10. package/dist/adapters/cursor-cloud.d.ts +2 -0
  11. package/dist/adapters/cursor-cloud.js +54 -0
  12. package/dist/adapters/cursor-cloud.js.map +1 -0
  13. package/dist/adapters/cursor-local.d.ts +2 -0
  14. package/dist/adapters/cursor-local.js +37 -0
  15. package/dist/adapters/cursor-local.js.map +1 -0
  16. package/dist/adapters/helpers.d.ts +15 -0
  17. package/dist/adapters/helpers.js +33 -0
  18. package/dist/adapters/helpers.js.map +1 -0
  19. package/dist/adapters/hermes.d.ts +2 -0
  20. package/dist/adapters/hermes.js +41 -0
  21. package/dist/adapters/hermes.js.map +1 -0
  22. package/dist/adapters/index.d.ts +2 -0
  23. package/dist/adapters/index.js +37 -0
  24. package/dist/adapters/index.js.map +1 -0
  25. package/dist/adapters/openclaw.d.ts +2 -0
  26. package/dist/adapters/openclaw.js +41 -0
  27. package/dist/adapters/openclaw.js.map +1 -0
  28. package/dist/adapters/presence.d.ts +2 -0
  29. package/dist/adapters/presence.js +36 -0
  30. package/dist/adapters/presence.js.map +1 -0
  31. package/dist/adapters/static-source.d.ts +15 -0
  32. package/dist/adapters/static-source.js +41 -0
  33. package/dist/adapters/static-source.js.map +1 -0
  34. package/dist/adapters/types.d.ts +44 -0
  35. package/dist/adapters/types.js +3 -0
  36. package/dist/adapters/types.js.map +1 -0
  37. package/dist/app-server.d.ts +94 -0
  38. package/dist/app-server.js +382 -0
  39. package/dist/app-server.js.map +1 -0
  40. package/dist/app-settings.d.ts +52 -0
  41. package/dist/app-settings.js +268 -0
  42. package/dist/app-settings.js.map +1 -0
  43. package/dist/appearance.d.ts +6 -0
  44. package/dist/appearance.js +84 -0
  45. package/dist/appearance.js.map +1 -0
  46. package/dist/aseprite.d.ts +4 -0
  47. package/dist/aseprite.js +42 -0
  48. package/dist/aseprite.js.map +1 -0
  49. package/dist/claude-agent-sdk.d.ts +44 -0
  50. package/dist/claude-agent-sdk.js +347 -0
  51. package/dist/claude-agent-sdk.js.map +1 -0
  52. package/dist/claude-home-cache.d.ts +61 -0
  53. package/dist/claude-home-cache.js +438 -0
  54. package/dist/claude-home-cache.js.map +1 -0
  55. package/dist/claude.d.ts +154 -0
  56. package/dist/claude.js +3495 -0
  57. package/dist/claude.js.map +1 -0
  58. package/dist/cloud.d.ts +2 -0
  59. package/dist/cloud.js +25 -0
  60. package/dist/cloud.js.map +1 -0
  61. package/dist/codex-command.d.ts +25 -0
  62. package/dist/codex-command.js +235 -0
  63. package/dist/codex-command.js.map +1 -0
  64. package/dist/codex-session-files.d.ts +8 -0
  65. package/dist/codex-session-files.js +509 -0
  66. package/dist/codex-session-files.js.map +1 -0
  67. package/dist/codex-thread-query.d.ts +14 -0
  68. package/dist/codex-thread-query.js +82 -0
  69. package/dist/codex-thread-query.js.map +1 -0
  70. package/dist/cursor-cloud-data.d.ts +34 -0
  71. package/dist/cursor-cloud-data.js +344 -0
  72. package/dist/cursor-cloud-data.js.map +1 -0
  73. package/dist/cursor-lib/local-discovery.d.ts +17 -0
  74. package/dist/cursor-lib/local-discovery.js +251 -0
  75. package/dist/cursor-lib/local-discovery.js.map +1 -0
  76. package/dist/cursor-lib/shared.d.ts +5 -0
  77. package/dist/cursor-lib/shared.js +88 -0
  78. package/dist/cursor-lib/shared.js.map +1 -0
  79. package/dist/cursor.d.ts +8 -0
  80. package/dist/cursor.js +1584 -0
  81. package/dist/cursor.js.map +1 -0
  82. package/dist/domain/codex-turn-semantics.d.ts +4 -0
  83. package/dist/domain/codex-turn-semantics.js +49 -0
  84. package/dist/domain/codex-turn-semantics.js.map +1 -0
  85. package/dist/domain/workload-policy.d.ts +8 -0
  86. package/dist/domain/workload-policy.js +268 -0
  87. package/dist/domain/workload-policy.js.map +1 -0
  88. package/dist/domain/workspace-activity.d.ts +10 -0
  89. package/dist/domain/workspace-activity.js +372 -0
  90. package/dist/domain/workspace-activity.js.map +1 -0
  91. package/dist/goal.d.ts +11 -0
  92. package/dist/goal.js +76 -0
  93. package/dist/goal.js.map +1 -0
  94. package/dist/hermes-hook-install.d.ts +12 -0
  95. package/dist/hermes-hook-install.js +335 -0
  96. package/dist/hermes-hook-install.js.map +1 -0
  97. package/dist/hermes.d.ts +97 -0
  98. package/dist/hermes.js +2446 -0
  99. package/dist/hermes.js.map +1 -0
  100. package/dist/index.d.ts +28 -0
  101. package/dist/index.js +47 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/live-monitor-lib/events.d.ts +43 -0
  104. package/dist/live-monitor-lib/events.js +1463 -0
  105. package/dist/live-monitor-lib/events.js.map +1 -0
  106. package/dist/live-monitor-lib/rollout-hooks.d.ts +13 -0
  107. package/dist/live-monitor-lib/rollout-hooks.js +253 -0
  108. package/dist/live-monitor-lib/rollout-hooks.js.map +1 -0
  109. package/dist/live-monitor.d.ts +102 -0
  110. package/dist/live-monitor.js +1461 -0
  111. package/dist/live-monitor.js.map +1 -0
  112. package/dist/local-thread-selection.d.ts +2 -0
  113. package/dist/local-thread-selection.js +58 -0
  114. package/dist/local-thread-selection.js.map +1 -0
  115. package/dist/openclaw.d.ts +41 -0
  116. package/dist/openclaw.js +715 -0
  117. package/dist/openclaw.js.map +1 -0
  118. package/dist/presence.d.ts +9 -0
  119. package/dist/presence.js +108 -0
  120. package/dist/presence.js.map +1 -0
  121. package/dist/project-identity.d.ts +7 -0
  122. package/dist/project-identity.js +162 -0
  123. package/dist/project-identity.js.map +1 -0
  124. package/dist/project-paths.d.ts +23 -0
  125. package/dist/project-paths.js +394 -0
  126. package/dist/project-paths.js.map +1 -0
  127. package/dist/project-storage.d.ts +7 -0
  128. package/dist/project-storage.js +79 -0
  129. package/dist/project-storage.js.map +1 -0
  130. package/dist/room-config.d.ts +21 -0
  131. package/dist/room-config.js +230 -0
  132. package/dist/room-config.js.map +1 -0
  133. package/dist/services/project-discovery.d.ts +1 -0
  134. package/dist/services/project-discovery.js +16 -0
  135. package/dist/services/project-discovery.js.map +1 -0
  136. package/dist/services/project-live-monitor.d.ts +1 -0
  137. package/dist/services/project-live-monitor.js +6 -0
  138. package/dist/services/project-live-monitor.js.map +1 -0
  139. package/dist/services/project-snapshot-coordinator.d.ts +49 -0
  140. package/dist/services/project-snapshot-coordinator.js +152 -0
  141. package/dist/services/project-snapshot-coordinator.js.map +1 -0
  142. package/dist/services/refresh-scheduler.d.ts +8 -0
  143. package/dist/services/refresh-scheduler.js +44 -0
  144. package/dist/services/refresh-scheduler.js.map +1 -0
  145. package/dist/services/snapshot-assembler.d.ts +8 -0
  146. package/dist/services/snapshot-assembler.js +167 -0
  147. package/dist/services/snapshot-assembler.js.map +1 -0
  148. package/dist/services/thread-store.d.ts +4 -0
  149. package/dist/services/thread-store.js +8 -0
  150. package/dist/services/thread-store.js.map +1 -0
  151. package/dist/snapshot-lib/activity-summary.d.ts +3 -0
  152. package/dist/snapshot-lib/activity-summary.js +220 -0
  153. package/dist/snapshot-lib/activity-summary.js.map +1 -0
  154. package/dist/snapshot-lib/dashboard-builder.d.ts +21 -0
  155. package/dist/snapshot-lib/dashboard-builder.js +146 -0
  156. package/dist/snapshot-lib/dashboard-builder.js.map +1 -0
  157. package/dist/snapshot-lib/thread-summary.d.ts +27 -0
  158. package/dist/snapshot-lib/thread-summary.js +953 -0
  159. package/dist/snapshot-lib/thread-summary.js.map +1 -0
  160. package/dist/snapshot.d.ts +2 -0
  161. package/dist/snapshot.js +21 -0
  162. package/dist/snapshot.js.map +1 -0
  163. package/dist/types.d.ts +368 -0
  164. package/dist/types.js +3 -0
  165. package/dist/types.js.map +1 -0
  166. package/dist/utils/json.d.ts +4 -0
  167. package/dist/utils/json.js +29 -0
  168. package/dist/utils/json.js.map +1 -0
  169. package/dist/utils/text.d.ts +3 -0
  170. package/dist/utils/text.js +26 -0
  171. package/dist/utils/text.js.map +1 -0
  172. package/dist/web-search.d.ts +1 -0
  173. package/dist/web-search.js +52 -0
  174. package/dist/web-search.js.map +1 -0
  175. package/dist/workload.d.ts +1 -0
  176. package/dist/workload.js +12 -0
  177. package/dist/workload.js.map +1 -0
  178. package/package.json +19 -0
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeClaudeSdkMessageForTest = normalizeClaudeSdkMessageForTest;
4
+ exports.claudeHooksFilePath = claudeHooksFilePath;
5
+ exports.resolveReadableClaudeHooksFilePath = resolveReadableClaudeHooksFilePath;
6
+ exports.respondToClaudeHookPermissionRequest = respondToClaudeHookPermissionRequest;
7
+ exports.respondToClaudeHookInputRequest = respondToClaudeHookInputRequest;
8
+ exports.loadClaudeAgentSdk = loadClaudeAgentSdk;
9
+ exports.listClaudeSdkSessions = listClaudeSdkSessions;
10
+ exports.getClaudeSdkSessionRecords = getClaudeSdkSessionRecords;
11
+ exports.appendClaudeHookSidecarRecord = appendClaudeHookSidecarRecord;
12
+ exports.createClaudeSdkSidecarHooks = createClaudeSdkSidecarHooks;
13
+ const promises_1 = require("node:fs/promises");
14
+ const node_path_1 = require("node:path");
15
+ const project_storage_1 = require("./project-storage");
16
+ const nativeImport = new Function("specifier", "return import(specifier);");
17
+ const CLAUDE_SDK_HOOK_EVENTS = [
18
+ "PreToolUse",
19
+ "PostToolUse",
20
+ "PostToolUseFailure",
21
+ "PostToolBatch",
22
+ "Notification",
23
+ "UserPromptSubmit",
24
+ "UserPromptExpansion",
25
+ "SessionStart",
26
+ "SessionEnd",
27
+ "Stop",
28
+ "StopFailure",
29
+ "SubagentStart",
30
+ "SubagentStop",
31
+ "PreCompact",
32
+ "PostCompact",
33
+ "PermissionRequest",
34
+ "PermissionDenied",
35
+ "Setup",
36
+ "TeammateIdle",
37
+ "TaskCreated",
38
+ "TaskCompleted",
39
+ "Elicitation",
40
+ "ElicitationResult",
41
+ "ConfigChange",
42
+ "WorktreeCreate",
43
+ "WorktreeRemove",
44
+ "InstructionsLoaded",
45
+ "CwdChanged",
46
+ "FileChanged",
47
+ "MessageDisplay"
48
+ ];
49
+ const CLAUDE_HOOK_RESPONSE_POLL_INTERVAL_MS = 100;
50
+ let claudeAgentSdkPromise = null;
51
+ function asRecord(value) {
52
+ return typeof value === "object" && value ? value : null;
53
+ }
54
+ function buildClaudeHookRequestId(sessionId, eventName, hookInput, timestamp) {
55
+ const hookInputRecord = hookInput;
56
+ const rawRequestId = typeof hookInputRecord.request_id === "string" ? hookInputRecord.request_id
57
+ : typeof hookInputRecord.requestId === "string" ? hookInputRecord.requestId
58
+ : typeof hookInputRecord.elicitation_id === "string" ? hookInputRecord.elicitation_id
59
+ : null;
60
+ const requestId = typeof rawRequestId === "string" ? rawRequestId : null;
61
+ return requestId && requestId.trim().length > 0
62
+ ? requestId
63
+ : `${sessionId}:${eventName}:${timestamp}`;
64
+ }
65
+ function encodeClaudeHookRequestId(requestId) {
66
+ return Buffer.from(requestId, "utf8").toString("base64url");
67
+ }
68
+ function claudeHookResponsesDir(projectRoot, sessionId) {
69
+ return (0, project_storage_1.getProjectStoragePath)(projectRoot, "claude-hook-responses", sessionId);
70
+ }
71
+ function claudeHookResponseFilePath(projectRoot, sessionId, requestId) {
72
+ return (0, node_path_1.join)(claudeHookResponsesDir(projectRoot, sessionId), `${encodeClaudeHookRequestId(requestId)}.json`);
73
+ }
74
+ async function waitForClaudeHookResponse(projectRoot, sessionId, requestId, signal) {
75
+ const filePath = claudeHookResponseFilePath(projectRoot, sessionId, requestId);
76
+ while (!signal?.aborted) {
77
+ const raw = await (0, promises_1.readFile)(filePath, "utf8").catch(() => null);
78
+ if (typeof raw === "string") {
79
+ await (0, promises_1.rm)(filePath, { force: true }).catch(() => undefined);
80
+ const parsed = asRecord(JSON.parse(raw));
81
+ if (!parsed || typeof parsed.kind !== "string" || typeof parsed.requestId !== "string") {
82
+ return null;
83
+ }
84
+ if (parsed.kind === "approval" && (parsed.decision === "accept" || parsed.decision === "decline")) {
85
+ return {
86
+ kind: "approval",
87
+ requestId: parsed.requestId,
88
+ decision: parsed.decision,
89
+ updatedAt: typeof parsed.updatedAt === "string" ? parsed.updatedAt : new Date().toISOString()
90
+ };
91
+ }
92
+ if (parsed.kind === "input"
93
+ && (parsed.action === "accept" || parsed.action === "decline" || parsed.action === "cancel")
94
+ && asRecord(parsed.content)) {
95
+ return {
96
+ kind: "input",
97
+ requestId: parsed.requestId,
98
+ action: parsed.action,
99
+ content: asRecord(parsed.content) ?? {},
100
+ updatedAt: typeof parsed.updatedAt === "string" ? parsed.updatedAt : new Date().toISOString()
101
+ };
102
+ }
103
+ return null;
104
+ }
105
+ await new Promise((resolve) => {
106
+ const timer = setTimeout(resolve, CLAUDE_HOOK_RESPONSE_POLL_INTERVAL_MS);
107
+ if (signal) {
108
+ const onAbort = () => {
109
+ clearTimeout(timer);
110
+ signal.removeEventListener("abort", onAbort);
111
+ resolve(undefined);
112
+ };
113
+ signal.addEventListener("abort", onAbort, { once: true });
114
+ }
115
+ });
116
+ }
117
+ return null;
118
+ }
119
+ function firstAnswerValue(questionId, answers) {
120
+ const entry = answers[questionId];
121
+ if (!entry || !Array.isArray(entry.answers)) {
122
+ return null;
123
+ }
124
+ const value = entry.answers.find((candidate) => typeof candidate === "string" && candidate.trim().length > 0) ?? null;
125
+ return value ? value.trim() : null;
126
+ }
127
+ function normalizeClaudeHookInputContent(questions, answers) {
128
+ const content = {};
129
+ for (const question of questions) {
130
+ const value = firstAnswerValue(question.id, answers);
131
+ if (!value) {
132
+ if (question.required === false) {
133
+ continue;
134
+ }
135
+ throw new Error(`Question ${question.header} is still unanswered.`);
136
+ }
137
+ content[question.id] = value;
138
+ }
139
+ return content;
140
+ }
141
+ function watchPathsHookOutput(input, watchPaths) {
142
+ if (watchPaths.length === 0) {
143
+ return null;
144
+ }
145
+ if (input.hook_event_name === "SessionStart") {
146
+ return {
147
+ continue: true,
148
+ hookSpecificOutput: {
149
+ hookEventName: "SessionStart",
150
+ watchPaths
151
+ }
152
+ };
153
+ }
154
+ if (input.hook_event_name === "CwdChanged") {
155
+ return {
156
+ continue: true,
157
+ hookSpecificOutput: {
158
+ hookEventName: "CwdChanged",
159
+ watchPaths
160
+ }
161
+ };
162
+ }
163
+ if (input.hook_event_name === "FileChanged") {
164
+ return {
165
+ continue: true,
166
+ hookSpecificOutput: {
167
+ hookEventName: "FileChanged",
168
+ watchPaths
169
+ }
170
+ };
171
+ }
172
+ return null;
173
+ }
174
+ function extractSdkMessageTimestamp(message) {
175
+ for (const key of ["timestamp", "created_at", "createdAt"]) {
176
+ const value = message[key];
177
+ if (typeof value === "string" && value.trim().length > 0) {
178
+ return value;
179
+ }
180
+ }
181
+ return null;
182
+ }
183
+ function normalizeClaudeSdkMessage(entry, sessionInfo) {
184
+ const entryRecord = asRecord(entry);
185
+ const rawMessage = asRecord(entry.message);
186
+ const message = rawMessage
187
+ ?? (typeof entry.message === "string" ? { content: entry.message } : { content: [] });
188
+ const timestamp = extractSdkMessageTimestamp(entryRecord ?? {})
189
+ ?? extractSdkMessageTimestamp(message);
190
+ return {
191
+ type: entry.type,
192
+ uuid: entry.uuid,
193
+ session_id: entry.session_id,
194
+ parent_tool_use_id: entry.parent_tool_use_id,
195
+ cwd: sessionInfo.cwd,
196
+ gitBranch: sessionInfo.gitBranch,
197
+ ...(timestamp ? { timestamp } : {}),
198
+ message
199
+ };
200
+ }
201
+ function normalizeClaudeSdkMessageForTest(entry, sessionInfo) {
202
+ return normalizeClaudeSdkMessage(entry, sessionInfo);
203
+ }
204
+ function claudeHooksFilePath(projectRoot, sessionId) {
205
+ return (0, project_storage_1.getProjectStoragePath)(projectRoot, "claude-hooks", `${sessionId}.jsonl`);
206
+ }
207
+ async function resolveReadableClaudeHooksFilePath(projectRoot, sessionId) {
208
+ return (0, project_storage_1.resolveReadableProjectStoragePath)(projectRoot, "claude-hooks", `${sessionId}.jsonl`);
209
+ }
210
+ async function respondToClaudeHookPermissionRequest(projectRoot, sessionId, requestId, decision) {
211
+ const updatedAt = new Date().toISOString();
212
+ await (0, promises_1.mkdir)(claudeHookResponsesDir(projectRoot, sessionId), { recursive: true });
213
+ await (0, promises_1.writeFile)(claudeHookResponseFilePath(projectRoot, sessionId, requestId), `${JSON.stringify({
214
+ kind: "approval",
215
+ requestId,
216
+ decision,
217
+ updatedAt
218
+ })}\n`, "utf8");
219
+ await appendClaudeHookSidecarRecord(projectRoot, sessionId, {
220
+ hook_event_name: "AgentsOfficePermissionDecision",
221
+ hook_source: "agents-office",
222
+ request_id: requestId,
223
+ action: decision,
224
+ timestamp: updatedAt
225
+ });
226
+ }
227
+ async function respondToClaudeHookInputRequest(projectRoot, sessionId, requestId, questions, answers) {
228
+ const updatedAt = new Date().toISOString();
229
+ const content = normalizeClaudeHookInputContent(questions, answers);
230
+ await (0, promises_1.mkdir)(claudeHookResponsesDir(projectRoot, sessionId), { recursive: true });
231
+ await (0, promises_1.writeFile)(claudeHookResponseFilePath(projectRoot, sessionId, requestId), `${JSON.stringify({
232
+ kind: "input",
233
+ requestId,
234
+ action: "accept",
235
+ content,
236
+ updatedAt
237
+ })}\n`, "utf8");
238
+ await appendClaudeHookSidecarRecord(projectRoot, sessionId, {
239
+ hook_event_name: "AgentsOfficeElicitationResponse",
240
+ hook_source: "agents-office",
241
+ request_id: requestId,
242
+ action: "accept",
243
+ content,
244
+ timestamp: updatedAt
245
+ });
246
+ }
247
+ async function loadClaudeAgentSdk() {
248
+ if (!claudeAgentSdkPromise) {
249
+ claudeAgentSdkPromise = nativeImport("@anthropic-ai/claude-agent-sdk").catch(() => null);
250
+ }
251
+ return claudeAgentSdkPromise;
252
+ }
253
+ async function listClaudeSdkSessions(input = {}) {
254
+ const sdk = await loadClaudeAgentSdk();
255
+ if (!sdk) {
256
+ return null;
257
+ }
258
+ try {
259
+ return await sdk.listSessions(input);
260
+ }
261
+ catch {
262
+ return null;
263
+ }
264
+ }
265
+ async function getClaudeSdkSessionRecords(input) {
266
+ const sdk = await loadClaudeAgentSdk();
267
+ if (!sdk) {
268
+ return null;
269
+ }
270
+ try {
271
+ // The SDK slices [offset, offset + limit) from the START of the transcript,
272
+ // so passing limit directly would freeze long sessions at their oldest
273
+ // messages. Fetch the full chain and keep the newest records instead.
274
+ const messages = await sdk.getSessionMessages(input.sessionId, {
275
+ dir: input.dir,
276
+ offset: input.offset
277
+ });
278
+ const limited = typeof input.limit === "number" && input.limit > 0
279
+ ? messages.slice(-input.limit)
280
+ : messages;
281
+ return limited.map((entry) => normalizeClaudeSdkMessage(entry, {
282
+ cwd: input.cwd,
283
+ gitBranch: input.gitBranch
284
+ }));
285
+ }
286
+ catch {
287
+ return null;
288
+ }
289
+ }
290
+ async function appendClaudeHookSidecarRecord(projectRoot, sessionId, record) {
291
+ const path = claudeHooksFilePath(projectRoot, sessionId);
292
+ await (0, promises_1.mkdir)((0, node_path_1.dirname)(path), { recursive: true });
293
+ await (0, promises_1.appendFile)(path, `${JSON.stringify(record)}\n`, "utf8");
294
+ }
295
+ function createClaudeSdkSidecarHooks(input) {
296
+ const watchPaths = Array.from(new Set((input.watchPaths ?? []).filter((value) => value.trim().length > 0)));
297
+ const buildHookCallback = (eventName) => ({
298
+ hooks: [
299
+ async (hookInput, toolUseID, options) => {
300
+ const timestamp = new Date().toISOString();
301
+ const requestId = eventName === "PermissionRequest" || eventName === "Elicitation"
302
+ ? buildClaudeHookRequestId(hookInput.session_id, eventName, hookInput, timestamp)
303
+ : undefined;
304
+ const record = JSON.parse(JSON.stringify({
305
+ ...hookInput,
306
+ hook_event_name: eventName,
307
+ timestamp,
308
+ tool_use_id: toolUseID ?? undefined,
309
+ hook_source: "claude-agent-sdk",
310
+ request_id: requestId
311
+ }));
312
+ await appendClaudeHookSidecarRecord(input.projectRoot, hookInput.session_id, record);
313
+ await input.onRecord?.(record);
314
+ if (eventName === "PermissionRequest" && requestId) {
315
+ const response = await waitForClaudeHookResponse(input.projectRoot, hookInput.session_id, requestId, options?.signal);
316
+ if (response?.kind === "approval") {
317
+ return {
318
+ continue: true,
319
+ hookSpecificOutput: {
320
+ hookEventName: "PermissionRequest",
321
+ decision: response.decision === "accept"
322
+ ? { behavior: "allow" }
323
+ : { behavior: "deny" }
324
+ }
325
+ };
326
+ }
327
+ }
328
+ if (eventName === "Elicitation" && requestId) {
329
+ const response = await waitForClaudeHookResponse(input.projectRoot, hookInput.session_id, requestId, options?.signal);
330
+ if (response?.kind === "input") {
331
+ return {
332
+ continue: true,
333
+ hookSpecificOutput: {
334
+ hookEventName: "Elicitation",
335
+ action: response.action,
336
+ content: response.content
337
+ }
338
+ };
339
+ }
340
+ }
341
+ return watchPathsHookOutput(hookInput, watchPaths) ?? { continue: true };
342
+ }
343
+ ]
344
+ });
345
+ return Object.fromEntries(CLAUDE_SDK_HOOK_EVENTS.map((eventName) => [eventName, [buildHookCallback(eventName)]]));
346
+ }
347
+ //# sourceMappingURL=claude-agent-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-agent-sdk.js","sourceRoot":"","sources":["../src/claude-agent-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { DashboardAgent } from "./types";
2
+ export interface ClaudeHomeRemoteSession {
3
+ id: string;
4
+ title: string | null;
5
+ createdAt: string | null;
6
+ lastEventAt: string;
7
+ environmentKind: string;
8
+ model: string | null;
9
+ origin: string | null;
10
+ tags: string[];
11
+ selectedFolders: string[];
12
+ status: string | null;
13
+ statusBucket: string | null;
14
+ workerStatus: string | null;
15
+ postTurnSummary: {
16
+ needsAction: string | null;
17
+ statusCategory: string | null;
18
+ } | null;
19
+ }
20
+ export interface ClaudeHomeAccountAgent extends DashboardAgent {
21
+ interactionMode: "work";
22
+ conversationKey: string;
23
+ accountObserved: true;
24
+ }
25
+ export interface ClaudeHomeCacheOptions {
26
+ cacheDirs?: string[];
27
+ now?: number;
28
+ maxCacheFiles?: number;
29
+ maxFileBytes?: number;
30
+ maxBodyBytes?: number;
31
+ cacheFreshnessMs?: number;
32
+ sessionFreshnessMs?: number;
33
+ activeWindowMs?: number;
34
+ recentDoneWindowMs?: number;
35
+ limit?: number;
36
+ }
37
+ interface ClaudeHomeRemoteSessionPatch {
38
+ id: string;
39
+ title?: string | null;
40
+ createdAt?: string | null;
41
+ lastEventAt?: string | null;
42
+ environmentKind?: string;
43
+ model?: string | null;
44
+ origin?: string | null;
45
+ tags?: string[];
46
+ selectedFolders?: string[];
47
+ status?: string | null;
48
+ statusBucket?: string | null;
49
+ workerStatus?: string | null;
50
+ postTurnSummary?: ClaudeHomeRemoteSession["postTurnSummary"];
51
+ }
52
+ interface ClaudeHomeWatchEvent {
53
+ type: "added" | "changed" | "removed";
54
+ session: ClaudeHomeRemoteSessionPatch;
55
+ }
56
+ /** Parse only the already-isolated response body and discard every unrecognized field. */
57
+ export declare function parseClaudeHomeWatchSse(body: Buffer | string): ClaudeHomeWatchEvent[];
58
+ export declare function readClaudeHomeWatchCacheFile(filePath: string, options?: Pick<ClaudeHomeCacheOptions, "maxFileBytes" | "maxBodyBytes">): Promise<ClaudeHomeWatchEvent[]>;
59
+ export declare function discoverClaudeHomeRemoteSessions(options?: ClaudeHomeCacheOptions): Promise<ClaudeHomeRemoteSession[]>;
60
+ export declare function loadClaudeHomeAccountAgents(options?: ClaudeHomeCacheOptions): Promise<ClaudeHomeAccountAgent[]>;
61
+ export {};