rivet-design 0.14.9 → 0.14.11

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.
Files changed (76) hide show
  1. package/dist/agent-variants/SessionStore.d.ts +11 -1
  2. package/dist/agent-variants/SessionStore.d.ts.map +1 -1
  3. package/dist/agent-variants/SessionStore.js +18 -0
  4. package/dist/agent-variants/SessionStore.js.map +1 -1
  5. package/dist/agent-variants/WorkerExecutorService.d.ts +77 -9
  6. package/dist/agent-variants/WorkerExecutorService.d.ts.map +1 -1
  7. package/dist/agent-variants/WorkerExecutorService.js +202 -104
  8. package/dist/agent-variants/WorkerExecutorService.js.map +1 -1
  9. package/dist/agent-variants/WorktreeOrchestrator.d.ts +13 -0
  10. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  11. package/dist/agent-variants/WorktreeOrchestrator.js +25 -0
  12. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  13. package/dist/agent-variants/contracts.d.ts +22 -0
  14. package/dist/agent-variants/contracts.d.ts.map +1 -1
  15. package/dist/agent-variants/contracts.js.map +1 -1
  16. package/dist/agent-variants/directionAuthoring.d.ts.map +1 -1
  17. package/dist/agent-variants/directionAuthoring.js +12 -0
  18. package/dist/agent-variants/directionAuthoring.js.map +1 -1
  19. package/dist/agent-variants/workItemBriefing.d.ts.map +1 -1
  20. package/dist/agent-variants/workItemBriefing.js +48 -16
  21. package/dist/agent-variants/workItemBriefing.js.map +1 -1
  22. package/dist/agent-variants/workerRuntime.d.ts +230 -0
  23. package/dist/agent-variants/workerRuntime.d.ts.map +1 -0
  24. package/dist/agent-variants/workerRuntime.js +705 -0
  25. package/dist/agent-variants/workerRuntime.js.map +1 -0
  26. package/dist/cli/commands/mcpServe.d.ts.map +1 -1
  27. package/dist/cli/commands/mcpServe.js +16 -1
  28. package/dist/cli/commands/mcpServe.js.map +1 -1
  29. package/dist/cli/commands/variants.d.ts.map +1 -1
  30. package/dist/cli/commands/variants.js +26 -0
  31. package/dist/cli/commands/variants.js.map +1 -1
  32. package/dist/cli/hostWorkNextAction.d.ts +4 -0
  33. package/dist/cli/hostWorkNextAction.d.ts.map +1 -1
  34. package/dist/cli/hostWorkNextAction.js.map +1 -1
  35. package/dist/cli/router.js +1 -1
  36. package/dist/cli/router.js.map +1 -1
  37. package/dist/routes/agentVariants.d.ts.map +1 -1
  38. package/dist/routes/agentVariants.js +15 -0
  39. package/dist/routes/agentVariants.js.map +1 -1
  40. package/dist/services/ConfigManager.d.ts +18 -0
  41. package/dist/services/ConfigManager.d.ts.map +1 -1
  42. package/dist/services/ConfigManager.js +15 -0
  43. package/dist/services/ConfigManager.js.map +1 -1
  44. package/dist/services/VariantGenerationService.d.ts +5 -0
  45. package/dist/services/VariantGenerationService.d.ts.map +1 -1
  46. package/dist/services/VariantGenerationService.js +42 -11
  47. package/dist/services/VariantGenerationService.js.map +1 -1
  48. package/dist/services/VariantHistoryService.d.ts +7 -0
  49. package/dist/services/VariantHistoryService.d.ts.map +1 -1
  50. package/dist/services/VariantHistoryService.js +1 -0
  51. package/dist/services/VariantHistoryService.js.map +1 -1
  52. package/dist/services/VariantRunService.d.ts.map +1 -1
  53. package/dist/services/VariantRunService.js +17 -3
  54. package/dist/services/VariantRunService.js.map +1 -1
  55. package/dist/services/VariantsRuntime.d.ts.map +1 -1
  56. package/dist/services/VariantsRuntime.js +6 -0
  57. package/dist/services/VariantsRuntime.js.map +1 -1
  58. package/dist/types/change-request-types.d.ts +22 -0
  59. package/dist/types/change-request-types.d.ts.map +1 -1
  60. package/dist/utils/hostAgentEnv.d.ts +19 -0
  61. package/dist/utils/hostAgentEnv.d.ts.map +1 -0
  62. package/dist/utils/hostAgentEnv.js +32 -0
  63. package/dist/utils/hostAgentEnv.js.map +1 -0
  64. package/dist/utils/skills/claude-skill.d.ts +2 -2
  65. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  66. package/dist/utils/skills/claude-skill.js +1 -1
  67. package/dist/utils/skills/cli-guidance.d.ts +2 -2
  68. package/dist/utils/skills/cli-guidance.d.ts.map +1 -1
  69. package/dist/utils/skills/cli-guidance.js +4 -2
  70. package/dist/utils/skills/cli-guidance.js.map +1 -1
  71. package/dist/utils/skills/cursor-rules.d.ts +2 -2
  72. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  73. package/dist/utils/skills/cursor-rules.js +1 -1
  74. package/package.json +1 -1
  75. package/src/ui/dist/assets/{main-CQho_sDZ.js → main-EGX1lAi3.js} +2 -2
  76. package/src/ui/dist/index.html +1 -1
