@ordewell/core 0.10.4 → 0.10.5

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 (46) hide show
  1. package/dist/{IFileSystem-_effm8-b.d.ts → IFileSystem-ClBdp59f.d.ts} +1 -1
  2. package/dist/{IFileSystem-vyqMdL-x.d.mts → IFileSystem-Db34maxC.d.mts} +1 -1
  3. package/dist/{IRunner-D_UkkMbJ.d.ts → IRunner-Crkt3tHD.d.ts} +64 -3
  4. package/dist/{IRunner-NtTHQgLR.d.mts → IRunner-lMQIa5Wc.d.mts} +64 -3
  5. package/dist/{ModeResolver-wnTFsDnF.d.mts → ModeResolver-B4hhABNf.d.mts} +1 -1
  6. package/dist/{ModeResolver-Dy3Ef6p-.d.ts → ModeResolver-CUR5jCSU.d.ts} +1 -1
  7. package/dist/{Task-DZs9eKgg.d.mts → Task-D4QHjdGv.d.mts} +92 -10
  8. package/dist/{Task-DZs9eKgg.d.ts → Task-D4QHjdGv.d.ts} +92 -10
  9. package/dist/{chunk-A57ITQE7.mjs → chunk-4QLFM73A.mjs} +34 -5
  10. package/dist/chunk-4QLFM73A.mjs.map +1 -0
  11. package/dist/{chunk-FH6M5QZG.mjs → chunk-6LEA6WAM.mjs} +88 -7
  12. package/dist/chunk-6LEA6WAM.mjs.map +1 -0
  13. package/dist/{chunk-645FALZX.mjs → chunk-F3KIX7WR.mjs} +3 -3
  14. package/dist/{chunk-OYUSADFM.mjs → chunk-NJGID6BG.mjs} +3 -1
  15. package/dist/chunk-NJGID6BG.mjs.map +1 -0
  16. package/dist/{chunk-SM6BV6XS.mjs → chunk-RT4NQ2BZ.mjs} +3 -1
  17. package/dist/chunk-RT4NQ2BZ.mjs.map +1 -0
  18. package/dist/index.d.mts +296 -64
  19. package/dist/index.d.ts +296 -64
  20. package/dist/index.js +1576 -376
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +1455 -362
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/parsing.d.mts +2 -2
  25. package/dist/parsing.d.ts +2 -2
  26. package/dist/parsing.js.map +1 -1
  27. package/dist/parsing.mjs +3 -3
  28. package/dist/{plan-utils-POIz5d8z.d.ts → plan-utils-BVJCzNvm.d.ts} +204 -19
  29. package/dist/{plan-utils-CtKceSsQ.d.mts → plan-utils-wI8MuDBC.d.mts} +204 -19
  30. package/dist/plan-utils.d.mts +4 -4
  31. package/dist/plan-utils.d.ts +4 -4
  32. package/dist/plan-utils.js +94 -5
  33. package/dist/plan-utils.js.map +1 -1
  34. package/dist/plan-utils.mjs +13 -3
  35. package/dist/testing.d.mts +6 -3
  36. package/dist/testing.d.ts +6 -3
  37. package/dist/testing.js +7 -0
  38. package/dist/testing.js.map +1 -1
  39. package/dist/testing.mjs +7 -2
  40. package/dist/testing.mjs.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/chunk-A57ITQE7.mjs.map +0 -1
  43. package/dist/chunk-FH6M5QZG.mjs.map +0 -1
  44. package/dist/chunk-OYUSADFM.mjs.map +0 -1
  45. package/dist/chunk-SM6BV6XS.mjs.map +0 -1
  46. /package/dist/{chunk-645FALZX.mjs.map → chunk-F3KIX7WR.mjs.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { I as IApproval } from './IRunner-D_UkkMbJ.js';
1
+ import { I as IApproval } from './IRunner-Crkt3tHD.js';
2
2
 
3
3
  interface ToolOutcome {
4
4
  success: boolean;
@@ -1,4 +1,4 @@
1
- import { I as IApproval } from './IRunner-NtTHQgLR.mjs';
1
+ import { I as IApproval } from './IRunner-lMQIa5Wc.mjs';
2
2
 
3
3
  interface ToolOutcome {
4
4
  success: boolean;
@@ -1,5 +1,5 @@
1
1
  import { ChildProcess } from 'child_process';
2
- import { a2 as RunnerId, ar as UsageRecord, ad as SubagentOutcome, d as DiscoveredModel, am as TaskSkillSnapshot } from './Task-DZs9eKgg.js';
2
+ import { a3 as RunnerId, au as UsageRecord, af as SubagentOutcome, a4 as RunnerSessionCost, d as DiscoveredModel, ao as TaskSkillSnapshot } from './Task-D4QHjdGv.js';
3
3
  import { z } from 'zod/v4';
4
4
 
5
5
  /**
@@ -791,6 +791,7 @@ declare const taskOutputInput: z.ZodObject<{
791
791
  runner_loaded: "runner_loaded";
792
792
  compaction: "compaction";
793
793
  command_output: "command_output";
794
+ model_switched: "model_switched";
794
795
  text_delta: "text_delta";
795
796
  turn_start: "turn_start";
796
797
  message_queued: "message_queued";
@@ -1060,6 +1061,11 @@ interface RunnerCommand {
1060
1061
  /** Other names the runner answers to for the same command. */
1061
1062
  aliases?: string[];
1062
1063
  }
1064
+ /** A model as a runner lists it: the id it accepts, which is the one a plan holds, and the name it shows. */
1065
+ interface RunnerModelRef {
1066
+ model: string;
1067
+ label?: string;
1068
+ }
1063
1069
  /** An MCP server a runner loaded for a task, and the state the runner reported it in. */
1064
1070
  interface RunnerMcpServer {
1065
1071
  name: string;
@@ -1077,6 +1083,15 @@ declare function findRunnerCommand(commands: readonly RunnerCommand[], name: str
1077
1083
  * surfaces — is already provider-agnostic, so an adapter is the entire cost of
1078
1084
  * teaching Ordewell to plan with another agent.
1079
1085
  */
1086
+ /**
1087
+ * A runner's structured word that its account's usage limit ended the turn
1088
+ * (ADR-0018, U1). `resetsAt` (ISO) is when, where the runner's own limit state
1089
+ * says so; without it the reset is read from the error's words, as for a
1090
+ * runner that reports the limit in words alone.
1091
+ */
1092
+ interface UsageLimitSignal {
1093
+ resetsAt?: string;
1094
+ }
1080
1095
  /**
1081
1096
  * One normalized event from a running agent turn. Deliberately smaller than
1082
1097
  * any single agent's native protocol: this is the intersection Ordewell can act
@@ -1216,10 +1231,16 @@ type AgentEvent =
1216
1231
  type: 'message_dropped';
1217
1232
  id: string;
1218
1233
  }
1219
- /** The turn failed. Carries the agent's own words — never a Ordewell paraphrase. */
1234
+ /**
1235
+ * The turn failed. Carries the agent's own words — never a Ordewell paraphrase.
1236
+ * `usageLimit` is set where the runner's protocol says in a field, not only
1237
+ * in words, whether its account's usage limit failed the turn: `false` when
1238
+ * the field names another cause, which its words then cannot overrule.
1239
+ */
1220
1240
  | {
1221
1241
  type: 'error';
1222
1242
  message: string;
1243
+ usageLimit?: UsageLimitSignal | false;
1223
1244
  }
1224
1245
  /**
1225
1246
  * What the runner loaded for this process from the user's and the
@@ -1242,6 +1263,28 @@ type AgentEvent =
1242
1263
  | {
1243
1264
  type: 'command_output';
1244
1265
  text: string;
1266
+ }
1267
+ /**
1268
+ * The runner's main thread now answers on another model, after a model
1269
+ * command sent through the task's chat (#106): the user's own choice, which
1270
+ * the plan follows. Each side is named by the id the runner lists it under,
1271
+ * the one a plan holds. `effort` only where the runner reports one.
1272
+ */
1273
+ | {
1274
+ type: 'model_switched';
1275
+ from: RunnerModelRef;
1276
+ to: RunnerModelRef;
1277
+ effort?: string;
1278
+ }
1279
+ /**
1280
+ * The runner's main thread now answers on another model with no model
1281
+ * command before it (#106). Nobody in the chat chose it, so the plan does
1282
+ * not follow; the drift is reported so it is stated, not hidden.
1283
+ */
1284
+ | {
1285
+ type: 'model_drifted';
1286
+ from: RunnerModelRef;
1287
+ to: RunnerModelRef;
1245
1288
  };
1246
1289
  /**
1247
1290
  * What a planner's permission request is for, read from the runner's own
@@ -1289,6 +1332,8 @@ interface AgentStartCommon {
1289
1332
  * degrades to a fresh session seeded from the stored history, not an error.
1290
1333
  */
1291
1334
  resumeSessionId?: string;
1335
+ /** What was counted of the cost of `resumeSessionId` before, for a runner that reports a running total. */
1336
+ resumeCost?: RunnerSessionCost;
1292
1337
  }
1293
1338
  /** The read-only planner (ADR-0008/0009). The only start `CliAgentAiService` can express. */
1294
1339
  interface PlannerStartOptions extends AgentStartCommon {
@@ -1372,6 +1417,8 @@ interface AgentAdapter {
1372
1417
  send(message: string, onEvent: (event: AgentEvent) => void, signal?: AbortSignal, onActivity?: () => void): Promise<void>;
1373
1418
  /** The agent's native session id once it has announced one. Resumption hint only. */
1374
1419
  nativeSessionId(): string | null;
1420
+ /** What has been counted of the session's running cost, for a runner that reports one; null while unknown. */
1421
+ sessionCost?(): RunnerSessionCost | null;
1375
1422
  /** Kill the process and release its resources. Idempotent. */
1376
1423
  dispose(): void;
1377
1424
  /**
@@ -1768,6 +1815,8 @@ interface IRunnerSession {
1768
1815
  interrupt(): Promise<void>;
1769
1816
  /** The runner's own session id once announced — what a continue resumes (ADR-0018, K1). */
1770
1817
  nativeSessionId(): string | null;
1818
+ /** What has been counted of that session's running cost, for a runner that reports one; null while unknown. */
1819
+ sessionCost?(): RunnerSessionCost | null;
1771
1820
  /**
1772
1821
  * The slash commands the runner offers this task (#66): its built-ins and
1773
1822
  * the user's and the project's skills and custom commands. Empty for a
@@ -1826,6 +1875,18 @@ interface IRunner {
1826
1875
  env?: Record<string, string>;
1827
1876
  /** The runner's own session to continue in (ADR-0018, K1). */
1828
1877
  resumeSessionId?: string;
1878
+ /** What was counted of that session's running cost before, so its first turn is counted from there. */
1879
+ resumeCost?: RunnerSessionCost;
1880
+ /**
1881
+ * The model that session last ran on and its window, so a resumed turn that
1882
+ * states none is measured as before. Runners ignore it; the window fill
1883
+ * that wraps one reads it.
1884
+ */
1885
+ resumeWindow?: {
1886
+ source?: string;
1887
+ model?: string;
1888
+ contextWindow?: number;
1889
+ };
1829
1890
  /**
1830
1891
  * Which run of the task this is, from 1. A structured runner binds the
1831
1892
  * attempt's MCP token to it (ADR-0022, A2).
@@ -1844,4 +1905,4 @@ interface IRunner {
1844
1905
  activeCount: number;
1845
1906
  }
1846
1907
 
1847
- export { type OwnerOnlyFile as $, AUTO_COMMANDS as A, type IRunnerSession as B, type CatalogModel as C, DEFAULT_PLANNER_ALLOWLIST as D, type EditPlanArgs as E, type FetchAllProviderModelsOptions as F, GIT_READONLY_SUBCOMMANDS as G, type InvokedCommand as H, type IApproval as I, type ListModelsArgs as J, type ListRunnersArgs as K, LineBuffer as L, type LoadSkillArgs as M, type McpClientConfig as N, type McpCredential as O, type McpTool as P, type McpToolContext as Q, type McpToolReply as R, type MessageTaskArgs as S, ModelCatalog as T, type ModelShortcut as U, ORCHESTRATOR_SHORTCUTS as V, ORDEWELL_MCP_PATH as W, ORDEWELL_MCP_SERVER_NAME as X, type OneTaskArgs as Y, type OrchestratorOption as Z, OrdewellMcpServer as _, type AgentAdapter as a, researchShellWarning as a$, PLANNER_EXECUTION_TOOLS as a0, PLANNER_TOOLS as a1, type PlannerAllowlist as a2, type PlannerBackendId as a3, type PlannerStartOptions as a4, type PlannerTokenScope as a5, type PlannerToolHandler as a6, type ProjectMcpServer as a7, type ProviderCredentialSource as a8, type ProviderModelLists as a9, type TaskCompleteArgs as aA, type TaskDiffArgs as aB, type TaskMessageFrom as aC, type TaskModeAgentAdapter as aD, TaskModeUnsupportedError as aE, type TaskOutputArgs as aF, type TaskQueryArgs as aG, type TaskRunnerFlags as aH, type TaskStartOptions as aI, type TaskTokenScope as aJ, type TaskToolHandler as aK, approvalScopes as aL, classifyCommand as aM, clearResearchShellCache as aN, collectProviderCredentials as aO, commandAllowedBy as aP, effectiveApprovalMode as aQ, enabledRunners as aR, fetchAllProviderModels as aS, findRunnerCommand as aT, isGranted as aU, isRunnerApproval as aV, knownModelId as aW, mcpClientConfig as aX, ownerOnlyConfigFile as aY, parseAllowlist as aZ, parseApprovalModeSetting as a_, type ProviderModelsResult as aa, type QueuedTaskMessage as ab, REFUSED_COMMANDS as ac, type ResearchShell as ad, type ResearchShellDeps as ae, type RetryTaskArgs as af, type RunCommandArgs as ag, type RunPlanArgs as ah, type RunnerCommand as ai, type RunnerCommandKind as aj, type RunnerEntry as ak, type RunnerFeatures as al, type RunnerManifest as am, type RunnerMcpServer as an, type RunnerMode as ao, type RunnerModelDiscovery as ap, RunnerRegistry as aq, type ShellDialect as ar, type SpawnFn as as, type StandingDecision as at, type StructuredEvent as au, type StructuredTurnEnd as av, type SubmitPlanArgs as aw, TASK_COMPLETE_TOOL as ax, TASK_COMPLETION_CONTRACT as ay, TASK_TOOLS as az, type AgentAdapterFactory as b, researchToolsPath as b0, resolveModelShortcut as b1, resolveProvider as b2, resolveResearchShell as b3, scopeAllowed as b4, sharedMcpServer as b5, toApprovalDecision as b6, toOrchestratorOptions as b7, toolAllowed as b8, type AgentEvent as c, type AgentProcessDeps as d, type AgentStartOptions as e, type AiProvider as f, type AllProviderModels as g, type AnswerApprovalArgs as h, type ApprovalAnswer as i, type ApprovalDecision as j, type ApprovalKind as k, type ApprovalMode as l, type ApprovalModeSetting as m, ApprovalPolicy as n, type ApprovalPolicyOptions as o, type ApprovalRequest as p, type ApprovalSource as q, type CheckpointAnswer as r, type CheckpointArgs as s, type CommandClassification as t, type CommandTier as u, type CommandWords as v, DENY_ALL as w, type DiscoveryCommand as x, type IConfig as y, type IRunner as z };
1908
+ export { type OwnerOnlyFile as $, AUTO_COMMANDS as A, type IRunnerSession as B, type CatalogModel as C, DEFAULT_PLANNER_ALLOWLIST as D, type EditPlanArgs as E, type FetchAllProviderModelsOptions as F, GIT_READONLY_SUBCOMMANDS as G, type InvokedCommand as H, type IApproval as I, type ListModelsArgs as J, type ListRunnersArgs as K, LineBuffer as L, type LoadSkillArgs as M, type McpClientConfig as N, type McpCredential as O, type McpTool as P, type McpToolContext as Q, type McpToolReply as R, type MessageTaskArgs as S, ModelCatalog as T, type ModelShortcut as U, ORCHESTRATOR_SHORTCUTS as V, ORDEWELL_MCP_PATH as W, ORDEWELL_MCP_SERVER_NAME as X, type OneTaskArgs as Y, type OrchestratorOption as Z, OrdewellMcpServer as _, type AgentAdapter as a, parseAllowlist as a$, PLANNER_EXECUTION_TOOLS as a0, PLANNER_TOOLS as a1, type PlannerAllowlist as a2, type PlannerBackendId as a3, type PlannerStartOptions as a4, type PlannerTokenScope as a5, type PlannerToolHandler as a6, type ProjectMcpServer as a7, type ProviderCredentialSource as a8, type ProviderModelLists as a9, TASK_TOOLS as aA, type TaskCompleteArgs as aB, type TaskDiffArgs as aC, type TaskMessageFrom as aD, type TaskModeAgentAdapter as aE, TaskModeUnsupportedError as aF, type TaskOutputArgs as aG, type TaskQueryArgs as aH, type TaskRunnerFlags as aI, type TaskStartOptions as aJ, type TaskTokenScope as aK, type TaskToolHandler as aL, type UsageLimitSignal as aM, approvalScopes as aN, classifyCommand as aO, clearResearchShellCache as aP, collectProviderCredentials as aQ, commandAllowedBy as aR, effectiveApprovalMode as aS, enabledRunners as aT, fetchAllProviderModels as aU, findRunnerCommand as aV, isGranted as aW, isRunnerApproval as aX, knownModelId as aY, mcpClientConfig as aZ, ownerOnlyConfigFile as a_, type ProviderModelsResult as aa, type QueuedTaskMessage as ab, REFUSED_COMMANDS as ac, type ResearchShell as ad, type ResearchShellDeps as ae, type RetryTaskArgs as af, type RunCommandArgs as ag, type RunPlanArgs as ah, type RunnerCommand as ai, type RunnerCommandKind as aj, type RunnerEntry as ak, type RunnerFeatures as al, type RunnerManifest as am, type RunnerMcpServer as an, type RunnerMode as ao, type RunnerModelDiscovery as ap, type RunnerModelRef as aq, RunnerRegistry as ar, type ShellDialect as as, type SpawnFn as at, type StandingDecision as au, type StructuredEvent as av, type StructuredTurnEnd as aw, type SubmitPlanArgs as ax, TASK_COMPLETE_TOOL as ay, TASK_COMPLETION_CONTRACT as az, type AgentAdapterFactory as b, parseApprovalModeSetting as b0, researchShellWarning as b1, researchToolsPath as b2, resolveModelShortcut as b3, resolveProvider as b4, resolveResearchShell as b5, scopeAllowed as b6, sharedMcpServer as b7, toApprovalDecision as b8, toOrchestratorOptions as b9, toolAllowed as ba, type AgentEvent as c, type AgentProcessDeps as d, type AgentStartOptions as e, type AiProvider as f, type AllProviderModels as g, type AnswerApprovalArgs as h, type ApprovalAnswer as i, type ApprovalDecision as j, type ApprovalKind as k, type ApprovalMode as l, type ApprovalModeSetting as m, ApprovalPolicy as n, type ApprovalPolicyOptions as o, type ApprovalRequest as p, type ApprovalSource as q, type CheckpointAnswer as r, type CheckpointArgs as s, type CommandClassification as t, type CommandTier as u, type CommandWords as v, DENY_ALL as w, type DiscoveryCommand as x, type IConfig as y, type IRunner as z };
@@ -1,5 +1,5 @@
1
1
  import { ChildProcess } from 'child_process';
2
- import { a2 as RunnerId, ar as UsageRecord, ad as SubagentOutcome, d as DiscoveredModel, am as TaskSkillSnapshot } from './Task-DZs9eKgg.mjs';
2
+ import { a3 as RunnerId, au as UsageRecord, af as SubagentOutcome, a4 as RunnerSessionCost, d as DiscoveredModel, ao as TaskSkillSnapshot } from './Task-D4QHjdGv.mjs';
3
3
  import { z } from 'zod/v4';
4
4
 
5
5
  /**
@@ -791,6 +791,7 @@ declare const taskOutputInput: z.ZodObject<{
791
791
  runner_loaded: "runner_loaded";
792
792
  compaction: "compaction";
793
793
  command_output: "command_output";
794
+ model_switched: "model_switched";
794
795
  text_delta: "text_delta";
795
796
  turn_start: "turn_start";
796
797
  message_queued: "message_queued";
@@ -1060,6 +1061,11 @@ interface RunnerCommand {
1060
1061
  /** Other names the runner answers to for the same command. */
1061
1062
  aliases?: string[];
1062
1063
  }
1064
+ /** A model as a runner lists it: the id it accepts, which is the one a plan holds, and the name it shows. */
1065
+ interface RunnerModelRef {
1066
+ model: string;
1067
+ label?: string;
1068
+ }
1063
1069
  /** An MCP server a runner loaded for a task, and the state the runner reported it in. */
1064
1070
  interface RunnerMcpServer {
1065
1071
  name: string;
@@ -1077,6 +1083,15 @@ declare function findRunnerCommand(commands: readonly RunnerCommand[], name: str
1077
1083
  * surfaces — is already provider-agnostic, so an adapter is the entire cost of
1078
1084
  * teaching Ordewell to plan with another agent.
1079
1085
  */
1086
+ /**
1087
+ * A runner's structured word that its account's usage limit ended the turn
1088
+ * (ADR-0018, U1). `resetsAt` (ISO) is when, where the runner's own limit state
1089
+ * says so; without it the reset is read from the error's words, as for a
1090
+ * runner that reports the limit in words alone.
1091
+ */
1092
+ interface UsageLimitSignal {
1093
+ resetsAt?: string;
1094
+ }
1080
1095
  /**
1081
1096
  * One normalized event from a running agent turn. Deliberately smaller than
1082
1097
  * any single agent's native protocol: this is the intersection Ordewell can act
@@ -1216,10 +1231,16 @@ type AgentEvent =
1216
1231
  type: 'message_dropped';
1217
1232
  id: string;
1218
1233
  }
1219
- /** The turn failed. Carries the agent's own words — never a Ordewell paraphrase. */
1234
+ /**
1235
+ * The turn failed. Carries the agent's own words — never a Ordewell paraphrase.
1236
+ * `usageLimit` is set where the runner's protocol says in a field, not only
1237
+ * in words, whether its account's usage limit failed the turn: `false` when
1238
+ * the field names another cause, which its words then cannot overrule.
1239
+ */
1220
1240
  | {
1221
1241
  type: 'error';
1222
1242
  message: string;
1243
+ usageLimit?: UsageLimitSignal | false;
1223
1244
  }
1224
1245
  /**
1225
1246
  * What the runner loaded for this process from the user's and the
@@ -1242,6 +1263,28 @@ type AgentEvent =
1242
1263
  | {
1243
1264
  type: 'command_output';
1244
1265
  text: string;
1266
+ }
1267
+ /**
1268
+ * The runner's main thread now answers on another model, after a model
1269
+ * command sent through the task's chat (#106): the user's own choice, which
1270
+ * the plan follows. Each side is named by the id the runner lists it under,
1271
+ * the one a plan holds. `effort` only where the runner reports one.
1272
+ */
1273
+ | {
1274
+ type: 'model_switched';
1275
+ from: RunnerModelRef;
1276
+ to: RunnerModelRef;
1277
+ effort?: string;
1278
+ }
1279
+ /**
1280
+ * The runner's main thread now answers on another model with no model
1281
+ * command before it (#106). Nobody in the chat chose it, so the plan does
1282
+ * not follow; the drift is reported so it is stated, not hidden.
1283
+ */
1284
+ | {
1285
+ type: 'model_drifted';
1286
+ from: RunnerModelRef;
1287
+ to: RunnerModelRef;
1245
1288
  };
1246
1289
  /**
1247
1290
  * What a planner's permission request is for, read from the runner's own
@@ -1289,6 +1332,8 @@ interface AgentStartCommon {
1289
1332
  * degrades to a fresh session seeded from the stored history, not an error.
1290
1333
  */
1291
1334
  resumeSessionId?: string;
1335
+ /** What was counted of the cost of `resumeSessionId` before, for a runner that reports a running total. */
1336
+ resumeCost?: RunnerSessionCost;
1292
1337
  }
1293
1338
  /** The read-only planner (ADR-0008/0009). The only start `CliAgentAiService` can express. */
1294
1339
  interface PlannerStartOptions extends AgentStartCommon {
@@ -1372,6 +1417,8 @@ interface AgentAdapter {
1372
1417
  send(message: string, onEvent: (event: AgentEvent) => void, signal?: AbortSignal, onActivity?: () => void): Promise<void>;
1373
1418
  /** The agent's native session id once it has announced one. Resumption hint only. */
1374
1419
  nativeSessionId(): string | null;
1420
+ /** What has been counted of the session's running cost, for a runner that reports one; null while unknown. */
1421
+ sessionCost?(): RunnerSessionCost | null;
1375
1422
  /** Kill the process and release its resources. Idempotent. */
1376
1423
  dispose(): void;
1377
1424
  /**
@@ -1768,6 +1815,8 @@ interface IRunnerSession {
1768
1815
  interrupt(): Promise<void>;
1769
1816
  /** The runner's own session id once announced — what a continue resumes (ADR-0018, K1). */
1770
1817
  nativeSessionId(): string | null;
1818
+ /** What has been counted of that session's running cost, for a runner that reports one; null while unknown. */
1819
+ sessionCost?(): RunnerSessionCost | null;
1771
1820
  /**
1772
1821
  * The slash commands the runner offers this task (#66): its built-ins and
1773
1822
  * the user's and the project's skills and custom commands. Empty for a
@@ -1826,6 +1875,18 @@ interface IRunner {
1826
1875
  env?: Record<string, string>;
1827
1876
  /** The runner's own session to continue in (ADR-0018, K1). */
1828
1877
  resumeSessionId?: string;
1878
+ /** What was counted of that session's running cost before, so its first turn is counted from there. */
1879
+ resumeCost?: RunnerSessionCost;
1880
+ /**
1881
+ * The model that session last ran on and its window, so a resumed turn that
1882
+ * states none is measured as before. Runners ignore it; the window fill
1883
+ * that wraps one reads it.
1884
+ */
1885
+ resumeWindow?: {
1886
+ source?: string;
1887
+ model?: string;
1888
+ contextWindow?: number;
1889
+ };
1829
1890
  /**
1830
1891
  * Which run of the task this is, from 1. A structured runner binds the
1831
1892
  * attempt's MCP token to it (ADR-0022, A2).
@@ -1844,4 +1905,4 @@ interface IRunner {
1844
1905
  activeCount: number;
1845
1906
  }
1846
1907
 
1847
- export { type OwnerOnlyFile as $, AUTO_COMMANDS as A, type IRunnerSession as B, type CatalogModel as C, DEFAULT_PLANNER_ALLOWLIST as D, type EditPlanArgs as E, type FetchAllProviderModelsOptions as F, GIT_READONLY_SUBCOMMANDS as G, type InvokedCommand as H, type IApproval as I, type ListModelsArgs as J, type ListRunnersArgs as K, LineBuffer as L, type LoadSkillArgs as M, type McpClientConfig as N, type McpCredential as O, type McpTool as P, type McpToolContext as Q, type McpToolReply as R, type MessageTaskArgs as S, ModelCatalog as T, type ModelShortcut as U, ORCHESTRATOR_SHORTCUTS as V, ORDEWELL_MCP_PATH as W, ORDEWELL_MCP_SERVER_NAME as X, type OneTaskArgs as Y, type OrchestratorOption as Z, OrdewellMcpServer as _, type AgentAdapter as a, researchShellWarning as a$, PLANNER_EXECUTION_TOOLS as a0, PLANNER_TOOLS as a1, type PlannerAllowlist as a2, type PlannerBackendId as a3, type PlannerStartOptions as a4, type PlannerTokenScope as a5, type PlannerToolHandler as a6, type ProjectMcpServer as a7, type ProviderCredentialSource as a8, type ProviderModelLists as a9, type TaskCompleteArgs as aA, type TaskDiffArgs as aB, type TaskMessageFrom as aC, type TaskModeAgentAdapter as aD, TaskModeUnsupportedError as aE, type TaskOutputArgs as aF, type TaskQueryArgs as aG, type TaskRunnerFlags as aH, type TaskStartOptions as aI, type TaskTokenScope as aJ, type TaskToolHandler as aK, approvalScopes as aL, classifyCommand as aM, clearResearchShellCache as aN, collectProviderCredentials as aO, commandAllowedBy as aP, effectiveApprovalMode as aQ, enabledRunners as aR, fetchAllProviderModels as aS, findRunnerCommand as aT, isGranted as aU, isRunnerApproval as aV, knownModelId as aW, mcpClientConfig as aX, ownerOnlyConfigFile as aY, parseAllowlist as aZ, parseApprovalModeSetting as a_, type ProviderModelsResult as aa, type QueuedTaskMessage as ab, REFUSED_COMMANDS as ac, type ResearchShell as ad, type ResearchShellDeps as ae, type RetryTaskArgs as af, type RunCommandArgs as ag, type RunPlanArgs as ah, type RunnerCommand as ai, type RunnerCommandKind as aj, type RunnerEntry as ak, type RunnerFeatures as al, type RunnerManifest as am, type RunnerMcpServer as an, type RunnerMode as ao, type RunnerModelDiscovery as ap, RunnerRegistry as aq, type ShellDialect as ar, type SpawnFn as as, type StandingDecision as at, type StructuredEvent as au, type StructuredTurnEnd as av, type SubmitPlanArgs as aw, TASK_COMPLETE_TOOL as ax, TASK_COMPLETION_CONTRACT as ay, TASK_TOOLS as az, type AgentAdapterFactory as b, researchToolsPath as b0, resolveModelShortcut as b1, resolveProvider as b2, resolveResearchShell as b3, scopeAllowed as b4, sharedMcpServer as b5, toApprovalDecision as b6, toOrchestratorOptions as b7, toolAllowed as b8, type AgentEvent as c, type AgentProcessDeps as d, type AgentStartOptions as e, type AiProvider as f, type AllProviderModels as g, type AnswerApprovalArgs as h, type ApprovalAnswer as i, type ApprovalDecision as j, type ApprovalKind as k, type ApprovalMode as l, type ApprovalModeSetting as m, ApprovalPolicy as n, type ApprovalPolicyOptions as o, type ApprovalRequest as p, type ApprovalSource as q, type CheckpointAnswer as r, type CheckpointArgs as s, type CommandClassification as t, type CommandTier as u, type CommandWords as v, DENY_ALL as w, type DiscoveryCommand as x, type IConfig as y, type IRunner as z };
1908
+ export { type OwnerOnlyFile as $, AUTO_COMMANDS as A, type IRunnerSession as B, type CatalogModel as C, DEFAULT_PLANNER_ALLOWLIST as D, type EditPlanArgs as E, type FetchAllProviderModelsOptions as F, GIT_READONLY_SUBCOMMANDS as G, type InvokedCommand as H, type IApproval as I, type ListModelsArgs as J, type ListRunnersArgs as K, LineBuffer as L, type LoadSkillArgs as M, type McpClientConfig as N, type McpCredential as O, type McpTool as P, type McpToolContext as Q, type McpToolReply as R, type MessageTaskArgs as S, ModelCatalog as T, type ModelShortcut as U, ORCHESTRATOR_SHORTCUTS as V, ORDEWELL_MCP_PATH as W, ORDEWELL_MCP_SERVER_NAME as X, type OneTaskArgs as Y, type OrchestratorOption as Z, OrdewellMcpServer as _, type AgentAdapter as a, parseAllowlist as a$, PLANNER_EXECUTION_TOOLS as a0, PLANNER_TOOLS as a1, type PlannerAllowlist as a2, type PlannerBackendId as a3, type PlannerStartOptions as a4, type PlannerTokenScope as a5, type PlannerToolHandler as a6, type ProjectMcpServer as a7, type ProviderCredentialSource as a8, type ProviderModelLists as a9, TASK_TOOLS as aA, type TaskCompleteArgs as aB, type TaskDiffArgs as aC, type TaskMessageFrom as aD, type TaskModeAgentAdapter as aE, TaskModeUnsupportedError as aF, type TaskOutputArgs as aG, type TaskQueryArgs as aH, type TaskRunnerFlags as aI, type TaskStartOptions as aJ, type TaskTokenScope as aK, type TaskToolHandler as aL, type UsageLimitSignal as aM, approvalScopes as aN, classifyCommand as aO, clearResearchShellCache as aP, collectProviderCredentials as aQ, commandAllowedBy as aR, effectiveApprovalMode as aS, enabledRunners as aT, fetchAllProviderModels as aU, findRunnerCommand as aV, isGranted as aW, isRunnerApproval as aX, knownModelId as aY, mcpClientConfig as aZ, ownerOnlyConfigFile as a_, type ProviderModelsResult as aa, type QueuedTaskMessage as ab, REFUSED_COMMANDS as ac, type ResearchShell as ad, type ResearchShellDeps as ae, type RetryTaskArgs as af, type RunCommandArgs as ag, type RunPlanArgs as ah, type RunnerCommand as ai, type RunnerCommandKind as aj, type RunnerEntry as ak, type RunnerFeatures as al, type RunnerManifest as am, type RunnerMcpServer as an, type RunnerMode as ao, type RunnerModelDiscovery as ap, type RunnerModelRef as aq, RunnerRegistry as ar, type ShellDialect as as, type SpawnFn as at, type StandingDecision as au, type StructuredEvent as av, type StructuredTurnEnd as aw, type SubmitPlanArgs as ax, TASK_COMPLETE_TOOL as ay, TASK_COMPLETION_CONTRACT as az, type AgentAdapterFactory as b, parseApprovalModeSetting as b0, researchShellWarning as b1, researchToolsPath as b2, resolveModelShortcut as b3, resolveProvider as b4, resolveResearchShell as b5, scopeAllowed as b6, sharedMcpServer as b7, toApprovalDecision as b8, toOrchestratorOptions as b9, toolAllowed as ba, type AgentEvent as c, type AgentProcessDeps as d, type AgentStartOptions as e, type AiProvider as f, type AllProviderModels as g, type AnswerApprovalArgs as h, type ApprovalAnswer as i, type ApprovalDecision as j, type ApprovalKind as k, type ApprovalMode as l, type ApprovalModeSetting as m, ApprovalPolicy as n, type ApprovalPolicyOptions as o, type ApprovalRequest as p, type ApprovalSource as q, type CheckpointAnswer as r, type CheckpointArgs as s, type CommandClassification as t, type CommandTier as u, type CommandWords as v, DENY_ALL as w, type DiscoveryCommand as x, type IConfig as y, type IRunner as z };
@@ -1,4 +1,4 @@
1
- import { a2 as RunnerId } from './Task-DZs9eKgg.mjs';
1
+ import { a3 as RunnerId } from './Task-D4QHjdGv.mjs';
2
2
 
3
3
  interface RunnerModeInfo {
4
4
  id: string;
@@ -1,4 +1,4 @@
1
- import { a2 as RunnerId } from './Task-DZs9eKgg.js';
1
+ import { a3 as RunnerId } from './Task-D4QHjdGv.js';
2
2
 
3
3
  interface RunnerModeInfo {
4
4
  id: string;
@@ -155,8 +155,10 @@ interface IsolationRepo {
155
155
  root: string;
156
156
  /** The commit checked out at run start. Switching branches mid-run does not retarget it. */
157
157
  baseRef: string;
158
- /** Branch name checked out at run start; absent on a detached HEAD. */
158
+ /** Branch name checked out at run start; absent on a detached HEAD, and on a record saved before this was noted. */
159
159
  baseBranch?: string;
160
+ /** Set when the run started on a detached HEAD, so that is told from a record that never noted its branch. */
161
+ startedDetached?: true;
160
162
  integrationBranch: string;
161
163
  }
162
164
  /**
@@ -237,6 +239,10 @@ interface IsolationHandoffRepo {
237
239
  path: string;
238
240
  integrationBranch: string;
239
241
  baseRef: string;
242
+ /** The branch the run started on in this repo; absent when it started on a detached HEAD or the record never noted one. */
243
+ baseBranch?: string;
244
+ /** Set when the run started on a detached HEAD. */
245
+ startedDetached?: true;
240
246
  /** Tasks whose work landed in this repo, in plan order. */
241
247
  landed: IsolationLandedTask[];
242
248
  }
@@ -259,27 +265,36 @@ interface IsolationView {
259
265
  /**
260
266
  * Why "Merge all" would not touch a repo. `partial-landing`: a task's landing
261
267
  * was interrupted and could not be rolled back there, so its integration
262
- * branch holds part of a task.
268
+ * branch holds part of a task. `wrong-branch`: the repo is not on the branch
269
+ * the run started on, and the merge would land on some other one.
263
270
  */
264
- type IsolationMergeBlockReason = 'merge-in-progress' | 'conflict' | 'uncommitted-changes' | 'partial-landing' | 'git-error';
271
+ type IsolationMergeBlockReason = 'merge-in-progress' | 'conflict' | 'uncommitted-changes' | 'partial-landing' | 'wrong-branch' | 'git-error';
265
272
  interface IsolationMergeBlock {
266
273
  repo: string;
267
274
  reason: IsolationMergeBlockReason;
268
275
  /** The files that would conflict, or the user's uncommitted ones the merge also changes; empty for the other reasons. */
269
276
  files: string[];
277
+ /** `wrong-branch` only: the branch the run started on. */
278
+ expected?: string;
279
+ /** `wrong-branch` only: the branch checked out now; absent on a detached HEAD. */
280
+ actual?: string;
281
+ /** `wrong-branch` only: the repo is in the middle of a rebase, which is what detached its HEAD. */
282
+ rebasing?: true;
270
283
  }
271
284
  /**
272
285
  * How "Merge all" went.
273
286
  * - `merged`: every repo with work on its integration branch took it.
274
- * - `blocked`: the preflight found repos that could not, so nothing was
287
+ * - `blocked`: a repo was on another branch than the run started on, or the
288
+ * preflight found repos that could not take their merge, so nothing was
275
289
  * touched anywhere; `blocked` says which and why.
276
290
  * - `conflict` / `failed`: a merge stopped in `repo` — on git older than 2.38,
277
291
  * which cannot preflight, or for a reason no preflight could foresee. That
278
292
  * merge was aborted, leaving `repo` as it was; `landed` names the repos
279
293
  * merged before it, which stay merged, and is absent when there are none.
280
294
  *
281
- * A group of one is blocked only by a partial landing; otherwise its one merge
282
- * lands or is aborted whole, so it reports as it always has.
295
+ * A group of one is blocked only by a partial landing or by being on the wrong
296
+ * branch; otherwise its one merge lands or is aborted whole, so it reports as
297
+ * it always has.
283
298
  */
284
299
  type IsolationMergeResult = {
285
300
  outcome: 'merged';
@@ -561,7 +576,11 @@ interface UsageRecord {
561
576
  amount: number;
562
577
  currency: string;
563
578
  };
564
- /** The model's context window, when the runner itself reports it. */
579
+ /**
580
+ * The model's context window: as the runner or provider reported it, or,
581
+ * when it reported none, from that runner's or provider's own model listing
582
+ * (`ContextWindowFill`). Never from a table kept in Ordewell.
583
+ */
565
584
  contextWindow?: number;
566
585
  /** Set when a subagent made the call; its usage still counts toward the total. */
567
586
  subagentId?: string;
@@ -638,16 +657,41 @@ interface ModelUsage {
638
657
  totals: UsageTotals;
639
658
  }
640
659
  declare function addModelUsage(models: readonly ModelUsage[], record: UsageRecord): ModelUsage[];
660
+ /**
661
+ * What Ordewell has counted of a runner's own session that reports its cost
662
+ * as a running total: that total and each model's share, in USD, as of its
663
+ * last report. A resume of that session counts its first report's growth
664
+ * over this; with no count kept for it, that report only sets the baseline.
665
+ */
666
+ interface RunnerSessionCost {
667
+ sessionId: string;
668
+ usd: number;
669
+ modelUsd: Record<string, number>;
670
+ }
641
671
  interface AttemptUsage extends PlannerUsage {
642
672
  attempt: number;
643
673
  runner: string;
674
+ /** The runner session this attempt ran in, as its runner reported it: what a later Continue of it resumes. */
675
+ sessionId?: string;
644
676
  startedAt: string;
645
677
  endedAt?: string;
646
678
  wallTimeMs: number;
679
+ /** What was counted of its runner session's running cost as it ended: a continue of that session counts on from it. */
680
+ runnerSessionCost?: RunnerSessionCost;
647
681
  }
648
682
  declare function startAttemptUsage(attempt: number, runner: string, startedAt: string): AttemptUsage;
649
683
  declare function addAttemptUsage(usage: AttemptUsage, record: UsageRecord, now: string): AttemptUsage;
650
- declare function endAttemptUsage(usage: AttemptUsage, now: string): AttemptUsage;
684
+ declare function endAttemptUsage(usage: AttemptUsage, now: string, runnerSessionCost?: RunnerSessionCost, sessionId?: string): AttemptUsage;
685
+ /** The count a continue of `sessionId` starts from: the one its latest attempt in that session ended with. */
686
+ declare function countedSessionCost(attempts: readonly AttemptUsage[] | undefined, sessionId: string): RunnerSessionCost | undefined;
687
+ /**
688
+ * The model a continue's session last ran on and the window it was measured
689
+ * against: the latest earlier attempt of that same runner session that
690
+ * reported one. An attempt that measured nothing is skipped — a continuation
691
+ * does not undo what its session was last measured against — and a window is
692
+ * never borrowed from another session: a fresh attempt starts one.
693
+ */
694
+ declare function resumedSessionWindow(attempts: readonly AttemptUsage[] | undefined, runner: string, attempt: number, sessionId: string): Pick<PlannerUsage, 'source' | 'model' | 'contextWindow'> | undefined;
651
695
  interface PlanUsage {
652
696
  totals: UsageTotals;
653
697
  byModel: ModelUsage[];
@@ -660,6 +704,21 @@ interface UsageTask {
660
704
  subtasks?: readonly UsageTask[];
661
705
  }
662
706
  declare function planUsage(tasks: readonly UsageTask[]): PlanUsage;
707
+ /**
708
+ * What one task spent across every attempt and every model it ran on, so a
709
+ * stop, a model change and a continue never makes the earlier spend vanish. The
710
+ * context meter is the exception: it reads the latest attempt, because only the
711
+ * current model's window says how full the next prompt is.
712
+ */
713
+ interface TaskUsageSummary {
714
+ totals: UsageTotals;
715
+ attempts: number;
716
+ contextFill?: {
717
+ usedTokens: number;
718
+ windowTokens: number;
719
+ };
720
+ }
721
+ declare function taskUsageSummary(task: Pick<UsageTask, 'attemptUsage'>): TaskUsageSummary;
663
722
 
664
723
  /**
665
724
  * How far a plan's supervisor may act in its wake-up turns (ADR-0029): a plan
@@ -993,6 +1052,13 @@ interface Task {
993
1052
  userStoriesCovered?: string[];
994
1053
  /** The runner's saved session for a later continue; cleared when a fresh attempt starts. */
995
1054
  runnerSessionId?: string;
1055
+ /**
1056
+ * The runner that session belongs to: a session cannot cross runners, so
1057
+ * Continue is offered only while the task is still assigned to it. Absent
1058
+ * on a plan saved before it was recorded; the last attempt's runner stands
1059
+ * in (see `sessionOwner`).
1060
+ */
1061
+ runnerSessionOwner?: RunnerId;
996
1062
  /** Set only while `status` is `awaiting_user`, and not always then — a pause saved by an older build has none. */
997
1063
  awaitingReason?: AwaitingReason;
998
1064
  /**
@@ -1177,10 +1243,13 @@ interface ConversationMessage {
1177
1243
  * (ADR-0029), its record in `execution`. 'wake_up' is the digest a wake-up
1178
1244
  * gave the supervisor (role 'user': the model was told it), and
1179
1245
  * 'supervisor' what the supervisor said in a wake-up turn (ADR-0029).
1246
+ * 'error' is a planner turn that ended on the planner's usage limit, drawn
1247
+ * as a failure and never replayed to the planner: it is not the planner's
1248
+ * answer, and its inputs are sent again (see {@link PlannerResendState}).
1180
1249
  * Absent for ordinary chat turns, so sessions saved before markers existed
1181
1250
  * degrade gracefully.
1182
1251
  */
1183
- kind?: 'plan_generated' | 'system' | 'compaction' | 'skill_load' | 'execution' | 'wake_up' | 'supervisor';
1252
+ kind?: 'plan_generated' | 'system' | 'compaction' | 'skill_load' | 'execution' | 'wake_up' | 'supervisor' | 'error';
1184
1253
  actor?: 'Ordewell setting';
1185
1254
  /** Present exactly when `kind` is 'skill_load'. */
1186
1255
  skill?: SkillLoad;
@@ -1268,6 +1337,17 @@ interface SupervisionSnapshot {
1268
1337
  /** The events inside their debounce window and the wake-up rate's timestamps. */
1269
1338
  wake?: SupervisorSnapshot;
1270
1339
  }
1340
+ /**
1341
+ * What waits on the planner's usage limit. With `at`, the inputs no turn
1342
+ * answered are sent again then, on their own; without it — the reset could
1343
+ * not be read, the resend hit the limit again, or it was cancelled — they go
1344
+ * with the next input: the user's message, or a wake-up.
1345
+ */
1346
+ interface PlannerResendState {
1347
+ /** The runner whose account hit the limit; a planner on another one is not held by it. */
1348
+ runner?: RunnerId;
1349
+ at?: string;
1350
+ }
1271
1351
  interface LegacyPlanState {
1272
1352
  runSettings?: RunSettings;
1273
1353
  /** What supervision remembers across a daemon restart (ADR-0029); absent on plans saved before it existed. */
@@ -1295,6 +1375,8 @@ interface LegacyPlanState {
1295
1375
  isolation?: PlanIsolation;
1296
1376
  /** Kept so a reopened session shows the same token line (#49). */
1297
1377
  plannerUsage?: PlannerUsage;
1378
+ /** The planner hit its usage limit and the inputs its turn took wait to be sent again; absent otherwise. */
1379
+ plannerResend?: PlannerResendState;
1298
1380
  /**
1299
1381
  * The tasks the user approved to run: every task when they executed the
1300
1382
  * plan, and each one they started or retried themselves since. A command
@@ -1385,4 +1467,4 @@ type ApprovalRecord = Pick<LegacyPlanState, 'approved' | 'approvedTasks'>;
1385
1467
  */
1386
1468
  declare function waitsForApproval(task: Pick<Task, 'id' | 'type' | 'status'>, record: ApprovalRecord): boolean;
1387
1469
 
1388
- export { type ResearchStepOutcome as $, type ApprovalRecord as A, BUILTIN_SKILL_NAMES as B, type ConversationMessage as C, DEFAULT_RUNNERS as D, type ExecutionActor as E, type IsolationTaskStatus as F, type GuardTarget as G, type IsolationView as H, type IWorktreeIsolation as I, type PlanIsolation as J, type PlanState as K, type LegacyPlanState as L, type ModelUsage as M, type PlanStatus as N, type PlanUsage as O, type PendingPlanTurn as P, type PlannerUsage as Q, type PrepareIntent as R, type PreparedTask as S, type PreservedWork as T, type PreviousWork as U, type RefusedRemoval as V, type RepairEvidence as W, type RepoGroupLayout as X, type ResearchLogEntry as Y, type ResearchProgress as Z, type ResearchStep as _, type AttemptUsage as a, type ResearchToolType as a0, type RunSettings as a1, type RunnerId as a2, type SetupFailure as a3, type ShadowedSkill as a4, type SkillAppliesTo as a5, type SkillCatalog as a6, type SkillInfo as a7, type SkillLoad as a8, type SkillLoadNotice as a9, createEmptyPlan as aA, createSkillsService as aB, createTask as aC, endAttemptUsage as aD, flattenTasks as aE, flattenTasksWithParents as aF, isAwaitingReason as aG, isMeasured as aH, isSupervisorLevel as aI, isUserMessage as aJ, migratePlanState as aK, partedPromptUsage as aL, pausedOnLimit as aM, planUsage as aN, plannerContextFill as aO, rejoinPlanTree as aP, startAttemptUsage as aQ, usageLine as aR, waitsForApproval as aS, type SkillMetadata as aa, type SkillSource as ab, SkillsService as ac, type SubagentOutcome as ad, type SupervisorLevel as ae, type Task as af, type TaskDiffRead as ag, type TaskDiffResult as ah, type TaskIsolation as ai, type TaskIsolationState as aj, type TaskModelAssignment as ak, type TaskSkillNotice as al, type TaskSkillSnapshot as am, type TaskSnapshot as an, type TaskStatus as ao, type TreeSnapshot as ap, type UsageLine as aq, type UsageRecord as ar, type UsageTotals as as, type Verdict as at, type VerificationCheck as au, addAttemptUsage as av, addModelUsage as aw, addPlannerUsage as ax, addUsage as ay, addUsageTotals as az, type AwaitingReason as b, DEFAULT_SUPERVISOR_RETRY_LIMIT as c, type DiscoveredModel as d, type ExecutionCommandName as e, type ExecutionRecord as f, type GuardTrip as g, type IntegrationDisposal as h, type InvalidSkill as i, type IsolationAvailability as j, type IsolationHandoff as k, type IsolationHandoffRepo as l, type IsolationInactiveReason as m, type IsolationLandedTask as n, type IsolationLanding as o, type IsolationMergeBlock as p, type IsolationMergeBlockReason as q, type IsolationMergeResult as r, type IsolationOutcome as s, type IsolationPruneResult as t, type IsolationRemoval as u, type IsolationRepo as v, type IsolationRun as w, type IsolationTaskRecord as x, type IsolationTaskRef as y, type IsolationTaskRepo as z };
1470
+ export { type ResearchStep as $, type ApprovalRecord as A, BUILTIN_SKILL_NAMES as B, type ConversationMessage as C, DEFAULT_RUNNERS as D, type ExecutionActor as E, type IsolationTaskStatus as F, type GuardTarget as G, type IsolationView as H, type IWorktreeIsolation as I, type PlanIsolation as J, type PlanState as K, type LegacyPlanState as L, type ModelUsage as M, type PlanStatus as N, type PlanUsage as O, type PendingPlanTurn as P, type PlannerResendState as Q, type PlannerUsage as R, type PrepareIntent as S, type PreparedTask as T, type PreservedWork as U, type PreviousWork as V, type RefusedRemoval as W, type RepairEvidence as X, type RepoGroupLayout as Y, type ResearchLogEntry as Z, type ResearchProgress as _, type AttemptUsage as a, type ResearchStepOutcome as a0, type ResearchToolType as a1, type RunSettings as a2, type RunnerId as a3, type RunnerSessionCost as a4, type SetupFailure as a5, type ShadowedSkill as a6, type SkillAppliesTo as a7, type SkillCatalog as a8, type SkillInfo as a9, addPlannerUsage as aA, addUsage as aB, addUsageTotals as aC, countedSessionCost as aD, createEmptyPlan as aE, createSkillsService as aF, createTask as aG, endAttemptUsage as aH, flattenTasks as aI, flattenTasksWithParents as aJ, isAwaitingReason as aK, isMeasured as aL, isSupervisorLevel as aM, isUserMessage as aN, migratePlanState as aO, partedPromptUsage as aP, pausedOnLimit as aQ, planUsage as aR, plannerContextFill as aS, rejoinPlanTree as aT, resumedSessionWindow as aU, startAttemptUsage as aV, taskUsageSummary as aW, usageLine as aX, waitsForApproval as aY, type SkillLoad as aa, type SkillLoadNotice as ab, type SkillMetadata as ac, type SkillSource as ad, SkillsService as ae, type SubagentOutcome as af, type SupervisorLevel as ag, type Task as ah, type TaskDiffRead as ai, type TaskDiffResult as aj, type TaskIsolation as ak, type TaskIsolationState as al, type TaskModelAssignment as am, type TaskSkillNotice as an, type TaskSkillSnapshot as ao, type TaskSnapshot as ap, type TaskStatus as aq, type TaskUsageSummary as ar, type TreeSnapshot as as, type UsageLine as at, type UsageRecord as au, type UsageTotals as av, type Verdict as aw, type VerificationCheck as ax, addAttemptUsage as ay, addModelUsage as az, type AwaitingReason as b, DEFAULT_SUPERVISOR_RETRY_LIMIT as c, type DiscoveredModel as d, type ExecutionCommandName as e, type ExecutionRecord as f, type GuardTrip as g, type IntegrationDisposal as h, type InvalidSkill as i, type IsolationAvailability as j, type IsolationHandoff as k, type IsolationHandoffRepo as l, type IsolationInactiveReason as m, type IsolationLandedTask as n, type IsolationLanding as o, type IsolationMergeBlock as p, type IsolationMergeBlockReason as q, type IsolationMergeResult as r, type IsolationOutcome as s, type IsolationPruneResult as t, type IsolationRemoval as u, type IsolationRepo as v, type IsolationRun as w, type IsolationTaskRecord as x, type IsolationTaskRef as y, type IsolationTaskRepo as z };