cccc-sdk 0.1.0 → 0.1.2

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 (50) hide show
  1. package/README.md +68 -186
  2. package/dist/client.d.ts +136 -186
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +419 -414
  5. package/dist/client.js.map +1 -0
  6. package/dist/errors.d.ts +32 -10
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +46 -16
  9. package/dist/errors.js.map +1 -0
  10. package/dist/index.d.ts +7 -7
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +11 -10
  13. package/dist/index.js.map +1 -0
  14. package/dist/transport.d.ts +44 -24
  15. package/dist/transport.d.ts.map +1 -0
  16. package/dist/transport.js +248 -92
  17. package/dist/transport.js.map +1 -0
  18. package/dist/types.d.ts +273 -0
  19. package/dist/types.d.ts.map +1 -0
  20. package/dist/types.js +5 -0
  21. package/dist/types.js.map +1 -0
  22. package/package.json +27 -26
  23. package/dist/types/actor.d.ts +0 -42
  24. package/dist/types/actor.d.ts.map +0 -1
  25. package/dist/types/actor.js +0 -5
  26. package/dist/types/actor.js.map +0 -1
  27. package/dist/types/context.d.ts +0 -89
  28. package/dist/types/context.d.ts.map +0 -1
  29. package/dist/types/context.js +0 -5
  30. package/dist/types/context.js.map +0 -1
  31. package/dist/types/event.d.ts +0 -15
  32. package/dist/types/event.d.ts.map +0 -1
  33. package/dist/types/event.js +0 -5
  34. package/dist/types/event.js.map +0 -1
  35. package/dist/types/group.d.ts +0 -33
  36. package/dist/types/group.d.ts.map +0 -1
  37. package/dist/types/group.js +0 -5
  38. package/dist/types/group.js.map +0 -1
  39. package/dist/types/index.d.ts +0 -10
  40. package/dist/types/index.d.ts.map +0 -1
  41. package/dist/types/index.js +0 -10
  42. package/dist/types/index.js.map +0 -1
  43. package/dist/types/ipc.d.ts +0 -24
  44. package/dist/types/ipc.d.ts.map +0 -1
  45. package/dist/types/ipc.js +0 -10
  46. package/dist/types/ipc.js.map +0 -1
  47. package/dist/types/message.d.ts +0 -53
  48. package/dist/types/message.d.ts.map +0 -1
  49. package/dist/types/message.js +0 -5
  50. package/dist/types/message.js.map +0 -1
package/dist/client.d.ts CHANGED
@@ -1,262 +1,212 @@
1
1
  /**
2
- * CCCC Client SDK
3
- *
4
- * High-level API for interacting with CCCC daemon
2
+ * CCCC SDK client
5
3
  */
6
- import { type TransportOptions } from './transport.js';
7
- import { type DaemonResponse } from './types/ipc.js';
8
- import type { Actor, ActorAddOptions, GroupState, HeadlessState } from './types/actor.js';
9
- import type { GroupInfo, GroupCreateOptions, GroupUpdatePatch } from './types/group.js';
10
- import type { SendMessageOptions, ReplyMessageOptions, InboxMessage, InboxListOptions } from './types/message.js';
11
- import type { Event } from './types/event.js';
12
- import type { Context, ContextSyncOp, Task, TaskCreateOptions, TaskUpdateOptions, Milestone, MilestoneCreateOptions } from './types/context.js';
13
- export interface CCCCClientOptions extends TransportOptions {
14
- }
4
+ import type { DaemonEndpoint, DaemonResponse, CCCCClientOptions, CompatibilityOptions, SendOptions, SendCrossGroupOptions, ReplyOptions, ActorAddOptions, ActorUpdateOptions, ActorEnvPrivateUpdateOptions, GroupCreateOptions, GroupUpdateOptions, GroupAutomationUpdateOptions, GroupAutomationManageOptions, GroupAutomationResetBaselineOptions, InboxListOptions, ContextSyncOptions, EventsStreamOptions, EventStreamItem } from './types.js';
15
5
  /**
16
- * Groups API
6
+ * Client for communicating with the CCCC daemon over IPC (Unix socket or TCP).
7
+ *
8
+ * Use the async factory {@link CCCCClient.create} to instantiate:
9
+ * ```ts
10
+ * const client = await CCCCClient.create();
11
+ * const result = await client.ping();
12
+ * ```
17
13
  */
