harness-dispatch 0.5.0 → 0.6.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.
Files changed (94) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/README.md +5 -2
  3. package/dist/bin.d.ts.map +1 -1
  4. package/dist/bin.js +1 -175
  5. package/dist/bin.js.map +1 -1
  6. package/dist/config/route-fields.d.ts +72 -0
  7. package/dist/config/route-fields.d.ts.map +1 -0
  8. package/dist/config/route-fields.js +128 -0
  9. package/dist/config/route-fields.js.map +1 -0
  10. package/dist/config/validation.js +1 -1
  11. package/dist/config/validation.js.map +1 -1
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +32 -171
  14. package/dist/config.js.map +1 -1
  15. package/dist/configure-yaml.d.ts +23 -0
  16. package/dist/configure-yaml.d.ts.map +1 -0
  17. package/dist/configure-yaml.js +193 -0
  18. package/dist/configure-yaml.js.map +1 -0
  19. package/dist/dispatchers/base.d.ts +3 -0
  20. package/dist/dispatchers/base.d.ts.map +1 -1
  21. package/dist/dispatchers/base.js.map +1 -1
  22. package/dist/dispatchers/generic-cli.d.ts.map +1 -1
  23. package/dist/dispatchers/generic-cli.js +4 -0
  24. package/dist/dispatchers/generic-cli.js.map +1 -1
  25. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  26. package/dist/dispatchers/openai-compatible.js +18 -0
  27. package/dist/dispatchers/openai-compatible.js.map +1 -1
  28. package/dist/dispatchers/shared/stream-subprocess.d.ts +11 -0
  29. package/dist/dispatchers/shared/stream-subprocess.d.ts.map +1 -1
  30. package/dist/dispatchers/shared/stream-subprocess.js +57 -35
  31. package/dist/dispatchers/shared/stream-subprocess.js.map +1 -1
  32. package/dist/http/parse.d.ts +64 -0
  33. package/dist/http/parse.d.ts.map +1 -0
  34. package/dist/http/parse.js +230 -0
  35. package/dist/http/parse.js.map +1 -0
  36. package/dist/http/server.d.ts +2 -11
  37. package/dist/http/server.d.ts.map +1 -1
  38. package/dist/http/server.js +26 -232
  39. package/dist/http/server.js.map +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +3 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/jobs/context.d.ts +17 -0
  45. package/dist/jobs/context.d.ts.map +1 -0
  46. package/dist/jobs/context.js +84 -0
  47. package/dist/jobs/context.js.map +1 -0
  48. package/dist/jobs/store.d.ts +80 -0
  49. package/dist/jobs/store.d.ts.map +1 -0
  50. package/dist/jobs/store.js +279 -0
  51. package/dist/jobs/store.js.map +1 -0
  52. package/dist/jobs/types.d.ts +135 -0
  53. package/dist/jobs/types.d.ts.map +1 -0
  54. package/dist/jobs/types.js +11 -0
  55. package/dist/jobs/types.js.map +1 -0
  56. package/dist/jobs.d.ts +113 -123
  57. package/dist/jobs.d.ts.map +1 -1
  58. package/dist/jobs.js +314 -309
  59. package/dist/jobs.js.map +1 -1
  60. package/dist/mcp/tool-schemas.d.ts +194 -0
  61. package/dist/mcp/tool-schemas.d.ts.map +1 -0
  62. package/dist/mcp/tool-schemas.js +311 -0
  63. package/dist/mcp/tool-schemas.js.map +1 -0
  64. package/dist/mcp/tools.d.ts +15 -59
  65. package/dist/mcp/tools.d.ts.map +1 -1
  66. package/dist/mcp/tools.js +63 -239
  67. package/dist/mcp/tools.js.map +1 -1
  68. package/dist/quota.d.ts +19 -1
  69. package/dist/quota.d.ts.map +1 -1
  70. package/dist/quota.js +39 -4
  71. package/dist/quota.js.map +1 -1
  72. package/dist/router.d.ts +4 -0
  73. package/dist/router.d.ts.map +1 -1
  74. package/dist/router.js +8 -0
  75. package/dist/router.js.map +1 -1
  76. package/dist/status.d.ts +13 -0
  77. package/dist/status.d.ts.map +1 -1
  78. package/dist/status.js +6 -0
  79. package/dist/status.js.map +1 -1
  80. package/dist/types.d.ts +24 -0
  81. package/dist/types.d.ts.map +1 -1
  82. package/dist/workspace-resolve.d.ts +98 -0
  83. package/dist/workspace-resolve.d.ts.map +1 -0
  84. package/dist/workspace-resolve.js +382 -0
  85. package/dist/workspace-resolve.js.map +1 -0
  86. package/dist/workspaces.d.ts +1 -0
  87. package/dist/workspaces.d.ts.map +1 -1
  88. package/dist/workspaces.js +67 -15
  89. package/dist/workspaces.js.map +1 -1
  90. package/package.json +5 -4
  91. package/dist/dashboard/live.d.ts +0 -49
  92. package/dist/dashboard/live.d.ts.map +0 -1
  93. package/dist/dashboard/live.js +0 -149
  94. package/dist/dashboard/live.js.map +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,152 @@
