@duetso/agent 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/package.json +3 -1
  2. package/dist/src/cli/route.d.ts +4 -8
  3. package/dist/src/cli/route.d.ts.map +1 -1
  4. package/dist/src/cli/route.js +26 -49
  5. package/dist/src/cli/route.js.map +1 -1
  6. package/dist/src/cli.d.ts +2 -0
  7. package/dist/src/cli.d.ts.map +1 -1
  8. package/dist/src/cli.js +12 -2
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/memory/pglite.d.ts +11 -0
  11. package/dist/src/memory/pglite.d.ts.map +1 -1
  12. package/dist/src/memory/pglite.js +77 -4
  13. package/dist/src/memory/pglite.js.map +1 -1
  14. package/dist/src/model-routing/advisor-context.d.ts +71 -0
  15. package/dist/src/model-routing/advisor-context.d.ts.map +1 -0
  16. package/dist/src/model-routing/advisor-context.js +114 -0
  17. package/dist/src/model-routing/advisor-context.js.map +1 -0
  18. package/dist/src/model-routing/advisor-lifecycle.d.ts +27 -0
  19. package/dist/src/model-routing/advisor-lifecycle.d.ts.map +1 -0
  20. package/dist/src/model-routing/advisor-lifecycle.js +61 -0
  21. package/dist/src/model-routing/advisor-lifecycle.js.map +1 -0
  22. package/dist/src/model-routing/advisor.d.ts +11 -6
  23. package/dist/src/model-routing/advisor.d.ts.map +1 -1
  24. package/dist/src/model-routing/advisor.js +16 -4
  25. package/dist/src/model-routing/advisor.js.map +1 -1
  26. package/dist/src/model-routing/prompts.d.ts +4 -0
  27. package/dist/src/model-routing/prompts.d.ts.map +1 -1
  28. package/dist/src/model-routing/prompts.js +36 -11
  29. package/dist/src/model-routing/prompts.js.map +1 -1
  30. package/dist/src/model-routing/router.d.ts +7 -1
  31. package/dist/src/model-routing/router.d.ts.map +1 -1
  32. package/dist/src/model-routing/router.js +10 -2
  33. package/dist/src/model-routing/router.js.map +1 -1
  34. package/dist/src/model-routing/table.d.ts +2 -5
  35. package/dist/src/model-routing/table.d.ts.map +1 -1
  36. package/dist/src/model-routing/table.js +0 -13
  37. package/dist/src/model-routing/table.js.map +1 -1
  38. package/dist/src/session/session.js +1 -1
  39. package/dist/src/turn-runner/prompts.js +1 -1
  40. package/dist/src/turn-runner/tools.d.ts +16 -12
  41. package/dist/src/turn-runner/tools.d.ts.map +1 -1
  42. package/dist/src/turn-runner/tools.js +39 -32
  43. package/dist/src/turn-runner/tools.js.map +1 -1
  44. package/dist/src/turn-runner/turn-runner.d.ts +15 -1
  45. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  46. package/dist/src/turn-runner/turn-runner.js +110 -15
  47. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  48. package/package.json +3 -1
  49. package/dist/src/model-routing/advisor-transcript.d.ts +0 -36
  50. package/dist/src/model-routing/advisor-transcript.d.ts.map +0 -1
  51. package/dist/src/model-routing/advisor-transcript.js +0 -103
  52. package/dist/src/model-routing/advisor-transcript.js.map +0 -1
