@code-yeongyu/senpi 2026.7.17 → 2026.7.20-2

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 (738) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +5 -2
  3. package/dist/cli/neo/build-argv.d.ts.map +1 -1
  4. package/dist/cli/neo/build-argv.js +2 -0
  5. package/dist/cli/neo/build-argv.js.map +1 -1
  6. package/dist/core/agent-session-services.d.ts.map +1 -1
  7. package/dist/core/agent-session-services.js +11 -4
  8. package/dist/core/agent-session-services.js.map +1 -1
  9. package/dist/core/agent-session.d.ts +37 -0
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +395 -73
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/compaction/compaction.d.ts +2 -2
  14. package/dist/core/compaction/compaction.d.ts.map +1 -1
  15. package/dist/core/compaction/compaction.js +59 -15
  16. package/dist/core/compaction/compaction.js.map +1 -1
  17. package/dist/core/dynamic-prompt/build.d.ts +7 -0
  18. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  19. package/dist/core/dynamic-prompt/build.js +5 -0
  20. package/dist/core/dynamic-prompt/build.js.map +1 -1
  21. package/dist/core/dynamic-prompt/workstation.d.ts +35 -0
  22. package/dist/core/dynamic-prompt/workstation.d.ts.map +1 -0
  23. package/dist/core/dynamic-prompt/workstation.js +81 -0
  24. package/dist/core/dynamic-prompt/workstation.js.map +1 -0
  25. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  26. package/dist/core/extensions/builtin/compaction/index.js +68 -10
  27. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  28. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.d.ts +1 -0
  29. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.d.ts.map +1 -1
  30. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.js +20 -2
  31. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.js.map +1 -1
  32. package/dist/core/extensions/builtin/compaction/speculative.d.ts +7 -1
  33. package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
  34. package/dist/core/extensions/builtin/compaction/speculative.js +29 -11
  35. package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
  36. package/dist/core/extensions/builtin/compaction/todo-bridge.d.ts +9 -7
  37. package/dist/core/extensions/builtin/compaction/todo-bridge.d.ts.map +1 -1
  38. package/dist/core/extensions/builtin/compaction/todo-bridge.js +34 -9
  39. package/dist/core/extensions/builtin/compaction/todo-bridge.js.map +1 -1
  40. package/dist/core/extensions/builtin/goal/command-registration.d.ts +2 -2
  41. package/dist/core/extensions/builtin/goal/command-registration.d.ts.map +1 -1
  42. package/dist/core/extensions/builtin/goal/command-registration.js +3 -4
  43. package/dist/core/extensions/builtin/goal/command-registration.js.map +1 -1
  44. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  45. package/dist/core/extensions/builtin/goal/index.js +11 -27
  46. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  47. package/dist/core/extensions/builtin/goal/tool-registration.d.ts +2 -2
  48. package/dist/core/extensions/builtin/goal/tool-registration.d.ts.map +1 -1
  49. package/dist/core/extensions/builtin/goal/tool-registration.js +2 -3
  50. package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
  51. package/dist/core/extensions/builtin/goal/turn-usage.d.ts +20 -0
  52. package/dist/core/extensions/builtin/goal/turn-usage.d.ts.map +1 -0
  53. package/dist/core/extensions/builtin/goal/turn-usage.js +61 -0
  54. package/dist/core/extensions/builtin/goal/turn-usage.js.map +1 -0
  55. package/dist/core/extensions/builtin/gpt-apply-patch/constants.d.ts +1 -0
  56. package/dist/core/extensions/builtin/gpt-apply-patch/constants.d.ts.map +1 -1
  57. package/dist/core/extensions/builtin/gpt-apply-patch/constants.js +5 -1
  58. package/dist/core/extensions/builtin/gpt-apply-patch/constants.js.map +1 -1
  59. package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts +2 -1
  60. package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts.map +1 -1
  61. package/dist/core/extensions/builtin/gpt-apply-patch/extension.js +48 -29
  62. package/dist/core/extensions/builtin/gpt-apply-patch/extension.js.map +1 -1
  63. package/dist/core/extensions/builtin/gpt-apply-patch/index.d.ts +2 -2
  64. package/dist/core/extensions/builtin/gpt-apply-patch/index.d.ts.map +1 -1
  65. package/dist/core/extensions/builtin/gpt-apply-patch/index.js +2 -2
  66. package/dist/core/extensions/builtin/gpt-apply-patch/index.js.map +1 -1
  67. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts +1 -1
  68. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts.map +1 -1
  69. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js +5 -3
  70. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
  71. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts +7 -6
  72. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts.map +1 -1
  73. package/dist/core/extensions/builtin/gpt-apply-patch/types.js.map +1 -1
  74. package/dist/core/extensions/builtin/hooks/matcher.d.ts.map +1 -1
  75. package/dist/core/extensions/builtin/hooks/matcher.js +1 -0
  76. package/dist/core/extensions/builtin/hooks/matcher.js.map +1 -1
  77. package/dist/core/extensions/builtin/index.d.ts.map +1 -1
  78. package/dist/core/extensions/builtin/index.js +4 -0
  79. package/dist/core/extensions/builtin/index.js.map +1 -1
  80. package/dist/core/extensions/builtin/mcp/config-schema.d.ts +8 -1
  81. package/dist/core/extensions/builtin/mcp/config-schema.d.ts.map +1 -1
  82. package/dist/core/extensions/builtin/mcp/config-schema.js +23 -0
  83. package/dist/core/extensions/builtin/mcp/config-schema.js.map +1 -1
  84. package/dist/core/extensions/builtin/mcp/config.d.ts +13 -0
  85. package/dist/core/extensions/builtin/mcp/config.d.ts.map +1 -1
  86. package/dist/core/extensions/builtin/mcp/config.js +36 -0
  87. package/dist/core/extensions/builtin/mcp/config.js.map +1 -1
  88. package/dist/core/extensions/builtin/mcp/expose/native-search.d.ts +1 -1
  89. package/dist/core/extensions/builtin/mcp/expose/native-search.d.ts.map +1 -1
  90. package/dist/core/extensions/builtin/mcp/expose/native-search.js +1 -1
  91. package/dist/core/extensions/builtin/mcp/expose/native-search.js.map +1 -1
  92. package/dist/core/extensions/builtin/mcp/expose/policy.js +1 -1
  93. package/dist/core/extensions/builtin/mcp/expose/policy.js.map +1 -1
  94. package/dist/core/extensions/builtin/mcp/expose/status.js +1 -1
  95. package/dist/core/extensions/builtin/mcp/expose/status.js.map +1 -1
  96. package/dist/core/extensions/builtin/mcp/expose/tier-b.d.ts +3 -3
  97. package/dist/core/extensions/builtin/mcp/expose/tier-b.d.ts.map +1 -1
  98. package/dist/core/extensions/builtin/mcp/expose/tier-b.js +10 -10
  99. package/dist/core/extensions/builtin/mcp/expose/tier-b.js.map +1 -1
  100. package/dist/core/extensions/builtin/mcp/expose/tool-search.d.ts +3 -3
  101. package/dist/core/extensions/builtin/mcp/expose/tool-search.d.ts.map +1 -1
  102. package/dist/core/extensions/builtin/mcp/expose/tool-search.js +14 -14
  103. package/dist/core/extensions/builtin/mcp/expose/tool-search.js.map +1 -1
  104. package/dist/core/extensions/builtin/mcp/index.js +5 -5
  105. package/dist/core/extensions/builtin/mcp/index.js.map +1 -1
  106. package/dist/core/extensions/builtin/mcp/service-snapshot.d.ts.map +1 -1
  107. package/dist/core/extensions/builtin/mcp/service-snapshot.js +1 -0
  108. package/dist/core/extensions/builtin/mcp/service-snapshot.js.map +1 -1
  109. package/dist/core/extensions/builtin/mcp/service-types.d.ts +12 -0
  110. package/dist/core/extensions/builtin/mcp/service-types.d.ts.map +1 -1
  111. package/dist/core/extensions/builtin/mcp/service-types.js.map +1 -1
  112. package/dist/core/extensions/builtin/mcp/service.d.ts +2 -2
  113. package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
  114. package/dist/core/extensions/builtin/mcp/service.js +4 -3
  115. package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
  116. package/dist/core/extensions/builtin/mcp/status.js +1 -0
  117. package/dist/core/extensions/builtin/mcp/status.js.map +1 -1
  118. package/dist/core/extensions/builtin/model-fallback/index.d.ts +4 -0
  119. package/dist/core/extensions/builtin/model-fallback/index.d.ts.map +1 -0
  120. package/dist/core/extensions/builtin/model-fallback/index.js +55 -0
  121. package/dist/core/extensions/builtin/model-fallback/index.js.map +1 -0
  122. package/dist/core/extensions/builtin/model-fallback/settings.d.ts +6 -0
  123. package/dist/core/extensions/builtin/model-fallback/settings.d.ts.map +1 -0
  124. package/dist/core/extensions/builtin/model-fallback/settings.js +11 -0
  125. package/dist/core/extensions/builtin/model-fallback/settings.js.map +1 -0
  126. package/dist/core/extensions/builtin/model-fallback/ui.d.ts +12 -0
  127. package/dist/core/extensions/builtin/model-fallback/ui.d.ts.map +1 -0
  128. package/dist/core/extensions/builtin/model-fallback/ui.js +72 -0
  129. package/dist/core/extensions/builtin/model-fallback/ui.js.map +1 -0
  130. package/dist/core/extensions/builtin/nested-agents-md/index.d.ts.map +1 -1
  131. package/dist/core/extensions/builtin/nested-agents-md/index.js +4 -1
  132. package/dist/core/extensions/builtin/nested-agents-md/index.js.map +1 -1
  133. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.d.ts.map +1 -1
  134. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js +5 -1
  135. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js.map +1 -1
  136. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.d.ts.map +1 -1
  137. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js +5 -1
  138. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js.map +1 -1
  139. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.d.ts.map +1 -1
  140. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js +5 -1
  141. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js.map +1 -1
  142. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.d.ts.map +1 -1
  143. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js +5 -1
  144. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js.map +1 -1
  145. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts.map +1 -1
  146. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js +5 -1
  147. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js.map +1 -1
  148. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.js +2 -2
  149. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.js.map +1 -1
  150. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js +1 -1
  151. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js.map +1 -1
  152. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js +1 -1
  153. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js.map +1 -1
  154. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js +1 -1
  155. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js.map +1 -1
  156. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js +3 -3
  157. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js.map +1 -1
  158. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +3 -3
  159. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  160. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js +1 -1
  161. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js.map +1 -1
  162. package/dist/core/extensions/builtin/prompt-preset/grok-4.5.d.ts +3 -0
  163. package/dist/core/extensions/builtin/prompt-preset/grok-4.5.d.ts.map +1 -0
  164. package/dist/core/extensions/builtin/prompt-preset/grok-4.5.js +80 -0
  165. package/dist/core/extensions/builtin/prompt-preset/grok-4.5.js.map +1 -0
  166. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.js +1 -1
  167. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.js.map +1 -1
  168. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.js +1 -1
  169. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.js.map +1 -1
  170. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.d.ts.map +1 -1
  171. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js +5 -7
  172. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js.map +1 -1
  173. package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
  174. package/dist/core/extensions/builtin/prompt-preset/presets.js +14 -0
  175. package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
  176. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
  177. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
  178. package/dist/core/extensions/builtin/prompt-preset/settings.js +1 -0
  179. package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
  180. package/dist/core/extensions/builtin/rules/index.d.ts.map +1 -1
  181. package/dist/core/extensions/builtin/rules/index.js +4 -1
  182. package/dist/core/extensions/builtin/rules/index.js.map +1 -1
  183. package/dist/core/extensions/builtin/terminal/shared.d.ts +7 -0
  184. package/dist/core/extensions/builtin/terminal/shared.d.ts.map +1 -1
  185. package/dist/core/extensions/builtin/terminal/shared.js +7 -0
  186. package/dist/core/extensions/builtin/terminal/shared.js.map +1 -1
  187. package/dist/core/extensions/builtin/terminal/tools/bash.d.ts.map +1 -1
  188. package/dist/core/extensions/builtin/terminal/tools/bash.js +68 -6
  189. package/dist/core/extensions/builtin/terminal/tools/bash.js.map +1 -1
  190. package/dist/core/extensions/builtin/todotools/commands.d.ts +18 -0
  191. package/dist/core/extensions/builtin/todotools/commands.d.ts.map +1 -0
  192. package/dist/core/extensions/builtin/todotools/commands.js +395 -0
  193. package/dist/core/extensions/builtin/todotools/commands.js.map +1 -0
  194. package/dist/core/extensions/builtin/todotools/index.d.ts +4 -1
  195. package/dist/core/extensions/builtin/todotools/index.d.ts.map +1 -1
  196. package/dist/core/extensions/builtin/todotools/index.js +17 -14
  197. package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
  198. package/dist/core/extensions/builtin/todotools/markdown.d.ts +13 -0
  199. package/dist/core/extensions/builtin/todotools/markdown.d.ts.map +1 -0
  200. package/dist/core/extensions/builtin/todotools/markdown.js +82 -0
  201. package/dist/core/extensions/builtin/todotools/markdown.js.map +1 -0
  202. package/dist/core/extensions/builtin/todotools/prompt.d.ts +2 -1
  203. package/dist/core/extensions/builtin/todotools/prompt.d.ts.map +1 -1
  204. package/dist/core/extensions/builtin/todotools/prompt.js +50 -153
  205. package/dist/core/extensions/builtin/todotools/prompt.js.map +1 -1
  206. package/dist/core/extensions/builtin/todotools/state.d.ts +67 -14
  207. package/dist/core/extensions/builtin/todotools/state.d.ts.map +1 -1
  208. package/dist/core/extensions/builtin/todotools/state.js +400 -35
  209. package/dist/core/extensions/builtin/todotools/state.js.map +1 -1
  210. package/dist/core/extensions/builtin/todotools/tools/todo.d.ts +22 -0
  211. package/dist/core/extensions/builtin/todotools/tools/todo.d.ts.map +1 -0
  212. package/dist/core/extensions/builtin/todotools/tools/todo.js +229 -0
  213. package/dist/core/extensions/builtin/todotools/tools/todo.js.map +1 -0
  214. package/dist/core/extensions/builtin/video-in/index.d.ts +3 -0
  215. package/dist/core/extensions/builtin/video-in/index.d.ts.map +1 -0
  216. package/dist/core/extensions/builtin/video-in/index.js +111 -0
  217. package/dist/core/extensions/builtin/video-in/index.js.map +1 -0
  218. package/dist/core/extensions/builtin/websearch/index.d.ts.map +1 -1
  219. package/dist/core/extensions/builtin/websearch/index.js +20 -3
  220. package/dist/core/extensions/builtin/websearch/index.js.map +1 -1
  221. package/dist/core/extensions/builtin/websearch/websearch/renderers.d.ts.map +1 -1
  222. package/dist/core/extensions/builtin/websearch/websearch/renderers.js +13 -4
  223. package/dist/core/extensions/builtin/websearch/websearch/renderers.js.map +1 -1
  224. package/dist/core/extensions/builtin/websearch/websearch/search.d.ts +3 -2
  225. package/dist/core/extensions/builtin/websearch/websearch/search.d.ts.map +1 -1
  226. package/dist/core/extensions/builtin/websearch/websearch/search.js +2 -1
  227. package/dist/core/extensions/builtin/websearch/websearch/search.js.map +1 -1
  228. package/dist/core/extensions/builtin/websearch/websearch/tool.d.ts.map +1 -1
  229. package/dist/core/extensions/builtin/websearch/websearch/tool.js +17 -1
  230. package/dist/core/extensions/builtin/websearch/websearch/tool.js.map +1 -1
  231. package/dist/core/extensions/builtin/websearch/websearch/types.d.ts +2 -0
  232. package/dist/core/extensions/builtin/websearch/websearch/types.d.ts.map +1 -1
  233. package/dist/core/extensions/builtin/websearch/websearch/types.js.map +1 -1
  234. package/dist/core/extensions/index.d.ts +1 -0
  235. package/dist/core/extensions/index.d.ts.map +1 -1
  236. package/dist/core/extensions/index.js.map +1 -1
  237. package/dist/core/extensions/loader.d.ts +10 -1
  238. package/dist/core/extensions/loader.d.ts.map +1 -1
  239. package/dist/core/extensions/loader.js +64 -7
  240. package/dist/core/extensions/loader.js.map +1 -1
  241. package/dist/core/extensions/runner.d.ts +6 -2
  242. package/dist/core/extensions/runner.d.ts.map +1 -1
  243. package/dist/core/extensions/runner.js +80 -8
  244. package/dist/core/extensions/runner.js.map +1 -1
  245. package/dist/core/extensions/types.d.ts +116 -18
  246. package/dist/core/extensions/types.d.ts.map +1 -1
  247. package/dist/core/extensions/types.js.map +1 -1
  248. package/dist/core/model-registry.d.ts +5 -1
  249. package/dist/core/model-registry.d.ts.map +1 -1
  250. package/dist/core/model-registry.js +17 -2
  251. package/dist/core/model-registry.js.map +1 -1
  252. package/dist/core/model-runtime.d.ts +12 -1
  253. package/dist/core/model-runtime.d.ts.map +1 -1
  254. package/dist/core/model-runtime.js +51 -9
  255. package/dist/core/model-runtime.js.map +1 -1
  256. package/dist/core/prompt-templates.d.ts +1 -0
  257. package/dist/core/prompt-templates.d.ts.map +1 -1
  258. package/dist/core/prompt-templates.js +4 -4
  259. package/dist/core/prompt-templates.js.map +1 -1
  260. package/dist/core/provider-composer.d.ts +1 -1
  261. package/dist/core/provider-composer.d.ts.map +1 -1
  262. package/dist/core/provider-composer.js +8 -1
  263. package/dist/core/provider-composer.js.map +1 -1
  264. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  265. package/dist/core/remote-catalog-provider.js +16 -3
  266. package/dist/core/remote-catalog-provider.js.map +1 -1
  267. package/dist/core/resource-loader.d.ts +6 -0
  268. package/dist/core/resource-loader.d.ts.map +1 -1
  269. package/dist/core/resource-loader.js +27 -2
  270. package/dist/core/resource-loader.js.map +1 -1
  271. package/dist/core/retry-fallback/chains.d.ts +29 -0
  272. package/dist/core/retry-fallback/chains.d.ts.map +1 -0
  273. package/dist/core/retry-fallback/chains.js +109 -0
  274. package/dist/core/retry-fallback/chains.js.map +1 -0
  275. package/dist/core/retry-fallback/controller.d.ts +77 -0
  276. package/dist/core/retry-fallback/controller.d.ts.map +1 -0
  277. package/dist/core/retry-fallback/controller.js +157 -0
  278. package/dist/core/retry-fallback/controller.js.map +1 -0
  279. package/dist/core/retry-fallback/cooldown.d.ts +21 -0
  280. package/dist/core/retry-fallback/cooldown.d.ts.map +1 -0
  281. package/dist/core/retry-fallback/cooldown.js +49 -0
  282. package/dist/core/retry-fallback/cooldown.js.map +1 -0
  283. package/dist/core/retry-fallback/log.d.ts +10 -0
  284. package/dist/core/retry-fallback/log.d.ts.map +1 -0
  285. package/dist/core/retry-fallback/log.js +128 -0
  286. package/dist/core/retry-fallback/log.js.map +1 -0
  287. package/dist/core/retry-fallback/validate.d.ts +8 -0
  288. package/dist/core/retry-fallback/validate.d.ts.map +1 -0
  289. package/dist/core/retry-fallback/validate.js +63 -0
  290. package/dist/core/retry-fallback/validate.js.map +1 -0
  291. package/dist/core/sdk.d.ts.map +1 -1
  292. package/dist/core/sdk.js +1 -0
  293. package/dist/core/sdk.js.map +1 -1
  294. package/dist/core/session-manager.d.ts +6 -1
  295. package/dist/core/session-manager.d.ts.map +1 -1
  296. package/dist/core/session-manager.js +19 -3
  297. package/dist/core/session-manager.js.map +1 -1
  298. package/dist/core/settings-manager.d.ts +21 -0
  299. package/dist/core/settings-manager.d.ts.map +1 -1
  300. package/dist/core/settings-manager.js +100 -1
  301. package/dist/core/settings-manager.js.map +1 -1
  302. package/dist/core/tools/bash.d.ts.map +1 -1
  303. package/dist/core/tools/bash.js +20 -5
  304. package/dist/core/tools/bash.js.map +1 -1
  305. package/dist/core/tools/read.js +1 -1
  306. package/dist/core/tools/read.js.map +1 -1
  307. package/dist/extensions/index.d.ts +3 -0
  308. package/dist/extensions/index.d.ts.map +1 -0
  309. package/dist/extensions/index.js +3 -0
  310. package/dist/extensions/index.js.map +1 -0
  311. package/dist/extensions/llama/client.d.ts +61 -0
  312. package/dist/extensions/llama/client.d.ts.map +1 -0
  313. package/dist/extensions/llama/client.js +298 -0
  314. package/dist/extensions/llama/client.js.map +1 -0
  315. package/dist/extensions/llama/huggingface.d.ts +23 -0
  316. package/dist/extensions/llama/huggingface.d.ts.map +1 -0
  317. package/dist/extensions/llama/huggingface.js +139 -0
  318. package/dist/extensions/llama/huggingface.js.map +1 -0
  319. package/dist/extensions/llama/index.d.ts +3 -0
  320. package/dist/extensions/llama/index.d.ts.map +1 -0
  321. package/dist/extensions/llama/index.js +208 -0
  322. package/dist/extensions/llama/index.js.map +1 -0
  323. package/dist/extensions/llama/provider.d.ts +10 -0
  324. package/dist/extensions/llama/provider.d.ts.map +1 -0
  325. package/dist/extensions/llama/provider.js +106 -0
  326. package/dist/extensions/llama/provider.js.map +1 -0
  327. package/dist/extensions/llama/ui.d.ts +42 -0
  328. package/dist/extensions/llama/ui.d.ts.map +1 -0
  329. package/dist/extensions/llama/ui.js +400 -0
  330. package/dist/extensions/llama/ui.js.map +1 -0
  331. package/dist/index.d.ts +2 -2
  332. package/dist/index.d.ts.map +1 -1
  333. package/dist/index.js.map +1 -1
  334. package/dist/main.d.ts.map +1 -1
  335. package/dist/main.js +6 -4
  336. package/dist/main.js.map +1 -1
  337. package/dist/modes/interactive/components/assistant-message.d.ts +6 -7
  338. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  339. package/dist/modes/interactive/components/assistant-message.js +154 -114
  340. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  341. package/dist/modes/interactive/components/footer.d.ts +2 -1
  342. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  343. package/dist/modes/interactive/components/footer.js +25 -4
  344. package/dist/modes/interactive/components/footer.js.map +1 -1
  345. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  346. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  347. package/dist/modes/interactive/components/settings-selector.js +20 -0
  348. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  349. package/dist/modes/interactive/interactive-mode.d.ts +7 -0
  350. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  351. package/dist/modes/interactive/interactive-mode.js +165 -13
  352. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  353. package/dist/modes/interactive/streaming-reveal.d.ts +35 -0
  354. package/dist/modes/interactive/streaming-reveal.d.ts.map +1 -0
  355. package/dist/modes/interactive/streaming-reveal.js +268 -0
  356. package/dist/modes/interactive/streaming-reveal.js.map +1 -0
  357. package/dist/modes/interactive/tool-args-reveal.d.ts +20 -0
  358. package/dist/modes/interactive/tool-args-reveal.d.ts.map +1 -0
  359. package/dist/modes/interactive/tool-args-reveal.js +153 -0
  360. package/dist/modes/interactive/tool-args-reveal.js.map +1 -0
  361. package/dist/utils/child-process.d.ts +17 -1
  362. package/dist/utils/child-process.d.ts.map +1 -1
  363. package/dist/utils/child-process.js +41 -1
  364. package/dist/utils/child-process.js.map +1 -1
  365. package/docs/AGENTS.md +70 -0
  366. package/docs/custom-provider.md +28 -0
  367. package/docs/extensions.md +111 -5
  368. package/docs/index.md +1 -0
  369. package/docs/llama-cpp.md +99 -0
  370. package/docs/mcp.md +21 -5
  371. package/docs/neo.md +2 -1
  372. package/docs/prompt-templates.md +1 -0
  373. package/docs/providers.md +7 -0
  374. package/docs/settings.md +35 -0
  375. package/docs/tui.md +41 -26
  376. package/docs/usage.md +1 -0
  377. package/examples/AGENTS.md +3 -0
  378. package/examples/extensions/README.md +1 -1
  379. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +74 -0
  380. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  381. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +59 -19
  382. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/prelude.py +0 -1
  383. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +69 -2
  384. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +6 -0
  385. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  386. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +95 -12
  387. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  388. package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
  389. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +26 -1
  390. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
  391. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
  392. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +24 -2
  393. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
  394. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts +3 -1
  395. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
  396. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +4 -2
  397. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
  398. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +5 -0
  399. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
  400. package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
  401. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  402. package/node_modules/@earendil-works/pi-ai/README.md +1 -1
  403. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  404. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +92 -29
  405. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  406. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +2 -1
  407. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  408. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +25 -1
  409. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  410. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.d.ts.map +1 -1
  411. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js +105 -61
  412. package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -1
  413. package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts +1 -0
  414. package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts.map +1 -1
  415. package/node_modules/@earendil-works/pi-ai/dist/compat.js +1 -0
  416. package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -1
  417. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +15 -0
  418. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  419. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +15 -0
  420. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  421. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
  422. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  423. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  424. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  425. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +4263 -22314
  426. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  427. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +436 -1988
  428. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  429. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +2 -1892
  430. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -1
  431. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.d.ts +10 -80
  432. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.d.ts.map +1 -1
  433. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +2 -57
  434. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js.map +1 -1
  435. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts +43 -267
  436. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.d.ts.map +1 -1
  437. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +2 -252
  438. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js.map +1 -1
  439. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts +184 -883
  440. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  441. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +2 -811
  442. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js.map +1 -1
  443. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts +10 -60
  444. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.d.ts.map +1 -1
  445. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +2 -56
  446. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js.map +1 -1
  447. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts +168 -884
  448. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  449. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +2 -755
  450. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  451. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.d.ts +40 -286
  452. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -1
  453. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +2 -236
  454. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js.map +1 -1
  455. package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -0
  456. package/node_modules/@earendil-works/pi-ai/dist/providers/data/ant-ling.json +1 -0
  457. package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -0
  458. package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -0
  459. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json +1 -0
  460. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -0
  461. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -0
  462. package/node_modules/@earendil-works/pi-ai/dist/providers/data/deepseek.json +1 -0
  463. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -0
  464. package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -0
  465. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json +1 -0
  466. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json +1 -0
  467. package/node_modules/@earendil-works/pi-ai/dist/providers/data/groq.json +1 -0
  468. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -0
  469. package/node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json +1 -0
  470. package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json +1 -0
  471. package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json +1 -0
  472. package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -0
  473. package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai-cn.json +1 -0
  474. package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai.json +1 -0
  475. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -0
  476. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -0
  477. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -0
  478. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -0
  479. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -0
  480. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -0
  481. package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -0
  482. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -0
  483. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -0
  484. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json +1 -0
  485. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json +1 -0
  486. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json +1 -0
  487. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json +1 -0
  488. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -0
  489. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -0
  490. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.d.ts +7 -58
  491. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.d.ts.map +1 -1
  492. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -40
  493. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js.map +1 -1
  494. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts +1 -0
  495. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
  496. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +1 -0
  497. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
  498. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts +49 -362
  499. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.d.ts.map +1 -1
  500. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +2 -292
  501. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js.map +1 -1
  502. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts +85 -760
  503. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.d.ts.map +1 -1
  504. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +2 -538
  505. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -1
  506. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts +31 -189
  507. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts.map +1 -1
  508. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js +2 -179
  509. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js.map +1 -1
  510. package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.d.ts +49 -309
  511. package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.d.ts.map +1 -1
  512. package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js +2 -285
  513. package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js.map +1 -1
  514. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.d.ts +22 -118
  515. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.d.ts.map +1 -1
  516. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +2 -122
  517. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js.map +1 -1
  518. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts +196 -979
  519. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts.map +1 -1
  520. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +2 -884
  521. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js.map +1 -1
  522. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts +13 -122
  523. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts.map +1 -1
  524. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js +2 -98
  525. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js.map +1 -1
  526. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.d.ts +10 -48
  527. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.d.ts.map +1 -1
  528. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +2 -53
  529. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js.map +1 -1
  530. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.d.ts +10 -48
  531. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.d.ts.map +1 -1
  532. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +2 -53
  533. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js.map +1 -1
  534. package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.d.ts +91 -480
  535. package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.d.ts.map +1 -1
  536. package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +2 -512
  537. package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js.map +1 -1
  538. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.d.ts +31 -257
  539. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.d.ts.map +1 -1
  540. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js +2 -185
  541. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js.map +1 -1
  542. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.d.ts +31 -257
  543. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.d.ts.map +1 -1
  544. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js +2 -185
  545. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js.map +1 -1
  546. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts +58 -541
  547. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts.map +1 -1
  548. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +2 -382
  549. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js.map +1 -1
  550. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts +22 -196
  551. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts.map +1 -1
  552. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +2 -139
  553. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js.map +1 -1
  554. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts +184 -954
  555. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts.map +1 -1
  556. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +2 -825
  557. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js.map +1 -1
  558. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts +1 -1
  559. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts.map +1 -1
  560. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
  561. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js.map +1 -1
  562. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts +46 -335
  563. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts.map +1 -1
  564. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +2 -273
  565. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js.map +1 -1
  566. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts +163 -1185
  567. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.d.ts.map +1 -1
  568. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +2 -996
  569. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js.map +1 -1
  570. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +1076 -5750
  571. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  572. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +2 -4910
  573. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  574. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts +49 -579
  575. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts.map +1 -1
  576. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +2 -377
  577. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js.map +1 -1
  578. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +752 -3336
  579. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  580. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +2 -3263
  581. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  582. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.d.ts +10 -65
  583. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.d.ts.map +1 -1
  584. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +2 -57
  585. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js.map +1 -1
  586. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts +10 -63
  587. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  588. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +2 -56
  589. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  590. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts +10 -63
  591. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  592. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +2 -56
  593. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  594. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts +10 -63
  595. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  596. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +2 -56
  597. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  598. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.d.ts +19 -126
  599. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.d.ts.map +1 -1
  600. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +2 -110
  601. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js.map +1 -1
  602. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.d.ts +19 -144
  603. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.d.ts.map +1 -1
  604. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +2 -111
  605. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js.map +1 -1
  606. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.d.ts +19 -144
  607. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.d.ts.map +1 -1
  608. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +2 -111
  609. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js.map +1 -1
  610. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.d.ts.map +1 -1
  611. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js +12 -0
  612. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js.map +1 -1
  613. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts +1 -1
  614. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts.map +1 -1
  615. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js +4 -2
  616. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js.map +1 -1
  617. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts +1 -0
  618. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts.map +1 -1
  619. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js +1 -1
  620. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js.map +1 -1
  621. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts +1 -0
  622. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts.map +1 -1
  623. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.js +1 -1
  624. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/format.js.map +1 -1
  625. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.d.ts +19 -0
  626. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.d.ts.map +1 -0
  627. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.js +8 -0
  628. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.js.map +1 -0
  629. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts +11 -0
  630. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts.map +1 -1
  631. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js +40 -1
  632. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js.map +1 -1
  633. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts +2 -0
  634. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts.map +1 -1
  635. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.js +7 -4
  636. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/parse.js.map +1 -1
  637. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts +2 -0
  638. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts.map +1 -1
  639. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.js +104 -15
  640. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.js.map +1 -1
  641. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/coerce-parameters.d.ts +15 -0
  642. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/coerce-parameters.d.ts.map +1 -0
  643. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/coerce-parameters.js +198 -0
  644. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/coerce-parameters.js.map +1 -0
  645. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/config.d.ts +3 -0
  646. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/config.d.ts.map +1 -0
  647. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/config.js +8 -0
  648. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/config.js.map +1 -0
  649. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/format.d.ts +6 -0
  650. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/format.d.ts.map +1 -0
  651. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/format.js +33 -0
  652. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/format.js.map +1 -0
  653. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/index.d.ts +6 -0
  654. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/index.d.ts.map +1 -0
  655. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/index.js +6 -0
  656. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/index.js.map +1 -0
  657. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/parse.d.ts +4 -0
  658. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/parse.d.ts.map +1 -0
  659. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/parse.js +6 -0
  660. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/parse.js.map +1 -0
  661. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/repair.d.ts +12 -0
  662. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/repair.d.ts.map +1 -0
  663. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/repair.js +46 -0
  664. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/repair.js.map +1 -0
  665. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/stream.d.ts +4 -0
  666. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/stream.d.ts.map +1 -0
  667. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/stream.js +6 -0
  668. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/antml/stream.js.map +1 -0
  669. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.d.ts +8 -1
  670. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.d.ts.map +1 -1
  671. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.js +129 -27
  672. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.js.map +1 -1
  673. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/json-mix.d.ts.map +1 -1
  674. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/json-mix.js +140 -6
  675. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/json-mix.js.map +1 -1
  676. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/morph-xml.d.ts.map +1 -1
  677. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/morph-xml.js +28 -6
  678. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/morph-xml.js.map +1 -1
  679. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/yaml-xml.d.ts.map +1 -1
  680. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/yaml-xml.js +51 -18
  681. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/yaml-xml.js.map +1 -1
  682. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.d.ts.map +1 -1
  683. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.js +70 -9
  684. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.js.map +1 -1
  685. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.d.ts +6 -2
  686. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.d.ts.map +1 -1
  687. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.js.map +1 -1
  688. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +31 -3
  689. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  690. package/node_modules/@earendil-works/pi-ai/dist/types.js +4 -1
  691. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  692. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
  693. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +6 -1
  694. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
  695. package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.d.ts +4 -0
  696. package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.d.ts.map +1 -0
  697. package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.js +6 -0
  698. package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.js.map +1 -0
  699. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-pair-repair.d.ts.map +1 -1
  700. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-pair-repair.js +19 -2
  701. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-pair-repair.js.map +1 -1
  702. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.d.ts +19 -0
  703. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.d.ts.map +1 -0
  704. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.js +215 -0
  705. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.js.map +1 -0
  706. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  707. package/node_modules/@earendil-works/pi-pty/dist/registry-session.d.ts +1 -1
  708. package/node_modules/@earendil-works/pi-pty/dist/registry-session.d.ts.map +1 -1
  709. package/node_modules/@earendil-works/pi-pty/dist/registry-session.js +25 -6
  710. package/node_modules/@earendil-works/pi-pty/dist/registry-session.js.map +1 -1
  711. package/node_modules/@earendil-works/pi-pty/dist/registry-types.d.ts +6 -0
  712. package/node_modules/@earendil-works/pi-pty/dist/registry-types.d.ts.map +1 -1
  713. package/node_modules/@earendil-works/pi-pty/dist/registry-types.js.map +1 -1
  714. package/node_modules/@earendil-works/pi-pty/dist/registry.d.ts +1 -0
  715. package/node_modules/@earendil-works/pi-pty/dist/registry.d.ts.map +1 -1
  716. package/node_modules/@earendil-works/pi-pty/dist/registry.js +9 -1
  717. package/node_modules/@earendil-works/pi-pty/dist/registry.js.map +1 -1
  718. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  719. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
  720. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
  721. package/node_modules/@earendil-works/pi-tui/dist/index.js +1 -1
  722. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
  723. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +6 -1
  724. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  725. package/node_modules/@earendil-works/pi-tui/dist/tui.js +14 -2
  726. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  727. package/node_modules/@earendil-works/pi-tui/dist/utils.js +1 -1
  728. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
  729. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  730. package/package.json +6 -6
  731. package/dist/core/extensions/builtin/todotools/tools/todoread.d.ts +0 -4
  732. package/dist/core/extensions/builtin/todotools/tools/todoread.d.ts.map +0 -1
  733. package/dist/core/extensions/builtin/todotools/tools/todoread.js +0 -37
  734. package/dist/core/extensions/builtin/todotools/tools/todoread.js.map +0 -1
  735. package/dist/core/extensions/builtin/todotools/tools/todowrite.d.ts +0 -10
  736. package/dist/core/extensions/builtin/todotools/tools/todowrite.d.ts.map +0 -1
  737. package/dist/core/extensions/builtin/todotools/tools/todowrite.js +0 -95
  738. package/dist/core/extensions/builtin/todotools/tools/todowrite.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ // Markdown round-trip for the phased todo model.
