@coralai/claude-code-agent 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 (78) hide show
  1. package/README.md +111 -0
  2. package/dist/agent.d.ts +240 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +592 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/errors.d.ts +27 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +33 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/hooks/fs.d.ts +26 -0
  11. package/dist/hooks/fs.d.ts.map +1 -0
  12. package/dist/hooks/fs.js +61 -0
  13. package/dist/hooks/fs.js.map +1 -0
  14. package/dist/hooks/index.d.ts +18 -0
  15. package/dist/hooks/index.d.ts.map +1 -0
  16. package/dist/hooks/index.js +2 -0
  17. package/dist/hooks/index.js.map +1 -0
  18. package/dist/hooks/permissions.d.ts +42 -0
  19. package/dist/hooks/permissions.d.ts.map +1 -0
  20. package/dist/hooks/permissions.js +79 -0
  21. package/dist/hooks/permissions.js.map +1 -0
  22. package/dist/hooks/terminal.d.ts +56 -0
  23. package/dist/hooks/terminal.d.ts.map +1 -0
  24. package/dist/hooks/terminal.js +127 -0
  25. package/dist/hooks/terminal.js.map +1 -0
  26. package/dist/index.d.ts +32 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +31 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/internal/acp-client-interface.d.ts +107 -0
  31. package/dist/internal/acp-client-interface.d.ts.map +1 -0
  32. package/dist/internal/acp-client-interface.js +17 -0
  33. package/dist/internal/acp-client-interface.js.map +1 -0
  34. package/dist/internal/acp-types.d.ts +64 -0
  35. package/dist/internal/acp-types.d.ts.map +1 -0
  36. package/dist/internal/acp-types.js +17 -0
  37. package/dist/internal/acp-types.js.map +1 -0
  38. package/dist/internal/agent-runtime-interface.d.ts +40 -0
  39. package/dist/internal/agent-runtime-interface.d.ts.map +1 -0
  40. package/dist/internal/agent-runtime-interface.js +17 -0
  41. package/dist/internal/agent-runtime-interface.js.map +1 -0
  42. package/dist/internal/local-acp-client.d.ts +27 -0
  43. package/dist/internal/local-acp-client.d.ts.map +1 -0
  44. package/dist/internal/local-acp-client.js +26 -0
  45. package/dist/internal/local-acp-client.js.map +1 -0
  46. package/dist/internal/sdk-adapter.d.ts +24 -0
  47. package/dist/internal/sdk-adapter.d.ts.map +1 -0
  48. package/dist/internal/sdk-adapter.js +453 -0
  49. package/dist/internal/sdk-adapter.js.map +1 -0
  50. package/dist/internal/session-accumulator.d.ts +55 -0
  51. package/dist/internal/session-accumulator.d.ts.map +1 -0
  52. package/dist/internal/session-accumulator.js +133 -0
  53. package/dist/internal/session-accumulator.js.map +1 -0
  54. package/dist/prompt-handle.d.ts +70 -0
  55. package/dist/prompt-handle.d.ts.map +1 -0
  56. package/dist/prompt-handle.js +137 -0
  57. package/dist/prompt-handle.js.map +1 -0
  58. package/dist/recording/index.d.ts +10 -0
  59. package/dist/recording/index.d.ts.map +1 -0
  60. package/dist/recording/index.js +10 -0
  61. package/dist/recording/index.js.map +1 -0
  62. package/dist/recording/replayer.d.ts +17 -0
  63. package/dist/recording/replayer.d.ts.map +1 -0
  64. package/dist/recording/replayer.js +68 -0
  65. package/dist/recording/replayer.js.map +1 -0
  66. package/dist/recording/writer.d.ts +32 -0
  67. package/dist/recording/writer.d.ts.map +1 -0
  68. package/dist/recording/writer.js +122 -0
  69. package/dist/recording/writer.js.map +1 -0
  70. package/dist/telemetry/index.d.ts +8 -0
  71. package/dist/telemetry/index.d.ts.map +1 -0
  72. package/dist/telemetry/index.js +8 -0
  73. package/dist/telemetry/index.js.map +1 -0
  74. package/dist/telemetry/otel-adapter.d.ts +105 -0
  75. package/dist/telemetry/otel-adapter.d.ts.map +1 -0
  76. package/dist/telemetry/otel-adapter.js +153 -0
  77. package/dist/telemetry/otel-adapter.js.map +1 -0
  78. package/package.json +45 -0
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @module ACPClient
3
+ * @description ACP 客户端接口定义,规范会话创建、运行启动及状态检查的契约
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-04-03
11
+ *
12
+ * @role interface
13
+ * @layer interface
14
+ * @boundedContext agent-control-protocol
15
+ */
16
+ import type { ACPRunStatus, ACPSessionStatus, ACPTool } from './acp-types.js';
17
+ import type { AccumulatorEvent, AccumulatorListener } from './session-accumulator.js';
18
+ export type { AccumulatorEvent, AccumulatorListener };
19
+ export interface McpServerConfig {
20
+ name: string;
21
+ command: string;
22
+ args?: string[];
23
+ env?: Array<{
24
+ name: string;
25
+ value: string;
26
+ }>;
27
+ }
28
+ export interface EnsureSessionInput {
29
+ sessionName: string;
30
+ tool: ACPTool;
31
+ cwd: string;
32
+ resetExisting?: boolean;
33
+ /** Directory for worker output logs (enables sps logs) */
34
+ logsDir?: string;
35
+ /** MCP servers to attach to this session */
36
+ mcpServers?: McpServerConfig[];
37
+ /** Extra env vars passed to the spawned agent process (e.g. SPS_CARD_ID, SPS_STAGE).
38
+ * These flow through claude-agent-acp to Claude and become available to hook scripts. */
39
+ extraEnv?: Record<string, string>;
40
+ }
41
+ export interface EnsureSessionResult {
42
+ sessionId: string;
43
+ sessionState: ACPSessionStatus;
44
+ paneText: string;
45
+ lastSeenAt: string;
46
+ /** Adapter child process PID (for cross-process liveness checks) */
47
+ pid?: number | null;
48
+ }
49
+ export interface StartRunInput {
50
+ sessionName: string;
51
+ tool: ACPTool;
52
+ prompt: string;
53
+ }
54
+ export interface StartRunResult {
55
+ runId: string;
56
+ runState: ACPRunStatus;
57
+ paneText: string;
58
+ lastSeenAt: string;
59
+ /** Adapter child process PID */
60
+ pid?: number | null;
61
+ }
62
+ export interface InspectSessionInput {
63
+ sessionName: string;
64
+ tool: ACPTool;
65
+ /** Persisted PID for cross-process fallback liveness check */
66
+ pid?: number | null;
67
+ }
68
+ export interface InspectSessionResult {
69
+ sessionState: ACPSessionStatus;
70
+ paneText: string;
71
+ lastSeenAt: string;
72
+ }
73
+ export interface InspectRunInput {
74
+ sessionName: string;
75
+ tool: ACPTool;
76
+ activeRun: boolean;
77
+ /** Persisted PID for cross-process fallback liveness check */
78
+ pid?: number | null;
79
+ }
80
+ export interface InspectRunResult {
81
+ runState: ACPRunStatus | null;
82
+ paneText: string;
83
+ lastSeenAt: string;
84
+ }
85
+ export interface StopSessionInput {
86
+ sessionName: string;
87
+ tool: ACPTool;
88
+ }
89
+ export interface ACPClient {
90
+ ensureSession(input: EnsureSessionInput): Promise<EnsureSessionResult>;
91
+ startRun(input: StartRunInput): Promise<StartRunResult>;
92
+ inspectSession(input: InspectSessionInput): Promise<InspectSessionResult>;
93
+ inspectRun(input: InspectRunInput): Promise<InspectRunResult>;
94
+ stopSession(input: StopSessionInput): Promise<void>;
95
+ /**
96
+ * Cancel the in-flight prompt without destroying the session. Next startRun
97
+ * reuses the same session (context preserved). No-op if no active run.
98
+ */
99
+ cancelRun(sessionName: string): Promise<void>;
100
+ /**
101
+ * Attach a listener to an existing session's accumulator to receive structured
102
+ * events (text/tool_use/tool_update/usage) as the run progresses. Returns an
103
+ * unsubscribe function. No-op (returns () => {}) if session does not exist.
104
+ */
105
+ subscribe(sessionName: string, listener: AccumulatorListener): () => void;
106
+ }
107
+ //# sourceMappingURL=acp-client-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-client-interface.d.ts","sourceRoot":"","sources":["../../src/internal/acp-client-interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module ACPClient
3
+ * @description ACP 客户端接口定义,规范会话创建、运行启动及状态检查的契约
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-04-03
11
+ *
12
+ * @role interface
13
+ * @layer interface
14
+ * @boundedContext agent-control-protocol
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=acp-client-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-client-interface.js","sourceRoot":"","sources":["../../src/internal/acp-client-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @module acp
3
+ * @description ACP(Agent Control Protocol)数据模型,定义会话、运行记录及状态枚举
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-03-31
11
+ *
12
+ * @role model
13
+ * @layer model
14
+ * @boundedContext agent-control-protocol
15
+ */
16
+ export type ACPTool = 'claude';
17
+ export type ACPSlotStatus = 'idle' | 'launching' | 'active' | 'offline';
18
+ export type ACPSessionStatus = 'booting' | 'ready' | 'busy' | 'needs_confirmation' | 'draining' | 'offline';
19
+ export type ACPRunStatus = 'submitted' | 'running' | 'waiting_input' | 'needs_confirmation' | 'stalled_submit' | 'completed' | 'failed' | 'cancelled' | 'lost';
20
+ export interface ACPRunRecord {
21
+ runId: string;
22
+ status: ACPRunStatus;
23
+ promptPreview: string;
24
+ startedAt: string;
25
+ updatedAt: string;
26
+ completedAt: string | null;
27
+ }
28
+ export interface PendingInput {
29
+ type: 'input' | 'trust' | 'permission' | 'confirmation' | 'unknown';
30
+ prompt: string;
31
+ options?: string[];
32
+ dangerous?: boolean;
33
+ timestamp: string;
34
+ }
35
+ export interface ACPSessionRecord {
36
+ slot: string;
37
+ tool: ACPTool;
38
+ sessionId: string;
39
+ sessionName: string;
40
+ pid?: number | null;
41
+ cwd: string;
42
+ status: ACPSlotStatus;
43
+ sessionState: ACPSessionStatus;
44
+ currentRun: ACPRunRecord | null;
45
+ pendingInput: PendingInput | null;
46
+ createdAt: string;
47
+ updatedAt: string;
48
+ lastSeenAt: string | null;
49
+ lastOutputAt?: string | null;
50
+ submitAttempts?: number;
51
+ stalledReason?: string | null;
52
+ lastPaneText: string;
53
+ }
54
+ /**
55
+ * @deprecated ACPState has been merged into RuntimeState.sessions.
56
+ * Use RuntimeState directly — this alias exists only for migration.
57
+ */
58
+ export interface ACPState {
59
+ version: number;
60
+ updatedAt: string;
61
+ updatedBy: string;
62
+ sessions: Record<string, ACPSessionRecord>;
63
+ }
64
+ //# sourceMappingURL=acp-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-types.d.ts","sourceRoot":"","sources":["../../src/internal/acp-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC;AAE/B,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,OAAO,GACP,MAAM,GACN,oBAAoB,GACpB,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,SAAS,GACT,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,MAAM,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC5C"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module acp
3
+ * @description ACP(Agent Control Protocol)数据模型,定义会话、运行记录及状态枚举
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-03-31
11
+ *
12
+ * @role model
13
+ * @layer model
14
+ * @boundedContext agent-control-protocol
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=acp-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-types.js","sourceRoot":"","sources":["../../src/internal/acp-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @module AgentRuntime
3
+ * @description Agent 运行时接口,抽象会话管理与任务执行的统一契约
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-04-03
11
+ *
12
+ * @role interface
13
+ * @layer interface
14
+ * @boundedContext agent-control-protocol
15
+ */
16
+ import type { ACPSessionRecord, ACPState, ACPTool } from './acp-types.js';
17
+ import type { AccumulatorListener, McpServerConfig } from './acp-client-interface.js';
18
+ export interface AgentRuntime {
19
+ ensureSession(slot: string, tool?: ACPTool, cwd?: string, opts?: {
20
+ mcpServers?: McpServerConfig[];
21
+ extraEnv?: Record<string, string>;
22
+ }): Promise<ACPSessionRecord>;
23
+ startRun(slot: string, prompt: string, tool?: ACPTool, cwd?: string, opts?: {
24
+ extraEnv?: Record<string, string>;
25
+ }): Promise<ACPSessionRecord>;
26
+ resumeRun(slot: string, prompt: string): Promise<ACPSessionRecord>;
27
+ inspect(slot?: string): Promise<ACPState>;
28
+ stopSession(slot: string): Promise<void>;
29
+ /**
30
+ * Attach a listener to the current session for real-time accumulator events.
31
+ * Returns an unsubscribe function. Session must already exist (call ensureSession first).
32
+ */
33
+ subscribe(slot: string, listener: AccumulatorListener): () => void;
34
+ /**
35
+ * Cancel the in-flight run (current prompt) without destroying the session.
36
+ * Session + ACP child process live on; next startRun reuses them.
37
+ */
38
+ cancelRun(slot: string): Promise<void>;
39
+ }
40
+ //# sourceMappingURL=agent-runtime-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime-interface.d.ts","sourceRoot":"","sources":["../../src/internal/agent-runtime-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9I,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI,CAAC;IACnE;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module AgentRuntime
3
+ * @description Agent 运行时接口,抽象会话管理与任务执行的统一契约
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-04-03
11
+ *
12
+ * @role interface
13
+ * @layer interface
14
+ * @boundedContext agent-control-protocol
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=agent-runtime-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime-interface.js","sourceRoot":"","sources":["../../src/internal/agent-runtime-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @module LocalACPClient
3
+ * @description 本地 ACP 客户端,封装 ACP SDK 适配器提供会话与运行管理
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-27
10
+ * @updated 2026-03-31
11
+ *
12
+ * @role provider
13
+ * @layer provider
14
+ * @boundedContext acp
15
+ */
16
+ import type { ACPClient, AccumulatorListener, EnsureSessionInput, EnsureSessionResult, InspectRunInput, InspectRunResult, InspectSessionInput, InspectSessionResult, StartRunInput, StartRunResult, StopSessionInput } from './acp-client-interface.js';
17
+ export declare class LocalACPClient implements ACPClient {
18
+ private readonly adapter;
19
+ ensureSession(input: EnsureSessionInput): Promise<EnsureSessionResult>;
20
+ startRun(input: StartRunInput): Promise<StartRunResult>;
21
+ inspectSession(input: InspectSessionInput): Promise<InspectSessionResult>;
22
+ inspectRun(input: InspectRunInput): Promise<InspectRunResult>;
23
+ stopSession(input: StopSessionInput): Promise<void>;
24
+ subscribe(sessionName: string, listener: AccumulatorListener): () => void;
25
+ cancelRun(sessionName: string): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=local-acp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-acp-client.d.ts","sourceRoot":"","sources":["../../src/internal/local-acp-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAGnC,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAEzC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAItE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIzE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7D,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAInE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD"}
@@ -0,0 +1,26 @@
1
+ import { AcpSdkAdapter } from './sdk-adapter.js';
2
+ export class LocalACPClient {
3
+ adapter = new AcpSdkAdapter();
4
+ async ensureSession(input) {
5
+ return this.adapter.ensureSession(input);
6
+ }
7
+ async startRun(input) {
8
+ return this.adapter.startRun(input);
9
+ }
10
+ async inspectSession(input) {
11
+ return this.adapter.inspectSession(input);
12
+ }
13
+ async inspectRun(input) {
14
+ return this.adapter.inspectRun(input);
15
+ }
16
+ async stopSession(input) {
17
+ return this.adapter.stopSession(input);
18
+ }
19
+ subscribe(sessionName, listener) {
20
+ return this.adapter.subscribe(sessionName, listener);
21
+ }
22
+ async cancelRun(sessionName) {
23
+ return this.adapter.cancelRun(sessionName);
24
+ }
25
+ }
26
+ //# sourceMappingURL=local-acp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-acp-client.js","sourceRoot":"","sources":["../../src/internal/local-acp-client.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,cAAc;IACR,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IAE/C,KAAK,CAAC,aAAa,CAAC,KAAyB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAoB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAA0B;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAsB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,QAA6B;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import type { ACPClient, EnsureSessionInput, EnsureSessionResult, InspectRunInput, InspectRunResult, InspectSessionInput, InspectSessionResult, StartRunInput, StartRunResult, StopSessionInput } from './acp-client-interface.js';
2
+ import { type PermissionMode } from '../hooks/permissions.js';
3
+ export interface AgentRegistryEntry {
4
+ command: string;
5
+ args: string[];
6
+ }
7
+ /** Load custom agents from ~/.coral/agents.json, merge with builtins. */
8
+ export declare function loadAgentRegistry(): Record<string, AgentRegistryEntry>;
9
+ export declare class AcpSdkAdapter implements ACPClient {
10
+ private readonly sessions;
11
+ private readonly defaultPermissionMode;
12
+ constructor(permissionMode?: PermissionMode);
13
+ ensureSession(input: EnsureSessionInput): Promise<EnsureSessionResult>;
14
+ startRun(input: StartRunInput): Promise<StartRunResult>;
15
+ inspectSession(input: InspectSessionInput): Promise<InspectSessionResult>;
16
+ inspectRun(input: InspectRunInput): Promise<InspectRunResult>;
17
+ subscribe(sessionName: string, listener: import('./session-accumulator.js').AccumulatorListener): () => void;
18
+ cancelRun(sessionName: string): Promise<void>;
19
+ stopSession(input: StopSessionInput): Promise<void>;
20
+ private destroySession;
21
+ /** Kill all child processes of a given PID (Linux: pgrep -P). */
22
+ private killDescendants;
23
+ }
24
+ //# sourceMappingURL=sdk-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/internal/sdk-adapter.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,yBAAyB,CAAC;AAIjF,MAAM,WAAW,kBAAkB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE;AAiBvE,yEAAyE;AACzE,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAetE;AAiCD,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;gBAE3C,cAAc,CAAC,EAAE,cAAc;IAKrC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiLtE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAkCvD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwBzE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiDnE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,0BAA0B,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAOtG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAc3C,cAAc;IA+B5B,iEAAiE;IACjE,OAAO,CAAC,eAAe;CAYxB"}