@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,202 @@
1
+ /**
2
+ * Agent Types — pizza's own message / tool / state model.
3
+ *
4
+ * Built on top of pi-ai's primitives (`UserMessage`, `AssistantMessage`,
5
+ * `ToolResultMessage`, `Tool`, `Model`) without carrying the old standalone
6
+ * agent-core package boundary.
7
+ *
8
+ * This module is the new canonical home for agent shape definitions.
9
+ * Callers should import from here.
10
+ */
11
+ import type { AssistantMessage, AssistantMessageEvent, Context, ImageContent, Message, Model, SimpleStreamOptions, streamSimple, TextContent, ThinkingLevel as AiThinkingLevel, Tool, ToolResultMessage, UserMessage } from "@earendil-works/pi-ai/compat";
12
+ import type { Static, TSchema } from "@sinclair/typebox";
13
+ export type { AssistantMessage, AssistantMessageEvent, ImageContent, Message, Model, TextContent, Tool, ToolResultMessage, UserMessage, };
14
+ /** Controls whether a tool runs sequentially or in parallel with other tool calls. */
15
+ export type ToolExecutionMode = "sequential" | "parallel";
16
+ export type ThinkingLevel = "off" | AiThinkingLevel;
17
+ /** A bash execution message (recorded by the runtime, not produced by the LLM). */
18
+ export interface BashExecutionMessage {
19
+ role: "bashExecution";
20
+ command: string;
21
+ /** Combined stdout+stderr output. */
22
+ output: string;
23
+ exitCode: number | undefined;
24
+ /** Whether the command was cancelled/aborted. */
25
+ cancelled: boolean;
26
+ /** Whether the output was truncated. */
27
+ truncated: boolean;
28
+ timestamp: number;
29
+ /** Path to full output file when truncated. */
30
+ fullOutputPath?: string;
31
+ /** Whether to exclude from LLM context. */
32
+ excludeFromContext?: boolean;
33
+ /** Separated stdout (when available). */
34
+ stdout?: string;
35
+ /** Separated stderr (when available). */
36
+ stderr?: string;
37
+ }
38
+ /** A summary inserted by compaction. */
39
+ export interface CompactionSummaryMessage {
40
+ role: "compactionSummary";
41
+ summary: string;
42
+ tokensBefore: number;
43
+ timestamp: number;
44
+ }
45
+ /** A branch summary inserted when switching branches. */
46
+ export interface BranchSummaryMessage {
47
+ role: "branchSummary";
48
+ summary: string;
49
+ /** Source branch/entry id. */
50
+ fromId?: string;
51
+ timestamp: number;
52
+ }
53
+ /** A custom extension-provided message. Generic over the structured payload type. */
54
+ export interface CustomMessage<T = unknown> {
55
+ role: "custom";
56
+ /** Discriminator for the extension to identify its own custom messages. */
57
+ customType: string;
58
+ /** Content visible to the LLM when this message is included in context. */
59
+ content: string | (TextContent | ImageContent)[];
60
+ /** Optional UI-only display text or boolean flag. */
61
+ display?: string | boolean;
62
+ /** Arbitrary structured payload for tooling / persistence. */
63
+ details?: T;
64
+ timestamp: number;
65
+ }
66
+ export type AgentMessage = Message | BashExecutionMessage | CompactionSummaryMessage | BranchSummaryMessage | CustomMessage;
67
+ /** Tool execution result returned to the LLM. */
68
+ export interface AgentToolResult<T = unknown> {
69
+ /** Text or image content returned to the model. */
70
+ content: (TextContent | ImageContent)[];
71
+ /** Optional structured payload for logs/UI. */
72
+ details?: T;
73
+ }
74
+ /** Optional streaming-update callback. */
75
+ export type AgentToolUpdateCallback<T = unknown> = (partial: AgentToolResult<T>) => void;
76
+ /** Pizza's tool definition. */
77
+ export interface AgentTool<TParameters extends TSchema = TSchema, TDetails = unknown> extends Tool<TParameters> {
78
+ /** Controls whether a tool runs sequentially or in parallel with other tool calls. */
79
+ executionMode?: ToolExecutionMode;
80
+ /** Optional shim for raw tool-call arguments before schema validation. */
81
+ prepareArguments?: (args: unknown) => Static<TParameters>;
82
+ /** Execute the tool call. Throw on failure. */
83
+ execute: (toolCallId: string, params: Static<TParameters>, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback<TDetails>) => Promise<AgentToolResult<TDetails>>;
84
+ }
85
+ export interface AgentState {
86
+ /** System prompt sent with each model request. */
87
+ systemPrompt: string;
88
+ /** Active model used for future turns. */
89
+ model: Model<any> | undefined;
90
+ /** Requested reasoning level for future turns. */
91
+ thinkingLevel: ThinkingLevel;
92
+ /** Available tools. */
93
+ tools: AgentTool<any>[];
94
+ /** Conversation transcript. */
95
+ messages: AgentMessage[];
96
+ /** True while the agent is processing a prompt. */
97
+ isStreaming: boolean;
98
+ /** Tool call ids currently executing. */
99
+ pendingToolCalls: ReadonlySet<string>;
100
+ /** Error message from the most recent failed turn. */
101
+ errorMessage?: string;
102
+ }
103
+ /** Type guard: is this a pi-ai LLM message (user / assistant / toolResult)? */
104
+ export declare function isLlmMessage(msg: AgentMessage): msg is Message;
105
+ /** Filter pizza-specific messages, keep only those the LLM can consume. */
106
+ export declare function toLlmMessages(messages: AgentMessage[]): Message[];
107
+ /** Events emitted during agent execution. */
108
+ export type AgentEvent = {
109
+ type: "agent_start";
110
+ } | {
111
+ type: "agent_end";
112
+ messages: AgentMessage[];
113
+ } | {
114
+ type: "turn_start";
115
+ } | {
116
+ type: "turn_end";
117
+ message: AgentMessage;
118
+ toolResults: ToolResultMessage[];
119
+ } | {
120
+ type: "message_start";
121
+ message: AgentMessage;
122
+ } | {
123
+ type: "message_update";
124
+ message: AgentMessage;
125
+ assistantMessageEvent: AssistantMessageEvent;
126
+ } | {
127
+ type: "message_end";
128
+ message: AgentMessage;
129
+ } | {
130
+ type: "tool_execution_start";
131
+ toolCallId: string;
132
+ toolName: string;
133
+ args: any;
134
+ } | {
135
+ type: "tool_execution_update";
136
+ toolCallId: string;
137
+ toolName: string;
138
+ args: any;
139
+ partialResult: any;
140
+ } | {
141
+ type: "tool_execution_end";
142
+ toolCallId: string;
143
+ toolName: string;
144
+ result: any;
145
+ isError: boolean;
146
+ };
147
+ /**
148
+ * Stream function used by the agent loop.
149
+ *
150
+ * Mirrors pi-ai's `streamSimple` shape so that pi-ai can be plugged in directly.
151
+ */
152
+ export type StreamFn = (...args: Parameters<typeof streamSimple>) => ReturnType<typeof streamSimple> | Promise<ReturnType<typeof streamSimple>>;
153
+ /** A single tool-call content block emitted by an assistant message. */
154
+ export type AgentToolCall = Extract<AssistantMessage["content"][number], {
155
+ type: "toolCall";
156
+ }>;
157
+ /** Result returned from `beforeToolCall`. */
158
+ export interface BeforeToolCallResult {
159
+ block?: boolean;
160
+ reason?: string;
161
+ }
162
+ /** Partial override returned from `afterToolCall`. */
163
+ export interface AfterToolCallResult {
164
+ content?: (TextContent | ImageContent)[];
165
+ details?: unknown;
166
+ isError?: boolean;
167
+ }
168
+ /** Context passed to `beforeToolCall`. */
169
+ export interface BeforeToolCallContext {
170
+ assistantMessage: AssistantMessage;
171
+ toolCall: AgentToolCall;
172
+ args: unknown;
173
+ context: AgentContext;
174
+ }
175
+ /** Context passed to `afterToolCall`. */
176
+ export interface AfterToolCallContext {
177
+ assistantMessage: AssistantMessage;
178
+ toolCall: AgentToolCall;
179
+ args: unknown;
180
+ result: AgentToolResult<any>;
181
+ isError: boolean;
182
+ context: AgentContext;
183
+ }
184
+ /** Context snapshot passed into the low-level agent loop. */
185
+ export interface AgentContext {
186
+ systemPrompt: string;
187
+ messages: AgentMessage[];
188
+ tools?: AgentTool<any>[];
189
+ }
190
+ /** Configuration for one agent loop run. */
191
+ export interface AgentLoopConfig extends SimpleStreamOptions {
192
+ model: Model<any>;
193
+ convertToLlm: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
194
+ transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;
195
+ getApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;
196
+ getSteeringMessages?: () => Promise<AgentMessage[]>;
197
+ getFollowUpMessages?: () => Promise<AgentMessage[]>;
198
+ toolExecution?: ToolExecutionMode;
199
+ beforeToolCall?: (context: BeforeToolCallContext, signal?: AbortSignal) => Promise<BeforeToolCallResult | undefined>;
200
+ afterToolCall?: (context: AfterToolCallContext, signal?: AbortSignal) => Promise<AfterToolCallResult | undefined>;
201
+ }
202
+ export type { Context };
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Agent Types — pizza's own message / tool / state model.
3
+ *
4
+ * Built on top of pi-ai's primitives (`UserMessage`, `AssistantMessage`,
5
+ * `ToolResultMessage`, `Tool`, `Model`) without carrying the old standalone
6
+ * agent-core package boundary.
7
+ *
8
+ * This module is the new canonical home for agent shape definitions.
9
+ * Callers should import from here.
10
+ */
11
+ // ============================================================================
12
+ // Helpers
13
+ // ============================================================================
14
+ /** Type guard: is this a pi-ai LLM message (user / assistant / toolResult)? */
15
+ export function isLlmMessage(msg) {
16
+ return msg.role === "user" || msg.role === "assistant" || msg.role === "toolResult";
17
+ }
18
+ /** Filter pizza-specific messages, keep only those the LLM can consume. */
19
+ export function toLlmMessages(messages) {
20
+ const out = [];
21
+ for (const m of messages) {
22
+ if (isLlmMessage(m)) {
23
+ out.push(m);
24
+ }
25
+ else if (m.role === "compactionSummary" || m.role === "branchSummary") {
26
+ // Inject summaries as a user message so the LLM sees them.
27
+ out.push({
28
+ role: "user",
29
+ content: `[Previous context summary]\n${m.summary}`,
30
+ timestamp: m.timestamp,
31
+ });
32
+ }
33
+ else if (m.role === "bashExecution") {
34
+ out.push({
35
+ role: "user",
36
+ content: `[Bash command executed]\n$ ${m.command}\n` +
37
+ (m.output ? `output:\n${m.output}\n` : "") +
38
+ `exit code: ${m.exitCode}`,
39
+ timestamp: m.timestamp,
40
+ });
41
+ }
42
+ else if (m.role === "custom") {
43
+ out.push({
44
+ role: "user",
45
+ content: m.content,
46
+ timestamp: m.timestamp,
47
+ });
48
+ }
49
+ }
50
+ return out;
51
+ }
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Credential storage for API keys and OAuth tokens.
3
+ * Handles loading, saving, and refreshing credentials from auth.json.
4
+ *
5
+ * Uses file locking to prevent race conditions when multiple Pizza instances
6
+ * try to refresh tokens simultaneously.
7
+ */
8
+ import { type OAuthCredentials, type OAuthLoginCallbacks, type OAuthProviderId } from "@earendil-works/pi-ai/compat";
9
+ export type ApiKeyCredential = {
10
+ type: "api_key";
11
+ key: string;
12
+ };
13
+ export type OAuthCredential = {
14
+ type: "oauth";
15
+ } & OAuthCredentials;
16
+ export type AuthCredential = ApiKeyCredential | OAuthCredential;
17
+ export type AuthStorageData = Record<string, AuthCredential>;
18
+ type LockResult<T> = {
19
+ result: T;
20
+ next?: string;
21
+ };
22
+ export interface AuthStorageBackend {
23
+ withLock<T>(fn: (current: string | undefined) => LockResult<T>): T;
24
+ withLockAsync<T>(fn: (current: string | undefined) => Promise<LockResult<T>>): Promise<T>;
25
+ }
26
+ export declare class FileAuthStorageBackend implements AuthStorageBackend {
27
+ private authPath;
28
+ constructor(authPath?: string);
29
+ private ensureParentDir;
30
+ private ensureFileExists;
31
+ private acquireLockSyncWithRetry;
32
+ withLock<T>(fn: (current: string | undefined) => LockResult<T>): T;
33
+ withLockAsync<T>(fn: (current: string | undefined) => Promise<LockResult<T>>): Promise<T>;
34
+ }
35
+ export declare class InMemoryAuthStorageBackend implements AuthStorageBackend {
36
+ private value;
37
+ withLock<T>(fn: (current: string | undefined) => LockResult<T>): T;
38
+ withLockAsync<T>(fn: (current: string | undefined) => Promise<LockResult<T>>): Promise<T>;
39
+ }
40
+ /**
41
+ * Credential storage backed by a JSON file.
42
+ */
43
+ export declare class AuthStorage {
44
+ private storage;
45
+ private data;
46
+ private runtimeOverrides;
47
+ private fallbackResolver?;
48
+ private loadError;
49
+ private errors;
50
+ private constructor();
51
+ static create(authPath?: string): AuthStorage;
52
+ static fromStorage(storage: AuthStorageBackend): AuthStorage;
53
+ static inMemory(data?: AuthStorageData): AuthStorage;
54
+ /**
55
+ * Set a runtime API key override (not persisted to disk).
56
+ * Used for CLI --api-key flag.
57
+ */
58
+ setRuntimeApiKey(provider: string, apiKey: string): void;
59
+ /**
60
+ * Remove a runtime API key override.
61
+ */
62
+ removeRuntimeApiKey(provider: string): void;
63
+ /**
64
+ * Set a fallback resolver for API keys not found in auth.json or env vars.
65
+ * Used for custom provider keys from models.json.
66
+ */
67
+ setFallbackResolver(resolver: (provider: string) => string | undefined): void;
68
+ private recordError;
69
+ private parseStorageData;
70
+ /**
71
+ * Reload credentials from storage.
72
+ */
73
+ reload(): void;
74
+ private persistProviderChange;
75
+ /**
76
+ * Get credential for a provider.
77
+ */
78
+ get(provider: string): AuthCredential | undefined;
79
+ /**
80
+ * Set credential for a provider.
81
+ */
82
+ set(provider: string, credential: AuthCredential): void;
83
+ /**
84
+ * Remove credential for a provider.
85
+ */
86
+ remove(provider: string): void;
87
+ /**
88
+ * List all providers with credentials.
89
+ */
90
+ list(): string[];
91
+ /**
92
+ * Check if credentials exist for a provider in auth.json.
93
+ */
94
+ has(provider: string): boolean;
95
+ /**
96
+ * Check if any form of auth is configured for a provider.
97
+ * Unlike getApiKey(), this doesn't refresh OAuth tokens.
98
+ */
99
+ hasAuth(provider: string): boolean;
100
+ /**
101
+ * Get all credentials (for passing to getOAuthApiKey).
102
+ */
103
+ getAll(): AuthStorageData;
104
+ drainErrors(): Error[];
105
+ /**
106
+ * Login to an OAuth provider.
107
+ */
108
+ login(providerId: OAuthProviderId, callbacks: OAuthLoginCallbacks): Promise<void>;
109
+ /**
110
+ * Logout from a provider.
111
+ */
112
+ logout(provider: string): void;
113
+ /**
114
+ * Refresh OAuth token with backend locking to prevent race conditions.
115
+ * Multiple Pizza instances may try to refresh simultaneously when tokens expire.
116
+ */
117
+ private refreshOAuthTokenWithLock;
118
+ /**
119
+ * Get API key for a provider.
120
+ * Priority:
121
+ * 1. Runtime override (CLI --api-key)
122
+ * 2. API key from auth.json
123
+ * 3. OAuth token from auth.json (auto-refreshed with locking)
124
+ * 4. Environment variable
125
+ * 5. Fallback resolver (models.json custom providers)
126
+ */
127
+ getApiKey(providerId: string, options?: {
128
+ includeFallback?: boolean;
129
+ }): Promise<string | undefined>;
130
+ /**
131
+ * Get all registered OAuth providers
132
+ */
133
+ getOAuthProviders(): import("@earendil-works/pi-ai/compat").OAuthProviderInterface[];
134
+ }
135
+ export {};