@apholdings/jensen-code 0.0.1 → 0.0.3

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 (359) hide show
  1. package/CHANGELOG.md +21 -20
  2. package/README.md +6 -5
  3. package/dist/cli/args.d.ts +1 -1
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/config-selector.d.ts.map +1 -1
  7. package/dist/cli/config-selector.js +1 -1
  8. package/dist/cli/config-selector.js.map +1 -1
  9. package/dist/cli/file-processor.d.ts +1 -1
  10. package/dist/cli/file-processor.d.ts.map +1 -1
  11. package/dist/cli/file-processor.js.map +1 -1
  12. package/dist/cli/list-models.d.ts.map +1 -1
  13. package/dist/cli/list-models.js +1 -1
  14. package/dist/cli/list-models.js.map +1 -1
  15. package/dist/cli/session-picker.d.ts.map +1 -1
  16. package/dist/cli/session-picker.js +1 -1
  17. package/dist/cli/session-picker.js.map +1 -1
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js +2 -2
  20. package/dist/cli.js.map +1 -1
  21. package/dist/core/agent-session.d.ts +2 -2
  22. package/dist/core/agent-session.d.ts.map +1 -1
  23. package/dist/core/agent-session.js +1 -1
  24. package/dist/core/agent-session.js.map +1 -1
  25. package/dist/core/auth-storage.d.ts +2 -2
  26. package/dist/core/auth-storage.d.ts.map +1 -1
  27. package/dist/core/auth-storage.js +2 -2
  28. package/dist/core/auth-storage.js.map +1 -1
  29. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  30. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  31. package/dist/core/compaction/branch-summarization.js +1 -1
  32. package/dist/core/compaction/branch-summarization.js.map +1 -1
  33. package/dist/core/compaction/compaction.d.ts +2 -2
  34. package/dist/core/compaction/compaction.d.ts.map +1 -1
  35. package/dist/core/compaction/compaction.js +1 -1
  36. package/dist/core/compaction/compaction.js.map +1 -1
  37. package/dist/core/compaction/utils.d.ts +2 -2
  38. package/dist/core/compaction/utils.d.ts.map +1 -1
  39. package/dist/core/compaction/utils.js.map +1 -1
  40. package/dist/core/defaults.d.ts +1 -1
  41. package/dist/core/defaults.d.ts.map +1 -1
  42. package/dist/core/defaults.js.map +1 -1
  43. package/dist/core/export-html/index.d.ts +1 -1
  44. package/dist/core/export-html/index.d.ts.map +1 -1
  45. package/dist/core/export-html/index.js.map +1 -1
  46. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  47. package/dist/core/export-html/tool-renderer.js.map +1 -1
  48. package/dist/core/extensions/loader.d.ts.map +1 -1
  49. package/dist/core/extensions/loader.js +15 -15
  50. package/dist/core/extensions/loader.js.map +1 -1
  51. package/dist/core/extensions/runner.d.ts +3 -3
  52. package/dist/core/extensions/runner.d.ts.map +1 -1
  53. package/dist/core/extensions/runner.js.map +1 -1
  54. package/dist/core/extensions/types.d.ts +5 -5
  55. package/dist/core/extensions/types.d.ts.map +1 -1
  56. package/dist/core/extensions/types.js.map +1 -1
  57. package/dist/core/extensions/wrapper.d.ts +1 -1
  58. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  59. package/dist/core/extensions/wrapper.js.map +1 -1
  60. package/dist/core/keybindings.d.ts +1 -1
  61. package/dist/core/keybindings.d.ts.map +1 -1
  62. package/dist/core/keybindings.js +1 -1
  63. package/dist/core/keybindings.js.map +1 -1
  64. package/dist/core/messages.d.ts +3 -3
  65. package/dist/core/messages.d.ts.map +1 -1
  66. package/dist/core/messages.js.map +1 -1
  67. package/dist/core/model-registry.d.ts +1 -1
  68. package/dist/core/model-registry.d.ts.map +1 -1
  69. package/dist/core/model-registry.js +2 -2
  70. package/dist/core/model-registry.js.map +1 -1
  71. package/dist/core/model-resolver.d.ts +2 -2
  72. package/dist/core/model-resolver.d.ts.map +1 -1
  73. package/dist/core/model-resolver.js +1 -1
  74. package/dist/core/model-resolver.js.map +1 -1
  75. package/dist/core/sdk.d.ts +3 -3
  76. package/dist/core/sdk.d.ts.map +1 -1
  77. package/dist/core/sdk.js +2 -2
  78. package/dist/core/sdk.js.map +1 -1
  79. package/dist/core/session-manager.d.ts +2 -2
  80. package/dist/core/session-manager.d.ts.map +1 -1
  81. package/dist/core/session-manager.js.map +1 -1
  82. package/dist/core/settings-manager.d.ts +1 -1
  83. package/dist/core/settings-manager.d.ts.map +1 -1
  84. package/dist/core/settings-manager.js.map +1 -1
  85. package/dist/core/tools/bash.d.ts +1 -1
  86. package/dist/core/tools/bash.d.ts.map +1 -1
  87. package/dist/core/tools/bash.js.map +1 -1
  88. package/dist/core/tools/edit.d.ts +1 -1
  89. package/dist/core/tools/edit.d.ts.map +1 -1
  90. package/dist/core/tools/edit.js.map +1 -1
  91. package/dist/core/tools/find.d.ts +1 -1
  92. package/dist/core/tools/find.d.ts.map +1 -1
  93. package/dist/core/tools/find.js.map +1 -1
  94. package/dist/core/tools/grep.d.ts +1 -1
  95. package/dist/core/tools/grep.d.ts.map +1 -1
  96. package/dist/core/tools/grep.js.map +1 -1
  97. package/dist/core/tools/index.d.ts +1 -1
  98. package/dist/core/tools/index.d.ts.map +1 -1
  99. package/dist/core/tools/index.js.map +1 -1
  100. package/dist/core/tools/ls.d.ts +1 -1
  101. package/dist/core/tools/ls.d.ts.map +1 -1
  102. package/dist/core/tools/ls.js.map +1 -1
  103. package/dist/core/tools/read.d.ts +1 -1
  104. package/dist/core/tools/read.d.ts.map +1 -1
  105. package/dist/core/tools/read.js.map +1 -1
  106. package/dist/core/tools/write.d.ts +1 -1
  107. package/dist/core/tools/write.d.ts.map +1 -1
  108. package/dist/core/tools/write.js.map +1 -1
  109. package/dist/main.d.ts.map +1 -1
  110. package/dist/main.js +1 -1
  111. package/dist/main.js.map +1 -1
  112. package/dist/modes/interactive/components/armin.d.ts +1 -1
  113. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  114. package/dist/modes/interactive/components/armin.js.map +1 -1
  115. package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
  116. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  117. package/dist/modes/interactive/components/assistant-message.js +1 -1
  118. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  119. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  120. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  121. package/dist/modes/interactive/components/bash-execution.js +1 -1
  122. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  123. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  124. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  125. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  126. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  127. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  128. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  129. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  130. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  131. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  132. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  133. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  134. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  135. package/dist/modes/interactive/components/config-selector.d.ts +1 -1
  136. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  137. package/dist/modes/interactive/components/config-selector.js +1 -1
  138. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  139. package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
  140. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  141. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  142. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  143. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  144. package/dist/modes/interactive/components/custom-editor.js +1 -1
  145. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  146. package/dist/modes/interactive/components/custom-message.d.ts +1 -1
  147. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  148. package/dist/modes/interactive/components/custom-message.js +1 -1
  149. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  150. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  151. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  152. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  153. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  154. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  155. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  156. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  157. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  158. package/dist/modes/interactive/components/extension-editor.js +1 -1
  159. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  160. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  161. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  162. package/dist/modes/interactive/components/extension-input.js +1 -1
  163. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  164. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  165. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  166. package/dist/modes/interactive/components/extension-selector.js +1 -1
  167. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  168. package/dist/modes/interactive/components/footer.d.ts +1 -1
  169. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  170. package/dist/modes/interactive/components/footer.js +1 -1
  171. package/dist/modes/interactive/components/footer.js.map +1 -1
  172. package/dist/modes/interactive/components/header.d.ts +1 -1
  173. package/dist/modes/interactive/components/header.d.ts.map +1 -1
  174. package/dist/modes/interactive/components/header.js.map +1 -1
  175. package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
  176. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  177. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  178. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  179. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  180. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  181. package/dist/modes/interactive/components/login-dialog.js +2 -2
  182. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  183. package/dist/modes/interactive/components/model-selector.d.ts +2 -2
  184. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  185. package/dist/modes/interactive/components/model-selector.js +2 -2
  186. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  187. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  188. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  189. package/dist/modes/interactive/components/oauth-selector.js +2 -2
  190. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  191. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  192. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  193. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  194. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  195. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  196. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  197. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  198. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  199. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  200. package/dist/modes/interactive/components/session-selector.js +1 -1
  201. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  202. package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
  203. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  204. package/dist/modes/interactive/components/settings-selector.js +1 -1
  205. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  206. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  207. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  208. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  209. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  210. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  211. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  212. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  213. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  214. package/dist/modes/interactive/components/theme-selector.d.ts +1 -1
  215. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  216. package/dist/modes/interactive/components/theme-selector.js +1 -1
  217. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  218. package/dist/modes/interactive/components/thinking-selector.d.ts +2 -2
  219. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  220. package/dist/modes/interactive/components/thinking-selector.js +1 -1
  221. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  222. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  223. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  224. package/dist/modes/interactive/components/tool-execution.js +1 -1
  225. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  226. package/dist/modes/interactive/components/top-bar.d.ts +1 -1
  227. package/dist/modes/interactive/components/top-bar.d.ts.map +1 -1
  228. package/dist/modes/interactive/components/top-bar.js +1 -1
  229. package/dist/modes/interactive/components/top-bar.js.map +1 -1
  230. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  231. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  232. package/dist/modes/interactive/components/tree-selector.js +1 -1
  233. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  234. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  235. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  236. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  237. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  238. package/dist/modes/interactive/components/user-message.d.ts +1 -1
  239. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  240. package/dist/modes/interactive/components/user-message.js +1 -1
  241. package/dist/modes/interactive/components/user-message.js.map +1 -1
  242. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  243. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  244. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  245. package/dist/modes/interactive/interactive-mode.d.ts +1 -1
  246. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  247. package/dist/modes/interactive/interactive-mode.js +1 -1
  248. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  249. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  250. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  251. package/dist/modes/interactive/theme/theme.js +1 -1
  252. package/dist/modes/interactive/theme/theme.js.map +1 -1
  253. package/dist/modes/print-mode.d.ts +1 -1
  254. package/dist/modes/print-mode.d.ts.map +1 -1
  255. package/dist/modes/print-mode.js.map +1 -1
  256. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  257. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  258. package/dist/modes/rpc/rpc-client.js.map +1 -1
  259. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  260. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  261. package/dist/modes/rpc/rpc-types.js.map +1 -1
  262. package/dist/utils/image-resize.d.ts +1 -1
  263. package/dist/utils/image-resize.d.ts.map +1 -1
  264. package/dist/utils/image-resize.js.map +1 -1
  265. package/docs/compaction.md +3 -2
  266. package/docs/custom-provider.md +4 -3
  267. package/docs/extensions.md +25 -24
  268. package/docs/packages.md +2 -1
  269. package/docs/rpc.md +2 -1
  270. package/docs/sdk.md +25 -24
  271. package/docs/session.md +2 -1
  272. package/docs/termux.md +2 -1
  273. package/docs/tui.md +21 -20
  274. package/examples/extensions/README.md +3 -2
  275. package/examples/extensions/antigravity-image-gen.ts +3 -2
  276. package/examples/extensions/auto-commit-on-exit.ts +2 -1
  277. package/examples/extensions/bash-spawn-hook.ts +3 -2
  278. package/examples/extensions/bookmark.ts +2 -1
  279. package/examples/extensions/built-in-tool-renderer.ts +4 -3
  280. package/examples/extensions/claude-rules.ts +2 -1
  281. package/examples/extensions/commands.ts +2 -1
  282. package/examples/extensions/confirm-destructive.ts +2 -1
  283. package/examples/extensions/custom-compaction.ts +4 -3
  284. package/examples/extensions/custom-footer.ts +4 -3
  285. package/examples/extensions/custom-header.ts +3 -2
  286. package/examples/extensions/custom-provider-anthropic/index.ts +3 -2
  287. package/examples/extensions/custom-provider-gitlab-duo/index.ts +3 -2
  288. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  289. package/examples/extensions/custom-provider-qwen-cli/index.ts +3 -2
  290. package/examples/extensions/dirty-repo-guard.ts +2 -1
  291. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  292. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  293. package/examples/extensions/doom-overlay/index.ts +2 -1
  294. package/examples/extensions/dynamic-resources/index.ts +2 -1
  295. package/examples/extensions/dynamic-tools.ts +2 -1
  296. package/examples/extensions/event-bus.ts +2 -1
  297. package/examples/extensions/file-trigger.ts +2 -1
  298. package/examples/extensions/git-checkpoint.ts +2 -1
  299. package/examples/extensions/handoff.ts +4 -3
  300. package/examples/extensions/hello.ts +3 -2
  301. package/examples/extensions/inline-bash.ts +2 -1
  302. package/examples/extensions/input-transform.ts +2 -1
  303. package/examples/extensions/interactive-shell.ts +2 -1
  304. package/examples/extensions/mac-system-theme.ts +2 -1
  305. package/examples/extensions/message-renderer.ts +3 -2
  306. package/examples/extensions/minimal-mode.ts +4 -3
  307. package/examples/extensions/modal-editor.ts +3 -2
  308. package/examples/extensions/model-status.ts +2 -1
  309. package/examples/extensions/notify.ts +2 -1
  310. package/examples/extensions/overlay-qa-tests.ts +4 -3
  311. package/examples/extensions/overlay-test.ts +3 -2
  312. package/examples/extensions/permission-gate.ts +2 -1
  313. package/examples/extensions/pirate.ts +2 -1
  314. package/examples/extensions/plan-mode/index.ts +5 -4
  315. package/examples/extensions/preset.ts +4 -3
  316. package/examples/extensions/protected-paths.ts +2 -1
  317. package/examples/extensions/provider-payload.ts +2 -1
  318. package/examples/extensions/qna.ts +4 -3
  319. package/examples/extensions/question.ts +3 -2
  320. package/examples/extensions/questionnaire.ts +3 -2
  321. package/examples/extensions/rainbow-editor.ts +2 -1
  322. package/examples/extensions/reload-runtime.ts +2 -1
  323. package/examples/extensions/rpc-demo.ts +2 -1
  324. package/examples/extensions/sandbox/index.ts +3 -2
  325. package/examples/extensions/send-user-message.ts +2 -1
  326. package/examples/extensions/session-name.ts +2 -1
  327. package/examples/extensions/shutdown-command.ts +2 -1
  328. package/examples/extensions/snake.ts +3 -2
  329. package/examples/extensions/space-invaders.ts +3 -2
  330. package/examples/extensions/ssh.ts +3 -2
  331. package/examples/extensions/status-line.ts +2 -1
  332. package/examples/extensions/subagent/agents.ts +2 -1
  333. package/examples/extensions/subagent/index.ts +6 -5
  334. package/examples/extensions/summarize.ts +5 -4
  335. package/examples/extensions/system-prompt-header.ts +2 -1
  336. package/examples/extensions/timed-confirm.ts +2 -1
  337. package/examples/extensions/titlebar-spinner.ts +2 -1
  338. package/examples/extensions/todo.ts +4 -3
  339. package/examples/extensions/tool-override.ts +3 -2
  340. package/examples/extensions/tools.ts +4 -3
  341. package/examples/extensions/trigger-compact.ts +2 -1
  342. package/examples/extensions/truncated-tool.ts +4 -3
  343. package/examples/extensions/widget-placement.ts +2 -1
  344. package/examples/extensions/with-deps/index.ts +2 -1
  345. package/examples/rpc-extension-ui.ts +1 -1
  346. package/examples/sdk/01-minimal.ts +2 -1
  347. package/examples/sdk/02-custom-model.ts +3 -2
  348. package/examples/sdk/03-custom-prompt.ts +2 -1
  349. package/examples/sdk/04-skills.ts +2 -1
  350. package/examples/sdk/05-tools.ts +2 -1
  351. package/examples/sdk/06-extensions.ts +3 -2
  352. package/examples/sdk/07-context-files.ts +2 -1
  353. package/examples/sdk/08-prompt-templates.ts +2 -1
  354. package/examples/sdk/09-api-keys-and-oauth.ts +2 -1
  355. package/examples/sdk/10-settings.ts +2 -1
  356. package/examples/sdk/11-sessions.ts +2 -1
  357. package/examples/sdk/12-full-control.ts +3 -2
  358. package/examples/sdk/README.md +3 -2
  359. package/package.json +11 -8
