@openeryc/pi-coding-agent 0.75.11 → 0.75.13

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 (591) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  3. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  4. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  5. package/examples/extensions/sandbox/package-lock.json +2 -2
  6. package/examples/extensions/sandbox/package.json +1 -1
  7. package/examples/extensions/with-deps/package-lock.json +2 -2
  8. package/examples/extensions/with-deps/package.json +1 -1
  9. package/npm-shrinkwrap.json +12 -12
  10. package/package.json +4 -4
  11. package/dist/bun/cli.d.ts +0 -3
  12. package/dist/bun/cli.d.ts.map +0 -1
  13. package/dist/bun/cli.js +0 -9
  14. package/dist/bun/cli.js.map +0 -1
  15. package/dist/bun/register-bedrock.d.ts +0 -2
  16. package/dist/bun/register-bedrock.d.ts.map +0 -1
  17. package/dist/bun/register-bedrock.js +0 -4
  18. package/dist/bun/register-bedrock.js.map +0 -1
  19. package/dist/bun/restore-sandbox-env.d.ts +0 -13
  20. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  21. package/dist/bun/restore-sandbox-env.js +0 -32
  22. package/dist/bun/restore-sandbox-env.js.map +0 -1
  23. package/dist/cli/args.d.ts +0 -53
  24. package/dist/cli/args.d.ts.map +0 -1
  25. package/dist/cli/args.js +0 -341
  26. package/dist/cli/args.js.map +0 -1
  27. package/dist/cli/config-selector.d.ts +0 -14
  28. package/dist/cli/config-selector.d.ts.map +0 -1
  29. package/dist/cli/config-selector.js +0 -31
  30. package/dist/cli/config-selector.js.map +0 -1
  31. package/dist/cli/file-processor.d.ts +0 -15
  32. package/dist/cli/file-processor.d.ts.map +0 -1
  33. package/dist/cli/file-processor.js +0 -83
  34. package/dist/cli/file-processor.js.map +0 -1
  35. package/dist/cli/initial-message.d.ts +0 -18
  36. package/dist/cli/initial-message.d.ts.map +0 -1
  37. package/dist/cli/initial-message.js +0 -22
  38. package/dist/cli/initial-message.js.map +0 -1
  39. package/dist/cli/list-models.d.ts +0 -9
  40. package/dist/cli/list-models.d.ts.map +0 -1
  41. package/dist/cli/list-models.js +0 -98
  42. package/dist/cli/list-models.js.map +0 -1
  43. package/dist/cli/session-picker.d.ts +0 -9
  44. package/dist/cli/session-picker.d.ts.map +0 -1
  45. package/dist/cli/session-picker.js +0 -35
  46. package/dist/cli/session-picker.js.map +0 -1
  47. package/dist/cli.d.ts +0 -3
  48. package/dist/cli.d.ts.map +0 -1
  49. package/dist/cli.js +0 -18
  50. package/dist/cli.js.map +0 -1
  51. package/dist/config.d.ts +0 -92
  52. package/dist/config.d.ts.map +0 -1
  53. package/dist/config.js +0 -422
  54. package/dist/config.js.map +0 -1
  55. package/dist/core/agent-session-runtime.d.ts +0 -117
  56. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  57. package/dist/core/agent-session-runtime.js +0 -299
  58. package/dist/core/agent-session-runtime.js.map +0 -1
  59. package/dist/core/agent-session-services.d.ts +0 -86
  60. package/dist/core/agent-session-services.d.ts.map +0 -1
  61. package/dist/core/agent-session-services.js +0 -117
  62. package/dist/core/agent-session-services.js.map +0 -1
  63. package/dist/core/agent-session.d.ts +0 -605
  64. package/dist/core/agent-session.d.ts.map +0 -1
  65. package/dist/core/agent-session.js +0 -2519
  66. package/dist/core/agent-session.js.map +0 -1
  67. package/dist/core/auth-guidance.d.ts +0 -5
  68. package/dist/core/auth-guidance.d.ts.map +0 -1
  69. package/dist/core/auth-guidance.js +0 -21
  70. package/dist/core/auth-guidance.js.map +0 -1
  71. package/dist/core/auth-storage.d.ts +0 -141
  72. package/dist/core/auth-storage.d.ts.map +0 -1
  73. package/dist/core/auth-storage.js +0 -441
  74. package/dist/core/auth-storage.js.map +0 -1
  75. package/dist/core/bash-executor.d.ts +0 -32
  76. package/dist/core/bash-executor.d.ts.map +0 -1
  77. package/dist/core/bash-executor.js +0 -111
  78. package/dist/core/bash-executor.js.map +0 -1
  79. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  80. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  81. package/dist/core/compaction/branch-summarization.js +0 -243
  82. package/dist/core/compaction/branch-summarization.js.map +0 -1
  83. package/dist/core/compaction/compaction.d.ts +0 -121
  84. package/dist/core/compaction/compaction.d.ts.map +0 -1
  85. package/dist/core/compaction/compaction.js +0 -638
  86. package/dist/core/compaction/compaction.js.map +0 -1
  87. package/dist/core/compaction/index.d.ts +0 -7
  88. package/dist/core/compaction/index.d.ts.map +0 -1
  89. package/dist/core/compaction/index.js +0 -7
  90. package/dist/core/compaction/index.js.map +0 -1
  91. package/dist/core/compaction/utils.d.ts +0 -38
  92. package/dist/core/compaction/utils.d.ts.map +0 -1
  93. package/dist/core/compaction/utils.js +0 -153
  94. package/dist/core/compaction/utils.js.map +0 -1
  95. package/dist/core/defaults.d.ts +0 -3
  96. package/dist/core/defaults.d.ts.map +0 -1
  97. package/dist/core/defaults.js +0 -2
  98. package/dist/core/defaults.js.map +0 -1
  99. package/dist/core/diagnostics.d.ts +0 -15
  100. package/dist/core/diagnostics.d.ts.map +0 -1
  101. package/dist/core/diagnostics.js +0 -2
  102. package/dist/core/diagnostics.js.map +0 -1
  103. package/dist/core/event-bus.d.ts +0 -9
  104. package/dist/core/event-bus.d.ts.map +0 -1
  105. package/dist/core/event-bus.js +0 -25
  106. package/dist/core/event-bus.js.map +0 -1
  107. package/dist/core/exec.d.ts +0 -29
  108. package/dist/core/exec.d.ts.map +0 -1
  109. package/dist/core/exec.js +0 -75
  110. package/dist/core/exec.js.map +0 -1
  111. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  112. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  113. package/dist/core/export-html/ansi-to-html.js +0 -249
  114. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  115. package/dist/core/export-html/index.d.ts +0 -37
  116. package/dist/core/export-html/index.d.ts.map +0 -1
  117. package/dist/core/export-html/index.js +0 -224
  118. package/dist/core/export-html/index.js.map +0 -1
  119. package/dist/core/export-html/template.css +0 -1066
  120. package/dist/core/export-html/template.html +0 -55
  121. package/dist/core/export-html/template.js +0 -1848
  122. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  123. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  124. package/dist/core/export-html/tool-renderer.js +0 -108
  125. package/dist/core/export-html/tool-renderer.js.map +0 -1
  126. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  127. package/dist/core/export-html/vendor/marked.min.js +0 -6
  128. package/dist/core/extensions/index.d.ts +0 -12
  129. package/dist/core/extensions/index.d.ts.map +0 -1
  130. package/dist/core/extensions/index.js +0 -9
  131. package/dist/core/extensions/index.js.map +0 -1
  132. package/dist/core/extensions/loader.d.ts +0 -24
  133. package/dist/core/extensions/loader.d.ts.map +0 -1
  134. package/dist/core/extensions/loader.js +0 -508
  135. package/dist/core/extensions/loader.js.map +0 -1
  136. package/dist/core/extensions/runner.d.ts +0 -159
  137. package/dist/core/extensions/runner.d.ts.map +0 -1
  138. package/dist/core/extensions/runner.js +0 -826
  139. package/dist/core/extensions/runner.js.map +0 -1
  140. package/dist/core/extensions/types.d.ts +0 -1181
  141. package/dist/core/extensions/types.d.ts.map +0 -1
  142. package/dist/core/extensions/types.js +0 -45
  143. package/dist/core/extensions/types.js.map +0 -1
  144. package/dist/core/extensions/wrapper.d.ts +0 -20
  145. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  146. package/dist/core/extensions/wrapper.js +0 -22
  147. package/dist/core/extensions/wrapper.js.map +0 -1
  148. package/dist/core/footer-data-provider.d.ts +0 -52
  149. package/dist/core/footer-data-provider.d.ts.map +0 -1
  150. package/dist/core/footer-data-provider.js +0 -310
  151. package/dist/core/footer-data-provider.js.map +0 -1
  152. package/dist/core/http-dispatcher.d.ts +0 -21
  153. package/dist/core/http-dispatcher.d.ts.map +0 -1
  154. package/dist/core/http-dispatcher.js +0 -48
  155. package/dist/core/http-dispatcher.js.map +0 -1
  156. package/dist/core/index.d.ts +0 -12
  157. package/dist/core/index.d.ts.map +0 -1
  158. package/dist/core/index.js +0 -12
  159. package/dist/core/index.js.map +0 -1
  160. package/dist/core/keybindings.d.ts +0 -353
  161. package/dist/core/keybindings.d.ts.map +0 -1
  162. package/dist/core/keybindings.js +0 -295
  163. package/dist/core/keybindings.js.map +0 -1
  164. package/dist/core/messages.d.ts +0 -77
  165. package/dist/core/messages.d.ts.map +0 -1
  166. package/dist/core/messages.js +0 -123
  167. package/dist/core/messages.js.map +0 -1
  168. package/dist/core/model-registry.d.ts +0 -150
  169. package/dist/core/model-registry.d.ts.map +0 -1
  170. package/dist/core/model-registry.js +0 -728
  171. package/dist/core/model-registry.js.map +0 -1
  172. package/dist/core/model-resolver.d.ts +0 -110
  173. package/dist/core/model-resolver.d.ts.map +0 -1
  174. package/dist/core/model-resolver.js +0 -495
  175. package/dist/core/model-resolver.js.map +0 -1
  176. package/dist/core/output-guard.d.ts +0 -6
  177. package/dist/core/output-guard.d.ts.map +0 -1
  178. package/dist/core/output-guard.js +0 -59
  179. package/dist/core/output-guard.js.map +0 -1
  180. package/dist/core/package-manager.d.ts +0 -203
  181. package/dist/core/package-manager.d.ts.map +0 -1
  182. package/dist/core/package-manager.js +0 -2013
  183. package/dist/core/package-manager.js.map +0 -1
  184. package/dist/core/prompt-templates.d.ts +0 -52
  185. package/dist/core/prompt-templates.d.ts.map +0 -1
  186. package/dist/core/prompt-templates.js +0 -252
  187. package/dist/core/prompt-templates.js.map +0 -1
  188. package/dist/core/provider-display-names.d.ts +0 -2
  189. package/dist/core/provider-display-names.d.ts.map +0 -1
  190. package/dist/core/provider-display-names.js +0 -33
  191. package/dist/core/provider-display-names.js.map +0 -1
  192. package/dist/core/resolve-config-value.d.ts +0 -23
  193. package/dist/core/resolve-config-value.d.ts.map +0 -1
  194. package/dist/core/resolve-config-value.js +0 -126
  195. package/dist/core/resolve-config-value.js.map +0 -1
  196. package/dist/core/resource-loader.d.ts +0 -197
  197. package/dist/core/resource-loader.d.ts.map +0 -1
  198. package/dist/core/resource-loader.js +0 -757
  199. package/dist/core/resource-loader.js.map +0 -1
  200. package/dist/core/sdk.d.ts +0 -107
  201. package/dist/core/sdk.d.ts.map +0 -1
  202. package/dist/core/sdk.js +0 -282
  203. package/dist/core/sdk.js.map +0 -1
  204. package/dist/core/session-cwd.d.ts +0 -19
  205. package/dist/core/session-cwd.d.ts.map +0 -1
  206. package/dist/core/session-cwd.js +0 -38
  207. package/dist/core/session-cwd.js.map +0 -1
  208. package/dist/core/session-manager.d.ts +0 -363
  209. package/dist/core/session-manager.d.ts.map +0 -1
  210. package/dist/core/session-manager.js +0 -1318
  211. package/dist/core/session-manager.js.map +0 -1
  212. package/dist/core/settings-manager.d.ts +0 -264
  213. package/dist/core/settings-manager.d.ts.map +0 -1
  214. package/dist/core/settings-manager.js +0 -802
  215. package/dist/core/settings-manager.js.map +0 -1
  216. package/dist/core/skills.d.ts +0 -60
  217. package/dist/core/skills.d.ts.map +0 -1
  218. package/dist/core/skills.js +0 -401
  219. package/dist/core/skills.js.map +0 -1
  220. package/dist/core/slash-commands.d.ts +0 -14
  221. package/dist/core/slash-commands.d.ts.map +0 -1
  222. package/dist/core/slash-commands.js +0 -28
  223. package/dist/core/slash-commands.js.map +0 -1
  224. package/dist/core/source-info.d.ts +0 -18
  225. package/dist/core/source-info.d.ts.map +0 -1
  226. package/dist/core/source-info.js +0 -19
  227. package/dist/core/source-info.js.map +0 -1
  228. package/dist/core/system-prompt.d.ts +0 -30
  229. package/dist/core/system-prompt.d.ts.map +0 -1
  230. package/dist/core/system-prompt.js +0 -132
  231. package/dist/core/system-prompt.js.map +0 -1
  232. package/dist/core/telemetry.d.ts +0 -3
  233. package/dist/core/telemetry.d.ts.map +0 -1
  234. package/dist/core/telemetry.js +0 -9
  235. package/dist/core/telemetry.js.map +0 -1
  236. package/dist/core/timings.d.ts +0 -8
  237. package/dist/core/timings.d.ts.map +0 -1
  238. package/dist/core/timings.js +0 -31
  239. package/dist/core/timings.js.map +0 -1
  240. package/dist/core/tools/bash.d.ts +0 -68
  241. package/dist/core/tools/bash.d.ts.map +0 -1
  242. package/dist/core/tools/bash.js +0 -336
  243. package/dist/core/tools/bash.js.map +0 -1
  244. package/dist/core/tools/edit-diff.d.ts +0 -85
  245. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  246. package/dist/core/tools/edit-diff.js +0 -338
  247. package/dist/core/tools/edit-diff.js.map +0 -1
  248. package/dist/core/tools/edit.d.ts +0 -49
  249. package/dist/core/tools/edit.d.ts.map +0 -1
  250. package/dist/core/tools/edit.js +0 -324
  251. package/dist/core/tools/edit.js.map +0 -1
  252. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  253. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  254. package/dist/core/tools/file-mutation-queue.js +0 -37
  255. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  256. package/dist/core/tools/find.d.ts +0 -35
  257. package/dist/core/tools/find.d.ts.map +0 -1
  258. package/dist/core/tools/find.js +0 -298
  259. package/dist/core/tools/find.js.map +0 -1
  260. package/dist/core/tools/grep.d.ts +0 -37
  261. package/dist/core/tools/grep.d.ts.map +0 -1
  262. package/dist/core/tools/grep.js +0 -304
  263. package/dist/core/tools/grep.js.map +0 -1
  264. package/dist/core/tools/index.d.ts +0 -40
  265. package/dist/core/tools/index.d.ts.map +0 -1
  266. package/dist/core/tools/index.js +0 -112
  267. package/dist/core/tools/index.js.map +0 -1
  268. package/dist/core/tools/ls.d.ts +0 -37
  269. package/dist/core/tools/ls.d.ts.map +0 -1
  270. package/dist/core/tools/ls.js +0 -169
  271. package/dist/core/tools/ls.js.map +0 -1
  272. package/dist/core/tools/output-accumulator.d.ts +0 -50
  273. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  274. package/dist/core/tools/output-accumulator.js +0 -178
  275. package/dist/core/tools/output-accumulator.js.map +0 -1
  276. package/dist/core/tools/path-utils.d.ts +0 -8
  277. package/dist/core/tools/path-utils.d.ts.map +0 -1
  278. package/dist/core/tools/path-utils.js +0 -81
  279. package/dist/core/tools/path-utils.js.map +0 -1
  280. package/dist/core/tools/read.d.ts +0 -35
  281. package/dist/core/tools/read.d.ts.map +0 -1
  282. package/dist/core/tools/read.js +0 -291
  283. package/dist/core/tools/read.js.map +0 -1
  284. package/dist/core/tools/render-utils.d.ts +0 -21
  285. package/dist/core/tools/render-utils.d.ts.map +0 -1
  286. package/dist/core/tools/render-utils.js +0 -49
  287. package/dist/core/tools/render-utils.js.map +0 -1
  288. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  289. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  290. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  291. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  292. package/dist/core/tools/truncate.d.ts +0 -70
  293. package/dist/core/tools/truncate.d.ts.map +0 -1
  294. package/dist/core/tools/truncate.js +0 -205
  295. package/dist/core/tools/truncate.js.map +0 -1
  296. package/dist/core/tools/write.d.ts +0 -26
  297. package/dist/core/tools/write.d.ts.map +0 -1
  298. package/dist/core/tools/write.js +0 -213
  299. package/dist/core/tools/write.js.map +0 -1
  300. package/dist/index.d.ts +0 -29
  301. package/dist/index.d.ts.map +0 -1
  302. package/dist/index.js +0 -42
  303. package/dist/index.js.map +0 -1
  304. package/dist/main.d.ts +0 -12
  305. package/dist/main.d.ts.map +0 -1
  306. package/dist/main.js +0 -587
  307. package/dist/main.js.map +0 -1
  308. package/dist/migrations.d.ts +0 -33
  309. package/dist/migrations.d.ts.map +0 -1
  310. package/dist/migrations.js +0 -281
  311. package/dist/migrations.js.map +0 -1
  312. package/dist/modes/index.d.ts +0 -10
  313. package/dist/modes/index.d.ts.map +0 -1
  314. package/dist/modes/index.js +0 -9
  315. package/dist/modes/index.js.map +0 -1
  316. package/dist/modes/interactive/assets/clankolas.png +0 -0
  317. package/dist/modes/interactive/components/armin.d.ts +0 -34
  318. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  319. package/dist/modes/interactive/components/armin.js +0 -333
  320. package/dist/modes/interactive/components/armin.js.map +0 -1
  321. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  322. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  323. package/dist/modes/interactive/components/assistant-message.js +0 -121
  324. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  325. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  326. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  327. package/dist/modes/interactive/components/bash-execution.js +0 -175
  328. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  329. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  330. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  331. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  332. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  333. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  334. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  335. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  336. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  337. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  338. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  339. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  340. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  341. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  342. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  343. package/dist/modes/interactive/components/config-selector.js +0 -506
  344. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  345. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  346. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  347. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  348. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  349. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  350. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  351. package/dist/modes/interactive/components/custom-editor.js +0 -70
  352. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  353. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  354. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  355. package/dist/modes/interactive/components/custom-message.js +0 -79
  356. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  357. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  358. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  359. package/dist/modes/interactive/components/daxnuts.js +0 -140
  360. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  361. package/dist/modes/interactive/components/diff.d.ts +0 -12
  362. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  363. package/dist/modes/interactive/components/diff.js +0 -133
  364. package/dist/modes/interactive/components/diff.js.map +0 -1
  365. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  366. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  367. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  368. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  369. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  370. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  371. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  372. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  373. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  374. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  375. package/dist/modes/interactive/components/extension-editor.js +0 -119
  376. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  377. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  378. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  379. package/dist/modes/interactive/components/extension-input.js +0 -61
  380. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  381. package/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  382. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  383. package/dist/modes/interactive/components/extension-selector.js +0 -83
  384. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  385. package/dist/modes/interactive/components/footer.d.ts +0 -27
  386. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  387. package/dist/modes/interactive/components/footer.js +0 -201
  388. package/dist/modes/interactive/components/footer.js.map +0 -1
  389. package/dist/modes/interactive/components/index.d.ts +0 -32
  390. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  391. package/dist/modes/interactive/components/index.js +0 -33
  392. package/dist/modes/interactive/components/index.js.map +0 -1
  393. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  394. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  395. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  396. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  397. package/dist/modes/interactive/components/login-dialog.d.ts +0 -46
  398. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  399. package/dist/modes/interactive/components/login-dialog.js +0 -160
  400. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  401. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  402. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  403. package/dist/modes/interactive/components/model-selector.js +0 -278
  404. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  405. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -31
  406. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  407. package/dist/modes/interactive/components/oauth-selector.js +0 -165
  408. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  409. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  410. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  411. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  412. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  413. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  414. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  415. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  416. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  417. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  418. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  419. package/dist/modes/interactive/components/session-selector.js +0 -861
  420. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  421. package/dist/modes/interactive/components/settings-selector.d.ts +0 -69
  422. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  423. package/dist/modes/interactive/components/settings-selector.js +0 -390
  424. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  425. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  426. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  427. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  428. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  429. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  430. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  431. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  432. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  433. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  434. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  435. package/dist/modes/interactive/components/theme-selector.js +0 -50
  436. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  437. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  438. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  439. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  440. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  441. package/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  442. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  443. package/dist/modes/interactive/components/tool-execution.js +0 -295
  444. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  445. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  446. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  447. package/dist/modes/interactive/components/tree-selector.js +0 -1093
  448. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  449. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  450. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  451. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  452. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  453. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  454. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  455. package/dist/modes/interactive/components/user-message.js +0 -29
  456. package/dist/modes/interactive/components/user-message.js.map +0 -1
  457. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  458. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  459. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  460. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  461. package/dist/modes/interactive/interactive-mode.d.ts +0 -373
  462. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  463. package/dist/modes/interactive/interactive-mode.js +0 -4750
  464. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  465. package/dist/modes/interactive/theme/dark.json +0 -86
  466. package/dist/modes/interactive/theme/light.json +0 -85
  467. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  468. package/dist/modes/interactive/theme/theme.d.ts +0 -100
  469. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  470. package/dist/modes/interactive/theme/theme.js +0 -1015
  471. package/dist/modes/interactive/theme/theme.js.map +0 -1
  472. package/dist/modes/print-mode.d.ts +0 -28
  473. package/dist/modes/print-mode.d.ts.map +0 -1
  474. package/dist/modes/print-mode.js +0 -131
  475. package/dist/modes/print-mode.js.map +0 -1
  476. package/dist/modes/rpc/jsonl.d.ts +0 -17
  477. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  478. package/dist/modes/rpc/jsonl.js +0 -49
  479. package/dist/modes/rpc/jsonl.js.map +0 -1
  480. package/dist/modes/rpc/rpc-client.d.ts +0 -228
  481. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  482. package/dist/modes/rpc/rpc-client.js +0 -416
  483. package/dist/modes/rpc/rpc-client.js.map +0 -1
  484. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  485. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  486. package/dist/modes/rpc/rpc-mode.js +0 -609
  487. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  488. package/dist/modes/rpc/rpc-types.d.ts +0 -428
  489. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  490. package/dist/modes/rpc/rpc-types.js +0 -8
  491. package/dist/modes/rpc/rpc-types.js.map +0 -1
  492. package/dist/modes/web/web-mode.d.ts +0 -3
  493. package/dist/modes/web/web-mode.d.ts.map +0 -1
  494. package/dist/modes/web/web-mode.js +0 -243
  495. package/dist/modes/web/web-mode.js.map +0 -1
  496. package/dist/package-manager-cli.d.ts +0 -4
  497. package/dist/package-manager-cli.d.ts.map +0 -1
  498. package/dist/package-manager-cli.js +0 -515
  499. package/dist/package-manager-cli.js.map +0 -1
  500. package/dist/utils/ansi.d.ts +0 -2
  501. package/dist/utils/ansi.d.ts.map +0 -1
  502. package/dist/utils/ansi.js +0 -52
  503. package/dist/utils/ansi.js.map +0 -1
  504. package/dist/utils/changelog.d.ts +0 -21
  505. package/dist/utils/changelog.d.ts.map +0 -1
  506. package/dist/utils/changelog.js +0 -87
  507. package/dist/utils/changelog.js.map +0 -1
  508. package/dist/utils/child-process.d.ts +0 -15
  509. package/dist/utils/child-process.d.ts.map +0 -1
  510. package/dist/utils/child-process.js +0 -88
  511. package/dist/utils/child-process.js.map +0 -1
  512. package/dist/utils/clipboard-image.d.ts +0 -11
  513. package/dist/utils/clipboard-image.d.ts.map +0 -1
  514. package/dist/utils/clipboard-image.js +0 -245
  515. package/dist/utils/clipboard-image.js.map +0 -1
  516. package/dist/utils/clipboard-native.d.ts +0 -8
  517. package/dist/utils/clipboard-native.d.ts.map +0 -1
  518. package/dist/utils/clipboard-native.js +0 -14
  519. package/dist/utils/clipboard-native.js.map +0 -1
  520. package/dist/utils/clipboard.d.ts +0 -2
  521. package/dist/utils/clipboard.d.ts.map +0 -1
  522. package/dist/utils/clipboard.js +0 -117
  523. package/dist/utils/clipboard.js.map +0 -1
  524. package/dist/utils/exif-orientation.d.ts +0 -5
  525. package/dist/utils/exif-orientation.d.ts.map +0 -1
  526. package/dist/utils/exif-orientation.js +0 -158
  527. package/dist/utils/exif-orientation.js.map +0 -1
  528. package/dist/utils/frontmatter.d.ts +0 -8
  529. package/dist/utils/frontmatter.d.ts.map +0 -1
  530. package/dist/utils/frontmatter.js +0 -26
  531. package/dist/utils/frontmatter.js.map +0 -1
  532. package/dist/utils/fs-watch.d.ts +0 -5
  533. package/dist/utils/fs-watch.d.ts.map +0 -1
  534. package/dist/utils/fs-watch.js +0 -25
  535. package/dist/utils/fs-watch.js.map +0 -1
  536. package/dist/utils/git.d.ts +0 -26
  537. package/dist/utils/git.d.ts.map +0 -1
  538. package/dist/utils/git.js +0 -163
  539. package/dist/utils/git.js.map +0 -1
  540. package/dist/utils/html.d.ts +0 -7
  541. package/dist/utils/html.d.ts.map +0 -1
  542. package/dist/utils/html.js +0 -40
  543. package/dist/utils/html.js.map +0 -1
  544. package/dist/utils/image-convert.d.ts +0 -9
  545. package/dist/utils/image-convert.d.ts.map +0 -1
  546. package/dist/utils/image-convert.js +0 -39
  547. package/dist/utils/image-convert.js.map +0 -1
  548. package/dist/utils/image-resize.d.ts +0 -36
  549. package/dist/utils/image-resize.d.ts.map +0 -1
  550. package/dist/utils/image-resize.js +0 -137
  551. package/dist/utils/image-resize.js.map +0 -1
  552. package/dist/utils/mime.d.ts +0 -3
  553. package/dist/utils/mime.d.ts.map +0 -1
  554. package/dist/utils/mime.js +0 -69
  555. package/dist/utils/mime.js.map +0 -1
  556. package/dist/utils/paths.d.ts +0 -17
  557. package/dist/utils/paths.d.ts.map +0 -1
  558. package/dist/utils/paths.js +0 -66
  559. package/dist/utils/paths.js.map +0 -1
  560. package/dist/utils/photon.d.ts +0 -21
  561. package/dist/utils/photon.d.ts.map +0 -1
  562. package/dist/utils/photon.js +0 -121
  563. package/dist/utils/photon.js.map +0 -1
  564. package/dist/utils/pi-user-agent.d.ts +0 -2
  565. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  566. package/dist/utils/pi-user-agent.js +0 -5
  567. package/dist/utils/pi-user-agent.js.map +0 -1
  568. package/dist/utils/shell.d.ts +0 -30
  569. package/dist/utils/shell.d.ts.map +0 -1
  570. package/dist/utils/shell.js +0 -195
  571. package/dist/utils/shell.js.map +0 -1
  572. package/dist/utils/sleep.d.ts +0 -5
  573. package/dist/utils/sleep.d.ts.map +0 -1
  574. package/dist/utils/sleep.js +0 -17
  575. package/dist/utils/sleep.js.map +0 -1
  576. package/dist/utils/syntax-highlight.d.ts +0 -12
  577. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  578. package/dist/utils/syntax-highlight.js +0 -118
  579. package/dist/utils/syntax-highlight.js.map +0 -1
  580. package/dist/utils/tools-manager.d.ts +0 -3
  581. package/dist/utils/tools-manager.d.ts.map +0 -1
  582. package/dist/utils/tools-manager.js +0 -328
  583. package/dist/utils/tools-manager.js.map +0 -1
  584. package/dist/utils/version-check.d.ts +0 -15
  585. package/dist/utils/version-check.d.ts.map +0 -1
  586. package/dist/utils/version-check.js +0 -82
  587. package/dist/utils/version-check.js.map +0 -1
  588. package/dist/utils/windows-self-update.d.ts +0 -3
  589. package/dist/utils/windows-self-update.d.ts.map +0 -1
  590. package/dist/utils/windows-self-update.js +0 -77
  591. package/dist/utils/windows-self-update.js.map +0 -1
