@ashx-j/lunr 0.2.19 → 0.2.20

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 (170) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +2 -2
  3. package/dist/builtin-extensions/index.d.ts.map +1 -1
  4. package/dist/builtin-extensions/index.js +0 -2
  5. package/dist/builtin-extensions/index.js.map +1 -1
  6. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +6 -4
  7. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
  8. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +93 -49
  9. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
  10. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  11. package/dist/builtin-extensions/pi-intercom/index.js +351 -351
  12. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  13. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +2 -1
  14. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  15. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +80 -43
  16. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  17. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +18 -8
  18. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  19. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +36 -11
  20. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  21. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
  22. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  23. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +21 -12
  24. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  25. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +7 -1
  26. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  27. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +225 -15
  28. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  29. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts +29 -0
  30. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -0
  31. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +179 -0
  32. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -0
  33. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +89 -0
  34. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -0
  35. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +541 -0
  36. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -0
  37. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +9 -1
  38. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +34 -9
  40. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  41. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
  42. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +1 -2
  43. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
  44. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +2 -1
  45. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +35 -8
  47. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +1 -1
  49. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +3 -3
  51. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +1 -0
  53. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +54 -38
  55. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  56. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +3 -6
  57. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +64 -5
  59. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +1 -0
  62. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  63. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +21 -8
  65. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +62 -16
  68. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  69. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -0
  70. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
  71. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +75 -18
  72. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
  73. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +13 -1
  74. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  75. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +67 -11
  76. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  77. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  78. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +5 -2
  79. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  80. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  81. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -3
  82. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  83. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +3 -0
  84. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
  85. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +68 -11
  86. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
  87. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +12 -1
  88. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
  89. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +21 -2
  90. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
  91. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +16 -4
  92. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  93. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +1 -1
  94. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  95. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +2 -0
  96. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  97. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +24 -6
  98. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  99. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +44 -4
  100. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  101. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +227 -133
  102. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  103. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
  104. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +1 -1
  105. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -1
  106. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +2 -13
  107. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -1
  108. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +5 -91
  109. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
  110. package/dist/core/permissions.d.ts +1 -0
  111. package/dist/core/permissions.d.ts.map +1 -1
  112. package/dist/core/permissions.js +8 -4
  113. package/dist/core/permissions.js.map +1 -1
  114. package/dist/core/plan-mode.d.ts.map +1 -1
  115. package/dist/core/plan-mode.js +0 -5
  116. package/dist/core/plan-mode.js.map +1 -1
  117. package/dist/core/runtime-bridges.d.ts.map +1 -1
  118. package/dist/core/runtime-bridges.js +0 -2
  119. package/dist/core/runtime-bridges.js.map +1 -1
  120. package/dist/core/subagent-cancellation.d.ts +21 -0
  121. package/dist/core/subagent-cancellation.d.ts.map +1 -0
  122. package/dist/core/subagent-cancellation.js +53 -0
  123. package/dist/core/subagent-cancellation.js.map +1 -0
  124. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  125. package/dist/modes/interactive/components/assistant-message.js +12 -18
  126. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  127. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  128. package/dist/modes/interactive/components/tool-execution.js +12 -0
  129. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  130. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  131. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  132. package/dist/modes/interactive/interactive-mode.js +29 -0
  133. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  134. package/dist/node-runtime/{agent-session-services-35WNVGMR.js → agent-session-services-75JKASCW.js} +3 -3
  135. package/dist/node-runtime/{builtin-extensions-322XDDEM.js → builtin-extensions-X4JMM4ZS.js} +2 -2
  136. package/dist/node-runtime/{chunk-XATUM2HK.js → chunk-25I2BHAA.js} +1 -1
  137. package/dist/node-runtime/{chunk-MCUNIRD5.js → chunk-46ECNOLF.js} +477 -246
  138. package/dist/node-runtime/{chunk-J26TSGDL.js → chunk-6N22HULO.js} +8 -5
  139. package/dist/node-runtime/{chunk-TFBIJTM3.js → chunk-AL2FMKKM.js} +7 -7
  140. package/dist/node-runtime/chunk-AOFXZQKA.js +24 -0
  141. package/dist/node-runtime/chunk-BBUVIEZB.js +51 -0
  142. package/dist/node-runtime/{chunk-ZRCBN365.js → chunk-ELWEXVO5.js} +7 -7
  143. package/dist/node-runtime/{chunk-ATGA2WLC.js → chunk-JYNNB7DU.js} +397 -34
  144. package/dist/node-runtime/{chunk-4FX25LWP.js → chunk-K3646JTM.js} +16 -117
  145. package/dist/node-runtime/{chunk-PNJSG3IZ.js → chunk-LTYWTR3V.js} +1 -369
  146. package/dist/node-runtime/{chunk-TXHKBRHZ.js → chunk-QKFMBRAL.js} +45 -31
  147. package/dist/node-runtime/{command-DWUM5X3U.js → command-RBTRL55A.js} +1 -1
  148. package/dist/node-runtime/{gateway-UZXMFGWY.js → gateway-L4ANRTVE.js} +2 -2
  149. package/dist/node-runtime/index.js +9 -8
  150. package/dist/node-runtime/{interactive-mode-QT5IKGQ5.js → interactive-mode-HPUNH7SV.js} +5 -4
  151. package/dist/node-runtime/{lunr-cron-QPBTKBGI.js → lunr-cron-NNYTWTGF.js} +2 -2
  152. package/dist/node-runtime/main.js +7 -7
  153. package/dist/node-runtime/{pi-intercom-EEMBGQID.js → pi-intercom-DDQMRNPJ.js} +96 -76
  154. package/dist/node-runtime/{pi-subagents-7YJ3I4VE.js → pi-subagents-T5WMMLBB.js} +1040 -318
  155. package/dist/node-runtime/rpc-entry.js +7 -7
  156. package/dist/node-runtime/{runtime-bridges-3RKBDLNA.js → runtime-bridges-NJQERQ72.js} +2 -4
  157. package/dist/node-runtime/{subagent-executor-5Q5A4HJ2.js → subagent-executor-SRFC26SJ.js} +168 -249
  158. package/docs/features.md +17 -3
  159. package/docs/keybindings.md +3 -1
  160. package/docs/settings.md +1 -1
  161. package/package.json +4 -4
  162. package/dist/builtin-extensions/lunr-settings-tools.d.ts +0 -4
  163. package/dist/builtin-extensions/lunr-settings-tools.d.ts.map +0 -1
  164. package/dist/builtin-extensions/lunr-settings-tools.js +0 -120
  165. package/dist/builtin-extensions/lunr-settings-tools.js.map +0 -1
  166. package/dist/core/settings-tools-bridge.d.ts +0 -35
  167. package/dist/core/settings-tools-bridge.d.ts.map +0 -1
  168. package/dist/core/settings-tools-bridge.js +0 -56
  169. package/dist/core/settings-tools-bridge.js.map +0 -1
  170. package/dist/node-runtime/chunk-3NMWLTPV.js +0 -64