package/docs/tui.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Extensions and custom tools can render custom TUI components for interactive user interfaces. This page covers the component system and available building blocks.
6
6
 
7
- **Source:** [`@mariozechner/pi-tui`](https://github.com/badlogic/pi-mono/tree/main/packages/tui)
7
+ **Source:** [`@apholdings/jensen-tui`](https://github.com/badlogic/pi-mono/tree/main/packages/tui)
8
8
 
9
9
  ## Component Interface
10
10
 
@@ -33,7 +33,7 @@ The TUI appends a full SGR reset and OSC 8 reset at the end of each rendered lin
33
33
  Components that display a text cursor and need IME (Input Method Editor) support should implement the `Focusable` interface:
34
34
 
35
35
  ```typescript
36
- import { CURSOR_MARKER, type Component, type Focusable } from "@mariozechner/pi-tui";
36
+ import { CURSOR_MARKER, type Component, type Focusable } from "@apholdings/jensen-tui";
37
37
 
38
38
  class MyInput implements Component, Focusable {
39
39
  focused: boolean = false; // Set by TUI when focus changes
@@ -59,7 +59,7 @@ This enables IME candidate windows to appear at the correct position for CJK inp
59
59
  When a container component (dialog, selector, etc.) contains an `Input` or `Editor` child, the container must implement `Focusable` and propagate the focus state to the child. Otherwise, the hardware cursor won't be positioned correctly for IME input.
60
60
 
61
61
  ```typescript
62
- import { Container, type Focusable, Input } from "@mariozechner/pi-tui";
62
+ import { Container, type Focusable, Input } from "@apholdings/jensen-tui";
63
63
 
64
64
  class SearchDialog extends Container implements Focusable {
65
65
  private searchInput: Input;
@@ -179,10 +179,10 @@ See [overlay-qa-tests.ts](../examples/extensions/overlay-qa-tests.ts) for compre
179
179
 
180
180
  ## Built-in Components
181
181
 
182
- Import from `@mariozechner/pi-tui`:
182
+ Import from `@apholdings/jensen-tui`:
183
183
 
184
184
  ```typescript
185
- import { Text, Box, Container, Spacer, Markdown } from "@mariozechner/pi-tui";
185
+ import { Text, Box, Container, Spacer, Markdown } from "@apholdings/jensen-tui";
186
186
  ```
187
187
 
188
188
  ### Text
@@ -264,7 +264,7 @@ const image = new Image(
264
264
  Use `matchesKey()` for key detection:
265
265
 
266
266
  ```typescript
267
- import { matchesKey, Key } from "@mariozechner/pi-tui";
267
+ import { matchesKey, Key } from "@apholdings/jensen-tui";
268
268
 
269
269
  handleInput(data: string) {
270
270
  if (matchesKey(data, Key.up)) {
@@ -290,7 +290,7 @@ handleInput(data: string) {
290
290
  **Critical:** Each line from `render()` must not exceed the `width` parameter.
291
291
 
292
292
  ```typescript
293
- import { visibleWidth, truncateToWidth } from "@mariozechner/pi-tui";
293
+ import { visibleWidth, truncateToWidth } from "@apholdings/jensen-tui";
294
294
 
295
295
  render(width: number): string[] {
296
296
  // Truncate long lines
@@ -311,7 +311,7 @@ Example: Interactive selector
311
311
  import {
312
312
  matchesKey, Key,
313
313
  truncateToWidth, visibleWidth
314
- } from "@mariozechner/pi-tui";
314
+ } from "@apholdings/jensen-tui";
315
315
 
316
316
  class MySelector {
317
317
  private items: string[];
@@ -425,8 +425,8 @@ renderResult(result, options, theme) {
425
425
  **For Markdown**, use `getMarkdownTheme()`:
426
426
 
427
427
  ```typescript
428
- import { getMarkdownTheme } from "@mariozechner/pi-coding-agent";
429
- import { Markdown } from "@mariozechner/pi-tui";
428
+ import { getMarkdownTheme } from "@apholdings/jensen-code";
429
+ import { Markdown } from "@apholdings/jensen-tui";
430
430
 
431
431
  renderResult(result, options, theme) {
432
432
  const mdTheme = getMarkdownTheme();
@@ -587,12 +587,12 @@ These patterns cover the most common UI needs in extensions. **Copy these patter
587
587
 
588
588
  ### Pattern 1: Selection Dialog (SelectList)
589
589
 
590
- For letting users pick from a list of options. Use `SelectList` from `@mariozechner/pi-tui` with `DynamicBorder` for framing.
590
+ For letting users pick from a list of options. Use `SelectList` from `@apholdings/jensen-tui` with `DynamicBorder` for framing.
591
591
 
592
592
  ```typescript
593
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
594
- import { DynamicBorder } from "@mariozechner/pi-coding-agent";
595
- import { Container, type SelectItem, SelectList, Text } from "@mariozechner/pi-tui";
593
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
594
+ import { DynamicBorder } from "@apholdings/jensen-code";
595
+ import { Container, type SelectItem, SelectList, Text } from "@apholdings/jensen-tui";
596
596
 
597
597
  pi.registerCommand("pick", {
598
598
  handler: async (_args, ctx) => {
@@ -650,7 +650,7 @@ pi.registerCommand("pick", {
650
650
  For operations that take time and should be cancellable. `BorderedLoader` shows a spinner and handles escape to cancel.
651
651
 
652
652
  ```typescript
653
- import { BorderedLoader } from "@mariozechner/pi-coding-agent";
653
+ import { BorderedLoader } from "@apholdings/jensen-code";
654
654
 
655
655
  pi.registerCommand("fetch", {
656
656
  handler: async (_args, ctx) => {
@@ -679,11 +679,11 @@ pi.registerCommand("fetch", {
679
679
 
680
680
  ### Pattern 3: Settings/Toggles (SettingsList)
681
681
 
682
- For toggling multiple settings. Use `SettingsList` from `@mariozechner/pi-tui` with `getSettingsListTheme()`.
682
+ For toggling multiple settings. Use `SettingsList` from `@apholdings/jensen-tui` with `getSettingsListTheme()`.
683
683
 
684
684
  ```typescript
685
- import { getSettingsListTheme } from "@mariozechner/pi-coding-agent";
686
- import { Container, type SettingItem, SettingsList, Text } from "@mariozechner/pi-tui";
685
+ import { getSettingsListTheme } from "@apholdings/jensen-code";
686
+ import { Container, type SettingItem, SettingsList, Text } from "@apholdings/jensen-tui";
687
687
 
688
688
  pi.registerCommand("settings", {
689
689
  handler: async (_args, ctx) => {
@@ -792,8 +792,8 @@ Token stats available via `ctx.sessionManager.getBranch()` and `ctx.model`.
792
792
  Replace the main input editor with a custom implementation. Useful for modal editing (vim), different keybindings (emacs), or specialized input handling.
793
793
 
794
794
  ```typescript
795
- import { CustomEditor, type ExtensionAPI } from "@mariozechner/pi-coding-agent";
796
- import { matchesKey, truncateToWidth } from "@mariozechner/pi-tui";
795
+ import { CustomEditor, type ExtensionAPI } from "@apholdings/jensen-code";
796
+ import { matchesKey, truncateToWidth } from "@apholdings/jensen-tui";
797
797
 
798
798
  type Mode = "normal" | "insert";
799
799
 
@@ -885,3 +885,4 @@ export default function (pi: ExtensionAPI) {
885
885
  - **Custom editor**: [examples/extensions/modal-editor.ts](../examples/extensions/modal-editor.ts) - Vim-like modal editing
886
886
  - **Snake game**: [examples/extensions/snake.ts](../examples/extensions/snake.ts) - Full game with keyboard input, game loop
887
887
  - **Custom tool rendering**: [examples/extensions/todo.ts](../examples/extensions/todo.ts) - renderCall and renderResult
888
+
@@ -134,7 +134,7 @@ cp permission-gate.ts ~/.pi/agent/extensions/
134
134
  See [docs/extensions.md](../../docs/extensions.md) for full documentation.
135
135
 
136
136
  ```typescript
137
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
137
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
138
138
  import { Type } from "@sinclair/typebox";
139
139
 
140
140
  export default function (pi: ExtensionAPI) {
@@ -176,7 +176,7 @@ export default function (pi: ExtensionAPI) {
176
176
 
177
177
  **Use StringEnum for string parameters** (required for Google API compatibility):
178
178
  ```typescript
179
- import { StringEnum } from "@mariozechner/pi-ai";
179
+ import { StringEnum } from "@apholdings/jensen-ai";
180
180
 
181
181
  // Good
182
182
  action: StringEnum(["list", "add"] as const)
@@ -203,3 +203,4 @@ pi.on("session_start", async (_event, ctx) => {
203
203
  }
204
204
  });
205
205
  ```
206
+
@@ -30,8 +30,8 @@ import { existsSync, readFileSync } from "node:fs";
30
30
  import { mkdir, writeFile } from "node:fs/promises";
31
31
  import { homedir } from "node:os";
32
32
  import { join } from "node:path";
33
- import { StringEnum } from "@mariozechner/pi-ai";
34
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
33
+ import { StringEnum } from "@apholdings/jensen-ai";
34
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
35
35
  import { type Static, Type } from "@sinclair/typebox";
36
36
 
37
37
  const PROVIDER = "google-antigravity";
@@ -413,3 +413,4 @@ export default function antigravityImageGen(pi: ExtensionAPI) {
413
413
  },
414
414
  });
415
415
  }
416
+
@@ -5,7 +5,7 @@
5
5
  * Uses the last assistant message to generate a commit message.
6
6
  */
7
7
 
8
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
8
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
9
9
 
10
10
  export default function (pi: ExtensionAPI) {
11
11
  pi.on("session_shutdown", async (_event, ctx) => {
@@ -47,3 +47,4 @@ export default function (pi: ExtensionAPI) {
47
47
  }
48
48
  });
49
49
  }
50
+
@@ -7,8 +7,8 @@
7
7
  * pi -e ./bash-spawn-hook.ts
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
11
- import { createBashTool } from "@mariozechner/pi-coding-agent";
10
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
11
+ import { createBashTool } from "@apholdings/jensen-code";
12
12
 
13
13
  export default function (pi: ExtensionAPI) {
14
14
  const cwd = process.cwd();
@@ -28,3 +28,4 @@ export default function (pi: ExtensionAPI) {
28
28
  },
29
29
  });
30
30
  }
31
+
@@ -7,7 +7,7 @@
7
7
  * Usage: /bookmark [label] - bookmark the last assistant message
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
10
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
11
11
 
12
12
  export default function (pi: ExtensionAPI) {
13
13
  pi.registerCommand("bookmark", {
@@ -48,3 +48,4 @@ export default function (pi: ExtensionAPI) {
48
48
  },
49
49
  });
50
50
  }
51
+
@@ -23,9 +23,9 @@
23
23
  * pi -e ./built-in-tool-renderer.ts
24
24
  */
25
25
 
26
- import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@mariozechner/pi-coding-agent";
27
- import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@mariozechner/pi-coding-agent";
28
- import { Text } from "@mariozechner/pi-tui";
26
+ import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@apholdings/jensen-code";
27
+ import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@apholdings/jensen-code";
28
+ import { Text } from "@apholdings/jensen-tui";
29
29
 
30
30
  export default function (pi: ExtensionAPI) {
31
31
  const cwd = process.cwd();
@@ -244,3 +244,4 @@ export default function (pi: ExtensionAPI) {
244
244
  },
245
245
  });
246
246
  }
247
+
@@ -19,7 +19,7 @@
19
19
 
20
20
  import * as fs from "node:fs";
21
21
  import * as path from "node:path";
22
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
22
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
23
23
 
24
24
  /**
25
25
  * Recursively find all .md files in a directory
@@ -84,3 +84,4 @@ When working on tasks related to these rules, use the read tool to load the rele
84
84
  };
85
85
  });
86
86
  }
87
+
@@ -10,7 +10,7 @@
10
10
  * 3. Use /commands extensions to filter by source
11
11
  */
12
12
 
13
- import type { ExtensionAPI, SlashCommandInfo } from "@mariozechner/pi-coding-agent";
13
+ import type { ExtensionAPI, SlashCommandInfo } from "@apholdings/jensen-code";
14
14
 
15
15
  export default function commandsExtension(pi: ExtensionAPI) {
16
16
  pi.registerCommand("commands", {
@@ -70,3 +70,4 @@ export default function commandsExtension(pi: ExtensionAPI) {
70
70
  },
71
71
  });
72
72
  }
73
+
@@ -5,7 +5,7 @@
5
5
  * Demonstrates how to cancel session events using the before_* events.
6
6
  */
7
7
 
8
- import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@mariozechner/pi-coding-agent";
8
+ import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@apholdings/jensen-code";
9
9
 
10
10
  export default function (pi: ExtensionAPI) {
11
11
  pi.on("session_before_switch", async (event: SessionBeforeSwitchEvent, ctx) => {
@@ -57,3 +57,4 @@ export default function (pi: ExtensionAPI) {
57
57
  }
58
58
  });
59
59
  }
60
+
@@ -13,9 +13,9 @@
13
13
  * pi --extension examples/extensions/custom-compaction.ts
14
14
  */
15
15
 
16
- import { complete } from "@mariozechner/pi-ai";
17
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
18
- import { convertToLlm, serializeConversation } from "@mariozechner/pi-coding-agent";
16
+ import { complete } from "@apholdings/jensen-ai";
17
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
18
+ import { convertToLlm, serializeConversation } from "@apholdings/jensen-code";
19
19
 
20
20
  export default function (pi: ExtensionAPI) {
21
21
  pi.on("session_before_compact", async (event, ctx) => {
@@ -112,3 +112,4 @@ ${conversationText}
112
112
  }
113
113
  });
114
114
  }
115
+
@@ -8,9 +8,9 @@
8
8
  * Token stats come from ctx.sessionManager/ctx.model (already accessible).
9
9
  */
10
10
 
11
- import type { AssistantMessage } from "@mariozechner/pi-ai";
12
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
13
- import { truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
11
+ import type { AssistantMessage } from "@apholdings/jensen-ai";
12
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
13
+ import { truncateToWidth, visibleWidth } from "@apholdings/jensen-tui";
14
14
 
15
15
  export default function (pi: ExtensionAPI) {
16
16
  let enabled = false;
@@ -62,3 +62,4 @@ export default function (pi: ExtensionAPI) {
62
62
  },
63
63
  });
64
64
  }
65
+
@@ -5,8 +5,8 @@
5
5
  * (logo + keybinding hints) with a custom component showing the pi mascot.
6
6
  */
7
7
 
8
- import type { ExtensionAPI, Theme } from "@mariozechner/pi-coding-agent";
9
- import { VERSION } from "@mariozechner/pi-coding-agent";
8
+ import type { ExtensionAPI, Theme } from "@apholdings/jensen-code";
9
+ import { VERSION } from "@apholdings/jensen-code";
10
10
 
11
11
  // --- PI MASCOT ---
12
12
  // Based on pi_mascot.ts - the pi agent character
@@ -71,3 +71,4 @@ export default function (pi: ExtensionAPI) {
71
71
  },
72
72
  });
73
73
  }
74
+
@@ -42,8 +42,8 @@ import {
42
42
  type Tool,
43
43
  type ToolCall,
44
44
  type ToolResultMessage,
45
- } from "@mariozechner/pi-ai";
46
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
45
+ } from "@apholdings/jensen-ai";
46
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
47
47
 
48
48
  // =============================================================================
49
49
  // OAuth Implementation (copied from packages/ai/src/utils/oauth/anthropic.ts)
@@ -602,3 +602,4 @@ export default function (pi: ExtensionAPI) {
602
602
  streamSimple: streamCustomAnthropic,
603
603
  });
604
604
  }
605
+
@@ -20,8 +20,8 @@ import {
20
20
  type SimpleStreamOptions,
21
21
  streamSimpleAnthropic,
22
22
  streamSimpleOpenAIResponses,
23
- } from "@mariozechner/pi-ai";
24
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
23
+ } from "@apholdings/jensen-ai";
24
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
25
25
 