18
- declare class GroupsAPI {
19
- private client;
20
- constructor(client: CCCCClient);
14
+ export declare class CCCCClient {
15
+ private readonly _endpoint;
16
+ private readonly _timeoutMs;
17
+ private constructor();
21
18
  /**
22
- * List all groups
19
+ * Create a new client instance, auto-discovering the daemon endpoint.
20
+ * @param options - Client configuration (ccccHome, endpoint override, timeout).
21
+ * @returns A connected CCCCClient instance.
22
+ * @throws {DaemonUnavailableError} If the daemon endpoint cannot be discovered.
23
23
  */
24
- list(): Promise<GroupInfo[]>;
24
+ static create(options?: CCCCClientOptions): Promise<CCCCClient>;
25
+ /** The resolved daemon endpoint this client connects to. */
26
+ get endpoint(): DaemonEndpoint;
25
27
  /**
26
- * Get group info
28
+ * Send a raw IPC request and return the full daemon response envelope.
29
+ * @param op - The IPC operation name (e.g. `'ping'`, `'send'`).
30
+ * @param args - Operation arguments.
31
+ * @returns The complete {@link DaemonResponse} including `ok`, `result`, and `error`.
32
+ * @throws {DaemonAPIError} If the daemon returns `ok: false`.
33
+ * @throws {DaemonUnavailableError} If the connection fails.
27
34
  */
28
- get(groupId: string): Promise<GroupInfo>;
35
+ callRaw(op: string, args?: Record<string, unknown>): Promise<DaemonResponse>;
29
36
  /**
30
- * Create a new group
37
+ * Send an IPC request and return only the result payload.
38
+ * @param op - The IPC operation name.
39
+ * @param args - Operation arguments.
40
+ * @returns The `result` field from the daemon response (empty object if absent).
41
+ * @throws {DaemonAPIError} If the daemon returns an error.
42
+ * @throws {DaemonUnavailableError} If the connection fails.
31
43
  */
32
- create(options: GroupCreateOptions): Promise<GroupInfo>;
44
+ call(op: string, args?: Record<string, unknown>): Promise<Record<string, unknown>>;
33
45
  /**
34
- * Set group state
46
+ * Assert that the connected daemon meets the caller's compatibility requirements.
47
+ * Checks IPC version, capabilities, and operation support by probing.
48
+ * @param options - Required IPC version, capabilities, and operations.
49
+ * @returns The ping result from the daemon.
50
+ * @throws {IncompatibleDaemonError} If any compatibility check fails.
51
+ * @throws {DaemonUnavailableError} If the connection fails.
35
52
  */
36
- setState(groupId: string, state: GroupState, by: string): Promise<void>;
53
+ assertCompatible(options?: CompatibilityOptions): Promise<Record<string, unknown>>;
37
54
  /**
38
- * Start group (activate all enabled actors)
55
+ * Ping the daemon and return diagnostic information (ipc_v, capabilities, etc.).
56
+ * @returns Daemon ping result.
57
+ * @throws {DaemonUnavailableError} If the daemon is not reachable.
39
58
  */
40
- start(groupId: string): Promise<void>;
59
+ ping(): Promise<Record<string, unknown>>;
41
60
  /**
42
- * Stop group (stop all actors)
61
+ * List all groups
43
62
  */
44
- stop(groupId: string): Promise<void>;
63
+ groups(): Promise<Record<string, unknown>>;
64
+ /**
65
+ * Show group details
66
+ */
67
+ groupShow(groupId: string): Promise<Record<string, unknown>>;
68
+ /**
69
+ * Create group
70
+ */
71
+ groupCreate(options?: GroupCreateOptions): Promise<Record<string, unknown>>;
45
72
  /**
46
73
  * Update group
47
74
  */
48
- update(groupId: string, patch: GroupUpdatePatch): Promise<void>;
75
+ groupUpdate(options: GroupUpdateOptions): Promise<Record<string, unknown>>;
49
76
  /**
50
77
  * Delete group
51
78
  */
52
- delete(groupId: string): Promise<void>;
53
- }
54
- /**
55
- * Actors API
56
- */
57
- declare class ActorsAPI {
58
- private client;
59
- constructor(client: CCCCClient);
79
+ groupDelete(groupId: string, by?: string): Promise<Record<string, unknown>>;
60
80
  /**
61
- * List actors in a group
81
+ * Use group (set active scope)
62
82
  */
63
- list(groupId: string): Promise<Actor[]>;
83
+ groupUse(groupId: string, path: string, by?: string): Promise<Record<string, unknown>>;
64
84
  /**
65
- * Add an actor to a group
85
+ * Set group state
66
86
  */
67
- add(groupId: string, by: string, options: ActorAddOptions): Promise<Actor>;
87
+ groupSetState(groupId: string, state: 'active' | 'idle' | 'paused', by?: string): Promise<Record<string, unknown>>;
68
88
  /**
69
- * Start an actor
89
+ * Update group settings
70
90
  */
71
- start(groupId: string, actorId: string, by: string): Promise<void>;
91
+ groupSettingsUpdate(groupId: string, patch: Record<string, unknown>, by?: string): Promise<Record<string, unknown>>;
72
92
  /**
73
- * Stop an actor
93
+ * Read group-level automation state (rules, snippets, next run, ...)
74
94
  */
75
- stop(groupId: string, actorId: string, by: string): Promise<void>;
95
+ groupAutomationState(groupId: string, by?: string): Promise<Record<string, unknown>>;
76
96
  /**
77
- * Restart an actor
97
+ * Replace group-level automation (rules + snippets)
78
98
  */
79
- restart(groupId: string, actorId: string, by: string): Promise<void>;
99
+ groupAutomationUpdate(options: GroupAutomationUpdateOptions): Promise<Record<string, unknown>>;
80
100
  /**
81
- * Remove an actor
101
+ * Incrementally manage group-level automation (actions[])
82
102
  */
83
- remove(groupId: string, actorId: string, by: string): Promise<void>;
84
- }
85
- /**
86
- * Messages API
87
- */
88
- declare class MessagesAPI {
89
- private client;
90
- constructor(client: CCCCClient);
103
+ groupAutomationManage(options: GroupAutomationManageOptions): Promise<Record<string, unknown>>;
91
104
  /**
92
- * Send a message
105
+ * Reset group-level automation to baseline
93
106
  */
94
- send(groupId: string, by: string, options: SendMessageOptions): Promise<Event>;
107
+ groupAutomationResetBaseline(options: GroupAutomationResetBaselineOptions): Promise<Record<string, unknown>>;
95
108
  /**
96
- * Reply to a message
109
+ * Start group
97
110
  */
98
- reply(groupId: string, by: string, options: ReplyMessageOptions): Promise<Event>;
99
- }
100
- /**
101
- * Inbox API
102
- */
103
- declare class InboxAPI {
104
- private client;
105
- constructor(client: CCCCClient);
111
+ groupStart(groupId: string, by?: string): Promise<Record<string, unknown>>;
106
112
  /**
107
- * List inbox messages
113
+ * Stop group
108
114
  */
109
- list(groupId: string, actorId: string, options?: InboxListOptions): Promise<InboxMessage[]>;
115
+ groupStop(groupId: string, by?: string): Promise<Record<string, unknown>>;
110
116
  /**
111
- * Mark messages as read up to event_id
117
+ * Attach path to group
112
118
  */
113
- markRead(groupId: string, actorId: string, eventId: string): Promise<void>;
119
+ attach(path: string, groupId?: string, by?: string): Promise<Record<string, unknown>>;
114
120
  /**
115
- * Mark all messages as read
121
+ * List actors in group
116
122
  */
117
- markAllRead(groupId: string, actorId: string): Promise<void>;
118
- }
119
- /**
120
- * Context API
121
- */
122
- declare class ContextAPI {
123
- private client;
124
- constructor(client: CCCCClient);
123
+ actorList(groupId: string): Promise<Record<string, unknown>>;
125
124
  /**
126
- * Get project context
125
+ * Add an actor to a group.
126
+ * @param options - Actor configuration (id, runtime, runner, etc.).
127
+ * @returns The daemon result (includes assigned actor id).
128
+ * @throws {DaemonAPIError} On invalid group or duplicate actor id.
127
129
  */
128
- get(groupId: string): Promise<Context>;
130
+ actorAdd(options: ActorAddOptions): Promise<Record<string, unknown>>;
129
131
  /**
130
- * Sync context with batch operations
132
+ * Update actor
131
133
  */
132
- sync(groupId: string, ops: ContextSyncOp[], dryRun?: boolean): Promise<Record<string, unknown>>;
133
- }
134
- /**
135
- * Tasks API
136
- */
137
- declare class TasksAPI {
138
- private client;
139
- constructor(client: CCCCClient);
134
+ actorUpdate(options: ActorUpdateOptions): Promise<Record<string, unknown>>;
140
135
  /**
141
- * List tasks
136
+ * Remove actor
142
137
  */
143
- list(groupId: string, includeArchived?: boolean): Promise<Task[]>;
138
+ actorRemove(groupId: string, actorId: string, by?: string): Promise<Record<string, unknown>>;
144
139
  /**
145
- * Create a task
140
+ * Start actor
146
141
  */
147
- create(groupId: string, options: TaskCreateOptions): Promise<Task>;
142
+ actorStart(groupId: string, actorId: string, by?: string): Promise<Record<string, unknown>>;
148
143
  /**
149
- * Update a task
144
+ * Stop actor
150
145
  */
151
- update(groupId: string, options: TaskUpdateOptions): Promise<Task>;
152
- }
153
- /**
154
- * Milestones API
155
- */
156
- declare class MilestonesAPI {
157
- private client;
158
- constructor(client: CCCCClient);
146
+ actorStop(groupId: string, actorId: string, by?: string): Promise<Record<string, unknown>>;
159
147
  /**
160
- * Create a milestone
148
+ * Restart actor
161
149
  */
162
- create(groupId: string, options: MilestoneCreateOptions): Promise<Milestone>;
150
+ actorRestart(groupId: string, actorId: string, by?: string): Promise<Record<string, unknown>>;
163
151
  /**
164
- * Complete a milestone
152
+ * List actor private env keys (without values)
165
153
  */
166
- complete(groupId: string, milestoneId: string, outcomes: string): Promise<void>;
167
- }
168
- /**
169
- * Vision API
170
- */
171
- declare class VisionAPI {
172
- private client;
173
- constructor(client: CCCCClient);
154
+ actorEnvPrivateKeys(groupId: string, actorId: string, by?: string): Promise<Record<string, unknown>>;
174
155
  /**
175
- * Update project vision
156
+ * Update actor private env vars (runtime-only; values are never echoed)
176
157
  */
177
- update(groupId: string, vision: string): Promise<void>;
178
- }
179
- /**
180
- * Sketch API
181
- */
182
- declare class SketchAPI {
183
- private client;
184
- constructor(client: CCCCClient);
158
+ actorEnvPrivateUpdate(options: ActorEnvPrivateUpdateOptions): Promise<Record<string, unknown>>;
185
159
  /**
186
- * Update execution sketch
160
+ * Send a chat message to a group.
161
+ * @param options - Message content, recipients, and priority.
162
+ * @returns The daemon result (includes event id).
163
+ * @throws {DaemonAPIError} On invalid group, missing permissions, etc.
187
164
  */
188
- update(groupId: string, sketch: string): Promise<void>;
189
- }
190
- /**
191
- * Headless API for MCP-driven actors
192
- */
193
- declare class HeadlessAPI {
194
- private client;
195
- constructor(client: CCCCClient);
165
+ send(options: SendOptions): Promise<Record<string, unknown>>;
196
166
  /**
197
- * Get headless session status
167
+ * Send message across groups
198
168
  */
199
- status(groupId: string, actorId: string): Promise<HeadlessState>;
169
+ sendCrossGroup(options: SendCrossGroupOptions): Promise<Record<string, unknown>>;
200
170
  /**
201
- * Set headless session status
171
+ * Reply message
202
172
  */
203
- setStatus(groupId: string, actorId: string, status: 'idle' | 'working' | 'waiting' | 'stopped', taskId?: string): Promise<void>;
173
+ reply(options: ReplyOptions): Promise<Record<string, unknown>>;
204
174
  /**
205
- * Acknowledge processed message
175
+ * Acknowledge chat message
206
176
  */
207
- ackMessage(groupId: string, actorId: string, messageId: string): Promise<void>;
208
- }
209
- /**
210
- * CCCC Client
211
- *
212
- * Main entry point for SDK
213
- *
214
- * @example
215
- * ```typescript
216
- * const client = new CCCCClient();
217
- *
218
- * // List all groups
219
- * const groups = await client.groups.list();
220
- *
221
- * // Add an actor
222
- * await client.actors.add(groupId, 'user', {
223
- * actor_id: 'agent-1',
224
- * runtime: 'claude',
225
- * runner: 'pty'
226
- * });
227
- *
228
- * // Send a message
229
- * await client.messages.send(groupId, 'user', {
230
- * text: 'Hello agents!',
231
- * to: ['agent-1']
232
- * });
233
- * ```
234
- */
235
- export declare class CCCCClient {
236
- private options;
237
- readonly groups: GroupsAPI;
238
- readonly actors: ActorsAPI;
239
- readonly messages: MessagesAPI;
240
- readonly inbox: InboxAPI;
241
- readonly context: ContextAPI;
242
- readonly tasks: TasksAPI;
243
- readonly milestones: MilestonesAPI;
244
- readonly vision: VisionAPI;
245
- readonly sketch: SketchAPI;
246
- readonly headless: HeadlessAPI;
247
- constructor(options?: CCCCClientOptions);
177
+ chatAck(groupId: string, actorId: string, eventId: string, by?: string): Promise<Record<string, unknown>>;
178
+ /**
179
+ * List inbox
180
+ */
181
+ inboxList(options: InboxListOptions): Promise<Record<string, unknown>>;
182
+ /**
183
+ * Mark message as read
184
+ */
185
+ inboxMarkRead(groupId: string, actorId: string, eventId: string, by?: string): Promise<Record<string, unknown>>;
186
+ /**
187
+ * Mark all messages as read
188
+ */
189
+ inboxMarkAllRead(groupId: string, actorId: string, by?: string, kindFilter?: string): Promise<Record<string, unknown>>;
190
+ /**
191
+ * Acknowledge notification
192
+ */
193
+ notifyAck(groupId: string, actorId: string, notifyEventId: string, by?: string): Promise<Record<string, unknown>>;
248
194
  /**
249
- * Ping daemon to check if it's running
195
+ * Get group context
250
196
  */
251
- ping(): Promise<boolean>;
197
+ contextGet(groupId: string): Promise<Record<string, unknown>>;
252
198
  /**
253
- * Low-level daemon call
199
+ * Sync context
254
200
  */
255
- call(op: string, args: Record<string, unknown>): Promise<DaemonResponse>;
201
+ contextSync(options: ContextSyncOptions): Promise<Record<string, unknown>>;
256
202
  /**
257
- * Shutdown the daemon
203
+ * Subscribe to the group event stream (Server-Sent Events style, long-lived connection).
204
+ * Yields {@link EventStreamItem} objects as they arrive. The socket is destroyed
205
+ * when the generator is returned or thrown.
206
+ * @param options - Group ID, event filters, and optional since cursor.
207
+ * @yields {EventStreamItem} Each event or heartbeat from the stream.
208
+ * @throws {DaemonAPIError} If the handshake fails.
258
209
  */
259
- shutdown(): Promise<void>;
210
+ eventsStream(options: EventsStreamOptions): AsyncGenerator<EventStreamItem>;
260
211
  }
261
- export {};
262
212
  //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}