@selesai/code 0.8.11 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/core/agent-session.js +41 -29
  3. package/dist/core/resource-loader.d.ts +1 -1
  4. package/dist/core/resource-loader.js +2 -2
  5. package/dist/defaults/models.json +30 -7
  6. package/dist/defaults/settings.json +10 -8
  7. package/dist/extensions/model-prompt-injector/config.json +6 -0
  8. package/dist/extensions/package.json +2 -1
  9. package/dist/extensions/pi-subagents/README.md +4 -4
  10. package/dist/extensions/pi-subagents/docs/configuration.md +3 -54
  11. package/dist/extensions/pi-subagents/docs/extension-api.md +4 -15
  12. package/dist/extensions/pi-subagents/docs/missions.md +2 -39
  13. package/dist/extensions/pi-subagents/docs/observability.md +2 -42
  14. package/dist/extensions/pi-subagents/docs/tool-reference.md +1 -2
  15. package/dist/extensions/pi-subagents/docs/watchdog.md +0 -57
  16. package/dist/extensions/pi-subagents/docs/workflows.md +2 -0
  17. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +4 -49
  18. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +1 -1
  19. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +1 -2
  20. package/dist/extensions/pi-subagents/src/extension/config.ts +3 -15
  21. package/dist/extensions/pi-subagents/src/extension/index.ts +1 -53
  22. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +4 -10
  23. package/dist/extensions/pi-subagents/src/extension/rpc.ts +1 -2
  24. package/dist/extensions/pi-subagents/src/extension/schemas.ts +1 -12
  25. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +1 -2
  26. package/dist/extensions/pi-subagents/src/policy/authority.ts +0 -2
  27. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +33 -102
  28. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +0 -2
  29. package/dist/extensions/pi-subagents/src/shared/types.ts +1 -1
  30. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +4 -58
  31. package/dist/extensions/pi-subagents/src/watchdog/register-main.ts +2 -8
  32. package/dist/extensions/pi-subagents/src/watchdog/tool-actions.ts +1 -2
  33. package/dist/extensions/pi-subagents/src/workflows/workflow-auto-relaunch.ts +16 -3
  34. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +0 -95
  35. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +0 -15
  36. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +0 -59
  37. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +0 -59
  38. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +0 -47
  39. package/dist/extensions/pi-subagents/test/unit/authority-policy.test.ts +0 -1
  40. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +2 -2
  41. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +5 -5
  42. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +0 -8
  43. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +2 -2
  44. package/dist/extensions/pi-subagents/test/unit/subagent-action-recovery.test.ts +2 -2
  45. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +4 -4
  46. package/dist/extensions/pi-subagents/test/unit/workflow-auto-relaunch.test.ts +21 -1
  47. package/dist/modes/interactive/components/model-selector.d.ts +10 -1
  48. package/dist/modes/interactive/components/model-selector.js +10 -6
  49. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  50. package/dist/modes/interactive/components/settings-selector.js +3 -0
  51. package/dist/modes/interactive/interactive-mode.js +7 -0
  52. package/dist/skills/pi-subagents/references/constraints-and-recipes.md +1 -1
  53. package/dist/skills/pi-subagents/references/execution-controls.md +2 -32
  54. package/dist/skills/pi-subagents/references/management-authoring-rpc.md +1 -1
  55. package/dist/skills/pi-subagents/references/prompting-and-roles.md +3 -3
  56. package/docs/custom-provider.md +1 -0
  57. package/package.json +3 -3
  58. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +0 -803
  59. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +0 -691
  60. package/dist/extensions/pi-subagents/src/tui/fleet.ts +0 -1314
  61. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +0 -3
  62. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +0 -2
  63. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +0 -17
  64. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +0 -57
  65. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +0 -16
  66. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +0 -15
  67. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +0 -18
  68. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +0 -9
  69. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +0 -10
  70. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +0 -10
  71. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +0 -20
  72. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +0 -3
  73. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +0 -96
  74. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +0 -119
  75. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +0 -85
  76. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +0 -620
  77. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +0 -5
  78. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +0 -56
  79. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +0 -32
  80. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +0 -49
  81. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +0 -93
  82. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +0 -128
  83. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +0 -7
  84. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +0 -38
  85. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +0 -3
  86. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +0 -15
  87. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +0 -9
  88. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +0 -29
  89. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +0 -2
  90. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +0 -22
  91. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +0 -37
  92. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +0 -34
  93. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +0 -12
  94. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +0 -23
  95. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +0 -171
  96. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +0 -1263
  97. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +0 -20
  98. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +0 -54
  99. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +0 -22
  100. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +0 -13
  101. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +0 -358
  102. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +0 -77
  103. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +0 -512
  104. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +0 -43
  105. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +0 -121
  106. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +0 -82
  107. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +0 -17
  108. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +0 -7
  109. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +0 -210
  110. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +0 -15
  111. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +0 -54
  112. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +0 -4
  113. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +0 -55
  114. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +0 -2
  115. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +0 -5
  116. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +0 -30
  117. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +0 -206
  118. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +0 -15
  119. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +0 -106
  120. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +0 -19
  121. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +0 -356
  122. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +0 -297
  123. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +0 -60
  124. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +0 -15
  125. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +0 -18
  126. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +0 -28
  127. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +0 -3
  128. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +0 -10
  129. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +0 -68
  130. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +0 -106
  131. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +0 -51
  132. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +0 -6
  133. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +0 -35
  134. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +0 -37
  135. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +0 -40
  136. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +0 -37
  137. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +0 -52
  138. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +0 -10
  139. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +0 -35
  140. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +0 -24
  141. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  142. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +0 -70
  143. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +0 -26
  144. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +0 -36
  145. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +0 -19
  146. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +0 -3
  147. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +0 -61
  148. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +0 -23
  149. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +0 -3
  150. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +0 -10
  151. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +0 -42
  152. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +0 -35
  153. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +0 -12
  154. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +0 -33
  155. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +0 -9
  156. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +0 -34
  157. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +0 -22
  158. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  159. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  160. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  161. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  162. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +0 -102
  163. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  164. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  165. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +0 -19
  166. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +0 -20
  167. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  168. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +0 -12
  169. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  170. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  171. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +0 -22
  172. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +0 -23
  173. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  174. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  175. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +0 -32
  176. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +0 -34
  177. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  178. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  179. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +0 -54
  180. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  181. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  182. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  183. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +0 -95
  184. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +0 -77
  185. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  186. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  187. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +0 -28
  188. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  189. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  190. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  191. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  192. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  193. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  194. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +0 -14
  195. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  196. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +0 -394
  197. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +0 -12
  198. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +0 -29
  199. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +0 -120
  200. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +0 -28
  201. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +0 -17
  202. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +0 -246
  203. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +0 -20
  204. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +0 -457
  205. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +0 -8
  206. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +0 -3
  207. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +0 -2
  208. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +0 -22
  209. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +0 -18
  210. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +0 -11
  211. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +0 -11
  212. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +0 -4
  213. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +0 -4
  214. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +0 -5
  215. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +0 -8
  216. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +0 -5
  217. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +0 -26
  218. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +0 -7
  219. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +0 -10
  220. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +0 -18
  221. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +0 -30
  222. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +0 -2
  223. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +0 -16
  224. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +0 -3
  225. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +0 -3
  226. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +0 -9
  227. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +0 -31
  228. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +0 -21
  229. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +0 -2
  230. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +0 -31
  231. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +0 -5
  232. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +0 -12
  233. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +0 -3
  234. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +0 -15
  235. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +0 -3
  236. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +0 -1004
  237. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +0 -1511
  238. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +0 -634
  239. package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +0 -67
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  All notable changes to `@selesai/code` will be documented in this file.
4
4
 