@@ -13,7 +13,7 @@ import { buildDoctorReport } from "../../extension/doctor.js";
13
13
  import { clearPendingForegroundControlNotices } from "../../extension/control-notices.js";
14
14
  import { runSync } from "./execution.js";
15
15
  import { handleWatchdogToolAction, WATCHDOG_TOOL_ACTIONS } from "../../watchdog/tool-actions.js";
16
- import { buildModelCandidates, captureModelSelection, resolveEffectiveSubagentModel, resolveRequiredTierModel } from "../shared/model-fallback.js";
16
+ import { buildModelCandidates, captureModelSelection, resolveEffectiveSubagentModel, resolveExecutableChildModel } from "../shared/model-fallback.js";
17
17
  import { aggregateParallelOutputs } from "../shared/parallel-utils.js";
18
18
  import { recordRun } from "../shared/run-history.js";
19
19
  import { buildChainInstructions, writeInitialProgressFile, getStepAgents, isParallelStep, isDynamicParallelStep, resolveStepBehavior, suppressProgressForReadOnlyTask, taskDisallowsFileUpdates, } from "../../shared/settings.js";
@@ -21,7 +21,7 @@ import { discoverAvailableSkills, normalizeSkillInput } from "../../agents/skill
21
21
  import { buildAsyncRunnerSteps, executeAsyncChain, executeAsyncSingle, formatAsyncStartedMessage, isAsyncAvailable } from "../background/async-execution.js";
