@tomsun28/pizza 0.1.0 → 0.1.1

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 (382) hide show
  1. package/README.md +20 -143
  2. package/README.zh-CN.md +36 -0
  3. package/dist/bun/cli.d.ts +2 -0
  4. package/dist/bun/cli.js +6 -0
  5. package/dist/bun/register-bedrock.d.ts +1 -0
  6. package/dist/bun/register-bedrock.js +3 -0
  7. package/dist/cli/args.d.ts +48 -0
  8. package/dist/cli/args.js +330 -0
  9. package/dist/cli/config-selector.d.ts +13 -0
  10. package/dist/cli/config-selector.js +30 -0
  11. package/dist/cli/file-processor.d.ts +14 -0
  12. package/dist/cli/file-processor.js +82 -0
  13. package/dist/cli/initial-message.d.ts +17 -0
  14. package/dist/cli/initial-message.js +21 -0
  15. package/dist/cli/list-models.d.ts +8 -0
  16. package/dist/cli/list-models.js +96 -0
  17. package/dist/cli.d.ts +2 -0
  18. package/dist/cli.js +68 -0
  19. package/dist/config.d.ts +79 -0
  20. package/dist/config.js +223 -0
  21. package/dist/core/agent/index.d.ts +6 -0
  22. package/dist/core/agent/index.js +6 -0
  23. package/dist/core/agent/types.d.ts +202 -0
  24. package/dist/core/agent/types.js +51 -0
  25. package/dist/core/auth-storage.d.ts +135 -0
  26. package/dist/core/auth-storage.js +417 -0
  27. package/dist/core/bash-executor.d.ts +31 -0
  28. package/dist/core/bash-executor.js +107 -0
  29. package/dist/core/compaction/branch-summarization.d.ts +87 -0
  30. package/dist/core/compaction/branch-summarization.js +242 -0
  31. package/dist/core/compaction/compaction-engine.d.ts +40 -0
  32. package/dist/core/compaction/compaction-engine.js +292 -0
  33. package/dist/core/compaction/compaction.d.ts +106 -0
  34. package/dist/core/compaction/compaction.js +295 -0
  35. package/dist/core/compaction/index.d.ts +7 -0
  36. package/dist/core/compaction/index.js +7 -0
  37. package/dist/core/compaction/utils.d.ts +37 -0
  38. package/dist/core/compaction/utils.js +152 -0
  39. package/dist/core/defaults.d.ts +2 -0
  40. package/dist/core/defaults.js +1 -0
  41. package/dist/core/diagnostics.d.ts +14 -0
  42. package/dist/core/diagnostics.js +1 -0
  43. package/dist/core/event-bus.d.ts +8 -0
  44. package/dist/core/event-bus.js +24 -0
  45. package/dist/core/event-store/events.d.ts +465 -0
  46. package/dist/core/event-store/events.js +6 -0
  47. package/dist/core/event-store/index.d.ts +10 -0
  48. package/dist/core/event-store/index.js +10 -0
  49. package/dist/core/event-store/sqlite-store.d.ts +27 -0
  50. package/dist/core/event-store/sqlite-store.js +275 -0
  51. package/dist/core/event-store/store.d.ts +91 -0
  52. package/dist/core/event-store/store.js +7 -0
  53. package/dist/core/event-store/thread-scoped-store.d.ts +29 -0
  54. package/dist/core/event-store/thread-scoped-store.js +50 -0
  55. package/dist/core/event-store/types.d.ts +70 -0
  56. package/dist/core/event-store/types.js +7 -0
  57. package/dist/core/event-store/workspace.d.ts +37 -0
  58. package/dist/core/event-store/workspace.js +71 -0
  59. package/dist/core/exec.d.ts +28 -0
  60. package/dist/core/exec.js +74 -0
  61. package/dist/core/export-html/ansi-to-html.d.ts +21 -0
  62. package/dist/core/export-html/ansi-to-html.js +248 -0
  63. package/dist/core/export-html/index.d.ts +29 -0
  64. package/dist/core/export-html/index.js +186 -0
  65. package/dist/core/export-html/template.css +1017 -0
  66. package/dist/core/export-html/template.html +55 -0
  67. package/dist/core/export-html/template.js +1742 -0
  68. package/dist/core/export-html/tool-renderer.d.ts +39 -0
  69. package/dist/core/export-html/tool-renderer.js +94 -0
  70. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  71. package/dist/core/export-html/vendor/marked.min.js +6 -0
  72. package/dist/core/extensions/index.d.ts +12 -0
  73. package/dist/core/extensions/index.js +9 -0
  74. package/dist/core/extensions/loader.d.ts +24 -0
  75. package/dist/core/extensions/loader.js +492 -0
  76. package/dist/core/extensions/runner.d.ts +167 -0
  77. package/dist/core/extensions/runner.js +898 -0
  78. package/dist/core/extensions/session-context.d.ts +67 -0
  79. package/dist/core/extensions/session-context.js +272 -0
  80. package/dist/core/extensions/types.d.ts +1147 -0
  81. package/dist/core/extensions/types.js +44 -0
  82. package/dist/core/extensions/wrapper.d.ts +19 -0
  83. package/dist/core/extensions/wrapper.js +21 -0
  84. package/dist/core/footer-data-provider.d.ts +47 -0
  85. package/dist/core/footer-data-provider.js +321 -0
  86. package/dist/core/goal/index.d.ts +3 -0
  87. package/dist/core/goal/index.js +1 -0
  88. package/dist/core/goal/scheduler.d.ts +83 -0
  89. package/dist/core/goal/scheduler.js +154 -0
  90. package/dist/core/goal/types.d.ts +182 -0
  91. package/dist/core/goal/types.js +11 -0
  92. package/dist/core/index.d.ts +8 -0
  93. package/dist/core/index.js +8 -0
  94. package/dist/core/intent/classifier.d.ts +53 -0
  95. package/dist/core/intent/classifier.js +353 -0
  96. package/dist/core/intent/index.d.ts +8 -0
  97. package/dist/core/intent/index.js +8 -0
  98. package/dist/core/intent/tool-adapter.d.ts +31 -0
  99. package/dist/core/intent/tool-adapter.js +168 -0
  100. package/dist/core/intent/types.d.ts +71 -0
  101. package/dist/core/intent/types.js +6 -0
  102. package/dist/core/keybindings.d.ts +297 -0
  103. package/dist/core/keybindings.js +250 -0
  104. package/dist/core/messages.d.ts +30 -0
  105. package/dist/core/messages.js +134 -0
  106. package/dist/core/model-registry.d.ts +131 -0
  107. package/dist/core/model-registry.js +634 -0
  108. package/dist/core/model-resolver.d.ts +109 -0
  109. package/dist/core/model-resolver.js +486 -0
  110. package/dist/core/output-guard.d.ts +5 -0
  111. package/dist/core/output-guard.js +58 -0
  112. package/dist/core/package-manager.d.ts +196 -0
  113. package/dist/core/package-manager.js +1873 -0
  114. package/dist/core/projection/boundary-inferrer.d.ts +58 -0
  115. package/dist/core/projection/boundary-inferrer.js +122 -0
  116. package/dist/core/projection/event-to-message.d.ts +35 -0
  117. package/dist/core/projection/event-to-message.js +253 -0
  118. package/dist/core/projection/goal-projection.d.ts +67 -0
  119. package/dist/core/projection/goal-projection.js +339 -0
  120. package/dist/core/projection/index.d.ts +13 -0
  121. package/dist/core/projection/index.js +13 -0
  122. package/dist/core/projection/session-manager.d.ts +100 -0
  123. package/dist/core/projection/session-manager.js +331 -0
  124. package/dist/core/projection/session-projection.d.ts +58 -0
  125. package/dist/core/projection/session-projection.js +257 -0
  126. package/dist/core/projection/task-history.d.ts +13 -0
  127. package/dist/core/projection/task-history.js +61 -0
  128. package/dist/core/projection/timeline-projection.d.ts +82 -0
  129. package/dist/core/projection/timeline-projection.js +276 -0
  130. package/dist/core/projection/types.d.ts +69 -0
  131. package/dist/core/projection/types.js +6 -0
  132. package/dist/core/prompt-templates.d.ts +51 -0
  133. package/dist/core/prompt-templates.js +249 -0
  134. package/dist/core/resolve-config-value.d.ts +22 -0
  135. package/dist/core/resolve-config-value.js +125 -0
  136. package/dist/core/resource-loader.d.ts +193 -0
  137. package/dist/core/resource-loader.js +685 -0
  138. package/dist/core/runtime/ai-client.d.ts +12 -0
  139. package/dist/core/runtime/ai-client.js +153 -0
  140. package/dist/core/runtime/checkpoint.d.ts +12 -0
  141. package/dist/core/runtime/checkpoint.js +78 -0
  142. package/dist/core/runtime/index.d.ts +12 -0
  143. package/dist/core/runtime/index.js +12 -0
  144. package/dist/core/runtime/llm-types.d.ts +99 -0
  145. package/dist/core/runtime/llm-types.js +6 -0
  146. package/dist/core/runtime/local-runtime.d.ts +23 -0
  147. package/dist/core/runtime/local-runtime.js +59 -0
  148. package/dist/core/runtime/policies.d.ts +72 -0
  149. package/dist/core/runtime/policies.js +37 -0
  150. package/dist/core/runtime/reactor.d.ts +213 -0
  151. package/dist/core/runtime/reactor.js +992 -0
  152. package/dist/core/runtime/runtime.d.ts +191 -0
  153. package/dist/core/runtime/runtime.js +449 -0
  154. package/dist/core/runtime/types.d.ts +42 -0
  155. package/dist/core/runtime/types.js +1 -0
  156. package/dist/core/sdk.d.ts +12 -0
  157. package/dist/core/sdk.js +10 -0
  158. package/dist/core/session-context-builder.d.ts +9 -0
  159. package/dist/core/session-context-builder.js +87 -0
  160. package/dist/core/session-cwd.d.ts +18 -0
  161. package/dist/core/session-cwd.js +36 -0
  162. package/dist/core/session-facade-factory.d.ts +79 -0
  163. package/dist/core/session-facade-factory.js +460 -0
  164. package/dist/core/session-facade.d.ts +57 -0
  165. package/dist/core/session-facade.js +91 -0
  166. package/dist/core/session-listing.d.ts +30 -0
  167. package/dist/core/session-listing.js +168 -0
  168. package/dist/core/session-reader.d.ts +19 -0
  169. package/dist/core/session-reader.js +101 -0
  170. package/dist/core/session-ref.d.ts +7 -0
  171. package/dist/core/session-ref.js +25 -0
  172. package/dist/core/session-services.d.ts +51 -0
  173. package/dist/core/session-services.js +90 -0
  174. package/dist/core/session-stats.d.ts +43 -0
  175. package/dist/core/session-stats.js +41 -0
  176. package/dist/core/settings-manager.d.ts +236 -0
  177. package/dist/core/settings-manager.js +706 -0
  178. package/dist/core/skill-block-parser.d.ts +12 -0
  179. package/dist/core/skill-block-parser.js +15 -0
  180. package/dist/core/skills.d.ts +59 -0
  181. package/dist/core/skills.js +408 -0
  182. package/dist/core/slash-commands.d.ts +13 -0
  183. package/dist/core/slash-commands.js +17 -0
  184. package/dist/core/source-info.d.ts +17 -0
  185. package/dist/core/source-info.js +18 -0
  186. package/dist/core/system-prompt.d.ts +27 -0
  187. package/dist/core/system-prompt.js +179 -0
  188. package/dist/core/timings.d.ts +7 -0
  189. package/dist/core/timings.js +30 -0
  190. package/dist/core/tools/bash.d.ts +95 -0
  191. package/dist/core/tools/bash.js +513 -0
  192. package/dist/core/tools/builtin-commands.d.ts +75 -0
  193. package/dist/core/tools/builtin-commands.js +503 -0
  194. package/dist/core/tools/compat-commands.d.ts +12 -0
  195. package/dist/core/tools/compat-commands.js +1280 -0
  196. package/dist/core/tools/edit-diff.d.ts +59 -0
  197. package/dist/core/tools/edit-diff.js +263 -0
  198. package/dist/core/tools/edit.d.ts +49 -0
  199. package/dist/core/tools/edit.js +340 -0
  200. package/dist/core/tools/file-mutation-queue.d.ts +5 -0
  201. package/dist/core/tools/file-mutation-queue.js +36 -0
  202. package/dist/core/tools/find.d.ts +34 -0
  203. package/dist/core/tools/find.js +459 -0
  204. package/dist/core/tools/grep.d.ts +36 -0
  205. package/dist/core/tools/grep.js +422 -0
  206. package/dist/core/tools/index.d.ts +70 -0
  207. package/dist/core/tools/index.js +129 -0
  208. package/dist/core/tools/line-anchors.d.ts +33 -0
  209. package/dist/core/tools/line-anchors.js +151 -0
  210. package/dist/core/tools/ls.d.ts +36 -0
  211. package/dist/core/tools/ls.js +268 -0
  212. package/dist/core/tools/path-utils.d.ts +7 -0
  213. package/dist/core/tools/path-utils.js +80 -0
  214. package/dist/core/tools/read.d.ts +35 -0
  215. package/dist/core/tools/read.js +244 -0
  216. package/dist/core/tools/render-utils.d.ts +20 -0
  217. package/dist/core/tools/render-utils.js +48 -0
  218. package/dist/core/tools/session-split.d.ts +9 -0
  219. package/dist/core/tools/session-split.js +77 -0
  220. package/dist/core/tools/tool-definition-wrapper.d.ts +13 -0
  221. package/dist/core/tools/tool-definition-wrapper.js +32 -0
  222. package/dist/core/tools/truncate.d.ts +69 -0
  223. package/dist/core/tools/truncate.js +204 -0
  224. package/dist/core/tools/write.d.ts +25 -0
  225. package/dist/core/tools/write.js +211 -0
  226. package/dist/core/types/session-types.d.ts +123 -0
  227. package/dist/core/types/session-types.js +8 -0
  228. package/dist/index.d.ts +27 -0
  229. package/dist/index.js +38 -0
  230. package/dist/main.d.ts +11 -2
  231. package/dist/main.js +577 -149
  232. package/dist/modes/event-mapper.d.ts +115 -0
  233. package/dist/modes/event-mapper.js +200 -0
  234. package/dist/modes/gui/server.d.ts +14 -0
  235. package/dist/modes/gui/server.js +1032 -0
  236. package/dist/modes/index.d.ts +10 -0
  237. package/dist/modes/index.js +9 -0
  238. package/dist/modes/interactive/assets/clankolas.png +0 -0
  239. package/dist/modes/interactive/components/armin.d.ts +33 -0
  240. package/dist/modes/interactive/components/armin.js +328 -0
  241. package/dist/modes/interactive/components/assistant-message.d.ts +19 -0
  242. package/dist/modes/interactive/components/assistant-message.js +115 -0
  243. package/dist/modes/interactive/components/bash-execution.d.ts +33 -0
  244. package/dist/modes/interactive/components/bash-execution.js +169 -0
  245. package/dist/modes/interactive/components/bordered-loader.d.ts +15 -0
  246. package/dist/modes/interactive/components/bordered-loader.js +50 -0
  247. package/dist/modes/interactive/components/branch-summary-message.d.ts +15 -0
  248. package/dist/modes/interactive/components/branch-summary-message.js +41 -0
  249. package/dist/modes/interactive/components/brand-header.d.ts +33 -0
  250. package/dist/modes/interactive/components/brand-header.js +235 -0
  251. package/dist/modes/interactive/components/compaction-summary-message.d.ts +15 -0
  252. package/dist/modes/interactive/components/compaction-summary-message.js +42 -0
  253. package/dist/modes/interactive/components/config-selector.d.ts +70 -0
  254. package/dist/modes/interactive/components/config-selector.js +469 -0
  255. package/dist/modes/interactive/components/countdown-timer.d.ts +13 -0
  256. package/dist/modes/interactive/components/countdown-timer.js +27 -0
  257. package/dist/modes/interactive/components/custom-editor.d.ts +27 -0
  258. package/dist/modes/interactive/components/custom-editor.js +94 -0
  259. package/dist/modes/interactive/components/custom-message.d.ts +19 -0
  260. package/dist/modes/interactive/components/custom-message.js +73 -0
  261. package/dist/modes/interactive/components/daxnuts.d.ts +22 -0
  262. package/dist/modes/interactive/components/daxnuts.js +137 -0
  263. package/dist/modes/interactive/components/diff.d.ts +11 -0
  264. package/dist/modes/interactive/components/diff.js +132 -0
  265. package/dist/modes/interactive/components/dynamic-border.d.ts +14 -0
  266. package/dist/modes/interactive/components/dynamic-border.js +19 -0
  267. package/dist/modes/interactive/components/earendil-announcement.d.ts +4 -0
  268. package/dist/modes/interactive/components/earendil-announcement.js +39 -0
  269. package/dist/modes/interactive/components/extension-editor.d.ts +19 -0
  270. package/dist/modes/interactive/components/extension-editor.js +105 -0
  271. package/dist/modes/interactive/components/extension-input.d.ts +22 -0
  272. package/dist/modes/interactive/components/extension-input.js +54 -0
  273. package/dist/modes/interactive/components/extension-selector.d.ts +23 -0
  274. package/dist/modes/interactive/components/extension-selector.js +70 -0
  275. package/dist/modes/interactive/components/footer.d.ts +55 -0
  276. package/dist/modes/interactive/components/footer.js +207 -0
  277. package/dist/modes/interactive/components/index.d.ts +31 -0
  278. package/dist/modes/interactive/components/index.js +32 -0
  279. package/dist/modes/interactive/components/keybinding-hints.d.ts +7 -0
  280. package/dist/modes/interactive/components/keybinding-hints.js +21 -0
  281. package/dist/modes/interactive/components/login-dialog.d.ts +41 -0
  282. package/dist/modes/interactive/components/login-dialog.js +138 -0
  283. package/dist/modes/interactive/components/model-selector.d.ts +32 -0
  284. package/dist/modes/interactive/components/model-selector.js +209 -0
  285. package/dist/modes/interactive/components/oauth-selector.d.ts +18 -0
  286. package/dist/modes/interactive/components/oauth-selector.js +91 -0
  287. package/dist/modes/interactive/components/settings-selector.d.ts +57 -0
  288. package/dist/modes/interactive/components/settings-selector.js +299 -0
  289. package/dist/modes/interactive/components/show-images-selector.d.ts +9 -0
  290. package/dist/modes/interactive/components/show-images-selector.js +37 -0
  291. package/dist/modes/interactive/components/skill-invocation-message.d.ts +16 -0
  292. package/dist/modes/interactive/components/skill-invocation-message.js +44 -0
  293. package/dist/modes/interactive/components/theme-selector.d.ts +10 -0
  294. package/dist/modes/interactive/components/theme-selector.js +47 -0
  295. package/dist/modes/interactive/components/thinking-selector.d.ts +10 -0
  296. package/dist/modes/interactive/components/thinking-selector.js +50 -0
  297. package/dist/modes/interactive/components/timeline-view.d.ts +31 -0
  298. package/dist/modes/interactive/components/timeline-view.js +81 -0
  299. package/dist/modes/interactive/components/tool-execution.d.ts +64 -0
  300. package/dist/modes/interactive/components/tool-execution.js +305 -0
  301. package/dist/modes/interactive/components/tree-selector.d.ts +88 -0
  302. package/dist/modes/interactive/components/tree-selector.js +1072 -0
  303. package/dist/modes/interactive/components/user-message-selector.d.ts +29 -0
  304. package/dist/modes/interactive/components/user-message-selector.js +110 -0
  305. package/dist/modes/interactive/components/user-message.d.ts +9 -0
  306. package/dist/modes/interactive/components/user-message.js +27 -0
  307. package/dist/modes/interactive/components/visual-truncate.d.ts +23 -0
  308. package/dist/modes/interactive/components/visual-truncate.js +32 -0
  309. package/dist/modes/interactive/interactive-mode.d.ts +394 -0
  310. package/dist/modes/interactive/interactive-mode.js +4116 -0
  311. package/dist/modes/interactive/theme/dark.json +85 -0
  312. package/dist/modes/interactive/theme/light.json +84 -0
  313. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  314. package/dist/modes/interactive/theme/theme.d.ts +80 -0
  315. package/dist/modes/interactive/theme/theme.js +973 -0
  316. package/dist/modes/print-mode.d.ts +27 -0
  317. package/dist/modes/print-mode.js +102 -0
  318. package/dist/modes/rpc/jsonl.d.ts +16 -0
  319. package/dist/modes/rpc/jsonl.js +48 -0
  320. package/dist/modes/rpc/rpc-client.d.ts +219 -0
  321. package/dist/modes/rpc/rpc-client.js +405 -0
  322. package/dist/modes/rpc/rpc-mode.d.ts +19 -0
  323. package/dist/modes/rpc/rpc-mode.js +381 -0
  324. package/dist/modes/rpc/rpc-types.d.ts +406 -0
  325. package/dist/modes/rpc/rpc-types.js +7 -0
  326. package/dist/package-manager-cli.d.ts +3 -0
  327. package/dist/package-manager-cli.js +233 -0
  328. package/dist/utils/changelog.d.ts +20 -0
  329. package/dist/utils/changelog.js +86 -0
  330. package/dist/utils/child-process.d.ts +10 -0
  331. package/dist/utils/child-process.js +77 -0
  332. package/dist/utils/clipboard-image.d.ts +10 -0
  333. package/dist/utils/clipboard-image.js +244 -0
  334. package/dist/utils/clipboard-native.d.ts +7 -0
  335. package/dist/utils/clipboard-native.js +13 -0
  336. package/dist/utils/clipboard.d.ts +1 -0
  337. package/dist/utils/clipboard.js +77 -0
  338. package/dist/utils/exif-orientation.d.ts +4 -0
  339. package/dist/utils/exif-orientation.js +157 -0
  340. package/dist/utils/frontmatter.d.ts +7 -0
  341. package/dist/utils/frontmatter.js +25 -0
  342. package/dist/utils/git.d.ts +25 -0
  343. package/dist/utils/git.js +162 -0
  344. package/dist/utils/image-convert.d.ts +8 -0
  345. package/dist/utils/image-convert.js +38 -0
  346. package/dist/utils/image-resize.d.ts +35 -0
  347. package/dist/utils/image-resize.js +136 -0
  348. package/dist/utils/mime.d.ts +1 -0
  349. package/dist/utils/mime.js +25 -0
  350. package/dist/utils/path-shims.d.ts +1 -0
  351. package/dist/utils/path-shims.js +90 -0
  352. package/dist/utils/paths.d.ts +6 -0
  353. package/dist/utils/paths.js +18 -0
  354. package/dist/utils/photon.d.ts +20 -0
  355. package/dist/utils/photon.js +120 -0
  356. package/dist/utils/shell.d.ts +29 -0
  357. package/dist/utils/shell.js +189 -0
  358. package/dist/utils/sleep.d.ts +4 -0
  359. package/dist/utils/sleep.js +16 -0
  360. package/dist/utils/tools-manager.d.ts +3 -0
  361. package/dist/utils/tools-manager.js +101 -0
  362. package/dist/vendor/bin/darwin-arm64/fd +0 -0
  363. package/dist/vendor/bin/darwin-arm64/rg +0 -0
  364. package/dist/vendor/bin/darwin-x64/fd +0 -0
  365. package/dist/vendor/bin/darwin-x64/rg +0 -0
  366. package/dist/vendor/bin/linux-arm64/fd +0 -0
  367. package/dist/vendor/bin/linux-arm64/rg +0 -0
  368. package/dist/vendor/bin/linux-x64/fd +0 -0
  369. package/dist/vendor/bin/linux-x64/rg +0 -0
  370. package/dist/vendor/bin/win32-arm64/fd.exe +0 -0
  371. package/dist/vendor/bin/win32-arm64/rg.exe +0 -0
  372. package/dist/vendor/bin/win32-x64/fd.exe +0 -0
  373. package/dist/vendor/bin/win32-x64/rg.exe +0 -0
  374. package/package.json +90 -26
  375. package/dist/extension/core.d.ts +0 -69
  376. package/dist/extension/core.js +0 -270
  377. package/dist/extension/core.js.map +0 -1
  378. package/dist/extension/index.d.ts +0 -14
  379. package/dist/extension/index.js +0 -374
  380. package/dist/extension/index.js.map +0 -1
  381. package/dist/main.js.map +0 -1
  382. package/themes/pizza.json +0 -87
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Goal Scheduler
3
+ *
4
+ * Watches the EventStore for task completions and automatically
5
+ * dispatches the next ready tasks. A lightweight scheduler that
6
+ * does NOT execute tasks itself — it only emits TASK_ASSIGNED events
7
+ * for ready tasks, and the runtime decides how to execute them.
8
+ *
9
+ * Design principle: the scheduler is a projection + policy.
10
+ * It reads events to understand state, applies a scheduling policy,
11
+ * and emits new events to drive execution.
12
+ */
13
+ import { GoalProjection } from "../projection/goal-projection.js";
14
+ // ============================================================================
15
+ // Default Policy
16
+ // ============================================================================
17
+ /**
18
+ * DefaultSchedulingPolicy — FIFO with role inference from task content.
19
+ *
20
+ * Rules:
21
+ * 1. Respects maxConcurrency (won't assign more tasks than allowed)
22
+ * 2. Assigns tasks in priority order (critical > high > medium > low)
23
+ * 3. Infers agent role from task title keywords
24
+ */
25
+ export class DefaultSchedulingPolicy {
26
+ selectTasks(readyTasks, _goal, context) {
27
+ const slots = context.maxConcurrency - context.runningTasks.length;
28
+ if (slots <= 0)
29
+ return [];
30
+ // Sort by priority
31
+ const priorityOrder = { critical: 0, high: 1, medium: 2, low: 3 };
32
+ const sorted = [...readyTasks].sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
33
+ return sorted.slice(0, slots).map((task) => ({
34
+ task_id: task.task_id,
35
+ assigned_to: this._inferRole(task),
36
+ }));
37
+ }
38
+ _inferRole(task) {
39
+ const title = task.title.toLowerCase();
40
+ if (title.includes("test") || title.includes("spec"))
41
+ return "tester";
42
+ if (title.includes("review") || title.includes("audit"))
43
+ return "reviewer";
44
+ if (title.includes("plan") || title.includes("design"))
45
+ return "planner";
46
+ return "worker";
47
+ }
48
+ }
49
+ /**
50
+ * GoalScheduler watches task lifecycle events and auto-dispatches ready tasks.
51
+ *
52
+ * Usage:
53
+ * const scheduler = new GoalScheduler(store, { maxConcurrency: 2 });
54
+ * // ... scheduler emits TASK_ASSIGNED events when tasks become ready
55
+ * scheduler.stop();
56
+ */
57
+ export class GoalScheduler {
58
+ constructor(store, options) {
59
+ this.store = store;
60
+ this.projection = new GoalProjection(store);
61
+ this.policy = options?.policy ?? new DefaultSchedulingPolicy();
62
+ this.maxConcurrency = options?.maxConcurrency ?? 1;
63
+ this.projection.rebuild();
64
+ if (options?.autoStart !== false) {
65
+ this.start();
66
+ }
67
+ }
68
+ /**
69
+ * Start watching for task lifecycle events.
70
+ */
71
+ start() {
72
+ if (this.unsubscribe)
73
+ return;
74
+ this.projection.startLive();
75
+ this.unsubscribe = this.store.subscribe((event) => this._onEvent(event), {
76
+ types: [
77
+ "GOAL_PLANNED",
78
+ "TASK_COMPLETED",
79
+ "TASK_ACCEPTED",
80
+ "TASK_FAILED",
81
+ ],
82
+ });
83
+ }
84
+ /**
85
+ * Stop watching.
86
+ */
87
+ stop() {
88
+ this.unsubscribe?.();
89
+ this.unsubscribe = undefined;
90
+ this.projection.stopLive();
91
+ }
92
+ /**
93
+ * Manually trigger scheduling for a goal.
94
+ */
95
+ scheduleGoal(goalId) {
96
+ this._tryDispatch(goalId);
97
+ }
98
+ // =========================================================================
99
+ // Internal
100
+ // =========================================================================
101
+ _onEvent(event) {
102
+ const payload = event.payload;
103
+ if (event.type === "GOAL_PLANNED" && payload.goal_id) {
104
+ this._tryDispatch(payload.goal_id);
105
+ return;
106
+ }
107
+ // For task events, find the goal_id from the task
108
+ if (payload.task_id) {
109
+ const task = this.projection.getTask(payload.task_id);
110
+ if (task) {
111
+ this._tryDispatch(task.goal_id);
112
+ }
113
+ }
114
+ }
115
+ _tryDispatch(goalId) {
116
+ const goal = this.projection.getGoal(goalId);
117
+ if (!goal)
118
+ return;
119
+ if (goal.status === "completed" || goal.status === "cancelled")
120
+ return;
121
+ const allTasks = this.projection.getTasksForGoal(goalId);
122
+ const readyTasks = this.projection.getReadyTasks(goalId);
123
+ const runningTasks = allTasks.filter((t) => t.status === "started" || t.status === "in_progress" || t.status === "assigned");
124
+ if (readyTasks.length === 0) {
125
+ // Check if all tasks are done — if so, complete the goal
126
+ const allDone = allTasks.every((t) => t.status === "completed" || t.status === "accepted" || t.status === "cancelled");
127
+ if (allDone && allTasks.length > 0) {
128
+ this.store.append({
129
+ actor_id: "runtime",
130
+ type: "GOAL_COMPLETED",
131
+ payload: { goal_id: goalId, summary: "All tasks completed" },
132
+ caused_by: this.store.head,
133
+ });
134
+ }
135
+ return;
136
+ }
137
+ const assignments = this.policy.selectTasks(readyTasks, goal, {
138
+ allTasks,
139
+ runningTasks,
140
+ maxConcurrency: this.maxConcurrency,
141
+ });
142
+ for (const assignment of assignments) {
143
+ this.store.append({
144
+ actor_id: "runtime",
145
+ type: "TASK_ASSIGNED",
146
+ payload: {
147
+ task_id: assignment.task_id,
148
+ assigned_to: assignment.assigned_to,
149
+ },
150
+ caused_by: this.store.head,
151
+ });
152
+ }
153
+ }
154
+ }
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Goal & Task Types
3
+ *
4
+ * Data model for long-running goals and their decomposed tasks.
5
+ * Goals are top-level user objectives that may span multiple sessions.
6
+ * Tasks are concrete work items within a goal.
7
+ *
8
+ * All state is derived from EventStore events — these types represent
9
+ * the projected view of that state.
10
+ */
11
+ /** Goal status derived from event stream */
12
+ export type GoalStatus = "created" | "classified" | "planned" | "running" | "paused" | "completed" | "cancelled";
13
+ /** Whether a goal is short-running (single session) or long-running (multi-session) */
14
+ export type GoalClassification = "short_running" | "long_running";
15
+ /** Goal phase — maps to sessions within the goal */
16
+ export type GoalPhase = "planning" | "implementation" | "testing" | "review" | "rework";
17
+ /** Projected goal state (derived from events, not stored directly) */
18
+ export interface GoalDescriptor {
19
+ /** Unique goal identifier */
20
+ goal_id: string;
21
+ /** Workspace this goal belongs to */
22
+ workspace_id: string;
23
+ /** Current status */
24
+ status: GoalStatus;
25
+ /** Classification (if classified) */
26
+ classification?: GoalClassification;
27
+ /** Current phase */
28
+ phase?: GoalPhase;
29
+ /** Human-readable title */
30
+ title: string;
31
+ /** Detailed description or user request */
32
+ description?: string;
33
+ /** Event that created this goal */
34
+ root_event_id: string;
35
+ /** Task references (task_ids) */
36
+ task_ids: string[];
37
+ /** Active session ID (if running) */
38
+ active_session_id?: string;
39
+ /** Acceptance criteria (from planning) */
40
+ acceptance_criteria?: string[];
41
+ /** Timestamp of creation */
42
+ created_at: number;
43
+ /** Timestamp of last status change */
44
+ updated_at: number;
45
+ }
46
+ /** Task status derived from event stream */
47
+ export type TaskStatus = "created" | "assigned" | "started" | "in_progress" | "completed" | "failed" | "rework" | "accepted" | "cancelled";
48
+ /** Task priority */
49
+ export type TaskPriority = "critical" | "high" | "medium" | "low";
50
+ /** Agent role that can be assigned to a task */
51
+ export type AgentRole = "planner" | "worker" | "tester" | "reviewer" | "memory" | "skill";
52
+ /** Projected task state (derived from events) */
53
+ export interface TaskDescriptor {
54
+ /** Unique task identifier */
55
+ task_id: string;
56
+ /** Parent goal ID */
57
+ goal_id: string;
58
+ /** Current status */
59
+ status: TaskStatus;
60
+ /** Human-readable title */
61
+ title: string;
62
+ /** Detailed specification */
63
+ description?: string;
64
+ /** Assigned agent role */
65
+ assigned_to?: AgentRole;
66
+ /** Task priority */
67
+ priority: TaskPriority;
68
+ /** Dependencies — task_ids that must complete before this one */
69
+ depends_on: string[];
70
+ /** Session ID where this task is being worked on */
71
+ session_id?: string;
72
+ /** Event that created this task */
73
+ root_event_id: string;
74
+ /** Acceptance criteria specific to this task */
75
+ acceptance_criteria?: string[];
76
+ /** Progress notes (from TASK_PROGRESS events) */
77
+ progress_notes: string[];
78
+ /** Generated or agent-provided task summary */
79
+ summary?: string;
80
+ /** Failure message (if status is "failed") */
81
+ failure_message?: string;
82
+ /** Rework reason (if status is "rework") */
83
+ rework_reason?: string;
84
+ /** Cancellation reason (if status is "cancelled") */
85
+ cancel_reason?: string;
86
+ /** Timestamp of creation */
87
+ created_at: number;
88
+ /** Timestamp of last status change */
89
+ updated_at: number;
90
+ }
91
+ /** Payload for GOAL_CREATED event */
92
+ export interface GoalCreatedPayload {
93
+ goal_id: string;
94
+ title: string;
95
+ description?: string;
96
+ /** User message that triggered goal creation */
97
+ source_message?: string;
98
+ }
99
+ /** Payload for GOAL_CLASSIFIED event */
100
+ export interface GoalClassifiedPayload {
101
+ goal_id: string;
102
+ classification: GoalClassification;
103
+ reason?: string;
104
+ }
105
+ /** Payload for GOAL_PLANNED event */
106
+ export interface GoalPlannedPayload {
107
+ goal_id: string;
108
+ task_ids: string[];
109
+ acceptance_criteria?: string[];
110
+ plan_summary?: string;
111
+ }
112
+ /** Payload for GOAL_PAUSED / GOAL_RESUMED event */
113
+ export interface GoalLifecyclePayload {
114
+ goal_id: string;
115
+ reason?: string;
116
+ }
117
+ /** Payload for GOAL_COMPLETED event */
118
+ export interface GoalCompletedPayload {
119
+ goal_id: string;
120
+ summary?: string;
121
+ }
122
+ /** Payload for GOAL_CANCELLED event */
123
+ export interface GoalCancelledPayload {
124
+ goal_id: string;
125
+ reason?: string;
126
+ }
127
+ /** Payload for TASK_CREATED event */
128
+ export interface TaskCreatedPayload {
129
+ task_id: string;
130
+ goal_id: string;
131
+ title: string;
132
+ description?: string;
133
+ priority: TaskPriority;
134
+ depends_on?: string[];
135
+ acceptance_criteria?: string[];
136
+ }
137
+ /** Payload for TASK_ASSIGNED event */
138
+ export interface TaskAssignedPayload {
139
+ task_id: string;
140
+ assigned_to: AgentRole;
141
+ session_id?: string;
142
+ }
143
+ /** Payload for TASK_STARTED event */
144
+ export interface TaskStartedPayload {
145
+ task_id: string;
146
+ session_id: string;
147
+ }
148
+ /** Payload for TASK_PROGRESS event */
149
+ export interface TaskProgressPayload {
150
+ task_id: string;
151
+ note: string;
152
+ /** Progress percentage 0-100 */
153
+ percentage?: number;
154
+ }
155
+ /** Payload for TASK_COMPLETED event */
156
+ export interface TaskCompletedPayload {
157
+ task_id: string;
158
+ summary?: string;
159
+ }
160
+ /** Payload for TASK_FAILED event */
161
+ export interface TaskFailedPayload {
162
+ task_id: string;
163
+ error_message: string;
164
+ }
165
+ /** Payload for TASK_REWORK_REQUESTED event */
166
+ export interface TaskReworkPayload {
167
+ task_id: string;
168
+ reason: string;
169
+ /** Event ID of the review that triggered rework */
170
+ review_event_id?: string;
171
+ }
172
+ /** Payload for TASK_ACCEPTED event */
173
+ export interface TaskAcceptedPayload {
174
+ task_id: string;
175
+ /** Event ID of the acceptance review */
176
+ review_event_id?: string;
177
+ }
178
+ /** Payload for TASK_CANCELLED event */
179
+ export interface TaskCancelledPayload {
180
+ task_id: string;
181
+ reason?: string;
182
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Goal & Task Types
3
+ *
4
+ * Data model for long-running goals and their decomposed tasks.
5
+ * Goals are top-level user objectives that may span multiple sessions.
6
+ * Tasks are concrete work items within a goal.
7
+ *
8
+ * All state is derived from EventStore events — these types represent
9
+ * the projected view of that state.
10
+ */
11
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Core modules shared between all run modes.
3
+ */
4
+ export { type BashExecutorOptions, type BashResult, executeBashWithOperations } from "./bash-executor.js";
5
+ export type { CompactionResult } from "./compaction/index.js";
6
+ export { createEventBus, type EventBus, type EventBusController } from "./event-bus.js";
7
+ export { type AgentEndEvent, type AgentStartEvent, type AgentToolResult, type AgentToolUpdateCallback, type BeforeAgentStartEvent, type BeforeAgentStartEventResult, type BuildSystemPromptOptions, type ContextEvent, defineTool, discoverAndLoadExtensions, type ExecOptions, type ExecResult, type Extension, type ExtensionAPI, type ExtensionCommandContext, type ExtensionContext, type ExtensionError, type ExtensionEvent, type ExtensionFactory, type ExtensionFlag, type ExtensionHandler, ExtensionRunner, type ExtensionShortcut, type ExtensionUIContext, type LoadExtensionsResult, type MessageRenderer, type RegisteredCommand, type SessionBeforeCompactEvent, type SessionBeforeForkEvent, type SessionBeforeSwitchEvent, type SessionBeforeTreeEvent, type SessionCompactEvent, type SessionShutdownEvent, type SessionStartEvent, type SessionTreeEvent, type ToolCallEvent, type ToolCallEventResult, type ToolDefinition, type ToolRenderResultOptions, type ToolResultEvent, type TurnEndEvent, type TurnStartEvent, type WorkingIndicatorOptions, } from "./extensions/index.js";
8
+ export { createSyntheticSourceInfo } from "./source-info.js";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Core modules shared between all run modes.
3
+ */
4
+ export { executeBashWithOperations } from "./bash-executor.js";
5
+ export { createEventBus } from "./event-bus.js";
6
+ // Extensions system
7
+ export { defineTool, discoverAndLoadExtensions, ExtensionRunner, } from "./extensions/index.js";
8
+ export { createSyntheticSourceInfo } from "./source-info.js";
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Intent Classifier
3
+ *
4
+ * Classifies LLM-proposed tool calls by risk level and approval requirements.
5
+ */
6
+ import type { IntentClassification, IntentCategory } from "./types.js";
7
+ export interface ClassifierConfig {
8
+ /** Require user approval before file writes. */
9
+ require_approval_writes?: boolean;
10
+ /** Require user approval before file edits. */
11
+ require_approval_edits?: boolean;
12
+ /** Require user approval before moderate shell commands. */
13
+ require_approval_shell_moderate?: boolean;
14
+ /** Require user approval before unknown tools. */
15
+ require_approval_unknown?: boolean;
16
+ /** @deprecated Use require_approval_writes. Historical alias. */
17
+ approve_writes?: boolean;
18
+ /** @deprecated Use require_approval_edits. Historical alias. */
19
+ approve_edits?: boolean;
20
+ /** @deprecated Use require_approval_shell_moderate. Historical alias. */
21
+ approve_shell_moderate?: boolean;
22
+ /** @deprecated Use require_approval_unknown. Historical alias. */
23
+ approve_unknown?: boolean;
24
+ }
25
+ /**
26
+ * Classifies tool calls by risk level and approval requirements.
27
+ *
28
+ * Default policy:
29
+ * - file_read, shell_safe: auto-approve
30
+ * - file_write, network, unknown: require approval (configurable)
31
+ * - shell_moderate: auto-approve by default (configurable)
32
+ * - file_delete, shell_dangerous: always require approval
33
+ */
34
+ export declare class IntentClassifier {
35
+ private config;
36
+ constructor(config?: ClassifierConfig);
37
+ /**
38
+ * Classify a tool call by name and arguments.
39
+ */
40
+ classify(toolName: string, args: Record<string, unknown>): IntentClassification;
41
+ /**
42
+ * Classify a bash command by its content.
43
+ */
44
+ private _classifyBashCommand;
45
+ /**
46
+ * Classify a builtin command.
47
+ */
48
+ private _classifyBuiltinCommand;
49
+ /**
50
+ * Classify by intent category directly.
51
+ */
52
+ classifyByCategory(category: IntentCategory, args: Record<string, unknown>): IntentClassification;
53
+ }