5
+ ## [0.9.0] - 2026-08-20
6
+
7
+ ### Added
8
+ - **Bundled Ollama provider.** Selesai now ships and tests an OpenAI-compatible local Ollama provider, and includes it in the bundled extension manifest.
9
+ - **Vision model selection.** `/settings` reuses the model selector for image-caption models, filters to image-capable models, supports disabling captioning, and keeps the choice separate from the main default model. Bundled Token-In defaults include `gemma-4` captioning and a 16,384-token context budget; `Qwen3-VL` is also available.
10
+
11
+ ### Changed
12
+ - **Smarter vision caption recovery.** Image captions now get up to four attempts with fresh 60-second timeouts and backoff, instead of failing after one 15-second attempt.
13
+ - **Model defaults refreshed.** Token-In `auto`/`auto-premium` context windows are 256K; the bundled default is `auto-premium` for the main session and core subagent roles, while exploration/research roles use `auto`. The model prompt injector also covers `auto`.
14
+ - **Workflow auto-relaunch diagnostics.** Relaunch rounds reset projected workflow state cleanly, track launches/state writes/budget blocks/fan-out rejection, and stop with a precise reason when another round cannot make progress.
15
+ - **Bundled skills enabled by default.** Explicit user overrides still win, but additional bundled skills are now active unless disabled.
16
+ - **Pi Subagents surface simplified.** Removed FleetView/fleet inspector, durable schedules, and watchdog model recommendation/configuration actions; run status, missions, watchdog status/check, and ordinary async controls remain. Corresponding runtime code, schemas, tests, and references were removed or updated.
17
+ - **Documentation and test maintenance.** Updated the subagent API/configuration/observability/workflow references and added the Ollama provider to the standard test command.
18
+
19
+ ## [0.8.12] - 2026-08-20
20
+
21
+ ### Added
22
+ - **Token-In `auto-premium` model default.** The Token-In provider now bundles an `auto-premium`
23
+ model alongside `auto` (reasoning, 512K context window, 64K max tokens, `max` thinking level
24
+ mapped through), letting the provider pick the best premium model for each request.
25
+
5
26
  ## [0.8.11] - 2026-08-19
6
27
 
7
28
  ### Added