1
+ # Changelog
2
+
3
+ Notable changes per release. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
4
+ this project uses [semantic versioning](https://semver.org/spec/v2.0.0.html) and is
5
+ pre-1.0, so minor versions can carry behaviour changes.
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.6.0] — 2026-08-21
10
+
11
+ The job lifecycle is complete: start, watch, **stop**, **retry**, and **resolve the
12
+ isolated result**. Every verb was exercised against real harness CLIs rather than
13
+ fakes. The MCP surface grows from three tools to six.
14
+
15
+ ### Added
16
+
17
+ - **`retry_job`** — run a finished job's task again from its own record: the same
18
+ prompt the delegate actually saw (context preamble included), files, working
19
+ directory, hints and workspace policy. Pass `service` to send the retry to a
20
+ DIFFERENT route, which is the usual reason to retry — the task was fine and the
21
+ route was not. Returns a new jobId; the original is untouched, and retrying a
22
+ still-running job is refused so two attempts cannot race on one directory.
23
+ - **Token totals in `usage`** — `inputTokens` and `outputTokens` per route, summed
24
+ from what harnesses actually report. Deliberately not money: subscription CLIs have
25
+ no per-call price, and pricing tokens would mean shipping a rate card that goes
26
+ stale silently. Zero means the harness reported nothing, not that nothing was spent.
27
+ - **`workspace`** — inspect, keep or discard the isolated result of a job. `copy` and
28
+ `git_worktree` dispatches already ran the agent in isolation and never touched your
29
+ project, but there was no way to see the actual change, no way to keep it, and no
30
+ cleanup but by hand — so isolated runs were effectively write-only. `action: "diff"`
31
+ returns the real patch, `"apply"` applies it to your project (refusing when the
32
+ project has uncommitted changes, because the patch was built against a clean base),
33
+ and `"discard"` removes the workspace. The patch is always written to the job
34
+ directory, so applying it by hand is available even when the automatic path declines.
35
+ - **`resource_weight`** on a route — the concurrency bound now counts CAPACITY, not
36
+ jobs. `max_concurrent_runs` priced an HTTP call to a local endpoint the same as a
37
+ whole Claude Code process, so four cheap endpoint calls could lock out a real
38
+ dispatch. Defaults to 1.0 for CLI routes and 0.1 for endpoints; with every weight at
39
+ 1.0 the arithmetic is exactly the old count, so existing configs are unchanged.
40
+ - **`cancel_job`** — stop a dispatch you already started. Until now the product could
41
+ start a 60-minute detached run and offer no way to stop it, so a misdirected agent
42
+ kept spending subscription quota and editing a workspace until it finished or timed
43
+ out. A queued job stops outright; a running one tears down within about a second,
44
+ killing the agent CLI and its child processes. Two things it does not do: it does
45
+ not revert files the agent already changed, and it does not count as a route
46
+ failure — the caller changing their mind says nothing about whether the route works.
47
+
48
+ ### Changed
49
+
50
+ - All three route shapes (`clis:`, `endpoints:`, `services:`) resolve their shared
51
+ settings through one table instead of three hand-written lists. This retires the
52
+ class of bug that produced five separate silent drops, where a correctly spelled,
53
+ correctly valued setting was read by one route shape and ignored by another. A
54
+ legacy `services:` entry naming a harness now also inherits that harness's
55
+ `leaderboard_model` and `thinking_level`, which it previously lost.
56
+ - `HARNESS_DISPATCH_CONFIG` pointing at a file that does not exist is now reported by
57
+ the server instead of being silently replaced with auto-detected defaults.
58
+ - `install-codex.mjs --config` resolves to an absolute path and is checked at install
59
+ time. A relative path used to be stored as written and resolved later against a
60
+ different working directory, which silently meant "no config".
61
+
62
+ ### Removed
63
+
64
+ - The unused dashboard renderer (`renderDashboard`, `DashboardState`). Nothing in the
65
+ product called it; the `dashboard` CLI alias maps to `status` and is unaffected.
66
+
67
+ ### Fixed
68
+
69
+ - Copying a live working directory survives a file disappearing mid-copy. A working
70
+ directory is being written to while it is read — an editor saving, a build watcher
71
+ cleaning, another fanout arm — and any of those used to fail the whole dispatch with
72
+ a raw ENOENT. A vanished file is now skipped and named in the workspace notes; a
73
+ permission error or a full disk still fails loudly.
74
+ - Workspace copies ask the filesystem for a copy-on-write reflink
75
+ (`COPYFILE_FICLONE`), which makes a clone near-instant and allocation-free on APFS,
76
+ Btrfs/XFS and ReFS/Dev Drive, and falls back to an ordinary copy everywhere else.
77
+ - `workspace` on a `copy` job no longer emits a spurious deletion of the file it is
78
+ editing, and no longer refuses to apply because of its own scratch directory. The
79
+ workspace lives inside the project, which broke both.
80
+ - Live agent smoke tests no longer write circuit-breaker state into the real install,
81
+ so a smoke failure cannot block a healthy route for real dispatches.
82
+
83
+ ## [0.5.0] — 2026-08-20
84
+
85
+ Published to npm on 2026-08-21, with a signed provenance attestation from GitHub
86
+ Actions. Anyone on 0.4.0 should upgrade: that release writes resolved API keys into
87
+ `configure` output and can destroy a hand-written config.
88
+
89
+ ### Security
90
+
91
+ - `configure` no longer writes resolved API keys into its output. Keys that came from
92
+ a `${VAR}` reference round-trip as that reference; a literal key is redacted in
93
+ `--print` (which people paste into bug reports) and preserved on disk.
94
+ - A dispatch asking for a lower safety profile can no longer be silently ignored. The
95
+ keys that grant or restrict access are rejected by name when misplaced, on the MCP
96
+ surface that actually ships — a previous guard existed only on a code path nothing
97
+ called.
98
+ - Symlinks can no longer carry an agent out of an isolated (`copy`) workspace.
99
+ - Endpoint hostnames are redacted from status output.
100
+
101
+ ### Added
102
+
103
+ - Chain delegated work: pass `contextJobs` and an earlier job's prompt and output are
104
+ rendered into the new prompt directly, without routing them through the orchestrator's
105
+ own context.
106
+ - `max_concurrent_runs` (default 4) bounds how many agent CLIs run at once,
107
+ machine-wide. Extra dispatches queue and start as slots free; nothing is rejected.
108
+ - A route's capability floor can vary by requested safety profile, which lets Cursor
109
+ serve read-only work on Windows instead of being skipped entirely.
110
+ - `usage` reports per-route call counts, quota, billing kind and breaker state,
111
+ including work done by detached job runners in other processes.
112
+
113
+ ### Changed
114
+
115
+ - Arena ELO scoring is opt-in (`leaderboard: { enabled: true }`). Routing defaults to
116
+ the tier and weight you configured rather than a benchmark maintained elsewhere.
117
+ - Rate-limited calls are counted separately from failures, so a busy route does not
118
+ accumulate a permanent record of being unreliable.
119
+ - `retention: { jobs_days: 0 }` means keep forever, and a running job with a live
120
+ heartbeat is never pruned.
121
+
122
+ ### Fixed
123
+
124
+ - Nothing is lost to a timeout. Every dispatch runs as a detached background job that
125
+ survives a client timeout, a server restart, and the MCP call's own deadline.
126
+ - `workspace_policy: shared_locked` serializes across all processes, not just within
127
+ one. Stale-lock takeover is atomic, so two dispatches can no longer both decide a
128
+ lock is free and edit the same directory.
129
+ - Circuit-breaker cooldowns and failure decay survive process boundaries and upgrades;
130
+ `status` and `dispatch` no longer disagree about whether a route is available.
131
+ - The OpenAI-compatible HTTP endpoint is backed by a persisted job, so a client that
132
+ times out mid-run can still retrieve the result.
133
+ - A rate limit is detected from HTTP status context rather than any occurrence of the
134
+ digits 429 in an agent's output, which used to block healthy routes.
135
+ - Bad input gets one actionable line instead of a stack trace or a silent default —
136
+ a missing `--config`, a malformed YAML file, an unknown route id, a typo'd setting.
137
+ - `configure --yes --force` no longer deletes harnesses the user added.
138
+ - On macOS and Linux, timing out an agent CLI also stops the shells and test runners
139
+ it spawned.
140
+
141
+ ## [0.4.0] — 2026-07-25
142
+
143
+ First release under the `harness-dispatch` name (previously `harness-router`). Bumped
144
+ the MCP surface to three tools: `dispatch`, `job_status`, `usage`.
145
+
146
+ Known issues in this release, fixed in 0.5.0: `configure` writes resolved API keys into
147
+ its output, and `configure --yes --force` can delete user-added harnesses.
148
+
149
+ [Unreleased]: https://github.com/fstubner/harness-dispatch/compare/v0.6.0...HEAD
150
+ [0.6.0]: https://github.com/fstubner/harness-dispatch/compare/v0.5.0...v0.6.0
151
+ [0.5.0]: https://github.com/fstubner/harness-dispatch/compare/v0.4.0...v0.5.0
152
+ [0.4.0]: https://github.com/fstubner/harness-dispatch/releases/tag/v0.4.0
package/README.md CHANGED
@@ -359,16 +359,19 @@ harness-dispatch auth rotate # rotate HTTP bearer token
359
359
  Hidden compatibility aliases currently map old alpha commands to the new surface:
