cccc-sdk 0.1.0 → 0.1.1

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 +101 -186
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +373 -410
  5. package/dist/client.js.map +1 -0
  6. package/dist/errors.d.ts +28 -10
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +42 -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 +19 -24
  15. package/dist/transport.d.ts.map +1 -0
  16. package/dist/transport.js +202 -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 +24 -25
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,15 +1,33 @@
1
1
  /**
2
- * CCCC SDK Error Types
2
+ * CCCC SDK error classes
3
3
  */
4
- export type CCCCErrorCode = 'DAEMON_NOT_RUNNING' | 'SOCKET_NOT_FOUND' | 'TIMEOUT' | 'INVALID_REQUEST' | 'PERMISSION_DENIED' | 'GROUP_NOT_FOUND' | 'ACTOR_NOT_FOUND' | 'INTERNAL' | 'DAEMON_ERROR';
5
- export declare class CCCCError extends Error {
6
- readonly code: CCCCErrorCode;
4
+ import type { DaemonResponse } from './types.js';
5
+ /**
6
+ * Base SDK error
7
+ */
8
+ export declare class CCCCSDKError extends Error {
9
+ constructor(message: string);
10
+ }
11
+ /**
12
+ * Daemon unavailable
13
+ */
14
+ export declare class DaemonUnavailableError extends CCCCSDKError {
15
+ constructor(message: string);
16
+ }
17
+ /**
18
+ * Daemon API error
19
+ */
20
+ export declare class DaemonAPIError extends CCCCSDKError {
21
+ readonly code: string;
7
22
  readonly details: Record<string, unknown>;
8
- constructor(code: CCCCErrorCode, message: string, details?: Record<string, unknown>);
9
- static fromDaemonError(error: {
10
- code: string;
11
- message: string;
12
- details?: Record<string, unknown>;
13
- }): CCCCError;
23
+ readonly raw?: DaemonResponse;
24
+ constructor(code: string, message: string, details?: Record<string, unknown>, raw?: DaemonResponse);
25
+ toString(): string;
26
+ }
27
+ /**
28
+ * Incompatible daemon version/capabilities
29
+ */
30
+ export declare class IncompatibleDaemonError extends CCCCSDKError {
31
+ constructor(message: string);
14
32
  }
15
33
  //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAM5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;gBAC1C,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;gBAG5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,GAAG,CAAC,EAAE,cAAc;IAStB,QAAQ,IAAI,MAAM;CAMnB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;gBAC3C,OAAO,EAAE,MAAM;CAI5B"}
package/dist/errors.js CHANGED
@@ -1,25 +1,51 @@
1
1
  /**
2
- * CCCC SDK Error Types
2
+ * CCCC SDK error classes
3
3
  */
4
- export class CCCCError extends Error {
5
- code;
6
- details;
7
- constructor(code, message, details = {}) {
4
+ /**
5
+ * Base SDK error
6
+ */
7
+ export class CCCCSDKError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'CCCCSDKError';
11
+ // Fix instanceof checks for transpiled targets.
12
+ Object.setPrototypeOf(this, new.target.prototype);
13
+ }
14
+ }
15
+ /**
16
+ * Daemon unavailable
17
+ */
18
+ export class DaemonUnavailableError extends CCCCSDKError {
19
+ constructor(message) {
8
20
  super(message);
9
- this.name = 'CCCCError';
21
+ this.name = 'DaemonUnavailableError';
22
+ }
23
+ }
24
+ /**
25
+ * Daemon API error
26
+ */
27
+ export class DaemonAPIError extends CCCCSDKError {
28
+ constructor(code, message, details = {}, raw) {
29
+ super(`${code}: ${message}`);
30
+ this.name = 'DaemonAPIError';
10
31
  this.code = code;
11
32
  this.details = details;
33
+ this.raw = raw;
34
+ }
35
+ toString() {
36
+ const detailsStr = Object.keys(this.details).length > 0
37
+ ? ` (${JSON.stringify(this.details)})`
38
+ : '';
39
+ return `${this.code}: ${this.message}${detailsStr}`;
12
40
  }
13
- static fromDaemonError(error) {
14
- const codeMap = {
15
- daemon_unavailable: 'DAEMON_NOT_RUNNING',
16
- invalid_request: 'INVALID_REQUEST',
17
- permission_denied: 'PERMISSION_DENIED',
18
- group_not_found: 'GROUP_NOT_FOUND',
19
- actor_not_found: 'ACTOR_NOT_FOUND',
20
- };
21
- const code = codeMap[error.code] ?? 'DAEMON_ERROR';
22
- return new CCCCError(code, error.message, error.details ?? {});
41
+ }
42
+ /**
43
+ * Incompatible daemon version/capabilities
44
+ */
45
+ export class IncompatibleDaemonError extends CCCCSDKError {
46
+ constructor(message) {
47
+ super(message);
48
+ this.name = 'IncompatibleDaemonError';
23
49
  }
24
50
  }
25
51
  //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,gDAAgD;QAChD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAK9C,YACE,IAAY,EACZ,OAAe,EACf,UAAmC,EAAE,EACrC,GAAoB;QAEpB,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACrD,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;YACtC,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,YAAY;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * CCCC Client SDK for Node.js
3
- *
4
- * @packageDocumentation
2
+ * CCCC SDK - TypeScript Client for CCCC Daemon (IPC v1)
5
3
  */
6
- export { CCCCClient, type CCCCClientOptions } from './client.js';
7
- export { callDaemon, pingDaemon, getSocketPath, getDefaultCcccHome, socketExists, type TransportOptions, } from './transport.js';
8
- export { CCCCError, type CCCCErrorCode } from './errors.js';
9
- export * from './types/index.js';
4
+ export { CCCCClient } from './client.js';
5
+ export { CCCCSDKError, DaemonAPIError, DaemonUnavailableError, IncompatibleDaemonError, } from './errors.js';
6
+ export { discoverEndpoint, defaultHome, } from './transport.js';
7
+ export type { DaemonEndpoint, DaemonRequest, DaemonResponse, DaemonErrorPayload, AddressDescriptor, EventStreamItem, CCCSEvent, CCCCClientOptions, CompatibilityOptions, SendOptions, SendCrossGroupOptions, ReplyOptions, ActorAddOptions, ActorUpdateOptions, ActorEnvPrivateUpdateOptions, GroupCreateOptions, GroupUpdateOptions, AutomationNotifyPriority, AutomationTriggerInterval, AutomationTriggerCron, AutomationTriggerAt, AutomationTrigger, AutomationActionNotify, AutomationActionGroupState, AutomationActionActorControl, AutomationAction, AutomationRule, AutomationRuleSet, AutomationManageCreateRule, AutomationManageUpdateRule, AutomationManageSetRuleEnabled, AutomationManageDeleteRule, AutomationManageReplaceAllRules, AutomationManageAction, GroupAutomationUpdateOptions, GroupAutomationManageOptions, GroupAutomationResetBaselineOptions, InboxListOptions, ContextSyncOptions, EventsStreamOptions, } from './types.js';
8
+ /** SDK version */
9
+ export declare const version: string;
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAEV,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,SAAS,EAET,iBAAiB,EACjB,oBAAoB,EAEpB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,mCAAmC,EACnC,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,kBAAkB;AAClB,eAAO,MAAM,OAAO,QAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,15 @@
1
1
  /**
2
- * CCCC Client SDK for Node.js
3
- *
4
- * @packageDocumentation
2
+ * CCCC SDK - TypeScript Client for CCCC Daemon (IPC v1)
5
3
  */
6
- // Main client
4
+ import { createRequire } from 'node:module';
5
+ const require = createRequire(import.meta.url);
6
+ const pkg = require('../package.json');
7
+ // Export client class.
7
8
  export { CCCCClient } from './client.js';
8
- // Transport
9
- export { callDaemon, pingDaemon, getSocketPath, getDefaultCcccHome, socketExists, } from './transport.js';
10
- // Errors
11
- export { CCCCError } from './errors.js';
12
- // Types
13
- export * from './types/index.js';
9
+ // Export error classes.
10
+ export { CCCCSDKError, DaemonAPIError, DaemonUnavailableError, IncompatibleDaemonError, } from './errors.js';
11
+ // Export transport utility functions.
12
+ export { discoverEndpoint, defaultHome, } from './transport.js';
13
+ /** SDK version */
14
+ export const version = String(pkg.version || '0.0.0');
14
15
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAC;AAE/D,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,wBAAwB;AACxB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,sCAAsC;AACtC,OAAO,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAkDxB,kBAAkB;AAClB,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC"}
@@ -1,37 +1,32 @@
1
1
  /**
2
- * Unix Socket Transport Layer for CCCC daemon IPC
3
- *
4
- * Protocol:
5
- * - Uses Unix Domain Socket at $CCCC_HOME/daemon/ccccd.sock
6
- * - Messages are newline-delimited JSON
7
- * - Request: {"v": 1, "op": "xxx", "args": {...}}
8
- * - Response: {"v": 1, "ok": true/false, "result": {...}, "error": {...}}
2
+ * CCCC SDK transport layer - Unix socket / TCP
9
3
  */
10
- import type { DaemonRequest, DaemonResponse } from './types/ipc.js';
11
- export interface TransportOptions {
12
- /** CCCC home directory, defaults to ~/.cccc */
13
- ccccHome?: string;
14
- /** Request timeout in milliseconds, defaults to 60000 */
15
- timeoutMs?: number;
16
- }
4
+ import * as net from 'node:net';
5
+ import type { DaemonEndpoint, DaemonRequest, DaemonResponse } from './types.js';
17
6
  /**
18
- * Get default CCCC home directory
7
+ * Get default CCCC home path
19
8
  */
20
- export declare function getDefaultCcccHome(): string;
9
+ export declare function defaultHome(): string;
21
10
  /**
22
- * Get socket path for CCCC daemon
11
+ * Discover daemon endpoint
23
12
  */
24
- export declare function getSocketPath(ccccHome?: string): string;
13
+ export declare function discoverEndpoint(home?: string): Promise<DaemonEndpoint>;
25
14
  /**
26
- * Check if daemon socket exists
15
+ * Send a single IPC request
27
16
  */
28
- export declare function socketExists(ccccHome?: string): boolean;
17
+ export declare function callDaemon(endpoint: DaemonEndpoint, request: DaemonRequest, timeoutMs?: number): Promise<DaemonResponse>;
18
+ /** Event stream connection result */
19
+ export interface EventsStreamConnection {
20
+ socket: net.Socket;
21
+ handshake: DaemonResponse;
22
+ initialBuffer: string;
23
+ }
29
24
  /**
30
- * Send a request to the CCCC daemon and receive a response
25
+ * Open event stream connection
31
26
  */
32
- export declare function callDaemon(request: DaemonRequest, options?: TransportOptions): Promise<DaemonResponse>;
27
+ export declare function openEventsStream(endpoint: DaemonEndpoint, request: DaemonRequest, timeoutMs?: number): Promise<EventsStreamConnection>;
33
28
  /**
34
- * Ping the daemon to check if it's running
29
+ * Create line reader from socket (async generator)
35
30
  */
36
- export declare function pingDaemon(options?: TransportOptions): Promise<boolean>;
31
+ export declare function readLines(socket: net.Socket, initialBuffer?: string): AsyncGenerator<string>;
37
32
  //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AA0BpB;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0C7E;AAuDD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,aAAa,EACtB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,cAAc,CAAC,CAsDzB;AAMD,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;IACnB,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,aAAa,EACtB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,sBAAsB,CAAC,CA4DjC;AAED;;GAEG;AACH,wBAAuB,SAAS,CAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,aAAa,GAAE,MAAW,GACzB,cAAc,CAAC,MAAM,CAAC,CAyBxB"}
package/dist/transport.js CHANGED
@@ -1,142 +1,252 @@
1
1
  /**
2
- * Unix Socket Transport Layer for CCCC daemon IPC
3
- *
4
- * Protocol:
5
- * - Uses Unix Domain Socket at $CCCC_HOME/daemon/ccccd.sock
6
- * - Messages are newline-delimited JSON
7
- * - Request: {"v": 1, "op": "xxx", "args": {...}}
8
- * - Response: {"v": 1, "ok": true/false, "result": {...}, "error": {...}}
2
+ * CCCC SDK transport layer - Unix socket / TCP
9
3
  */
10
4
  import * as net from 'node:net';
5
+ import * as fs from 'node:fs/promises';
11
6
  import * as path from 'node:path';
12
7
  import * as os from 'node:os';
13
- import * as fs from 'node:fs';
14
- import { CCCCError } from './errors.js';
15
- const DEFAULT_TIMEOUT_MS = 60_000;
16
- const MAX_RESPONSE_SIZE = 4_000_000; // 4MB
17
- /**
18
- * Get default CCCC home directory
19
- */
20
- export function getDefaultCcccHome() {
21
- return process.env['CCCC_HOME'] || path.join(os.homedir(), '.cccc');
8
+ import { DaemonUnavailableError } from './errors.js';
9
+ // ============================================================
10
+ // Constants
11
+ // ============================================================
12
+ const MAX_LINE_SIZE = 4000000; // 4MB
13
+ const DEFAULT_TIMEOUT_MS = 30000;
14
+ function normalizeTcpConnectHost(rawHost) {
15
+ const host = String(rawHost ?? '').trim();
16
+ if (!host || host === 'localhost' || host === '0.0.0.0') {
17
+ return '127.0.0.1';
18
+ }
19
+ // Daemon IPC currently uses AF_INET only; avoid writing IPv6 hosts into client dial path.
20
+ if (host.includes(':')) {
21
+ return '127.0.0.1';
22
+ }
23
+ return host;
22
24
  }
25
+ // ============================================================
26
+ // Endpoint discovery
27
+ // ============================================================
23
28
  /**
24
- * Get socket path for CCCC daemon
29
+ * Get default CCCC home path
25
30
  */
26
- export function getSocketPath(ccccHome) {
27
- const home = ccccHome || getDefaultCcccHome();
28
- return path.join(home, 'daemon', 'ccccd.sock');
31
+ export function defaultHome() {
32
+ return process.env['CCCC_HOME'] || path.join(os.homedir(), '.cccc');
29
33
  }
30
34
  /**
31
- * Check if daemon socket exists
35
+ * Discover daemon endpoint
32
36
  */
33
- export function socketExists(ccccHome) {
34
- const sockPath = getSocketPath(ccccHome);
37
+ export async function discoverEndpoint(home) {
38
+ const ccccHome = home || defaultHome();
39
+ const addrPath = path.join(ccccHome, 'daemon', 'ccccd.addr.json');
35
40
  try {
36
- fs.accessSync(sockPath, fs.constants.F_OK);
37
- return true;
41
+ const content = await fs.readFile(addrPath, 'utf-8');
42
+ const descriptor = JSON.parse(content);
43
+ if (descriptor.v === 1) {
44
+ if (descriptor.transport === 'tcp' && descriptor.port) {
45
+ const port = Number(descriptor.port);
46
+ if (!Number.isInteger(port) || port <= 0) {
47
+ throw new Error(`invalid daemon tcp port: ${descriptor.port}`);
48
+ }
49
+ return {
50
+ transport: 'tcp',
51
+ host: normalizeTcpConnectHost(descriptor.host),
52
+ port,
53
+ path: '',
54
+ };
55
+ }
56
+ if (descriptor.transport === 'unix' && descriptor.path) {
57
+ return {
58
+ transport: 'unix',
59
+ path: descriptor.path,
60
+ host: '',
61
+ port: 0,
62
+ };
63
+ }
64
+ }
38
65
  }
39
66
  catch {
40
- return false;
67
+ // Ignore read errors and try fallback.
41
68
  }
69
+ // Fallback to Unix socket.
70
+ const sockPath = path.join(ccccHome, 'daemon', 'ccccd.sock');
71
+ return {
72
+ transport: 'unix',
73
+ path: sockPath,
74
+ host: '',
75
+ port: 0,
76
+ };
42
77
  }
78
+ // ============================================================
79
+ // Socket connection
80
+ // ============================================================
43
81
  /**
44
- * Send a request to the CCCC daemon and receive a response
82
+ * Create socket connection
45
83
  */
46
- export async function callDaemon(request, options = {}) {
47
- const { ccccHome, timeoutMs = DEFAULT_TIMEOUT_MS } = options;
48
- const sockPath = getSocketPath(ccccHome);
49
- // Check socket exists
50
- if (!socketExists(ccccHome)) {
51
- throw new CCCCError('SOCKET_NOT_FOUND', `Socket not found at ${sockPath}`);
52
- }
84
+ function connect(endpoint, timeoutMs) {
53
85
  return new Promise((resolve, reject) => {
54
- const socket = net.createConnection(sockPath);
55
- let buffer = '';
56
- let resolved = false;
86
+ const socket = new net.Socket();
87
+ socket.setTimeout(timeoutMs);
57
88
  const cleanup = () => {
58
89
  socket.removeAllListeners();
90
+ };
91
+ const onError = (err) => {
92
+ cleanup();
59
93
  socket.destroy();
94
+ reject(new DaemonUnavailableError(err.message));
60
95
  };
61
- const handleError = (error) => {
62
- if (resolved)
63
- return;
64
- resolved = true;
96
+ const onTimeout = () => {
65
97
  cleanup();
66
- if (error.code === 'ECONNREFUSED') {
67
- reject(new CCCCError('DAEMON_NOT_RUNNING', 'Daemon is not running'));
68
- }
69
- else if (error.code === 'ENOENT') {
70
- reject(new CCCCError('SOCKET_NOT_FOUND', `Socket not found at ${sockPath}`));
71
- }
72
- else {
73
- reject(new CCCCError('INTERNAL', error.message));
74
- }
98
+ socket.destroy();
99
+ reject(new DaemonUnavailableError('Connection timeout'));
75
100
  };
76
- // Set timeout
77
- const timeoutId = setTimeout(() => {
78
- if (resolved)
79
- return;
80
- resolved = true;
101
+ socket.once('error', onError);
102
+ socket.once('timeout', onTimeout);
103
+ const onConnect = () => {
81
104
  cleanup();
82
- reject(new CCCCError('TIMEOUT', `Request timed out after ${timeoutMs}ms`));
83
- }, timeoutMs);
84
- socket.on('connect', () => {
85
- // Send request as newline-delimited JSON
86
- const payload = JSON.stringify(request) + '\n';
87
- socket.write(payload, 'utf-8');
88
- });
105
+ resolve(socket);
106
+ };
107
+ if (endpoint.transport === 'tcp') {
108
+ socket.connect(endpoint.port, endpoint.host, onConnect);
109
+ }
110
+ else if (endpoint.transport === 'unix') {
111
+ socket.connect(endpoint.path, onConnect);
112
+ }
113
+ else {
114
+ reject(new DaemonUnavailableError(`Invalid endpoint transport: ${endpoint.transport}`));
115
+ }
116
+ });
117
+ }
118
+ // ============================================================
119
+ // IPC calls
120
+ // ============================================================
121
+ /**
122
+ * Send a single IPC request
123
+ */
124
+ export async function callDaemon(endpoint, request, timeoutMs = DEFAULT_TIMEOUT_MS) {
125
+ const socket = await connect(endpoint, timeoutMs);
126
+ return new Promise((resolve, reject) => {
127
+ let buffer = '';
128
+ let resolved = false;
129
+ const cleanup = () => {
130
+ socket.removeAllListeners();
131
+ };
89
132
  socket.on('data', (chunk) => {
90
133
  buffer += chunk.toString('utf-8');
91
- // Check size limit
92
- if (buffer.length > MAX_RESPONSE_SIZE) {
93
- if (resolved)
134
+ const newlineIndex = buffer.indexOf('\n');
135
+ if (newlineIndex !== -1 && !resolved) {
136
+ resolved = true;
137
+ const line = buffer.slice(0, newlineIndex);
138
+ cleanup();
139
+ socket.destroy();
140
+ if (line.length > MAX_LINE_SIZE) {
141
+ reject(new DaemonUnavailableError('Response too large'));
94
142
  return;
143
+ }
144
+ try {
145
+ resolve(JSON.parse(line));
146
+ }
147
+ catch {
148
+ reject(new DaemonUnavailableError('Invalid JSON response'));
149
+ }
150
+ }
151
+ });
152
+ socket.on('error', (err) => {
153
+ if (!resolved) {
154
+ resolved = true;
155
+ cleanup();
156
+ reject(new DaemonUnavailableError(err.message));
157
+ }
158
+ });
159
+ socket.on('close', () => {
160
+ if (!resolved) {
95
161
  resolved = true;
96
- clearTimeout(timeoutId);
97
162
  cleanup();
98
- reject(new CCCCError('INTERNAL', 'Response too large'));
99
- return;
163
+ reject(new DaemonUnavailableError('Connection closed unexpectedly'));
100
164
  }
101
- // Check for complete response (newline terminated)
165
+ });
166
+ // Send request.
167
+ const line = JSON.stringify(request) + '\n';
168
+ socket.write(line);
169
+ });
170
+ }
171
+ /**
172
+ * Open event stream connection
173
+ */
174
+ export async function openEventsStream(endpoint, request, timeoutMs = DEFAULT_TIMEOUT_MS) {
175
+ const socket = await connect(endpoint, timeoutMs);
176
+ // Send request.
177
+ const line = JSON.stringify(request) + '\n';
178
+ socket.write(line);
179
+ // Read handshake response.
180
+ const { handshake, remainingBuffer } = await new Promise((resolve, reject) => {
181
+ let buffer = '';
182
+ let resolved = false;
183
+ const cleanup = () => {
184
+ socket.removeAllListeners();
185
+ };
186
+ const onData = (chunk) => {
187
+ buffer += chunk.toString('utf-8');
102
188
  const newlineIndex = buffer.indexOf('\n');
103
- if (newlineIndex !== -1) {
104
- if (resolved)
105
- return;
189
+ if (newlineIndex !== -1 && !resolved) {
106
190
  resolved = true;
107
- clearTimeout(timeoutId);
108
191
  cleanup();
109
- const line = buffer.slice(0, newlineIndex);
192
+ const responseLine = buffer.slice(0, newlineIndex);
193
+ const remaining = buffer.slice(newlineIndex + 1);
110
194
  try {
111
- const response = JSON.parse(line);
112
- resolve(response);
195
+ resolve({
196
+ handshake: JSON.parse(responseLine),
197
+ remainingBuffer: remaining,
198
+ });
113
199
  }
114
200
  catch {
115
- reject(new CCCCError('INTERNAL', 'Invalid JSON response from daemon'));
201
+ socket.destroy();
202
+ reject(new DaemonUnavailableError('Invalid handshake JSON'));
116
203
  }
117
204
  }
205
+ };
206
+ socket.on('data', onData);
207
+ socket.once('error', (err) => {
208
+ if (!resolved) {
209
+ resolved = true;
210
+ cleanup();
211
+ reject(new DaemonUnavailableError(err.message));
212
+ }
118
213
  });
119
- socket.on('error', handleError);
120
- socket.on('close', () => {
121
- if (resolved)
122
- return;
123
- resolved = true;
124
- clearTimeout(timeoutId);
125
- cleanup();
126
- reject(new CCCCError('DAEMON_NOT_RUNNING', 'Connection closed unexpectedly'));
214
+ socket.once('close', () => {
215
+ if (!resolved) {
216
+ resolved = true;
217
+ cleanup();
218
+ reject(new DaemonUnavailableError('Connection closed during handshake'));
219
+ }
127
220
  });
128
221
  });
222
+ // Remove timeout after handshake.
223
+ socket.setTimeout(0);
224
+ return { socket, handshake, initialBuffer: remainingBuffer };
129
225
  }
130
226
  /**
131
- * Ping the daemon to check if it's running
227
+ * Create line reader from socket (async generator)
132
228
  */
133
- export async function pingDaemon(options = {}) {
134
- try {
135
- const response = await callDaemon({ v: 1, op: 'ping', args: {} }, options);
136
- return response.ok;
229
+ export async function* readLines(socket, initialBuffer = '') {
230
+ let buffer = initialBuffer;
231
+ // Handle lines from initial buffer.
232
+ let newlineIndex;
233
+ while ((newlineIndex = buffer.indexOf('\n')) !== -1) {
234
+ const line = buffer.slice(0, newlineIndex);
235
+ buffer = buffer.slice(newlineIndex + 1);
236
+ if (line.trim()) {
237
+ yield line;
238
+ }
137
239
  }
138
- catch {
139
- return false;
240
+ // Continue reading from socket.
241
+ for await (const chunk of socket) {
242
+ buffer += chunk.toString('utf-8');
243
+ while ((newlineIndex = buffer.indexOf('\n')) !== -1) {
244
+ const line = buffer.slice(0, newlineIndex);
245
+ buffer = buffer.slice(newlineIndex + 1);
246
+ if (line.trim()) {
247
+ yield line;
248
+ }
249
+ }
140
250
  }
141
251
  }
142
252
  //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}