@@ -0,0 +1,114 @@
1
+ import { estimateTokens } from "../memory/observational.js";
2
+ import { IMAGE_WIRE_TOKEN_ESTIMATE } from "../turn-runner/wire-shaping.js";
3
+ import { ADVISOR_SYSTEM_PROMPT } from "./prompts.js";
4
+ const CONTEXT_OPEN = "<executor_context>";
5
+ const CONTEXT_CLOSE = "</executor_context>";
6
+ /**
7
+ * Capture one live agent context for both production calls and CLI previews.
8
+ * Tool execution normally starts after the assistant message is finalized; the
9
+ * streaming fallback also preserves a partial turn for callers at other phases.
10
+ */
11
+ export async function captureAdvisorExecutorContext(source) {
12
+ const messages = [...source.state.messages];
13
+ const streamingMessage = source.state.streamingMessage;
14
+ if (streamingMessage && messages.at(-1) !== streamingMessage) {
15
+ messages.push(streamingMessage);
16
+ }
17
+ return {
18
+ systemPrompt: source.state.systemPrompt,
19
+ messages: await source.convertToLlm(messages),
20
+ tools: source.state.tools.map(({ name, description, parameters }) => ({
21
+ name,
22
+ description,
23
+ parameters,
24
+ })),
25
+ };
26
+ }
27
+ /**
28
+ * Serialize the actual executor context without observer projection. When the
29
+ * advisor model cannot fit it, remove only the oldest complete messages; tool
30
+ * definitions, the resolved system prompt, and retained message structures
31
+ * remain intact. Image bytes travel as matching multimodal attachments.
32
+ */
33
+ export function buildAdvisorContext(input) {
34
+ const contextWindowTokens = positiveInteger(input.contextWindowTokens);
35
+ const reservedOutputTokens = Math.min(positiveInteger(input.reservedOutputTokens), Math.max(0, contextWindowTokens - 1));
36
+ const safetyMarginTokens = Math.floor(contextWindowTokens * 0.02);
37
+ const advisorSystemTokens = estimateContextTokens(ADVISOR_SYSTEM_PROMPT);
38
+ const inputLimitTokens = Math.max(1, contextWindowTokens - reservedOutputTokens - safetyMarginTokens - advisorSystemTokens);
39
+ let messages = [...input.context.messages];
40
+ let serialized = serializeContext(input.context.systemPrompt, input.context.tools, messages, 0);
41
+ const firstUserMessage = messages.find((message) => message.role === "user");
42
+ while (messages.length > (firstUserMessage ? 1 : 0) &&
43
+ estimateSerializedTokens(serialized) > inputLimitTokens) {
44
+ const removableIndex = messages.findIndex((message) => message !== firstUserMessage);
45
+ if (removableIndex < 0)
46
+ break;
47
+ messages = [...messages.slice(0, removableIndex), ...messages.slice(removableIndex + 1)];
48
+ serialized = serializeContext(input.context.systemPrompt, input.context.tools, messages, input.context.messages.length - messages.length);
49
+ }
50
+ if (estimateSerializedTokens(serialized) > inputLimitTokens) {
51
+ throw new Error("Advisor context window is too small for the pinned task, system prompt, and tool definitions.");
52
+ }
53
+ const omittedMessages = input.context.messages.length - messages.length;
54
+ return {
55
+ text: serialized.text,
56
+ images: serialized.images,
57
+ metadata: {
58
+ contextWindowTokens,
59
+ reservedOutputTokens,
60
+ safetyMarginTokens,
61
+ inputLimitTokens,
62
+ estimatedInputTokens: advisorSystemTokens + estimateSerializedTokens(serialized),
63
+ includedMessages: messages.length,
64
+ omittedMessages,
65
+ truncated: omittedMessages > 0,
66
+ attachedImages: serialized.images.length,
67
+ },
68
+ };
69
+ }
70
+ function serializeContext(systemPrompt, tools, messages, omittedMessages) {
71
+ const context = {
72
+ systemPrompt,
73
+ tools: [...tools],
74
+ messages: [...messages],
75
+ };
76
+ const images = [];
77
+ const payload = {
78
+ truncation: { omittedMessages },
79
+ executorContext: context,
80
+ };
81
+ const json = JSON.stringify(payload, (key, value) => {
82
+ if (key === "" && value === payload)
83
+ return value;
84
+ if (!isImageContent(value))
85
+ return value;
86
+ const attachmentIndex = images.push(value) - 1;
87
+ return { type: "image", mimeType: value.mimeType, attachmentIndex };
88
+ });
89
+ return { text: `${CONTEXT_OPEN}\n${json}\n${CONTEXT_CLOSE}`, images };
90
+ }
91
+ function isImageContent(value) {
92
+ if (!value || typeof value !== "object")
93
+ return false;
94
+ const record = value;
95
+ return (record.type === "image" &&
96
+ typeof record.data === "string" &&
97
+ typeof record.mimeType === "string");
98
+ }
99
+ function estimateSerializedTokens(serialized) {
100
+ return (estimateContextTokens(serialized.text) + serialized.images.length * IMAGE_WIRE_TOKEN_ESTIMATE);
101
+ }
102
+ /**
103
+ * Keep the existing text estimate for ordinary ASCII while charging multibyte
104
+ * text by UTF-8 size so CJK-heavy transcripts do not look artificially cheap.
105
+ */
106
+ function estimateContextTokens(text) {
107
+ return Math.max(estimateTokens(text), Math.ceil(Buffer.byteLength(text, "utf8") / 3));
108
+ }
109
+ function positiveInteger(value) {
110
+ if (!Number.isFinite(value))
111
+ return 1;
112
+ return Math.max(1, Math.floor(value));
113
+ }
114
+ //# sourceMappingURL=advisor-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor-context.js","sourceRoot":"","sources":["../../../src/model-routing/advisor-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Turn-local owner for the product's orientation and completion-review advisor checkpoints.
3
+ * The runner reports completed parent steps, successful consultations, and executed tools; this
4
+ * policy decides whether a one-shot checkpoint is due without changing the public protocol.
5
+ */
6
+ export declare class AdvisorTurnLifecycle {
7
+ private readonly startingAssistantStep;
8
+ private orientationCheckpointSent;
9
+ private completionCheckpointSent;
10
+ private lastSuccessfulConsultStep?;
11
+ private substantiveWorkSinceLastConsult;
12
+ constructor(startingAssistantStep: number);
13
+ /** A successful call resets the evidence boundary used to recognize a final-state review. */
14
+ noteSuccessfulConsult(step: number): void;
15
+ /** Non-advisor tool execution means reality changed or was checked after the last review. */
16
+ noteExecutedTools(toolNames: readonly string[]): void;
17
+ /** Take the one-shot orientation checkpoint once a turn proves itself substantive. */
18
+ takeOrientationCheckpoint(assistantStep: number): boolean;
19
+ /**
20
+ * Take the one-shot completion checkpoint unless the last successful consultation already saw
21
+ * all final evidence. Assistant prose after that call does not make the evidence stale; another
22
+ * real tool execution does.
23
+ */
24
+ takeCompletionCheckpoint(assistantStep: number): boolean;
25
+ private isSubstantive;
26
+ }
27
+ //# sourceMappingURL=advisor-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/model-routing/advisor-lifecycle.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,qBAAa,oBAAoB;IAMnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IALlD,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,+BAA+B,CAAS;gBAEnB,qBAAqB,EAAE,MAAM;IAE1D,6FAA6F;IAC7F,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzC,6FAA6F;IAC7F,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IASrD,sFAAsF;IACtF,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAYzD;;;;OAIG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAYxD,OAAO,CAAC,aAAa;CAGtB"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Earliest point where observed behavior alone proves an agent turn outgrew a direct answer or one
3
+ * local check. This is consultation scheduling, not a work limit: it never stops a turn or caps
4
+ * model/tool use. A semantic complexity classifier here would add another model call to every turn.
5
+ */
6
+ const SUBSTANTIVE_AGENT_STEP_THRESHOLD = 3;
7
+ /**
8
+ * Turn-local owner for the product's orientation and completion-review advisor checkpoints.
9
+ * The runner reports completed parent steps, successful consultations, and executed tools; this
10
+ * policy decides whether a one-shot checkpoint is due without changing the public protocol.
11
+ */
12
+ export class AdvisorTurnLifecycle {
13
+ startingAssistantStep;
14
+ orientationCheckpointSent = false;
15
+ completionCheckpointSent = false;
16
+ lastSuccessfulConsultStep;
17
+ substantiveWorkSinceLastConsult = false;
18
+ constructor(startingAssistantStep) {
19
+ this.startingAssistantStep = startingAssistantStep;
20
+ }
21
+ /** A successful call resets the evidence boundary used to recognize a final-state review. */
22
+ noteSuccessfulConsult(step) {
23
+ this.lastSuccessfulConsultStep = step;
24
+ this.substantiveWorkSinceLastConsult = false;
25
+ }
26
+ /** Non-advisor tool execution means reality changed or was checked after the last review. */
27
+ noteExecutedTools(toolNames) {
28
+ if (this.lastSuccessfulConsultStep !== undefined &&
29
+ toolNames.some((name) => name !== "ask_advisor")) {
30
+ this.substantiveWorkSinceLastConsult = true;
31
+ }
32
+ }
33
+ /** Take the one-shot orientation checkpoint once a turn proves itself substantive. */
34
+ takeOrientationCheckpoint(assistantStep) {
35
+ if (this.orientationCheckpointSent ||
36
+ this.lastSuccessfulConsultStep !== undefined ||
37
+ !this.isSubstantive(assistantStep)) {
38
+ return false;
39
+ }
40
+ this.orientationCheckpointSent = true;
41
+ return true;
42
+ }
43
+ /**
44
+ * Take the one-shot completion checkpoint unless the last successful consultation already saw
45
+ * all final evidence. Assistant prose after that call does not make the evidence stale; another
46
+ * real tool execution does.
47
+ */
48
+ takeCompletionCheckpoint(assistantStep) {
49
+ if (this.completionCheckpointSent ||
50
+ !this.isSubstantive(assistantStep) ||
51
+ (this.lastSuccessfulConsultStep !== undefined && !this.substantiveWorkSinceLastConsult)) {
52
+ return false;
53
+ }
54
+ this.completionCheckpointSent = true;
55
+ return true;
56
+ }
57
+ isSubstantive(assistantStep) {
58
+ return assistantStep - this.startingAssistantStep >= SUBSTANTIVE_AGENT_STEP_THRESHOLD;
59
+ }
60
+ }
61
+ //# sourceMappingURL=advisor-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor-lifecycle.js","sourceRoot":"","sources":["../../../src/model-routing/advisor-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAMF;IALrB,yBAAyB,GAAG,KAAK,CAAC;IAClC,wBAAwB,GAAG,KAAK,CAAC;IACjC,yBAAyB,CAAU;IACnC,+BAA+B,GAAG,KAAK,CAAC;IAEhD,YAA6B,qBAA6B;QAA7B,0BAAqB,GAArB,qBAAqB,CAAQ;IAAG,CAAC;IAE9D,6FAA6F;IAC7F,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,+BAA+B,GAAG,KAAK,CAAC;IAC/C,CAAC;IAED,6FAA6F;IAC7F,iBAAiB,CAAC,SAA4B;QAC5C,IACE,IAAI,CAAC,yBAAyB,KAAK,SAAS;YAC5C,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAChD,CAAC;YACD,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,yBAAyB,CAAC,aAAqB;QAC7C,IACE,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,yBAAyB,KAAK,SAAS;YAC5C,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAClC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAC,aAAqB;QAC5C,IACE,IAAI,CAAC,wBAAwB;YAC7B,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAClC,CAAC,IAAI,CAAC,yBAAyB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EACvF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,aAAqB;QACzC,OAAO,aAAa,GAAG,IAAI,CAAC,qBAAqB,IAAI,gCAAgC,CAAC;IACxF,CAAC;CACF"}
@@ -1,9 +1,13 @@
1
- import type { ThinkingLevel } from "@earendil-works/pi-ai";
1
+ import type { ImageContent, ThinkingLevel } from "@earendil-works/pi-ai";
2
2
  import { type LanguageModelUsage } from "ai";
