harness-dispatch 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +582 -0
- package/config.default.yaml +397 -0
- package/data/coding_benchmarks.json +431 -0
- package/dist/auth.d.ts +9 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +73 -0
- package/dist/auth.js.map +1 -0
- package/dist/billing.d.ts +7 -0
- package/dist/billing.d.ts.map +1 -0
- package/dist/billing.js +201 -0
- package/dist/billing.js.map +1 -0
- package/dist/bin.d.ts +6 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +488 -0
- package/dist/bin.js.map +1 -0
- package/dist/breaker-store.d.ts +31 -0
- package/dist/breaker-store.d.ts.map +1 -0
- package/dist/breaker-store.js +103 -0
- package/dist/breaker-store.js.map +1 -0
- package/dist/circuit-breaker.d.ts +47 -0
- package/dist/circuit-breaker.d.ts.map +1 -0
- package/dist/circuit-breaker.js +102 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/config.d.ts +48 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +1248 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/live.d.ts +49 -0
- package/dist/dashboard/live.d.ts.map +1 -0
- package/dist/dashboard/live.js +149 -0
- package/dist/dashboard/live.js.map +1 -0
- package/dist/dispatch-log.d.ts +46 -0
- package/dist/dispatch-log.d.ts.map +1 -0
- package/dist/dispatch-log.js +89 -0
- package/dist/dispatch-log.js.map +1 -0
- package/dist/dispatchers/base.d.ts +55 -0
- package/dist/dispatchers/base.d.ts.map +1 -0
- package/dist/dispatchers/base.js +80 -0
- package/dist/dispatchers/base.js.map +1 -0
- package/dist/dispatchers/generic-cli.d.ts +30 -0
- package/dist/dispatchers/generic-cli.d.ts.map +1 -0
- package/dist/dispatchers/generic-cli.js +471 -0
- package/dist/dispatchers/generic-cli.js.map +1 -0
- package/dist/dispatchers/openai-compatible.d.ts +57 -0
- package/dist/dispatchers/openai-compatible.d.ts.map +1 -0
- package/dist/dispatchers/openai-compatible.js +662 -0
- package/dist/dispatchers/openai-compatible.js.map +1 -0
- package/dist/dispatchers/shared/kill-tree.d.ts +21 -0
- package/dist/dispatchers/shared/kill-tree.d.ts.map +1 -0
- package/dist/dispatchers/shared/kill-tree.js +35 -0
- package/dist/dispatchers/shared/kill-tree.js.map +1 -0
- package/dist/dispatchers/shared/rate-limit-headers.d.ts +22 -0
- package/dist/dispatchers/shared/rate-limit-headers.d.ts.map +1 -0
- package/dist/dispatchers/shared/rate-limit-headers.js +124 -0
- package/dist/dispatchers/shared/rate-limit-headers.js.map +1 -0
- package/dist/dispatchers/shared/stream-subprocess.d.ts +53 -0
- package/dist/dispatchers/shared/stream-subprocess.d.ts.map +1 -0
- package/dist/dispatchers/shared/stream-subprocess.js +274 -0
- package/dist/dispatchers/shared/stream-subprocess.js.map +1 -0
- package/dist/dispatchers/shared/subprocess.d.ts +25 -0
- package/dist/dispatchers/shared/subprocess.d.ts.map +1 -0
- package/dist/dispatchers/shared/subprocess.js +110 -0
- package/dist/dispatchers/shared/subprocess.js.map +1 -0
- package/dist/dispatchers/shared/which-available.d.ts +2 -0
- package/dist/dispatchers/shared/which-available.d.ts.map +1 -0
- package/dist/dispatchers/shared/which-available.js +8 -0
- package/dist/dispatchers/shared/which-available.js.map +1 -0
- package/dist/dispatchers/shared/windows-cmd.d.ts +38 -0
- package/dist/dispatchers/shared/windows-cmd.d.ts.map +1 -0
- package/dist/dispatchers/shared/windows-cmd.js +91 -0
- package/dist/dispatchers/shared/windows-cmd.js.map +1 -0
- package/dist/http/server.d.ts +15 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +495 -0
- package/dist/http/server.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/job-runner.d.ts +19 -0
- package/dist/job-runner.d.ts.map +1 -0
- package/dist/job-runner.js +42 -0
- package/dist/job-runner.js.map +1 -0
- package/dist/jobs.d.ts +116 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +542 -0
- package/dist/jobs.js.map +1 -0
- package/dist/leaderboard.d.ts +62 -0
- package/dist/leaderboard.d.ts.map +1 -0
- package/dist/leaderboard.js +287 -0
- package/dist/leaderboard.js.map +1 -0
- package/dist/mcp/config-hot-reload.d.ts +64 -0
- package/dist/mcp/config-hot-reload.d.ts.map +1 -0
- package/dist/mcp/config-hot-reload.js +144 -0
- package/dist/mcp/config-hot-reload.js.map +1 -0
- package/dist/mcp/dispatcher-factory.d.ts +20 -0
- package/dist/mcp/dispatcher-factory.d.ts.map +1 -0
- package/dist/mcp/dispatcher-factory.js +30 -0
- package/dist/mcp/dispatcher-factory.js.map +1 -0
- package/dist/mcp/resources.d.ts +8 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +45 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +36 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +80 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +171 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +658 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/observability/index.d.ts +52 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +111 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/spans.d.ts +47 -0
- package/dist/observability/spans.d.ts.map +1 -0
- package/dist/observability/spans.js +72 -0
- package/dist/observability/spans.js.map +1 -0
- package/dist/quota.d.ts +91 -0
- package/dist/quota.d.ts.map +1 -0
- package/dist/quota.js +331 -0
- package/dist/quota.js.map +1 -0
- package/dist/route-policy.d.ts +24 -0
- package/dist/route-policy.d.ts.map +1 -0
- package/dist/route-policy.js +92 -0
- package/dist/route-policy.js.map +1 -0
- package/dist/router.d.ts +162 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +878 -0
- package/dist/router.js.map +1 -0
- package/dist/safety.d.ts +7 -0
- package/dist/safety.d.ts.map +1 -0
- package/dist/safety.js +33 -0
- package/dist/safety.js.map +1 -0
- package/dist/status.d.ts +100 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +228 -0
- package/dist/status.js.map +1 -0
- package/dist/types.d.ts +402 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/dist/working-dir.d.ts +15 -0
- package/dist/working-dir.d.ts.map +1 -0
- package/dist/working-dir.js +22 -0
- package/dist/working-dir.js.map +1 -0
- package/dist/workspaces.d.ts +19 -0
- package/dist/workspaces.d.ts.map +1 -0
- package/dist/workspaces.js +352 -0
- package/dist/workspaces.js.map +1 -0
- package/package.json +96 -0
package/dist/billing.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
function isLoopback(baseUrl) {
|
|
2
|
+
if (!baseUrl)
|
|
3
|
+
return false;
|
|
4
|
+
return (baseUrl.includes("localhost") ||
|
|
5
|
+
baseUrl.includes("127.0.0.1") ||
|
|
6
|
+
baseUrl.includes("::1"));
|
|
7
|
+
}
|
|
8
|
+
function isKnownLocalRuntime(baseUrl) {
|
|
9
|
+
if (!baseUrl)
|
|
10
|
+
return false;
|
|
11
|
+
return (baseUrl.includes("localhost:11434") ||
|
|
12
|
+
baseUrl.includes("127.0.0.1:11434") ||
|
|
13
|
+
baseUrl.includes("localhost:1234") ||
|
|
14
|
+
baseUrl.includes("127.0.0.1:1234"));
|
|
15
|
+
}
|
|
16
|
+
// NOTE: no harness-name special cases here. Built-in harnesses declare
|
|
17
|
+
// provider/surface/auth_source/billing_kind in the shipped config.default.yaml,
|
|
18
|
+
// and config.ts copies those onto every route built from them — by the time a
|
|
19
|
+
// ServiceConfig reaches this file, its billing identity is declared data.
|
|
20
|
+
// The fallbacks below are structural inference only (endpoint type, base_url
|
|
21
|
+
// shape), for entries that declare nothing.
|
|
22
|
+
function providerFromService(svc) {
|
|
23
|
+
if (svc.provider)
|
|
24
|
+
return svc.provider;
|
|
25
|
+
if (svc.type === "openai_compatible" && isKnownLocalRuntime(svc.baseUrl))
|
|
26
|
+
return "local";
|
|
27
|
+
if (svc.baseUrl?.includes("api.openai.com"))
|
|
28
|
+
return "openai";
|
|
29
|
+
return "custom";
|
|
30
|
+
}
|
|
31
|
+
function surfaceFromService(svc) {
|
|
32
|
+
if (svc.surface)
|
|
33
|
+
return svc.surface;
|
|
34
|
+
if (svc.type === "openai_compatible") {
|
|
35
|
+
if (svc.baseUrl?.includes("api.openai.com"))
|
|
36
|
+
return "openai_api";
|
|
37
|
+
if (isKnownLocalRuntime(svc.baseUrl))
|
|
38
|
+
return "local_endpoint";
|
|
39
|
+
return "openai_compatible";
|
|
40
|
+
}
|
|
41
|
+
return "custom";
|
|
42
|
+
}
|
|
43
|
+
function authSourceFromService(svc, surface) {
|
|
44
|
+
if (svc.authSource)
|
|
45
|
+
return svc.authSource;
|
|
46
|
+
if (svc.apiKey)
|
|
47
|
+
return "api_key";
|
|
48
|
+
if (surface === "local_endpoint")
|
|
49
|
+
return "local_network";
|
|
50
|
+
if (svc.type === "openai_compatible")
|
|
51
|
+
return "configured_endpoint";
|
|
52
|
+
if (surface === "claude_agent_sdk")
|
|
53
|
+
return "oauth_session";
|
|
54
|
+
if (surface === "codex_cli" ||
|
|
55
|
+
surface === "cursor_agent_cli" ||
|
|
56
|
+
surface === "antigravity_cli") {
|
|
57
|
+
return "product_login";
|
|
58
|
+
}
|
|
59
|
+
return "unknown";
|
|
60
|
+
}
|
|
61
|
+
function inferredKind(svc, surface, authSource, now) {
|
|
62
|
+
if (svc.billingKind)
|
|
63
|
+
return svc.billingKind;
|
|
64
|
+
if (authSource === "api_key")
|
|
65
|
+
return "metered_api";
|
|
66
|
+
switch (surface) {
|
|
67
|
+
case "claude_agent_sdk":
|
|
68
|
+
case "claude_code":
|
|
69
|
+
// Anthropic announced a separate Agent SDK credit pool for claude -p
|
|
70
|
+
// (2026-06-15) but PAUSED the change on launch day, before it took
|
|
71
|
+
// effect — as of 2026-07, programmatic and interactive Claude Code
|
|
72
|
+
// usage still draw from the same subscription pool. Reclassify to
|
|
73
|
+
// included_credit_then_optional_overage only if/when Anthropic
|
|
74
|
+
// actually ships the split (verify against
|
|
75
|
+
// https://support.claude.com/en/articles/15036540 first).
|
|
76
|
+
return "included_plan_usage";
|
|
77
|
+
case "codex_cli":
|
|
78
|
+
case "codex_sdk":
|
|
79
|
+
return "included_plan_then_flexible_credits";
|
|
80
|
+
case "cursor_agent_cli":
|
|
81
|
+
return "included_usage_then_on_demand";
|
|
82
|
+
case "antigravity_cli":
|
|
83
|
+
return "free_quota";
|
|
84
|
+
case "local_endpoint":
|
|
85
|
+
return "local_compute";
|
|
86
|
+
case "openai_api":
|
|
87
|
+
case "anthropic_api":
|
|
88
|
+
case "gemini_api":
|
|
89
|
+
case "vertex_ai":
|
|
90
|
+
return "metered_api";
|
|
91
|
+
case "openai_compatible":
|
|
92
|
+
return isLoopback(svc.baseUrl) ? "unknown" : "metered_api";
|
|
93
|
+
case "custom":
|
|
94
|
+
return "unknown";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function inferredConfidence(svc, surface, kind) {
|
|
98
|
+
if (svc.billingConfidence)
|
|
99
|
+
return svc.billingConfidence;
|
|
100
|
+
if (kind === "unknown")
|
|
101
|
+
return "unknown";
|
|
102
|
+
// An explicit billing_kind in the route's config IS documentation — the
|
|
103
|
+
// operator declared it. Without this, a custom/loopback route stays
|
|
104
|
+
// confidence-unknown (and therefore blocked by billingIsUnknown) even
|
|
105
|
+
// after the operator does exactly what the docs tell them to do.
|
|
106
|
+
if (svc.billingKind)
|
|
107
|
+
return "documented";
|
|
108
|
+
if (surface === "openai_compatible" && isLoopback(svc.baseUrl))
|
|
109
|
+
return "unknown";
|
|
110
|
+
if (surface === "custom")
|
|
111
|
+
return "unknown";
|
|
112
|
+
if (surface === "cursor_agent_cli" && svc.authSource === "api_key")
|
|
113
|
+
return "inferred";
|
|
114
|
+
return "documented";
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Whether a route can incur a REAL charge with no further action from the
|
|
118
|
+
* user, by default — i.e. whether harness-dispatch should block it until
|
|
119
|
+
* explicitly allowed.
|
|
120
|
+
*
|
|
121
|
+
* "included_X_then_optional_Y" kinds (Codex flexible credits, Claude usage
|
|
122
|
+
* credits, Cursor on-demand) are NOT blocked by default: researched across
|
|
123
|
+
* Anthropic, OpenAI, and Cursor (2026-07), all three hard-stop at the
|
|
124
|
+
* included cap by default — continuing past it requires the user to have
|
|
125
|
+
* ALREADY completed a separate, deliberate opt-in on the PROVIDER's own
|
|
126
|
+
* side (enabling usage credits/flexible pricing/on-demand billing, usually
|
|
127
|
+
* with its own payment method and spend limit). harness-dispatch blocking
|
|
128
|
+
* these by default would just be re-gating something the provider already
|
|
129
|
+
* gates, and asking every user to prove a negative ("I haven't opted into
|
|
130
|
+
* my provider's overage") for a state that's off by default anyway.
|
|
131
|
+
*
|
|
132
|
+
* A user who HAS enabled provider-side overage can still restore the block
|
|
133
|
+
* by setting `paid_usage_possible: true` explicitly in that route's config
|
|
134
|
+
* — the override in buildRouteBilling() takes precedence over this
|
|
135
|
+
* function. Only kinds with no such provider-side backstop — metered_api
|
|
136
|
+
* (raw API keys bill from the first token, no included pool at all) and
|
|
137
|
+
* unknown (no data to reason about) — are blocked by default here.
|
|
138
|
+
*/
|
|
139
|
+
function inferredPaidUsagePossible(kind) {
|
|
140
|
+
switch (kind) {
|
|
141
|
+
case "local_compute":
|
|
142
|
+
case "included_plan_usage":
|
|
143
|
+
case "free_quota":
|
|
144
|
+
case "included_plan_then_flexible_credits":
|
|
145
|
+
case "included_credit_then_optional_overage":
|
|
146
|
+
case "included_usage_then_on_demand":
|
|
147
|
+
return false;
|
|
148
|
+
case "metered_api":
|
|
149
|
+
case "unknown":
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function defaultNotes(svc, surface, kind, now) {
|
|
154
|
+
if (svc.billingNotes)
|
|
155
|
+
return svc.billingNotes;
|
|
156
|
+
if (surface === "claude_agent_sdk" || surface === "claude_code") {
|
|
157
|
+
// The genuinely useful operational fact for this route: dispatched jobs
|
|
158
|
+
// compete with the user's own interactive Claude Code sessions.
|
|
159
|
+
return ("claude -p draws from the same subscription usage pool as interactive " +
|
|
160
|
+
"Claude Code (Anthropic's announced 2026-06-15 Agent SDK credit split " +
|
|
161
|
+
"was paused before taking effect).");
|
|
162
|
+
}
|
|
163
|
+
if (surface === "openai_compatible" && isLoopback(svc.baseUrl) && kind === "unknown") {
|
|
164
|
+
return "Loopback endpoint is not assumed local unless configured as a known local runtime.";
|
|
165
|
+
}
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
export function buildRouteBilling(svc, opts = {}) {
|
|
169
|
+
const now = opts.now ?? new Date();
|
|
170
|
+
const provider = providerFromService(svc);
|
|
171
|
+
const surface = surfaceFromService(svc);
|
|
172
|
+
const authSource = authSourceFromService(svc, surface);
|
|
173
|
+
const kind = inferredKind(svc, surface, authSource, now);
|
|
174
|
+
const confidence = inferredConfidence(svc, surface, kind);
|
|
175
|
+
const paidUsagePossible = svc.paidUsagePossible ?? inferredPaidUsagePossible(kind);
|
|
176
|
+
const billing = {
|
|
177
|
+
provider,
|
|
178
|
+
surface,
|
|
179
|
+
authSource,
|
|
180
|
+
kind,
|
|
181
|
+
paidUsagePossible,
|
|
182
|
+
allowPaidUsage: svc.allowPaidUsage ?? false,
|
|
183
|
+
paidUsageRequiresOptIn: paidUsagePossible ? true : false,
|
|
184
|
+
confidence,
|
|
185
|
+
};
|
|
186
|
+
const notes = defaultNotes(svc, surface, kind, now);
|
|
187
|
+
if (notes !== undefined)
|
|
188
|
+
billing.notes = notes;
|
|
189
|
+
return billing;
|
|
190
|
+
}
|
|
191
|
+
export function billingIsUnknown(billing) {
|
|
192
|
+
return billing.kind === "unknown" || billing.confidence === "unknown";
|
|
193
|
+
}
|
|
194
|
+
export function billingIsBlocked(billing) {
|
|
195
|
+
if (billingIsUnknown(billing))
|
|
196
|
+
return !billing.allowPaidUsage;
|
|
197
|
+
if (billing.paidUsagePossible)
|
|
198
|
+
return !billing.allowPaidUsage;
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=billing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;GAEG;AAkfH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyF1D"}
|