26
26
  // =============================================================================
27
27
  // Constants
@@ -347,3 +347,4 @@ export default function (pi: ExtensionAPI) {
347
347
  streamSimple: streamGitLabDuo,
348
348
  });
349
349
  }
350
+
@@ -8,7 +8,7 @@
8
8
  * npx tsx test.ts claude-sonnet-4-5-20250929 --thinking
9
9
  */
10
10
 
11
- import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@mariozechner/pi-ai";
11
+ import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@apholdings/jensen-ai";
12
12
  import { readFileSync } from "fs";
13
13
  import { homedir } from "os";
14
14
  import { join } from "path";
@@ -9,8 +9,8 @@
9
9
  * # Then /login qwen-cli, or set QWEN_CLI_API_KEY=...
10
10
  */
11
11
 
12
- import type { OAuthCredentials, OAuthLoginCallbacks } from "@mariozechner/pi-ai";
13
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
12
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "@apholdings/jensen-ai";
13
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
14
14
 
15
15
  // =============================================================================
16
16
  // Constants
@@ -343,3 +343,4 @@ export default function (pi: ExtensionAPI) {
343
343
  },
344
344
  });
345
345
  }
346
+
@@ -5,7 +5,7 @@
5
5
  * Useful to ensure work is committed before switching context.
