@intentic/sandbox-contract 1.246.1 → 1.247.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 (75) hide show
  1. package/dist/batch-runs.d.ts +2 -0
  2. package/dist/batch-runs.d.ts.map +1 -1
  3. package/dist/batch-runs.js +1 -0
  4. package/dist/batch-runs.js.map +1 -1
  5. package/dist/contracts/agent.contract.d.ts +19 -0
  6. package/dist/contracts/agent.contract.d.ts.map +1 -1
  7. package/dist/contracts/settings.contract.d.ts +97 -10
  8. package/dist/contracts/settings.contract.d.ts.map +1 -1
  9. package/dist/contracts/usage.contract.d.ts +22 -0
  10. package/dist/contracts/usage.contract.d.ts.map +1 -1
  11. package/dist/contracts/usage.contract.js +19 -0
  12. package/dist/contracts/usage.contract.js.map +1 -1
  13. package/dist/definition.d.ts +16 -20
  14. package/dist/definition.d.ts.map +1 -1
  15. package/dist/fast-tier.js +1 -1
  16. package/dist/fast-tier.js.map +1 -1
  17. package/dist/index.d.ts +140 -12
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/model-pins.d.ts +17 -0
  22. package/dist/model-pins.d.ts.map +1 -0
  23. package/dist/{quick-model.js → model-pins.js} +16 -10
  24. package/dist/model-pins.js.map +1 -0
  25. package/dist/model-roles.d.ts +144 -0
  26. package/dist/model-roles.d.ts.map +1 -0
  27. package/dist/model-roles.js +129 -0
  28. package/dist/model-roles.js.map +1 -0
  29. package/dist/schemas/agent.d.ts +21 -2
  30. package/dist/schemas/agent.d.ts.map +1 -1
  31. package/dist/schemas/agent.js +4 -2
  32. package/dist/schemas/agent.js.map +1 -1
  33. package/dist/schemas/plan-limits.d.ts +20 -0
  34. package/dist/schemas/plan-limits.d.ts.map +1 -1
  35. package/dist/schemas/plan-limits.js +21 -0
  36. package/dist/schemas/plan-limits.js.map +1 -1
  37. package/dist/schemas/settings.d.ts +82 -5
  38. package/dist/schemas/settings.d.ts.map +1 -1
  39. package/dist/schemas/settings.js +15 -18
  40. package/dist/schemas/settings.js.map +1 -1
  41. package/dist/schemas/usage.d.ts +5 -0
  42. package/dist/schemas/usage.d.ts.map +1 -1
  43. package/dist/schemas/usage.js +5 -0
  44. package/dist/schemas/usage.js.map +1 -1
  45. package/package.json +4 -4
  46. package/src/agent-catalog.ts +1 -1
  47. package/src/batch-runs.test.ts +10 -5
  48. package/src/batch-runs.ts +10 -3
  49. package/src/contracts/usage.contract.ts +31 -0
  50. package/src/events.ts +1 -1
  51. package/src/fast-tier.test.ts +1 -1
  52. package/src/fast-tier.ts +5 -5
  53. package/src/index.ts +2 -2
  54. package/src/{quick-model.test.ts → model-pins.test.ts} +73 -29
  55. package/src/model-pins.ts +183 -0
  56. package/src/model-roles.ts +224 -0
  57. package/src/plan-pools.ts +1 -1
  58. package/src/prompt-complexity.test.ts +1 -1
  59. package/src/prompt-complexity.ts +2 -2
  60. package/src/provider-specs.test.ts +1 -1
  61. package/src/schemas/agent.ts +42 -17
  62. package/src/schemas/agents.ts +2 -2
  63. package/src/schemas/plan-limits.ts +50 -0
  64. package/src/schemas/settings.ts +77 -88
  65. package/src/schemas/usage.ts +59 -0
  66. package/dist/agent-run-model.d.ts +0 -4
  67. package/dist/agent-run-model.d.ts.map +0 -1
  68. package/dist/agent-run-model.js +0 -13
  69. package/dist/agent-run-model.js.map +0 -1
  70. package/dist/quick-model.d.ts +0 -15
  71. package/dist/quick-model.d.ts.map +0 -1
  72. package/dist/quick-model.js.map +0 -1
  73. package/src/agent-run-model.test.ts +0 -76
  74. package/src/agent-run-model.ts +0 -65
  75. package/src/quick-model.ts +0 -162
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/schemas/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/schemas/settings.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,11 @@ export declare const UsageTurnSchema: z.ZodObject<{
26
26
  iqSearchCohort: z.ZodOptional<z.ZodString>;
27
27
  searchCalls: z.ZodOptional<z.ZodNumber>;
28
28
  openingSearches: z.ZodOptional<z.ZodNumber>;
29
+ openingListings: z.ZodOptional<z.ZodNumber>;
30
+ callsBeforeTarget: z.ZodOptional<z.ZodNumber>;
31
+ mapArm: z.ZodOptional<z.ZodBoolean>;
32
+ mapChars: z.ZodOptional<z.ZodNumber>;
33
+ turnIndex: z.ZodOptional<z.ZodNumber>;
29
34
  verification: z.ZodOptional<z.ZodEnum<{
30
35
  failing: "failing";
31
36
  "no-code": "no-code";
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/schemas/usage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkN1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AASxD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAc/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,oBAAoB;;;iBAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAM5B,CAAC;AAIH,eAAO,MAAM,kBAAkB;;;;;;;;;iBAS7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAAsD,CAAC"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/schemas/usage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6Q1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AASxD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAc/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,oBAAoB;;;iBAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAM5B,CAAC;AAIH,eAAO,MAAM,kBAAkB;;;;;;;;;iBAS7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAAsD,CAAC"}
@@ -33,6 +33,11 @@ export const UsageTurnSchema = z.object({
33
33
  iqSearchCohort: z.string().optional(),
34
34
  searchCalls: z.number().optional(),
35
35
  openingSearches: z.number().optional(),
36
+ openingListings: z.number().optional(),
37
+ callsBeforeTarget: z.number().optional(),
38
+ mapArm: z.boolean().optional(),
39
+ mapChars: z.number().optional(),
40
+ turnIndex: z.number().optional(),
36
41
  verification: z.enum(["verified", "unproven", "failing", "no-code"]).optional(),
37
42
  check: z.string().optional(),
38
43
  filesEdited: z.number().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/schemas/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/schemas/usage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentic/sandbox-contract",
3
- "version": "1.246.1",
3
+ "version": "1.247.0",
4
4
  "description": "oRPC wire contract for the intentic sandbox daemon, shared by the daemon and its browser client",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -185,9 +185,9 @@
185
185
  }
186
186
  },
187
187
  "dependencies": {
188
- "@intentic/constants": "1.246.1",
189
- "@intentic/extension-manifest": "1.246.1",
190
- "@intentic/registry": "1.246.1",
188
+ "@intentic/constants": "1.247.0",
189
+ "@intentic/extension-manifest": "1.247.0",
190
+ "@intentic/registry": "1.247.0",
191
191
  "@orpc/contract": "1.14.13",
192
192
  "tslib": "2.8.1",
193
193
  "zod": "4.5.4"
@@ -58,7 +58,7 @@ export const PROVIDER_VENDOR: Record<NativeProvider, string> = Object.fromEntrie
58
58
  * the prefix is what keeps it a pure function of (provider, harness) instead of a lookup against the installed
59
59
  * manifest, which the contract cannot see and the browser would have to pass in everywhere.
60
60
  *
61
- * A SLASH, never a colon: `${provider}:${model}` is the picker's own key shape, and quick-model.ts's parsePinned
61
+ * A SLASH, never a colon: `${provider}:${model}` is the picker's own key shape, and model-pins.ts's parsePinned
62
62
  * splits a pinned selection on the FIRST colon. `endpoint:ollama:qwen3` would parse as provider "endpoint" with
63
63
  * model "ollama:qwen3", a pin that silently resolves to nothing. The capability id (entryId) excludes both
64
64
  * characters, so `endpoint/<id>` stays unambiguous in either direction. */
@@ -1,5 +1,9 @@
1
1
  import { STATE_DIR } from "@intentic/constants";
2
2
  import { describe, expect, it } from "vitest";
3
+
4
+ // The job a batch pack starts, which decides whose model list pays for it. Maintenance stands in for all of
5
+ // them: what `batchTurnBody` owes is that the role it is handed reaches the turn, not which one it was.
6
+ const ROLE = `maintenance-chore` as const;
3
7
  import {
4
8
  type BatchRunKind,
5
9
  batchConversationId,
@@ -134,16 +138,17 @@ describe(`what the agent is told`, () => {
134
138
 
135
139
  describe(`the turn a run starts`, () => {
136
140
  it(`is always isolated and unattended, which is what registers the fleet entry`, () => {
137
- const body = batchTurnBody({ prompt: `do it`, title: `t`, conversationId: `mt-r5k2a` });
141
+ const body = batchTurnBody({ prompt: `do it`, title: `t`, conversationId: `mt-r5k2a`, role: ROLE });
138
142
  expect([body[`isolated`], body[`unattended`]]).toEqual([true, true]);
139
143
  });
140
144
 
141
145
  it(`caps the title at what the fleet row can show`, () => {
142
- expect(String(batchTurnBody({ prompt: `p`, title: `t`.repeat(200), conversationId: `c` })[`title`])).toHaveLength(80);
146
+ expect(String(batchTurnBody({ prompt: `p`, title: `t`.repeat(200), conversationId: `c`, role: ROLE })[`title`])).toHaveLength(80);
143
147
  });
144
148
 
145
149
  it(`carries a pinned model and its tier when the row's caret chose one`, () => {
146
150
  const body = batchTurnBody({
151
+ role: ROLE,
147
152
  prompt: `p`,
148
153
  title: `t`,
149
154
  conversationId: `c`,
@@ -153,15 +158,15 @@ describe(`the turn a run starts`, () => {
153
158
  });
154
159
 
155
160
  /* ABSENT rather than undefined: the body is serialized to JSON and the daemon's fill step reads a missing
156
- * key as "the owner's agentRunModels decide", which is not what an explicit null would say. */
161
+ * key as "the owner's list for this job decides", which is not what an explicit null would say. */
157
162
  it(`omits the keys a pick did not pin, rather than sending them empty`, () => {
158
- const body = batchTurnBody({ prompt: `p`, title: `t`, conversationId: `c`, pick: { provider: `claude` } });
163
+ const body = batchTurnBody({ prompt: `p`, title: `t`, conversationId: `c`, role: ROLE, pick: { provider: `claude` } });
159
164
  expect(Object.keys(body)).not.toContain(`model`);
160
165
  expect(Object.keys(body)).not.toContain(`effort`);
161
166
  });
162
167
 
163
168
  it(`sends no model keys at all when nothing was pinned`, () => {
164
- const keys = Object.keys(batchTurnBody({ prompt: `p`, title: `t`, conversationId: `c` }));
169
+ const keys = Object.keys(batchTurnBody({ prompt: `p`, title: `t`, conversationId: `c`, role: ROLE }));
165
170
  expect(keys.some((key) => [`agent`, `model`, `effort`].includes(key))).toBe(false);
166
171
  });
167
172
  });
package/src/batch-runs.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { STATE_DIR } from "@intentic/constants";
2
+ import type { ModelRole } from "./model-roles.js";
2
3
 
3
4
  /* ONE BATCH RUN ENGINE, for every surface that fans an ISOLATED AGENT TURN out over a set of items and reads
4
5
  * the answers back off disk.
@@ -143,9 +144,9 @@ export const batchReportingClause = (params: {
143
144
  /* THE BODY OF THE `POST /agent` THAT STARTS ONE ITEM, so the flag combination that makes a run a run is decided
144
145
  * once. `isolated: true` with a conversationId is the shape (and the only shape) that registers a fleet entry,
145
146
  * which is why none of these packs owns session machinery; `unattended: true` is what the turn IS — started by
146
- * a row rather than by a person at a composer — and it is what makes the daemon answer with the owner's
147
- * `agentRunModels` unless the caller pinned a model on the row's caret, in which case the pick rides along and
148
- * the daemon's fill step leaves it alone.
147
+ * a row rather than by a person at a composer — and `runRole` is which of those rows, so the daemon answers
148
+ * with the owner's list FOR THAT JOB (model-roles.ts) unless the caller pinned a model on the row's caret, in
149
+ * which case the pick rides along and the daemon's fill step leaves it alone.
149
150
  *
150
151
  * PERMISSIONS AND ISOLATION ARE THE CALLER'S, deliberately. They are the two decisions that differ by kind and
151
152
  * both are about safety rather than plumbing: an acceptance test that parks on a permission card is a test that
@@ -162,6 +163,11 @@ export const batchTurnBody = (params: {
162
163
  readonly prompt: string;
163
164
  readonly title: string;
164
165
  readonly conversationId: string;
166
+ /* WHICH JOB THIS IS, and therefore which of the owner's model lists pays for it (model-roles.ts). Required
167
+ * rather than optional, because every pack that reaches this function is one of the named roles and a
168
+ * default here would silently hand a new one somebody else's budget — which is exactly how one "agent runs"
169
+ * tier came to cover a documentation sweep and a red production pipeline. */
170
+ readonly role: ModelRole;
165
171
  readonly pick?: BatchTurnPick | undefined;
166
172
  readonly extra?: Readonly<Record<string, unknown>> | undefined;
167
173
  }): Record<string, unknown> => ({
@@ -170,6 +176,7 @@ export const batchTurnBody = (params: {
170
176
  conversationId: params.conversationId,
171
177
  isolated: true,
172
178
  unattended: true,
179
+ runRole: params.role,
173
180
  ...(params.pick === undefined
174
181
  ? {}
175
182
  : {
@@ -1,5 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
+ import { LimitResetClaimSchema, LimitResetStatusSchema } from "../schemas/plan-limits.js";
3
4
  import { DayWindowQuerySchema, UsageRollupSchema } from "../schemas/usage.js";
4
5
 
5
6
  // The one control over the headroom readings a person has: measure again, now, every connection. `force`
@@ -38,4 +39,34 @@ export const usageContract = {
38
39
  })
39
40
  .input(RefreshPlanLimitsSchema)
40
41
  .output(z.object({ ok: z.literal(true) })),
42
+ /* THE WAY PAST A SPENT SESSION WINDOW THAT ISN'T WAITING (LimitResetStatusSchema has what it costs).
43
+ *
44
+ * ASKED, NOT POLLED, and that is the whole reason it is a route of its own rather than another field on the
45
+ * account list. The provider only evaluates it when told the account is at the wall, so asking is a claim
46
+ * about the account's state; asking on every headroom sweep, for every connection, would be that claim made
47
+ * continuously and falsely. It is asked at the one moment it is true — a refused turn, with its strip on
48
+ * screen — and the answer is worth nothing a moment later, so nothing caches it.
49
+ *
50
+ * Answers `available: false` rather than failing for an account with no such mechanism, so a caller can ask
51
+ * about any account it holds without first knowing which provider grants one. */
52
+ limitReset: oc
53
+ .route({
54
+ method: "GET",
55
+ path: "/usage/limit-reset/{account}",
56
+ summary: "Whether this account's session window can be reopened now",
57
+ description:
58
+ "Asks the provider whether it will reopen this account's spent session window immediately, which some plans grant once a week. Only worth asking about an account that has actually been refused: the answer is the provider's judgement at this moment, it is not cached, and an account with no such grant answers plainly that it has none.",
59
+ })
60
+ .input(z.object({ account: z.string().min(1).describe("Which account.") }))
61
+ .output(LimitResetStatusSchema),
62
+ claimLimitReset: oc
63
+ .route({
64
+ method: "POST",
65
+ path: "/usage/limit-reset/{account}/claim",
66
+ summary: "Reopen this account's session window now",
67
+ description:
68
+ "Spends one of the account's weekly resets to reopen its session window immediately. The weekly allowance is untouched and still binds. Answers with what the provider actually did: only `reset` changed anything, and it is the cue to send the refused turn again.",
69
+ })
70
+ .input(z.object({ account: z.string().min(1).describe("Which account.") }))
71
+ .output(LimitResetClaimSchema),
41
72
  };
package/src/events.ts CHANGED
@@ -1279,7 +1279,7 @@ export const AgentEventSchema = z.discriminatedUnion("kind", [
1279
1279
  // was stopped, or died under the card), which is not a decision and must not replay as one.
1280
1280
  z.object({ kind: z.literal("resolved"), requestId: z.string(), reply: AgentReplySchema.optional() }),
1281
1281
  /* There was a `permission_note` frame here: a late sentence raced onto a command card that had already gone
1282
- * out, because the explanation was optional and the card must not wait for a quick-model rung that might
1282
+ * out, because the explanation was optional and the card must not wait for a one-shot helper rung that might
1283
1283
  * take tens of seconds. It is gone with the setting that made it optional. The judge now decides the
1284
1284
  * verdict, so the sentence is not a decoration arriving afterwards — it is the REASON THE CARD EXISTS, and
1285
1285
  * a card cannot be raised before it is known. Nothing races, and `PermissionAsk.explain` is populated at
@@ -61,7 +61,7 @@ test("a pin on this provider wins over the catalog's own cheap end", () => {
61
61
  });
62
62
 
63
63
  test("takes a pinned id verbatim, so a model the static catalog has not caught up with is still pinnable", () => {
64
- // The same call resolveQuickModels makes, and for the same reason: the picker offers a custom-id escape
64
+ // The same call resolveRoleModels makes, and for the same reason: the picker offers a custom-id escape
65
65
  // hatch, and second-guessing the id here would run a different model than the settings row names.
66
66
  expect(fastFor(`claude-opus-5`, { pinned: [`claude:claude-haiku-9`] })).toBe(`claude-haiku-9`);
67
67
  });
package/src/fast-tier.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { compareCheapestFirst, isCheaperRung } from "./model-order.js";
2
- import { parsePinned } from "./quick-model.js";
2
+ import { parsePinned } from "./model-pins.js";
3
3
  import type { AgentProvider } from "./schemas/agent.js";
4
4
 
5
5
  /* WHICH MODEL A DOWNGRADED TURN ACTUALLY RUNS ON, the second half of automatic tier selection.
@@ -21,7 +21,7 @@ import type { AgentProvider } from "./schemas/agent.js";
21
21
  * follow-up cheap to answer. So a cross-provider pin here is dropped rather than honoured: saving a fraction of
22
22
  * a cent by starting the conversation over is not a saving.
23
23
  *
24
- * THE ORDER IS A LADDER, for the reason quick-model.ts is one, but a shorter one: the caller spends the head
24
+ * THE ORDER IS A LADDER, for the reason model-pins.ts is one, but a shorter one: the caller spends the head
25
25
  * and falls back to the user's own pick, rather than walking rungs. A downgrade that cannot be started is not
26
26
  * worth a second attempt when the honest answer (their model) is sitting right there. */
27
27
 
@@ -34,14 +34,14 @@ export interface FastTierInput {
34
34
  // That provider's catalog as the caller can see it. Empty is a real state (a catalog that has not loaded),
35
35
  // and it resolves to no downgrade rather than to a guess.
36
36
  readonly models: readonly string[];
37
- // settings.autoFastModels: an ordered list of `${provider}:${modelId}` keys (quickModelKey), or empty for
37
+ // settings.autoFastModels: an ordered list of `${provider}:${modelId}` keys (modelPinKey), or empty for
38
38
  // Auto. Entries naming another provider are dropped, not honoured.
39
39
  readonly pinned: readonly string[];
40
40
  }
41
41
 
42
42
  /* THE CHEAPER MODEL TO RUN THIS TURN ON, or undefined for "there isn't one, use their pick".
43
43
  *
44
- * A PIN IS TAKEN VERBATIM against the catalog, the same call resolveQuickModels makes and for the same reason:
44
+ * A PIN IS TAKEN VERBATIM against the catalog, the same call resolveRoleModels makes and for the same reason:
45
45
  * the model picker offers a custom-id escape hatch for a model the static catalog has not caught up with, and
46
46
  * second-guessing the id here would run a different model than the settings row names. It is still checked for
47
47
  * being CHEAPER, because that is not a fact about the catalog, it is a fact about the id, and a pin that is not
@@ -49,7 +49,7 @@ export interface FastTierInput {
49
49
  *
50
50
  * AUTO IS THE CHEAPEST ROW THE PROVIDER PUBLISHES, read through the same cheap-end order the quick model uses,
51
51
  * so the two features cannot disagree about which rung is the cheap one. Derived, never stored: connect an
52
- * account tomorrow and the answer improves by itself, exactly as quickModel's empty default does.
52
+ * account tomorrow and the answer improves by itself, exactly as a one-shot role's empty list does.
53
53
  *
54
54
  * NOTHING CHEAPER THAN THE PICK ⇒ UNDEFINED, and that is the common case worth being exact about rather than
55
55
  * the edge case: a user already working on the cheap rung has nowhere to be sent, and a user on a model whose
package/src/index.ts CHANGED
@@ -113,7 +113,6 @@ export * from "./history-state.js";
113
113
  export * from "./agent-runtimes.js";
114
114
  export * from "./provider-specs.js";
115
115
  export * from "./agent-catalog.js";
116
- export * from "./agent-run-model.js";
117
116
  export * from "./capability-env.js";
118
117
  export * from "./command-classes.js";
119
118
  export * from "./command-run.js";
@@ -131,10 +130,11 @@ export * from "./listener-protocol.js";
131
130
  export * from "./hostnames.js";
132
131
  export * from "./overlay-lint.js";
133
132
  export * from "./model-order.js";
133
+ export * from "./model-pins.js";
134
+ export * from "./model-roles.js";
134
135
  export * from "./plan-pools.js";
135
136
  export * from "./path-refs.js";
136
137
  export * from "./prompt-complexity.js";
137
- export * from "./quick-model.js";
138
138
  export * from "./output-fields.js";
139
139
  export * from "./approvals-execution.js";
140
140
  /* The wire shapes, one module per subject area, mirroring `contracts/` above: every request and response the
@@ -1,23 +1,39 @@
1
1
  import { expect, test } from "vitest";
2
- import { type QuickModelChoice, type QuickModelSource, quickModelKey, resolveQuickModels } from "./quick-model.js";
3
-
4
- /* Which models a small automatic helper spends, and in which order. The rule answers two surfaces at once:
5
- * the daemon walks it, the browser names its head in the settings row, so what these tests pin is that a
6
- * sandbox's connections alone decide it, with no stored id to go stale, and that there is always a rung
7
- * underneath the first one whenever the sandbox has another account to reach for. */
2
+ import { type ModelSource, modelPinKey, parsePinned, resolveRoleModels } from "./model-pins.js";
3
+ import type { ModelPin } from "./schemas/agent.js";
4
+
5
+ /* Which models a job spends, and in which order. The rule answers two surfaces at once: the daemon walks it,
6
+ * the browser names its head in that job's settings row, so what these tests pin is that a sandbox's
7
+ * connections alone decide it, with no stored id to go stale, and that there is always a rung underneath the
8
+ * first one whenever the sandbox has another account to reach for.
9
+ *
10
+ * `commit-message` and `pipeline-fix` stand in for the two KINDS of role here (model-roles.ts): the first is a
11
+ * one-shot, whose empty list derives the Auto ladder, and the second is a whole session, whose empty list
12
+ * resolves to nothing so the caller's own composer pick answers. Everything else about the two is identical,
13
+ * which is why one resolver serves both. */
14
+
15
+ const HELPER = `commit-message` as const;
16
+ const RUN = `pipeline-fix` as const;
17
+
18
+ // A pin as the settings rows store one. The tests are about ORDER, so most of them name only the pair; the
19
+ // knobs an entry can carry ride through untouched and are asserted where that matters.
20
+ const pin = (key: string): ModelPin => {
21
+ const at = key.indexOf(`:`);
22
+ return { provider: key.slice(0, at), model: key.slice(at + 1) };
23
+ };
8
24
 
9
25
  // Catalogs as their providers actually publish them: Claude's ranked list, the rest in registry order.
10
- const CLAUDE: QuickModelSource = { provider: `claude`, ready: true, models: [`claude-opus-5`, `claude-sonnet-5`, `claude-haiku-4-5-20251001`] };
11
- const GOOGLE: QuickModelSource = { provider: `gemini`, ready: true, models: [`gemini-3-flash`, `gemini-3-flash-lite`, `gemini-3-pro`] };
12
- const CODEX: QuickModelSource = { provider: `codex`, ready: true, models: [`gpt-5.4-mini`, `gpt-5.6`] };
13
- const KIMI: QuickModelSource = { provider: `kimi`, ready: true, models: [`kimi-k2.6`, `kimi-k2.7-code`, `kimi-k3`] };
26
+ const CLAUDE: ModelSource = { provider: `claude`, ready: true, models: [`claude-opus-5`, `claude-sonnet-5`, `claude-haiku-4-5-20251001`] };
27
+ const GOOGLE: ModelSource = { provider: `gemini`, ready: true, models: [`gemini-3-flash`, `gemini-3-flash-lite`, `gemini-3-pro`] };
28
+ const CODEX: ModelSource = { provider: `codex`, ready: true, models: [`gpt-5.4-mini`, `gpt-5.6`] };
29
+ const KIMI: ModelSource = { provider: `kimi`, ready: true, models: [`kimi-k2.6`, `kimi-k2.7-code`, `kimi-k3`] };
14
30
 
15
- const offline = (source: QuickModelSource): QuickModelSource => ({ ...source, ready: false });
31
+ const offline = (source: ModelSource): ModelSource => ({ ...source, ready: false });
16
32
 
17
33
  // The model that answers when nothing goes wrong: the head of the chain, which is what most of what follows is
18
34
  // about and what every surface naming the spend up front reads.
19
- const head = (sources: readonly QuickModelSource[], pinned: readonly string[]): QuickModelChoice | undefined =>
20
- resolveQuickModels(sources, pinned)[0];
35
+ const head = (sources: readonly ModelSource[], pinned: readonly string[]): ModelPin | undefined =>
36
+ resolveRoleModels(sources, pinned.map(pin), HELPER)[0];
21
37
 
22
38
  test("reaches for the efficient rung of the one connected provider, never its flagship", () => {
23
39
  expect(head([CLAUDE], [])).toEqual({ provider: `claude`, model: `claude-haiku-4-5-20251001` });
@@ -32,14 +48,14 @@ test("spends the FREE channel over the subscription when both offer the same run
32
48
  test("puts tier ahead of cost: a free frontier model is still the wrong tool for a commit message", () => {
33
49
  // Google connected but publishing only its Pro line. Ordering on price first would seat a flagship here,
34
50
  // which is the exact outcome the feature exists to avoid.
35
- const proOnly: QuickModelSource = { provider: `gemini`, ready: true, models: [`gemini-3-pro`] };
51
+ const proOnly: ModelSource = { provider: `gemini`, ready: true, models: [`gemini-3-pro`] };
36
52
 
37
53
  expect(head([CLAUDE, proOnly], [])).toEqual({ provider: `claude`, model: `claude-haiku-4-5-20251001` });
38
54
  });
39
55
 
40
56
  test("uses stable provider order when two subscriptions offer the same tier", () => {
41
- const kimiCheap: QuickModelSource = { provider: `kimi`, ready: true, models: [`kimi-k2-mini`] };
42
- const claudeCheap: QuickModelSource = { provider: `claude`, ready: true, models: [`claude-haiku-4-5`] };
57
+ const kimiCheap: ModelSource = { provider: `kimi`, ready: true, models: [`kimi-k2-mini`] };
58
+ const claudeCheap: ModelSource = { provider: `claude`, ready: true, models: [`claude-haiku-4-5`] };
43
59
 
44
60
  expect(head([kimiCheap, claudeCheap], [])?.provider).toBe(`claude`);
45
61
  });
@@ -48,7 +64,7 @@ test("answers the same thing however the connected providers happen to be listed
48
64
  // The daemon assembles these from live stores and the browser from its own refs; neither order is a fact.
49
65
  const answers = [head([CLAUDE, GOOGLE, CODEX], []), head([CODEX, CLAUDE, GOOGLE], []), head([GOOGLE, CODEX, CLAUDE], [])];
50
66
 
51
- expect(new Set(answers.map((answer) => quickModelKey(answer!))).size).toBe(1);
67
+ expect(new Set(answers.map((answer) => modelPinKey(answer!))).size).toBe(1);
52
68
  });
53
69
 
54
70
  test("honours a pinned model verbatim, including an id no catalog lists yet", () => {
@@ -66,10 +82,38 @@ test("falls back to Auto when the pinned provider is no longer connected", () =>
66
82
  });
67
83
  });
68
84
 
69
- test("ignores a malformed pin instead of running an empty model id", () => {
70
- for (const pinned of [`claude`, `claude:`, `:claude-haiku-4-5`, ` `]) {
71
- expect(head([CLAUDE], [pinned])).toEqual({ provider: `claude`, model: `claude-haiku-4-5-20251001` });
85
+ /* A MALFORMED KEY IS REFUSED WHERE KEYS STILL EXIST. A role's list holds PINS, whose two halves are separate
86
+ * fields the schema requires (ModelPinSchema), so "claude with an empty model" is no longer a shape the
87
+ * resolver can be handed — it is rejected at the settings boundary instead. What still travels as a key is
88
+ * `autoFastModels`, so the rule lives with the parser that reads one, and this is where it is pinned. */
89
+ test("refuses a malformed key rather than reading half a pin out of it", () => {
90
+ for (const key of [`claude`, `claude:`, `:claude-haiku-4-5`, ` `]) {
91
+ expect(parsePinned(key)).toBeUndefined();
72
92
  }
93
+ expect(parsePinned(`claude:claude-haiku-4-5`)).toEqual({ provider: `claude`, model: `claude-haiku-4-5` });
94
+ });
95
+
96
+ /* THE TWO KINDS OF ROLE DIFFER ON EXACTLY ONE THING: what an empty list means. It is the whole reason the
97
+ * resolver takes a role rather than a boolean, and the reason the two used to be separate files. */
98
+ test("derives a ladder for an unpinned one-shot and nothing at all for an unpinned session", () => {
99
+ // A commit message exists to stay off the frontier tier, so working it out from what is connected is a good
100
+ // answer and gets better as accounts are added.
101
+ expect(resolveRoleModels([CLAUDE, GOOGLE], [], HELPER)).toEqual([
102
+ { provider: `gemini`, model: `gemini-3-flash-lite` },
103
+ { provider: `claude`, model: `claude-haiku-4-5-20251001` },
104
+ ]);
105
+ // A pipeline fix is a whole session billed whole, and nothing here can judge what one is worth — so the
106
+ // caller's own floor (the owner's composer pick) answers instead of a ladder this file invented.
107
+ expect(resolveRoleModels([CLAUDE, GOOGLE], [], RUN)).toEqual([]);
108
+ });
109
+
110
+ test("carries an entry's run settings through untouched, on either kind of role", () => {
111
+ // The resolver picks WHICH entry; how that entry runs is the entry's own business and rides along whole,
112
+ // because the turn (or the one-shot) is composed from all of it.
113
+ const configured: ModelPin = { provider: `claude`, model: `claude-opus-5`, effort: `max`, thinking: true, harness: `claude-code` };
114
+
115
+ expect(resolveRoleModels([CLAUDE], [configured], RUN)).toEqual([configured]);
116
+ expect(resolveRoleModels([CLAUDE], [configured], HELPER)).toEqual([configured]);
73
117
  });
74
118
 
75
119
  test("serves the newest of a catalog that publishes no cheap tier at all", () => {
@@ -79,12 +123,12 @@ test("serves the newest of a catalog that publishes no cheap tier at all", () =>
79
123
 
80
124
  test("reports nothing when no account is connected, so the button can say so instead of failing on click", () => {
81
125
  expect(head([offline(CLAUDE), offline(GOOGLE)], [])).toBeUndefined();
82
- expect(resolveQuickModels([offline(CLAUDE), offline(GOOGLE)], [])).toEqual([]);
126
+ expect(resolveRoleModels([offline(CLAUDE), offline(GOOGLE)], [], HELPER)).toEqual([]);
83
127
  expect(head([], [`claude:claude-haiku-4-5`])).toBeUndefined();
84
128
  });
85
129
 
86
130
  test("skips a connected provider whose catalog has not loaded yet", () => {
87
- const unloaded: QuickModelSource = { provider: `grok`, ready: true, models: [] };
131
+ const unloaded: ModelSource = { provider: `grok`, ready: true, models: [] };
88
132
 
89
133
  expect(head([unloaded, CLAUDE], [])).toEqual({ provider: `claude`, model: `claude-haiku-4-5-20251001` });
90
134
  expect(head([unloaded], [])).toBeUndefined();
@@ -95,7 +139,7 @@ test("skips a connected provider whose catalog has not loaded yet", () => {
95
139
  * point of the list is that the click still lands on the next rung down. */
96
140
 
97
141
  test("keeps the pinned models in the order they were written", () => {
98
- expect(resolveQuickModels([CLAUDE, GOOGLE, CODEX], [`codex:gpt-5.6`, `gemini:gemini-3-flash`, `claude:claude-haiku-4-5-20251001`])).toEqual([
142
+ expect(resolveRoleModels([CLAUDE, GOOGLE, CODEX], [`codex:gpt-5.6`, `gemini:gemini-3-flash`, `claude:claude-haiku-4-5-20251001`].map(pin), HELPER)).toEqual([
99
143
  { provider: `codex`, model: `gpt-5.6` },
100
144
  { provider: `gemini`, model: `gemini-3-flash` },
101
145
  { provider: `claude`, model: `claude-haiku-4-5-20251001` },
@@ -103,7 +147,7 @@ test("keeps the pinned models in the order they were written", () => {
103
147
  });
104
148
 
105
149
  test("drops a pin whose provider went away and keeps the rest of the order intact", () => {
106
- expect(resolveQuickModels([CLAUDE, offline(GOOGLE), CODEX], [`codex:gpt-5.6`, `gemini:gemini-3-flash`, `claude:claude-haiku-4-5`])).toEqual([
150
+ expect(resolveRoleModels([CLAUDE, offline(GOOGLE), CODEX], [`codex:gpt-5.6`, `gemini:gemini-3-flash`, `claude:claude-haiku-4-5`].map(pin), HELPER)).toEqual([
107
151
  { provider: `codex`, model: `gpt-5.6` },
108
152
  { provider: `claude`, model: `claude-haiku-4-5` },
109
153
  ]);
@@ -112,18 +156,18 @@ test("drops a pin whose provider went away and keeps the rest of the order intac
112
156
  test("stops at the end of a pinned list rather than reaching for an account the user left out", () => {
113
157
  // Google and Kimi are connected and cheaper. The user wrote down one model, so one model is what this may
114
158
  // spend: a pin exists precisely to keep a helper off the accounts it does not name.
115
- expect(resolveQuickModels([CLAUDE, GOOGLE, KIMI], [`claude:claude-haiku-4-5`])).toEqual([{ provider: `claude`, model: `claude-haiku-4-5` }]);
159
+ expect(resolveRoleModels([CLAUDE, GOOGLE, KIMI], [`claude:claude-haiku-4-5`].map(pin), HELPER)).toEqual([{ provider: `claude`, model: `claude-haiku-4-5` }]);
116
160
  });
117
161
 
118
162
  test("names each model once, however many times the list repeats it", () => {
119
163
  // The list is edited by hand; a duplicate would spend a second attempt proving the same account is out.
120
- expect(resolveQuickModels([CLAUDE], [`claude:claude-haiku-4-5`, `claude:claude-haiku-4-5`])).toEqual([
164
+ expect(resolveRoleModels([CLAUDE], [`claude:claude-haiku-4-5`, `claude:claude-haiku-4-5`].map(pin), HELPER)).toEqual([
121
165
  { provider: `claude`, model: `claude-haiku-4-5` },
122
166
  ]);
123
167
  });
124
168
 
125
169
  test("Auto is a ladder too, every connected provider's cheap rung, best first", () => {
126
- expect(resolveQuickModels([CLAUDE, GOOGLE, KIMI], [])).toEqual([
170
+ expect(resolveRoleModels([CLAUDE, GOOGLE, KIMI], [], HELPER)).toEqual([
127
171
  { provider: `gemini`, model: `gemini-3-flash-lite` },
128
172
  { provider: `claude`, model: `claude-haiku-4-5-20251001` },
129
173
  { provider: `kimi`, model: `kimi-k3` },
@@ -133,14 +177,14 @@ test("Auto is a ladder too, every connected provider's cheap rung, best first",
133
177
  /* A MODEL ENDPOINT the user configured is a provider like any other here, and the reason it has to be is the
134
178
  * settings row: its options are built from the same picker catalog, so a pin naming one that this resolver
135
179
  * dropped would print one model's name in the settings row and spend a different account entirely. */
136
- const OLLAMA: QuickModelSource = { provider: `endpoint/ollama`, ready: true, models: [`qwen3-coder`, `gemma3-27b`] };
180
+ const OLLAMA: ModelSource = { provider: `endpoint/ollama`, ready: true, models: [`qwen3-coder`, `gemma3-27b`] };
137
181
 
138
182
  test("honours a pin on a configured endpoint: the whole id, not the half before its slash", () => {
139
183
  expect(head([CLAUDE, OLLAMA], [`endpoint/ollama:qwen3-coder`])).toEqual({ provider: `endpoint/ollama`, model: `qwen3-coder` });
140
184
  // And it round-trips through the key shape the picker mints, which is where the slash-not-colon rule earns
141
185
  // itself: parsePinned splits on the FIRST colon, so an `endpoint:ollama` id would have parsed the provider
142
186
  // as "endpoint" and the model as "ollama:qwen3-coder": a pin that silently resolves to nothing.
143
- expect(quickModelKey({ provider: `endpoint/ollama`, model: `qwen3-coder` })).toBe(`endpoint/ollama:qwen3-coder`);
187
+ expect(modelPinKey({ provider: `endpoint/ollama`, model: `qwen3-coder` })).toBe(`endpoint/ollama:qwen3-coder`);
144
188
  });
145
189
 
146
190
  test("leaves Auto to the providers whose price is known, rather than reaching for someone's own server", () => {