package/dist/main.js DELETED
@@ -1,587 +0,0 @@
1
- /**
2
- * Main entry point for the coding agent CLI.
3
- *
4
- * This file handles CLI argument parsing and translates them into
5
- * createAgentSession() options. The SDK does the heavy lifting.
6
- */
7
- import { resolve } from "node:path";
8
- import { createInterface } from "node:readline";
9
- import { modelsAreEqual } from "@openeryc/pi-ai";
10
- import { ProcessTerminal, setKeybindings, TUI } from "@openeryc/pi-tui";
11
- import chalk from "chalk";
12
- import { parseArgs, printHelp } from "./cli/args.js";
13
- import { processFileArguments } from "./cli/file-processor.js";
14
- import { buildInitialMessage } from "./cli/initial-message.js";
15
- import { listModels } from "./cli/list-models.js";
16
- import { selectSession } from "./cli/session-picker.js";
17
- import { ENV_SESSION_DIR, expandTildePath, getAgentDir, getPackageDir, VERSION } from "./config.js";
18
- import { createAgentSessionRuntime } from "./core/agent-session-runtime.js";
19
- import { createAgentSessionFromServices, createAgentSessionServices, } from "./core/agent-session-services.js";
20
- import { formatNoModelsAvailableMessage } from "./core/auth-guidance.js";
21
- import { AuthStorage } from "./core/auth-storage.js";
22
- import { exportFromFile } from "./core/export-html/index.js";
23
- import { configureHttpDispatcher } from "./core/http-dispatcher.js";
24
- import { KeybindingsManager } from "./core/keybindings.js";
25
- import { resolveCliModel, resolveModelScope } from "./core/model-resolver.js";
26
- import { restoreStdout, takeOverStdout } from "./core/output-guard.js";
27
- import { formatMissingSessionCwdPrompt, getMissingSessionCwdIssue, MissingSessionCwdError, } from "./core/session-cwd.js";
28
- import { SessionManager } from "./core/session-manager.js";
29
- import { SettingsManager } from "./core/settings-manager.js";
30
- import { printTimings, resetTimings, time } from "./core/timings.js";
31
- import { runMigrations, showDeprecationWarnings } from "./migrations.js";
32
- import { InteractiveMode, runPrintMode, runRpcMode, runWebMode } from "./modes/index.js";
33
- import { ExtensionSelectorComponent } from "./modes/interactive/components/extension-selector.js";
34
- import { initTheme, stopThemeWatcher } from "./modes/interactive/theme/theme.js";
35
- import { handleConfigCommand, handlePackageCommand } from "./package-manager-cli.js";
36
- import { isLocalPath } from "./utils/paths.js";
37
- import { cleanupWindowsSelfUpdateQuarantine } from "./utils/windows-self-update.js";
38
- /**
39
- * Read all content from piped stdin.
40
- * Returns undefined if stdin is a TTY (interactive terminal).
41
- */
42
- async function readPipedStdin() {
43
- // If stdin is a TTY, we're running interactively - don't read stdin
44
- if (process.stdin.isTTY) {
45
- return undefined;
46
- }
47
- return new Promise((resolve) => {
48
- let data = "";
49
- process.stdin.setEncoding("utf8");
50
- process.stdin.on("data", (chunk) => {
51
- data += chunk;
52
- });
53
- process.stdin.on("end", () => {
54
- resolve(data.trim() || undefined);
55
- });
56
- process.stdin.resume();
57
- });
58
- }
59
- function collectSettingsDiagnostics(settingsManager, context) {
60
- return settingsManager.drainErrors().map(({ scope, error }) => ({
61
- type: "warning",
62
- message: `(${context}, ${scope} settings) ${error.message}`,
63
- }));
64
- }
65
- function reportDiagnostics(diagnostics) {
66
- for (const diagnostic of diagnostics) {
67
- const color = diagnostic.type === "error" ? chalk.red : diagnostic.type === "warning" ? chalk.yellow : chalk.dim;
68
- const prefix = diagnostic.type === "error" ? "Error: " : diagnostic.type === "warning" ? "Warning: " : "";
69
- console.error(color(`${prefix}${diagnostic.message}`));
70
- }
71
- }
72
- function isTruthyEnvFlag(value) {
73
- if (!value)
74
- return false;
75
- return value === "1" || value.toLowerCase() === "true" || value.toLowerCase() === "yes";
76
- }
77
- function resolveAppMode(parsed, stdinIsTTY) {
78
- if (parsed.mode === "rpc") {
79
- return "rpc";
80
- }
81
- if (parsed.mode === "web") {
82
- return "web";
83
- }
84
- if (parsed.mode === "json") {
85
- return "json";
86
- }
87
- if (parsed.print || !stdinIsTTY) {
88
- return "print";
89
- }
90
- return "interactive";
91
- }
92
- function toPrintOutputMode(appMode) {
93
- return appMode === "json" ? "json" : "text";
94
- }
95
- async function prepareInitialMessage(parsed, autoResizeImages, stdinContent) {
96
- if (parsed.fileArgs.length === 0) {
97
- return buildInitialMessage({ parsed, stdinContent });
98
- }
99
- const { text, images } = await processFileArguments(parsed.fileArgs, { autoResizeImages });
100
- return buildInitialMessage({
101
- parsed,
102
- fileText: text,
103
- fileImages: images,
104
- stdinContent,
105
- });
106
- }
107
- /**
108
- * Resolve a session argument to a file path.
109
- * If it looks like a path, use as-is. Otherwise try to match as session ID prefix.
110
- */
111
- async function resolveSessionPath(sessionArg, cwd, sessionDir) {
112
- // If it looks like a file path, use as-is
113
- if (sessionArg.includes("/") || sessionArg.includes("\\") || sessionArg.endsWith(".jsonl")) {
114
- return { type: "path", path: sessionArg };
115
- }
116
- // Try to match as session ID in current project first
117
- const localSessions = await SessionManager.list(cwd, sessionDir);
118
- const localMatches = localSessions.filter((s) => s.id.startsWith(sessionArg));
119
- if (localMatches.length >= 1) {
120
- return { type: "local", path: localMatches[0].path };
121
- }
122
- // Try global search across all projects
123
- const allSessions = await SessionManager.listAll();
124
- const globalMatches = allSessions.filter((s) => s.id.startsWith(sessionArg));
125
- if (globalMatches.length >= 1) {
126
- const match = globalMatches[0];
127
- return { type: "global", path: match.path, cwd: match.cwd };
128
- }
129
- // Not found anywhere
130
- return { type: "not_found", arg: sessionArg };
131
- }
132
- /** Prompt user for yes/no confirmation */
133
- async function promptConfirm(message) {
134
- return new Promise((resolve) => {
135
- const rl = createInterface({
136
- input: process.stdin,
137
- output: process.stdout,
138
- });
139
- rl.question(`${message} [y/N] `, (answer) => {
140
- rl.close();
141
- resolve(answer.toLowerCase() === "y" || answer.toLowerCase() === "yes");
142
- });
143
- });
144
- }
145
- function validateForkFlags(parsed) {
146
- if (!parsed.fork)
147
- return;
148
- const conflictingFlags = [
149
- parsed.session ? "--session" : undefined,
150
- parsed.continue ? "--continue" : undefined,
151
- parsed.resume ? "--resume" : undefined,
152
- parsed.noSession ? "--no-session" : undefined,
153
- ].filter((flag) => flag !== undefined);
154
- if (conflictingFlags.length > 0) {
155
- console.error(chalk.red(`Error: --fork cannot be combined with ${conflictingFlags.join(", ")}`));
156
- process.exit(1);
157
- }
158
- }
159
- function forkSessionOrExit(sourcePath, cwd, sessionDir) {
160
- try {
161
- return SessionManager.forkFrom(sourcePath, cwd, sessionDir);
162
- }
163
- catch (error) {
164
- const message = error instanceof Error ? error.message : String(error);
165
- console.error(chalk.red(`Error: ${message}`));
166
- process.exit(1);
167
- }
168
- }
169
- async function createSessionManager(parsed, cwd, sessionDir, settingsManager) {
170
- if (parsed.noSession) {
171
- return SessionManager.inMemory();
172
- }
173
- if (parsed.fork) {
174
- const resolved = await resolveSessionPath(parsed.fork, cwd, sessionDir);
175
- switch (resolved.type) {
176
- case "path":
177
- case "local":
178
- case "global":
179
- return forkSessionOrExit(resolved.path, cwd, sessionDir);
180
- case "not_found":
181
- console.error(chalk.red(`No session found matching '${resolved.arg}'`));
182
- process.exit(1);
183
- }
184
- }
185
- if (parsed.session) {
186
- const resolved = await resolveSessionPath(parsed.session, cwd, sessionDir);
187
- switch (resolved.type) {
188
- case "path":
189
- case "local":
190
- return SessionManager.open(resolved.path, sessionDir);
191
- case "global": {
192
- console.log(chalk.yellow(`Session found in different project: ${resolved.cwd}`));
193
- const shouldFork = await promptConfirm("Fork this session into current directory?");
194
- if (!shouldFork) {
195
- console.log(chalk.dim("Aborted."));
196
- process.exit(0);
197
- }
198
- return forkSessionOrExit(resolved.path, cwd, sessionDir);
199
- }
200
- case "not_found":
201
- console.error(chalk.red(`No session found matching '${resolved.arg}'`));
202
- process.exit(1);
203
- }
204
- }
205
- if (parsed.resume) {
206
- initTheme(settingsManager.getTheme(), true);
207
- try {
208
- const selectedPath = await selectSession((onProgress) => SessionManager.list(cwd, sessionDir, onProgress), SessionManager.listAll);
209
- if (!selectedPath) {
210
- console.log(chalk.dim("No session selected"));
211
- process.exit(0);
212
- }
213
- return SessionManager.open(selectedPath, sessionDir);
214
- }
215
- finally {
216
- stopThemeWatcher();
217
- }
218
- }
219
- if (parsed.continue) {
220
- return SessionManager.continueRecent(cwd, sessionDir);
221
- }
222
- return SessionManager.create(cwd, sessionDir);
223
- }
224
- function buildSessionOptions(parsed, scopedModels, hasExistingSession, modelRegistry, settingsManager) {
225
- const options = {};
226
- const diagnostics = [];
227
- let cliThinkingFromModel = false;
228
- // Model from CLI
229
- // - supports --provider <name> --model <pattern>
230
- // - supports --model <provider>/<pattern>
231
- if (parsed.model) {
232
- const resolved = resolveCliModel({
233
- cliProvider: parsed.provider,
234
- cliModel: parsed.model,
235
- modelRegistry,
236
- });
237
- if (resolved.warning) {
238
- diagnostics.push({ type: "warning", message: resolved.warning });
239
- }
240
- if (resolved.error) {
241
- diagnostics.push({ type: "error", message: resolved.error });
242
- }
243
- if (resolved.model) {
244
- options.model = resolved.model;
245
- // Allow "--model <pattern>:<thinking>" as a shorthand.
246
- // Explicit --thinking still takes precedence (applied later).
247
- if (!parsed.thinking && resolved.thinkingLevel) {
248
- options.thinkingLevel = resolved.thinkingLevel;
249
- cliThinkingFromModel = true;
250
- }
251
- }
252
- }
253
- if (!options.model && scopedModels.length > 0 && !hasExistingSession) {
254
- // Check if saved default is in scoped models - use it if so, otherwise first scoped model
255
- const savedProvider = settingsManager.getDefaultProvider();
256
- const savedModelId = settingsManager.getDefaultModel();
257
- const savedModel = savedProvider && savedModelId ? modelRegistry.find(savedProvider, savedModelId) : undefined;
258
- const savedInScope = savedModel ? scopedModels.find((sm) => modelsAreEqual(sm.model, savedModel)) : undefined;
259
- if (savedInScope) {
260
- options.model = savedInScope.model;
261
- // Use thinking level from scoped model config if explicitly set
262
- if (!parsed.thinking && savedInScope.thinkingLevel) {
263
- options.thinkingLevel = savedInScope.thinkingLevel;
264
- }
265
- }
266
- else {
267
- options.model = scopedModels[0].model;
268
- // Use thinking level from first scoped model if explicitly set
269
- if (!parsed.thinking && scopedModels[0].thinkingLevel) {
270
- options.thinkingLevel = scopedModels[0].thinkingLevel;
271
- }
272
- }
273
- }
274
- // Thinking level from CLI (takes precedence over scoped model thinking levels set above)
275
- if (parsed.thinking) {
276
- options.thinkingLevel = parsed.thinking;
277
- }
278
- // Scoped models for Ctrl+P cycling
279
- // Keep thinking level undefined when not explicitly set in the model pattern.
280
- // Undefined means "inherit current session thinking level" during cycling.
281
- if (scopedModels.length > 0) {
282
- options.scopedModels = scopedModels.map((sm) => ({
283
- model: sm.model,
284
- thinkingLevel: sm.thinkingLevel,
285
- }));
286
- }
287
- // API key from CLI - set in authStorage
288
- // (handled by caller before createAgentSession)
289
- // Tools
290
- if (parsed.noTools) {
291
- options.noTools = "all";
292
- }
293
- else if (parsed.noBuiltinTools) {
294
- options.noTools = "builtin";
295
- }
296
- if (parsed.tools) {
297
- options.tools = [...parsed.tools];
298
- }
299
- return { options, cliThinkingFromModel, diagnostics };
300
- }
301
- function resolveCliPaths(cwd, paths) {
302
- return paths?.map((value) => (isLocalPath(value) ? resolve(cwd, value) : value));
303
- }
304
- async function promptForMissingSessionCwd(issue, settingsManager) {
305
- initTheme(settingsManager.getTheme());
306
- setKeybindings(KeybindingsManager.create());
307
- return new Promise((resolve) => {
308
- const ui = new TUI(new ProcessTerminal(), settingsManager.getShowHardwareCursor());
309
- ui.setClearOnShrink(settingsManager.getClearOnShrink());
310
- let settled = false;
311
- const finish = (result) => {
312
- if (settled) {
313
- return;
314
- }
315
- settled = true;
316
- ui.stop();
317
- resolve(result);
318
- };
319
- const selector = new ExtensionSelectorComponent(formatMissingSessionCwdPrompt(issue), ["Continue", "Cancel"], (option) => finish(option === "Continue" ? issue.fallbackCwd : undefined), () => finish(undefined), { tui: ui });
320
- ui.addChild(selector);
321
- ui.setFocus(selector);
322
- ui.start();
323
- });
324
- }
325
- export async function main(args, options) {
326
- resetTimings();
327
- const offlineMode = args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE);
328
- if (offlineMode) {
329
- process.env.PI_OFFLINE = "1";
330
- process.env.PI_SKIP_VERSION_CHECK = "1";
331
- }
332
- if (process.platform === "win32") {
333
- cleanupWindowsSelfUpdateQuarantine(getPackageDir());
334
- }
335
- if (await handlePackageCommand(args)) {
336
- return;
337
- }
338
- if (await handleConfigCommand(args)) {
339
- return;
340
- }
341
- const parsed = parseArgs(args);
342
- if (parsed.diagnostics.length > 0) {
343
- for (const d of parsed.diagnostics) {
344
- const color = d.type === "error" ? chalk.red : chalk.yellow;
345
- console.error(color(`${d.type === "error" ? "Error" : "Warning"}: ${d.message}`));
346
- }
347
- if (parsed.diagnostics.some((d) => d.type === "error")) {
348
- process.exit(1);
349
- }
350
- }
351
- time("parseArgs");
352
- let appMode = resolveAppMode(parsed, process.stdin.isTTY);
353
- const shouldTakeOverStdout = appMode !== "interactive";
354
- if (shouldTakeOverStdout) {
355
- takeOverStdout();
356
- }
357
- if (parsed.version) {
358
- console.log(VERSION);
359
- process.exit(0);
360
- }
361
- if (parsed.export) {
362
- let result;
363
- try {
364
- const outputPath = parsed.messages.length > 0 ? parsed.messages[0] : undefined;
365
- result = await exportFromFile(parsed.export, outputPath);
366
- }
367
- catch (error) {
368
- const message = error instanceof Error ? error.message : "Failed to export session";
369
- console.error(chalk.red(`Error: ${message}`));
370
- process.exit(1);
371
- }
372
- console.log(`Exported to: ${result}`);
373
- process.exit(0);
374
- }
375
- if (parsed.mode === "rpc" && parsed.fileArgs.length > 0) {
376
- console.error(chalk.red("Error: @file arguments are not supported in RPC mode"));
377
- process.exit(1);
378
- }
379
- validateForkFlags(parsed);
380
- // Run migrations (pass cwd for project-local migrations)
381
- const { migratedAuthProviders: migratedProviders, deprecationWarnings } = runMigrations(process.cwd());
382
- time("runMigrations");
383
- const cwd = process.cwd();
384
- const agentDir = getAgentDir();
385
- const startupSettingsManager = SettingsManager.create(cwd, agentDir);
386
- reportDiagnostics(collectSettingsDiagnostics(startupSettingsManager, "startup session lookup"));
387
- // Decide the final runtime cwd before creating cwd-bound runtime services.
388
- // --session and --resume may select a session from another project, so project-local
389
- // settings, resources, provider registrations, and models must be resolved only after
390
- // the target session cwd is known. The startup-cwd settings manager is used only for
391
- // sessionDir lookup during session selection.
392
- const envSessionDir = process.env[ENV_SESSION_DIR];
393
- const sessionDir = parsed.sessionDir ??
394
- (envSessionDir ? expandTildePath(envSessionDir) : undefined) ??
395
- startupSettingsManager.getSessionDir();
396
- let sessionManager = await createSessionManager(parsed, cwd, sessionDir, startupSettingsManager);
397
- const missingSessionCwdIssue = getMissingSessionCwdIssue(sessionManager, cwd);
398
- if (missingSessionCwdIssue) {
399
- if (appMode === "interactive") {
400
- const selectedCwd = await promptForMissingSessionCwd(missingSessionCwdIssue, startupSettingsManager);
401
- if (!selectedCwd) {
402
- process.exit(0);
403
- }
404
- sessionManager = SessionManager.open(missingSessionCwdIssue.sessionFile, sessionDir, selectedCwd);
405
- }
406
- else {
407
- console.error(chalk.red(new MissingSessionCwdError(missingSessionCwdIssue).message));
408
- process.exit(1);
409
- }
410
- }
411
- time("createSessionManager");
412
- const resolvedExtensionPaths = resolveCliPaths(cwd, parsed.extensions);
413
- const resolvedSkillPaths = resolveCliPaths(cwd, parsed.skills);
414
- const resolvedPromptTemplatePaths = resolveCliPaths(cwd, parsed.promptTemplates);
415
- const resolvedThemePaths = resolveCliPaths(cwd, parsed.themes);
416
- const authStorage = AuthStorage.create();
417
- const createRuntime = async ({ cwd, agentDir, sessionManager, sessionStartEvent, }) => {
418
- const services = await createAgentSessionServices({
419
- cwd,
420
- agentDir,
421
- authStorage,
422
- extensionFlagValues: parsed.unknownFlags,
423
- resourceLoaderOptions: {
424
- additionalExtensionPaths: resolvedExtensionPaths,
425
- additionalSkillPaths: resolvedSkillPaths,
426
- additionalPromptTemplatePaths: resolvedPromptTemplatePaths,
427
- additionalThemePaths: resolvedThemePaths,
428
- noExtensions: parsed.noExtensions,
429
- noSkills: parsed.noSkills,
430
- noPromptTemplates: parsed.noPromptTemplates,
431
- noThemes: parsed.noThemes,
432
- noContextFiles: parsed.noContextFiles,
433
- systemPrompt: parsed.systemPrompt,
434
- appendSystemPrompt: parsed.appendSystemPrompt,
435
- extensionFactories: options?.extensionFactories,
436
- },
437
- });
438
- const { settingsManager, modelRegistry, resourceLoader } = services;
439
- const diagnostics = [
440
- ...services.diagnostics,
441
- ...collectSettingsDiagnostics(settingsManager, "runtime creation"),
442
- ...resourceLoader.getExtensions().errors.map(({ path, error }) => ({
443
- type: "error",
444
- message: `Failed to load extension "${path}": ${error}`,
445
- })),
446
- ];
447
- const modelPatterns = parsed.models ?? settingsManager.getEnabledModels();
448
- const scopedModels = modelPatterns && modelPatterns.length > 0 ? await resolveModelScope(modelPatterns, modelRegistry) : [];
449
- const { options: sessionOptions, cliThinkingFromModel, diagnostics: sessionOptionDiagnostics, } = buildSessionOptions(parsed, scopedModels, sessionManager.buildSessionContext().messages.length > 0, modelRegistry, settingsManager);
450
- diagnostics.push(...sessionOptionDiagnostics);
451
- if (parsed.apiKey) {
452
- if (!sessionOptions.model) {
453
- diagnostics.push({
454
- type: "error",
455
- message: "--api-key requires a model to be specified via --model, --provider/--model, or --models",
456
- });
457
- }
458
- else {
459
- authStorage.setRuntimeApiKey(sessionOptions.model.provider, parsed.apiKey);
460
- }
461
- }
462
- const created = await createAgentSessionFromServices({
463
- services,
464
- sessionManager,
465
- sessionStartEvent,
466
- model: sessionOptions.model,
467
- thinkingLevel: sessionOptions.thinkingLevel,
468
- scopedModels: sessionOptions.scopedModels,
469
- tools: sessionOptions.tools,
470
- noTools: sessionOptions.noTools,
471
- customTools: sessionOptions.customTools,
472
- });
473
- const cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;
474
- if (created.session.model && cliThinkingOverride) {
475
- created.session.setThinkingLevel(created.session.thinkingLevel);
476
- }
477
- return {
478
- ...created,
479
- services,
480
- diagnostics,
481
- };
482
- };
483
- time("createRuntime");
484
- const runtime = await createAgentSessionRuntime(createRuntime, {
485
- cwd: sessionManager.getCwd(),
486
- agentDir,
487
- sessionManager,
488
- });
489
- const { services, session, modelFallbackMessage } = runtime;
490
- const { settingsManager, modelRegistry, resourceLoader } = services;
491
- configureHttpDispatcher(settingsManager.getHttpIdleTimeoutMs());
492
- if (parsed.help) {
493
- const extensionFlags = resourceLoader
494
- .getExtensions()
495
- .extensions.flatMap((extension) => Array.from(extension.flags.values()));
496
- printHelp(extensionFlags);
497
- process.exit(0);
498
- }
499
- if (parsed.listModels !== undefined) {
500
- const searchPattern = typeof parsed.listModels === "string" ? parsed.listModels : undefined;
501
- await listModels(modelRegistry, searchPattern);
502
- process.exit(0);
503
- }
504
- // Read piped stdin content (if any) - skip for RPC mode which uses stdin for JSON-RPC
505
- let stdinContent;
506
- if (appMode !== "rpc" && appMode !== "web") {
507
- stdinContent = await readPipedStdin();
508
- if (stdinContent !== undefined && appMode === "interactive") {
509
- appMode = "print";
510
- }
511
- }
512
- time("readPipedStdin");
513
- const { initialMessage, initialImages } = await prepareInitialMessage(parsed, settingsManager.getImageAutoResize(), stdinContent);
514
- time("prepareInitialMessage");
515
- initTheme(settingsManager.getTheme(), appMode === "interactive");
516
- time("initTheme");
517
- // Show deprecation warnings in interactive mode
518
- if (appMode === "interactive" && deprecationWarnings.length > 0) {
519
- await showDeprecationWarnings(deprecationWarnings);
520
- }
521
- time("resolveModelScope");
522
- reportDiagnostics(runtime.diagnostics);
523
- if (runtime.diagnostics.some((diagnostic) => diagnostic.type === "error")) {
524
- process.exit(1);
525
- }
526
- time("createAgentSession");
527
- if (appMode !== "interactive" && appMode !== "web" && !session.model) {
528
- console.error(chalk.red(formatNoModelsAvailableMessage()));
529
- process.exit(1);
530
- }
531
- const startupBenchmark = isTruthyEnvFlag(process.env.PI_STARTUP_BENCHMARK);
532
- if (startupBenchmark && appMode !== "interactive" && appMode !== "web") {
533
- console.error(chalk.red("Error: PI_STARTUP_BENCHMARK only supports interactive mode"));
534
- process.exit(1);
535
- }
536
- if (appMode === "rpc") {
537
- printTimings();
538
- await runRpcMode(runtime);
539
- }
540
- else if (appMode === "web") {
541
- printTimings();
542
- console.log("Starting web UI...");
543
- await runWebMode(runtime);
544
- }
545
- else if (appMode === "interactive") {
546
- const interactiveMode = new InteractiveMode(runtime, {
547
- migratedProviders,
548
- modelFallbackMessage,
549
- initialMessage,
550
- initialImages,
551
- initialMessages: parsed.messages,
552
- verbose: parsed.verbose,
553
- });
554
- if (startupBenchmark) {
555
- await interactiveMode.init();
556
- time("interactiveMode.init");
557
- printTimings();
558
- interactiveMode.stop();
559
- stopThemeWatcher();
560
- if (process.stdout.writableLength > 0) {
561
- await new Promise((resolve) => process.stdout.once("drain", resolve));
562
- }
563
- if (process.stderr.writableLength > 0) {
564
- await new Promise((resolve) => process.stderr.once("drain", resolve));
565
- }
566
- return;
567
- }
568
- printTimings();
569
- await interactiveMode.run();
570
- }
571
- else {
572
- printTimings();
573
- const exitCode = await runPrintMode(runtime, {
574
- mode: toPrintOutputMode(appMode),
575
- messages: parsed.messages,
576
- initialMessage,
577
- initialImages,
578
- });
579
- stopThemeWatcher();
580
- restoreStdout();
581
- if (exitCode !== 0) {
582
- process.exitCode = exitCode;
583
- }
584
- return;
585
- }
586
- }
587
- //# sourceMappingURL=main.js.map