6
6
  */
7
7
 
8
- import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent";
8
+ import type { ExtensionAPI, ExtensionContext } from "@apholdings/jensen-code";
9
9
 
10
10
  async function checkDirtyRepo(
11
11
  pi: ExtensionAPI,
@@ -54,3 +54,4 @@ export default function (pi: ExtensionAPI) {
54
54
  return checkDirtyRepo(pi, ctx, "fork");
55
55
  });
56
56
  }
57
+
@@ -5,8 +5,8 @@
5
5
  * Height is calculated from width to maintain DOOM's aspect ratio.
6
6
  */
7
7
 
8
- import type { Component } from "@mariozechner/pi-tui";
9
- import { isKeyRelease, type TUI } from "@mariozechner/pi-tui";
8
+ import type { Component } from "@apholdings/jensen-tui";
9
+ import { isKeyRelease, type TUI } from "@apholdings/jensen-tui";
10
10
  import type { DoomEngine } from "./doom-engine.js";
11
11
  import { DoomKeys, mapKeyToDoom } from "./doom-keys.js";
12
12
 
@@ -34,7 +34,7 @@ export const DoomKeys = {
34
34
  KEY_RALT: 0x80 + 0x38,
35
35
  } as const;
36
36
 
37
- import { Key, matchesKey, parseKey } from "@mariozechner/pi-tui";
37
+ import { Key, matchesKey, parseKey } from "@apholdings/jensen-tui";
38
38
 
