@spinabot/brigade 1.13.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/convex/logs.d.ts +9 -9
- package/convex/memory.d.ts +21 -21
- package/convex/schema.d.ts +11 -11
- package/convex/skills.d.ts +3 -3
- package/dist/buildstamp.json +1 -1
- package/dist/cli/commands/config-cmd.d.ts +12 -19
- package/dist/cli/commands/config-cmd.d.ts.map +1 -1
- package/dist/cli/commands/config-cmd.js +14 -197
- package/dist/cli/commands/config-cmd.js.map +1 -1
- package/dist/cli/commands/connect-transcript.d.ts +39 -0
- package/dist/cli/commands/connect-transcript.d.ts.map +1 -0
- package/dist/cli/commands/connect-transcript.js +60 -0
- package/dist/cli/commands/connect-transcript.js.map +1 -0
- package/dist/cli/commands/connect.d.ts.map +1 -1
- package/dist/cli/commands/connect.js +297 -169
- package/dist/cli/commands/connect.js.map +1 -1
- package/dist/core/agents-crud-ops.d.ts +15 -0
- package/dist/core/agents-crud-ops.d.ts.map +1 -0
- package/dist/core/agents-crud-ops.js +27 -0
- package/dist/core/agents-crud-ops.js.map +1 -0
- package/dist/core/agents-ops.d.ts +43 -0
- package/dist/core/agents-ops.d.ts.map +1 -0
- package/dist/core/agents-ops.js +117 -0
- package/dist/core/agents-ops.js.map +1 -0
- package/dist/core/channels-ops.d.ts +30 -0
- package/dist/core/channels-ops.d.ts.map +1 -0
- package/dist/core/channels-ops.js +52 -0
- package/dist/core/channels-ops.js.map +1 -0
- package/dist/core/config-ops.d.ts +77 -0
- package/dist/core/config-ops.d.ts.map +1 -0
- package/dist/core/config-ops.js +241 -0
- package/dist/core/config-ops.js.map +1 -0
- package/dist/core/exec-ops.d.ts +48 -0
- package/dist/core/exec-ops.d.ts.map +1 -0
- package/dist/core/exec-ops.js +101 -0
- package/dist/core/exec-ops.js.map +1 -0
- package/dist/core/integrations-ops.d.ts +25 -0
- package/dist/core/integrations-ops.d.ts.map +1 -0
- package/dist/core/integrations-ops.js +40 -0
- package/dist/core/integrations-ops.js.map +1 -0
- package/dist/core/memory-ops.d.ts +20 -0
- package/dist/core/memory-ops.d.ts.map +1 -0
- package/dist/core/memory-ops.js +40 -0
- package/dist/core/memory-ops.js.map +1 -0
- package/dist/core/pairing-ops.d.ts +33 -0
- package/dist/core/pairing-ops.d.ts.map +1 -0
- package/dist/core/pairing-ops.js +78 -0
- package/dist/core/pairing-ops.js.map +1 -0
- package/dist/core/provider-ops.d.ts +17 -0
- package/dist/core/provider-ops.d.ts.map +1 -0
- package/dist/core/provider-ops.js +29 -0
- package/dist/core/provider-ops.js.map +1 -0
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +261 -14
- package/dist/core/server.js.map +1 -1
- package/dist/core/sessions-ops.d.ts +25 -0
- package/dist/core/sessions-ops.d.ts.map +1 -0
- package/dist/core/sessions-ops.js +77 -0
- package/dist/core/sessions-ops.js.map +1 -0
- package/dist/core/skills-ops.d.ts +14 -0
- package/dist/core/skills-ops.d.ts.map +1 -0
- package/dist/core/skills-ops.js +28 -0
- package/dist/core/skills-ops.js.map +1 -0
- package/dist/protocol/errors.d.ts +14 -0
- package/dist/protocol/errors.d.ts.map +1 -1
- package/dist/protocol/errors.js +14 -0
- package/dist/protocol/errors.js.map +1 -1
- package/dist/protocol/handshake.d.ts +10 -0
- package/dist/protocol/handshake.d.ts.map +1 -1
- package/dist/protocol/methods.d.ts +478 -0
- package/dist/protocol/methods.d.ts.map +1 -1
- package/dist/protocol/stream-seq.d.ts +30 -0
- package/dist/protocol/stream-seq.d.ts.map +1 -0
- package/dist/protocol/stream-seq.js +38 -0
- package/dist/protocol/stream-seq.js.map +1 -0
- package/dist/protocol.d.ts +265 -6
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +95 -5
- package/dist/protocol.js.map +1 -1
- package/dist/tui/client.d.ts +67 -2
- package/dist/tui/client.d.ts.map +1 -1
- package/dist/tui/client.js +106 -2
- package/dist/tui/client.js.map +1 -1
- package/package.json +1 -1
package/dist/protocol.d.ts
CHANGED
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
import type { Model } from "@earendil-works/pi-ai";
|
|
22
22
|
import type { CronAddParamsV2, CronAddResultV2, CronListParamsV2, CronListResultV2, CronRemoveParamsV2, CronRemoveResultV2, CronRunParamsV2, CronRunResultV2, CronRunsParamsV2, CronRunsResultV2, CronStatusParamsV2, CronStatusResultV2, CronUpdateParamsV2, CronUpdateResultV2, CronWakeParams } from "./core/server-methods/cron.js";
|
|
23
23
|
import type { OrgSnapshotResult } from "./protocol/methods.js";
|
|
24
|
+
import type { HelloOk } from "./protocol/handshake.js";
|
|
25
|
+
import type { ShutdownFrame, TickFrame } from "./protocol/messages.js";
|
|
24
26
|
import type { MemoryGraphExport } from "./agents/memory/graph-export.js";
|
|
25
27
|
import type { MemoryQueryResult } from "./agents/memory/query.js";
|
|
26
28
|
/** Caller → server. Server replies with a Response sharing this id. */
|
|
@@ -36,18 +38,48 @@ export interface ResponseFrame {
|
|
|
36
38
|
id: string;
|
|
37
39
|
ok: boolean;
|
|
38
40
|
payload?: unknown;
|
|
41
|
+
/**
|
|
42
|
+
* Structured error. `code` is one of `ErrorCodes` (see protocol/errors.ts —
|
|
43
|
+
* the complete catalogue a client branches on). `retryable` + `retryAfterMs`
|
|
44
|
+
* let a client back off correctly (e.g. on `rate-limited`); `details` carries
|
|
45
|
+
* optional structured context.
|
|
46
|
+
*/
|
|
39
47
|
error?: {
|
|
40
48
|
code: string;
|
|
41
49
|
message: string;
|
|
50
|
+
retryable?: boolean;
|
|
51
|
+
retryAfterMs?: number;
|
|
52
|
+
details?: unknown;
|
|
42
53
|
};
|
|
43
54
|
}
|
|
44
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Server → all clients. Push notification, no id.
|
|
57
|
+
*
|
|
58
|
+
* `seq` is a per-session monotonic counter stamped on ORDERED transcript
|
|
59
|
+
* frames (today: `pi`). A client tracks the last seq it saw for each session;
|
|
60
|
+
* a jump (next seq ≠ last + 1) means it missed a frame, so it issues a
|
|
61
|
+
* `resume` to backfill from the transcript. Untagged frames (state / error /
|
|
62
|
+
* basic log — no session) carry NO seq: they are not part of the ordered
|
|
63
|
+
* stream and need no gap detection. Optional on the wire so an older or
|
|
64
|
+
* minimal client that ignores it still works unchanged (unauthenticated +
|
|
65
|
+
* legacy stay byte-for-byte compatible).
|
|
66
|
+
*/
|
|
45
67
|
export interface EventFrame {
|
|
46
68
|
type: "event";
|
|
47
69
|
event: EventName;
|
|
48
70
|
payload?: unknown;
|
|
71
|
+
/** Per-session monotonic sequence for ordered streams (`pi`). Absent on
|
|
72
|
+
* untagged frames (state/error/basic log). */
|
|
73
|
+
seq?: number;
|
|
49
74
|
}
|
|
50
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Top-level frame union. `tick` (keepalive) and `shutdown` (graceful restart
|
|
77
|
+
* notice) are defined in `protocol/messages.ts`; the client tolerates them so
|
|
78
|
+
* a future server can emit them without breaking older clients, and so a
|
|
79
|
+
* graceful shutdown surfaces as a clean "reconnecting" line instead of a raw
|
|
80
|
+
* socket drop.
|
|
81
|
+
*/
|
|
82
|
+
export type Frame = RequestFrame | ResponseFrame | EventFrame | TickFrame | ShutdownFrame | HelloOk;
|
|
51
83
|
/**
|
|
52
84
|
* Every request the server understands. Adding a new one means:
|
|
53
85
|
* 1. Add the literal string here
|
|
@@ -115,6 +147,17 @@ export type RequestMethod =
|
|
|
115
147
|
| "add-provider"
|
|
116
148
|
/** Get the current state snapshot on demand. Reply: SessionStateSnapshot. */
|
|
117
149
|
| "get-state"
|
|
150
|
+
/**
|
|
151
|
+
* Re-materialise a session's transcript after (re)connect or a detected
|
|
152
|
+
* seq gap. Reply: ResumeSnapshot (the ordered conversation + the session's
|
|
153
|
+
* head seq + the header state). The client renders the messages keyed by
|
|
154
|
+
* identity (role + timestamp; tool blocks by toolCall id) and then keeps
|
|
155
|
+
* applying live `pi` frames idempotently — so a dropped or reordered frame
|
|
156
|
+
* self-heals with nothing missing and nothing misplaced. The transcript is
|
|
157
|
+
* the single source of truth: both this snapshot and the live stream
|
|
158
|
+
* resolve to it. Cheap + safe to call on every connect.
|
|
159
|
+
*/
|
|
160
|
+
| "resume"
|
|
118
161
|
/** Memory Graph dashboard data — nodes + typed edges + topic clusters + stats.
|
|
119
162
|
* Reply: MemoryGraphExport. */
|
|
120
163
|
| "memory-graph"
|
|
@@ -210,6 +253,148 @@ export type EventName =
|
|
|
210
253
|
* the `approval-resolve` request.
|
|
211
254
|
*/
|
|
212
255
|
| "approval-request";
|
|
256
|
+
/**
|
|
257
|
+
* Runtime list of every core request method, mirroring the `RequestMethod`
|
|
258
|
+
* union (types are erased at compile time, so a client can't enumerate them
|
|
259
|
+
* otherwise). The gateway advertises this (plus any plugin-registered methods)
|
|
260
|
+
* in `HelloOk.features.methods` on connect, so a web/mobile client discovers
|
|
261
|
+
* what it can call instead of hardcoding strings. `satisfies` makes adding an
|
|
262
|
+
* invalid method a compile error.
|
|
263
|
+
*/
|
|
264
|
+
export declare const REQUEST_METHODS: readonly ["prompt", "abort", "steer", "set-model", "switch-model-mid-turn", "set-thinking", "compact", "approval-resolve", "exec-allow-all", "exec-grant-skill", "list-models", "refresh-models", "add-provider", "get-state", "resume", "memory-graph", "memory-query", "shutdown", "subscribe", "unsubscribe", "agents.list", "sessions.list", "cron.status", "cron.list", "cron.add", "cron.update", "cron.remove", "cron.run", "cron.runs", "wake", "org.snapshot"];
|
|
265
|
+
/**
|
|
266
|
+
* Runtime list of every server-pushed event name, mirroring `EventName`.
|
|
267
|
+
* Advertised in `HelloOk.features.events` so a client knows what to subscribe
|
|
268
|
+
* to. `satisfies` keeps it in lock-step with the union.
|
|
269
|
+
*/
|
|
270
|
+
export declare const EVENT_NAMES: readonly ["pi", "state", "error", "log", "system-event", "approval-request"];
|
|
271
|
+
/**
|
|
272
|
+
* The set of `pi.event.type` values the gateway forwards (mirrors Pi's
|
|
273
|
+
* `AgentSessionEvent` union). A web/mobile renderer switches on `pi.event.type`;
|
|
274
|
+
* this is the authoritative list so it can be exhaustive.
|
|
275
|
+
*/
|
|
276
|
+
export declare const PI_EVENT_TYPES: readonly ["agent_start", "turn_start", "turn_end", "message_start", "message_update", "message_end", "tool_execution_start", "tool_execution_update", "tool_execution_end", "agent_end", "queue_update", "compaction_start", "compaction_end", "auto_retry_start", "auto_retry_end", "session_info_changed", "thinking_level_changed"];
|
|
277
|
+
export type PiEventType = (typeof PI_EVENT_TYPES)[number];
|
|
278
|
+
/**
|
|
279
|
+
* Brigade-native, wire-stable view of a Pi `AgentSessionEvent` — the inner
|
|
280
|
+
* `payload.event` of a `pi` frame. Provided so a web/mobile client has a typed
|
|
281
|
+
* contract WITHOUT importing Pi's SDK types (which live in node_modules and
|
|
282
|
+
* aren't shipped to a browser). It's an open union: known variants carry the
|
|
283
|
+
* fields a renderer needs; the trailing member keeps it forward-compatible if
|
|
284
|
+
* Pi adds an event type. Mirror of `@earendil-works/pi-coding-agent`'s
|
|
285
|
+
* `AgentSessionEvent` — keep in sync when bumping the SDK.
|
|
286
|
+
*
|
|
287
|
+
* `message` is a {@link WireMessage}; key assistant blocks by
|
|
288
|
+
* `role + timestamp` and tool blocks by the tool call id (see
|
|
289
|
+
* docs/reliable-streaming.md).
|
|
290
|
+
*/
|
|
291
|
+
export type PiEvent = {
|
|
292
|
+
type: "agent_start";
|
|
293
|
+
} | {
|
|
294
|
+
type: "turn_start";
|
|
295
|
+
} | {
|
|
296
|
+
type: "turn_end";
|
|
297
|
+
message: WireMessage;
|
|
298
|
+
toolResults?: WireMessage[];
|
|
299
|
+
} | {
|
|
300
|
+
type: "message_start";
|
|
301
|
+
message: WireMessage;
|
|
302
|
+
} | {
|
|
303
|
+
type: "message_update";
|
|
304
|
+
message: WireMessage;
|
|
305
|
+
} | {
|
|
306
|
+
type: "message_end";
|
|
307
|
+
message: WireMessage;
|
|
308
|
+
} | {
|
|
309
|
+
type: "tool_execution_start";
|
|
310
|
+
toolCallId: string;
|
|
311
|
+
toolName: string;
|
|
312
|
+
args?: unknown;
|
|
313
|
+
} | {
|
|
314
|
+
type: "tool_execution_update";
|
|
315
|
+
toolCallId: string;
|
|
316
|
+
toolName: string;
|
|
317
|
+
args?: unknown;
|
|
318
|
+
partialResult?: unknown;
|
|
319
|
+
} | {
|
|
320
|
+
type: "tool_execution_end";
|
|
321
|
+
toolCallId: string;
|
|
322
|
+
toolName: string;
|
|
323
|
+
result?: unknown;
|
|
324
|
+
isError: boolean;
|
|
325
|
+
} | {
|
|
326
|
+
type: "agent_end";
|
|
327
|
+
messages?: WireMessage[];
|
|
328
|
+
willRetry?: boolean;
|
|
329
|
+
} | {
|
|
330
|
+
type: "queue_update";
|
|
331
|
+
steering: readonly string[];
|
|
332
|
+
followUp: readonly string[];
|
|
333
|
+
} | {
|
|
334
|
+
type: "compaction_start";
|
|
335
|
+
reason: "manual" | "threshold" | "overflow";
|
|
336
|
+
} | {
|
|
337
|
+
type: "compaction_end";
|
|
338
|
+
reason?: string;
|
|
339
|
+
aborted?: boolean;
|
|
340
|
+
willRetry?: boolean;
|
|
341
|
+
errorMessage?: string;
|
|
342
|
+
} | {
|
|
343
|
+
type: "auto_retry_start";
|
|
344
|
+
attempt: number;
|
|
345
|
+
maxAttempts: number;
|
|
346
|
+
delayMs: number;
|
|
347
|
+
errorMessage?: string;
|
|
348
|
+
} | {
|
|
349
|
+
type: "auto_retry_end";
|
|
350
|
+
success: boolean;
|
|
351
|
+
attempt: number;
|
|
352
|
+
finalError?: string;
|
|
353
|
+
} | {
|
|
354
|
+
type: "session_info_changed";
|
|
355
|
+
name?: string;
|
|
356
|
+
} | {
|
|
357
|
+
type: "thinking_level_changed";
|
|
358
|
+
level: string;
|
|
359
|
+
} | {
|
|
360
|
+
type: string;
|
|
361
|
+
[field: string]: unknown;
|
|
362
|
+
};
|
|
363
|
+
/** A text/thinking/tool-call content block on a wire message. */
|
|
364
|
+
export interface WireContentBlock {
|
|
365
|
+
type: "text" | "thinking" | "toolCall" | "image" | string;
|
|
366
|
+
/** Present on `text` blocks. */
|
|
367
|
+
text?: string;
|
|
368
|
+
/** Present on `thinking` blocks. */
|
|
369
|
+
thinking?: string;
|
|
370
|
+
/** Present on `toolCall` blocks — the stable tool call id used to key the
|
|
371
|
+
* tool's render block + correlate its `toolResult`. */
|
|
372
|
+
id?: string;
|
|
373
|
+
/** Tool name, on `toolCall` blocks. */
|
|
374
|
+
name?: string;
|
|
375
|
+
[field: string]: unknown;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Wire-stable view of a Pi message (the elements of a `ResumeSnapshot.messages`
|
|
379
|
+
* transcript and the `message` on `pi` events). No top-level `id` — render keys
|
|
380
|
+
* are `role + timestamp` (assistant/user) and the tool call `id` /
|
|
381
|
+
* `toolCallId` (tools). Open-ended for forward-compat.
|
|
382
|
+
*/
|
|
383
|
+
export interface WireMessage {
|
|
384
|
+
role: "user" | "assistant" | "toolResult" | string;
|
|
385
|
+
/** Creation timestamp (ms) — stable across a message's streaming updates;
|
|
386
|
+
* the identity key a renderer uses for the assistant block. */
|
|
387
|
+
timestamp?: number;
|
|
388
|
+
/** `string` for a simple user message, else an array of content blocks. */
|
|
389
|
+
content?: string | WireContentBlock[];
|
|
390
|
+
/** On `toolResult` messages — correlates to the assistant's tool call id. */
|
|
391
|
+
toolCallId?: string;
|
|
392
|
+
/** On `toolResult` messages. */
|
|
393
|
+
toolName?: string;
|
|
394
|
+
/** On `toolResult` messages. */
|
|
395
|
+
isError?: boolean;
|
|
396
|
+
[field: string]: unknown;
|
|
397
|
+
}
|
|
213
398
|
/** Params for each request method. `void` = no params required. */
|
|
214
399
|
export interface RequestParams {
|
|
215
400
|
prompt: {
|
|
@@ -297,6 +482,18 @@ export interface RequestParams {
|
|
|
297
482
|
skipValidation?: boolean;
|
|
298
483
|
};
|
|
299
484
|
"get-state": void;
|
|
485
|
+
resume: {
|
|
486
|
+
/** Agent whose session is resumed; defaults to the caller's bound agent. */
|
|
487
|
+
agentId?: string;
|
|
488
|
+
/** Canonical session key to resume; defaults to that agent's main session. */
|
|
489
|
+
sessionKey?: string;
|
|
490
|
+
/**
|
|
491
|
+
* When set, the server omits messages the client already has and returns
|
|
492
|
+
* only the tail. Today the server always returns the full transcript
|
|
493
|
+
* (simple + correct — the client applies it idempotently by identity);
|
|
494
|
+
* this is a forward-compat hint for a future tail optimisation. */
|
|
495
|
+
sinceSeq?: number;
|
|
496
|
+
};
|
|
300
497
|
"memory-graph": {
|
|
301
498
|
/** Agent whose memory graph is exported; defaults to the boot agent. */
|
|
302
499
|
agentId?: string;
|
|
@@ -388,6 +585,7 @@ export interface ResponseFor {
|
|
|
388
585
|
warning?: string;
|
|
389
586
|
};
|
|
390
587
|
"get-state": SessionStateSnapshot;
|
|
588
|
+
resume: ResumeSnapshot;
|
|
391
589
|
"memory-graph": MemoryGraphExport;
|
|
392
590
|
"memory-query": MemoryQueryResult;
|
|
393
591
|
shutdown: void;
|
|
@@ -543,6 +741,62 @@ export interface SessionStateSnapshot {
|
|
|
543
741
|
*/
|
|
544
742
|
sessionKey?: string;
|
|
545
743
|
}
|
|
744
|
+
/**
|
|
745
|
+
* Reply to a `resume` request — the heart of reliable streaming.
|
|
746
|
+
*
|
|
747
|
+
* The client re-materialises a session from this on (re)connect or a detected
|
|
748
|
+
* seq gap, then resumes applying live `pi` frames. Because the renderer keys
|
|
749
|
+
* every block by identity (message role + timestamp; tool blocks by their
|
|
750
|
+
* toolCall id) and applies terminal snapshots by REPLACE, re-applying a
|
|
751
|
+
* message the client already has is a harmless no-op — so the snapshot and the
|
|
752
|
+
* live stream overlap safely with nothing missing, nothing duplicated, and
|
|
753
|
+
* nothing misplaced. The persisted transcript is the single source of truth.
|
|
754
|
+
*/
|
|
755
|
+
export interface ResumeSnapshot {
|
|
756
|
+
/** Canonical session key this transcript belongs to. */
|
|
757
|
+
sessionKey: string;
|
|
758
|
+
/** Agent id that owns the session. */
|
|
759
|
+
agentId: string;
|
|
760
|
+
/**
|
|
761
|
+
* The ordered conversation, oldest-first ({@link WireMessage}: user /
|
|
762
|
+
* assistant / toolResult). The renderer keys each message by `role +
|
|
763
|
+
* timestamp` and each embedded tool call by its `toolCall.id`, the same keys
|
|
764
|
+
* the live stream uses — that shared keyspace is what makes snapshot ⊕ live
|
|
765
|
+
* idempotent.
|
|
766
|
+
*/
|
|
767
|
+
messages: WireMessage[];
|
|
768
|
+
/**
|
|
769
|
+
* The session's current head sequence (the last seq stamped on an ordered
|
|
770
|
+
* frame — `pi` / `approval-request` / `system-event` — for this session, or
|
|
771
|
+
* 0 if none yet). The client sets its last-seen seq to this; subsequent live
|
|
772
|
+
* frames continue from `headSeq + 1`, and any frame with `seq ≤ headSeq` is
|
|
773
|
+
* a duplicate it can apply idempotently or skip.
|
|
774
|
+
*/
|
|
775
|
+
headSeq: number;
|
|
776
|
+
/**
|
|
777
|
+
* Tool-approval prompts CURRENTLY pending on this session. Recovery for the
|
|
778
|
+
* one event that loses an operator ACTION: a client that connected after —
|
|
779
|
+
* or missed — the live `approval-request` frame gets the open prompts here
|
|
780
|
+
* and can resolve them via `approval-resolve`, instead of the turn hanging
|
|
781
|
+
* until it auto-denies. Empty when nothing is pending.
|
|
782
|
+
*/
|
|
783
|
+
pendingApprovals: EventPayload["approval-request"][];
|
|
784
|
+
/**
|
|
785
|
+
* Recent `system-event` notices (cron announces, channel-health) for this
|
|
786
|
+
* session — a bounded tail so a client that was disconnected when one fired
|
|
787
|
+
* can still surface it. Oldest-first. Display-only; safe to dedupe by `at`.
|
|
788
|
+
*/
|
|
789
|
+
recentSystemEvents: EventPayload["system-event"][];
|
|
790
|
+
/**
|
|
791
|
+
* The gateway's process boot id (session generation). If it differs from the
|
|
792
|
+
* epoch the client saw on its previous `HelloOk`, the gateway restarted and
|
|
793
|
+
* its seq counters reset — the client should treat its cursors as invalid.
|
|
794
|
+
*/
|
|
795
|
+
epoch: string;
|
|
796
|
+
/** Header state (provider / model / tokens / running) so the client
|
|
797
|
+
* refreshes its chrome in the same round-trip. */
|
|
798
|
+
snapshot: SessionStateSnapshot;
|
|
799
|
+
}
|
|
546
800
|
/**
|
|
547
801
|
* Wire-safe version of a Pi Model<any>. The full Model has stream functions
|
|
548
802
|
* and other non-serializable fields — clients only need ids + display info
|
|
@@ -602,12 +856,17 @@ export declare const EXIT_FAILURE = 1;
|
|
|
602
856
|
export declare const EXIT_USAGE_ERROR = 2;
|
|
603
857
|
export declare const EXIT_CONFIG_ERROR = 78;
|
|
604
858
|
/**
|
|
605
|
-
*
|
|
606
|
-
*
|
|
607
|
-
*
|
|
859
|
+
* Heartbeat interval. The server's keepalive today is the periodic `state`
|
|
860
|
+
* broadcast (a real frame that bumps the client's `lastFrameAt`), plus
|
|
861
|
+
* WS-protocol pings; the dedicated `TickFrame` type exists for forward-compat
|
|
862
|
+
* but is not emitted yet. The client closes + reconnects if NO frame arrives in
|
|
863
|
+
* 2× this interval (catches half-open sockets — the common backgrounded-mobile
|
|
864
|
+
* case), then `resume`s.
|
|
608
865
|
*/
|
|
609
866
|
export declare const TICK_INTERVAL_MS = 30000;
|
|
610
|
-
/** Cheap shape check before routing. Avoids dragging in AJV for v1's small surface.
|
|
867
|
+
/** Cheap shape check before routing. Avoids dragging in AJV for v1's small surface.
|
|
868
|
+
* Accepts `tick`/`shutdown` too so the client never silently drops a keepalive
|
|
869
|
+
* or a graceful-shutdown notice (the old guard rejected both). */
|
|
611
870
|
export declare function isFrame(value: unknown): value is Frame;
|
|
612
871
|
/**
|
|
613
872
|
* The Step 24 lift split the protocol surface across `protocol/messages.ts`,
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js
CHANGED
|
@@ -18,6 +18,86 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Compatible with: any WebSocket client speaking this JSON shape.
|
|
20
20
|
*/
|
|
21
|
+
/* ─────────────────────── runtime discovery arrays ─────────────────────── */
|
|
22
|
+
/**
|
|
23
|
+
* Runtime list of every core request method, mirroring the `RequestMethod`
|
|
24
|
+
* union (types are erased at compile time, so a client can't enumerate them
|
|
25
|
+
* otherwise). The gateway advertises this (plus any plugin-registered methods)
|
|
26
|
+
* in `HelloOk.features.methods` on connect, so a web/mobile client discovers
|
|
27
|
+
* what it can call instead of hardcoding strings. `satisfies` makes adding an
|
|
28
|
+
* invalid method a compile error.
|
|
29
|
+
*/
|
|
30
|
+
export const REQUEST_METHODS = [
|
|
31
|
+
"prompt",
|
|
32
|
+
"abort",
|
|
33
|
+
"steer",
|
|
34
|
+
"set-model",
|
|
35
|
+
"switch-model-mid-turn",
|
|
36
|
+
"set-thinking",
|
|
37
|
+
"compact",
|
|
38
|
+
"approval-resolve",
|
|
39
|
+
"exec-allow-all",
|
|
40
|
+
"exec-grant-skill",
|
|
41
|
+
"list-models",
|
|
42
|
+
"refresh-models",
|
|
43
|
+
"add-provider",
|
|
44
|
+
"get-state",
|
|
45
|
+
"resume",
|
|
46
|
+
"memory-graph",
|
|
47
|
+
"memory-query",
|
|
48
|
+
"shutdown",
|
|
49
|
+
"subscribe",
|
|
50
|
+
"unsubscribe",
|
|
51
|
+
"agents.list",
|
|
52
|
+
"sessions.list",
|
|
53
|
+
"cron.status",
|
|
54
|
+
"cron.list",
|
|
55
|
+
"cron.add",
|
|
56
|
+
"cron.update",
|
|
57
|
+
"cron.remove",
|
|
58
|
+
"cron.run",
|
|
59
|
+
"cron.runs",
|
|
60
|
+
"wake",
|
|
61
|
+
"org.snapshot",
|
|
62
|
+
];
|
|
63
|
+
/**
|
|
64
|
+
* Runtime list of every server-pushed event name, mirroring `EventName`.
|
|
65
|
+
* Advertised in `HelloOk.features.events` so a client knows what to subscribe
|
|
66
|
+
* to. `satisfies` keeps it in lock-step with the union.
|
|
67
|
+
*/
|
|
68
|
+
export const EVENT_NAMES = [
|
|
69
|
+
"pi",
|
|
70
|
+
"state",
|
|
71
|
+
"error",
|
|
72
|
+
"log",
|
|
73
|
+
"system-event",
|
|
74
|
+
"approval-request",
|
|
75
|
+
];
|
|
76
|
+
/* ─────────────────────── pi inner-event contract ─────────────────────── */
|
|
77
|
+
/**
|
|
78
|
+
* The set of `pi.event.type` values the gateway forwards (mirrors Pi's
|
|
79
|
+
* `AgentSessionEvent` union). A web/mobile renderer switches on `pi.event.type`;
|
|
80
|
+
* this is the authoritative list so it can be exhaustive.
|
|
81
|
+
*/
|
|
82
|
+
export const PI_EVENT_TYPES = [
|
|
83
|
+
"agent_start",
|
|
84
|
+
"turn_start",
|
|
85
|
+
"turn_end",
|
|
86
|
+
"message_start",
|
|
87
|
+
"message_update",
|
|
88
|
+
"message_end",
|
|
89
|
+
"tool_execution_start",
|
|
90
|
+
"tool_execution_update",
|
|
91
|
+
"tool_execution_end",
|
|
92
|
+
"agent_end",
|
|
93
|
+
"queue_update",
|
|
94
|
+
"compaction_start",
|
|
95
|
+
"compaction_end",
|
|
96
|
+
"auto_retry_start",
|
|
97
|
+
"auto_retry_end",
|
|
98
|
+
"session_info_changed",
|
|
99
|
+
"thinking_level_changed",
|
|
100
|
+
];
|
|
21
101
|
export function modelToSummary(model) {
|
|
22
102
|
return {
|
|
23
103
|
provider: model.provider,
|
|
@@ -48,18 +128,28 @@ export const EXIT_FAILURE = 1;
|
|
|
48
128
|
export const EXIT_USAGE_ERROR = 2;
|
|
49
129
|
export const EXIT_CONFIG_ERROR = 78;
|
|
50
130
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
131
|
+
* Heartbeat interval. The server's keepalive today is the periodic `state`
|
|
132
|
+
* broadcast (a real frame that bumps the client's `lastFrameAt`), plus
|
|
133
|
+
* WS-protocol pings; the dedicated `TickFrame` type exists for forward-compat
|
|
134
|
+
* but is not emitted yet. The client closes + reconnects if NO frame arrives in
|
|
135
|
+
* 2× this interval (catches half-open sockets — the common backgrounded-mobile
|
|
136
|
+
* case), then `resume`s.
|
|
54
137
|
*/
|
|
55
138
|
export const TICK_INTERVAL_MS = 30_000;
|
|
56
139
|
/* ─────────────────────────── tiny runtime guards ─────────────────────────── */
|
|
57
|
-
/** Cheap shape check before routing. Avoids dragging in AJV for v1's small surface.
|
|
140
|
+
/** Cheap shape check before routing. Avoids dragging in AJV for v1's small surface.
|
|
141
|
+
* Accepts `tick`/`shutdown` too so the client never silently drops a keepalive
|
|
142
|
+
* or a graceful-shutdown notice (the old guard rejected both). */
|
|
58
143
|
export function isFrame(value) {
|
|
59
144
|
if (!value || typeof value !== "object")
|
|
60
145
|
return false;
|
|
61
146
|
const t = value.type;
|
|
62
|
-
return t === "req" ||
|
|
147
|
+
return (t === "req" ||
|
|
148
|
+
t === "res" ||
|
|
149
|
+
t === "event" ||
|
|
150
|
+
t === "tick" ||
|
|
151
|
+
t === "shutdown" ||
|
|
152
|
+
t === "hello-ok");
|
|
63
153
|
}
|
|
64
154
|
/* ─────────────────────── Step 24 protocol barrel re-export ─────────────────────── */
|
|
65
155
|
/**
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAqQH,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,QAAQ;IACR,OAAO;IACP,OAAO;IACP,WAAW;IACX,uBAAuB;IACvB,cAAc;IACd,SAAS;IACT,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,QAAQ;IACR,cAAc;IACd,cAAc;IACd,UAAU;IACV,WAAW;IACX,aAAa;IACb,aAAa;IACb,eAAe;IACf,aAAa;IACb,WAAW;IACX,UAAU;IACV,aAAa;IACb,aAAa;IACb,UAAU;IACV,WAAW;IACX,MAAM;IACN,cAAc;CAC8B,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,IAAI;IACJ,OAAO;IACP,OAAO;IACP,KAAK;IACL,cAAc;IACd,kBAAkB;CACsB,CAAC;AAE1C,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,aAAa;IACb,YAAY;IACZ,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,oBAAoB;IACpB,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,sBAAsB;IACtB,wBAAwB;CACf,CAAC;AAygBX,MAAM,UAAU,cAAc,CAAC,KAAiB;IAC/C,OAAO;QACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;QAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;QACvC,gBAAgB,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;QACxC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;KACtE,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,iFAAiF;AAEjF;;mEAEmE;AACnE,MAAM,UAAU,OAAO,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAI,KAAa,CAAC,IAAI,CAAC;IAC9B,OAAO,CACN,CAAC,KAAK,KAAK;QACX,CAAC,KAAK,KAAK;QACX,CAAC,KAAK,OAAO;QACb,CAAC,KAAK,MAAM;QACZ,CAAC,KAAK,UAAU;QAChB,CAAC,KAAK,UAAU,CAChB,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF;;;;;;GAMG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
package/dist/tui/client.d.ts
CHANGED
|
@@ -17,7 +17,18 @@
|
|
|
17
17
|
* - One-shot connect: caller awaits `client.ready` before sending requests
|
|
18
18
|
*/
|
|
19
19
|
import { EventEmitter } from "node:events";
|
|
20
|
-
import { type EventName, type EventPayload, type RequestMethod, type RequestParams, type ResponseFor } from "../protocol.js";
|
|
20
|
+
import { type EventName, type EventPayload, type RequestMethod, type RequestParams, type ResponseFor, type ResumeSnapshot, type ShutdownFrame } from "../protocol.js";
|
|
21
|
+
import type { HelloOk } from "../protocol/handshake.js";
|
|
22
|
+
/** Payload of the client-emitted `"resync"` event: a seq gap was detected on a
|
|
23
|
+
* session's ordered `pi` stream, so the consumer should `resume()` to backfill. */
|
|
24
|
+
export interface ClientResyncInfo {
|
|
25
|
+
sessionId: string;
|
|
26
|
+
lastSeq: number;
|
|
27
|
+
gotSeq: number;
|
|
28
|
+
}
|
|
29
|
+
/** Connection lifecycle state, emitted as the `"connection-state"` event so a
|
|
30
|
+
* UI can bind a status indicator directly. */
|
|
31
|
+
export type ClientConnectionState = "connecting" | "connected" | "reconnecting" | "closed";
|
|
21
32
|
export interface ClientOptions {
|
|
22
33
|
/** WebSocket URL. Defaults to `ws://127.0.0.1:7777`. */
|
|
23
34
|
url?: string;
|
|
@@ -69,6 +80,20 @@ export declare class BrigadeClient extends EventEmitter {
|
|
|
69
80
|
/** Last time we received any frame from the server. Tick watchdog reads this. */
|
|
70
81
|
private lastFrameAt;
|
|
71
82
|
private tickWatchTimer;
|
|
83
|
+
/**
|
|
84
|
+
* Last `seq` seen per session on the ordered `pi` stream. Used to detect a
|
|
85
|
+
* gap: when a frame's seq isn't `last + 1`, a frame was dropped or reordered
|
|
86
|
+
* (or the gateway restarted and reset its counters), so we emit `"resync"`
|
|
87
|
+
* and the consumer issues a `resume` to backfill from the transcript. Keyed
|
|
88
|
+
* by sessionId (= sessionKey), the same key `resume` syncs. Survives
|
|
89
|
+
* reconnects so the cursor stays meaningful across a blip.
|
|
90
|
+
*/
|
|
91
|
+
private lastSeqBySession;
|
|
92
|
+
/** The most recent HelloOk frame (server connId, build version, epoch,
|
|
93
|
+
* advertised methods/events, policy limits). Undefined until first connect. */
|
|
94
|
+
private lastHelloOk;
|
|
95
|
+
/** Connection lifecycle state, mirrored by the "connection-state" event. */
|
|
96
|
+
private connState;
|
|
72
97
|
/** Reconnect state. */
|
|
73
98
|
private reconnectAttempt;
|
|
74
99
|
private reconnectTimer;
|
|
@@ -77,6 +102,16 @@ export declare class BrigadeClient extends EventEmitter {
|
|
|
77
102
|
connect(): Promise<void>;
|
|
78
103
|
/** Close the connection permanently. Cancels reconnect, rejects pending. */
|
|
79
104
|
close(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Server handshake info from the last `HelloOk` — connId, build version,
|
|
107
|
+
* `epoch` (session generation), the advertised `features.{methods,events}`,
|
|
108
|
+
* and `policy` limits. Undefined before the first connect. A web/mobile
|
|
109
|
+
* client reads this to discover what it can call/subscribe to + the limits.
|
|
110
|
+
*/
|
|
111
|
+
get server(): HelloOk | undefined;
|
|
112
|
+
/** Current connection lifecycle state (also pushed via "connection-state"). */
|
|
113
|
+
get connectionState(): ClientConnectionState;
|
|
114
|
+
private setConnState;
|
|
80
115
|
/** True if the underlying socket is currently OPEN. */
|
|
81
116
|
get isConnected(): boolean;
|
|
82
117
|
/**
|
|
@@ -85,9 +120,39 @@ export declare class BrigadeClient extends EventEmitter {
|
|
|
85
120
|
* timeout elapses, or the socket closes before a response arrives.
|
|
86
121
|
*/
|
|
87
122
|
request<M extends RequestMethod>(method: M, params?: RequestParams[M], options?: RequestOptions): Promise<ResponseFor[M]>;
|
|
88
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* Type-aware event subscription. Two families:
|
|
125
|
+
* - server-pushed events, typed by `EventName` → `EventPayload[K]`
|
|
126
|
+
* - client lifecycle events BrigadeClient emits itself: `"hello"` (the
|
|
127
|
+
* server's HelloOk handshake landed), `"connection-state"` (connecting /
|
|
128
|
+
* connected / reconnecting / closed), `"reconnected"` (socket re-opened),
|
|
129
|
+
* `"resync"` (a seq gap → call `resume()`), and `"shutdown"` (the gateway
|
|
130
|
+
* sent a graceful-shutdown frame).
|
|
131
|
+
* Returns `this` for chaining (matches EventEmitter).
|
|
132
|
+
*/
|
|
89
133
|
on<K extends EventName>(event: K, listener: (payload: EventPayload[K]) => void): this;
|
|
134
|
+
on(event: "hello", listener: (hello: HelloOk) => void): this;
|
|
135
|
+
on(event: "connection-state", listener: (state: ClientConnectionState) => void): this;
|
|
136
|
+
on(event: "reconnected", listener: () => void): this;
|
|
137
|
+
on(event: "resync", listener: (info: ClientResyncInfo) => void): this;
|
|
138
|
+
on(event: "shutdown", listener: (frame: ShutdownFrame) => void): this;
|
|
90
139
|
off<K extends EventName>(event: K, listener: (payload: EventPayload[K]) => void): this;
|
|
140
|
+
off(event: "hello", listener: (hello: HelloOk) => void): this;
|
|
141
|
+
off(event: "connection-state", listener: (state: ClientConnectionState) => void): this;
|
|
142
|
+
off(event: "reconnected", listener: () => void): this;
|
|
143
|
+
off(event: "resync", listener: (info: ClientResyncInfo) => void): this;
|
|
144
|
+
off(event: "shutdown", listener: (frame: ShutdownFrame) => void): this;
|
|
145
|
+
/**
|
|
146
|
+
* Resume a session: fetch its committed transcript + head seq + header
|
|
147
|
+
* snapshot, and sync the local seq cursor so live frames continue cleanly
|
|
148
|
+
* from `headSeq + 1`. Call this on connect, on reconnect, and on a
|
|
149
|
+
* `"resync"` event. The consumer renders the returned `messages` through
|
|
150
|
+
* its identity-keyed applier (idempotent), so overlapping with live frames
|
|
151
|
+
* is harmless. This is the reliable-streaming recovery primitive — the
|
|
152
|
+
* transcript is the source of truth, so a dropped/reordered/missed frame
|
|
153
|
+
* always self-heals here.
|
|
154
|
+
*/
|
|
155
|
+
resume(params?: RequestParams["resume"]): Promise<ResumeSnapshot>;
|
|
91
156
|
private openSocket;
|
|
92
157
|
private scheduleReconnect;
|
|
93
158
|
private dispatchFrame;
|
package/dist/tui/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tui/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAEN,KAAK,SAAS,EACd,KAAK,YAAY,EAGjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tui/client.ts"],"names":[],"mappings":"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"}
|