360
360
  `dashboard` and `list-services` map to `status`, `route <prompt>` runs a one-off
361
361
  routed dispatch, and `mcp --http <port>` maps to `serve`.
362
- They are not part of the public v0.5.0 vocabulary.
362
+ They are not part of the public v0.6.0 vocabulary.
363
363
 
364
364
  ## MCP Surface
365
365
 
366
- `tools/list` returns three tools:
366
+ `tools/list` returns six tools:
367
367
 
368
368
  | Tool | Purpose |
369
369
  | --- | --- |
370
370
  | `dispatch` | Always starts new routed coding work — one task to the best-fit harness, or a fanout to several for independent opinions. Every call runs as a background job from the first moment: a fast task returns its full result inline (`completed: true`), a slow one returns `completed: false` plus a `jobId` to check on. Nothing is ever lost to a timeout — including the MCP call's own. |
371
371
  | `job_status` | Checks work started by `dispatch`. Pass the `jobId` it returned to get a `partialOutput` tail while running and the full `result` once done; omit `jobId` to list recent background dispatches (compact, newest first). |
372
+ | `cancel_job` | Stops work started by `dispatch` — a wrong turn, a wrong directory, a superseded run. A job still waiting for a slot stops outright; a running one tears down within about a second (poll `job_status` to see it land), killing the agent CLI and its children. Files it already changed are **not** reverted, and a cancelled run is not counted as a route failure. |
373
+ | `retry_job` | Re-runs a finished job's task from its own record — same prompt (as the delegate saw it), files, working directory, hints and workspace policy. Pass `service` to send the retry to a different route, which is the usual reason to retry: the task was fine and the route was not. Returns a new jobId; the original is untouched. |
374
+ | `workspace` | For a job that ran with `workspacePolicy: "copy"` or `"git_worktree"`, the agent's changes live in an isolated workspace and were **never** applied to your project. `action: "diff"` returns the real patch; `"apply"` applies it (refusing when your project has uncommitted changes, since the patch was built against a clean base — `force: true` overrides); `"discard"` deletes the workspace. The full patch is always written to the job directory, so `git apply` by hand is available either way. |
372
375
  | `usage` | Per-route call counts, quota, billing kind, and breaker state — check this before passing an unfamiliar `hints.model`/`service`/`models` value, since those are not validated. Pass `listModels: <route id>` to fetch that `openai_compatible` route's live `GET /models` catalog instead of (or alongside) the summary. |