39
39
  /**
40
40
  * Map terminal key input to DOOM key codes
@@ -9,7 +9,7 @@
9
9
  * This demonstrates that overlays can handle real-time game rendering at 35 FPS.
10
10
  */
11
11
 
12
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
12
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
13
13
  import { DoomOverlayComponent } from "./doom-component.js";
14
14
  import { DoomEngine } from "./doom-engine.js";
15
15
  import { ensureWadFile } from "./wad-finder.js";
@@ -72,3 +72,4 @@ export default function (pi: ExtensionAPI) {
72
72
  },
73
73
  });
74
74
  }
75
+
@@ -1,6 +1,6 @@
1
1
  import { dirname, join } from "node:path";
2
2
  import { fileURLToPath } from "node:url";
3
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
3
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
4
4
 
5
5
  const baseDir = dirname(fileURLToPath(import.meta.url));
6
6
 
@@ -13,3 +13,4 @@ export default function (pi: ExtensionAPI) {
13
13
  };
14
14
  });
15
15
  }
16
+
@@ -7,7 +7,7 @@
7
7
  * - Registers additional tools at runtime via /add-echo-tool <name>
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
10
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
11
11
  import { Type } from "@sinclair/typebox";
12
12
 
13
13
  const ECHO_PARAMS = Type.Object({
@@ -72,3 +72,4 @@ export default function dynamicToolsExtension(pi: ExtensionAPI) {
72
72
  },
73
73
  });