@@ -1200,36 +1200,48 @@ export class AgentSession {
1200
1200
  try {
1201
1201
  const descriptions = [];
1202
1202
  let failureReason;
1203
+ // Retry transient failures (timeouts, provider errors) a few times;
1204
+ // each attempt gets a fresh 60s budget.
1205
+ const maxAttempts = 4;
1206
+ // Prime-number backoff between attempts: 3s, 5s, 7s, 11s, ...
1207
+ const backoffSeconds = [3, 5, 7, 11, 13, 17, 19, 23, 29, 31];
1203
1208
  for (const image of images) {
1204
- const controller = new AbortController();
1205
- let aborted = false;
1206
- const timeout = setTimeout(() => {
1207
- aborted = true;
1208
- controller.abort();
1209
- }, 15_000);
1210
- try {
1211
- const caption = await captionImageWithModel(captionModel, image, {
1212
- apiKey: auth.auth.apiKey,
1213
- headers: auth.auth.headers,
1214
- signal: controller.signal,
1215
- userPrompt,
1216
- contextText,
1217
- onError: (message) => {
1218
- failureReason = message;
1219
- console.error("[image-caption] request failed:", message);
1220
- },
1221
- });
1222
- if (caption)
1223
- descriptions.push(caption);
1224
- }
1225
- catch {
1226
- // Captioning is best-effort; fall back to leaving the image attached.
1227
- }
1228
- finally {
1229
- clearTimeout(timeout);
1230
- }
1231
- if (aborted) {
1232
- failureReason = failureReason ?? "timed out after 15s";
1209
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
1210
+ const controller = new AbortController();
1211
+ let aborted = false;
1212
+ const timeout = setTimeout(() => {
1213
+ aborted = true;
1214
+ controller.abort();
1215
+ }, 60_000);
1216
+ try {
1217
+ const caption = await captionImageWithModel(captionModel, image, {
1218
+ apiKey: auth.auth.apiKey,
1219
+ headers: auth.auth.headers,
1220
+ signal: controller.signal,
1221
+ userPrompt,
1222
+ contextText,
1223
+ onError: (message) => {
1224
+ failureReason = message;
1225
+ console.error(`[image-caption] request failed (attempt ${attempt}/${maxAttempts}):`, message);
1226
+ },
1227
+ });
1228
+ if (caption) {
1229
+ descriptions.push(caption);
1230
+ break;
1231
+ }
1232
+ }
1233
+ catch {
1234
+ // Captioning is best-effort; fall back to leaving the image attached.
1235
+ }
1236
+ finally {
1237
+ clearTimeout(timeout);
1238
+ }
1239
+ if (aborted) {
1240
+ failureReason = failureReason ?? "timed out after 60s";
1241
+ }
1242
+ if (attempt < maxAttempts) {
1243
+ await sleep(backoffSeconds[attempt - 1] * 1_000);
1244
+ }
1233
1245
  }
1234
1246
  }
1235
1247
  if (descriptions.length === 0) {
@@ -228,7 +228,7 @@ export declare class DefaultResourceLoader implements ResourceLoader {
228
228
  private addExtensionConflictDiagnostics;
229
229
  /**
230
230
  * Enumerate every skill subdirectory in the bundled/CLI additional skill dirs,
231
- * each gated by the user's skill overrides and defaulting to disabled (opt-in).
231
+ * enabling them by default while honoring explicit user overrides.
232
232
  * Returns resolved resources (SKILL.md paths + enabled state).
233
233
  */
234
234
  private additionalResolvedSkills;
@@ -507,7 +507,7 @@ export class DefaultResourceLoader {
507
507
  }
508
508
  /**
509
509
  * Enumerate every skill subdirectory in the bundled/CLI additional skill dirs,
510
- * each gated by the user's skill overrides and defaulting to disabled (opt-in).
510
+ * enabling them by default while honoring explicit user overrides.
511
511
  * Returns resolved resources (SKILL.md paths + enabled state).
512
512
  */
513
513
  additionalResolvedSkills() {
@@ -530,7 +530,7 @@ export class DefaultResourceLoader {
530
530
  for (const skillFile of entries) {
531
531
  resolved.push({
532
532
  path: skillFile,
533
- enabled: isEnabledByOverrides(skillFile, patterns, resolvedDir, false),
533
+ enabled: isEnabledByOverrides(skillFile, patterns, resolvedDir, true),
534
534
  metadata: {
535
535
  source: dir,
536
536
  scope: "user",
@@ -15,7 +15,23 @@
15
15
  "name": "Auto",
16
16
  "reasoning": true,
17
17
  "input": ["text"],
18
- "contextWindow": 512000,
18
+ "contextWindow": 256000,
19
+ "maxTokens": 64000,
20
+ "thinkingLevelMap": {
21
+ "minimal": null,
22
+ "low": null,
23
+ "medium": null,
24
+ "high": null,
25
+ "xhigh": null,
26
+ "max": "max"
27
+ }
28
+ },
29
+ {
30
+ "id": "auto-premium",
31
+ "name": "Auto Premium",
32
+ "reasoning": true,
33
+ "input": ["text"],
34
+ "contextWindow": 256000,
19
35
  "maxTokens": 64000,
20
36
  "thinkingLevelMap": {
21
37
  "minimal": null,
@@ -24,11 +40,6 @@
24
40
  "high": null,
25
41
  "xhigh": null,
26
42
  "max": "max"
27
- },
28
- "compat": {
29
- "supportsDeveloperRole": false,
30
- "requiresReasoningContentOnAssistantMessages": true,
31
- "thinkingFormat": "deepseek"
32
43
  }
33
44
  },
34
45
  {
@@ -133,9 +144,21 @@
133
144
  "supportsReasoningEffort": true
134
145
  }
135
146
  },
147
+ {
148
+ "id": "Qwen3-VL",
149
+ "name": "Qwen3 VL (Vision)",
150
+ "reasoning": false,
151
+ "input": ["text", "image"],
152
+ "contextWindow": 256000,
153
+ "maxTokens": 8192,
154
+ "compat": {
155
+ "supportsDeveloperRole": false,
156
+ "supportsReasoningEffort": false
157
+ }
158
+ },
136
159
  {
137
160
  "id": "gemma-4",
138
- "name": "Gemma 4 31B (Vision)",
161
+ "name": "Gemma 4 (Vision)",
139
162
  "reasoning": false,
140
163
  "input": ["text", "image"],
141
164
  "contextWindow": 256000,
@@ -9,7 +9,7 @@
9
9
  "keepRecentTokens": 32000,
10
10
  "reserveTokens": 64000
11
11
  },
12
- "defaultModel": "deepseek-v4-flash",
12
+ "defaultModel": "auto-premium",
13
13
  "defaultProvider": "tokenin",
14
14
  "defaultThinkingLevel": "max",
15
15
  "doubleEscapeAction": "tree",
@@ -19,7 +19,9 @@
19
19
  "followUpMode": "one-at-a-time",
20
20
  "hideThinkingBlock": false,
21
21
  "images": {
22
- "autoResize": true
22
+ "autoResize": true,
23
+ "imageCaptionModel": "tokenin/gemma-4",
24
+ "imageCaptionContextTokens": 16384
23
25
  },
24
26
  "packages": [
25
27
  "git:github.com/MasuRii/pi-tool-display",
@@ -42,22 +44,22 @@
42
44
  "subagents": {
43
45
  "agentOverrides": {
44
46
  "architect": {
45
- "model": "tokenin/deepseek-v4-pro:max"
47
+ "model": "tokenin/auto-premium:max"
46
48
  },
47
49
  "builder": {
48
- "model": "tokenin/deepseek-v4-flash:max"
50
+ "model": "tokenin/auto-premium:max"
49
51
  },
50
52
  "commentator": {
51
- "model": "tokenin/deepseek-v4-flash:max"
53
+ "model": "tokenin/auto-premium:max"
52
54
  },
53
55
  "explorer": {
54
- "model": "tokenin/deepseek-v4-flash:max"
56
+ "model": "tokenin/auto:max"
55
57
  },
56
58
  "recapper": {
57
- "model": "tokenin/deepseek-v4-flash:max"
59
+ "model": "tokenin/auto:max"
58
60
  },
59
61
  "researcher": {
60
- "model": "tokenin/deepseek-v4-flash:max"
62
+ "model": "tokenin/auto:max"
61
63
  }
62
64
  }
63
65
  },
@@ -5,6 +5,12 @@
5
5
  "mode": "prepend",
6
6
  "prompt": "text: You are a helpful software engineer assistant.\n\ndescription: Bootstrap with shell/read, then expose the full Standard tool catalog after the first durable tool call.\n\nwhen you thought, start with `we need...`",
7
7
  "enabled": true
8
+ },
9
+ {
10
+ "match": ["auto"],
11
+ "mode": "prepend",
12
+ "prompt": "text: You are a helpful software engineer assistant.\n\ndescription: Bootstrap with shell/read, then expose the full Standard tool catalog after the first durable tool call.\n\nwhen you thought, start with `we need...`",
13
+ "enabled": true
8
14
  }
9
15
  ]
10
16
  }
@@ -22,7 +22,8 @@
22
22
  "./pi-subagents",
23
23
  "./pi-web-agent",
24
24
  "./web-agent-onboarding.ts",
25
- "./pi-powerline-footer"
25
+ "./pi-powerline-footer",
26
+ "./custom-provider-ollama"
26
27
  ]
27
28
  }
28
29
  }
@@ -95,9 +95,9 @@ For implementation work, the recommended loop is `clarify → scout → worker
95
95
 
96
96
  Foreground runs stream progress in the conversation. Background runs keep working after control returns to you.
97
97
 
98
- In the TUI, a persistent FleetView below the editor keeps active work visible. `/subagents-fleet` opens a live inspector where you can browse children, read transcripts, steer a running child, or stop a run. You can also just ask: "Show me the current async runs."
98
+ Use `subagent({ action: "status" })` to inspect active async runs, `view: "transcript"` to read recent child output, and `steer` or `stop` to control a running run. You can also ask: "Show me the current async runs."
99
99
 
100
- Details, keybindings, and the machine-readable run artifacts are in [Observability](https://github.com/nicobailon/pi-subagents/blob/main/docs/observability.md).
100
+ Details and machine-readable run artifacts are in [Observability](https://github.com/nicobailon/pi-subagents/blob/main/docs/observability.md).
101
101
 
102
102
  For bounded orchestration, `maxSubagentSpawnsPerRun` limits cumulative logical children in one run tree. It defaults to 64 and stays separate from active concurrency and the session-wide cumulative spawn budget. See [Configuration](https://github.com/nicobailon/pi-subagents/blob/main/docs/configuration.md#maxsubagentspawnsperrun).
103
103
 
@@ -122,7 +122,7 @@ The full reference lives in `docs/`:
122
122
  | [Workflows](https://github.com/nicobailon/pi-subagents/blob/main/docs/workflows.md) | Orchestration patterns, prompt shortcuts, scripted workflows, worktree isolation, child-to-parent coordination, the recursion guard. |
123
123
  | [Watchdog](https://github.com/nicobailon/pi-subagents/blob/main/docs/watchdog.md) | The opt-in adversarial change reviewer, scope monitoring, LSP checks, and child tool permissions. |
124
124
  | [Tool reference](https://github.com/nicobailon/pi-subagents/blob/main/docs/tool-reference.md) | Every `subagent` parameter, management actions, status/control actions, acceptance gates, external CLI runners. |
125
- | [Observability](https://github.com/nicobailon/pi-subagents/blob/main/docs/observability.md) | FleetView, the fleet inspector, lifecycle artifacts, events, logs, session sharing. |
126
- | [Missions and schedules](https://github.com/nicobailon/pi-subagents/blob/main/docs/missions.md) | Durable mission records, delivery receipts, timed and recurring runs. |
125
+ | [Observability](https://github.com/nicobailon/pi-subagents/blob/main/docs/observability.md) | Run status, transcripts, lifecycle artifacts, events, logs, and session sharing. |
126
+ | [Missions](https://github.com/nicobailon/pi-subagents/blob/main/docs/missions.md) | Durable mission records and delivery receipts. |
127
127
  | [Configuration](https://github.com/nicobailon/pi-subagents/blob/main/docs/configuration.md) | Every `config.json` key and environment variable. |
128
128
  | [Extension API](https://github.com/nicobailon/pi-subagents/blob/main/docs/extension-api.md) | The RPC, delegation API, preflight, capability ceilings, background-work providers, Herdr integration. |
@@ -42,7 +42,7 @@ Defaults to `false`. The default registered model-facing tool schema and descrip
42
42
  { "inlineToolDisplay": "summary" }
43
43
  ```
44
44
 
45
- Controls the `subagent` tool result shown inline in chat. The default, `"rich"`, shows live child activity and expands to detailed output. `"summary"` keeps the inline result at one stable row for running, completed, failed, stopped, and paused runs; it does not animate, show elapsed time, preview child output, or change when Selesai's expand key is pressed. FleetView remains available for live progress and detailed inspection.
45
+ Controls the `subagent` tool result shown inline in chat. The default, `"rich"`, shows live child activity and expands to detailed output. `"summary"` keeps the inline result at one stable row for running, completed, failed, stopped, and paused runs; it does not animate, show elapsed time, preview child output, or change when Selesai's expand key is pressed. Live run status remains available through the status action.
46
46
 
47
47
  ## `mainWindowRenderer`
48
48
 
@@ -55,7 +55,7 @@ Controls the `subagent` tool result shown inline in chat. The default, `"rich"`,
55
55
  }
56
56
  ```
57
57
 
58
- Controls only the main chat `subagent` call/result renderer. It does not change child execution, orchestration, FleetView, artifacts, transcripts, or model-facing content.
58
+ Controls only the main chat `subagent` call/result renderer. It does not change child execution, orchestration, run status, artifacts, transcripts, or model-facing content.
59
59
 
60
60
  `horizontalSpacing` is an integer from `0` to `4`. The default preserves current spacing. Set it to `0` to remove the extra spaces before compact result details and between parts of the call row.
61
61
 
@@ -107,48 +107,13 @@ Set `enabled` to `false` (or remove the block) as a kill switch. In that state,
107
107
 
108
108
  WorkflowScript calls use background execution when the request omits `async`. Set `asyncByDefault` to `false` to restore foreground-by-default behavior for tool launches that still use the internal single-run primitive. Callers can still force foreground with `async: false` unless `forceTopLevelAsync` is enabled.
109
109
 
110
- ## `fleetView`
111
-
112
- ```json
113
- { "fleetView": false }
114
- ```
115
-
116
- Controls the persistent, navigable FleetView. The default is `true`. Set it to `false` to hide FleetView without disabling status tracking, completion notifications, `/subagents-fleet`, or lifecycle events.
117
-
118
- ## `fleetViewPlacement`
119
-
120
- ```json
121
- { "fleetViewPlacement": "aboveEditor" }
122
- ```
123
-
124
- Places the persistent FleetView either `"belowEditor"` or `"aboveEditor"`. The default is `"belowEditor"`; invalid values fall back to `"belowEditor"`.
125
-
126
- ## `fleetKeybindings`
127
-
128
- ```json
129
- {
130
- "fleetKeybindings": {
131
- "pageUp": ["u"],
132
- "pageDown": ["d"],
133
- "selectFirst": ["g"],
134
- "selectLast": ["G"]
135
- }
136
- }
137
- ```
138
-
139
- Customizes only the full Fleet inspector opened by `/subagents-fleet` or FleetView inspection. It does not change Selesai's global keybindings or the compact persistent FleetView.
140
-
141
- Each action accepts a non-empty array of key strings. Configured actions replace their defaults. Unset actions keep the defaults: `selectUp` is `up`/`k`, `selectDown` is `down`/`j`, `scrollUp` is `K`, `scrollDown` is `J`, `pageUp` is `pageUp`, `pageDown` is `pageDown`, `selectFirst` is `home`, `selectLast` is `end`, `toggleTools` is `x`/`X`/`ctrl+o`, `refresh` is `r`/`R`, `steer` is `s`, `stop` is `D`, `inspect` is `H`, and `close` is `escape`/`ctrl+c`/`q`.
142
-
143
- Prompt modes keep their fixed keys. For example, `Esc` still cancels steer text or stop confirmation even when the Fleet-level close binding is changed.
144
-
145
110
  ## `asyncWidget`
146
111
 
147
112
  ```json
148
113
  { "asyncWidget": true }
149
114
  ```
150
115
 
151
- Controls the under-editor widget for active background runs. It defaults to `true`, including when FleetView is enabled, so active work remains visible after reload. Set it to `false` to hide this widget while keeping FleetView available.
116
+ Controls the under-editor widget for active background runs. It defaults to `true`, including when run status is enabled, so active work remains visible after reload. Set it to `false` to hide this widget while keeping run status available.
152
117
 
153
118
  ## `waitTool`
154
119
 
@@ -236,22 +201,6 @@ This limit bounds current top-level async load. It is separate from cumulative `
236
201
 
237
202
  `subagent({ action: "status" })`, fleet status, and `subagent({ action: "doctor" })` expose used, effective limit, and remaining active capacity. Static chains and parallel calls fail before creating run artifacts or starting partial work when their declared capacity cannot fit. Later retries or unbounded dynamic work are not guaranteed by that preflight.
238
203
 
239
- ## `scheduledRuns`
240
-
241
- ```json
242
- { "scheduledRuns": { "enabled": false, "maxPending": 20 } }
243
- ```
244
-
245
- Durable schedules are enabled by default and stored per project under `.pi-subagents/schedules/<id>/`. See [missions.md](missions.md#schedules) for usage.
246
-
247
- Set `storeRoot` to keep durable schedules outside project repositories. It must be an absolute path or a `~/` path, which expands from the user home directory. Each project is stored under a hash of its resolved working directory, so projects do not share schedules.
248
-
249
- ```json
250
- { "scheduledRuns": { "storeRoot": "~/.local/share/pi-subagents/schedules" } }
251
- ```
252
-
253
- When `storeRoot` is omitted, schedules remain at `<cwd>/.pi-subagents/schedules`.
254
-
255
204
  ## `parallel`
256
205
 
257
206
  ```json
@@ -40,23 +40,14 @@ Capability advertisements on `ping`:
40
40
  - `processTerminalProof` — the process-terminal proof status (see [observability.md](observability.md#process-terminal-proof)).
41
41
  - `nonRecoveringSteer` — RPC steering never pauses-and-revives.
42
42
  - `resume` — the revival seam described above.
43
- - `fleetStatus: { version: 1 }` — successful `status` replies additionally include `data.fleet`.
44
43
 
45
44
  Structured delegation progress updates carry `runId` as soon as foreground execution allocates it, so a caller can retain the package-owned revival target even if its own tool turn is interrupted before the terminal response. Foreground `details.results[]` rows also include a numeric `index` that is unique within the run and stable across partial progress snapshots and the final result; use `(runId, index)` instead of row position to correlate single, counted parallel, and chain children.
46
45
 
47
- ### Fleet status DTO
48
-
49
- When `ping.capabilities.fleetStatus` is `{ version: 1 }`, successful `status` replies include `data.fleet`: `{ version: 1, entries, totalActive, omitted }`.
50
-
51
- Entries are bounded, current-session public display records with an opaque reconciliation `key`, resolved `agent`, optional `role`, `model`, `effort`, caller-facing `goal`, safe `startedAt`, and `{ input, output, total }` tokens. `totalActive` and `omitted` preserve overflow information beyond the bounded entry window.
52
-
53
- The DTO intentionally never exposes run, async, or tool IDs. Clients must ignore unknown fields and fall back to status text when the capability is absent.
54
-
55
46
  ### Scope
56
47
 
57
48
  `pi.events` is in-process only. It does not reach separate Selesai processes or child subagents; use the file lifecycle artifacts or `pi-intercom` for cross-process coordination.
58
49
 
59
- ## External jobs in FleetView
50
+ ## External jobs in run status
60
51
 
61
52
  Use `pi-subagents/external-runs` to publish display-only current-session jobs owned by another extension:
62
53
 
@@ -88,9 +79,9 @@ updateExternalRun(ctx.sessionManager.getSessionId(), "dependency-review", {
88
79
  unregisterExternalRun(ctx.sessionManager.getSessionId(), "dependency-review");
89
80
  ```
90
81
 
91
- The API validates and caches bounded display fields when the caller registers or updates a job. FleetView reads that cache only. It does not poll caller code. `snapshotExternalRuns(sessionId)` and `listExternalRuns(sessionId)` return bounded current-session snapshots. By default, malformed cached records throw with the validation error. Display-only Fleet callers can pass `{ ignoreMalformed: true, onMalformedRecord }` to remove bad records and keep rendering with a programmatic diagnostic.
82
+ The API validates and caches bounded display fields when the caller registers or updates a job. run status reads that cache only. It does not poll caller code. `snapshotExternalRuns(sessionId)` and `listExternalRuns(sessionId)` return bounded current-session snapshots. By default, malformed cached records throw with the validation error. Display-only Fleet callers can pass `{ ignoreMalformed: true, onMalformedRecord }` to remove bad records and keep rendering with a programmatic diagnostic.
92
83
 
93
- External jobs are observational. The caller owns execution, persistence, cancellation, and result delivery. FleetView does not expose stop, steer, resume, cancel, or Herdr controls for them. Supplied report and transcript paths are shown as bounded text only; FleetView does not read arbitrary external paths.
84
+ External jobs are observational. The caller owns execution, persistence, cancellation, and result delivery. run status does not expose stop, steer, resume, cancel, or Herdr controls for them. Supplied report and transcript paths are shown as bounded text only; run status does not read arbitrary external paths.
94
85
 
95
86
  ## Launch contract preflight
96
87
 
@@ -233,8 +224,6 @@ Semantics:
233
224
 
234
225
  `denyExtensions` suppresses ambient, configured, and MCP provider extensions while retaining the package runtime needed for child protocol enforcement. This is a same-process policy boundary, not a sandbox against malicious code already running in the parent process.
235
226
 
236
- Schedules created while a ceiling is active are rejected until durable schedule persistence is available; unrestricted schedules remain subject to any policy active when they fire. Public status exposes bounded audit counts and sources, never full extension paths.
237
-
238
227
  ## Background-work provider API
239
228
 
240
229
  Other Selesai extensions can make their current-session jobs visible to `subagent_wait` through the process-local provider contract:
@@ -292,7 +281,7 @@ subagent({ action: "inspector.close", id: "<run-id>", index: 0 })
292
281
 
293
282
  The inspector is a raw dashboard pane, not the child process and not a literal attach. It reads lifecycle/status/output/mission artifacts and sends `steer` or `stop` through pi-subagents' existing control inbox. Closing it never stops the run.
294
283
 
295
- Herdr remains optional. Ordinary launches stay headless, and missing/older Herdr versions affect only Herdr-specific inspector and project-pane actions. FleetView opens the selected active async child with `H`. Use `focus` only with `inspector.open`; Herdr 0.7.5 cannot focus an arbitrary existing raw pane id.
284
+ Herdr remains optional. Ordinary launches stay headless, and missing/older Herdr versions affect only Herdr-specific inspector and project-pane actions. run status opens the selected active async child with `H`. Use `focus` only with `inspector.open`; Herdr 0.7.5 cannot focus an arbitrary existing raw pane id.
296
285
 
297
286
  ### Project panes
298
287
 
@@ -1,6 +1,6 @@
1
- # Missions and schedules
1
+ # Missions
2
2
 
3
- Durable records for delegated work: missions wrap runs so you can recover them later, and schedules launch work on a timer.
3
+ Durable records for delegated work: missions wrap runs so you can recover them later.
4
4
 
5
5
  ## Missions
6
6
 
@@ -82,40 +82,3 @@ Keep same-project tasks on ordinary subagents. Use an explicit `cwd` for small b
82
82
  For substantial or long-running work in another project, open a project-owned Herdr pane with `project.open` and give that project Selesai session a narrow mission/result contract (see [extension-api.md](extension-api.md#herdr-integration)). The project pane owns its own subagents; do not model it as ordinary child nesting or expect existing headless runs to move into the pane.
83
83
 
84
84
  Mission storage configuration (`missions.directory`, `retainTerminal`, `globalIndex`) is in [configuration.md](configuration.md#missions).
85
-
86
- ## Schedules
87
-
88
- Durable schedules are enabled by default and stored per project under `.pi-subagents/schedules/<id>/`.
89
-
90
- Create a one-shot schedule:
91
-
92
- ```ts
93
- subagent({
94
- action: "schedule.create",
95
- id: "evening-review",
96
- name: "Evening review",
97
- at: "+30m",
98
- workflowScript: `return runs.run("main", { agent: "reviewer", task: "Review the current diff." })`
99
- })
100
- ```
101
-
102
- Create a fixed recurring workflow:
103
-
104
- ```ts
105
- subagent({ action: "schedule.create", id: "backlog", every: "6h", catchUp: "latest", workflowScript: "..." })
106
- ```
107
-
108
- Fixed intervals support `m`, `h`, `d`, and `w` units and advance from the planned time without completion drift.
109
-
110
- Manage schedules with `schedule.list`, `schedule.show`, `schedule.history`, `schedule.pause`, `schedule.resume`, `schedule.run`, `schedule.run-due`, and `schedule.delete`.
111
-
112
- Behavior:
113
-
114
- - Runs always launch async with fresh context and disable automatic mission creation; mission attachment is deferred from this first slice.
115
- - Definitions, bounded history, append-only events, and per-run receipts are stored with mode `0600`.
116
- - `overlap` is currently fixed to `skip`; `catchUp` supports `latest` (default) and `none`.
117
- - `schedule.run-due` lets an external launcher start due project work without making `pi-subagents` a daemon.
118
- - Calendar recurrence, cron, queue/replace overlap, and the schedule TUI inspector are intentionally deferred to the next slice.
119
- - The old `schedule`, `schedule-list`, `schedule-status`, and `schedule-cancel` actions were removed in a hard cutover.
120
-
121
- Disable or bound schedules with the `scheduledRuns` config key in [configuration.md](configuration.md#scheduledruns).
@@ -35,49 +35,9 @@ async subagent worker · background
35
35
 
36
36
  To inspect one background child in text, use `subagent({ action: "status", id: "...", view: "transcript" })`; add `index` for a specific child in a parallel or chain run.
37
37
 
38
- ## FleetView
38
+ ## Run status
39
39
 
40
- In the TUI, a persistent FleetView below the editor keeps active work visible as a compact summary. Set `fleetViewPlacement` to `"aboveEditor"` to move it above the editor.
41
-
42
- ```text
43
- 2 active agents · ↓ 4.2k tokens · ↓/← to inspect
44
- ```
45
-
46
- After you expand it:
47
-
48
- ```text
49
- ↑↓/jk select · enter inspect · esc back
50
-
51
- > main
52
- scout · running 1m 12s · ↓ 2.8k tokens
53
- reviewer · running 38s · ↓ 1.4k tokens
54
- ```
55
-
56
- When the focused editor is empty, press `↓` or `←` to expand the summary into `main` plus active children with agent name, state, elapsed time, and token totals. Then use `↑`/`↓` or `j`/`k` to select a child and `Enter` to inspect it. Printable navigation keys are never intercepted before activation.
57
-
58
- FleetView replaces the legacy above-editor async widget by default. Successful background completions stay quiet so inactive Selesai tabs are not marked unread, while failed or paused completions still notify the originating session. Parallel runs show every active child independently. Chains with parallel groups keep their grouped shape in progress and results, so failed or paused agents stay visible next to completed ones. When a child is explicitly allowed to fan out with `tools: subagent`, its nested runs appear under that parent child in the main status tree instead of being hidden inside the child process.
59
-
60
- ## The fleet inspector
61
-
62
- `/subagents-fleet` opens the live fleet inspector with current-session foreground work, recent async children, structured Markdown/tool transcripts, and completed output/session paths.
63
-
64
- Default keys:
65
-
66
- - `↑`/`↓` or `j`/`k` — select a child
67
- - `Shift+K`/`Shift+J` — scroll one line
68
- - `PgUp`/`PgDn` — scroll one page
69
- - `x`/`Ctrl+O` — toggle tool details
70
- - `r` — refresh
71
- - `Esc` — close
72
- - `s` — compose an acknowledged message to a selected live async child; Tab cycles `steer`, `follow_up`, and `auto`
73
- - `D` — stop a selected child's top-level async run after confirmation
74
- - `H` — open the selected active async child in a Herdr inspector pane (Herdr 0.7.5+)
75
-
76
- Set `fleetKeybindings` in the extension config to replace inspector-level keys when a terminal intercepts keys such as `PgUp`, `PgDn`, `Home`, or `End`. Prompt modes keep fixed keys such as `Esc`, `Enter`, `Tab`, and stop-confirmation `Y`/`N`.
77
-
78
- `Ctrl+Alt+F` opens the same inspector even while a foreground turn is active and slash input is queued.
79
-
80
- Without a TUI, `/subagents-fleet` retains the textual `subagent({ action: "status", view: "fleet" })` fallback, and mutations use explicit commands: run `/subagents-stop` and pick from the selector, or use `/subagents-stop <run-id>` / `subagent({ action: "stop", id: "..." })` when you already know the id.
40
+ Use `subagent({ action: "status" })` for current run state and lifecycle details. Use `subagent({ action: "status", id: "...", view: "transcript" })` for a specific child transcript. Stop runs explicitly with `subagent({ action: "stop", id: "..." })`.
81
41
 
82
42
  Use `/subagents-detach [run-id]` only for an active foreground single-subagent run you want to leave running without terminating; the eventual result remains available through status/wait.
83
43
 
@@ -29,7 +29,7 @@ Parameters and actions for the `subagent` tool. These are what the LLM passes wh
29
29
  | Param | Type | Default | Description |
30
30
  |-------|------|---------|-------------|
31
31
  | `agent` | string | - | Agent target for management actions. Workflow child agents are set inside `runs.run` or `runs.all`. |
32
- | `action` | string | - | Agent management (including `guide`, `children.list`, and `refine`/`refine.show`/`refine.rollback`), mission (`mission.create/list/show/update/resolve-decision/attach-run/close`), Herdr inspector (`inspector.open/status/close`), status/control, schedule, watchdog, or doctor action. |
32
+ | `action` | string | - | Agent management (including `guide`, `children.list`, and `refine`/`refine.show`/`refine.rollback`), mission (`mission.create/list/show/update/resolve-decision/attach-run/close`), Herdr inspector (`inspector.open/status/close`), status/control, watchdog, or doctor action. |
33
33
  | `topic` | `overview \| workflows \| agents \| missions \| observability \| tool-reference \| configuration \| models \| watchdog \| extension-api` | `overview` | Packaged guide topic for `action: "guide"`. |
34
34
  | `chainName` | string | - | Chain name for management actions. |
35
35
  | `config` | object/string | - | Agent or existing durable chain config for management create/update. |
@@ -235,7 +235,6 @@ subagent({ action: "doctor" })
235
235
  - Direct id calls execute immediately.
236
236
  - `/subagents-stop` without an id opens a selector with confirmation when a TUI is available. Use `↑`/`↓` or `j`/`k` to move through the selector.
237
237
  - In non-TUI contexts the slash command prints exact `subagent({ action: "stop", id })` and `/subagents-stop <id>` commands.
238
- - Inactive schedules can appear in the selector, but they are labeled as schedules and route through `schedule.pause`, not `stop`.
239
238
 
240
239
  ### steer
241
240
 
@@ -14,52 +14,6 @@ It reviews repo edits, not ordinary conversation:
14
14
  - Generated `.pi-subagents/` or `tmp/` artifacts do not trigger review.
15
15
  - In orchestrated runs, each writing child can review its own edited worktree, and the parent can still review the aggregate repo diff after child changes are applied.
16
16
 
17
- ## Choosing a model
18
-
19
- Because the watchdog is an adversarial change reviewer, it should usually use a strong complementary model rather than a cheap/light one.
20
-
21
- Ask pi-subagents for the current strong pairing:
22
-
23
- ```text
24
- /subagents-watchdog recommend-model
25
- /subagents-watchdog session model recommended
26
- /subagents-watchdog model recommended
27
- ```
28
-
29
- The current recommendation policy is Opus 4.8 with thinking high or GPT 5.5 with thinking high. If your main session is using one, the watchdog should use the other when that model is authenticated.
30
-
31
- - `session model recommended` changes only the current Selesai session.
32
- - `model recommended` saves the recommendation to `~/.selesai/agent/settings.json`. It does not turn the watchdog on; enable it separately with `/subagents-watchdog on`.
33
-
34
- Or set the model explicitly:
35
-
36
- ```text
37
- /subagents-watchdog model anthropic/claude-opus-4-8:high
38
- /subagents-watchdog model openai-codex/gpt-5.5:high
39
- /subagents-watchdog model inherit
40
- /subagents-watchdog check
41
- ```
42
-
43
- In settings files, use `subagents.watchdog.main.model` and `subagents.watchdog.main.thinking` for the main watchdog:
44
-
45
- - If `main.model` is omitted, the main watchdog uses the current session model and thinking level.
46
- - If `main.model` is set without a thinking suffix or `main.thinking`, it runs with thinking off. Prefer `:high` or `"thinking": "high"` for the strong-watchdog pairing.
47
-
48
- Default strong-reviewer profile:
49
-
50
- ```json
51
- {
52
- "subagents": {
53
- "watchdog": {
54
- "enabled": true,
55
- "main": {
56
- "model": "anthropic/claude-opus-4-8",
57
- "thinking": "high"
58
- }
59
- }
60
- }
61
- }
62
- ```
63
17
 
64
18
  ## Scope monitoring
65
19
 
@@ -109,17 +63,6 @@ For child subagent watchdogs, use `subagents.watchdog.children.model` as the def
109
63
 
110
64
  Child watchdogs are opt-in and follow the same edit-gated rule: read-only children do not trigger watchdog reviews, while writer children are reviewed at their own `agent_end` if their worktree changed.
111
65
 
112
- ## Agent-driven configuration
113
-
114
- Agents can configure the same values through the tool when you ask them to set up the watchdog:
115
-
116
- ```ts
117
- subagent({ action: "watchdog.recommend-model" })
118
- subagent({ action: "watchdog.configure", model: "recommended", scope: "session" })
119
- subagent({ action: "watchdog.configure", model: "recommended", scope: "project" })
120
- ```
121
-
122
- Persistent scopes (`user` or `project`) should only be used when you ask for a lasting default. Otherwise the agent should use `scope: "session"`.
123
66
 
124
67
  ## Native child tool permissions
125
68