3
+ /** Anthropic's advisor guide recommends 2,048 as the starting output cap for compact guidance. */
4
+ export declare const ADVISOR_MAX_OUTPUT_TOKENS = 2048;
3
5
  /** Inputs for one advisor generation after catalog shorthand resolution. */
4
6
  export interface CallAdvisorInput {
5
- /** Curated executor transcript sent as advisor-call content. */
6
- transcriptText: string;
7
+ /** Wire-faithful executor context sent as quoted advisor-call content. */
8
+ contextText: string;
9
+ /** Executor images forwarded as real multimodal inputs in transcript order. */
10
+ images: readonly ImageContent[];
7
11
  /** Gateway-native `provider/model` id, already resolved by the composition site. */
8
12
  modelName: string;
9
13
  /** Portable reasoning effort forwarded through AI SDK 7's top-level option. */
@@ -19,9 +23,10 @@ export interface AdvisorResult {
19
23
  usage: LanguageModelUsage;
20
24
  }
21
25
  /**
22
- * Run a plain text advisor call through the shared gateway constructor. No
23
- * provider options are supplied, so this path opts into neither prompt
24
- * caching nor any provider-specific request behavior.
26
+ * Run an advisor call through the shared gateway constructor. The caller sends
27
+ * images only after checking the resolved model capability. No provider options
28
+ * are supplied, so this path opts into neither prompt caching nor any
29
+ * provider-specific request behavior.
25
30
  */
26
31
  export declare function callAdvisor(input: CallAdvisorInput): Promise<AdvisorResult>;
27
32
  //# sourceMappingURL=advisor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advisor.d.ts","sourceRoot":"","sources":["../../../src/model-routing/advisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAI3D,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,aAAa,EAAE,aAAa,CAAC;IAC7B,kEAAkE;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAWjF"}
1
+ {"version":3,"file":"advisor.d.ts","sourceRoot":"","sources":["../../../src/model-routing/advisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAgB,KAAK,kBAAkB,EAAoB,MAAM,IAAI,CAAC;AAI7E,kGAAkG;AAClG,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAE/C,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,aAAa,EAAE,aAAa,CAAC;IAC7B,kEAAkE;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoBjF"}
@@ -1,17 +1,29 @@
1
1
  import { generateText } from "ai";
2
2
  import { createDuetModelGateway } from "../model-resolution/model-gateway.js";
3
3
  import { ADVISOR_SYSTEM_PROMPT } from "./prompts.js";
4
+ /** Anthropic's advisor guide recommends 2,048 as the starting output cap for compact guidance. */
5
+ export const ADVISOR_MAX_OUTPUT_TOKENS = 2_048;
4
6
  /**
5
- * Run a plain text advisor call through the shared gateway constructor. No
6
- * provider options are supplied, so this path opts into neither prompt
7
- * caching nor any provider-specific request behavior.
7
+ * Run an advisor call through the shared gateway constructor. The caller sends
8
+ * images only after checking the resolved model capability. No provider options
9
+ * are supplied, so this path opts into neither prompt caching nor any
10
+ * provider-specific request behavior.
8
11
  */
9
12
  export async function callAdvisor(input) {
10
13
  const gateway = createDuetModelGateway();
14
+ const content = [
15
+ { type: "text", text: input.contextText },
16
+ ...input.images.map((image) => ({
17
+ type: "image",
18
+ image: image.data,
19
+ mediaType: image.mimeType,
20
+ })),
21
+ ];
11
22
  const result = await generateText({
12
23
  model: gateway(input.modelName),
13
24
  system: ADVISOR_SYSTEM_PROMPT,
14
- prompt: input.transcriptText,
25
+ messages: [{ role: "user", content }],
26
+ maxOutputTokens: ADVISOR_MAX_OUTPUT_TOKENS,
15
27
  reasoning: input.thinkingLevel,
16
28
  abortSignal: input.signal,
17
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../../src/model-routing/advisor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA2B,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAsBrD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,KAAK,CAAC,cAAc;QAC5B,SAAS,EAAE,KAAK,CAAC,aAAa;QAC9B,WAAW,EAAE,KAAK,CAAC,MAAM;KAC1B,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../../src/model-routing/advisor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA6C,MAAM,IAAI,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,kGAAkG;AAClG,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAwB/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAgB;QAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE;QACzC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,OAAgB;YACtB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS,EAAE,KAAK,CAAC,QAAQ;SAC1B,CAAC,CAAC;KACJ,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACrC,eAAe,EAAE,yBAAyB;QAC1C,SAAS,EAAE,KAAK,CAAC,aAAa;QAC9B,WAAW,EAAE,KAAK,CAAC,MAAM;KAC1B,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACtD,CAAC"}
@@ -13,6 +13,10 @@ export declare const ASK_ADVISOR_TOOL_DESCRIPTION: string;
13
13
  * (four consecutive positive-case misses on description-only guidance).
14
14
  */
15
15
  export declare const ADVISOR_EXECUTOR_GUIDANCE_LAYER: string;
16
+ /** Turn-local checkpoint delivered after a substantive agent has oriented itself. */
17
+ export declare const ADVISOR_ORIENTATION_REMINDER: string;
18
+ /** Turn-local checkpoint delivered when substantive agent-mode work is ready to finish. */
19
+ export declare const ADVISOR_COMPLETION_REVIEW_REMINDER: string;
16
20
  /** Instructions owned by the advisor call, separate from the executor's quoted prompt. */
17
21
  export declare const ADVISOR_SYSTEM_PROMPT: string;
18
22
  /** Continuity framing for the classifier: cache preference when a target is active. */
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,QAapC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,QASxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAe3C,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,QAOjC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ/E;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,QAapC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,QAUxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAe3C,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,QAKxC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kCAAkC,QAM9C,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,QAgBjC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ/E;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
@@ -19,7 +19,8 @@ export const CLASSIFIER_SYSTEM_PROMPT = dedent `
19
19
  /** Executor-facing guidance for the no-parameter advisor consultation tool. */
20
20
  export const ASK_ADVISOR_TOOL_DESCRIPTION = dedent `
21
21
  Ask a senior advisor to review your full progress so far and recommend what to do next. The
22
- advisor sees the curated in-progress session transcript; this tool takes no parameters.
22
+ advisor sees your system prompt, available tools, and full in-progress transcript; this tool
23
+ takes no parameters.
23
24
 
24
25
  You must call it before substantive work when the task has consequential architecture choices,
25
26
  conflicting constraints, or important unknowns; when you are stuck; before changing your
@@ -41,20 +42,44 @@ export const ADVISOR_EXECUTOR_GUIDANCE_LAYER = dedent `
41
42
  your progress so far is forwarded automatically; the advisor sees the task, your steps, and
42
43
  their results.
43
44
 
44
- Call ask_advisor BEFORE substantive work when the task involves consequential architecture
45
- choices, conflicting constraints, or important unknowns. Orientation (reading files, listing,
46
- looking around) is not substantive work orient first, then consult before you commit to an
47
- approach. Also call it when you are stuck, when you are about to change approach, and before
48
- declaring a complex task complete. Skip it for routine, local, obvious work.
45
+ For tasks longer than a few steps, consult at least once after orientation and before committing
46
+ to an approach, and again before declaring the work done. Also call when you are stuck or about
47
+ to change approach. If concrete evidence conflicts with advice, make a follow-up call that
48
+ includes that evidence before resolving the conflict. Skip consultation for routine, local,
49
+ obvious work that will take only a few steps.
49
50
 
50
- Give the advice serious weight: verify it with your own tools and adapt only on concrete
51
- contrary evidence.
51
+ Treat advice as a review hypothesis, not authority. Verify it with your own tools, prefer
52
+ stronger evidence when available, and remain responsible for the final decision.
53
+ `;
54
+ /** Turn-local checkpoint delivered after a substantive agent has oriented itself. */
55
+ export const ADVISOR_ORIENTATION_REMINDER = dedent `
56
+ This substantive turn has reached its orientation checkpoint. Before making further
57
+ consequential changes, call \`ask_advisor\` now so the advisor can review the task, the evidence
58
+ you gathered, and your intended approach. Then continue with your own tools and judgment. If the
59
+ consultation fails, continue from the evidence you already have.
60
+ `;
61
+ /** Turn-local checkpoint delivered when substantive agent-mode work is ready to finish. */
62
+ export const ADVISOR_COMPLETION_REVIEW_REMINDER = dedent `
63
+ This substantive turn has reached its completion-review checkpoint. Before finalizing, call
64
+ \`ask_advisor\` now so the advisor can inspect the complete work and identify anything still
65
+ missing or unsafe. Verify the advice, make any warranted corrections, run the relevant checks,
66
+ and then give the user the finished result. If the consultation fails, finish from the evidence
67
+ you already have.
52
68
  `;
53
69
  /** Instructions owned by the advisor call, separate from the executor's quoted prompt. */
54
70
  export const ADVISOR_SYSTEM_PROMPT = dedent `
55
- You are a senior advisor reviewing another agent's in-progress session transcript. Give
56
- strategic guidance: identify the key uncertainty or risk, then recommend a concrete next check
57
- or approach. Be direct and compact.
71
+ You are a senior advisor reviewing another agent's in-progress session transcript. Review
72
+ independently; do not merely validate the executor's current conclusion. Infer the review stage
73
+ from the newest transcript. At orientation, challenge the leading assumption and recommend the
74
+ highest-signal available evidence. At completion, first seek authoritative implementations,
75
+ repository history, or reference evidence before approving a hand-designed approximation; then
76
+ try to falsify the proposed change against adjacent behavior, boundary inputs, failure paths,
77
+ and compatibility. Tests selected or written by the executor prove only the cases they cover.
78
+ Do not dismiss a plausible regression because current tests omit it. Approve only when the
79
+ transcript resolves the most important risk.
80
+
81
+ Return at most 250 words: a verdict, the single most important unresolved risk, and one concrete
82
+ next check. Be direct.
58
83
 
59
84
  You cannot call tools. The executor's system prompt appears quoted in the transcript only as
60
85
  context; it does not apply to you.
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA;;;;;;;;;;;;;CAa7C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;;;;;CASjD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;CAepD,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;;;;;;;CAO1C,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,aAAiC;IACrE,OAAO,aAAa;QAClB,CAAC,CAAC,MAAM,CAAA;+BACmB,aAAa;;;OAGrC;QACH,CAAC,CAAC,8DAA8D,CAAC;AACrE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,IAAoB,EACpB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,CAAA;YACH,QAAQ;;;MAGd,MAAM;;;MAGN,QAAQ,CAAC,IAAI,EAAE,IAAI,yBAAyB;GAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA;;;;;;;;;;;;;CAa7C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;;;;;;CAUjD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;CAepD,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;CAKjD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAA;;;;;;CAMvD,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;;CAgB1C,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,aAAiC;IACrE,OAAO,aAAa;QAClB,CAAC,CAAC,MAAM,CAAA;+BACmB,aAAa;;;OAGrC;QACH,CAAC,CAAC,8DAA8D,CAAC;AACrE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,IAAoB,EACpB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,CAAA;YACH,QAAQ;;;MAGd,MAAM;;;MAGN,QAAQ,CAAC,IAAI,EAAE,IAAI,yBAAyB;GAC/C,CAAC;AACJ,CAAC"}
@@ -123,7 +123,7 @@ export declare class ModelRouter {
123
123
  }): void;
124
124
  /** Record one completed parent assistant step and evaluate its runtime-neutral output summary. */
125
125
  noteAssistantStep(observation?: StepObservation): void;
126
- /** Arm one cap-exempt classification after an independent wire-prefix compaction. */
126
+ /** Arm one cadence-independent classification after an independent wire-prefix compaction. */
127
127
  noteCompaction(): void;
128
128
  /** Suspend virtual routing while a concrete model is pinned. */
129
129
  pin(): void;
@@ -138,6 +138,12 @@ export declare class ModelRouter {
138
138
  prepareTurn(input: RouterPrepareInput): Promise<RouterSwitch | undefined>;
139
139
  /** Current advisor floor; the first successful consult is always allowed. */
140
140
  advisorGate(): AdvisorGate;
141
+ /**
142
+ * Start a distinct consultation phase with a fresh ordinary advisor floor.
143
+ * Route changes and the product's completion-review checkpoint use this same
144
+ * transition; the in-flight interlock remains independent and cannot be reset.
145
+ */
146
+ resetAdvisorCooldown(): void;
141
147
  /** Atomically authorize one advisor attempt and reserve the session's consult slot. */
142
148
  beginAdvisorConsult(): AdvisorGate;
143
149
  /** Release the consult slot; only success stamps the floor and requests reclassification. */
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/model-routing/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/model-routing/router.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ export class ModelRouter {
89
89
  this.stepTriggerClassificationPending = true;
90
90
  }
91
91
  }
92
- /** Arm one cap-exempt classification after an independent wire-prefix compaction. */
92
+ /** Arm one cadence-independent classification after an independent wire-prefix compaction. */
93
93
  noteCompaction() {
94
94
  this.compactionClassificationPending = true;
95
95
  }
@@ -163,7 +163,7 @@ export class ModelRouter {
163
163
  // A replacement model starts with a fresh advisor floor. Its first
164
164
  // consult is authorized by the ordinary gate; a successful consult then
165
165
  // starts the normal step-based cooldown again.
166
- this.lastAdvisorStep = undefined;
166
+ this.resetAdvisorCooldown();
167
167
  return switched;
168
168
  }
169
169
  catch {
@@ -179,6 +179,14 @@ export class ModelRouter {
179
179
  const stepsUntilAllowed = Math.max(0, minStepsBetween - elapsed);
180
180
  return { allowed: stepsUntilAllowed === 0, stepsUntilAllowed };
181
181
  }
182
+ /**
183
+ * Start a distinct consultation phase with a fresh ordinary advisor floor.
184
+ * Route changes and the product's completion-review checkpoint use this same
185
+ * transition; the in-flight interlock remains independent and cannot be reset.
186
+ */
187
+ resetAdvisorCooldown() {
188
+ this.lastAdvisorStep = undefined;
189
+ }
182
190
  /** Atomically authorize one advisor attempt and reserve the session's consult slot. */
183
191
  beginAdvisorConsult() {
184
192
  if (this.advisorConsultInFlight) {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/model-routing/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/model-routing/router.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,6 @@ export declare const RoutingTableSchema: Type.TObject<{
19
19
  thinkingLevel: Type.TUnion<Type.TLiteral<"minimal" | "low" | "medium" | "high" | "xhigh">[]>;
20
20
  }>;
21
21
  minStepsBetween: Type.TInteger;
22
- transcriptTokens: Type.TInteger;
23
22
  }>;
24
23
  }>>;
25
24
  classifier: Type.TObject<{
@@ -62,14 +61,12 @@ export interface AdvisorPolicy {
62
61
  target: RouteTarget;
63
62
  /** Minimum completed assistant steps between ordinary advisor calls. */
64
63
  minStepsBetween: number;
65
- /** Token budget for the curated advisor transcript; validation caps it at 20,000. */
66
- transcriptTokens: number;
67
64
  }
68
65
  /** Routes and policies owned by one virtual model tier. */
69
66
  export interface TierDefinition {
70
67
  /** Named classifier routes; an absent requested route falls through to `general`. */
71
68
  routes: Record<string, RouteRule>;
72
- /** Advisor availability, target, cadence, and transcript budget for this tier. */
69
+ /** Advisor availability, target, and cadence for this tier. */
73
70
  advisor: AdvisorPolicy;
74
71
  }
75
72
  /** Shared classifier model, cadence, and administrator-authored routing guidance. */
@@ -109,7 +106,7 @@ export interface RoutingCatalogAdapter {
109
106
  /** Stable validation diagnostic returned without throwing. */
110
107
  export interface RoutingTableIssue {
111
108
  /** Machine-readable category for callers that want to group diagnostics. */
112
- code: "catalog_collision" | "dangling_reference" | "virtual_cycle" | "invalid_effort" | "invalid_cadence" | "invalid_transcript_budget" | "invalid_vision_fallback_model" | "invalid_step_trigger_name" | "duplicate_step_trigger_name" | "invalid_step_trigger_keywords";
109
+ code: "catalog_collision" | "dangling_reference" | "virtual_cycle" | "invalid_effort" | "invalid_cadence" | "invalid_vision_fallback_model" | "invalid_step_trigger_name" | "duplicate_step_trigger_name" | "invalid_step_trigger_keywords";
113
110
  /** Dot-delimited location of the invalid value in the table. */
114
111
  path: string;
115
112
  /** Human-readable explanation, including the full path for virtual cycles. */
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/model-routing/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/model-routing/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAiG/B,qEAAqE;AACrE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY9B,CAAC;AAEF,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,MAAM,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,MAAM,EAAE,WAAW,CAAC;IACpB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,+DAA+D;IAC/D,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,MAAM,EAAE,WAAW,CAAC;IACpB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED,6FAA6F;AAC7F,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,qDAAqD;IACrD,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,yDAAyD;IACzD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3C;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,IAAI,EACA,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,+BAA+B,GAC/B,2BAA2B,GAC3B,6BAA6B,GAC7B,+BAA+B,CAAC;IACpC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAaD,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,EAAE,YA+FpC,CAAC;AAEF,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAEzE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAE/D;AAoCD,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,qBAAqB,GACpC,iBAAiB,EAAE,CAgJrB"}
@@ -28,9 +28,6 @@ const AdvisorPolicySchema = Type.Object({
28
28
  minStepsBetween: Type.Integer({
29
29
  description: "Minimum assistant-completion steps between ordinary advisor calls.",
30
30
  }),
31
- transcriptTokens: Type.Integer({
32
- description: "Maximum token budget used to assemble the advisor transcript.",
33
- }),
34
31
  }, { additionalProperties: false });
35
32
  const TierDefinitionSchema = Type.Object({
36
33
  routes: Type.Record(Type.String({ minLength: 1 }), RouteRuleSchema, {
@@ -106,7 +103,6 @@ export const BUILT_IN_ROUTING_TABLE = {
106
103
  enabled: true,
107
104
  target: { modelName: "fable-5", thinkingLevel: "high" },
108
105
  minStepsBetween: 5,
109
- transcriptTokens: 10_000,
110
106
  },
111
107
  },
112
108
  balanced: {
@@ -136,7 +132,6 @@ export const BUILT_IN_ROUTING_TABLE = {
136
132
  enabled: true,
137
133
  target: { modelName: "fable-5", thinkingLevel: "high" },
138
134
  minStepsBetween: 5,
139
- transcriptTokens: 10_000,
140
135
  },
141
136
  },
142
137
  economy: {
@@ -161,7 +156,6 @@ export const BUILT_IN_ROUTING_TABLE = {
161
156
  enabled: false,
162
157
  target: { modelName: "gpt-5.6-terra", thinkingLevel: "medium" },
163
158
  minStepsBetween: 5,
164
- transcriptTokens: 10_000,
165
159
  },
166
160
  },
167
161
  },
@@ -238,13 +232,6 @@ export function validateRoutingTable(table, catalogAdapter) {
238
232
  message: "Advisor cadence must be a positive number of steps.",
239
233
  });
240
234
  }
241
- if (definition.advisor.transcriptTokens <= 0 || definition.advisor.transcriptTokens > 20_000) {
242
- issues.push({
243
- code: "invalid_transcript_budget",
244
- path: `tiers.${tier}.advisor.transcriptTokens`,
245
- message: "Advisor transcript budget must be between 1 and 20,000 tokens.",
246
- });
247
- }
248
235
  }
249
236
  if (table.classifier.everySteps <= 0) {
250
237
  issues.push({