@@ -0,0 +1,230 @@
1
+ import { spawn } from 'child_process';
2
+ import { type BinaryProbe, type RunnerVendor } from '../cli/runnerSelection';
3
+ import type { WorkerEffortLevel } from '../hosts/workerDefaults';
4
+ import type { WorkerFidelity } from './contracts';
5
+ import type { WorkItemInitiator, WorkerSelection } from '../types/change-request-types';
6
+ /**
7
+ * Executor-only worker tier, discriminated by vendor so a codex tier can never
8
+ * be handed to the claude adapter. This registry is deliberately separate from
9
+ * `FIDELITY_WORKER_TIERS` (src/hosts/workerDefaults.ts), which keeps supplying
10
+ * the HOST-worker hint defaults — the host path is unchanged by multi-vendor
11
+ * executor support.
12
+ */
13
+ export type ExecutorWorkerTier = {
14
+ vendor: 'claude';
15
+ model: string;
16
+ effort: WorkerEffortLevel;
17
+ } | {
18
+ vendor: 'codex';
19
+ /** Omitted by default: the user's own codex default model applies, so we
20
+ * never pin a model id that their account/CLI version doesn't have. */
21
+ model?: string;
22
+ reasoningEffort: WorkerEffortLevel;
23
+ } | {
24
+ vendor: 'cursor';
25
+ /** Cursor has no per-invocation quality knob and model switching is a
26
+ * known capability cliff (see FIDELITY_WORKER_TIERS docs) — one model
27
+ * for every fidelity, omitted by default so the user's Cursor default
28
+ * applies. */
29
+ model?: string;
30
+ };
31
+ /**
32
+ * Fidelity → tier, per vendor. Claude mirrors the host registry (one model,
33
+ * effort varies — PR #965). Codex maps fidelity onto reasoning effort, its
34
+ * native analogue. Cursor cannot vary quality per invocation, so fidelity is
35
+ * intentionally a no-op there until a per-model benchmark says otherwise.
36
+ */
37
+ export declare const EXECUTOR_FIDELITY_TIERS: Record<RunnerVendor, Record<WorkerFidelity, ExecutorWorkerTier>>;
38
+ /** Cheapest valid tier per vendor — what the preflight probe runs with. Same
39
+ * flags as a real worker (the probe must test the exact invocation), minimum
40
+ * spend. */
41
+ export declare const PREFLIGHT_TIERS: Record<RunnerVendor, ExecutorWorkerTier>;
42
+ /** What an adapter can recover from a finished worker's stdout. */
43
+ export type WorkerResultInfo = {
44
+ usage?: {
45
+ tokensIn?: number;
46
+ tokensOut?: number;
47
+ costUsd?: number;
48
+ };
49
+ /** Error/result text the CLI reported in-band (claude puts API failures in
50
+ * the stdout JSON, codex in error items) — stderr alone is not enough. */
51
+ resultText?: string;
52
+ /** Structured HTTP status of an API failure, when the CLI reports one. */
53
+ apiErrorStatus?: number;
54
+ };
55
+ /**
56
+ * One adapter per vendor CLI: owns the arg grammar, how the briefing prompt is
57
+ * delivered, and how the result stream is parsed. The executor stays
58
+ * vendor-agnostic. Contracts verified live: 2026-07-22 against codex-cli
59
+ * 0.145.0 and claude; 2026-07-23 against cursor-agent 2026.07.23-e383d2b
60
+ * (print mode, argv prompt, trailing-JSON result with camelCase usage).
61
+ */
62
+ export interface WorkerInvocationAdapter {
63
+ vendor: RunnerVendor;
64
+ binary: string;
65
+ /** 'stdin': briefing piped to the child; 'argv': appended as the prompt
66
+ * argument (cursor-agent ignores stdin in print mode). */
67
+ promptDelivery: 'stdin' | 'argv';
68
+ buildArgs(tier: ExecutorWorkerTier): string[];
69
+ parseResult(stdoutTail: string): WorkerResultInfo;
70
+ /** Only claude reports structured model-availability failures
71
+ * (api_error_status) that can safely drive the one-shot fallback-model
72
+ * retry. */
73
+ supportsModelFallback: boolean;
74
+ spawnEnv(): NodeJS.ProcessEnv;
75
+ }
76
+ /** Claude's `--output-format json`: one trailing JSON result object. */
77
+ export declare const parseClaudeWorkerResult: (stdout: string) => WorkerResultInfo;
78
+ /** Codex's `exec --json`: JSONL events. Usage rides `turn.completed`; failures
79
+ * surface as `item.completed` items of type `error` (and `turn.failed`). */
80
+ export declare const parseCodexWorkerResult: (stdout: string) => WorkerResultInfo;
81
+ export declare const makeClaudeAdapter: (binary?: string) => WorkerInvocationAdapter;
82
+ export declare const makeCodexAdapter: (binary?: string) => WorkerInvocationAdapter;
83
+ /** Cursor's `-p --output-format json`: one trailing JSON result object, like
84
+ * claude's — but usage keys are camelCase (`inputTokens`) and `subtype`/
85
+ * `result` are populated on success too ("success"/"ok"), so error text is
86
+ * taken only when `is_error` is set. Shape live-verified 2026-07-23 against
87
+ * cursor-agent 2026.07.23-e383d2b. */
88
+ export declare const parseCursorWorkerResult: (stdout: string) => WorkerResultInfo;
89
+ export declare const makeCursorAdapter: (binary?: string) => WorkerInvocationAdapter;
90
+ export declare const adapterForVendor: (vendor: RunnerVendor, binaryOverride?: string) => WorkerInvocationAdapter;
91
+ export type WorkerVendorSource = 'env'
92
+ /** Explicit `--worker-provider` on THIS request — the user's live choice,
93
+ * relayed by the host agent. Outranks config and initiator; only the
94
+ * RIVET_EXECUTOR_* env escape hatches outrank it. */
95
+ | 'request' | 'user_config' | 'initiator' | 'probe'
96
+ /** `workerVendorFallback` substituted this vendor after the explicit /
97
+ * initiator-implied one failed preflight — surfaced so logs and summaries
98
+ * never attribute the switched vendor to the original selection. */
99
+ | 'fallback';
100
+ export type PreflightDiagnostic = {
101
+ vendor: RunnerVendor;
102
+ binary: string;
103
+ reason: string;
104
+ };
105
+ /**
106
+ * The lease-owner decision. `executor` carries the healthy runtime to spawn
107
+ * workers with; `host` means work items lease to the host agent (the
108
+ * pre-executor degraded mode) and carries per-vendor diagnostics explaining
109
+ * why. There is deliberately no cross-vendor silent substitution: an explicit
110
+ * or initiator-implied vendor that fails preflight lands on the host path —
111
+ * running another vendor's CLI (different subscription, data handling,
112
+ * bypassed-permissions posture) requires the `workerVendorFallback` opt-in.
113
+ */
114
+ export type WorkerRuntimeDecision = {
115
+ mode: 'executor';
116
+ adapter: WorkerInvocationAdapter;
117
+ source: WorkerVendorSource;
118
+ /** Request-pinned worker model, present ONLY when the pin belongs to
119
+ * the winning adapter: the requested provider matches, or — for a
120
+ * model-only request — the winner is the PRIMARY candidate the pin
121
+ * was resolved against. A cross-vendor fallback (or later probe-path
122
+ * candidate) winner never inherits another CLI's model id. */
123
+ modelOverride?: string;
124
+ } | {
125
+ mode: 'host';
126
+ diagnostics: PreflightDiagnostic[];
127
+ };
128
+ /** Coarse failure bucket — the ONLY failure detail that leaves the machine
129
+ * (telemetry). Raw reasons carry stderr/paths/account fragments and stay in
130
+ * local logs and run feedback. */
131
+ export type ProbeFailureCategory = 'spawn_error' | 'timeout' | 'aborted' | 'login_required' | 'exit_nonzero' | 'worker_failure';
132
+ export type PreflightSpawn = (args: {
133
+ command: string;
134
+ args: string[];
135
+ cwd: string;
136
+ env: NodeJS.ProcessEnv;
137
+ }) => ReturnType<typeof spawn>;
138
+ export type WorkerRuntimeResolverOptions = {
139
+ /** `workerVendor` from ~/.rivet/config.json, read lazily so config edits
140
+ * don't require a server restart. */
141
+ configuredVendor?: () => string | undefined;
142
+ /** `workerVendorFallback` opt-in: allow trying OTHER vendors when the
143
+ * explicit/initiator vendor fails preflight. Default false. */
144
+ crossVendorFallback?: () => boolean;
145
+ /** `workerModels.<vendor>` config override for executor worker tiers. */
146
+ configuredModelFor?: (vendor: RunnerVendor) => string | undefined;
147
+ /** Claude-only preflight rung mirroring the executor's per-item
148
+ * fallback-model retry: when the PRIMARY model is what fails the probe
149
+ * (no access / unknown model / model-scoped rate limit), probe once more
150
+ * with the fallback model before declaring the runtime unhealthy —
151
+ * otherwise an account lacking the default worker model degrades to the
152
+ * host path before the per-item retry ever gets a chance. */
153
+ probeModelFallback?: {
154
+ fallbackModel: () => string | undefined;
155
+ isModelAvailabilityFailure: (args: {
156
+ message?: string;
157
+ apiErrorStatus?: number;
158
+ model?: string;
159
+ }) => boolean;
160
+ };
161
+ probeTimeoutMs?: number;
162
+ binaryProbe?: BinaryProbe;
163
+ spawnProbe?: PreflightSpawn;
164
+ env?: NodeJS.ProcessEnv;
165
+ telemetry?: {
166
+ track: (event: string, properties?: Record<string, unknown>) => void;
167
+ };
168
+ };
169
+ /**
170
+ * Resolves and preflights the executor's worker runtime, per request.
171
+ *
172
+ * Precedence: env override (`RIVET_EXECUTOR_VENDOR`, or legacy
173
+ * `RIVET_EXECUTOR_COMMAND` = claude-grammar custom binary) > user config
174
+ * `workerVendor` > the request initiator's agent > (human / no preference)
175
+ * probe installed vendors in registry order.
176
+ *
177
+ * Note this is deliberately PER-REQUEST, unlike apply-runner resolution
178
+ * (`resolveRunner`, fixed for the server's lifetime): one live session can
179
+ * serve requests initiated by different agents, and each request's workers
180
+ * should run on its initiator's runtime.
181
+ *
182
+ * Preflight lifecycle: one in-flight probe per runtime identity (vendor +
183
+ * binary + resolved model — concurrent resolves join it); a healthy result
184
+ * is cached until a runtime-shaped worker failure invalidates it
185
+ * (`markUnhealthy`) or a config edit changes the resolved model; an
186
+ * unhealthy result is re-probed on the next resolve — so a user who fixes
187
+ * their auth is not stuck on the host path, and each new run retries a
188
+ * broken vendor at most once.
189
+ */
190
+ export declare class WorkerRuntimeResolver {
191
+ private readonly options;
192
+ private readonly health;
193
+ private readonly inFlight;
194
+ constructor(options?: WorkerRuntimeResolverOptions);
195
+ /** Invalidate a cached-healthy vendor after a runtime-shaped worker failure
196
+ * (spawn error, unknown CLI option, auth rejection) so the next run
197
+ * re-probes instead of leasing four more items to a dead runtime. */
198
+ markUnhealthy(vendor: RunnerVendor, reason: string): void;
199
+ resolve(args?: {
200
+ initiator?: WorkItemInitiator;
201
+ /** Explicit per-request runtime choice (`--worker-provider` /
202
+ * `--worker-model`) relayed by the host agent. */
203
+ selection?: WorkerSelection;
204
+ signal?: AbortSignal;
205
+ }): Promise<WorkerRuntimeDecision>;
206
+ /** Candidate adapters in trial order, plus whether the choice was explicit
207
+ * (strict = unhealthy means host path, not another vendor). */
208
+ private candidatesFor;
209
+ private withFallbackCandidates;
210
+ private adapterFor;
211
+ /** Tier the probe runs with — cheapest per vendor, with the same model
212
+ * override precedence a real worker gets (`RIVET_EXECUTOR_MODEL` env >
213
+ * request `--worker-model` > `workerModels.<vendor>` config) so the probe
214
+ * exercises the exact model a real worker would run, not the CLI
215
+ * default. */
216
+ private probeTierFor;
217
+ private preflight;
218
+ /** One probe — plus, for claude (the only vendor with a structured
219
+ * fallback-model rung), a second probe on the fallback model when the
220
+ * primary MODEL is what failed. A healthy fallback probe marks the
221
+ * runtime healthy under the primary identity: real workers still start
222
+ * on the primary tier and degrade per item via the executor's one-shot
223
+ * fallback retry, exactly the pre-preflight behavior. */
224
+ private probeWithModelFallback;
225
+ private runProbe;
226
+ }
227
+ /** One-line human summary of a decision, for run feedback and server.log:
228
+ * `codex` / `host path (claude: probe exited 1: …)`. */
229
+ export declare const describeWorkerRuntimeDecision: (decision: WorkerRuntimeDecision) => string;
230
+ //# sourceMappingURL=workerRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerRuntime.d.ts","sourceRoot":"","sources":["../../src/agent-variants/workerRuntime.ts"],"names":[],"mappings":"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"}