@cleocode/contracts 2026.3.72 → 2026.3.73

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.
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Conduit Protocol — Agent-to-agent communication interface.
3
+ *
4
+ * SignalDock implements this interface. CleoOS consumes it.
5
+ * CLEO Core defines the contract in @cleocode/contracts.
6
+ *
7
+ * This is the canonical TypeScript interface for the Conduit Protocol
8
+ * described in CLEO-VISION.md and CLEOOS-VISION.md.
9
+ *
10
+ * @module conduit
11
+ */
12
+ /** A message received through the Conduit. */
13
+ export interface ConduitMessage {
14
+ /** Unique message ID. */
15
+ id: string;
16
+ /** Sender agent ID. */
17
+ from: string;
18
+ /** Message content (text). */
19
+ content: string;
20
+ /** Optional tags for message classification (e.g. #status, #decision). */
21
+ tags?: string[];
22
+ /** Thread ID for conversation threading. */
23
+ threadId?: string;
24
+ /** Group ID if sent to a group conversation. */
25
+ groupId?: string;
26
+ /** ISO 8601 timestamp. */
27
+ timestamp: string;
28
+ /** Optional structured metadata. */
29
+ metadata?: Record<string, unknown>;
30
+ }
31
+ /** Options for sending a message. */
32
+ export interface ConduitSendOptions {
33
+ /** Tags to attach to the message. */
34
+ tags?: string[];
35
+ /** Thread ID for threading. */
36
+ threadId?: string;
37
+ /** Group ID to send to a group. */
38
+ groupId?: string;
39
+ /** Arbitrary metadata. */
40
+ metadata?: Record<string, unknown>;
41
+ }
42
+ /** Result of sending a message. */
43
+ export interface ConduitSendResult {
44
+ /** The assigned message ID. */
45
+ messageId: string;
46
+ /** ISO 8601 timestamp of delivery. */
47
+ deliveredAt: string;
48
+ }
49
+ /** Unsubscribe function returned by event subscriptions. */
50
+ export type ConduitUnsubscribe = () => void;
51
+ /** Conduit connection states. */
52
+ export type ConduitState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'error';
53
+ /** Connection state change event. */
54
+ export interface ConduitStateChange {
55
+ /** Previous state. */
56
+ from: ConduitState;
57
+ /** New state. */
58
+ to: ConduitState;
59
+ /** ISO 8601 timestamp. */
60
+ timestamp: string;
61
+ /** Error details if state is 'error'. */
62
+ error?: string;
63
+ }
64
+ /**
65
+ * The Conduit Protocol interface.
66
+ *
67
+ * Implementations:
68
+ * - ClawMsgrPollingService (CleoOS Electron main process — polls cloud API)
69
+ * - LocalSignalDock (napi-rs binding — WebSocket to local SignalDock runtime)
70
+ * - ClawMsgrWorker (CLI polling script — clawmsgr-worker.py wrapper)
71
+ *
72
+ * Consumers:
73
+ * - CleoOS tRPC routers (wire into orchestration, session management)
74
+ * - @cleocode/core facade (sessions.serialize/restore, orchestration commands)
75
+ * - Agent spawners (deliver task assignments, collect results)
76
+ */
77
+ export interface Conduit {
78
+ /** Send a message to an agent or group. */
79
+ send(to: string, content: string, options?: ConduitSendOptions): Promise<ConduitSendResult>;
80
+ /** Subscribe to incoming messages. Returns unsubscribe function. */
81
+ onMessage(handler: (message: ConduitMessage) => void): ConduitUnsubscribe;
82
+ /** Send a heartbeat to indicate this agent is alive. */
83
+ heartbeat(): Promise<void>;
84
+ /** Check if a specific agent is currently online. */
85
+ isOnline(agentId: string): Promise<boolean>;
86
+ /** List currently online agents (optional — may not be supported by all implementations). */
87
+ listOnline?(): Promise<string[]>;
88
+ /** Connect to the messaging backend. */
89
+ connect(): Promise<void>;
90
+ /** Disconnect from the messaging backend. */
91
+ disconnect(): Promise<void>;
92
+ /** Get the current connection state. */
93
+ getState(): ConduitState;
94
+ /** Subscribe to connection state changes. */
95
+ onStateChange?(handler: (change: ConduitStateChange) => void): ConduitUnsubscribe;
96
+ /** The agent ID this conduit instance is connected as. */
97
+ readonly agentId: string;
98
+ }
99
+ /** Configuration for creating a Conduit instance. */
100
+ export interface ConduitConfig {
101
+ /** Agent ID to connect as. */
102
+ agentId: string;
103
+ /** API base URL (for cloud implementations). */
104
+ apiBaseUrl?: string;
105
+ /** API key for authentication. */
106
+ apiKey?: string;
107
+ /** Poll interval in milliseconds (for polling implementations). Default: 5000. */
108
+ pollIntervalMs?: number;
109
+ /** WebSocket URL (for local SignalDock implementations). */
110
+ wsUrl?: string;
111
+ }
112
+ //# sourceMappingURL=conduit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conduit.d.ts","sourceRoot":"","sources":["../src/conduit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAM5C,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;AAElG,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,iBAAiB;IACjB,EAAE,EAAE,YAAY,CAAC;IACjB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,OAAO;IAGtB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE5F,oEAAoE;IACpE,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,kBAAkB,CAAC;IAI1E,wDAAwD;IACxD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,6FAA6F;IAC7F,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAIjC,wCAAwC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,6CAA6C;IAC7C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,wCAAwC;IACxC,QAAQ,IAAI,YAAY,CAAC;IAEzB,6CAA6C;IAC7C,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAAG,kBAAkB,CAAC;IAIlF,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Conduit Protocol — Agent-to-agent communication interface.
3
+ *
4
+ * SignalDock implements this interface. CleoOS consumes it.
5
+ * CLEO Core defines the contract in @cleocode/contracts.
6
+ *
7
+ * This is the canonical TypeScript interface for the Conduit Protocol
8
+ * described in CLEO-VISION.md and CLEOOS-VISION.md.
9
+ *
10
+ * @module conduit
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=conduit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conduit.js","sourceRoot":"","sources":["../src/conduit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export type { AdapterHealthStatus, CLEOProviderAdapter } from './adapter.js';
9
9
  export type { ArchiveCycleTimesReport, ArchiveDailyTrend, ArchivedTask, ArchiveLabelEntry, ArchiveMetadata, ArchiveMonthlyTrend, ArchivePhaseEntry, ArchivePriorityEntry, ArchiveReportType, ArchiveStatsEnvelope, ArchiveSummaryReport, ArchiveTrendsReport, CycleTimeDistribution, CycleTimePercentiles, } from './archive.js';