22
22
  import { enqueueChainAppendRequest, readPendingChainAppendRequests, runnerStepOutputNames } from "../background/chain-append.js";
23
23
  import { ChainOutputValidationError, validateChainOutputBindingsWithContext } from "../shared/chain-outputs.js";
24
- import { validateExecutionAcceptance } from "../shared/acceptance.js";
24
+ import { restorePersistedAcceptance, validateExecutionAcceptance } from "../shared/acceptance.js";
25
25
  import { createForkContextResolver, forkedChildRequiresThinkingOff } from "../../shared/fork-context.js";
26
26
  import { lunrContextPolicy } from "../../shared/lunr-child-context.js";
27
27
  import { resolveCurrentSessionId } from "../../shared/session-identity.js";
@@ -46,7 +46,7 @@ import { inspectSubagentStatus } from "../background/run-status.js";
46
46
  import { applyForceTopLevelAsyncOverride } from "../background/top-level-async.js";
47
47
  import { cleanupWorktrees, createWorktrees, diffWorktrees, findWorktreeTaskCwdConflict, formatWorktreeDiffSummary, formatWorktreeTaskCwdConflict, } from "../shared/worktree.js";
48
48
  import { ASYNC_DIR, DEFAULT_ARTIFACT_CONFIG, DEFAULT_FORK_PREAMBLE, RESULTS_DIR, SUBAGENT_ACTIONS, SUBAGENT_CONTROL_EVENT, SUBAGENT_CONTROL_INTERCOM_EVENT, SUBAGENT_FOREGROUND_COMPLETE_EVENT, checkSubagentDepth, resolveMaxSubagentSpawnsPerSession, resolveTopLevelParallelConcurrency, resolveTopLevelParallelMaxTasks, resolveChildMaxSubagentDepth, resolveCurrentMaxSubagentDepth, wrapForkTask, } from "../../shared/types.js";
49
- const MUTATING_MANAGEMENT_ACTIONS = new Set(["create", "update", "delete", "eject", "disable", "enable", "reset", "watchdog.configure"]);
49
+ const MUTATING_MANAGEMENT_ACTIONS = new Set(["create", "update", "delete", "eject", "disable", "enable", "reset"]);
50
50
  function resolveRequestedCwd(runtimeCwd, requestedCwd) {
51
51
  return requestedCwd ? path.resolve(runtimeCwd, requestedCwd) : runtimeCwd;
52
52
  }