373
376
 
374
377
  `workingDir` is effectively required when starting work: if you omit it, the task runs
package/dist/bin.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;GAEG;AA6sBH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAiH1D"}
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;GAEG;AAmhBH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAiH1D"}
package/dist/bin.js CHANGED
@@ -6,7 +6,6 @@ import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
6
6
  import { promises as fs } from "node:fs";
7
7
  import path from "node:path";
8
8
  import { parseArgs } from "node:util";
9
- import yaml from "js-yaml";
10
9
  import { ensureHttpToken, maskToken, readHttpToken, rotateHttpToken, tokenPath } from "./auth.js";
11
10
  import { AUTO_DETECT_COMMANDS, loadConfig } from "./config.js";
12
11
  import { LeaderboardCache } from "./leaderboard.js";
@@ -19,6 +18,7 @@ import { buildStatus, buildUsage, renderStatusText, renderUsageText } from "./st
19
18
  import { startHttpServer } from "./http/server.js";
20
19
  import { billingIsBlocked, buildRouteBilling } from "./billing.js";
21
20
  import { effectiveSafetyProfile } from "./safety.js";
21
+ import { configToYaml } from "./configure-yaml.js";
22
22
  import { stateRoot } from "./state-dir.js";
23
23
  async function buildRuntime(configPath) {
24
24
  const config = await loadConfig(configPath);
@@ -61,180 +61,6 @@ function printUsage() {
61
61
  "",
62
62
  ].join("\n"));
