@otto-code/protocol 0.6.4 → 0.6.6
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-teams.d.ts +10 -0
- package/dist/agent-teams.js +18 -0
- package/dist/generated/validation/ws-outbound.aot.js +14766 -13857
- package/dist/messages.d.ts +962 -1
- package/dist/messages.js +224 -9
- package/dist/validation/ws-outbound-schema-metadata.d.ts +171 -0
- package/package.json +1 -1
package/dist/messages.js
CHANGED
|
@@ -199,20 +199,25 @@ const AgentPersonalityVoiceSchema = z
|
|
|
199
199
|
name: z.string().min(1),
|
|
200
200
|
})
|
|
201
201
|
.passthrough();
|
|
202
|
-
// The
|
|
203
|
-
//
|
|
204
|
-
//
|
|
205
|
-
|
|
202
|
+
// The Visualizer lifecycle moments a personality voice-cue line can belong to.
|
|
203
|
+
// Protocol owns this vocabulary — the daemon's cue generator, the personality
|
|
204
|
+
// editor, and the Visualizer playback hook all import it from here.
|
|
205
|
+
// "waiting" is the parent's turn ending while its observed sub-agents are still
|
|
206
|
+
// running; it DEFERS "done" rather than replacing it (see docs/visualizer.md).
|
|
207
|
+
export const CUE_MOMENTS = ["join", "thinking", "waiting", "done"];
|
|
206
208
|
// Pre-generated (and user-editable) spoken "voice cue" lines for the personality
|
|
207
|
-
// — a few short variations for each
|
|
208
|
-
//
|
|
209
|
-
// they're deterministic and hand-tunable in the
|
|
210
|
-
// them directly (no runtime generation). All groups
|
|
211
|
-
// personality may have none, or only some
|
|
209
|
+
// — a few short variations for each Visualizer moment (its node joins the graph,
|
|
210
|
+
// first starts thinking, finishes its turn but waits on sub-agents, completes).
|
|
211
|
+
// Stored on the personality so they're deterministic and hand-tunable in the
|
|
212
|
+
// editor; the Visualizer reads them directly (no runtime generation). All groups
|
|
213
|
+
// optional/loose — a personality may have none, or only some (personalities
|
|
214
|
+
// authored before "waiting" existed simply stay silent for that moment).
|
|
215
|
+
// See docs/visualizer.md "Voice cues".
|
|
212
216
|
const AgentPersonalityVoiceCuesSchema = z
|
|
213
217
|
.object({
|
|
214
218
|
join: z.array(z.string()).optional(),
|
|
215
219
|
thinking: z.array(z.string()).optional(),
|
|
220
|
+
waiting: z.array(z.string()).optional(),
|
|
216
221
|
done: z.array(z.string()).optional(),
|
|
217
222
|
})
|
|
218
223
|
.passthrough();
|
|
@@ -315,6 +320,29 @@ export const ModelTierOverrideSchema = z
|
|
|
315
320
|
tier: ModelTierSchema,
|
|
316
321
|
})
|
|
317
322
|
.passthrough();
|
|
323
|
+
// A remembered provider endpoint: a base URL together with the credential it
|
|
324
|
+
// was saved with, so pointing a provider back at a previous endpoint is one
|
|
325
|
+
// pick instead of re-typing the key. Entries are scoped by the connection
|
|
326
|
+
// env-var pair they belong to (OPENAI_BASE_URL/OPENAI_API_KEY vs
|
|
327
|
+
// ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKEN), which is exactly what the provider
|
|
328
|
+
// settings sheet keys its dropdown off — so every openai-compatible provider
|
|
329
|
+
// entry on the host shares one pool, and Claude-compatible entries share
|
|
330
|
+
// another. Deliberately `z.string()` rather than an enum: a future env-var
|
|
331
|
+
// family must not make old entries unparseable.
|
|
332
|
+
export const SavedProviderEndpointSchema = z
|
|
333
|
+
.object({
|
|
334
|
+
/** Stable identity, `${baseUrlKey}::${baseUrl}` — dedupes on re-save. */
|
|
335
|
+
id: z.string().min(1),
|
|
336
|
+
baseUrlKey: z.string().min(1),
|
|
337
|
+
apiKeyKey: z.string().min(1),
|
|
338
|
+
baseUrl: z.string().min(1),
|
|
339
|
+
apiKey: z.string().default(""),
|
|
340
|
+
/** User-facing name; the UI falls back to the URL when absent. */
|
|
341
|
+
label: z.string().optional(),
|
|
342
|
+
/** Epoch ms of the last save, used to order the dropdown newest-first. */
|
|
343
|
+
savedAt: z.number().optional(),
|
|
344
|
+
})
|
|
345
|
+
.passthrough();
|
|
318
346
|
export const MutableDaemonConfigSchema = z
|
|
319
347
|
.object({
|
|
320
348
|
mcp: z
|
|
@@ -327,6 +355,8 @@ export const MutableDaemonConfigSchema = z
|
|
|
327
355
|
toolGroups: z.array(z.enum(OTTO_TOOL_GROUPS)).optional(),
|
|
328
356
|
})
|
|
329
357
|
.passthrough(),
|
|
358
|
+
// Defaults off, matching the daemon's own resolution — browser tools are an
|
|
359
|
+
// explicit opt-in, so an omitted section must never read as on.
|
|
330
360
|
browserTools: MutableBrowserToolsConfigSchema.default({ enabled: false }),
|
|
331
361
|
// Daemon-wide agent behavior toggles (Claude-tier capabilities). Defaults to
|
|
332
362
|
// all-on so a new client parsing an old daemon's config sees today's behavior.
|
|
@@ -361,6 +391,11 @@ export const MutableDaemonConfigSchema = z
|
|
|
361
391
|
// Gated by the modelTierOverrides feature; defaults empty so a new client
|
|
362
392
|
// parsing an old daemon's config still sees a well-formed array.
|
|
363
393
|
modelTierOverrides: z.array(ModelTierOverrideSchema).default([]),
|
|
394
|
+
// Per-host remembered provider endpoints (base URL + credential), pooled by
|
|
395
|
+
// env-var family. Gated by the savedProviderEndpoints feature; defaults
|
|
396
|
+
// empty so a new client parsing an old daemon's config still sees a
|
|
397
|
+
// well-formed array.
|
|
398
|
+
savedProviderEndpoints: z.array(SavedProviderEndpointSchema).default([]),
|
|
364
399
|
})
|
|
365
400
|
.passthrough();
|
|
366
401
|
export const MutableDaemonConfigPatchSchema = z
|
|
@@ -396,6 +431,9 @@ export const MutableDaemonConfigPatchSchema = z
|
|
|
396
431
|
// Gated by server_info features.modelTierOverrides. Replaces the full array
|
|
397
432
|
// (read-modify-write), so removing an entry clears that model's tag.
|
|
398
433
|
modelTierOverrides: z.array(ModelTierOverrideSchema).optional(),
|
|
434
|
+
// Gated by server_info features.savedProviderEndpoints. Replaces the full
|
|
435
|
+
// array (read-modify-write), so forgetting an endpoint drops it from disk.
|
|
436
|
+
savedProviderEndpoints: z.array(SavedProviderEndpointSchema).optional(),
|
|
399
437
|
})
|
|
400
438
|
.partial()
|
|
401
439
|
.passthrough();
|
|
@@ -2368,6 +2406,57 @@ export const CheckoutGitRollbackRequestSchema = z.object({
|
|
|
2368
2406
|
allowWithRunningAgents: z.boolean().optional(),
|
|
2369
2407
|
requestId: z.string(),
|
|
2370
2408
|
});
|
|
2409
|
+
// ── Git file investigation (local git, no hosting provider) ─────────────────
|
|
2410
|
+
// History / per-commit diff / blame / origin commit for one file or one line
|
|
2411
|
+
// range within it. Everything below is plain local git: it works in a repo with
|
|
2412
|
+
// no remote and no forge connection, and it is provider-neutral by construction
|
|
2413
|
+
// (it inspects the repo, not an agent), so there is no per-provider rollout to
|
|
2414
|
+
// look for. Gated by server_info.features.checkoutGitFileHistory.
|
|
2415
|
+
// Commits that touched a file, newest first. Whole-file mode follows renames;
|
|
2416
|
+
// passing startLine/endLine switches to `git log -L` for that range instead.
|
|
2417
|
+
export const CheckoutGitFileHistoryRequestSchema = z.object({
|
|
2418
|
+
type: z.literal("checkout.git.get_file_history.request"),
|
|
2419
|
+
cwd: z.string(),
|
|
2420
|
+
// Repo-relative path, as the file is named today.
|
|
2421
|
+
path: z.string(),
|
|
2422
|
+
limit: z.number().int().positive().optional(),
|
|
2423
|
+
offset: z.number().int().nonnegative().optional(),
|
|
2424
|
+
// 1-based inclusive line range. Both or neither.
|
|
2425
|
+
startLine: z.number().int().positive().optional(),
|
|
2426
|
+
endLine: z.number().int().positive().optional(),
|
|
2427
|
+
requestId: z.string(),
|
|
2428
|
+
});
|
|
2429
|
+
// What a single commit did to a single file, as a unified diff. `path` must be
|
|
2430
|
+
// the file's name *at that commit* (history entries carry it) or the pathspec
|
|
2431
|
+
// misses across a rename.
|
|
2432
|
+
export const CheckoutGitFileCommitDiffRequestSchema = z.object({
|
|
2433
|
+
type: z.literal("checkout.git.get_file_commit_diff.request"),
|
|
2434
|
+
cwd: z.string(),
|
|
2435
|
+
path: z.string(),
|
|
2436
|
+
sha: z.string(),
|
|
2437
|
+
ignoreWhitespace: z.boolean().optional(),
|
|
2438
|
+
requestId: z.string(),
|
|
2439
|
+
});
|
|
2440
|
+
// One page of blame. Always paged — blaming a large file whole would block the
|
|
2441
|
+
// daemon — so the client walks the file a page at a time.
|
|
2442
|
+
export const CheckoutGitFileBlameRequestSchema = z.object({
|
|
2443
|
+
type: z.literal("checkout.git.get_file_blame.request"),
|
|
2444
|
+
cwd: z.string(),
|
|
2445
|
+
path: z.string(),
|
|
2446
|
+
startLine: z.number().int().positive().optional(),
|
|
2447
|
+
lineCount: z.number().int().positive().optional(),
|
|
2448
|
+
// Blame at a specific commit instead of the working tree.
|
|
2449
|
+
sha: z.string().optional(),
|
|
2450
|
+
requestId: z.string(),
|
|
2451
|
+
});
|
|
2452
|
+
// The commit that first added the file ("who originally wrote this"), following
|
|
2453
|
+
// renames so a moved file reports its true origin.
|
|
2454
|
+
export const CheckoutGitFileOriginRequestSchema = z.object({
|
|
2455
|
+
type: z.literal("checkout.git.get_file_origin.request"),
|
|
2456
|
+
cwd: z.string(),
|
|
2457
|
+
path: z.string(),
|
|
2458
|
+
requestId: z.string(),
|
|
2459
|
+
});
|
|
2371
2460
|
export const CheckoutMergeRequestSchema = z.object({
|
|
2372
2461
|
type: z.literal("checkout_merge_request"),
|
|
2373
2462
|
cwd: z.string(),
|
|
@@ -3072,6 +3161,10 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3072
3161
|
CheckoutGitCommitAgentRequestSchema,
|
|
3073
3162
|
CheckoutGitRollbackRequestSchema,
|
|
3074
3163
|
CheckoutGitGetOperationLogRequestSchema,
|
|
3164
|
+
CheckoutGitFileHistoryRequestSchema,
|
|
3165
|
+
CheckoutGitFileCommitDiffRequestSchema,
|
|
3166
|
+
CheckoutGitFileBlameRequestSchema,
|
|
3167
|
+
CheckoutGitFileOriginRequestSchema,
|
|
3075
3168
|
RunsGetSnapshotRequestSchema,
|
|
3076
3169
|
RunsGateRespondRequestSchema,
|
|
3077
3170
|
RunsCancelRequestSchema,
|
|
@@ -3395,10 +3488,18 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3395
3488
|
checkoutGitRollback: z.boolean().optional(),
|
|
3396
3489
|
// COMPAT(checkoutGitLog): added in v0.5.1, drop the gate when daemon floor >= v0.5.1.
|
|
3397
3490
|
checkoutGitLog: z.boolean().optional(),
|
|
3491
|
+
// Local-git file investigation: history, per-commit diff, blame, origin
|
|
3492
|
+
// commit — for a whole file or a line range. No forge connection needed
|
|
3493
|
+
// and no per-provider rollout; it is git, so every provider gets it at
|
|
3494
|
+
// once.
|
|
3495
|
+
// COMPAT(checkoutGitFileHistory): added in v0.6.6, drop the gate when daemon floor >= v0.6.6.
|
|
3496
|
+
checkoutGitFileHistory: z.boolean().optional(),
|
|
3398
3497
|
// COMPAT(agentTeams): added in v0.5.2, drop the gate when daemon floor >= v0.5.2.
|
|
3399
3498
|
agentTeams: z.boolean().optional(),
|
|
3400
3499
|
// COMPAT(modelTierOverrides): added in v0.5.2, drop the gate when daemon floor >= v0.5.2.
|
|
3401
3500
|
modelTierOverrides: z.boolean().optional(),
|
|
3501
|
+
// COMPAT(savedProviderEndpoints): added in v0.6.5, drop the gate when daemon floor >= v0.6.5.
|
|
3502
|
+
savedProviderEndpoints: z.boolean().optional(),
|
|
3402
3503
|
// COMPAT(agentOrchestration): added in v0.5.3, drop the gate when daemon floor >= v0.5.3.
|
|
3403
3504
|
agentOrchestration: z.boolean().optional(),
|
|
3404
3505
|
// COMPAT(activityStats): added in v0.5.3, drop the gate when daemon floor >= v0.5.3.
|
|
@@ -4610,6 +4711,116 @@ export const CheckoutGitRollbackResponseSchema = z.object({
|
|
|
4610
4711
|
requestId: z.string(),
|
|
4611
4712
|
}),
|
|
4612
4713
|
});
|
|
4714
|
+
// ── Git file investigation responses ────────────────────────────────────────
|
|
4715
|
+
// A structured failure any of the four file-investigation RPCs can report. They
|
|
4716
|
+
// are pure reads, so the failure modes are narrow: not a repo, path/revision
|
|
4717
|
+
// rejected, or git itself refused.
|
|
4718
|
+
export const CheckoutGitFileErrorSchema = z.discriminatedUnion("kind", [
|
|
4719
|
+
z.object({
|
|
4720
|
+
kind: z.literal("not_git_repo"),
|
|
4721
|
+
}),
|
|
4722
|
+
z.object({
|
|
4723
|
+
kind: z.literal("invalid_path"),
|
|
4724
|
+
detail: z.string(),
|
|
4725
|
+
}),
|
|
4726
|
+
z.object({
|
|
4727
|
+
kind: z.literal("git_failed"),
|
|
4728
|
+
detail: z.string(),
|
|
4729
|
+
}),
|
|
4730
|
+
]);
|
|
4731
|
+
export const GitFileHistoryEntrySchema = z.object({
|
|
4732
|
+
sha: z.string(),
|
|
4733
|
+
shortSha: z.string(),
|
|
4734
|
+
subject: z.string(),
|
|
4735
|
+
body: z.string(),
|
|
4736
|
+
authorName: z.string(),
|
|
4737
|
+
authorEmail: z.string(),
|
|
4738
|
+
// Unix seconds.
|
|
4739
|
+
authoredAt: z.number(),
|
|
4740
|
+
committerName: z.string(),
|
|
4741
|
+
committedAt: z.number(),
|
|
4742
|
+
// The file's name at this commit — differs from the requested path across a
|
|
4743
|
+
// rename. Diff requests must echo this one back, not the current name.
|
|
4744
|
+
path: z.string(),
|
|
4745
|
+
previousPath: z.string().optional(),
|
|
4746
|
+
// Single-letter git status (A/M/D/R/C).
|
|
4747
|
+
changeKind: z.string().optional(),
|
|
4748
|
+
isMerge: z.boolean(),
|
|
4749
|
+
// Parent object names, so a diff view can name the revision it is comparing
|
|
4750
|
+
// against instead of writing "<sha>^". Empty for a root commit.
|
|
4751
|
+
parentShas: z.array(z.string()).optional(),
|
|
4752
|
+
});
|
|
4753
|
+
export const CheckoutGitFileHistoryResponseSchema = z.object({
|
|
4754
|
+
type: z.literal("checkout.git.get_file_history.response"),
|
|
4755
|
+
payload: z.object({
|
|
4756
|
+
cwd: z.string(),
|
|
4757
|
+
path: z.string(),
|
|
4758
|
+
entries: z.array(GitFileHistoryEntrySchema),
|
|
4759
|
+
hasMore: z.boolean(),
|
|
4760
|
+
error: CheckoutGitFileErrorSchema.nullable(),
|
|
4761
|
+
requestId: z.string(),
|
|
4762
|
+
}),
|
|
4763
|
+
});
|
|
4764
|
+
export const CheckoutGitFileCommitDiffResponseSchema = z.object({
|
|
4765
|
+
type: z.literal("checkout.git.get_file_commit_diff.response"),
|
|
4766
|
+
payload: z.object({
|
|
4767
|
+
cwd: z.string(),
|
|
4768
|
+
path: z.string(),
|
|
4769
|
+
sha: z.string(),
|
|
4770
|
+
diff: z.string(),
|
|
4771
|
+
// Highlighted/parsed form of the same diff, when it parsed cleanly.
|
|
4772
|
+
structured: z.array(ParsedDiffFileSchema).optional(),
|
|
4773
|
+
// The file's previous revision — the diff's left-hand side, and the honest
|
|
4774
|
+
// label for it. Absent when this revision created the file.
|
|
4775
|
+
previousSha: z.string().optional(),
|
|
4776
|
+
previousPath: z.string().optional(),
|
|
4777
|
+
truncated: z.boolean(),
|
|
4778
|
+
error: CheckoutGitFileErrorSchema.nullable(),
|
|
4779
|
+
requestId: z.string(),
|
|
4780
|
+
}),
|
|
4781
|
+
});
|
|
4782
|
+
export const GitBlameLineSchema = z.object({
|
|
4783
|
+
line: z.number(),
|
|
4784
|
+
sha: z.string(),
|
|
4785
|
+
originalLine: z.number(),
|
|
4786
|
+
});
|
|
4787
|
+
// Blame commit metadata is deduped by sha rather than inlined per line: a
|
|
4788
|
+
// thousand-line page usually references a handful of commits.
|
|
4789
|
+
export const GitBlameCommitSchema = z.object({
|
|
4790
|
+
sha: z.string(),
|
|
4791
|
+
shortSha: z.string(),
|
|
4792
|
+
summary: z.string(),
|
|
4793
|
+
authorName: z.string(),
|
|
4794
|
+
authorEmail: z.string(),
|
|
4795
|
+
authoredAt: z.number(),
|
|
4796
|
+
path: z.string().optional(),
|
|
4797
|
+
});
|
|
4798
|
+
export const CheckoutGitFileBlameResponseSchema = z.object({
|
|
4799
|
+
type: z.literal("checkout.git.get_file_blame.response"),
|
|
4800
|
+
payload: z.object({
|
|
4801
|
+
cwd: z.string(),
|
|
4802
|
+
path: z.string(),
|
|
4803
|
+
lines: z.array(GitBlameLineSchema),
|
|
4804
|
+
commits: z.array(GitBlameCommitSchema),
|
|
4805
|
+
startLine: z.number(),
|
|
4806
|
+
endLine: z.number(),
|
|
4807
|
+
reachedEndOfFile: z.boolean(),
|
|
4808
|
+
error: CheckoutGitFileErrorSchema.nullable(),
|
|
4809
|
+
requestId: z.string(),
|
|
4810
|
+
}),
|
|
4811
|
+
});
|
|
4812
|
+
export const CheckoutGitFileOriginResponseSchema = z.object({
|
|
4813
|
+
type: z.literal("checkout.git.get_file_origin.response"),
|
|
4814
|
+
payload: z.object({
|
|
4815
|
+
cwd: z.string(),
|
|
4816
|
+
path: z.string(),
|
|
4817
|
+
// Null when the file has no commit history (never committed, or a shallow
|
|
4818
|
+
// clone that does not reach its creation).
|
|
4819
|
+
entry: GitFileHistoryEntrySchema.nullable(),
|
|
4820
|
+
error: CheckoutGitFileErrorSchema.nullable(),
|
|
4821
|
+
requestId: z.string(),
|
|
4822
|
+
}),
|
|
4823
|
+
});
|
|
4613
4824
|
export const CheckoutMergeResponseSchema = z.object({
|
|
4614
4825
|
type: z.literal("checkout_merge_response"),
|
|
4615
4826
|
payload: z.object({
|
|
@@ -5672,6 +5883,10 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
5672
5883
|
CheckoutGitRollbackResponseSchema,
|
|
5673
5884
|
CheckoutGitGetOperationLogResponseSchema,
|
|
5674
5885
|
CheckoutGitLogAppendedNotificationSchema,
|
|
5886
|
+
CheckoutGitFileHistoryResponseSchema,
|
|
5887
|
+
CheckoutGitFileCommitDiffResponseSchema,
|
|
5888
|
+
CheckoutGitFileBlameResponseSchema,
|
|
5889
|
+
CheckoutGitFileOriginResponseSchema,
|
|
5675
5890
|
RunsGetSnapshotResponseSchema,
|
|
5676
5891
|
RunsUpdatedNotificationSchema,
|
|
5677
5892
|
RunsGateRespondResponseSchema,
|
|
@@ -3511,6 +3511,7 @@ export declare const WSOutboundMessageSchema: {
|
|
|
3511
3511
|
voiceCues: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
3512
3512
|
join: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3513
3513
|
thinking: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3514
|
+
waiting: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3514
3515
|
done: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3515
3516
|
}, import("zod/v4/core").$loose>>;
|
|
3516
3517
|
}, import("zod/v4/core").$loose>>>;
|
|
@@ -3533,6 +3534,15 @@ export declare const WSOutboundMessageSchema: {
|
|
|
3533
3534
|
modelId: import("zod").ZodString;
|
|
3534
3535
|
tier: import("zod").ZodType<import("../agent-types.js").ModelTier, unknown, import("zod/v4/core").$ZodTypeInternals<import("../agent-types.js").ModelTier, unknown>>;
|
|
3535
3536
|
}, import("zod/v4/core").$loose>>>;
|
|
3537
|
+
savedProviderEndpoints: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
|
|
3538
|
+
id: import("zod").ZodString;
|
|
3539
|
+
baseUrlKey: import("zod").ZodString;
|
|
3540
|
+
apiKeyKey: import("zod").ZodString;
|
|
3541
|
+
baseUrl: import("zod").ZodString;
|
|
3542
|
+
apiKey: import("zod").ZodDefault<import("zod").ZodString>;
|
|
3543
|
+
label: import("zod").ZodOptional<import("zod").ZodString>;
|
|
3544
|
+
savedAt: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
3545
|
+
}, import("zod/v4/core").$loose>>>;
|
|
3536
3546
|
}, import("zod/v4/core").$loose>;
|
|
3537
3547
|
}, import("zod/v4/core").$loose>;
|
|
3538
3548
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
@@ -3657,6 +3667,7 @@ export declare const WSOutboundMessageSchema: {
|
|
|
3657
3667
|
voiceCues: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
3658
3668
|
join: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3659
3669
|
thinking: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3670
|
+
waiting: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3660
3671
|
done: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3661
3672
|
}, import("zod/v4/core").$loose>>;
|
|
3662
3673
|
}, import("zod/v4/core").$loose>>>;
|
|
@@ -3679,6 +3690,15 @@ export declare const WSOutboundMessageSchema: {
|
|
|
3679
3690
|
modelId: import("zod").ZodString;
|
|
3680
3691
|
tier: import("zod").ZodType<import("../agent-types.js").ModelTier, unknown, import("zod/v4/core").$ZodTypeInternals<import("../agent-types.js").ModelTier, unknown>>;
|
|
3681
3692
|
}, import("zod/v4/core").$loose>>>;
|
|
3693
|
+
savedProviderEndpoints: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
|
|
3694
|
+
id: import("zod").ZodString;
|
|
3695
|
+
baseUrlKey: import("zod").ZodString;
|
|
3696
|
+
apiKeyKey: import("zod").ZodString;
|
|
3697
|
+
baseUrl: import("zod").ZodString;
|
|
3698
|
+
apiKey: import("zod").ZodDefault<import("zod").ZodString>;
|
|
3699
|
+
label: import("zod").ZodOptional<import("zod").ZodString>;
|
|
3700
|
+
savedAt: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
3701
|
+
}, import("zod/v4/core").$loose>>>;
|
|
3682
3702
|
}, import("zod/v4/core").$loose>;
|
|
3683
3703
|
}, import("zod/v4/core").$loose>;
|
|
3684
3704
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
@@ -3733,6 +3753,7 @@ export declare const WSOutboundMessageSchema: {
|
|
|
3733
3753
|
cues: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
3734
3754
|
join: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3735
3755
|
thinking: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3756
|
+
waiting: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3736
3757
|
done: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
3737
3758
|
}, import("zod/v4/core").$loose>>;
|
|
3738
3759
|
error: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -4798,6 +4819,156 @@ export declare const WSOutboundMessageSchema: {
|
|
|
4798
4819
|
text: import("zod").ZodString;
|
|
4799
4820
|
}, import("zod/v4/core").$strip>>;
|
|
4800
4821
|
}, import("zod/v4/core").$strip>;
|
|
4822
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4823
|
+
type: import("zod").ZodLiteral<"checkout.git.get_file_history.response">;
|
|
4824
|
+
payload: import("zod").ZodObject<{
|
|
4825
|
+
cwd: import("zod").ZodString;
|
|
4826
|
+
path: import("zod").ZodString;
|
|
4827
|
+
entries: import("zod").ZodArray<import("zod").ZodObject<{
|
|
4828
|
+
sha: import("zod").ZodString;
|
|
4829
|
+
shortSha: import("zod").ZodString;
|
|
4830
|
+
subject: import("zod").ZodString;
|
|
4831
|
+
body: import("zod").ZodString;
|
|
4832
|
+
authorName: import("zod").ZodString;
|
|
4833
|
+
authorEmail: import("zod").ZodString;
|
|
4834
|
+
authoredAt: import("zod").ZodNumber;
|
|
4835
|
+
committerName: import("zod").ZodString;
|
|
4836
|
+
committedAt: import("zod").ZodNumber;
|
|
4837
|
+
path: import("zod").ZodString;
|
|
4838
|
+
previousPath: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4839
|
+
changeKind: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4840
|
+
isMerge: import("zod").ZodBoolean;
|
|
4841
|
+
parentShas: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
4842
|
+
}, import("zod/v4/core").$strip>>;
|
|
4843
|
+
hasMore: import("zod").ZodBoolean;
|
|
4844
|
+
error: import("zod").ZodNullable<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
4845
|
+
kind: import("zod").ZodLiteral<"not_git_repo">;
|
|
4846
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4847
|
+
kind: import("zod").ZodLiteral<"invalid_path">;
|
|
4848
|
+
detail: import("zod").ZodString;
|
|
4849
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4850
|
+
kind: import("zod").ZodLiteral<"git_failed">;
|
|
4851
|
+
detail: import("zod").ZodString;
|
|
4852
|
+
}, import("zod/v4/core").$strip>], "kind">>;
|
|
4853
|
+
requestId: import("zod").ZodString;
|
|
4854
|
+
}, import("zod/v4/core").$strip>;
|
|
4855
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4856
|
+
type: import("zod").ZodLiteral<"checkout.git.get_file_commit_diff.response">;
|
|
4857
|
+
payload: import("zod").ZodObject<{
|
|
4858
|
+
cwd: import("zod").ZodString;
|
|
4859
|
+
path: import("zod").ZodString;
|
|
4860
|
+
sha: import("zod").ZodString;
|
|
4861
|
+
diff: import("zod").ZodString;
|
|
4862
|
+
structured: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
4863
|
+
path: import("zod").ZodString;
|
|
4864
|
+
isNew: import("zod").ZodBoolean;
|
|
4865
|
+
isDeleted: import("zod").ZodBoolean;
|
|
4866
|
+
additions: import("zod").ZodNumber;
|
|
4867
|
+
deletions: import("zod").ZodNumber;
|
|
4868
|
+
hunks: import("zod").ZodArray<import("zod").ZodObject<{
|
|
4869
|
+
oldStart: import("zod").ZodNumber;
|
|
4870
|
+
oldCount: import("zod").ZodNumber;
|
|
4871
|
+
newStart: import("zod").ZodNumber;
|
|
4872
|
+
newCount: import("zod").ZodNumber;
|
|
4873
|
+
lines: import("zod").ZodArray<import("zod").ZodObject<{
|
|
4874
|
+
type: import("zod").ZodEnum<{
|
|
4875
|
+
context: "context";
|
|
4876
|
+
add: "add";
|
|
4877
|
+
remove: "remove";
|
|
4878
|
+
header: "header";
|
|
4879
|
+
}>;
|
|
4880
|
+
content: import("zod").ZodString;
|
|
4881
|
+
tokens: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
4882
|
+
text: import("zod").ZodString;
|
|
4883
|
+
style: import("zod").ZodNullable<import("zod").ZodString>;
|
|
4884
|
+
}, import("zod/v4/core").$strip>>>;
|
|
4885
|
+
}, import("zod/v4/core").$strip>>;
|
|
4886
|
+
}, import("zod/v4/core").$strip>>;
|
|
4887
|
+
status: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
4888
|
+
ok: "ok";
|
|
4889
|
+
too_large: "too_large";
|
|
4890
|
+
binary: "binary";
|
|
4891
|
+
}>>;
|
|
4892
|
+
}, import("zod/v4/core").$strip>>>;
|
|
4893
|
+
previousSha: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4894
|
+
previousPath: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4895
|
+
truncated: import("zod").ZodBoolean;
|
|
4896
|
+
error: import("zod").ZodNullable<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
4897
|
+
kind: import("zod").ZodLiteral<"not_git_repo">;
|
|
4898
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4899
|
+
kind: import("zod").ZodLiteral<"invalid_path">;
|
|
4900
|
+
detail: import("zod").ZodString;
|
|
4901
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4902
|
+
kind: import("zod").ZodLiteral<"git_failed">;
|
|
4903
|
+
detail: import("zod").ZodString;
|
|
4904
|
+
}, import("zod/v4/core").$strip>], "kind">>;
|
|
4905
|
+
requestId: import("zod").ZodString;
|
|
4906
|
+
}, import("zod/v4/core").$strip>;
|
|
4907
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4908
|
+
type: import("zod").ZodLiteral<"checkout.git.get_file_blame.response">;
|
|
4909
|
+
payload: import("zod").ZodObject<{
|
|
4910
|
+
cwd: import("zod").ZodString;
|
|
4911
|
+
path: import("zod").ZodString;
|
|
4912
|
+
lines: import("zod").ZodArray<import("zod").ZodObject<{
|
|
4913
|
+
line: import("zod").ZodNumber;
|
|
4914
|
+
sha: import("zod").ZodString;
|
|
4915
|
+
originalLine: import("zod").ZodNumber;
|
|
4916
|
+
}, import("zod/v4/core").$strip>>;
|
|
4917
|
+
commits: import("zod").ZodArray<import("zod").ZodObject<{
|
|
4918
|
+
sha: import("zod").ZodString;
|
|
4919
|
+
shortSha: import("zod").ZodString;
|
|
4920
|
+
summary: import("zod").ZodString;
|
|
4921
|
+
authorName: import("zod").ZodString;
|
|
4922
|
+
authorEmail: import("zod").ZodString;
|
|
4923
|
+
authoredAt: import("zod").ZodNumber;
|
|
4924
|
+
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4925
|
+
}, import("zod/v4/core").$strip>>;
|
|
4926
|
+
startLine: import("zod").ZodNumber;
|
|
4927
|
+
endLine: import("zod").ZodNumber;
|
|
4928
|
+
reachedEndOfFile: import("zod").ZodBoolean;
|
|
4929
|
+
error: import("zod").ZodNullable<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
4930
|
+
kind: import("zod").ZodLiteral<"not_git_repo">;
|
|
4931
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4932
|
+
kind: import("zod").ZodLiteral<"invalid_path">;
|
|
4933
|
+
detail: import("zod").ZodString;
|
|
4934
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4935
|
+
kind: import("zod").ZodLiteral<"git_failed">;
|
|
4936
|
+
detail: import("zod").ZodString;
|
|
4937
|
+
}, import("zod/v4/core").$strip>], "kind">>;
|
|
4938
|
+
requestId: import("zod").ZodString;
|
|
4939
|
+
}, import("zod/v4/core").$strip>;
|
|
4940
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4941
|
+
type: import("zod").ZodLiteral<"checkout.git.get_file_origin.response">;
|
|
4942
|
+
payload: import("zod").ZodObject<{
|
|
4943
|
+
cwd: import("zod").ZodString;
|
|
4944
|
+
path: import("zod").ZodString;
|
|
4945
|
+
entry: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
4946
|
+
sha: import("zod").ZodString;
|
|
4947
|
+
shortSha: import("zod").ZodString;
|
|
4948
|
+
subject: import("zod").ZodString;
|
|
4949
|
+
body: import("zod").ZodString;
|
|
4950
|
+
authorName: import("zod").ZodString;
|
|
4951
|
+
authorEmail: import("zod").ZodString;
|
|
4952
|
+
authoredAt: import("zod").ZodNumber;
|
|
4953
|
+
committerName: import("zod").ZodString;
|
|
4954
|
+
committedAt: import("zod").ZodNumber;
|
|
4955
|
+
path: import("zod").ZodString;
|
|
4956
|
+
previousPath: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4957
|
+
changeKind: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4958
|
+
isMerge: import("zod").ZodBoolean;
|
|
4959
|
+
parentShas: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
4960
|
+
}, import("zod/v4/core").$strip>>;
|
|
4961
|
+
error: import("zod").ZodNullable<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
4962
|
+
kind: import("zod").ZodLiteral<"not_git_repo">;
|
|
4963
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4964
|
+
kind: import("zod").ZodLiteral<"invalid_path">;
|
|
4965
|
+
detail: import("zod").ZodString;
|
|
4966
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4967
|
+
kind: import("zod").ZodLiteral<"git_failed">;
|
|
4968
|
+
detail: import("zod").ZodString;
|
|
4969
|
+
}, import("zod/v4/core").$strip>], "kind">>;
|
|
4970
|
+
requestId: import("zod").ZodString;
|
|
4971
|
+
}, import("zod/v4/core").$strip>;
|
|
4801
4972
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
4802
4973
|
type: import("zod").ZodLiteral<"runs.get_snapshot.response">;
|
|
4803
4974
|
payload: import("zod").ZodObject<{
|