@cleocode/contracts 2026.5.129 → 2026.5.131
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.
- package/dist/__tests__/atomic-tools-contract.test.d.ts +14 -0
- package/dist/__tests__/atomic-tools-contract.test.d.ts.map +1 -0
- package/dist/__tests__/atomic-tools-contract.test.js +55 -0
- package/dist/__tests__/atomic-tools-contract.test.js.map +1 -0
- package/dist/__tests__/gateway-contract.test.d.ts +18 -0
- package/dist/__tests__/gateway-contract.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-contract.test.js +187 -0
- package/dist/__tests__/gateway-contract.test.js.map +1 -0
- package/dist/__tests__/mvi.test.d.ts +17 -0
- package/dist/__tests__/mvi.test.d.ts.map +1 -0
- package/dist/__tests__/mvi.test.js +147 -0
- package/dist/__tests__/mvi.test.js.map +1 -0
- package/dist/__tests__/operation-def.test.js +1 -1
- package/dist/__tests__/operation-def.test.js.map +1 -1
- package/dist/boundary.d.ts +26 -0
- package/dist/boundary.d.ts.map +1 -1
- package/dist/boundary.js +42 -4
- package/dist/boundary.js.map +1 -1
- package/dist/branch-lock.d.ts +35 -1
- package/dist/branch-lock.d.ts.map +1 -1
- package/dist/branch-lock.js +23 -2
- package/dist/branch-lock.js.map +1 -1
- package/dist/daemon/__tests__/health-roundtrip.test.d.ts +13 -0
- package/dist/daemon/__tests__/health-roundtrip.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/health-roundtrip.test.js +69 -0
- package/dist/daemon/__tests__/health-roundtrip.test.js.map +1 -0
- package/dist/daemon/health.d.ts +108 -0
- package/dist/daemon/health.d.ts.map +1 -0
- package/dist/daemon/health.js +95 -0
- package/dist/daemon/health.js.map +1 -0
- package/dist/daemon/index.d.ts +24 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +22 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/subsystem.d.ts +121 -0
- package/dist/daemon/subsystem.d.ts.map +1 -0
- package/dist/daemon/subsystem.js +28 -0
- package/dist/daemon/subsystem.js.map +1 -0
- package/dist/daemon-ipc/__tests__/daemon-ipc-freeze.test.d.ts +15 -0
- package/dist/daemon-ipc/__tests__/daemon-ipc-freeze.test.d.ts.map +1 -0
- package/dist/daemon-ipc/__tests__/daemon-ipc-freeze.test.js +40 -0
- package/dist/daemon-ipc/__tests__/daemon-ipc-freeze.test.js.map +1 -0
- package/dist/daemon-ipc/index.d.ts +44 -0
- package/dist/daemon-ipc/index.d.ts.map +1 -0
- package/dist/daemon-ipc/index.js +43 -0
- package/dist/daemon-ipc/index.js.map +1 -0
- package/dist/db-inventory.json +8 -8
- package/dist/dispatch/identity.d.ts +1 -1
- package/dist/dispatch/identity.d.ts.map +1 -1
- package/dist/dispatch/identity.js +3 -0
- package/dist/dispatch/identity.js.map +1 -1
- package/dist/dispatch/operation-def.d.ts +16 -0
- package/dist/dispatch/operation-def.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.js +133 -0
- package/dist/dispatch/operations-registry.js.map +1 -1
- package/dist/exit-codes.d.ts +1 -1
- package/dist/exit-codes.js +1 -1
- package/dist/gateway/rpc/__tests__/freeze.test.d.ts +20 -0
- package/dist/gateway/rpc/__tests__/freeze.test.d.ts.map +1 -0
- package/dist/gateway/rpc/__tests__/freeze.test.js +122 -0
- package/dist/gateway/rpc/__tests__/freeze.test.js.map +1 -0
- package/dist/gateway/rpc/index.d.ts +23 -0
- package/dist/gateway/rpc/index.d.ts.map +1 -0
- package/dist/gateway/rpc/index.js +22 -0
- package/dist/gateway/rpc/index.js.map +1 -0
- package/dist/gateway/rpc/messages.d.ts +263 -0
- package/dist/gateway/rpc/messages.d.ts.map +1 -0
- package/dist/gateway/rpc/messages.js +152 -0
- package/dist/gateway/rpc/messages.js.map +1 -0
- package/dist/gateway/rpc/version.d.ts +39 -0
- package/dist/gateway/rpc/version.d.ts.map +1 -0
- package/dist/gateway/rpc/version.js +39 -0
- package/dist/gateway/rpc/version.js.map +1 -0
- package/dist/gateway.d.ts +239 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +171 -0
- package/dist/gateway.js.map +1 -0
- package/dist/goal.d.ts +314 -0
- package/dist/goal.d.ts.map +1 -0
- package/dist/goal.js +118 -0
- package/dist/goal.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/mvi.d.ts +209 -0
- package/dist/mvi.d.ts.map +1 -0
- package/dist/mvi.js +99 -0
- package/dist/mvi.js.map +1 -0
- package/dist/operations/attention.d.ts +114 -0
- package/dist/operations/attention.d.ts.map +1 -0
- package/dist/operations/attention.js +22 -0
- package/dist/operations/attention.js.map +1 -0
- package/dist/operations/docs.d.ts +7 -1
- package/dist/operations/docs.d.ts.map +1 -1
- package/dist/operations/docs.js.map +1 -1
- package/dist/operations/focus.d.ts +25 -0
- package/dist/operations/focus.d.ts.map +1 -1
- package/dist/operations/index.d.ts +1 -0
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +1 -0
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/session.d.ts +11 -0
- package/dist/operations/session.d.ts.map +1 -1
- package/dist/sdk-tool.d.ts +1 -1
- package/dist/sdk-tool.js +1 -1
- package/dist/supervisor-ipc/__tests__/freeze.test.d.ts +15 -0
- package/dist/supervisor-ipc/__tests__/freeze.test.d.ts.map +1 -0
- package/dist/supervisor-ipc/__tests__/freeze.test.js +159 -0
- package/dist/supervisor-ipc/__tests__/freeze.test.js.map +1 -0
- package/dist/supervisor-ipc/index.d.ts +15 -0
- package/dist/supervisor-ipc/index.d.ts.map +1 -0
- package/dist/supervisor-ipc/index.js +14 -0
- package/dist/supervisor-ipc/index.js.map +1 -0
- package/dist/supervisor-ipc/messages.d.ts +457 -0
- package/dist/supervisor-ipc/messages.d.ts.map +1 -0
- package/dist/supervisor-ipc/messages.js +312 -0
- package/dist/supervisor-ipc/messages.js.map +1 -0
- package/dist/supervisor-ipc/version.d.ts +29 -0
- package/dist/supervisor-ipc/version.d.ts.map +1 -0
- package/dist/supervisor-ipc/version.js +29 -0
- package/dist/supervisor-ipc/version.js.map +1 -0
- package/dist/tools/__tests__/composite.test.d.ts +14 -0
- package/dist/tools/__tests__/composite.test.d.ts.map +1 -0
- package/dist/tools/__tests__/composite.test.js +75 -0
- package/dist/tools/__tests__/composite.test.js.map +1 -0
- package/dist/tools/atomic.d.ts +195 -0
- package/dist/tools/atomic.d.ts.map +1 -0
- package/dist/tools/atomic.js +82 -0
- package/dist/tools/atomic.js.map +1 -0
- package/dist/tools/composite.d.ts +128 -0
- package/dist/tools/composite.d.ts.map +1 -0
- package/dist/tools/composite.js +88 -0
- package/dist/tools/composite.js.map +1 -0
- package/package.json +35 -3
- package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
- package/src/__tests__/atomic-tools-contract.test.ts +67 -0
- package/src/__tests__/gateway-contract.test.ts +219 -0
- package/src/__tests__/mvi.test.ts +175 -0
- package/src/__tests__/operation-def.test.ts +2 -1
- package/src/boundary.ts +74 -4
- package/src/branch-lock.ts +49 -2
- package/src/daemon/__tests__/health-roundtrip.test.ts +84 -0
- package/src/daemon/health.ts +121 -0
- package/src/daemon/index.ts +35 -0
- package/src/daemon/subsystem.ts +126 -0
- package/src/daemon-ipc/__tests__/daemon-ipc-freeze.test.ts +53 -0
- package/src/daemon-ipc/index.ts +90 -0
- package/src/db-inventory.json +8 -8
- package/src/dispatch/identity.ts +3 -0
- package/src/dispatch/operation-def.ts +16 -0
- package/src/dispatch/operations-registry.ts +140 -0
- package/src/exit-codes.ts +1 -1
- package/src/gateway/rpc/__tests__/freeze.test.ts +139 -0
- package/src/gateway/rpc/index.ts +43 -0
- package/src/gateway/rpc/messages.ts +187 -0
- package/src/gateway/rpc/version.ts +40 -0
- package/src/gateway.ts +252 -0
- package/src/goal.ts +348 -0
- package/src/index.ts +109 -0
- package/src/mvi.ts +236 -0
- package/src/operations/attention.ts +117 -0
- package/src/operations/docs.ts +7 -1
- package/src/operations/focus.ts +26 -0
- package/src/operations/index.ts +1 -0
- package/src/operations/session.ts +11 -0
- package/src/sdk-tool.ts +1 -1
- package/src/supervisor-ipc/__tests__/freeze.test.ts +180 -0
- package/src/supervisor-ipc/index.ts +62 -0
- package/src/supervisor-ipc/messages.ts +396 -0
- package/src/supervisor-ipc/version.ts +30 -0
- package/src/tools/__tests__/composite.test.ts +88 -0
- package/src/tools/atomic.ts +274 -0
- package/src/tools/composite.ts +173 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `supervisor-ipc` v1.0 — FROZEN message contract (Zod schemas).
|
|
3
|
+
*
|
|
4
|
+
* This is the byte-for-byte TypeScript mirror of the Rust serde types in
|
|
5
|
+
* `crates/cleo-supervisor/src/ipc.rs`. The wire format is newline-delimited
|
|
6
|
+
* JSON (NDJSON): one {@link SupervisorIpcEnvelope} per line. The supervisor
|
|
7
|
+
* (Rust) is the server; CLEO/Studio (TypeScript) are clients that send
|
|
8
|
+
* {@link SupervisorIpcRequest}s and receive {@link SupervisorIpcResponse}s and
|
|
9
|
+
* unsolicited {@link LifecycleEvent}s.
|
|
10
|
+
*
|
|
11
|
+
* Wire-shape contract (snake_case keys — matches serde defaults):
|
|
12
|
+
*
|
|
13
|
+
* ```jsonc
|
|
14
|
+
* // request
|
|
15
|
+
* { "protocol_version": "1.0.0", "id": "abc", "direction": "request",
|
|
16
|
+
* "request": { "kind": "spawn", "child_id": "w1", "program": "/bin/node",
|
|
17
|
+
* "args": [], "env": [] } }
|
|
18
|
+
* // response
|
|
19
|
+
* { "protocol_version": "1.0.0", "id": "abc", "direction": "response",
|
|
20
|
+
* "response": { "kind": "spawned", "child_id": "w1", "pid": 4242 } }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* FROZEN v1.0: R2 (T11253) consumes this exact set. Do not add/rename/remove
|
|
24
|
+
* fields in place — see {@link SUPERVISOR_IPC_PROTOCOL_VERSION}.
|
|
25
|
+
*
|
|
26
|
+
* @task T11339
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import { z } from 'zod';
|
|
30
|
+
// ─── Shared value types ───────────────────────────────────────────────────────
|
|
31
|
+
/**
|
|
32
|
+
* A single environment key/value override applied to a spawned child, layered
|
|
33
|
+
* on top of the supervisor's own environment. Mirrors `EnvPair` in Rust.
|
|
34
|
+
*/
|
|
35
|
+
export const EnvPairSchema = z
|
|
36
|
+
.object({
|
|
37
|
+
/** Environment variable name. */
|
|
38
|
+
key: z.string().min(1),
|
|
39
|
+
/** Environment variable value. */
|
|
40
|
+
value: z.string(),
|
|
41
|
+
})
|
|
42
|
+
.strict();
|
|
43
|
+
/**
|
|
44
|
+
* Liveness state of a supervised child. Mirrors `ChildState` in Rust.
|
|
45
|
+
*
|
|
46
|
+
* - `running` — the child process is alive.
|
|
47
|
+
* - `restarting` — the child exited and a backoff-delayed restart is pending.
|
|
48
|
+
* - `stopped` — the child exited and will not be restarted.
|
|
49
|
+
*/
|
|
50
|
+
export const ChildStateSchema = z.enum(['running', 'restarting', 'stopped']);
|
|
51
|
+
/**
|
|
52
|
+
* A single child's status row in a monitor snapshot. Mirrors `ChildStatus`.
|
|
53
|
+
*/
|
|
54
|
+
export const ChildStatusSchema = z
|
|
55
|
+
.object({
|
|
56
|
+
/** Logical id of the child (stable across restarts). */
|
|
57
|
+
child_id: z.string().min(1),
|
|
58
|
+
/** Current OS pid (0 when not currently running). */
|
|
59
|
+
pid: z.number().int().nonnegative(),
|
|
60
|
+
/** Current liveness state. */
|
|
61
|
+
state: ChildStateSchema,
|
|
62
|
+
/** Total restarts observed for this child. */
|
|
63
|
+
restart_count: z.number().int().nonnegative(),
|
|
64
|
+
})
|
|
65
|
+
.strict();
|
|
66
|
+
// ─── Requests (client → supervisor) ───────────────────────────────────────────
|
|
67
|
+
/**
|
|
68
|
+
* Ask the supervisor to spawn a new child worker. Mirrors `SpawnRequest`.
|
|
69
|
+
*/
|
|
70
|
+
export const SpawnRequestSchema = z
|
|
71
|
+
.object({
|
|
72
|
+
/** Tag discriminating this request variant. */
|
|
73
|
+
kind: z.literal('spawn'),
|
|
74
|
+
/** Caller-chosen logical id for the child (stable across restarts). */
|
|
75
|
+
child_id: z.string().min(1),
|
|
76
|
+
/** Absolute path to the program to execute. */
|
|
77
|
+
program: z.string().min(1),
|
|
78
|
+
/** Arguments passed to the program. */
|
|
79
|
+
args: z.array(z.string()).default([]),
|
|
80
|
+
/** Environment overrides applied on top of the supervisor's environment. */
|
|
81
|
+
env: z.array(EnvPairSchema).default([]),
|
|
82
|
+
/** Optional working directory for the child. */
|
|
83
|
+
cwd: z.string().optional(),
|
|
84
|
+
})
|
|
85
|
+
.strict();
|
|
86
|
+
/**
|
|
87
|
+
* Ask the supervisor to restart an existing child by id. Mirrors `RestartRequest`.
|
|
88
|
+
*/
|
|
89
|
+
export const RestartRequestSchema = z
|
|
90
|
+
.object({
|
|
91
|
+
/** Tag discriminating this request variant. */
|
|
92
|
+
kind: z.literal('restart'),
|
|
93
|
+
/** Logical id of the child to restart. */
|
|
94
|
+
child_id: z.string().min(1),
|
|
95
|
+
})
|
|
96
|
+
.strict();
|
|
97
|
+
/**
|
|
98
|
+
* Ask the supervisor for the status of one or all children. Mirrors `MonitorRequest`.
|
|
99
|
+
*/
|
|
100
|
+
export const MonitorRequestSchema = z
|
|
101
|
+
.object({
|
|
102
|
+
/** Tag discriminating this request variant. */
|
|
103
|
+
kind: z.literal('monitor'),
|
|
104
|
+
/** Specific child id to monitor; omit to request all children. */
|
|
105
|
+
child_id: z.string().optional(),
|
|
106
|
+
})
|
|
107
|
+
.strict();
|
|
108
|
+
/**
|
|
109
|
+
* Ask the supervisor for its own health. Mirrors `HealthRequest` (no fields
|
|
110
|
+
* beyond the discriminator).
|
|
111
|
+
*/
|
|
112
|
+
export const HealthRequestSchema = z
|
|
113
|
+
.object({
|
|
114
|
+
/** Tag discriminating this request variant. */
|
|
115
|
+
kind: z.literal('health'),
|
|
116
|
+
})
|
|
117
|
+
.strict();
|
|
118
|
+
/**
|
|
119
|
+
* The discriminated union of all client → supervisor requests. The `kind`
|
|
120
|
+
* field selects the variant, matching the serde `#[serde(tag = "kind")]`
|
|
121
|
+
* tagging on the Rust `IpcRequest` enum.
|
|
122
|
+
*/
|
|
123
|
+
export const SupervisorIpcRequestSchema = z.discriminatedUnion('kind', [
|
|
124
|
+
SpawnRequestSchema,
|
|
125
|
+
RestartRequestSchema,
|
|
126
|
+
MonitorRequestSchema,
|
|
127
|
+
HealthRequestSchema,
|
|
128
|
+
]);
|
|
129
|
+
// ─── Responses (supervisor → client) ──────────────────────────────────────────
|
|
130
|
+
/**
|
|
131
|
+
* Result of a {@link SpawnRequest}. Mirrors `SpawnResult` carried by the
|
|
132
|
+
* `spawned` response variant.
|
|
133
|
+
*/
|
|
134
|
+
export const SpawnedResponseSchema = z
|
|
135
|
+
.object({
|
|
136
|
+
/** Tag discriminating this response variant. */
|
|
137
|
+
kind: z.literal('spawned'),
|
|
138
|
+
/** Logical id of the spawned child. */
|
|
139
|
+
child_id: z.string().min(1),
|
|
140
|
+
/** OS pid assigned to the spawned child. */
|
|
141
|
+
pid: z.number().int().nonnegative(),
|
|
142
|
+
})
|
|
143
|
+
.strict();
|
|
144
|
+
/**
|
|
145
|
+
* Result of a {@link RestartRequest}. Mirrors `RestartResult`.
|
|
146
|
+
*/
|
|
147
|
+
export const RestartedResponseSchema = z
|
|
148
|
+
.object({
|
|
149
|
+
/** Tag discriminating this response variant. */
|
|
150
|
+
kind: z.literal('restarted'),
|
|
151
|
+
/** Logical id of the restarted child. */
|
|
152
|
+
child_id: z.string().min(1),
|
|
153
|
+
/** New OS pid after the restart. */
|
|
154
|
+
pid: z.number().int().nonnegative(),
|
|
155
|
+
/** Number of times this child has been restarted in total. */
|
|
156
|
+
restart_count: z.number().int().nonnegative(),
|
|
157
|
+
})
|
|
158
|
+
.strict();
|
|
159
|
+
/**
|
|
160
|
+
* A monitor snapshot for one or more children. Mirrors `MonitorResult`.
|
|
161
|
+
*/
|
|
162
|
+
export const MonitorResponseSchema = z
|
|
163
|
+
.object({
|
|
164
|
+
/** Tag discriminating this response variant. */
|
|
165
|
+
kind: z.literal('monitor'),
|
|
166
|
+
/** One row per monitored child. */
|
|
167
|
+
children: z.array(ChildStatusSchema),
|
|
168
|
+
})
|
|
169
|
+
.strict();
|
|
170
|
+
/**
|
|
171
|
+
* A health snapshot for the supervisor itself. Mirrors `HealthResult`.
|
|
172
|
+
*/
|
|
173
|
+
export const HealthResponseSchema = z
|
|
174
|
+
.object({
|
|
175
|
+
/** Tag discriminating this response variant. */
|
|
176
|
+
kind: z.literal('health'),
|
|
177
|
+
/** Supervisor process pid. */
|
|
178
|
+
pid: z.number().int().nonnegative(),
|
|
179
|
+
/** Number of children currently tracked. */
|
|
180
|
+
child_count: z.number().int().nonnegative(),
|
|
181
|
+
/** Seconds the supervisor has been running. */
|
|
182
|
+
uptime_secs: z.number().int().nonnegative(),
|
|
183
|
+
/** Frozen protocol version the supervisor speaks. */
|
|
184
|
+
protocol_version: z.string(),
|
|
185
|
+
})
|
|
186
|
+
.strict();
|
|
187
|
+
/**
|
|
188
|
+
* Lifecycle event kind. Mirrors `LifecycleEventKind`.
|
|
189
|
+
*
|
|
190
|
+
* - `child_exited` — a child process exited.
|
|
191
|
+
* - `child_restarted` — a child was restarted after a crash.
|
|
192
|
+
*/
|
|
193
|
+
export const LifecycleEventKindSchema = z.enum(['child_exited', 'child_restarted']);
|
|
194
|
+
/**
|
|
195
|
+
* An unsolicited lifecycle event broadcast to all connected clients. Mirrors
|
|
196
|
+
* the `event` response variant wrapping `LifecycleEvent`.
|
|
197
|
+
*/
|
|
198
|
+
export const LifecycleEventResponseSchema = z
|
|
199
|
+
.object({
|
|
200
|
+
/** Tag discriminating this response variant. */
|
|
201
|
+
kind: z.literal('event'),
|
|
202
|
+
/** What happened. */
|
|
203
|
+
event: LifecycleEventKindSchema,
|
|
204
|
+
/** Logical id of the affected child. */
|
|
205
|
+
child_id: z.string().min(1),
|
|
206
|
+
/** Exit code, when the OS reported one. */
|
|
207
|
+
exit_code: z.number().int().optional(),
|
|
208
|
+
/** Terminating signal name, when the child was signalled (Unix). */
|
|
209
|
+
signal: z.string().optional(),
|
|
210
|
+
/** Backoff delay (ms) before the pending restart, when applicable. */
|
|
211
|
+
restart_delay_ms: z.number().int().nonnegative().optional(),
|
|
212
|
+
})
|
|
213
|
+
.strict();
|
|
214
|
+
/**
|
|
215
|
+
* An error response correlated to a request. Mirrors `ErrorResult`.
|
|
216
|
+
*/
|
|
217
|
+
export const ErrorResponseSchema = z
|
|
218
|
+
.object({
|
|
219
|
+
/** Tag discriminating this response variant. */
|
|
220
|
+
kind: z.literal('error'),
|
|
221
|
+
/** Machine-readable error code (e.g. `E_UNKNOWN_CHILD`). */
|
|
222
|
+
code: z.string().min(1),
|
|
223
|
+
/** Human-readable error message. */
|
|
224
|
+
message: z.string(),
|
|
225
|
+
})
|
|
226
|
+
.strict();
|
|
227
|
+
/**
|
|
228
|
+
* The discriminated union of all supervisor → client responses and events. The
|
|
229
|
+
* `kind` field selects the variant, matching the serde `#[serde(tag = "kind")]`
|
|
230
|
+
* tagging on the Rust `IpcResponse` enum.
|
|
231
|
+
*/
|
|
232
|
+
export const SupervisorIpcResponseSchema = z.discriminatedUnion('kind', [
|
|
233
|
+
SpawnedResponseSchema,
|
|
234
|
+
RestartedResponseSchema,
|
|
235
|
+
MonitorResponseSchema,
|
|
236
|
+
HealthResponseSchema,
|
|
237
|
+
LifecycleEventResponseSchema,
|
|
238
|
+
ErrorResponseSchema,
|
|
239
|
+
]);
|
|
240
|
+
// ─── Envelope ──────────────────────────────────────────────────────────────────
|
|
241
|
+
/**
|
|
242
|
+
* A client → supervisor request envelope.
|
|
243
|
+
*
|
|
244
|
+
* The `direction` discriminator + flattened `request` payload mirror the serde
|
|
245
|
+
* `#[serde(tag = "direction")]` `IpcPayload::Request { request }` variant.
|
|
246
|
+
*/
|
|
247
|
+
export const SupervisorIpcRequestEnvelopeSchema = z
|
|
248
|
+
.object({
|
|
249
|
+
/** Frozen protocol version. */
|
|
250
|
+
protocol_version: z.string(),
|
|
251
|
+
/** Correlation id echoed back on the matching response. */
|
|
252
|
+
id: z.string().min(1),
|
|
253
|
+
/** Direction discriminator. */
|
|
254
|
+
direction: z.literal('request'),
|
|
255
|
+
/** The request body. */
|
|
256
|
+
request: SupervisorIpcRequestSchema,
|
|
257
|
+
})
|
|
258
|
+
.strict();
|
|
259
|
+
/**
|
|
260
|
+
* A supervisor → client response/event envelope.
|
|
261
|
+
*
|
|
262
|
+
* The `direction` discriminator + flattened `response` payload mirror the serde
|
|
263
|
+
* `IpcPayload::Response { response }` variant.
|
|
264
|
+
*/
|
|
265
|
+
export const SupervisorIpcResponseEnvelopeSchema = z
|
|
266
|
+
.object({
|
|
267
|
+
/** Frozen protocol version. */
|
|
268
|
+
protocol_version: z.string(),
|
|
269
|
+
/** Correlation id echoed from the originating request (or a fresh id for events). */
|
|
270
|
+
id: z.string().min(1),
|
|
271
|
+
/** Direction discriminator. */
|
|
272
|
+
direction: z.literal('response'),
|
|
273
|
+
/** The response body. */
|
|
274
|
+
response: SupervisorIpcResponseSchema,
|
|
275
|
+
})
|
|
276
|
+
.strict();
|
|
277
|
+
/**
|
|
278
|
+
* The top-level IPC envelope: a versioned, correlated wrapper that is either a
|
|
279
|
+
* request or a response, discriminated by `direction`. One envelope per NDJSON
|
|
280
|
+
* line. Mirrors the Rust `IpcEnvelope`.
|
|
281
|
+
*/
|
|
282
|
+
export const SupervisorIpcEnvelopeSchema = z.discriminatedUnion('direction', [
|
|
283
|
+
SupervisorIpcRequestEnvelopeSchema,
|
|
284
|
+
SupervisorIpcResponseEnvelopeSchema,
|
|
285
|
+
]);
|
|
286
|
+
// ─── Frozen message-set guard ──────────────────────────────────────────────────
|
|
287
|
+
/**
|
|
288
|
+
* The FROZEN v1.0 request `kind` values. The schema-drift guard test pins this
|
|
289
|
+
* tuple; any addition/removal is a contract-breaking change.
|
|
290
|
+
*/
|
|
291
|
+
export const SUPERVISOR_IPC_REQUEST_KINDS = ['spawn', 'restart', 'monitor', 'health'];
|
|
292
|
+
/**
|
|
293
|
+
* The FROZEN v1.0 response `kind` values. The schema-drift guard test pins this
|
|
294
|
+
* tuple; any addition/removal is a contract-breaking change.
|
|
295
|
+
*/
|
|
296
|
+
export const SUPERVISOR_IPC_RESPONSE_KINDS = [
|
|
297
|
+
'spawned',
|
|
298
|
+
'restarted',
|
|
299
|
+
'monitor',
|
|
300
|
+
'health',
|
|
301
|
+
'event',
|
|
302
|
+
'error',
|
|
303
|
+
];
|
|
304
|
+
/**
|
|
305
|
+
* The complete FROZEN v1.0 message kind set (requests + responses), used by the
|
|
306
|
+
* drift guard on both the TS and Rust sides.
|
|
307
|
+
*/
|
|
308
|
+
export const SUPERVISOR_IPC_MESSAGE_KINDS = [
|
|
309
|
+
...SUPERVISOR_IPC_REQUEST_KINDS,
|
|
310
|
+
...SUPERVISOR_IPC_RESPONSE_KINDS,
|
|
311
|
+
];
|
|
312
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/supervisor-ipc/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FROZEN protocol version for the `supervisor-ipc` v1.0 contract.
|
|
3
|
+
*
|
|
4
|
+
* The Rust supervisor (`crates/cleo-supervisor/src/ipc.rs`) and this TypeScript
|
|
5
|
+
* contract MUST agree on this value. R2 (T11253) consumes the v1.0 message set
|
|
6
|
+
* without churn, so the version is **frozen**: bump only via a new major
|
|
7
|
+
* contract revision in a new directory, never edit this value in place.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link SUPERVISOR_IPC_MESSAGE_KINDS} for the frozen v1.0 message set.
|
|
10
|
+
* @task T11339
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* The frozen `supervisor-ipc` protocol version string.
|
|
15
|
+
*
|
|
16
|
+
* Mirrors `cleo_supervisor::ipc::IPC_PROTOCOL_VERSION` on the Rust side. Both a
|
|
17
|
+
* Rust schema-drift guard (`crates/cleo-supervisor` `ipc::tests`) and the TS
|
|
18
|
+
* drift test (`__tests__/freeze.test.ts`) pin this exact value.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SUPERVISOR_IPC_PROTOCOL_VERSION: "1.0.0";
|
|
21
|
+
/**
|
|
22
|
+
* Default base name for the IPC channel.
|
|
23
|
+
*
|
|
24
|
+
* Unix sockets are created under the CLEO home as `<basename>.sock`; Windows
|
|
25
|
+
* named pipes use `\\.\pipe\<basename>.<pid>`. Mirrors
|
|
26
|
+
* `cleo_supervisor::ipc::IPC_CHANNEL_BASENAME`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const SUPERVISOR_IPC_CHANNEL_BASENAME: "cleo-supervisor";
|
|
29
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/supervisor-ipc/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,EAAG,OAAgB,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,EAAG,iBAA0B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FROZEN protocol version for the `supervisor-ipc` v1.0 contract.
|
|
3
|
+
*
|
|
4
|
+
* The Rust supervisor (`crates/cleo-supervisor/src/ipc.rs`) and this TypeScript
|
|
5
|
+
* contract MUST agree on this value. R2 (T11253) consumes the v1.0 message set
|
|
6
|
+
* without churn, so the version is **frozen**: bump only via a new major
|
|
7
|
+
* contract revision in a new directory, never edit this value in place.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link SUPERVISOR_IPC_MESSAGE_KINDS} for the frozen v1.0 message set.
|
|
10
|
+
* @task T11339
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* The frozen `supervisor-ipc` protocol version string.
|
|
15
|
+
*
|
|
16
|
+
* Mirrors `cleo_supervisor::ipc::IPC_PROTOCOL_VERSION` on the Rust side. Both a
|
|
17
|
+
* Rust schema-drift guard (`crates/cleo-supervisor` `ipc::tests`) and the TS
|
|
18
|
+
* drift test (`__tests__/freeze.test.ts`) pin this exact value.
|
|
19
|
+
*/
|
|
20
|
+
export const SUPERVISOR_IPC_PROTOCOL_VERSION = '1.0.0';
|
|
21
|
+
/**
|
|
22
|
+
* Default base name for the IPC channel.
|
|
23
|
+
*
|
|
24
|
+
* Unix sockets are created under the CLEO home as `<basename>.sock`; Windows
|
|
25
|
+
* named pipes use `\\.\pipe\<basename>.<pid>`. Mirrors
|
|
26
|
+
* `cleo_supervisor::ipc::IPC_CHANNEL_BASENAME`.
|
|
27
|
+
*/
|
|
28
|
+
export const SUPERVISOR_IPC_CHANNEL_BASENAME = 'cleo-supervisor';
|
|
29
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/supervisor-ipc/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAgB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAA0B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract-shape tests for the composite meta-tool contracts (T11484).
|
|
3
|
+
*
|
|
4
|
+
* The RUNTIME for `module-relocation` / `add-workspace-package` is deferred to
|
|
5
|
+
* epic T11456 (the TOOLS canonical structure that supplies their correct home,
|
|
6
|
+
* category enum, descriptor schema, and registry — see composite.ts header).
|
|
7
|
+
* These tests lock the CONTRACT surface that ships now: the breakage-class and
|
|
8
|
+
* wiring-point SoT arrays, and that the input/result shapes are constructible.
|
|
9
|
+
*
|
|
10
|
+
* @epic T11480
|
|
11
|
+
* @task T11484
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=composite.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/composite.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract-shape tests for the composite meta-tool contracts (T11484).
|
|
3
|
+
*
|
|
4
|
+
* The RUNTIME for `module-relocation` / `add-workspace-package` is deferred to
|
|
5
|
+
* epic T11456 (the TOOLS canonical structure that supplies their correct home,
|
|
6
|
+
* category enum, descriptor schema, and registry — see composite.ts header).
|
|
7
|
+
* These tests lock the CONTRACT surface that ships now: the breakage-class and
|
|
8
|
+
* wiring-point SoT arrays, and that the input/result shapes are constructible.
|
|
9
|
+
*
|
|
10
|
+
* @epic T11480
|
|
11
|
+
* @task T11484
|
|
12
|
+
*/
|
|
13
|
+
import { describe, expect, expectTypeOf, it } from 'vitest';
|
|
14
|
+
import { ADD_WORKSPACE_PACKAGE_WIRING_POINTS, MODULE_RELOCATION_BREAKAGE_CLASSES, } from '../composite.js';
|
|
15
|
+
describe('module-relocation contract (DHQ-032)', () => {
|
|
16
|
+
it('enumerates exactly the seven breakage classes', () => {
|
|
17
|
+
expect([...MODULE_RELOCATION_BREAKAGE_CLASSES]).toEqual([
|
|
18
|
+
'relative-import-depth',
|
|
19
|
+
'barrels',
|
|
20
|
+
'js-form-and-dynamic-import',
|
|
21
|
+
'mirror-test-dirs',
|
|
22
|
+
'deprecations-yml',
|
|
23
|
+
'doc-comments',
|
|
24
|
+
'cross-package-importers',
|
|
25
|
+
]);
|
|
26
|
+
expect(new Set(MODULE_RELOCATION_BREAKAGE_CLASSES).size).toBe(7);
|
|
27
|
+
});
|
|
28
|
+
it('has a constructible input + result shape', () => {
|
|
29
|
+
const input = {
|
|
30
|
+
fromPath: 'packages/core/src/a.ts',
|
|
31
|
+
toPath: 'packages/core/src/sub/a.ts',
|
|
32
|
+
repoRoot: '/repo',
|
|
33
|
+
};
|
|
34
|
+
expect(input.fromPath).toBe('packages/core/src/a.ts');
|
|
35
|
+
const result = {
|
|
36
|
+
toPath: input.toPath,
|
|
37
|
+
shimLeft: false,
|
|
38
|
+
dryRun: true,
|
|
39
|
+
classes: [{ class: 'barrels', files: ['packages/core/src/index.ts'], edits: 1 }],
|
|
40
|
+
filesTouched: ['packages/core/src/index.ts'],
|
|
41
|
+
};
|
|
42
|
+
expect(result.classes[0]?.class).toBe('barrels');
|
|
43
|
+
expectTypeOf(result.classes).items.toHaveProperty('class');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('add-workspace-package contract (DHQ-027)', () => {
|
|
47
|
+
it('enumerates exactly the six wiring points', () => {
|
|
48
|
+
expect([...ADD_WORKSPACE_PACKAGE_WIRING_POINTS]).toEqual([
|
|
49
|
+
'deps',
|
|
50
|
+
'tsconfig-refs',
|
|
51
|
+
'build-mjs-buildpkg',
|
|
52
|
+
'inline-maps',
|
|
53
|
+
'boundary-entry',
|
|
54
|
+
'private-no-readme',
|
|
55
|
+
]);
|
|
56
|
+
expect(new Set(ADD_WORKSPACE_PACKAGE_WIRING_POINTS).size).toBe(6);
|
|
57
|
+
});
|
|
58
|
+
it('has a constructible input + result shape', () => {
|
|
59
|
+
const input = {
|
|
60
|
+
packageName: '@cleocode/foo',
|
|
61
|
+
repoRoot: '/repo',
|
|
62
|
+
consumers: ['@cleocode/core'],
|
|
63
|
+
};
|
|
64
|
+
expect(input.packageName).toBe('@cleocode/foo');
|
|
65
|
+
const result = {
|
|
66
|
+
packageName: input.packageName,
|
|
67
|
+
packageDir: 'packages/foo',
|
|
68
|
+
dryRun: true,
|
|
69
|
+
points: [{ point: 'deps', files: ['packages/core/package.json'] }],
|
|
70
|
+
};
|
|
71
|
+
expect(result.points[0]?.point).toBe('deps');
|
|
72
|
+
expectTypeOf(result.points).items.toHaveProperty('point');
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=composite.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/composite.test.ts"],"names":[],"mappings":"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"}
|