63
63
  }
64
- /**
65
- * Common fields between clis: and endpoints: entries. Billing fields
66
- * (provider/surface/auth_source/billing_kind/paid_usage_possible/
67
- * billing_confidence/billing_notes) are deliberately NOT emitted — they're
68
- * computed from the harness/endpoint defaults every time the config loads
69
- * (see buildRouteBilling), so writing them out would freeze a snapshot that
70
- * silently stops tracking future default changes and looks like a deliberate
71
- * user override when it never was one. `allow_paid_usage` is the one real
72
- * opt-in flag here, so it's the only billing-adjacent field written.
73
- *
74
- * `safety_profile`/`effective_safety` are only emitted when the service
75
- * actually carries an explicit value — never a fallback default. Baking in
76
- * `requestedSafetyProfile()`'s "workspace_edit" fallback for every route used
77
- * to write `safety_profile: workspace_edit` on cursor_cli even though its
78
- * real effective_safety (the capability floor that actually governs it) is
79
- * full_auto, making the written file self-contradictory next to `status`.
80
- */
81
- function commonEntryFields(svc) {
82
- return {
83
- enabled: svc.enabled ? undefined : false,
84
- model: svc.model,
85
- tier: svc.tier,
86
- weight: svc.weight,
87
- cli_capability: svc.cliCapability,
88
- leaderboard_model: svc.leaderboardModel,
89
- thinking_level: svc.thinkingLevel,
90
- escalate_model: svc.escalateModel,
91
- escalate_on: svc.escalateOn.length > 0 ? svc.escalateOn : undefined,
92
- capabilities: Object.keys(svc.capabilities).length > 0 ? svc.capabilities : undefined,
93
- timeout_ms: svc.timeoutMs,
94
- max_output_tokens: svc.maxOutputTokens,
95
- max_input_tokens: svc.maxInputTokens,
96
- allow_paid_usage: svc.allowPaidUsage ? true : undefined,
97
- safety_profile: svc.safetyProfile,
98
- effective_safety: svc.effectiveSafety,
99
- endpoint_mode: svc.endpointMode,
100
- endpoint_provider: svc.endpointProvider,
101
- wire_protocol: svc.wireProtocol,
102
- workspace_policy: svc.workspacePolicy,
103
- models: svc.models && svc.models.length > 0 ? svc.models : undefined,
104
- model_hint: svc.modelHint,
105
- };
106
- }
107
- /**
108
- * Render a route's api_key WITHOUT materialising the secret.
109
- *
110
- * `svc.apiKey` is the RESOLVED value — config.ts interpolates `${VAR}` at
111
- * load time, so by here the reference is gone. Emitting it verbatim wrote
112
- * live credentials into config.yaml and echoed them to stdout on
113
- * `configure --print`, which is documented as the safe preview and is exactly
114
- * what someone pastes into a bug report. It also broke the project's own
115
- * stated invariant (plugin/commands/setup.md: "API keys MUST be written as
116
- * ${ENV_VAR} references — never literal").
117
- *
118
- * `config.envRefs` maps the resolved value back to the reference that
119
- * produced it, so a key that came from `${GROQ_API_KEY}` round-trips exactly.
120
- *
121
- * A key written as a LITERAL in the source file has no reference to restore.
122
- * That case splits by destination: `--yes` writes to disk, where the literal
123
- * already lives and dropping it would break a working config, so it is
124
- * preserved; `--print` goes to a terminal and a bug report, so it is redacted
125
- * to the placeholder below.
126
- */
127
- function apiKeyForYaml(svc, config, opts) {
128
- if (svc.apiKey === undefined || svc.apiKey === "")
129
- return undefined;
130
- const ref = config.envRefs?.get(svc.apiKey);
131
- if (ref !== undefined)
132
- return ref;
133
- if (!opts.redactLiterals)
134
- return svc.apiKey;
135
- // protocol.apiKeyEnvVar is the var the CHILD CLI reads, which is only a
136
- // suggestion for what to name the config reference — they need not match,
137
- // and endpoint routes have no protocol at all. Hence the generic fallback.
138
- const envVar = svc.protocol?.apiKeyEnvVar ?? "YOUR_API_KEY_ENV_VAR";
139
- return `\${${envVar}}`;
140
- }
141
- function cliEntryToYaml(svc, config, opts) {
142
- // `harness: generic` has NO shipped preset behind it, so anything omitted
143
- // here is not recoverable on reload — it is gone. Dropping `protocol:` was
144
- // fatal: config.ts refuses a generic entry without one ("requires a
145
- // protocol block — entry ignored"), so a round-trip deleted every
146
- // user-added harness, and `configure --yes --force` wrote that over their
147
- // file. This is the documented README#adding-a-harness path.
148
- //
149
- // Built-in harnesses keep the lean output: their preset supplies protocol
150
- // and billing, and emitting a copy would freeze a snapshot that stops
151
- // tracking future default changes — the same reasoning commonEntryFields
152
- // gives for omitting billing fields generally.
153
- const isGeneric = svc.harness === "generic";
154
- return {
155
- name: svc.name,
156
- harness: svc.harness,
157
- command: svc.command,
158
- api_key: apiKeyForYaml(svc, config, opts),
159
- ...commonEntryFields(svc),
160
- ...(isGeneric
161
- ? {
162
- provider: svc.provider,
163
- surface: svc.surface,
164
- auth_source: svc.authSource,
165
- billing_kind: svc.billingKind,
166
- paid_usage_possible: svc.paidUsagePossible,
167
- billing_notes: svc.billingNotes,
168
- protocol: svc.protocol,
169
- }
170
- : {}),
171
- };
172
- }
173
- function endpointEntryToYaml(svc, config, opts) {
174
- return {
175
- name: svc.name,
176
- base_url: svc.baseUrl,
177
- api_key: apiKeyForYaml(svc, config, opts),
178
- ...commonEntryFields(svc),
179
- // Endpoints have no shipped preset behind them, so an omitted billing
180
- // field is not recomputed on reload — it is lost. Verified: an endpoint
181
- // declaring `billing_kind: local_compute` and `paid_usage_possible: false`
182
- // came back undefined, flipping it to paid=possible and getting it skipped
183
- // by billing policy.
184
- //
185
- // This is the same reasoning already applied to `harness: generic` CLI
186
- // routes, and it should have been applied here at the same time. Built-in
187
- // harnesses still keep the lean output because their preset supplies these.
188
- provider: svc.provider,
189
- surface: svc.surface,
190
- auth_source: svc.authSource,
191
- billing_kind: svc.billingKind,
192
- paid_usage_possible: svc.paidUsagePossible,
193
- billing_notes: svc.billingNotes,
194
- };
195
- }
196
- /**
197
- * Top-level settings a user set and that have no defaults to track.
198
- *
199
- * These were silently dropped on every round-trip. Unlike the billing fields
200
- * (see commonEntryFields — omitted deliberately so they keep following harness
201
- * defaults), nothing recomputes these: a dropped `max_concurrent_runs` is
202
- * simply gone, and `configure --yes --force` wrote the result over the user's
203
- * file.
204
- */
205
- function topLevelToYaml(config) {
206
- const out = {};
207
- if (config.disabled && config.disabled.length > 0)
208
- out.disabled = [...config.disabled];
209
- if (config.maxConcurrentRuns !== undefined)
210
- out.max_concurrent_runs = config.maxConcurrentRuns;
211
- if (config.retention?.jobsDays !== undefined) {
212
- out.retention = { jobs_days: config.retention.jobsDays };
213
- }
214
- if (config.telemetry?.enabled !== undefined) {
215
- out.telemetry = { enabled: config.telemetry.enabled };
216
- }
217
- if (config.leaderboard?.enabled !== undefined) {
218
- out.leaderboard = { enabled: config.leaderboard.enabled };
219
- }
220
- return out;
221
- }
222
- function configToYaml(config, opts) {
223
- const clis = [];
224
- const endpoints = [];
225
- for (const svc of Object.values(config.services)) {
226
- if (svc.type === "cli")
227
- clis.push(cliEntryToYaml(svc, config, opts));
228
- else
229
- endpoints.push(endpointEntryToYaml(svc, config, opts));
230
- }
231
- const doc = { ...topLevelToYaml(config) };
232
- if (clis.length > 0)
233
- doc.clis = clis;
234
- if (endpoints.length > 0)
235
- doc.endpoints = endpoints;
236
- return yaml.dump(doc, { noRefs: true, lineWidth: 100 });
237
- }
238
64
  async function cmdConfigure(configPath, explicitConfigPath, opts) {
239
65
  // configure's --config names where it will WRITE, so a path that does not
240
66
  // exist yet is the normal first-run case, not a typo.
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * One field contract shared by every route shape.
3
+ *
4
+ * THE DEFECT THIS EXISTS TO RETIRE. `clis:`, `endpoints:` and the legacy
5
+ * `services:` block each resolved route fields with their own hand-written
6
+ * list, so a key added to one was easy to forget in the others. That produced
7
+ * five separate silent-drop defects in one file, each the same shape: a
8
+ * correctly-spelled, correctly-valued setting written in config and read by
9
+ * nobody —
10
+ *
11
+ * workspace_policy honoured for services:/endpoints:, dropped for clis:
12
+ * api_keys honoured for clis:, dropped for endpoints:
13
+ * effective_safety honoured for clis:/services:, dropped for endpoints:
14
+ * escalate_model honoured for clis:, dropped for endpoints:
15
+ *
16
+ * These are safety and isolation controls, so "silently absent" means
17
+ * "silently less restrictive" — a route asked to run `read_only` running with
18
+ * write access, a route asked to run in an isolated copy running in the user's
19
+ * repository. Nothing warns, because nothing is wrong with what was written.
20
+ *
21
+ * WHY A TABLE RATHER THAN A SHARED FUNCTION. The obvious unification — have
22
+ * the CLI builder call the endpoint builder's `billingFields()` — is wrong,
23
+ * and tests/route-field-parity.test.ts says why: the CLI path resolves
24
+ * `entry.X ?? harnessDefaults.X` against the defaults shipped in
25
+ * config.default.yaml, and `billingFields(raw)` has no defaults layer at all.
26
+ * Collapsing them would silently drop the fallback every built-in harness
27
+ * relies on — trading five silent-drop bugs for a bigger one. A table carries
28
+ * the defaults layer explicitly: each field says how to parse it AND where its
29
+ * fallback comes from, and a shape with no defaults (endpoints) simply passes
30
+ * none.
31
+ *
32
+ * WHAT IS DELIBERATELY NOT HERE. Billing identity — provider, surface,
33
+ * auth_source, billing_kind, paid_usage_possible — resolves differently per
34
+ * shape for real reasons, not by accident: endpoints infer it from the base
35
+ * URL (localhost is local_compute), while CLI routes factor in whether an
36
+ * api_key is present (a key means a metered account exists whatever the
37
+ * declared kind says). Those stay in their builders. Pretending they are
38
+ * shared would be the same mistake in the other direction.
39
+ *
40
+ * tests/route-field-parity.test.ts still pins every key here against both
41
+ * shapes. It is no longer the only thing standing between a new field and a
42
+ * silent drop, but it is what proves this table is actually wired into both.
43
+ */
44
+ import type { SafetyProfile, ServiceConfig } from "../types.js";
45
+ /**
46
+ * The subset of a harness's shipped defaults that shared fields fall back to.
47
+ *
48
+ * Structural on purpose: `CliDefaults` satisfies it without this module
49
+ * needing to import config.ts (which imports this one).
50
+ */
51
+ export type RouteFieldDefaults = Partial<Pick<ServiceConfig, "leaderboardModel" | "thinkingLevel" | "maxOutputTokens" | "maxInputTokens" | "effectiveSafety" | "models" | "modelHint">>;
52
+ /**
53
+ * `effective_safety` is either one profile for every request, or a per-request
54
+ * map. Shared by all three shapes; lived in config.ts before this table.
55
+ */
56
+ export declare function effectiveSafetyFrom(raw: unknown): SafetyProfile | Partial<Record<SafetyProfile, SafetyProfile>> | undefined;
57
+ /** The YAML keys this table owns — used by tests to prove both shapes are wired to it. */
58
+ export declare const SHARED_ROUTE_FIELD_KEYS: readonly string[];
59
+ /**
60
+ * Resolve every shared field for one route entry.
61
+ *
62
+ * A field is emitted only when it resolves to something, so callers can spread
63
+ * the result over a partially-built ServiceConfig without overwriting anything
64
+ * with `undefined`.
65
+ *
66
+ * @param raw the route entry as written in config.yaml
67
+ * @param defaults the harness's shipped defaults, for shapes that have them
68
+ * (`clis:`). Endpoint entries pass nothing — they have no defaults layer, and
69
+ * inventing one is the mistake this table's header warns about.
70
+ */
71
+ export declare function resolveSharedRouteFields(raw: Record<string, unknown>, defaults?: RouteFieldDefaults): Partial<ServiceConfig>;
72
+ //# sourceMappingURL=route-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-fields.d.ts","sourceRoot":"","sources":["../../src/config/route-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAShE;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,IAAI,CACF,aAAa,EACX,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,QAAQ,GACR,WAAW,CACd,CACF,CAAC;AA0BF;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,GACX,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,GAAG,SAAS,CAW3E;AAiCD,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAA0C,CAAC;AAEhG;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAQxB"}