2
+ //
3
+ // Ported and adapted from oh-my-pi's `packages/coding-agent/src/tools/todo.ts`
4
+ // (MIT — see NOTICE.md). Phases render as `# <name>` headings and tasks as
5
+ // checklist rows whose marker encodes status: `[ ]` pending, `[/]` in_progress,
6
+ // `[x]` completed, `[-]` abandoned.
7
+ import { isAbsolute, resolve } from "node:path";
8
+ import { DEFAULT_INIT_PHASE, normalizeInProgressTask } from "./state.js";
9
+ const STATUS_TO_MARKER = {
10
+ pending: " ",
11
+ in_progress: "/",
12
+ completed: "x",
13
+ abandoned: "-",
14
+ };
15
+ const MARKER_TO_STATUS = {
16
+ " ": "pending",
17
+ "": "pending",
18
+ x: "completed",
19
+ X: "completed",
20
+ "/": "in_progress",
21
+ ">": "in_progress",
22
+ "-": "abandoned",
23
+ "~": "abandoned",
24
+ };
25
+ /** Default file name for `/todo export` and `/todo import`. */
26
+ export const DEFAULT_TODO_MARKDOWN_FILE = "TODO.md";
27
+ /** Resolve a user-supplied path argument against cwd; empty input → TODO.md. */
28
+ export function resolveTodoMarkdownPath(input, cwd) {
29
+ const raw = input.trim().replace(/^["']|["']$/g, "") || DEFAULT_TODO_MARKDOWN_FILE;
30
+ return isAbsolute(raw) ? raw : resolve(cwd, raw);
31
+ }
32
+ /** Render todo phases as a Markdown checklist suitable for editing/copying. */
33
+ export function phasesToMarkdown(phases) {
34
+ if (phases.length === 0)
35
+ return `# ${DEFAULT_INIT_PHASE}\n`;
36
+ const out = [];
37
+ for (let index = 0; index < phases.length; index += 1) {
38
+ if (index > 0)
39
+ out.push("");
40
+ out.push(`# ${phases[index].name}`);
41
+ for (const task of phases[index].tasks) {
42
+ out.push(`- [${STATUS_TO_MARKER[task.status]}] ${task.content}`);
43
+ }
44
+ }
45
+ return `${out.join("\n")}\n`;
46
+ }
47
+ /** Parse a Markdown checklist back into todo phases. */
48
+ export function markdownToPhases(markdown) {
49
+ const errors = [];
50
+ const phases = [];
51
+ let currentPhase;
52
+ const lines = markdown.split(/\r?\n/);
53
+ for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {
54
+ const trimmed = lines[lineNumber].trim();
55
+ if (!trimmed)
56
+ continue;
57
+ const headingMatch = /^#{1,6}\s+(.+?)\s*$/.exec(trimmed);
58
+ if (headingMatch) {
59
+ currentPhase = { name: headingMatch[1].trim(), tasks: [] };
60
+ phases.push(currentPhase);
61
+ continue;
62
+ }
63
+ const taskMatch = /^[-*+]\s*\[(.?)\]\s+(.+?)\s*$/.exec(trimmed);
64
+ if (taskMatch) {
65
+ if (!currentPhase) {
66
+ currentPhase = { name: DEFAULT_INIT_PHASE, tasks: [] };
67
+ phases.push(currentPhase);
68
+ }
69
+ const status = MARKER_TO_STATUS[taskMatch[1]];
70
+ if (!status) {
71
+ errors.push(`Line ${lineNumber + 1}: unknown status marker "[${taskMatch[1]}]" (use [ ], [x], [/], [-])`);
72
+ continue;
73
+ }
74
+ currentPhase.tasks.push({ content: taskMatch[2].trim(), status });
75
+ continue;
76
+ }
77
+ errors.push(`Line ${lineNumber + 1}: unrecognized syntax "${trimmed}"`);
78
+ }
79
+ normalizeInProgressTask(phases);
80
+ return { phases, errors };
81
+ }
82
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/markdown.ts"],"names":[],"mappings":"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","sourcesContent":["// Markdown round-trip for the phased todo model.\n//\n// Ported and adapted from oh-my-pi's `packages/coding-agent/src/tools/todo.ts`\n// (MIT — see NOTICE.md). Phases render as `# <name>` headings and tasks as\n// checklist rows whose marker encodes status: `[ ]` pending, `[/]` in_progress,\n// `[x]` completed, `[-]` abandoned.\n\nimport { isAbsolute, resolve } from \"node:path\";\nimport { DEFAULT_INIT_PHASE, normalizeInProgressTask, type TodoPhase, type TodoStatus } from \"./state.ts\";\n\nconst STATUS_TO_MARKER: Record<TodoStatus, string> = {\n\tpending: \" \",\n\tin_progress: \"/\",\n\tcompleted: \"x\",\n\tabandoned: \"-\",\n};\n\nconst MARKER_TO_STATUS: Record<string, TodoStatus> = {\n\t\" \": \"pending\",\n\t\"\": \"pending\",\n\tx: \"completed\",\n\tX: \"completed\",\n\t\"/\": \"in_progress\",\n\t\">\": \"in_progress\",\n\t\"-\": \"abandoned\",\n\t\"~\": \"abandoned\",\n};\n\n/** Default file name for `/todo export` and `/todo import`. */\nexport const DEFAULT_TODO_MARKDOWN_FILE = \"TODO.md\";\n\n/** Resolve a user-supplied path argument against cwd; empty input → TODO.md. */\nexport function resolveTodoMarkdownPath(input: string, cwd: string): string {\n\tconst raw = input.trim().replace(/^[\"']|[\"']$/g, \"\") || DEFAULT_TODO_MARKDOWN_FILE;\n\treturn isAbsolute(raw) ? raw : resolve(cwd, raw);\n}\n\n/** Render todo phases as a Markdown checklist suitable for editing/copying. */\nexport function phasesToMarkdown(phases: readonly TodoPhase[]): string {\n\tif (phases.length === 0) return `# ${DEFAULT_INIT_PHASE}\\n`;\n\tconst out: string[] = [];\n\tfor (let index = 0; index < phases.length; index += 1) {\n\t\tif (index > 0) out.push(\"\");\n\t\tout.push(`# ${phases[index].name}`);\n\t\tfor (const task of phases[index].tasks) {\n\t\t\tout.push(`- [${STATUS_TO_MARKER[task.status]}] ${task.content}`);\n\t\t}\n\t}\n\treturn `${out.join(\"\\n\")}\\n`;\n}\n\n/** Parse a Markdown checklist back into todo phases. */\nexport function markdownToPhases(markdown: string): { phases: TodoPhase[]; errors: string[] } {\n\tconst errors: string[] = [];\n\tconst phases: TodoPhase[] = [];\n\tlet currentPhase: TodoPhase | undefined;\n\n\tconst lines = markdown.split(/\\r?\\n/);\n\tfor (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n\t\tconst trimmed = lines[lineNumber].trim();\n\t\tif (!trimmed) continue;\n\n\t\tconst headingMatch = /^#{1,6}\\s+(.+?)\\s*$/.exec(trimmed);\n\t\tif (headingMatch) {\n\t\t\tcurrentPhase = { name: headingMatch[1].trim(), tasks: [] };\n\t\t\tphases.push(currentPhase);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst taskMatch = /^[-*+]\\s*\\[(.?)\\]\\s+(.+?)\\s*$/.exec(trimmed);\n\t\tif (taskMatch) {\n\t\t\tif (!currentPhase) {\n\t\t\t\tcurrentPhase = { name: DEFAULT_INIT_PHASE, tasks: [] };\n\t\t\t\tphases.push(currentPhase);\n\t\t\t}\n\t\t\tconst status = MARKER_TO_STATUS[taskMatch[1]];\n\t\t\tif (!status) {\n\t\t\t\terrors.push(`Line ${lineNumber + 1}: unknown status marker \"[${taskMatch[1]}]\" (use [ ], [x], [/], [-])`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcurrentPhase.tasks.push({ content: taskMatch[2].trim(), status });\n\t\t\tcontinue;\n\t\t}\n\n\t\terrors.push(`Line ${lineNumber + 1}: unrecognized syntax \"${trimmed}\"`);\n\t}\n\n\tnormalizeInProgressTask(phases);\n\treturn { phases, errors };\n}\n"]}
@@ -1,2 +1,3 @@
1
- export declare const TASK_MANAGEMENT_SECTION = "\n<Task_Management>\n## Todo Management (CRITICAL)\n\n**DEFAULT BEHAVIOR**: EXPLORE first, DEFINE goal, SHARE plan, then CREATE detailed todos. This is your PRIMARY coordination mechanism.\n\n<mandatory_workflow>\n### The EXPLORE-DEFINE-PLAN-TODO Workflow (NON-NEGOTIABLE)\n\n**EVEN FOR SEEMINGLY SIMPLE TASKS, FOLLOW THIS WORKFLOW.**\n\n| Phase | Action | Output |\n|-------|--------|--------|\n| 1. EXPLORE | Read relevant files, understand existing patterns | Mental model of codebase |\n| 2. DEFINE | State the FINAL GOAL explicitly | Clear success criteria |\n| 3. PLAN | Tell user your approach BEFORE creating todos | User confirmation/feedback |\n| 4. TODO | Create DETAILED atomic todos with verification steps | Structured task list |\n| 5. EXECUTE | Work through todos, marking progress obsessively | Completed work with evidence |\n\n**WHY THIS ORDER MATTERS:**\n- Skipping EXPLORE = blind implementation = bugs, rework, wrong approach\n- Skipping DEFINE = scope creep, incomplete work, misaligned results\n- Skipping PLAN = user has no input, surprises at the end\n- Skipping TODO = no tracking, forgotten steps, unverifiable completion\n</mandatory_workflow>\n\n<phase_1_explore>\n### Phase 1: EXPLORE FIRST (Even for \"simple\" tasks)\n\n**BEFORE you touch any code or create any todo:**\n\n1. **Read the relevant files** - Never assume you know what's there\n2. **Understand existing patterns** - How does this codebase do similar things?\n3. **Identify dependencies** - What else might be affected?\n4. **Check for surprises** - Is there existing code that already does this?\n\n**This applies to ALL tasks, no matter how trivial they seem.**\n\n```\n// WRONG: Jump straight to implementation\nUser: \"Add a helper function for X\"\nYou: *immediately creates todo and writes code*\n\n// CORRECT: Explore first\nUser: \"Add a helper function for X\"\nYou: *reads existing helpers, checks patterns, then proceeds*\n```\n</phase_1_explore>\n\n<phase_2_define>\n### Phase 2: DEFINE the Goal\n\nAfter exploring, explicitly state:\n\n1. **WHAT** is the final deliverable?\n2. **WHY** does the user need this? (infer from context)\n3. **SUCCESS CRITERIA** - How will we know it's done?\n\nWrite this out. If it's unclear, ASK before proceeding.\n</phase_2_define>\n\n<phase_3_plan>\n### Phase 3: SHARE Your Plan\n\n**TELL THE USER YOUR APPROACH BEFORE CREATING TODOS.**\n\n```\nBased on my exploration, here's my plan:\n\n1. [Step 1] - [why this step]\n2. [Step 2] - [why this step]\n3. [verification approach]\n\nDoes this align with what you need, or should I adjust?\n```\n\n**Wait for user confirmation on non-trivial tasks.** This catches misunderstandings BEFORE wasted work.\n</phase_3_plan>\n\n<phase_4_todo>\n### Phase 4: CREATE Detailed Todos\n\n**NOW create todos - but make them DETAILED:**\n\nEach todo MUST include:\n- **WHAT**: Specific, atomic action\n- **WHERE**: File path or location\n- **HOW**: Brief approach\n- **VERIFY**: How to confirm it's done\n\n```\n// BAD todo\n- \"Add the feature\"\n\n// GOOD todo\n- \"Add validateInput() in src/utils/validation.ts - pattern match existing validators, return ValidationResult, verify with unit test\"\n```\n</phase_4_todo>\n\n<phase_5_execute>\n### Phase 5: EXECUTE with Obsessive Tracking\n\n1. Mark `in_progress` BEFORE starting (only ONE at a time)\n2. Mark `completed` IMMEDIATELY after finishing (NEVER batch)\n3. If scope changes, UPDATE todos before proceeding\n\n**OBSESSIVELY TRACK YOUR WORK USING TODO TOOLS.**\n</phase_5_execute>\n\n<todo_creation_triggers>\n### When to Create Todos (MANDATORY)\n\n**ALWAYS.** No exceptions. No \"trivial task\" exemptions.\n\nEvery task, regardless of perceived complexity, follows EXPLORE -> DEFINE -> PLAN -> TODO -> EXECUTE.\n</todo_creation_triggers>\n\n<anti_patterns>\n### Anti-Patterns (BLOCKING)\n\n- **Skipping EXPLORE** - Blind implementation leads to wrong solutions\n- **Skipping PLAN sharing** - User has no chance to course-correct\n- **Vague todos** - \"Add feature\" tells nothing; be specific\n- **Batch-completing todos** - Defeats real-time tracking\n- **No in_progress marking** - No indication of current work\n\n**FAILURE TO FOLLOW THE WORKFLOW = INCOMPLETE WORK.**\n</anti_patterns>\n\n<evidence_requirements>\n### Evidence Requirements (task NOT complete without these)\n\n- **File edit** -> Diagnostics clean on changed files\n- **Build command** -> Exit code 0\n- **Test run** -> Pass (or explicit note of pre-existing failures)\n\n**NO EVIDENCE = NOT COMPLETE.**\n\n| Violation | Why It Fails |\n|-----------|--------------|\n| \"It should work now\" | No evidence. Run it. |\n| \"I added the tests\" | Did they pass? Show output. |\n| \"Implementation complete\" | Did you verify against success criteria? |\n\n**CLAIM NOTHING WITHOUT PROOF. EXECUTE. VERIFY. SHOW EVIDENCE.**\n</evidence_requirements>\n\n<completion_checklist>\n### Completion Checklist\n\nA task is complete when:\n- [ ] Exploration done - understood existing patterns\n- [ ] Goal defined - success criteria clear\n- [ ] Plan shared - user had chance for input\n- [ ] All todos marked done\n- [ ] Diagnostics clean on changed files\n- [ ] Build passes (if applicable)\n- [ ] User's original request fully addressed\n</completion_checklist>\n</Task_Management>\n";
1
+ export declare const TODO_TOOL_DESCRIPTION = "**Tasks referenced by verbatim content string, NEVER an auto-generated ID \u2014 no \"task-1\"/\"task-N\" exists. Pass the content text in the task field.**\n\nOn each completion the earliest still-open task (in phase order) auto-promotes to in_progress.\nCompleting tasks out of phase order can move this pointer **back** to an earlier phase \u2014 expected; completed tasks are never reverted.\n\n## Operations\n\n| op | Required fields | Effect |\n|---|---|---|\n| init | list: [{phase, items: string[]}] | Initialize full list (replaces existing) |\n| init | items: string[] | Flattened single-phase init |\n| start | task | Mark in progress |\n| done | task or phase | Mark completed |\n| drop | task or phase | Mark abandoned |\n| rm | task or phase (optional) | Remove task or phase; omit both to clear |\n| append | phase, items: string[] | Append tasks to phase; lazily creates phase |\n| view | \u2014 | Read-only: echo list |\n\n## Anatomy\n- **Task content**: 5\u201310 words; what, not how. Unique identifier.\n- **Phase name**: short noun phrase (e.g. Foundation, Auth, Verification). Unique identifier. NEVER prefix 1., A), Phase 1:.\n\n## Rules\n- Mark tasks done immediately after finishing. Complete phases in order.\n- NEVER make a todo call your turn's only tool call \u2014 batch it with the real work: init with the first reads/edits, each done/start with the next action. Solo todo turns waste a round trip.\n- Blocked? append a task to the active phase, or drop.\n- Keep task/phase strings stable once introduced.\n- Lost the exact task text? view echoes the list \u2014 NEVER guess from memory.\n\n## When to create a list\n- Task requires 3+ distinct steps\n- User explicitly requests one\n- User provides a set of tasks\n- New instructions arrive mid-task \u2014 capture before proceeding\n\n<critical>\nUser hands you a multi-step plan \u2014 phased todo, numbered/bulleted checklist, or \"N bugs/items/tasks\":\n- You MUST init the list with EVERY item as its own task before working.\n- Enumerate all; NEVER summarize into fewer tasks, sample \"the important ones\", drop items, or track the rest from memory.\n</critical>";
2
+ export declare const TASK_MANAGEMENT_SECTION = "\n<Task_Management>\n## Todo Management (CRITICAL)\n\nUse the todo tool for multi-step work. It is one operation at a time: initialize a phased list, then start, complete, abandon, append, remove, or view tasks by their exact content. The earliest open task auto-promotes after each completion.\n\n**Tasks referenced by verbatim content string, NEVER an auto-generated ID \u2014 no \"task-1\"/\"task-N\" exists. Pass the content text in the task field.**\n\nOn each completion the earliest still-open task (in phase order) auto-promotes to in_progress.\nCompleting tasks out of phase order can move this pointer **back** to an earlier phase \u2014 expected; completed tasks are never reverted.\n\n## Operations\n\n| op | Required fields | Effect |\n|---|---|---|\n| init | list: [{phase, items: string[]}] | Initialize full list (replaces existing) |\n| init | items: string[] | Flattened single-phase init |\n| start | task | Mark in progress |\n| done | task or phase | Mark completed |\n| drop | task or phase | Mark abandoned |\n| rm | task or phase (optional) | Remove task or phase; omit both to clear |\n| append | phase, items: string[] | Append tasks to phase; lazily creates phase |\n| view | \u2014 | Read-only: echo list |\n\n## Anatomy\n- **Task content**: 5\u201310 words; what, not how. Unique identifier.\n- **Phase name**: short noun phrase (e.g. Foundation, Auth, Verification). Unique identifier. NEVER prefix 1., A), Phase 1:.\n\n## Rules\n- Mark tasks done immediately after finishing. Complete phases in order.\n- NEVER make a todo call your turn's only tool call \u2014 batch it with the real work: init with the first reads/edits, each done/start with the next action. Solo todo turns waste a round trip.\n- Blocked? append a task to the active phase, or drop.\n- Keep task/phase strings stable once introduced.\n- Lost the exact task text? view echoes the list \u2014 NEVER guess from memory.\n\n## When to create a list\n- Task requires 3+ distinct steps\n- User explicitly requests one\n- User provides a set of tasks\n- New instructions arrive mid-task \u2014 capture before proceeding\n\n<critical>\nUser hands you a multi-step plan \u2014 phased todo, numbered/bulleted checklist, or \"N bugs/items/tasks\":\n- You MUST init the list with EVERY item as its own task before working.\n- Enumerate all; NEVER summarize into fewer tasks, sample \"the important ones\", drop items, or track the rest from memory.\n</critical>\n\n## Evidence\n- File edit: inspect the changed files and diagnostics.\n- Build command: require exit code 0.\n- Test run: require passing output, or state the pre-existing failure.\n</Task_Management>\n";
2
3
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,oqKAgKnC,CAAC"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/prompt.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,6mEAuCtB,CAAC;AAEb,eAAO,MAAM,uBAAuB,omFAanC,CAAC"}
@@ -1,162 +1,59 @@
1
+ // Adapted from oh-my-pi's todo prompt (MIT License).
2
+ // Copyright (c) 2025 Mario Zechner
3
+ // Copyright (c) 2025-2026 Can Bölük
4
+ // https://github.com/can1357/oh-my-pi
5
+ export const TODO_TOOL_DESCRIPTION = `**Tasks referenced by verbatim content string, NEVER an auto-generated ID — no "task-1"/"task-N" exists. Pass the content text in the task field.**
6
+
7
+ On each completion the earliest still-open task (in phase order) auto-promotes to in_progress.
8
+ Completing tasks out of phase order can move this pointer **back** to an earlier phase — expected; completed tasks are never reverted.
9
+
10
+ ## Operations
11
+
12
+ | op | Required fields | Effect |
13
+ |---|---|---|
14
+ | init | list: [{phase, items: string[]}] | Initialize full list (replaces existing) |
15
+ | init | items: string[] | Flattened single-phase init |
16
+ | start | task | Mark in progress |
17
+ | done | task or phase | Mark completed |
18
+ | drop | task or phase | Mark abandoned |
19
+ | rm | task or phase (optional) | Remove task or phase; omit both to clear |
20
+ | append | phase, items: string[] | Append tasks to phase; lazily creates phase |
21
+ | view | — | Read-only: echo list |
22
+
23
+ ## Anatomy
24
+ - **Task content**: 5–10 words; what, not how. Unique identifier.
25
+ - **Phase name**: short noun phrase (e.g. Foundation, Auth, Verification). Unique identifier. NEVER prefix 1., A), Phase 1:.
26
+
27
+ ## Rules
28
+ - Mark tasks done immediately after finishing. Complete phases in order.
29
+ - NEVER make a todo call your turn's only tool call — batch it with the real work: init with the first reads/edits, each done/start with the next action. Solo todo turns waste a round trip.
30
+ - Blocked? append a task to the active phase, or drop.
31
+ - Keep task/phase strings stable once introduced.
32
+ - Lost the exact task text? view echoes the list — NEVER guess from memory.
33
+
34
+ ## When to create a list
35
+ - Task requires 3+ distinct steps
36
+ - User explicitly requests one
37
+ - User provides a set of tasks
38
+ - New instructions arrive mid-task — capture before proceeding
39
+
40
+ <critical>
41
+ User hands you a multi-step plan — phased todo, numbered/bulleted checklist, or "N bugs/items/tasks":
42
+ - You MUST init the list with EVERY item as its own task before working.
43
+ - Enumerate all; NEVER summarize into fewer tasks, sample "the important ones", drop items, or track the rest from memory.
44
+ </critical>`;
1
45
  export const TASK_MANAGEMENT_SECTION = `
2
46
  <Task_Management>
3
47
  ## Todo Management (CRITICAL)
4
48
 
5
- **DEFAULT BEHAVIOR**: EXPLORE first, DEFINE goal, SHARE plan, then CREATE detailed todos. This is your PRIMARY coordination mechanism.
49
+ Use the todo tool for multi-step work. It is one operation at a time: initialize a phased list, then start, complete, abandon, append, remove, or view tasks by their exact content. The earliest open task auto-promotes after each completion.
6
50
 
7
- <mandatory_workflow>
8
- ### The EXPLORE-DEFINE-PLAN-TODO Workflow (NON-NEGOTIABLE)
51
+ ${TODO_TOOL_DESCRIPTION}
9
52
 
10
- **EVEN FOR SEEMINGLY SIMPLE TASKS, FOLLOW THIS WORKFLOW.**
11
-
12
- | Phase | Action | Output |
13
- |-------|--------|--------|
14
- | 1. EXPLORE | Read relevant files, understand existing patterns | Mental model of codebase |
15
- | 2. DEFINE | State the FINAL GOAL explicitly | Clear success criteria |
16
- | 3. PLAN | Tell user your approach BEFORE creating todos | User confirmation/feedback |
17
- | 4. TODO | Create DETAILED atomic todos with verification steps | Structured task list |
18
- | 5. EXECUTE | Work through todos, marking progress obsessively | Completed work with evidence |
19
-
20
- **WHY THIS ORDER MATTERS:**
21
- - Skipping EXPLORE = blind implementation = bugs, rework, wrong approach
22
- - Skipping DEFINE = scope creep, incomplete work, misaligned results
23
- - Skipping PLAN = user has no input, surprises at the end
24
- - Skipping TODO = no tracking, forgotten steps, unverifiable completion
25
- </mandatory_workflow>
26
-
27
- <phase_1_explore>
28
- ### Phase 1: EXPLORE FIRST (Even for "simple" tasks)
29
-
30
- **BEFORE you touch any code or create any todo:**
31
-
32
- 1. **Read the relevant files** - Never assume you know what's there
33
- 2. **Understand existing patterns** - How does this codebase do similar things?
34
- 3. **Identify dependencies** - What else might be affected?
35
- 4. **Check for surprises** - Is there existing code that already does this?
36
-
37
- **This applies to ALL tasks, no matter how trivial they seem.**
38
-
39
- \`\`\`
40
- // WRONG: Jump straight to implementation
41
- User: "Add a helper function for X"
42
- You: *immediately creates todo and writes code*
43
-
44
- // CORRECT: Explore first
45
- User: "Add a helper function for X"
46
- You: *reads existing helpers, checks patterns, then proceeds*
47
- \`\`\`
48
- </phase_1_explore>
49
-
50
- <phase_2_define>
51
- ### Phase 2: DEFINE the Goal
52
-
53
- After exploring, explicitly state:
54
-
55
- 1. **WHAT** is the final deliverable?
56
- 2. **WHY** does the user need this? (infer from context)
57
- 3. **SUCCESS CRITERIA** - How will we know it's done?
58
-
59
- Write this out. If it's unclear, ASK before proceeding.
60
- </phase_2_define>
61
-
62
- <phase_3_plan>
63
- ### Phase 3: SHARE Your Plan
64
-
65
- **TELL THE USER YOUR APPROACH BEFORE CREATING TODOS.**
66
-
67
- \`\`\`
68
- Based on my exploration, here's my plan:
69
-
70
- 1. [Step 1] - [why this step]
71
- 2. [Step 2] - [why this step]
72
- 3. [verification approach]
73
-
74
- Does this align with what you need, or should I adjust?
75
- \`\`\`
76
-
77
- **Wait for user confirmation on non-trivial tasks.** This catches misunderstandings BEFORE wasted work.
78
- </phase_3_plan>
79
-
80
- <phase_4_todo>
81
- ### Phase 4: CREATE Detailed Todos
82
-
83
- **NOW create todos - but make them DETAILED:**
84
-
85
- Each todo MUST include:
86
- - **WHAT**: Specific, atomic action
87
- - **WHERE**: File path or location
88
- - **HOW**: Brief approach
89
- - **VERIFY**: How to confirm it's done
90
-
91
- \`\`\`
92
- // BAD todo
93
- - "Add the feature"
94
-
95
- // GOOD todo
96
- - "Add validateInput() in src/utils/validation.ts - pattern match existing validators, return ValidationResult, verify with unit test"
97
- \`\`\`
98
- </phase_4_todo>
99
-
100
- <phase_5_execute>
101
- ### Phase 5: EXECUTE with Obsessive Tracking
102
-
103
- 1. Mark \`in_progress\` BEFORE starting (only ONE at a time)
104
- 2. Mark \`completed\` IMMEDIATELY after finishing (NEVER batch)
105
- 3. If scope changes, UPDATE todos before proceeding
106
-
107
- **OBSESSIVELY TRACK YOUR WORK USING TODO TOOLS.**
108
- </phase_5_execute>
109
-
110
- <todo_creation_triggers>
111
- ### When to Create Todos (MANDATORY)
112
-
113
- **ALWAYS.** No exceptions. No "trivial task" exemptions.
114
-
115
- Every task, regardless of perceived complexity, follows EXPLORE -> DEFINE -> PLAN -> TODO -> EXECUTE.
116
- </todo_creation_triggers>
117
-
118
- <anti_patterns>
119
- ### Anti-Patterns (BLOCKING)
120
-
121
- - **Skipping EXPLORE** - Blind implementation leads to wrong solutions
122
- - **Skipping PLAN sharing** - User has no chance to course-correct
123
- - **Vague todos** - "Add feature" tells nothing; be specific
124
- - **Batch-completing todos** - Defeats real-time tracking
125
- - **No in_progress marking** - No indication of current work
126
-
127
- **FAILURE TO FOLLOW THE WORKFLOW = INCOMPLETE WORK.**
128
- </anti_patterns>
129
-
130
- <evidence_requirements>
131
- ### Evidence Requirements (task NOT complete without these)
132
-
133
- - **File edit** -> Diagnostics clean on changed files
134
- - **Build command** -> Exit code 0
135
- - **Test run** -> Pass (or explicit note of pre-existing failures)
136
-
137
- **NO EVIDENCE = NOT COMPLETE.**
138
-
139
- | Violation | Why It Fails |
140
- |-----------|--------------|
141
- | "It should work now" | No evidence. Run it. |
142
- | "I added the tests" | Did they pass? Show output. |
143
- | "Implementation complete" | Did you verify against success criteria? |
144
-
145
- **CLAIM NOTHING WITHOUT PROOF. EXECUTE. VERIFY. SHOW EVIDENCE.**
146
- </evidence_requirements>
147
-
148
- <completion_checklist>
149
- ### Completion Checklist
150
-
151
- A task is complete when:
152
- - [ ] Exploration done - understood existing patterns
153
- - [ ] Goal defined - success criteria clear
154
- - [ ] Plan shared - user had chance for input
155
- - [ ] All todos marked done
156
- - [ ] Diagnostics clean on changed files
157
- - [ ] Build passes (if applicable)
158
- - [ ] User's original request fully addressed
159
- </completion_checklist>
53
+ ## Evidence
54
+ - File edit: inspect the changed files and diagnostics.
55
+ - Build command: require exit code 0.
56
+ - Test run: require passing output, or state the pre-existing failure.
160
57
  </Task_Management>
161
58
  `;
162
59
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgKtC,CAAC","sourcesContent":["export const TASK_MANAGEMENT_SECTION = `\n<Task_Management>\n## Todo Management (CRITICAL)\n\n**DEFAULT BEHAVIOR**: EXPLORE first, DEFINE goal, SHARE plan, then CREATE detailed todos. This is your PRIMARY coordination mechanism.\n\n<mandatory_workflow>\n### The EXPLORE-DEFINE-PLAN-TODO Workflow (NON-NEGOTIABLE)\n\n**EVEN FOR SEEMINGLY SIMPLE TASKS, FOLLOW THIS WORKFLOW.**\n\n| Phase | Action | Output |\n|-------|--------|--------|\n| 1. EXPLORE | Read relevant files, understand existing patterns | Mental model of codebase |\n| 2. DEFINE | State the FINAL GOAL explicitly | Clear success criteria |\n| 3. PLAN | Tell user your approach BEFORE creating todos | User confirmation/feedback |\n| 4. TODO | Create DETAILED atomic todos with verification steps | Structured task list |\n| 5. EXECUTE | Work through todos, marking progress obsessively | Completed work with evidence |\n\n**WHY THIS ORDER MATTERS:**\n- Skipping EXPLORE = blind implementation = bugs, rework, wrong approach\n- Skipping DEFINE = scope creep, incomplete work, misaligned results\n- Skipping PLAN = user has no input, surprises at the end\n- Skipping TODO = no tracking, forgotten steps, unverifiable completion\n</mandatory_workflow>\n\n<phase_1_explore>\n### Phase 1: EXPLORE FIRST (Even for \"simple\" tasks)\n\n**BEFORE you touch any code or create any todo:**\n\n1. **Read the relevant files** - Never assume you know what's there\n2. **Understand existing patterns** - How does this codebase do similar things?\n3. **Identify dependencies** - What else might be affected?\n4. **Check for surprises** - Is there existing code that already does this?\n\n**This applies to ALL tasks, no matter how trivial they seem.**\n\n\\`\\`\\`\n// WRONG: Jump straight to implementation\nUser: \"Add a helper function for X\"\nYou: *immediately creates todo and writes code*\n\n// CORRECT: Explore first\nUser: \"Add a helper function for X\"\nYou: *reads existing helpers, checks patterns, then proceeds*\n\\`\\`\\`\n</phase_1_explore>\n\n<phase_2_define>\n### Phase 2: DEFINE the Goal\n\nAfter exploring, explicitly state:\n\n1. **WHAT** is the final deliverable?\n2. **WHY** does the user need this? (infer from context)\n3. **SUCCESS CRITERIA** - How will we know it's done?\n\nWrite this out. If it's unclear, ASK before proceeding.\n</phase_2_define>\n\n<phase_3_plan>\n### Phase 3: SHARE Your Plan\n\n**TELL THE USER YOUR APPROACH BEFORE CREATING TODOS.**\n\n\\`\\`\\`\nBased on my exploration, here's my plan:\n\n1. [Step 1] - [why this step]\n2. [Step 2] - [why this step]\n3. [verification approach]\n\nDoes this align with what you need, or should I adjust?\n\\`\\`\\`\n\n**Wait for user confirmation on non-trivial tasks.** This catches misunderstandings BEFORE wasted work.\n</phase_3_plan>\n\n<phase_4_todo>\n### Phase 4: CREATE Detailed Todos\n\n**NOW create todos - but make them DETAILED:**\n\nEach todo MUST include:\n- **WHAT**: Specific, atomic action\n- **WHERE**: File path or location\n- **HOW**: Brief approach\n- **VERIFY**: How to confirm it's done\n\n\\`\\`\\`\n// BAD todo\n- \"Add the feature\"\n\n// GOOD todo\n- \"Add validateInput() in src/utils/validation.ts - pattern match existing validators, return ValidationResult, verify with unit test\"\n\\`\\`\\`\n</phase_4_todo>\n\n<phase_5_execute>\n### Phase 5: EXECUTE with Obsessive Tracking\n\n1. Mark \\`in_progress\\` BEFORE starting (only ONE at a time)\n2. Mark \\`completed\\` IMMEDIATELY after finishing (NEVER batch)\n3. If scope changes, UPDATE todos before proceeding\n\n**OBSESSIVELY TRACK YOUR WORK USING TODO TOOLS.**\n</phase_5_execute>\n\n<todo_creation_triggers>\n### When to Create Todos (MANDATORY)\n\n**ALWAYS.** No exceptions. No \"trivial task\" exemptions.\n\nEvery task, regardless of perceived complexity, follows EXPLORE -> DEFINE -> PLAN -> TODO -> EXECUTE.\n</todo_creation_triggers>\n\n<anti_patterns>\n### Anti-Patterns (BLOCKING)\n\n- **Skipping EXPLORE** - Blind implementation leads to wrong solutions\n- **Skipping PLAN sharing** - User has no chance to course-correct\n- **Vague todos** - \"Add feature\" tells nothing; be specific\n- **Batch-completing todos** - Defeats real-time tracking\n- **No in_progress marking** - No indication of current work\n\n**FAILURE TO FOLLOW THE WORKFLOW = INCOMPLETE WORK.**\n</anti_patterns>\n\n<evidence_requirements>\n### Evidence Requirements (task NOT complete without these)\n\n- **File edit** -> Diagnostics clean on changed files\n- **Build command** -> Exit code 0\n- **Test run** -> Pass (or explicit note of pre-existing failures)\n\n**NO EVIDENCE = NOT COMPLETE.**\n\n| Violation | Why It Fails |\n|-----------|--------------|\n| \"It should work now\" | No evidence. Run it. |\n| \"I added the tests\" | Did they pass? Show output. |\n| \"Implementation complete\" | Did you verify against success criteria? |\n\n**CLAIM NOTHING WITHOUT PROOF. EXECUTE. VERIFY. SHOW EVIDENCE.**\n</evidence_requirements>\n\n<completion_checklist>\n### Completion Checklist\n\nA task is complete when:\n- [ ] Exploration done - understood existing patterns\n- [ ] Goal defined - success criteria clear\n- [ ] Plan shared - user had chance for input\n- [ ] All todos marked done\n- [ ] Diagnostics clean on changed files\n- [ ] Build passes (if applicable)\n- [ ] User's original request fully addressed\n</completion_checklist>\n</Task_Management>\n`;\n"]}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/prompt.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,mCAAmC;AACnC,oCAAoC;AACpC,sCAAsC;AAEtC,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAuCzB,CAAC;AAEb,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;EAMrC,qBAAqB;;;;;;;CAOtB,CAAC","sourcesContent":["// Adapted from oh-my-pi's todo prompt (MIT License).\n// Copyright (c) 2025 Mario Zechner\n// Copyright (c) 2025-2026 Can Bölük\n// https://github.com/can1357/oh-my-pi\n\nexport const TODO_TOOL_DESCRIPTION = `**Tasks referenced by verbatim content string, NEVER an auto-generated ID no \"task-1\"/\"task-N\" exists. Pass the content text in the task field.**\n\nOn each completion the earliest still-open task (in phase order) auto-promotes to in_progress.\nCompleting tasks out of phase order can move this pointer **back** to an earlier phase expected; completed tasks are never reverted.\n\n## Operations\n\n| op | Required fields | Effect |\n|---|---|---|\n| init | list: [{phase, items: string[]}] | Initialize full list (replaces existing) |\n| init | items: string[] | Flattened single-phase init |\n| start | task | Mark in progress |\n| done | task or phase | Mark completed |\n| drop | task or phase | Mark abandoned |\n| rm | task or phase (optional) | Remove task or phase; omit both to clear |\n| append | phase, items: string[] | Append tasks to phase; lazily creates phase |\n| view | | Read-only: echo list |\n\n## Anatomy\n- **Task content**: 5–10 words; what, not how. Unique identifier.\n- **Phase name**: short noun phrase (e.g. Foundation, Auth, Verification). Unique identifier. NEVER prefix 1., A), Phase 1:.\n\n## Rules\n- Mark tasks done immediately after finishing. Complete phases in order.\n- NEVER make a todo call your turn's only tool call batch it with the real work: init with the first reads/edits, each done/start with the next action. Solo todo turns waste a round trip.\n- Blocked? append a task to the active phase, or drop.\n- Keep task/phase strings stable once introduced.\n- Lost the exact task text? view echoes the list NEVER guess from memory.\n\n## When to create a list\n- Task requires 3+ distinct steps\n- User explicitly requests one\n- User provides a set of tasks\n- New instructions arrive mid-task capture before proceeding\n\n<critical>\nUser hands you a multi-step plan phased todo, numbered/bulleted checklist, or \"N bugs/items/tasks\":\n- You MUST init the list with EVERY item as its own task before working.\n- Enumerate all; NEVER summarize into fewer tasks, sample \"the important ones\", drop items, or track the rest from memory.\n</critical>`;\n\nexport const TASK_MANAGEMENT_SECTION = `\n<Task_Management>\n## Todo Management (CRITICAL)\n\nUse the todo tool for multi-step work. It is one operation at a time: initialize a phased list, then start, complete, abandon, append, remove, or view tasks by their exact content. The earliest open task auto-promotes after each completion.\n\n${TODO_TOOL_DESCRIPTION}\n\n## Evidence\n- File edit: inspect the changed files and diagnostics.\n- Build command: require exit code 0.\n- Test run: require passing output, or state the pre-existing failure.\n</Task_Management>\n`;\n"]}
@@ -1,29 +1,82 @@
1
+ import type { SessionEntry } from "../../../session-manager.ts";
2
+ export type TodoStatus = "pending" | "in_progress" | "completed" | "abandoned";
3
+ export type TodoOperation = "init" | "start" | "done" | "rm" | "drop" | "append" | "view";
1
4
  export type TodoItem = {
2
5
  content: string;
3
- status: string;
4
- priority: string;
6
+ status: TodoStatus;
5
7
  };
6
- export type TodoWriteDetails = {
7
- todos: TodoItem[];
8
+ export type TodoPhase = {
9
+ name: string;
10
+ tasks: TodoItem[];
8
11
  };
9
- export type TodoStateEntry = {
10
- todos: TodoItem[];
12
+ export type TodoCompletionTransition = {
13
+ phase: string;
14
+ content: string;
15
+ };
16
+ export type TodoToolDetails = {
17
+ op?: TodoOperation;
18
+ phases: TodoPhase[];
19
+ storage: "session" | "memory";
20
+ completedTasks?: TodoCompletionTransition[];
11
21
  };
12
- type BranchEntry = {
13
- type: string;
14
- customType?: string;
15
- data?: unknown;
16
- message?: unknown;
22
+ export type TodoStateEntry = {
23
+ schema: "v2";
24
+ phases: TodoPhase[];
17
25
  };
18
26
  export declare const TODO_STATE_ENTRY_TYPE = "senpi.todo-state";
27
+ export declare const DEFAULT_INIT_PHASE = "Tasks";
28
+ type TodoPhaseInput = {
29
+ phase: string;
30
+ items: string[];
31
+ };
32
+ export type TodoOpEntry = {
33
+ op: TodoOperation;
34
+ list?: TodoPhaseInput[];
35
+ task?: string;
36
+ phase?: string;
37
+ items?: string[];
38
+ };
39
+ type TaskHit = {
40
+ task: TodoItem;
41
+ phase: TodoPhase;
42
+ };
43
+ type BranchEntry = SessionEntry;
44
+ export declare function findTaskByContent(phases: TodoPhase[], content: string): TaskHit | undefined;
45
+ export declare function findPhaseByName(phases: TodoPhase[], name: string): TodoPhase | undefined;
46
+ export declare function cloneTask(task: TodoItem): TodoItem;
47
+ export declare function clonePhases(phases: readonly TodoPhase[]): TodoPhase[];
48
+ export declare function normalizeInProgressTask(phases: TodoPhase[]): void;
49
+ /** Return the active task, preferring an in-progress item over the first pending item. */
50
+ export declare function nextActionableTask(phases: readonly TodoPhase[]): TodoItem | undefined;
51
+ export declare function getCompletionTransitions(previous: readonly TodoPhase[], updated: readonly TodoPhase[]): TodoCompletionTransition[];
52
+ export declare function resolveTaskOrError(phases: TodoPhase[], content: string | undefined, errors: string[]): TaskHit | undefined;
53
+ export declare function resolvePhaseOrError(phases: TodoPhase[], name: string | undefined, errors: string[]): TodoPhase | undefined;
54
+ export declare function getTaskTargets(phases: TodoPhase[], entry: TodoOpEntry, errors: string[]): TodoItem[];
55
+ export declare function initPhases(entry: TodoOpEntry, errors: string[]): TodoPhase[];
56
+ export declare function appendItems(phases: TodoPhase[], entry: TodoOpEntry, errors: string[]): TodoPhase[];
57
+ export declare function removeTasks(phases: TodoPhase[], entry: TodoOpEntry, errors: string[]): TodoPhase[];
58
+ export declare function applyEntry(phases: TodoPhase[], entry: TodoOpEntry, errors: string[]): TodoPhase[];
59
+ export declare function applyParams(phases: TodoPhase[], params: TodoOpEntry): {
60
+ phases: TodoPhase[];
61
+ errors: string[];
62
+ };
63
+ export declare function applyOpsToPhases(currentPhases: readonly TodoPhase[], ops: readonly TodoOpEntry[]): {
64
+ phases: TodoPhase[];
65
+ errors: string[];
66
+ };
67
+ export declare function formatSummary(phases: readonly TodoPhase[], errors: readonly string[], readOnly?: boolean): string;
68
+ export declare function sanitizeTodoText(text: string): string;
19
69
  export declare function isTerminalTodoStatus(status: string): boolean;
20
70
  export declare function isIncompleteTodo(todo: TodoItem): boolean;
21
- export declare function sanitizeTodoText(text: string): string;
22
71
  export declare function getTodoMarker(status: string): string;
23
- export declare function getTodoWidgetLines(todos: TodoItem[]): string[] | undefined;
24
- export declare function getTodoResultLines(todos: TodoItem[]): string[];
72
+ export declare function getTodoWidgetLines(phases: readonly TodoPhase[]): string[] | undefined;
73
+ export declare function getTodoResultLines(phases: readonly TodoPhase[]): string[];
25
74
  export declare function isTodoItem(value: unknown): value is TodoItem;
26
75
  export declare function isTodoItemArray(value: unknown): value is TodoItem[];
76
+ export declare function isTodoPhase(value: unknown): value is TodoPhase;
77
+ export declare function isTodoPhaseArray(value: unknown): value is TodoPhase[];
78
+ export declare function getLatestPhasesFromBranchEntries(entries: BranchEntry[]): TodoPhase[];
79
+ /** Compatibility reader for callers that still expect the old flat array. */
27
80
  export declare function getLatestTodosFromBranchEntries(entries: BranchEntry[]): TodoItem[];
28
81
  export {};
29
82
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/state.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,QAAQ,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5F,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAExD;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAK1E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAK9D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAM5D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,EAAE,CAEnE;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CA4BlF"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/todotools/state.ts"],"names":[],"mappings":"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"}