@@ -1039,26 +1039,43 @@ async function resumeAsyncRun(input) {
1039
1039
  const artifactConfig = recoveryDescriptor?.artifactConfig ?? { ...DEFAULT_ARTIFACT_CONFIG, enabled: input.params.artifacts !== false };
1040
1040
  const artifactsDir = recoveryDescriptor?.artifactsDir ?? getArtifactsDir(parentSessionFile, effectiveCwd);
1041
1041
  const availableModels = input.ctx.modelRegistry.getAvailable().map(toModelInfo);
1042
+ let restoredAcceptance;
1043
+ if (recoveryDescriptor?.acceptance !== undefined && input.params.acceptance === undefined) {
1044
+ try {
1045
+ restoredAcceptance = restorePersistedAcceptance(recoveryDescriptor.acceptance, "recoveryDescriptor.acceptance");
1046
+ }
1047
+ catch (error) {
1048
+ return { content: [{ type: "text", text: error instanceof Error ? error.message : String(error) }], isError: true, details: { mode: "management", results: [] } };
1049
+ }
1050
+ }
1042
1051
  let recoverySpec;
1043
1052
  try {
1053
+ const recoverySelection = recoveryDescriptor?.modelSelection ?? target.modelSelection;
1054
+ const recoveryIsExplicitModel = recoverySelection?.kind === "model";
1044
1055
  recoverySpec = normalizeChildSpec({
1045
1056
  task: buildRevivedAsyncTask(target, followUp),
1046
1057
  description: recoveryDescriptor?.description ?? target.description ?? target.agent,
1047
1058
  permissions: recoveryDescriptor?.permissions ?? target.permissions ?? "read-only",
1048
- model: recoveryDescriptor?.model ?? target.model,
1049
- tier: input.params.tier ?? recoveryDescriptor?.tier ?? recoveryDescriptor?.modelSelection?.tier,
1050
- modelSelection: recoveryDescriptor?.modelSelection,
1059
+ model: recoveryIsExplicitModel
1060
+ ? (recoverySelection.model ?? recoveryDescriptor?.model ?? target.model)
1061
+ : undefined,
1062
+ tier: recoveryIsExplicitModel
1063
+ ? undefined
1064
+ : (input.params.tier ?? recoverySelection?.tier ?? recoveryDescriptor?.tier),
1065
+ thinking: recoveryIsExplicitModel ? (recoveryDescriptor?.thinking ?? target.thinking) : undefined,
1066
+ modelSelection: recoverySelection,
1051
1067
  skill: recoveryDescriptor?.skills,
1052
1068
  cwd: effectiveCwd,
1053
1069
  output: recoveryDescriptor?.outputPath,
1054
1070
  outputMode: recoveryDescriptor?.outputMode,
1055
- acceptance: input.params.acceptance ?? recoveryDescriptor?.acceptance,
1071
+ acceptance: input.params.acceptance,
1056
1072
  toolBudget: recoveryDescriptor?.initialToolBudget,
1057
1073
  }, {
1058
1074
  parentMode: snapshotParentPermissionMode(input.deps.state.currentSessionId),
1059
1075
  runId,
1060
1076
  index: 0,
1061
1077
  childId: recoveryDescriptor?.childId ?? target.childId ?? `${runId}-0`,
1078
+ resolvedModelIsRuntime: !recoveryIsExplicitModel && Boolean(recoveryDescriptor?.model ?? target.model),
1062
1079
  });
1063
1080
  }
1064
1081
  catch (error) {
@@ -1105,7 +1122,7 @@ async function resumeAsyncRun(input) {
1105
1122
  output: recoveryDescriptor?.outputPath,
1106
1123
  outputMode: recoveryDescriptor?.outputMode,
1107
1124
  ...(recoveryDescriptor?.skills ? { skills: [...recoveryDescriptor.skills] } : {}),
1108
- ...(recoveryDescriptor?.acceptance !== undefined && input.params.acceptance === undefined ? { acceptance: recoveryDescriptor.acceptance } : {}),
1125
+ ...(restoredAcceptance ? { restoredAcceptance } : {}),
1109
1126
  ...(input.params.timeoutMs !== undefined ? { timeoutMs: input.params.timeoutMs } : {}),
1110
1127
  ...(input.absoluteDeadlineAt !== undefined ? { absoluteDeadlineAt: input.absoluteDeadlineAt } : {}),
1111
1128
  ...(input.params.turnBudget !== undefined ? { turnBudget: input.params.turnBudget } : {}),
@@ -1417,6 +1434,7 @@ function internalizePromptDrivenChildren(params, options) {
1417
1434
  cwd: params.cwd,
1418
1435
  model: params.model,
1419
1436
  tier: params.tier,
1437
+ thinking: params.thinking,
1420
1438
  skill: params.skill,
1421
1439
  output: params.output,
1422
1440
  outputMode: params.outputMode,
@@ -1851,14 +1869,23 @@ function runAsyncPath(data, deps) {
1851
1869
  const normalizedSkills = normalizeSkillInput(params.skill);
1852
1870
  const skills = normalizedSkills === false ? [] : normalizedSkills;
1853
1871
  const maxSubagentDepth = resolveChildMaxSubagentDepth(currentMaxSubagentDepth, a.maxSubagentDepth);
1854
- const modelOverride = resolveRequiredTierModel(params.tier, availableModels, currentProvider);
1872
+ const modelSelection = captureModelSelection({ model: params.model, tier: params.tier });
1873
+ const modelOverride = resolveExecutableChildModel({
1874
+ modelSelection,
1875
+ model: params.model,
1876
+ tier: params.tier,
1877
+ thinking: params.thinking,
1878
+ availableModels,
1879
+ preferredProvider: currentProvider,
1880
+ });
1855
1881
  const spec = normalizeChildSpec({
1856
1882
  task: shouldForkAgent(contextPolicy, params.agent) ? wrapForkTask(params.task ?? "") : (params.task ?? ""),
1857
1883
  description: params.description,
1858
1884
  permissions: params.permissions,
1859
- model: modelOverride,
1885
+ model: params.model,
1860
1886
  tier: params.tier,
1861
- modelSelection: captureModelSelection({ tier: params.tier }),
1887
+ thinking: params.thinking,
1888
+ modelSelection,
1862
1889
  skill: params.skill,
1863
1890
  cwd: effectiveCwd,
1864
1891
  output: effectiveOutput,
@@ -2155,13 +2182,15 @@ async function runForegroundParallelTasks(input) {
2155
2182
  return true;
2156
2183
  };
2157
2184
  }
2185
+ const modelSelection = input.modelSelections[index] ?? captureModelSelection({ model: task.model, tier: task.tier });
2158
2186
  return runSync(input.ctx.cwd, normalizeChildSpec({
2159
2187
  task: taskText,
2160
2188
  description: task.description,
2161
2189
  permissions: task.permissions,
2162
- model: input.modelOverrides[index] ?? task.model,
2190
+ model: task.model,
2163
2191
  tier: task.tier,
2164
- modelSelection: input.modelSelections[index] ?? captureModelSelection({ tier: task.tier }),
2192
+ thinking: task.thinking,
2193
+ modelSelection,
2165
2194
  skill: task.skill,
2166
2195
  cwd: taskCwd,
2167
2196
  output: task.output,
@@ -2302,8 +2331,15 @@ async function runParallelPath(data, deps) {
2302
2331
  ...(task.progress !== undefined ? { progress: task.progress } : {}),
2303
2332
  ...(skillOverrides[index] !== undefined ? { skills: skillOverrides[index] } : {}),
2304
2333
  }));
2305
- const modelOverrides = tasks.map((task, i) => resolveRequiredTierModel(task.tier, availableModels, currentProvider));
2306
- const modelSelections = tasks.map((task) => captureModelSelection({ tier: task.tier }));
2334
+ const modelSelections = tasks.map((task) => captureModelSelection({ model: task.model, tier: task.tier }));
2335
+ const modelOverrides = tasks.map((task, index) => resolveExecutableChildModel({
2336
+ modelSelection: modelSelections[index],
2337
+ model: task.model,
2338
+ tier: task.tier,
2339
+ thinking: task.thinking,
2340
+ availableModels,
2341
+ preferredProvider: currentProvider,
2342
+ }));
2307
2343
  if (params.clarify === true && ctx.hasUI) {
2308
2344
  const behaviors = agentConfigs.map((_c, i) => resolveStepBehavior(behaviorOverrides[i]));
2309
2345
  const availableSkills = discoverAvailableSkills(effectiveCwd);
@@ -2560,7 +2596,9 @@ async function runSinglePath(data, deps) {
2560
2596
  task: params.task,
2561
2597
  description: params.description,
2562
2598
  permissions: params.permissions,
2599
+ model: params.model,
2563
2600
  tier: params.tier,
2601
+ thinking: params.thinking,
2564
2602
  skill: params.skill,
2565
2603
  cwd: effectiveCwd,
2566
2604
  output: params.output,
@@ -2597,7 +2635,15 @@ async function runSinglePath(data, deps) {
2597
2635
  const currentProvider = ctx.model?.provider;
2598
2636
  const availableModels = ctx.modelRegistry.getAvailable().map(toModelInfo);
2599
2637
  let task = params.task ?? "";
2600
- let modelOverride = resolveRequiredTierModel(params.tier, availableModels, currentProvider);
2638
+ const modelSelection = captureModelSelection({ model: params.model, tier: params.tier });
2639
+ let modelOverride = resolveExecutableChildModel({
2640
+ modelSelection,
2641
+ model: params.model,
2642
+ tier: params.tier,
2643
+ thinking: params.thinking,
2644
+ availableModels,
2645
+ preferredProvider: currentProvider,
2646
+ });
2601
2647
  let skillOverride = normalizeSkillInput(params.skill);
2602
2648
  const rawOutput = params.output !== undefined ? params.output : agentConfig.output;
2603
2649
  let effectiveOutput = normalizeSingleOutputOverride(rawOutput, agentConfig.output);