74
74
  }
75
+
@@ -7,7 +7,7 @@
7
7
  * Usage: /emit [event-name] [data] - emit an event on the bus
8
8
  */
9
9
 
10
- import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent";
10
+ import type { ExtensionAPI, ExtensionContext } from "@apholdings/jensen-code";
11
11
 
12
12
  export default function (pi: ExtensionAPI) {
13
13
  // Store ctx for use in event handler
@@ -41,3 +41,4 @@ export default function (pi: ExtensionAPI) {
41
41
  });
42
42
  });
43
43
  }
44
+
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  import * as fs from "node:fs";
12
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
12
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
13
13
 
14
14
  export default function (pi: ExtensionAPI) {
15
15
  pi.on("session_start", async (_event, ctx) => {
@@ -39,3 +39,4 @@ export default function (pi: ExtensionAPI) {
39
39
  }
40
40
  });
41
41
  }
42
+
@@ -5,7 +5,7 @@
5
5
  * When forking, offers to restore code to that point in history.
6
6
  */
7
7
 
8
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
8
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
9
9
 
10
10
  export default function (pi: ExtensionAPI) {
11
11
  const checkpoints = new Map<string, string>();
@@ -51,3 +51,4 @@ export default function (pi: ExtensionAPI) {
51
51
  checkpoints.clear();
52
52
  });
