@otto-code/protocol 0.8.12 → 0.8.13
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/agent-labels.d.ts +3 -0
- package/dist/agent-labels.js +10 -0
- package/dist/agent-personalities.d.ts +4 -3
- package/dist/agent-personalities.js +13 -20
- package/dist/agent-types.d.ts +24 -4
- package/dist/binary-frames/terminal.d.ts +4 -0
- package/dist/binary-frames/terminal.js +1 -0
- package/dist/brain.d.ts +91 -0
- package/dist/brain.js +19 -1
- package/dist/chat/rpc-schemas.js +1 -0
- package/dist/chat/types.js +1 -0
- package/dist/client-capabilities.d.ts +1 -0
- package/dist/client-capabilities.js +4 -0
- package/dist/daemon-config.d.ts +6 -0
- package/dist/daemon-config.js +6 -0
- package/dist/generated/validation/ws-outbound.aot.js +64093 -60274
- package/dist/loop/rpc-schemas.js +1 -0
- package/dist/messages.d.ts +3546 -422
- package/dist/messages.js +445 -13
- package/dist/provider-manifest.js +7 -0
- package/dist/provider-snapshot-codec.d.ts +18 -0
- package/dist/provider-snapshot-codec.js +71 -0
- package/dist/schedule/rpc-schemas.d.ts +8 -64
- package/dist/schedule/types.d.ts +3 -24
- package/dist/schedule/types.js +1 -11
- package/dist/search/text-match.d.ts +55 -0
- package/dist/search/text-match.js +262 -0
- package/dist/suggested-tasks.js +1 -1
- package/dist/terminal-input-mode.d.ts +4 -0
- package/dist/terminal-input-mode.js +35 -6
- package/dist/terminal-key-input.js +15 -6
- package/dist/terminal-profiles.d.ts +35 -0
- package/dist/terminal-profiles.js +246 -4
- package/dist/tool-call-display.d.ts +2 -2
- package/dist/tool-call-display.js +6 -6
- package/dist/validation/ws-outbound-schema-metadata.d.ts +587 -77
- package/package.json +1 -1
package/dist/agent-labels.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare const PARENT_AGENT_ID_LABEL = "otto.parent-agent-id";
|
|
2
|
+
export declare function getOpenAgentTabLabel(clientId: string): string;
|
|
3
|
+
export declare function isOpenAgentTabLabel(label: string): boolean;
|
|
2
4
|
export interface AgentLabelSource {
|
|
3
5
|
labels?: Record<string, unknown> | null;
|
|
4
6
|
}
|
|
@@ -30,4 +32,5 @@ export interface OrchestrationQueryToolLabel {
|
|
|
30
32
|
path?: string;
|
|
31
33
|
}
|
|
32
34
|
export declare function getQueryToolsFromLabels(labels: Record<string, unknown> | null | undefined): OrchestrationQueryToolLabel[] | null;
|
|
35
|
+
export declare function hasOpenAgentTab(labels: Record<string, unknown> | null | undefined): boolean;
|
|
33
36
|
//# sourceMappingURL=agent-labels.d.ts.map
|
package/dist/agent-labels.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export const PARENT_AGENT_ID_LABEL = "otto.parent-agent-id";
|
|
2
|
+
const OPEN_AGENT_TAB_LABEL_PREFIX = "otto.open-agent-tab.";
|
|
3
|
+
export function getOpenAgentTabLabel(clientId) {
|
|
4
|
+
return `${OPEN_AGENT_TAB_LABEL_PREFIX}${clientId}`;
|
|
5
|
+
}
|
|
6
|
+
export function isOpenAgentTabLabel(label) {
|
|
7
|
+
return label.startsWith(OPEN_AGENT_TAB_LABEL_PREFIX);
|
|
8
|
+
}
|
|
2
9
|
export function getParentAgentIdFromLabels(labels) {
|
|
3
10
|
const parentAgentId = labels?.[PARENT_AGENT_ID_LABEL];
|
|
4
11
|
return typeof parentAgentId === "string" && parentAgentId.trim().length > 0
|
|
@@ -90,4 +97,7 @@ function parseJsonArrayLabel(labels, key, isValid) {
|
|
|
90
97
|
});
|
|
91
98
|
return entries.length > 0 ? entries : null;
|
|
92
99
|
}
|
|
100
|
+
export function hasOpenAgentTab(labels) {
|
|
101
|
+
return Object.entries(labels ?? {}).some(([label, value]) => isOpenAgentTabLabel(label) && value === "true");
|
|
102
|
+
}
|
|
93
103
|
//# sourceMappingURL=agent-labels.js.map
|
|
@@ -3,8 +3,8 @@ export declare function isPersonalityRole(value: string): value is PersonalityRo
|
|
|
3
3
|
/**
|
|
4
4
|
* Filter an arbitrary role array (roles ride the wire as plain strings) down to
|
|
5
5
|
* the known set, deduped and returned in canonical `PERSONALITY_ROLES` order.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Unknown roles (for example, a role from a newer peer) are dropped rather
|
|
7
|
+
* than trusted.
|
|
8
8
|
*/
|
|
9
9
|
export declare function normalizePersonalityRoles(roles: readonly string[] | undefined): PersonalityRole[];
|
|
10
10
|
export declare function personalityHasRole(personality: Pick<AgentPersonality, "roles">, role: PersonalityRole): boolean;
|
|
@@ -34,11 +34,12 @@ export interface PersonalitySelectionSummary {
|
|
|
34
34
|
* deciding agent can pick the right teammate from the list alone.
|
|
35
35
|
*/
|
|
36
36
|
export declare function summarizePersonalityForSelection(personality: Pick<AgentPersonality, "roles">): PersonalitySelectionSummary;
|
|
37
|
+
export declare const OTTO_WORK_VOCABULARY_DIRECTIVE = "Otto work vocabulary: a suggested task is deferred work for the user and does not start work; a chat is an active Otto chat session; a child chat is created by another chat; a personality profile is a reusable provider, model, mode, effort, and behavior template; an orchestration coordinates multiple chats; a schedule starts a background chat when due; a heartbeat sends a reminder or prompt and does not start a chat. Use suggest_task for concrete work to preserve for later, create_chat to start one chat now, and start_orchestration only for managed multi-chat coordination. Use list_personalities, optionally filtered by roles, before choosing a personality profile. Never substitute a harness-native agent-spawn tool for suggest_task, and when a user names an Otto tool exactly, use that exact Otto tool.";
|
|
37
38
|
export declare const ORCHESTRATOR_METHOD_DIRECTIVE: string;
|
|
38
39
|
/**
|
|
39
40
|
* The in-context "role directive" injected into a personality's system prompt at
|
|
40
41
|
* spawn. The orchestrator gets the full conductor method; other coordinators
|
|
41
|
-
* (chatter/artificer/scheduler) get a lighter delegate nudge; focused
|
|
42
|
+
* (chatter/artificer/scheduler) get a lighter delegate nudge; focused personalities
|
|
42
43
|
* are told to stay on the task someone is waiting on. Roleless spawns get
|
|
43
44
|
* nothing. This is guidance, not a gate - the tools stay available either way.
|
|
44
45
|
*/
|
|
@@ -4,22 +4,14 @@ import { PERSONALITY_ROLES } from "./messages.js";
|
|
|
4
4
|
// resolution is NOT here - it needs the model's advertised thinking options and
|
|
5
5
|
// lives with the daemon's effort resolver; availability does not depend on it.
|
|
6
6
|
const ROLE_SET = new Set(PERSONALITY_ROLES);
|
|
7
|
-
// Retired role names, mapped to their canonical replacement. "worker" was split
|
|
8
|
-
// into "writer" (fast small-text generation) and "coder" (sub-agent coding); a
|
|
9
|
-
// personality that still carries the old tag resolves to "coder", the closer
|
|
10
|
-
// heir of what a worker did. Normalization applies these before filtering so
|
|
11
|
-
// personalities persisted before the split keep a real role.
|
|
12
|
-
const LEGACY_ROLE_ALIASES = {
|
|
13
|
-
worker: "coder",
|
|
14
|
-
};
|
|
15
7
|
export function isPersonalityRole(value) {
|
|
16
8
|
return ROLE_SET.has(value);
|
|
17
9
|
}
|
|
18
10
|
/**
|
|
19
11
|
* Filter an arbitrary role array (roles ride the wire as plain strings) down to
|
|
20
12
|
* the known set, deduped and returned in canonical `PERSONALITY_ROLES` order.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
13
|
+
* Unknown roles (for example, a role from a newer peer) are dropped rather
|
|
14
|
+
* than trusted.
|
|
23
15
|
*/
|
|
24
16
|
export function normalizePersonalityRoles(roles) {
|
|
25
17
|
if (!roles || roles.length === 0) {
|
|
@@ -27,7 +19,7 @@ export function normalizePersonalityRoles(roles) {
|
|
|
27
19
|
}
|
|
28
20
|
const present = new Set();
|
|
29
21
|
for (const raw of roles) {
|
|
30
|
-
const canonical =
|
|
22
|
+
const canonical = isPersonalityRole(raw) ? raw : null;
|
|
31
23
|
if (canonical) {
|
|
32
24
|
present.add(canonical);
|
|
33
25
|
}
|
|
@@ -51,7 +43,7 @@ export const PERSONALITY_ROLE_INFO = {
|
|
|
51
43
|
tier: "coordinator",
|
|
52
44
|
guidance: "Creates and manages schedules; may orchestrate recurring or multi-step jobs. Pick for scheduling.",
|
|
53
45
|
},
|
|
54
|
-
// ── Thinking
|
|
46
|
+
// ── Thinking specialists (read-only, structured findings) ────────────────
|
|
55
47
|
researcher: {
|
|
56
48
|
tier: "focused",
|
|
57
49
|
guidance: "Read-only surveyor - maps the code or domain and reports files, types, patterns, and gotchas. Pick to gather facts; proposes no solutions and edits nothing.",
|
|
@@ -68,7 +60,7 @@ export const PERSONALITY_ROLE_INFO = {
|
|
|
68
60
|
tier: "focused",
|
|
69
61
|
guidance: "Read-only second opinion - weighs the trade-offs and returns one recommendation. Pick for advice; never edits and does not fan out.",
|
|
70
62
|
},
|
|
71
|
-
// ── Making
|
|
63
|
+
// ── Making specialists (produce code, design, or text) ───────────────────
|
|
72
64
|
coder: {
|
|
73
65
|
tier: "focused",
|
|
74
66
|
guidance: "Focused implementer - writes code for one sub-task others are waiting on. Pick to get a coding job done; stays on task.",
|
|
@@ -84,7 +76,7 @@ export const PERSONALITY_ROLE_INFO = {
|
|
|
84
76
|
// ── Conductor ─────────────────────────────────────────────────────────────
|
|
85
77
|
orchestrator: {
|
|
86
78
|
tier: "coordinator",
|
|
87
|
-
guidance: "The sole conductor - plans team-shaped work, dispatches typed tasks to the right teammates, gathers, and synthesizes. Pick to
|
|
79
|
+
guidance: "The sole conductor - plans team-shaped work, dispatches typed tasks to the right teammates, gathers, and synthesizes. Pick to coordinate a multi-chat workflow.",
|
|
88
80
|
},
|
|
89
81
|
};
|
|
90
82
|
/**
|
|
@@ -113,17 +105,18 @@ export function summarizePersonalityForSelection(personality) {
|
|
|
113
105
|
}
|
|
114
106
|
// The conductor's standing directive - the distilled `/epic` method taught to
|
|
115
107
|
// the sole orchestrator role at spawn. It chooses direct work, a dedicated
|
|
116
|
-
//
|
|
108
|
+
// chat, a suggested task, or an orchestration by the task's actual needs rather than
|
|
117
109
|
// treating orchestration as the default. Kept here as one exported constant so
|
|
118
110
|
// the wording is testable and shared. See projects/agent-orchestration/agent-orchestration.md.
|
|
111
|
+
export const OTTO_WORK_VOCABULARY_DIRECTIVE = "Otto work vocabulary: a suggested task is deferred work for the user and does not start work; a chat is an active Otto chat session; a child chat is created by another chat; a personality profile is a reusable provider, model, mode, effort, and behavior template; an orchestration coordinates multiple chats; a schedule starts a background chat when due; a heartbeat sends a reminder or prompt and does not start a chat. Use suggest_task for concrete work to preserve for later, create_chat to start one chat now, and start_orchestration only for managed multi-chat coordination. Use list_personalities, optionally filtered by roles, before choosing a personality profile. Never substitute a harness-native agent-spawn tool for suggest_task, and when a user names an Otto tool exactly, use that exact Otto tool.";
|
|
119
112
|
export const ORCHESTRATOR_METHOD_DIRECTIVE = "You are the orchestrator - the team's sole conductor. Choose tools because the task needs their specific capability, never because a tool is available or named. " +
|
|
120
|
-
"Do a small, self-contained task directly. Use
|
|
121
|
-
"For work that genuinely needs orchestration: (1) if the shape is unclear, dispatch
|
|
113
|
+
"Do a small, self-contained task directly. Use create_chat only for an independently executable piece of active work that benefits from its own chat. Use suggest_task only to preserve a concrete, out-of-scope follow-up for later. Use start_orchestration only when the active work needs a declared multi-chat plan with daemon-managed fan-out, gathering, judging, loops, or approval gates. " +
|
|
114
|
+
"For work that genuinely needs orchestration: (1) if the shape is unclear, dispatch research and planning chats; (2) declare the plan with start_orchestration - phases typed research/plan/implement/design/verify/gate/deliver, fanning out where several angles help and attaching a judger to grade them, looping until enough pass; (3) put a gate before irreversible or costly steps so the user approves; (4) synthesize the passing results into the deliverable. " +
|
|
122
115
|
"Every phase maps to a teammate's role; if the active team lacks a role a phase needs, say so plainly and stop rather than papering over the gap.";
|
|
123
116
|
/**
|
|
124
117
|
* The in-context "role directive" injected into a personality's system prompt at
|
|
125
118
|
* spawn. The orchestrator gets the full conductor method; other coordinators
|
|
126
|
-
* (chatter/artificer/scheduler) get a lighter delegate nudge; focused
|
|
119
|
+
* (chatter/artificer/scheduler) get a lighter delegate nudge; focused personalities
|
|
127
120
|
* are told to stay on the task someone is waiting on. Roleless spawns get
|
|
128
121
|
* nothing. This is guidance, not a gate - the tools stay available either way.
|
|
129
122
|
*/
|
|
@@ -137,9 +130,9 @@ export function composeRoleFocusDirective(roles) {
|
|
|
137
130
|
return `${ORCHESTRATOR_METHOD_DIRECTIVE} (Your roles: ${roleList}.)`;
|
|
138
131
|
}
|
|
139
132
|
if (normalized.some((role) => PERSONALITY_ROLE_INFO[role].tier === "coordinator")) {
|
|
140
|
-
return `You are a coordinator personality (roles: ${roleList}). You front interactive work and may delegate when the task benefits from it: use list_personalities to see who else is available, then either do the work directly,
|
|
133
|
+
return `You are a coordinator personality (roles: ${roleList}). You front interactive work and may delegate when the task benefits from it: use list_personalities to see who else is available, then either do the work directly, create a child chat for an independent active piece, or hand off genuinely multi-chat work to the team's orchestrator.`;
|
|
141
134
|
}
|
|
142
|
-
return `You are a focused
|
|
135
|
+
return `You are a focused personality (roles: ${roleList}). Someone is waiting on this specific task - stay on it and finish it. You can still call list_personalities to see the roster, but don't create child chats or start side workflows unless it is genuinely essential to completing this job.`;
|
|
143
136
|
}
|
|
144
137
|
/**
|
|
145
138
|
* Decide whether a personality is usable against a provider's current snapshot.
|
package/dist/agent-types.d.ts
CHANGED
|
@@ -77,6 +77,8 @@ export type ModelTier = "deep" | "standard" | "fast";
|
|
|
77
77
|
export interface AgentModelDefinition {
|
|
78
78
|
provider: AgentProvider;
|
|
79
79
|
id: string;
|
|
80
|
+
aliases?: string[];
|
|
81
|
+
isSelectable?: boolean;
|
|
80
82
|
label: string;
|
|
81
83
|
description?: string;
|
|
82
84
|
/** Catalog-owned model-family identity, currently emitted by Otto Brain only. */
|
|
@@ -372,6 +374,13 @@ export interface CompactionTimelineItem {
|
|
|
372
374
|
preTokens?: number;
|
|
373
375
|
postTokens?: number;
|
|
374
376
|
}
|
|
377
|
+
export interface AgentTaskItem {
|
|
378
|
+
text: string;
|
|
379
|
+
completed: boolean;
|
|
380
|
+
id?: string;
|
|
381
|
+
status?: "pending" | "in_progress" | "completed";
|
|
382
|
+
activeForm?: string;
|
|
383
|
+
}
|
|
375
384
|
export type AgentTimelineItem = {
|
|
376
385
|
type: "user_message";
|
|
377
386
|
text: string;
|
|
@@ -386,10 +395,7 @@ export type AgentTimelineItem = {
|
|
|
386
395
|
text: string;
|
|
387
396
|
} | ToolCallTimelineItem | {
|
|
388
397
|
type: "todo";
|
|
389
|
-
items:
|
|
390
|
-
text: string;
|
|
391
|
-
completed: boolean;
|
|
392
|
-
}[];
|
|
398
|
+
items: AgentTaskItem[];
|
|
393
399
|
} | {
|
|
394
400
|
type: "error";
|
|
395
401
|
message: string;
|
|
@@ -581,6 +587,18 @@ export interface AgentRunResult {
|
|
|
581
587
|
export declare const WORKSPACE_ACCESS_LEVELS: readonly ["none", "read", "write"];
|
|
582
588
|
export type WorkspaceAccess = (typeof WORKSPACE_ACCESS_LEVELS)[number];
|
|
583
589
|
export declare function isWorkspaceAccess(value: unknown): value is WorkspaceAccess;
|
|
590
|
+
export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
591
|
+
[key: string]: JsonValue;
|
|
592
|
+
};
|
|
593
|
+
export type ProviderOptions = Record<string, JsonValue>;
|
|
594
|
+
export interface McpToolRef {
|
|
595
|
+
kind: "mcp";
|
|
596
|
+
server: string;
|
|
597
|
+
tool: string;
|
|
598
|
+
}
|
|
599
|
+
export interface ToolPolicy {
|
|
600
|
+
preapproved: McpToolRef[];
|
|
601
|
+
}
|
|
584
602
|
export interface AgentSessionConfig {
|
|
585
603
|
provider: AgentProvider;
|
|
586
604
|
cwd: string;
|
|
@@ -609,6 +627,8 @@ export interface AgentSessionConfig {
|
|
|
609
627
|
codex?: AgentMetadata;
|
|
610
628
|
claude?: AgentMetadata;
|
|
611
629
|
};
|
|
630
|
+
providerOptions?: ProviderOptions;
|
|
631
|
+
toolPolicy?: ToolPolicy;
|
|
612
632
|
mcpServers?: Record<string, McpServerConfig>;
|
|
613
633
|
/**
|
|
614
634
|
* Internal agents are hidden from listings and don't trigger notifications.
|
|
@@ -3,6 +3,10 @@ import { TerminalStateSchema } from "../messages.js";
|
|
|
3
3
|
export declare const TerminalStreamResizeSchema: z.ZodObject<{
|
|
4
4
|
rows: z.ZodNumber;
|
|
5
5
|
cols: z.ZodNumber;
|
|
6
|
+
intent: z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
claim: "claim";
|
|
8
|
+
update: "update";
|
|
9
|
+
}>>;
|
|
6
10
|
}, z.core.$strip>;
|
|
7
11
|
export declare const TerminalStreamOpcode: {
|
|
8
12
|
readonly Output: 1;
|
|
@@ -3,6 +3,7 @@ import { TerminalStateSchema } from "../messages.js";
|
|
|
3
3
|
export const TerminalStreamResizeSchema = z.object({
|
|
4
4
|
rows: z.number().int().positive(),
|
|
5
5
|
cols: z.number().int().positive(),
|
|
6
|
+
intent: z.enum(["claim", "update"]).optional(),
|
|
6
7
|
});
|
|
7
8
|
export const TerminalStreamOpcode = {
|
|
8
9
|
Output: 0x01,
|
package/dist/brain.d.ts
CHANGED
|
@@ -95,12 +95,14 @@ export declare const BrainCapabilitiesSchema: z.ZodObject<{
|
|
|
95
95
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
96
96
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
97
97
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
98
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
98
99
|
}, z.core.$loose>;
|
|
99
100
|
export type BrainCapabilities = z.infer<typeof BrainCapabilitiesSchema>;
|
|
100
101
|
export declare const BrainHostStatusSchema: z.ZodObject<{
|
|
101
102
|
running: z.ZodBoolean;
|
|
102
103
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
103
104
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
105
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
104
106
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
105
107
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
106
108
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -109,6 +111,14 @@ export declare const BrainHostStatusSchema: z.ZodObject<{
|
|
|
109
111
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
110
112
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
111
113
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
114
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
115
|
+
state: z.ZodString;
|
|
116
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
117
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
118
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
119
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
120
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
121
|
+
}, z.core.$loose>>>;
|
|
112
122
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
113
123
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
114
124
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -130,6 +140,7 @@ export declare const BrainHostStatusSchema: z.ZodObject<{
|
|
|
130
140
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
131
141
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
132
142
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
143
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
133
144
|
}, z.core.$loose>>>;
|
|
134
145
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
135
146
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -173,6 +184,7 @@ export declare const BrainHostStatusResultSchema: z.ZodObject<{
|
|
|
173
184
|
running: z.ZodBoolean;
|
|
174
185
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
175
186
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
187
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
176
188
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
177
189
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
178
190
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -181,6 +193,14 @@ export declare const BrainHostStatusResultSchema: z.ZodObject<{
|
|
|
181
193
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
182
194
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
183
195
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
196
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
197
|
+
state: z.ZodString;
|
|
198
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
199
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
200
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
201
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
202
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
203
|
+
}, z.core.$loose>>>;
|
|
184
204
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
185
205
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
186
206
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -202,6 +222,7 @@ export declare const BrainHostStatusResultSchema: z.ZodObject<{
|
|
|
202
222
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
203
223
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
204
224
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
225
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
205
226
|
}, z.core.$loose>>>;
|
|
206
227
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
207
228
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -254,6 +275,7 @@ export declare const BrainHostStatusResponseSchema: z.ZodObject<{
|
|
|
254
275
|
running: z.ZodBoolean;
|
|
255
276
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
256
277
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
278
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
257
279
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
258
280
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
259
281
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -262,6 +284,14 @@ export declare const BrainHostStatusResponseSchema: z.ZodObject<{
|
|
|
262
284
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
263
285
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
264
286
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
287
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
288
|
+
state: z.ZodString;
|
|
289
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
290
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
291
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
292
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
293
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
294
|
+
}, z.core.$loose>>>;
|
|
265
295
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
266
296
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
267
297
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -283,6 +313,7 @@ export declare const BrainHostStatusResponseSchema: z.ZodObject<{
|
|
|
283
313
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
284
314
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
285
315
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
316
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
286
317
|
}, z.core.$loose>>>;
|
|
287
318
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
288
319
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -336,6 +367,7 @@ export declare const BrainHostStartResponseSchema: z.ZodObject<{
|
|
|
336
367
|
running: z.ZodBoolean;
|
|
337
368
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
338
369
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
370
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
339
371
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
340
372
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
341
373
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -344,6 +376,14 @@ export declare const BrainHostStartResponseSchema: z.ZodObject<{
|
|
|
344
376
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
345
377
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
346
378
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
379
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
380
|
+
state: z.ZodString;
|
|
381
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
382
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
383
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
384
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
385
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
386
|
+
}, z.core.$loose>>>;
|
|
347
387
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
348
388
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
349
389
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -365,6 +405,7 @@ export declare const BrainHostStartResponseSchema: z.ZodObject<{
|
|
|
365
405
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
366
406
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
367
407
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
408
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
368
409
|
}, z.core.$loose>>>;
|
|
369
410
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
370
411
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -417,6 +458,7 @@ export declare const BrainHostStopResponseSchema: z.ZodObject<{
|
|
|
417
458
|
running: z.ZodBoolean;
|
|
418
459
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
419
460
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
461
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
420
462
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
421
463
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
422
464
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -425,6 +467,14 @@ export declare const BrainHostStopResponseSchema: z.ZodObject<{
|
|
|
425
467
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
426
468
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
427
469
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
470
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
471
|
+
state: z.ZodString;
|
|
472
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
473
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
474
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
475
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
476
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
477
|
+
}, z.core.$loose>>>;
|
|
428
478
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
429
479
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
430
480
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -446,6 +496,7 @@ export declare const BrainHostStopResponseSchema: z.ZodObject<{
|
|
|
446
496
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
447
497
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
448
498
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
499
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
449
500
|
}, z.core.$loose>>>;
|
|
450
501
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
451
502
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -499,6 +550,7 @@ export declare const BrainHostRestartResponseSchema: z.ZodObject<{
|
|
|
499
550
|
running: z.ZodBoolean;
|
|
500
551
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
501
552
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
553
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
502
554
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
503
555
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
504
556
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -507,6 +559,14 @@ export declare const BrainHostRestartResponseSchema: z.ZodObject<{
|
|
|
507
559
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
508
560
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
509
561
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
562
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
563
|
+
state: z.ZodString;
|
|
564
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
565
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
566
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
567
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
568
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
569
|
+
}, z.core.$loose>>>;
|
|
510
570
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
511
571
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
512
572
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -528,6 +588,7 @@ export declare const BrainHostRestartResponseSchema: z.ZodObject<{
|
|
|
528
588
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
529
589
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
530
590
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
591
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
531
592
|
}, z.core.$loose>>>;
|
|
532
593
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
533
594
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -1886,6 +1947,7 @@ export declare const BrainModelLoadResponseSchema: z.ZodObject<{
|
|
|
1886
1947
|
running: z.ZodBoolean;
|
|
1887
1948
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1888
1949
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1950
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1889
1951
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1890
1952
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1891
1953
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -1894,6 +1956,14 @@ export declare const BrainModelLoadResponseSchema: z.ZodObject<{
|
|
|
1894
1956
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1895
1957
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1896
1958
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1959
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1960
|
+
state: z.ZodString;
|
|
1961
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1962
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1963
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1964
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1965
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1966
|
+
}, z.core.$loose>>>;
|
|
1897
1967
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1898
1968
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1899
1969
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1915,6 +1985,7 @@ export declare const BrainModelLoadResponseSchema: z.ZodObject<{
|
|
|
1915
1985
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
1916
1986
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
1917
1987
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
1988
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
1918
1989
|
}, z.core.$loose>>>;
|
|
1919
1990
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1920
1991
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -1994,6 +2065,7 @@ export declare const BrainModelUnloadResponseSchema: z.ZodObject<{
|
|
|
1994
2065
|
running: z.ZodBoolean;
|
|
1995
2066
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1996
2067
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2068
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1997
2069
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1998
2070
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1999
2071
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -2002,6 +2074,14 @@ export declare const BrainModelUnloadResponseSchema: z.ZodObject<{
|
|
|
2002
2074
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2003
2075
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2004
2076
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2077
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2078
|
+
state: z.ZodString;
|
|
2079
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2080
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2081
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2082
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2083
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2084
|
+
}, z.core.$loose>>>;
|
|
2005
2085
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2006
2086
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2007
2087
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -2023,6 +2103,7 @@ export declare const BrainModelUnloadResponseSchema: z.ZodObject<{
|
|
|
2023
2103
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
2024
2104
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
2025
2105
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
2106
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
2026
2107
|
}, z.core.$loose>>>;
|
|
2027
2108
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
2028
2109
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -2180,6 +2261,7 @@ export declare const BrainStatusChangedStatusPayloadSchema: z.ZodObject<{
|
|
|
2180
2261
|
running: z.ZodBoolean;
|
|
2181
2262
|
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2182
2263
|
version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2264
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2183
2265
|
apiVersion: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2184
2266
|
host: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2185
2267
|
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -2188,6 +2270,14 @@ export declare const BrainStatusChangedStatusPayloadSchema: z.ZodObject<{
|
|
|
2188
2270
|
state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2189
2271
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2190
2272
|
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2273
|
+
residents: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2274
|
+
state: z.ZodString;
|
|
2275
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2276
|
+
modelId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2277
|
+
pid: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2278
|
+
upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2279
|
+
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2280
|
+
}, z.core.$loose>>>;
|
|
2191
2281
|
vramBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2192
2282
|
loadSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2193
2283
|
startedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -2209,6 +2299,7 @@ export declare const BrainStatusChangedStatusPayloadSchema: z.ZodObject<{
|
|
|
2209
2299
|
writable: z.ZodDefault<z.ZodBoolean>;
|
|
2210
2300
|
jobs: z.ZodDefault<z.ZodBoolean>;
|
|
2211
2301
|
restart: z.ZodDefault<z.ZodBoolean>;
|
|
2302
|
+
processPool: z.ZodDefault<z.ZodBoolean>;
|
|
2212
2303
|
}, z.core.$loose>>>;
|
|
2213
2304
|
resources: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
2214
2305
|
logLineCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
package/dist/brain.js
CHANGED
|
@@ -143,6 +143,8 @@ export const BrainCapabilitiesSchema = z
|
|
|
143
143
|
jobs: z.boolean().default(false),
|
|
144
144
|
/** The brain can ask its owning daemon to restart it. */
|
|
145
145
|
restart: z.boolean().default(false),
|
|
146
|
+
/** The host can keep multiple independently supervised model processes resident. */
|
|
147
|
+
processPool: z.boolean().default(false),
|
|
146
148
|
})
|
|
147
149
|
.passthrough();
|
|
148
150
|
// The brain's host status, as the daemon derives it: liveness plus the fields
|
|
@@ -153,6 +155,8 @@ export const BrainHostStatusSchema = z
|
|
|
153
155
|
running: z.boolean(),
|
|
154
156
|
pid: z.number().nullable().optional(),
|
|
155
157
|
version: z.string().nullable().optional(),
|
|
158
|
+
/** The llama.cpp runtime resolved by the Brain host, or "not installed". */
|
|
159
|
+
runtime: z.string().nullable().optional(),
|
|
156
160
|
/**
|
|
157
161
|
* Which generation of the brain's management contract the far side speaks.
|
|
158
162
|
*
|
|
@@ -168,6 +172,19 @@ export const BrainHostStatusSchema = z
|
|
|
168
172
|
state: z.string().nullable().optional(),
|
|
169
173
|
model: z.string().nullable().optional(),
|
|
170
174
|
modelId: z.string().nullable().optional(),
|
|
175
|
+
/** Every independently hosted resident model process. */
|
|
176
|
+
residents: z
|
|
177
|
+
.array(z
|
|
178
|
+
.object({
|
|
179
|
+
state: z.string(),
|
|
180
|
+
model: z.string().nullable().optional(),
|
|
181
|
+
modelId: z.string().nullable().optional(),
|
|
182
|
+
pid: z.number().nullable().optional(),
|
|
183
|
+
upstream: z.string().nullable().optional(),
|
|
184
|
+
vramBytes: z.number().nullable().optional(),
|
|
185
|
+
})
|
|
186
|
+
.passthrough())
|
|
187
|
+
.optional(),
|
|
171
188
|
vramBytes: z.number().nullable().optional(),
|
|
172
189
|
loadSeconds: z.number().nullable().optional(),
|
|
173
190
|
startedAt: z.string().nullable().optional(),
|
|
@@ -380,7 +397,8 @@ export const BrainModelsListResponseSchema = z.object({
|
|
|
380
397
|
});
|
|
381
398
|
// Read/write a *remote* brain's own config (its /__host/config). Only valid in
|
|
382
399
|
// brain.mode "remote"; the config is the remote brain's effective config with
|
|
383
|
-
// secrets redacted. Editable fields are model-related (defaultModel,
|
|
400
|
+
// secrets redacted. Editable fields are model-related (defaultModel,
|
|
401
|
+
// maxLoadedModels, lockedModels, lockModel);
|
|
384
402
|
// network/TLS/auth stay host-owned. Gated by features.brainRemote.
|
|
385
403
|
export const BrainRemoteConfigSchema = z.record(z.string(), z.unknown());
|
|
386
404
|
export const BrainRemoteConfigGetRequestSchema = z.object({
|
package/dist/chat/rpc-schemas.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { ChatMessageSchema, ChatRoomDetailSchema } from "./types.js";
|
|
3
|
+
// COMPAT(chatRooms): retained after the v0.3.0 feature removal; remove after 2027-02-09 when mixed-version peers no longer send legacy messages.
|
|
3
4
|
export const ChatCreateRequestSchema = z.object({
|
|
4
5
|
type: z.literal("chat/create"),
|
|
5
6
|
requestId: z.string(),
|
package/dist/chat/types.js
CHANGED
|
@@ -7,6 +7,7 @@ export declare const CLIENT_CAPS: {
|
|
|
7
7
|
readonly projectUpdates: "project_updates";
|
|
8
8
|
readonly communicationsPresenceUpdates: "communications_presence_updates";
|
|
9
9
|
readonly brainLogWatch: "brain_log_watch";
|
|
10
|
+
readonly compactProviderSnapshots: "compact_provider_snapshots";
|
|
10
11
|
readonly browserHost: "browser_host";
|
|
11
12
|
};
|
|
12
13
|
export type ClientCapability = (typeof CLIENT_CAPS)[keyof typeof CLIENT_CAPS];
|
|
@@ -30,6 +30,10 @@ export const CLIENT_CAPS = {
|
|
|
30
30
|
// Logs tab opens; a client without it keeps the old unconditional feed,
|
|
31
31
|
// because it has no way to ask and would otherwise lose live logs entirely.
|
|
32
32
|
brainLogWatch: "brain_log_watch",
|
|
33
|
+
// COMPAT(compactProviderSnapshots): added in v0.2.X. Capable clients receive
|
|
34
|
+
// provider catalogs with shared thinking sets and may revalidate by content hash.
|
|
35
|
+
// Remove the legacy snapshot encoding after 2027-02-04.
|
|
36
|
+
compactProviderSnapshots: "compact_provider_snapshots",
|
|
33
37
|
browserHost: "browser_host",
|
|
34
38
|
};
|
|
35
39
|
//# sourceMappingURL=client-capabilities.js.map
|
package/dist/daemon-config.d.ts
CHANGED
|
@@ -222,6 +222,8 @@ export declare const MutableBrainConfigSchema: z.ZodObject<{
|
|
|
222
222
|
port: z.ZodDefault<z.ZodNumber>;
|
|
223
223
|
}, z.core.$loose>>;
|
|
224
224
|
defaultModel: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
225
|
+
maxLoadedModels: z.ZodDefault<z.ZodNumber>;
|
|
226
|
+
lockedModels: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
225
227
|
runtime: z.ZodDefault<z.ZodObject<{
|
|
226
228
|
source: z.ZodDefault<z.ZodEnum<{
|
|
227
229
|
auto: "auto";
|
|
@@ -297,6 +299,8 @@ export declare const MutableBrainConfigPatchSchema: z.ZodObject<{
|
|
|
297
299
|
port: z.ZodOptional<z.ZodNumber>;
|
|
298
300
|
}, z.core.$loose>>;
|
|
299
301
|
defaultModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
302
|
+
maxLoadedModels: z.ZodOptional<z.ZodNumber>;
|
|
303
|
+
lockedModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
300
304
|
runtime: z.ZodOptional<z.ZodObject<{
|
|
301
305
|
source: z.ZodOptional<z.ZodEnum<{
|
|
302
306
|
auto: "auto";
|
|
@@ -344,6 +348,8 @@ export declare const DEFAULT_MUTABLE_BRAIN_CONFIG: {
|
|
|
344
348
|
port: number;
|
|
345
349
|
};
|
|
346
350
|
defaultModel: null;
|
|
351
|
+
maxLoadedModels: number;
|
|
352
|
+
lockedModels: never[];
|
|
347
353
|
runtime: {
|
|
348
354
|
source: "auto";
|
|
349
355
|
path: null;
|