10
10
  export type { BrainEntryRef, BrainEntrySummary, ContradictionDetail, SupersededEntry, } from './brain.js';
11
11
  export type { AdapterCapabilities } from './capabilities.js';
12
+ export type { Conduit, ConduitConfig, ConduitMessage, ConduitSendOptions, ConduitSendResult, ConduitState, ConduitStateChange, ConduitUnsubscribe, } from './conduit.js';
12
13
  export type { BackupConfig, BrainConfig, BrainEmbeddingConfig, BrainMemoryBridgeConfig, BrainSummarizationConfig, CleoConfig, ConfigSource, DateFormat, EnforcementProfile, HierarchyConfig, LifecycleConfig, LifecycleEnforcementMode, LoggingConfig, LogLevel, OutputConfig, OutputFormat, ResolvedValue, SessionConfig, SessionSummaryInput, SharingConfig, SharingMode, SignalDockConfig, SignalDockMode, } from './config.js';
13
14
  export type { AdapterContextMonitorProvider } from './context-monitor.js';
14
15
  export type { ArchiveFields, ArchiveFile, DataAccessor, QueryTasksResult, TaskFieldUpdates, TaskQueryFilters, TransactionAccessor, } from './data-accessor.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmEH,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,iBAAiB,CAAC;AA+BzB,gCAAgC;AAChC,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,uBAAuB,GACxB,MAAM,aAAa,CAAC;AA2BrB,8BAA8B;AAC9B,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AAUnB,8FAA8F;AAC9F,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAkC7C,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAa3C,uEAAuE;AACvE,OAAO,EACL,YAAY,EAIZ,aAAa,EAEb,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB;AAEjB,gBAAgB;AAChB,qBAAqB,EAErB,gBAAgB,EAEhB,kBAAkB,EAClB,eAAe,EAEf,yBAAyB,EACzB,2BAA2B;AAC3B,YAAY;AACZ,aAAa,EAGb,0BAA0B,EAC1B,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8EH,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,iBAAiB,CAAC;AA+BzB,gCAAgC;AAChC,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,uBAAuB,GACxB,MAAM,aAAa,CAAC;AA2BrB,8BAA8B;AAC9B,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AAUnB,8FAA8F;AAC9F,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAkC7C,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAa3C,uEAAuE;AACvE,OAAO,EACL,YAAY,EAIZ,aAAa,EAEb,aAAa,EACb,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB;AAEjB,gBAAgB;AAChB,qBAAqB,EAErB,gBAAgB,EAEhB,kBAAkB,EAClB,eAAe,EAEf,yBAAyB,EACzB,2BAA2B;AAC3B,YAAY;AACZ,aAAa,EAGb,0BAA0B,EAC1B,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/contracts",