53
53
  }
54
+
@@ -12,9 +12,9 @@
12
12
  * The generated prompt appears as a draft in the editor for review/editing.
13
13
  */
14
14
 
15
- import { complete, type Message } from "@mariozechner/pi-ai";
16
- import type { ExtensionAPI, SessionEntry } from "@mariozechner/pi-coding-agent";
17
- import { BorderedLoader, convertToLlm, serializeConversation } from "@mariozechner/pi-coding-agent";
15
+ import { complete, type Message } from "@apholdings/jensen-ai";
16
+ import type { ExtensionAPI, SessionEntry } from "@apholdings/jensen-code";
17
+ import { BorderedLoader, convertToLlm, serializeConversation } from "@apholdings/jensen-code";
18
18
 
19
19
  const SYSTEM_PROMPT = `You are a context transfer assistant. Given a conversation history and the user's goal for a new thread, generate a focused prompt that:
20
20
 
@@ -148,3 +148,4 @@ export default function (pi: ExtensionAPI) {
148
148
  },
149
149
  });
150
150
  }
151
+
@@ -2,8 +2,8 @@
2
2
  * Hello Tool - Minimal custom tool example
3
3
  */
4
4
 
5
- import { Type } from "@mariozechner/pi-ai";
6
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
5
+ import { Type } from "@apholdings/jensen-ai";
6
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
7
7
 
8
8
  export default function (pi: ExtensionAPI) {
9
9
  pi.registerTool({
@@ -23,3 +23,4 @@ export default function (pi: ExtensionAPI) {
23
23
  },
24
24
  });
25
25
  }
26
+
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * Note: Regular !command syntax (whole-line bash) is preserved and works as before.
16
16
  */
17
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
17
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
18
18
 
19
19
  export default function (pi: ExtensionAPI) {
20
20
  const PATTERN = /!\{([^}]+)\}/g;
@@ -92,3 +92,4 @@ export default function (pi: ExtensionAPI) {
92
92
  return { action: "transform", text: result, images: event.images };
93
93
  });
94
94
  }
95
+
@@ -9,7 +9,7 @@
9
9
  * ping → "pong" (instant, no LLM)
10
10
  * time → current time (instant, no LLM)
11
11
  */
12
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
12
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
13
13
 
14
14
  export default function (pi: ExtensionAPI) {
15
15
  pi.on("input", async (event, ctx) => {
@@ -41,3 +41,4 @@ export default function (pi: ExtensionAPI) {
41
41
  return { action: "continue" };
42
42
  });
43
43
  }
44
+
@@ -21,7 +21,7 @@
21
21
  */
22
22
 
23
23
  import { spawnSync } from "node:child_process";
24
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
24
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
25
25
 
26
26
  // Default interactive commands - editors, pagers, git ops, TUIs
27
27
  const DEFAULT_INTERACTIVE_COMMANDS = [
@@ -194,3 +194,4 @@ export default function (pi: ExtensionAPI) {
194
194
  };
195
195
  });
196
196
  }
197
+
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { exec } from "node:child_process";
9
9
  import { promisify } from "node:util";
10
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
10
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
11
11
 
12
12
  const execAsync = promisify(exec);
13
13
 
@@ -45,3 +45,4 @@ export default function (pi: ExtensionAPI) {
45
45
  }
46
46
  });
47
47
  }
48
+
@@ -7,8 +7,8 @@
7
7
  * Usage: /status [message] - sends a status message with custom rendering
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
11
- import { Box, Text } from "@mariozechner/pi-tui";
10
+ import type { ExtensionAPI } from "@apholdings/jensen-code";
11
+ import { Box, Text } from "@apholdings/jensen-tui";
12
12
 
13
13
  export default function (pi: ExtensionAPI) {
14
14
  // Register custom renderer for "status-update" messages
@@ -57,3 +57,4 @@ export default function (pi: ExtensionAPI) {
57
57
  },
58
58
  });
59
59
  }
60
+