3
- "version": "2026.3.72",
3
+ "version": "2026.3.73",
4
4
  "description": "Domain types, interfaces, and contracts for the CLEO ecosystem",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/conduit.ts ADDED
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Conduit Protocol — Agent-to-agent communication interface.
3
+ *
4
+ * SignalDock implements this interface. CleoOS consumes it.
5
+ * CLEO Core defines the contract in @cleocode/contracts.
6
+ *
7
+ * This is the canonical TypeScript interface for the Conduit Protocol
8
+ * described in CLEO-VISION.md and CLEOOS-VISION.md.
9
+ *
10
+ * @module conduit
11
+ */
12
+
13
+ // ============================================================================
14
+ // Message types
15
+ // ============================================================================
16
+
17
+ /** A message received through the Conduit. */
18
+ export interface ConduitMessage {
19
+ /** Unique message ID. */
20
+ id: string;
21
+ /** Sender agent ID. */
22
+ from: string;
23
+ /** Message content (text). */
24
+ content: string;
25
+ /** Optional tags for message classification (e.g. #status, #decision). */
26
+ tags?: string[];
27
+ /** Thread ID for conversation threading. */
28
+ threadId?: string;
29
+ /** Group ID if sent to a group conversation. */
30
+ groupId?: string;
31
+ /** ISO 8601 timestamp. */
32
+ timestamp: string;
33
+ /** Optional structured metadata. */
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+
37
+ /** Options for sending a message. */
38
+ export interface ConduitSendOptions {
39
+ /** Tags to attach to the message. */
40
+ tags?: string[];
41
+ /** Thread ID for threading. */
42
+ threadId?: string;
43
+ /** Group ID to send to a group. */
44
+ groupId?: string;
45
+ /** Arbitrary metadata. */
46
+ metadata?: Record<string, unknown>;
47
+ }
48
+
49
+ /** Result of sending a message. */
50
+ export interface ConduitSendResult {
51
+ /** The assigned message ID. */
52
+ messageId: string;
53
+ /** ISO 8601 timestamp of delivery. */
54
+ deliveredAt: string;
55
+ }
56
+
57
+ /** Unsubscribe function returned by event subscriptions. */
58
+ export type ConduitUnsubscribe = () => void;
59
+
60
+ // ============================================================================
61
+ // Connection state
62
+ // ============================================================================
63
+
64
+ /** Conduit connection states. */
65
+ export type ConduitState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'error';
66
+
67
+ /** Connection state change event. */
68
+ export interface ConduitStateChange {
69
+ /** Previous state. */
70
+ from: ConduitState;
71
+ /** New state. */
72
+ to: ConduitState;
73
+ /** ISO 8601 timestamp. */
74
+ timestamp: string;
75
+ /** Error details if state is 'error'. */
76
+ error?: string;
77
+ }
78
+
79
+ // ============================================================================
80
+ // Conduit interface
81
+ // ============================================================================
82
+
83
+ /**
84
+ * The Conduit Protocol interface.
85
+ *
86
+ * Implementations:
87
+ * - ClawMsgrPollingService (CleoOS Electron main process — polls cloud API)
88
+ * - LocalSignalDock (napi-rs binding — WebSocket to local SignalDock runtime)
89
+ * - ClawMsgrWorker (CLI polling script — clawmsgr-worker.py wrapper)
90
+ *
91
+ * Consumers:
92
+ * - CleoOS tRPC routers (wire into orchestration, session management)
93
+ * - @cleocode/core facade (sessions.serialize/restore, orchestration commands)
94
+ * - Agent spawners (deliver task assignments, collect results)
95
+ */
96
+ export interface Conduit {
97
+ // --- Messaging ---
98
+
99
+ /** Send a message to an agent or group. */
100
+ send(to: string, content: string, options?: ConduitSendOptions): Promise<ConduitSendResult>;
101
+
102
+ /** Subscribe to incoming messages. Returns unsubscribe function. */
103
+ onMessage(handler: (message: ConduitMessage) => void): ConduitUnsubscribe;
104
+
105
+ // --- Presence ---
106
+
107
+ /** Send a heartbeat to indicate this agent is alive. */
108
+ heartbeat(): Promise<void>;
109
+
110
+ /** Check if a specific agent is currently online. */
111
+ isOnline(agentId: string): Promise<boolean>;
112
+
113
+ /** List currently online agents (optional — may not be supported by all implementations). */
114
+ listOnline?(): Promise<string[]>;
115
+
116
+ // --- Connection lifecycle ---
117
+
118
+ /** Connect to the messaging backend. */
119
+ connect(): Promise<void>;
120
+
121
+ /** Disconnect from the messaging backend. */
122
+ disconnect(): Promise<void>;
123
+
124
+ /** Get the current connection state. */
125
+ getState(): ConduitState;
126
+
127
+ /** Subscribe to connection state changes. */
128
+ onStateChange?(handler: (change: ConduitStateChange) => void): ConduitUnsubscribe;
129
+
130
+ // --- Identity ---
131
+
132
+ /** The agent ID this conduit instance is connected as. */
133
+ readonly agentId: string;
134
+ }
135
+
136
+ // ============================================================================
137
+ // Factory
138
+ // ============================================================================
139
+
140
+ /** Configuration for creating a Conduit instance. */
141
+ export interface ConduitConfig {
142
+ /** Agent ID to connect as. */
143
+ agentId: string;
144
+ /** API base URL (for cloud implementations). */
145
+ apiBaseUrl?: string;
146
+ /** API key for authentication. */
147
+ apiKey?: string;
148
+ /** Poll interval in milliseconds (for polling implementations). Default: 5000. */
149
+ pollIntervalMs?: number;
150
+ /** WebSocket URL (for local SignalDock implementations). */
151
+ wsUrl?: string;
152
+ }
package/src/index.ts CHANGED
@@ -33,6 +33,17 @@ export type {
33
33
  SupersededEntry,
34
34
  } from './brain.js';
35
35
  export type { AdapterCapabilities } from './capabilities.js';
36
+ // === Conduit Protocol (agent-to-agent communication) ===
37
+ export type {
38
+ Conduit,
39
+ ConduitConfig,
40
+ ConduitMessage,
41
+ ConduitSendOptions,
42
+ ConduitSendResult,
43
+ ConduitState,
44
+ ConduitStateChange,
45
+ ConduitUnsubscribe,
46
+ } from './conduit.js';
36
47
  // === Configuration Types ===
37
48
  export type {
38
49
  BackupConfig,