praxis-agent 0.1.0

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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +534 -0
  3. package/dist/application/background-agent-manager.d.ts +66 -0
  4. package/dist/application/background-agent-manager.d.ts.map +1 -0
  5. package/dist/application/background-agent-manager.js +362 -0
  6. package/dist/application/background-agent-manager.js.map +1 -0
  7. package/dist/application/background-bash-manager.d.ts +54 -0
  8. package/dist/application/background-bash-manager.d.ts.map +1 -0
  9. package/dist/application/background-bash-manager.js +354 -0
  10. package/dist/application/background-bash-manager.js.map +1 -0
  11. package/dist/application/background-task-id.d.ts +5 -0
  12. package/dist/application/background-task-id.d.ts.map +1 -0
  13. package/dist/application/background-task-id.js +25 -0
  14. package/dist/application/background-task-id.js.map +1 -0
  15. package/dist/application/claude-project-purge.d.ts +50 -0
  16. package/dist/application/claude-project-purge.d.ts.map +1 -0
  17. package/dist/application/claude-project-purge.js +459 -0
  18. package/dist/application/claude-project-purge.js.map +1 -0
  19. package/dist/application/managed-worktree.d.ts +15 -0
  20. package/dist/application/managed-worktree.d.ts.map +1 -0
  21. package/dist/application/managed-worktree.js +127 -0
  22. package/dist/application/managed-worktree.js.map +1 -0
  23. package/dist/application/model-compactor.d.ts +8 -0
  24. package/dist/application/model-compactor.d.ts.map +1 -0
  25. package/dist/application/model-compactor.js +70 -0
  26. package/dist/application/model-compactor.js.map +1 -0
  27. package/dist/application/scheduled-prompt-manager.d.ts +69 -0
  28. package/dist/application/scheduled-prompt-manager.d.ts.map +1 -0
  29. package/dist/application/scheduled-prompt-manager.js +387 -0
  30. package/dist/application/scheduled-prompt-manager.js.map +1 -0
  31. package/dist/application/session-service.d.ts +142 -0
  32. package/dist/application/session-service.d.ts.map +1 -0
  33. package/dist/application/session-service.js +1690 -0
  34. package/dist/application/session-service.js.map +1 -0
  35. package/dist/application/session-worktree.d.ts +55 -0
  36. package/dist/application/session-worktree.d.ts.map +1 -0
  37. package/dist/application/session-worktree.js +311 -0
  38. package/dist/application/session-worktree.js.map +1 -0
  39. package/dist/application/subagent-service.d.ts +98 -0
  40. package/dist/application/subagent-service.d.ts.map +1 -0
  41. package/dist/application/subagent-service.js +1305 -0
  42. package/dist/application/subagent-service.js.map +1 -0
  43. package/dist/application/tool-use-summary.d.ts +8 -0
  44. package/dist/application/tool-use-summary.d.ts.map +1 -0
  45. package/dist/application/tool-use-summary.js +53 -0
  46. package/dist/application/tool-use-summary.js.map +1 -0
  47. package/dist/application/top-level-agent-manager.d.ts +58 -0
  48. package/dist/application/top-level-agent-manager.d.ts.map +1 -0
  49. package/dist/application/top-level-agent-manager.js +907 -0
  50. package/dist/application/top-level-agent-manager.js.map +1 -0
  51. package/dist/application/workflow-manager.d.ts +61 -0
  52. package/dist/application/workflow-manager.d.ts.map +1 -0
  53. package/dist/application/workflow-manager.js +582 -0
  54. package/dist/application/workflow-manager.js.map +1 -0
  55. package/dist/application/workflow-meta.d.ts +18 -0
  56. package/dist/application/workflow-meta.d.ts.map +1 -0
  57. package/dist/application/workflow-meta.js +146 -0
  58. package/dist/application/workflow-meta.js.map +1 -0
  59. package/dist/application/workflow-runtime.d.ts +29 -0
  60. package/dist/application/workflow-runtime.d.ts.map +1 -0
  61. package/dist/application/workflow-runtime.js +176 -0
  62. package/dist/application/workflow-runtime.js.map +1 -0
  63. package/dist/application/workflow-worktree.d.ts +9 -0
  64. package/dist/application/workflow-worktree.d.ts.map +1 -0
  65. package/dist/application/workflow-worktree.js +11 -0
  66. package/dist/application/workflow-worktree.js.map +1 -0
  67. package/dist/cli/agents-dashboard.d.ts +37 -0
  68. package/dist/cli/agents-dashboard.d.ts.map +1 -0
  69. package/dist/cli/agents-dashboard.js +408 -0
  70. package/dist/cli/agents-dashboard.js.map +1 -0
  71. package/dist/cli/controls.d.ts +15 -0
  72. package/dist/cli/controls.d.ts.map +1 -0
  73. package/dist/cli/controls.js +219 -0
  74. package/dist/cli/controls.js.map +1 -0
  75. package/dist/cli/debug.d.ts +13 -0
  76. package/dist/cli/debug.d.ts.map +1 -0
  77. package/dist/cli/debug.js +37 -0
  78. package/dist/cli/debug.js.map +1 -0
  79. package/dist/cli/interactive.d.ts +63 -0
  80. package/dist/cli/interactive.d.ts.map +1 -0
  81. package/dist/cli/interactive.js +600 -0
  82. package/dist/cli/interactive.js.map +1 -0
  83. package/dist/cli/protocol.d.ts +251 -0
  84. package/dist/cli/protocol.d.ts.map +1 -0
  85. package/dist/cli/protocol.js +2146 -0
  86. package/dist/cli/protocol.js.map +1 -0
  87. package/dist/cli.d.ts +116 -0
  88. package/dist/cli.d.ts.map +1 -0
  89. package/dist/cli.js +3901 -0
  90. package/dist/cli.js.map +1 -0
  91. package/dist/compatibility/claude/compaction.d.ts +19 -0
  92. package/dist/compatibility/claude/compaction.d.ts.map +1 -0
  93. package/dist/compatibility/claude/compaction.js +82 -0
  94. package/dist/compatibility/claude/compaction.js.map +1 -0
  95. package/dist/compatibility/claude/context.d.ts +24 -0
  96. package/dist/compatibility/claude/context.d.ts.map +1 -0
  97. package/dist/compatibility/claude/context.js +92 -0
  98. package/dist/compatibility/claude/context.js.map +1 -0
  99. package/dist/compatibility/claude/dynamic-context.d.ts +20 -0
  100. package/dist/compatibility/claude/dynamic-context.d.ts.map +1 -0
  101. package/dist/compatibility/claude/dynamic-context.js +168 -0
  102. package/dist/compatibility/claude/dynamic-context.js.map +1 -0
  103. package/dist/compatibility/claude/file-history.d.ts +14 -0
  104. package/dist/compatibility/claude/file-history.d.ts.map +1 -0
  105. package/dist/compatibility/claude/file-history.js +340 -0
  106. package/dist/compatibility/claude/file-history.js.map +1 -0
  107. package/dist/compatibility/claude/file-resources.d.ts +28 -0
  108. package/dist/compatibility/claude/file-resources.d.ts.map +1 -0
  109. package/dist/compatibility/claude/file-resources.js +168 -0
  110. package/dist/compatibility/claude/file-resources.js.map +1 -0
  111. package/dist/compatibility/claude/fork.d.ts +9 -0
  112. package/dist/compatibility/claude/fork.d.ts.map +1 -0
  113. package/dist/compatibility/claude/fork.js +225 -0
  114. package/dist/compatibility/claude/fork.js.map +1 -0
  115. package/dist/compatibility/claude/history.d.ts +4 -0
  116. package/dist/compatibility/claude/history.d.ts.map +1 -0
  117. package/dist/compatibility/claude/history.js +86 -0
  118. package/dist/compatibility/claude/history.js.map +1 -0
  119. package/dist/compatibility/claude/ownership.d.ts +87 -0
  120. package/dist/compatibility/claude/ownership.d.ts.map +1 -0
  121. package/dist/compatibility/claude/ownership.js +100 -0
  122. package/dist/compatibility/claude/ownership.js.map +1 -0
  123. package/dist/compatibility/claude/paths.d.ts +17 -0
  124. package/dist/compatibility/claude/paths.d.ts.map +1 -0
  125. package/dist/compatibility/claude/paths.js +54 -0
  126. package/dist/compatibility/claude/paths.js.map +1 -0
  127. package/dist/compatibility/claude/pr-links.d.ts +25 -0
  128. package/dist/compatibility/claude/pr-links.d.ts.map +1 -0
  129. package/dist/compatibility/claude/pr-links.js +80 -0
  130. package/dist/compatibility/claude/pr-links.js.map +1 -0
  131. package/dist/compatibility/claude/projection.d.ts +11 -0
  132. package/dist/compatibility/claude/projection.d.ts.map +1 -0
  133. package/dist/compatibility/claude/projection.js +325 -0
  134. package/dist/compatibility/claude/projection.js.map +1 -0
  135. package/dist/compatibility/claude/schema.d.ts +18 -0
  136. package/dist/compatibility/claude/schema.d.ts.map +1 -0
  137. package/dist/compatibility/claude/schema.js +983 -0
  138. package/dist/compatibility/claude/schema.js.map +1 -0
  139. package/dist/compatibility/claude/shared-resources.d.ts +51 -0
  140. package/dist/compatibility/claude/shared-resources.d.ts.map +1 -0
  141. package/dist/compatibility/claude/shared-resources.js +382 -0
  142. package/dist/compatibility/claude/shared-resources.js.map +1 -0
  143. package/dist/compatibility/claude/sidechain.d.ts +50 -0
  144. package/dist/compatibility/claude/sidechain.d.ts.map +1 -0
  145. package/dist/compatibility/claude/sidechain.js +90 -0
  146. package/dist/compatibility/claude/sidechain.js.map +1 -0
  147. package/dist/compatibility/claude/tool-links.d.ts +13 -0
  148. package/dist/compatibility/claude/tool-links.d.ts.map +1 -0
  149. package/dist/compatibility/claude/tool-links.js +61 -0
  150. package/dist/compatibility/claude/tool-links.js.map +1 -0
  151. package/dist/compatibility/claude/translation.d.ts +71 -0
  152. package/dist/compatibility/claude/translation.d.ts.map +1 -0
  153. package/dist/compatibility/claude/translation.js +443 -0
  154. package/dist/compatibility/claude/translation.js.map +1 -0
  155. package/dist/compatibility/claude/workflow-replay.d.ts +10 -0
  156. package/dist/compatibility/claude/workflow-replay.d.ts.map +1 -0
  157. package/dist/compatibility/claude/workflow-replay.js +66 -0
  158. package/dist/compatibility/claude/workflow-replay.js.map +1 -0
  159. package/dist/compatibility/claude/workflow.d.ts +33 -0
  160. package/dist/compatibility/claude/workflow.d.ts.map +1 -0
  161. package/dist/compatibility/claude/workflow.js +76 -0
  162. package/dist/compatibility/claude/workflow.js.map +1 -0
  163. package/dist/core/compaction.d.ts +16 -0
  164. package/dist/core/compaction.d.ts.map +1 -0
  165. package/dist/core/compaction.js +2 -0
  166. package/dist/core/compaction.js.map +1 -0
  167. package/dist/core/context-budget.d.ts +28 -0
  168. package/dist/core/context-budget.d.ts.map +1 -0
  169. package/dist/core/context-budget.js +108 -0
  170. package/dist/core/context-budget.js.map +1 -0
  171. package/dist/core/context.d.ts +16 -0
  172. package/dist/core/context.d.ts.map +1 -0
  173. package/dist/core/context.js +13 -0
  174. package/dist/core/context.js.map +1 -0
  175. package/dist/core/runtime.d.ts +394 -0
  176. package/dist/core/runtime.d.ts.map +1 -0
  177. package/dist/core/runtime.js +507 -0
  178. package/dist/core/runtime.js.map +1 -0
  179. package/dist/core/usage.d.ts +26 -0
  180. package/dist/core/usage.d.ts.map +1 -0
  181. package/dist/core/usage.js +133 -0
  182. package/dist/core/usage.js.map +1 -0
  183. package/dist/extensions/claude-extension-tools.d.ts +16 -0
  184. package/dist/extensions/claude-extension-tools.d.ts.map +1 -0
  185. package/dist/extensions/claude-extension-tools.js +78 -0
  186. package/dist/extensions/claude-extension-tools.js.map +1 -0
  187. package/dist/extensions/claude-extensions.d.ts +41 -0
  188. package/dist/extensions/claude-extensions.d.ts.map +1 -0
  189. package/dist/extensions/claude-extensions.js +270 -0
  190. package/dist/extensions/claude-extensions.js.map +1 -0
  191. package/dist/hooks/claude-hook-tools.d.ts +26 -0
  192. package/dist/hooks/claude-hook-tools.d.ts.map +1 -0
  193. package/dist/hooks/claude-hook-tools.js +129 -0
  194. package/dist/hooks/claude-hook-tools.js.map +1 -0
  195. package/dist/hooks/claude-hooks.d.ts +87 -0
  196. package/dist/hooks/claude-hooks.d.ts.map +1 -0
  197. package/dist/hooks/claude-hooks.js +411 -0
  198. package/dist/hooks/claude-hooks.js.map +1 -0
  199. package/dist/maintenance/doctor.d.ts +33 -0
  200. package/dist/maintenance/doctor.d.ts.map +1 -0
  201. package/dist/maintenance/doctor.js +391 -0
  202. package/dist/maintenance/doctor.js.map +1 -0
  203. package/dist/maintenance/self-update.d.ts +31 -0
  204. package/dist/maintenance/self-update.d.ts.map +1 -0
  205. package/dist/maintenance/self-update.js +81 -0
  206. package/dist/maintenance/self-update.js.map +1 -0
  207. package/dist/mcp/claude-mcp-management.d.ts +28 -0
  208. package/dist/mcp/claude-mcp-management.d.ts.map +1 -0
  209. package/dist/mcp/claude-mcp-management.js +169 -0
  210. package/dist/mcp/claude-mcp-management.js.map +1 -0
  211. package/dist/mcp/claude-mcp-oauth.d.ts +113 -0
  212. package/dist/mcp/claude-mcp-oauth.d.ts.map +1 -0
  213. package/dist/mcp/claude-mcp-oauth.js +1053 -0
  214. package/dist/mcp/claude-mcp-oauth.js.map +1 -0
  215. package/dist/mcp/claude-mcp-tools.d.ts +98 -0
  216. package/dist/mcp/claude-mcp-tools.d.ts.map +1 -0
  217. package/dist/mcp/claude-mcp-tools.js +1246 -0
  218. package/dist/mcp/claude-mcp-tools.js.map +1 -0
  219. package/dist/mcp/praxis-mcp-server.d.ts +35 -0
  220. package/dist/mcp/praxis-mcp-server.d.ts.map +1 -0
  221. package/dist/mcp/praxis-mcp-server.js +520 -0
  222. package/dist/mcp/praxis-mcp-server.js.map +1 -0
  223. package/dist/permissions/claude-auto-classifier.d.ts +20 -0
  224. package/dist/permissions/claude-auto-classifier.d.ts.map +1 -0
  225. package/dist/permissions/claude-auto-classifier.js +140 -0
  226. package/dist/permissions/claude-auto-classifier.js.map +1 -0
  227. package/dist/permissions/claude-permission-resolver.d.ts +30 -0
  228. package/dist/permissions/claude-permission-resolver.d.ts.map +1 -0
  229. package/dist/permissions/claude-permission-resolver.js +334 -0
  230. package/dist/permissions/claude-permission-resolver.js.map +1 -0
  231. package/dist/persistence/claude-job-store.d.ts +68 -0
  232. package/dist/persistence/claude-job-store.d.ts.map +1 -0
  233. package/dist/persistence/claude-job-store.js +311 -0
  234. package/dist/persistence/claude-job-store.js.map +1 -0
  235. package/dist/persistence/claude-scheduled-task-store.d.ts +29 -0
  236. package/dist/persistence/claude-scheduled-task-store.d.ts.map +1 -0
  237. package/dist/persistence/claude-scheduled-task-store.js +163 -0
  238. package/dist/persistence/claude-scheduled-task-store.js.map +1 -0
  239. package/dist/persistence/claude-sidechain-store.d.ts +18 -0
  240. package/dist/persistence/claude-sidechain-store.d.ts.map +1 -0
  241. package/dist/persistence/claude-sidechain-store.js +107 -0
  242. package/dist/persistence/claude-sidechain-store.js.map +1 -0
  243. package/dist/persistence/claude-task-store.d.ts +72 -0
  244. package/dist/persistence/claude-task-store.d.ts.map +1 -0
  245. package/dist/persistence/claude-task-store.js +440 -0
  246. package/dist/persistence/claude-task-store.js.map +1 -0
  247. package/dist/persistence/claude-transcript-store.d.ts +85 -0
  248. package/dist/persistence/claude-transcript-store.d.ts.map +1 -0
  249. package/dist/persistence/claude-transcript-store.js +385 -0
  250. package/dist/persistence/claude-transcript-store.js.map +1 -0
  251. package/dist/persistence/claude-workflow-store.d.ts +41 -0
  252. package/dist/persistence/claude-workflow-store.d.ts.map +1 -0
  253. package/dist/persistence/claude-workflow-store.js +263 -0
  254. package/dist/persistence/claude-workflow-store.js.map +1 -0
  255. package/dist/persistence/in-memory-sidechain-store.d.ts +12 -0
  256. package/dist/persistence/in-memory-sidechain-store.d.ts.map +1 -0
  257. package/dist/persistence/in-memory-sidechain-store.js +30 -0
  258. package/dist/persistence/in-memory-sidechain-store.js.map +1 -0
  259. package/dist/persistence/in-memory-transcript-store.d.ts +15 -0
  260. package/dist/persistence/in-memory-transcript-store.d.ts.map +1 -0
  261. package/dist/persistence/in-memory-transcript-store.js +95 -0
  262. package/dist/persistence/in-memory-transcript-store.js.map +1 -0
  263. package/dist/platform/atomic-write.d.ts +5 -0
  264. package/dist/platform/atomic-write.d.ts.map +1 -0
  265. package/dist/platform/atomic-write.js +25 -0
  266. package/dist/platform/atomic-write.js.map +1 -0
  267. package/dist/platform/bounded-process-runner.d.ts +28 -0
  268. package/dist/platform/bounded-process-runner.d.ts.map +1 -0
  269. package/dist/platform/bounded-process-runner.js +209 -0
  270. package/dist/platform/bounded-process-runner.js.map +1 -0
  271. package/dist/platform/claude-version.d.ts +5 -0
  272. package/dist/platform/claude-version.d.ts.map +1 -0
  273. package/dist/platform/claude-version.js +17 -0
  274. package/dist/platform/claude-version.js.map +1 -0
  275. package/dist/platform/command-shell.d.ts +3 -0
  276. package/dist/platform/command-shell.d.ts.map +1 -0
  277. package/dist/platform/command-shell.js +15 -0
  278. package/dist/platform/command-shell.js.map +1 -0
  279. package/dist/platform/exclusive-file-lease.d.ts +15 -0
  280. package/dist/platform/exclusive-file-lease.d.ts.map +1 -0
  281. package/dist/platform/exclusive-file-lease.js +265 -0
  282. package/dist/platform/exclusive-file-lease.js.map +1 -0
  283. package/dist/platform/sensitive-data.d.ts +8 -0
  284. package/dist/platform/sensitive-data.d.ts.map +1 -0
  285. package/dist/platform/sensitive-data.js +138 -0
  286. package/dist/platform/sensitive-data.js.map +1 -0
  287. package/dist/platform/tmux-worktree.d.ts +30 -0
  288. package/dist/platform/tmux-worktree.d.ts.map +1 -0
  289. package/dist/platform/tmux-worktree.js +138 -0
  290. package/dist/platform/tmux-worktree.js.map +1 -0
  291. package/dist/plugins/claude-plugin-eval-discovery.d.ts +20 -0
  292. package/dist/plugins/claude-plugin-eval-discovery.d.ts.map +1 -0
  293. package/dist/plugins/claude-plugin-eval-discovery.js +128 -0
  294. package/dist/plugins/claude-plugin-eval-discovery.js.map +1 -0
  295. package/dist/plugins/claude-plugin-eval-graders.d.ts +49 -0
  296. package/dist/plugins/claude-plugin-eval-graders.d.ts.map +1 -0
  297. package/dist/plugins/claude-plugin-eval-graders.js +137 -0
  298. package/dist/plugins/claude-plugin-eval-graders.js.map +1 -0
  299. package/dist/plugins/claude-plugin-eval-runner.d.ts +50 -0
  300. package/dist/plugins/claude-plugin-eval-runner.d.ts.map +1 -0
  301. package/dist/plugins/claude-plugin-eval-runner.js +189 -0
  302. package/dist/plugins/claude-plugin-eval-runner.js.map +1 -0
  303. package/dist/plugins/claude-plugin-eval-schema.d.ts +80 -0
  304. package/dist/plugins/claude-plugin-eval-schema.d.ts.map +1 -0
  305. package/dist/plugins/claude-plugin-eval-schema.js +436 -0
  306. package/dist/plugins/claude-plugin-eval-schema.js.map +1 -0
  307. package/dist/plugins/claude-plugin-eval.d.ts +66 -0
  308. package/dist/plugins/claude-plugin-eval.d.ts.map +1 -0
  309. package/dist/plugins/claude-plugin-eval.js +438 -0
  310. package/dist/plugins/claude-plugin-eval.js.map +1 -0
  311. package/dist/plugins/claude-plugin-maintenance.d.ts +39 -0
  312. package/dist/plugins/claude-plugin-maintenance.d.ts.map +1 -0
  313. package/dist/plugins/claude-plugin-maintenance.js +336 -0
  314. package/dist/plugins/claude-plugin-maintenance.js.map +1 -0
  315. package/dist/plugins/claude-plugin-marketplace.d.ts +97 -0
  316. package/dist/plugins/claude-plugin-marketplace.d.ts.map +1 -0
  317. package/dist/plugins/claude-plugin-marketplace.js +1433 -0
  318. package/dist/plugins/claude-plugin-marketplace.js.map +1 -0
  319. package/dist/plugins/claude-plugin-mcpb.d.ts +71 -0
  320. package/dist/plugins/claude-plugin-mcpb.d.ts.map +1 -0
  321. package/dist/plugins/claude-plugin-mcpb.js +885 -0
  322. package/dist/plugins/claude-plugin-mcpb.js.map +1 -0
  323. package/dist/plugins/claude-plugin-runtime.d.ts +120 -0
  324. package/dist/plugins/claude-plugin-runtime.d.ts.map +1 -0
  325. package/dist/plugins/claude-plugin-runtime.js +1263 -0
  326. package/dist/plugins/claude-plugin-runtime.js.map +1 -0
  327. package/dist/providers/anthropic-compatible.d.ts +35 -0
  328. package/dist/providers/anthropic-compatible.d.ts.map +1 -0
  329. package/dist/providers/anthropic-compatible.js +733 -0
  330. package/dist/providers/anthropic-compatible.js.map +1 -0
  331. package/dist/providers/environment.d.ts +14 -0
  332. package/dist/providers/environment.d.ts.map +1 -0
  333. package/dist/providers/environment.js +67 -0
  334. package/dist/providers/environment.js.map +1 -0
  335. package/dist/providers/fallback-provider.d.ts +17 -0
  336. package/dist/providers/fallback-provider.d.ts.map +1 -0
  337. package/dist/providers/fallback-provider.js +70 -0
  338. package/dist/providers/fallback-provider.js.map +1 -0
  339. package/dist/providers/openai-compatible.d.ts +30 -0
  340. package/dist/providers/openai-compatible.d.ts.map +1 -0
  341. package/dist/providers/openai-compatible.js +409 -0
  342. package/dist/providers/openai-compatible.js.map +1 -0
  343. package/dist/tools/claude-interactive-tools.d.ts +58 -0
  344. package/dist/tools/claude-interactive-tools.d.ts.map +1 -0
  345. package/dist/tools/claude-interactive-tools.js +390 -0
  346. package/dist/tools/claude-interactive-tools.js.map +1 -0
  347. package/dist/tools/claude-lsp-formatters.d.ts +2 -0
  348. package/dist/tools/claude-lsp-formatters.d.ts.map +1 -0
  349. package/dist/tools/claude-lsp-formatters.js +291 -0
  350. package/dist/tools/claude-lsp-formatters.js.map +1 -0
  351. package/dist/tools/claude-lsp-tool.d.ts +22 -0
  352. package/dist/tools/claude-lsp-tool.d.ts.map +1 -0
  353. package/dist/tools/claude-lsp-tool.js +744 -0
  354. package/dist/tools/claude-lsp-tool.js.map +1 -0
  355. package/dist/tools/claude-scheduled-tools.d.ts +20 -0
  356. package/dist/tools/claude-scheduled-tools.d.ts.map +1 -0
  357. package/dist/tools/claude-scheduled-tools.js +344 -0
  358. package/dist/tools/claude-scheduled-tools.js.map +1 -0
  359. package/dist/tools/claude-task-tools.d.ts +30 -0
  360. package/dist/tools/claude-task-tools.d.ts.map +1 -0
  361. package/dist/tools/claude-task-tools.js +503 -0
  362. package/dist/tools/claude-task-tools.js.map +1 -0
  363. package/dist/tools/claude-user-message.d.ts +16 -0
  364. package/dist/tools/claude-user-message.d.ts.map +1 -0
  365. package/dist/tools/claude-user-message.js +98 -0
  366. package/dist/tools/claude-user-message.js.map +1 -0
  367. package/dist/tools/claude-workflow-tools.d.ts +27 -0
  368. package/dist/tools/claude-workflow-tools.d.ts.map +1 -0
  369. package/dist/tools/claude-workflow-tools.js +257 -0
  370. package/dist/tools/claude-workflow-tools.js.map +1 -0
  371. package/dist/tools/claude-worktree-tools.d.ts +17 -0
  372. package/dist/tools/claude-worktree-tools.d.ts.map +1 -0
  373. package/dist/tools/claude-worktree-tools.js +135 -0
  374. package/dist/tools/claude-worktree-tools.js.map +1 -0
  375. package/dist/tools/filtered-tool-registry.d.ts +16 -0
  376. package/dist/tools/filtered-tool-registry.d.ts.map +1 -0
  377. package/dist/tools/filtered-tool-registry.js +51 -0
  378. package/dist/tools/filtered-tool-registry.js.map +1 -0
  379. package/dist/tools/glob.d.ts +9 -0
  380. package/dist/tools/glob.d.ts.map +1 -0
  381. package/dist/tools/glob.js +88 -0
  382. package/dist/tools/glob.js.map +1 -0
  383. package/dist/tools/local-tools.d.ts +47 -0
  384. package/dist/tools/local-tools.d.ts.map +1 -0
  385. package/dist/tools/local-tools.js +1082 -0
  386. package/dist/tools/local-tools.js.map +1 -0
  387. package/dist/tools/notebook.d.ts +22 -0
  388. package/dist/tools/notebook.d.ts.map +1 -0
  389. package/dist/tools/notebook.js +154 -0
  390. package/dist/tools/notebook.js.map +1 -0
  391. package/dist/tools/web.d.ts +48 -0
  392. package/dist/tools/web.d.ts.map +1 -0
  393. package/dist/tools/web.js +726 -0
  394. package/dist/tools/web.js.map +1 -0
  395. package/package.json +145 -0
@@ -0,0 +1,600 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState } from 'react';
3
+ import { Box, Text, render, useApp, useInput } from 'ink';
4
+ import { redactSensitiveText, sensitiveEnvironmentValues, } from '../platform/sensitive-data.js';
5
+ function questionAnswer(question, input) {
6
+ const answer = input.trim();
7
+ if (!answer)
8
+ throw new Error('Enter an option number or text.');
9
+ if (!question.multiSelect) {
10
+ if (!/^\d+$/u.test(answer))
11
+ return answer;
12
+ const option = question.options[Number(answer) - 1];
13
+ if (!option)
14
+ throw new Error(`Unknown option ${answer}.`);
15
+ return option.label;
16
+ }
17
+ const values = input
18
+ .split(',')
19
+ .map((value) => value.trim())
20
+ .filter(Boolean);
21
+ return values
22
+ .map((value) => {
23
+ if (!/^\d+$/u.test(value))
24
+ return value;
25
+ const option = question.options[Number(value) - 1];
26
+ if (!option)
27
+ throw new Error(`Unknown option ${value}.`);
28
+ return option.label;
29
+ })
30
+ .join(', ');
31
+ }
32
+ function describeTool(call, sensitiveValues) {
33
+ const name = redactSensitiveText(call.name, sensitiveValues);
34
+ const detail = redactSensitiveText(JSON.stringify(call.input), sensitiveValues);
35
+ return `${name} ${detail.length > 160 ? `${detail.slice(0, 157)}...` : detail}`;
36
+ }
37
+ export function InteractiveApp({ factory, initialSessions, initialPrompt, signal, onCancel, onTurnChange, onCleanup, axScreenReader = false, allowNewSession = true, resume, }) {
38
+ const { exit } = useApp();
39
+ const sensitiveValues = useMemo(() => sensitiveEnvironmentValues(process.env), []);
40
+ const choices = useMemo(() => allowNewSession ? [null, ...initialSessions] : initialSessions, [allowNewSession, initialSessions]);
41
+ const [selectingSession, setSelectingSession] = useState(initialSessions.length > 0 && resume?.sessionId === undefined);
42
+ const [selectedIndex, setSelectedIndex] = useState(0);
43
+ const selectedIndexRef = useRef(0);
44
+ const [sessionId, setSessionId] = useState(resume?.sessionId ?? null);
45
+ const [pendingFork, setPendingFork] = useState(resume?.forkSession === true);
46
+ const [input, setInput] = useState('');
47
+ const inputRef = useRef('');
48
+ const [busy, setBusy] = useState(false);
49
+ const initialPromptRef = useRef(initialPrompt?.trim() ?? '');
50
+ const [initialPromptPending, setInitialPromptPending] = useState(initialPromptRef.current.length > 0);
51
+ const [status, setStatus] = useState('ready');
52
+ const [activeText, setActiveText] = useState('');
53
+ const [history, setHistory] = useState([]);
54
+ const [permission, setPermission] = useState(null);
55
+ const permissionRef = useRef(null);
56
+ const [elicitation, setElicitation] = useState(null);
57
+ const elicitationRef = useRef(null);
58
+ const [question, setQuestion] = useState(null);
59
+ const questionRef = useRef(null);
60
+ const [planApproval, setPlanApproval] = useState(null);
61
+ const planApprovalRef = useRef(null);
62
+ const serviceRef = useRef(null);
63
+ const serviceCreationRef = useRef(undefined);
64
+ const onCleanupRef = useRef(onCleanup);
65
+ onCleanupRef.current = onCleanup;
66
+ const scheduledWaitRef = useRef(null);
67
+ useEffect(() => {
68
+ if (!signal)
69
+ return;
70
+ const cancel = () => {
71
+ permissionRef.current?.resolve(false);
72
+ elicitationRef.current?.resolve({ action: 'cancel' });
73
+ questionRef.current?.resolve(null);
74
+ planApprovalRef.current?.resolve(false);
75
+ exit();
76
+ };
77
+ if (signal.aborted)
78
+ cancel();
79
+ else
80
+ signal.addEventListener('abort', cancel, { once: true });
81
+ return () => signal.removeEventListener('abort', cancel);
82
+ }, [exit, signal]);
83
+ useEffect(() => () => {
84
+ permissionRef.current?.resolve(false);
85
+ elicitationRef.current?.resolve({ action: 'cancel' });
86
+ questionRef.current?.resolve(null);
87
+ planApprovalRef.current?.resolve(false);
88
+ scheduledWaitRef.current?.abort();
89
+ const closing = serviceRef.current?.close?.() ?? Promise.resolve();
90
+ if (onCleanupRef.current)
91
+ onCleanupRef.current(closing);
92
+ else
93
+ void closing.catch(() => undefined);
94
+ }, []);
95
+ const append = (line) => setHistory((current) => [...current, line]);
96
+ const handleEvent = (event) => {
97
+ if (event.type === 'text-delta') {
98
+ setActiveText((current) => current + event.delta);
99
+ }
100
+ else if (event.type === 'user-message') {
101
+ append({ kind: 'assistant', text: event.message });
102
+ }
103
+ else if (event.type === 'state') {
104
+ setStatus(event.state);
105
+ }
106
+ else if (event.type === 'tool-call') {
107
+ append({
108
+ kind: 'notice',
109
+ text: `Tool: ${describeTool(event.call, sensitiveValues)}`,
110
+ });
111
+ }
112
+ else if (event.type === 'tool-result' && event.isError) {
113
+ append({
114
+ kind: 'warning',
115
+ text: `Tool failed: ${redactSensitiveText(event.content, sensitiveValues)}`,
116
+ });
117
+ }
118
+ else if (event.type === 'warning' || event.type === 'failed') {
119
+ append({
120
+ kind: 'warning',
121
+ text: redactSensitiveText(event.message, sensitiveValues),
122
+ });
123
+ }
124
+ };
125
+ const requestApproval = (call, kind) => new Promise((resolveApproval) => {
126
+ let settled = false;
127
+ const pending = {
128
+ kind,
129
+ call,
130
+ resolve: (approved) => {
131
+ if (settled)
132
+ return;
133
+ settled = true;
134
+ if (permissionRef.current === pending)
135
+ permissionRef.current = null;
136
+ setPermission((current) => (current === pending ? null : current));
137
+ resolveApproval(approved);
138
+ },
139
+ };
140
+ permissionRef.current = pending;
141
+ setPermission(pending);
142
+ });
143
+ const approveTool = (call) => requestApproval(call, 'tool');
144
+ const requestElicitation = (request) => new Promise((resolveResult) => {
145
+ let settled = false;
146
+ const pending = {
147
+ request,
148
+ resolve: (result) => {
149
+ if (settled)
150
+ return;
151
+ settled = true;
152
+ if (elicitationRef.current === pending)
153
+ elicitationRef.current = null;
154
+ setElicitation((current) => (current === pending ? null : current));
155
+ resolveResult(result);
156
+ },
157
+ };
158
+ elicitationRef.current = pending;
159
+ setElicitation(pending);
160
+ });
161
+ const approveRecovery = (call) => resume?.retryInterruptedTools ? true : requestApproval(call, 'recovery');
162
+ const askUser = (questions, signal) => new Promise((resolveResult) => {
163
+ let settled = false;
164
+ const abort = () => pending.resolve(null);
165
+ const pending = {
166
+ questions,
167
+ index: 0,
168
+ answers: {},
169
+ resolve: (result) => {
170
+ if (settled)
171
+ return;
172
+ settled = true;
173
+ signal?.removeEventListener('abort', abort);
174
+ if (questionRef.current === pending)
175
+ questionRef.current = null;
176
+ setQuestion((current) => (current === pending ? null : current));
177
+ resolveResult(result);
178
+ },
179
+ };
180
+ if (signal?.aborted) {
181
+ pending.resolve(null);
182
+ return;
183
+ }
184
+ signal?.addEventListener('abort', abort, { once: true });
185
+ inputRef.current = '';
186
+ setInput('');
187
+ questionRef.current = pending;
188
+ setQuestion(pending);
189
+ });
190
+ const approvePlan = (request, signal) => new Promise((resolveApproval) => {
191
+ let settled = false;
192
+ const abort = () => pending.resolve(false);
193
+ const pending = {
194
+ request,
195
+ resolve: (approved) => {
196
+ if (settled)
197
+ return;
198
+ settled = true;
199
+ signal?.removeEventListener('abort', abort);
200
+ if (planApprovalRef.current === pending)
201
+ planApprovalRef.current = null;
202
+ setPlanApproval((current) => (current === pending ? null : current));
203
+ resolveApproval(approved);
204
+ },
205
+ };
206
+ if (signal?.aborted) {
207
+ pending.resolve(false);
208
+ return;
209
+ }
210
+ signal?.addEventListener('abort', abort, { once: true });
211
+ planApprovalRef.current = pending;
212
+ setPlanApproval(pending);
213
+ });
214
+ const service = async () => {
215
+ if (serviceRef.current)
216
+ return serviceRef.current;
217
+ const pending = serviceCreationRef.current ??
218
+ factory.createService({
219
+ eventSink: handleEvent,
220
+ requireProvider: true,
221
+ approveRecovery,
222
+ approveTool,
223
+ onElicitation: requestElicitation,
224
+ askUser,
225
+ approvePlan,
226
+ ...(signal ? { signal } : {}),
227
+ });
228
+ serviceCreationRef.current = pending;
229
+ try {
230
+ const created = await pending;
231
+ serviceRef.current = created;
232
+ return created;
233
+ }
234
+ finally {
235
+ serviceCreationRef.current = undefined;
236
+ }
237
+ };
238
+ const submit = async (prompt) => {
239
+ scheduledWaitRef.current?.abort();
240
+ setBusy(true);
241
+ setStatus('assembling-context');
242
+ setActiveText('');
243
+ append({ kind: 'user', text: prompt });
244
+ let commands;
245
+ try {
246
+ commands = await service();
247
+ let activeSessionId = sessionId;
248
+ if (activeSessionId && pendingFork) {
249
+ const fork = await commands.fork(activeSessionId, resume?.forkSessionId);
250
+ activeSessionId = fork.sessionId;
251
+ setSessionId(activeSessionId);
252
+ setPendingFork(false);
253
+ }
254
+ const result = activeSessionId
255
+ ? await commands.resume(activeSessionId, prompt, signal)
256
+ : await commands.run(prompt, signal);
257
+ setSessionId(result.sessionId);
258
+ append({ kind: 'assistant', text: result.text });
259
+ setActiveText('');
260
+ setStatus('ready');
261
+ }
262
+ catch (error) {
263
+ append({
264
+ kind: 'warning',
265
+ text: redactSensitiveText(error instanceof Error ? error.message : String(error), sensitiveValues),
266
+ });
267
+ setStatus('failed');
268
+ }
269
+ finally {
270
+ if (!factory.scheduledPrompts && commands) {
271
+ try {
272
+ await commands.close?.();
273
+ }
274
+ catch (error) {
275
+ append({
276
+ kind: 'warning',
277
+ text: redactSensitiveText(error instanceof Error ? error.message : String(error), sensitiveValues),
278
+ });
279
+ }
280
+ finally {
281
+ if (serviceRef.current === commands)
282
+ serviceRef.current = null;
283
+ }
284
+ }
285
+ setBusy(false);
286
+ }
287
+ };
288
+ useEffect(() => {
289
+ if (!initialPromptPending || selectingSession || busy)
290
+ return;
291
+ const prompt = initialPromptRef.current;
292
+ if (!prompt) {
293
+ setInitialPromptPending(false);
294
+ return;
295
+ }
296
+ initialPromptRef.current = '';
297
+ const turn = submit(prompt);
298
+ onTurnChange?.(turn);
299
+ void turn.then(() => {
300
+ setInitialPromptPending(false);
301
+ onTurnChange?.(null);
302
+ }, () => {
303
+ setInitialPromptPending(false);
304
+ onTurnChange?.(null);
305
+ });
306
+ }, [busy, initialPromptPending, selectingSession]);
307
+ useEffect(() => {
308
+ if (!factory.scheduledPrompts ||
309
+ initialPromptPending ||
310
+ selectingSession ||
311
+ busy ||
312
+ permission) {
313
+ return;
314
+ }
315
+ const controller = new AbortController();
316
+ scheduledWaitRef.current?.abort();
317
+ scheduledWaitRef.current = controller;
318
+ const waitSignal = signal
319
+ ? AbortSignal.any([signal, controller.signal])
320
+ : controller.signal;
321
+ void service()
322
+ .then((commands) => commands.nextScheduledPrompt?.(waitSignal) ?? null)
323
+ .then((scheduled) => {
324
+ if (!scheduled || waitSignal.aborted)
325
+ return;
326
+ const turn = submit(scheduled.prompt);
327
+ onTurnChange?.(turn);
328
+ void turn.then(() => onTurnChange?.(null), () => onTurnChange?.(null));
329
+ })
330
+ .catch((error) => {
331
+ if (waitSignal.aborted)
332
+ return;
333
+ append({
334
+ kind: 'warning',
335
+ text: redactSensitiveText(error instanceof Error ? error.message : String(error), sensitiveValues),
336
+ });
337
+ });
338
+ return () => controller.abort();
339
+ }, [busy, initialPromptPending, permission, selectingSession, sessionId]);
340
+ useInput((value, key) => {
341
+ if (key.ctrl && value.toLowerCase() === 'c') {
342
+ permissionRef.current?.resolve(false);
343
+ elicitationRef.current?.resolve({ action: 'cancel' });
344
+ questionRef.current?.resolve(null);
345
+ planApprovalRef.current?.resolve(false);
346
+ onCancel?.();
347
+ exit();
348
+ return;
349
+ }
350
+ if (permission) {
351
+ if (value.toLowerCase() === 'y') {
352
+ permission.resolve(true);
353
+ }
354
+ else if (value.toLowerCase() === 'n' || key.return || key.escape) {
355
+ permission.resolve(false);
356
+ }
357
+ return;
358
+ }
359
+ if (planApproval) {
360
+ if (value.toLowerCase() === 'y') {
361
+ planApproval.resolve(true);
362
+ }
363
+ else if (value.toLowerCase() === 'n' || key.return || key.escape) {
364
+ planApproval.resolve(false);
365
+ }
366
+ return;
367
+ }
368
+ if (question) {
369
+ if (key.escape) {
370
+ question.resolve(null);
371
+ }
372
+ else if (key.return) {
373
+ try {
374
+ const current = question.questions[question.index];
375
+ if (!current)
376
+ throw new Error('Question state is invalid.');
377
+ const answer = questionAnswer(current, inputRef.current.trim());
378
+ const answers = { ...question.answers, [current.question]: answer };
379
+ inputRef.current = '';
380
+ setInput('');
381
+ if (question.index === question.questions.length - 1) {
382
+ question.resolve({ answers });
383
+ }
384
+ else {
385
+ const next = { ...question, index: question.index + 1, answers };
386
+ questionRef.current = next;
387
+ setQuestion(next);
388
+ }
389
+ }
390
+ catch (error) {
391
+ append({
392
+ kind: 'warning',
393
+ text: error instanceof Error ? error.message : String(error),
394
+ });
395
+ }
396
+ }
397
+ else if (key.backspace || key.delete) {
398
+ inputRef.current = inputRef.current.slice(0, -1);
399
+ setInput(inputRef.current);
400
+ }
401
+ else if (!key.ctrl && !key.meta && value) {
402
+ inputRef.current += value;
403
+ setInput(inputRef.current);
404
+ }
405
+ return;
406
+ }
407
+ if (elicitation) {
408
+ if (key.escape) {
409
+ elicitation.resolve({ action: 'cancel' });
410
+ }
411
+ else if (key.return) {
412
+ const answer = inputRef.current.trim();
413
+ inputRef.current = '';
414
+ setInput('');
415
+ if (!answer || answer.toLowerCase() === 'decline') {
416
+ elicitation.resolve({ action: 'decline' });
417
+ }
418
+ else if (answer.toLowerCase() === 'cancel') {
419
+ elicitation.resolve({ action: 'cancel' });
420
+ }
421
+ else if (answer.toLowerCase() === 'accept') {
422
+ elicitation.resolve({ action: 'accept' });
423
+ }
424
+ else {
425
+ try {
426
+ const content = JSON.parse(answer);
427
+ if (!content ||
428
+ typeof content !== 'object' ||
429
+ Array.isArray(content))
430
+ throw new Error('elicitation content must be a JSON object');
431
+ const elicitationContent = content;
432
+ elicitation.resolve({
433
+ action: 'accept',
434
+ content: elicitationContent,
435
+ });
436
+ }
437
+ catch {
438
+ append({
439
+ kind: 'warning',
440
+ text: 'Elicitation response must be accept, decline, cancel, or a JSON object.',
441
+ });
442
+ }
443
+ }
444
+ }
445
+ else if (key.backspace || key.delete) {
446
+ inputRef.current = inputRef.current.slice(0, -1);
447
+ setInput(inputRef.current);
448
+ }
449
+ else if (!key.ctrl && !key.meta && value) {
450
+ inputRef.current += value;
451
+ setInput(inputRef.current);
452
+ }
453
+ return;
454
+ }
455
+ if (selectingSession) {
456
+ if (key.upArrow) {
457
+ selectedIndexRef.current = Math.max(0, selectedIndexRef.current - 1);
458
+ setSelectedIndex(selectedIndexRef.current);
459
+ }
460
+ else if (key.downArrow) {
461
+ selectedIndexRef.current = Math.min(choices.length - 1, selectedIndexRef.current + 1);
462
+ setSelectedIndex(selectedIndexRef.current);
463
+ }
464
+ else if (key.return) {
465
+ const selected = choices[selectedIndexRef.current];
466
+ setSessionId(selected?.sessionId ?? null);
467
+ if (!selected)
468
+ setPendingFork(false);
469
+ setSelectingSession(false);
470
+ }
471
+ return;
472
+ }
473
+ if (busy)
474
+ return;
475
+ if (key.return) {
476
+ const prompt = inputRef.current.trim();
477
+ inputRef.current = '';
478
+ setInput('');
479
+ if (!prompt)
480
+ return;
481
+ if (prompt === '/exit') {
482
+ exit();
483
+ }
484
+ else if (prompt === '/new') {
485
+ setSessionId(null);
486
+ setPendingFork(false);
487
+ append({ kind: 'notice', text: 'Started a new session.' });
488
+ }
489
+ else if (prompt === '/sessions') {
490
+ selectedIndexRef.current = 0;
491
+ setSelectedIndex(0);
492
+ setSelectingSession(true);
493
+ }
494
+ else if (prompt === '/workflows') {
495
+ const turn = (async () => {
496
+ setBusy(true);
497
+ try {
498
+ const workflows = (await service()).workflows?.() ?? [];
499
+ append({
500
+ kind: 'notice',
501
+ text: workflows.length === 0
502
+ ? 'No workflows.'
503
+ : workflows
504
+ .map((workflow) => `${String(workflow.task_id)} [${String(workflow.status)}] ${String(workflow.summary)}`)
505
+ .join('\n'),
506
+ });
507
+ }
508
+ catch (error) {
509
+ append({
510
+ kind: 'warning',
511
+ text: redactSensitiveText(error instanceof Error ? error.message : String(error), sensitiveValues),
512
+ });
513
+ }
514
+ finally {
515
+ setBusy(false);
516
+ }
517
+ })();
518
+ onTurnChange?.(turn);
519
+ void turn.finally(() => onTurnChange?.(null));
520
+ }
521
+ else {
522
+ const turn = submit(prompt);
523
+ onTurnChange?.(turn);
524
+ void turn.then(() => onTurnChange?.(null), () => onTurnChange?.(null));
525
+ }
526
+ }
527
+ else if (key.backspace || key.delete) {
528
+ inputRef.current = inputRef.current.slice(0, -1);
529
+ setInput(inputRef.current);
530
+ }
531
+ else if (!key.ctrl && !key.meta && value) {
532
+ inputRef.current += value;
533
+ setInput(inputRef.current);
534
+ }
535
+ });
536
+ return (_jsxs(Box, { flexDirection: "column", children: [axScreenReader ? null : (_jsx(Text, { bold: true, color: "cyan", children: "Praxis" })), selectingSession ? (_jsxs(Box, { flexDirection: "column", children: [axScreenReader ? null : (_jsx(Text, { dimColor: true, children: "Select session \u00B7 \u2191/\u2193 move \u00B7 Enter confirm" })), choices.map((session, index) => (_jsxs(Text, { children: [index === selectedIndex ? '› ' : ' ', session
537
+ ? `${session.name ?? session.lastPrompt ?? 'Untitled'} · ${session.sessionId}${session.status === 'ready' ? '' : ` · ${session.status}`}`
538
+ : 'New session'] }, session?.sessionId ?? 'new')))] })) : (_jsxs(_Fragment, { children: [sessionId ? _jsxs(Text, { dimColor: true, children: ["Session ", sessionId] }) : null, history.map((line, index) => (_jsxs(Text, { ...(line.kind === 'warning' ? { color: 'red' } : {}), children: [line.kind === 'user'
539
+ ? 'You: '
540
+ : line.kind === 'assistant'
541
+ ? 'Praxis: '
542
+ : '· ', line.text] }, `${index}-${line.kind}`))), activeText ? _jsxs(Text, { children: ["Praxis: ", activeText] }) : null, permission ? (_jsxs(Text, { color: "yellow", children: [permission.kind === 'recovery' ? 'Retry interrupted ' : 'Allow ', describeTool(permission.call, sensitiveValues), "? (y/N)"] })) : planApproval ? (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "yellow", children: "Approve this plan and begin implementation? (y/N)" }), _jsx(Text, { dimColor: true, children: planApproval.request.planPath }), planApproval.request.plan ? (_jsx(Text, { children: planApproval.request.plan })) : null] })) : question ? (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "yellow", children: [question.questions[question.index]?.header, ":", ' ', question.questions[question.index]?.question] }), question.questions[question.index]?.options.map((option, index) => (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [index + 1, ". ", option.label, " \u2014 ", option.description] }), option.preview ? (_jsx(Text, { dimColor: true, children: option.preview })) : null] }, `${index}-${option.label}`))), _jsxs(Text, { children: ["\u203A ", input] }), _jsx(Text, { dimColor: true, children: question.questions[question.index]?.multiSelect
543
+ ? 'Enter comma-separated option numbers or custom text · Esc cancels'
544
+ : 'Enter one option number or custom text · Esc cancels' })] })) : elicitation ? (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "yellow", children: ["MCP elicitation (", elicitation.request.serverName, "):", ' ', elicitation.request.message] }), elicitation.request.url ? (_jsx(Text, { children: elicitation.request.url })) : null, elicitation.request.requestedSchema ? (_jsx(Text, { dimColor: true, children: JSON.stringify(elicitation.request.requestedSchema) })) : null, _jsxs(Text, { children: ["\u203A ", input] }), _jsx(Text, { dimColor: true, children: "Enter JSON object to accept \u00B7 Esc to cancel" })] })) : busy ? (_jsxs(Text, { dimColor: true, children: [status, "\u2026"] })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { children: ["\u203A ", input] }), axScreenReader ? null : (_jsx(Text, { dimColor: true, children: "/new \u00B7 /sessions \u00B7 /workflows \u00B7 /exit" }))] }))] }))] }));
545
+ }
546
+ export async function runInteractive(options) {
547
+ const controller = new AbortController();
548
+ const signal = options.signal
549
+ ? AbortSignal.any([options.signal, controller.signal])
550
+ : controller.signal;
551
+ const listing = await options.factory.createService({
552
+ eventSink: () => undefined,
553
+ requireProvider: false,
554
+ signal,
555
+ });
556
+ let initialSessions;
557
+ try {
558
+ const sessions = await listing.sessions();
559
+ initialSessions = options.sessionFilter
560
+ ? sessions.filter(options.sessionFilter)
561
+ : sessions;
562
+ if (options.requireSession && initialSessions.length === 0) {
563
+ throw new Error(options.missingSessionMessage ??
564
+ 'No conversation linked to a pull request in this project');
565
+ }
566
+ }
567
+ catch (error) {
568
+ try {
569
+ await listing.close?.();
570
+ }
571
+ catch {
572
+ // Preserve the session-listing failure as the primary error.
573
+ }
574
+ throw error;
575
+ }
576
+ await listing.close?.();
577
+ const canonicalResumeSession = options.resume?.sessionId === undefined
578
+ ? undefined
579
+ : initialSessions.find((session) => session.sessionId.toLowerCase() ===
580
+ options.resume?.sessionId?.toLowerCase());
581
+ const resume = canonicalResumeSession
582
+ ? { ...options.resume, sessionId: canonicalResumeSession.sessionId }
583
+ : options.resume;
584
+ let activeTurn = null;
585
+ let cleanup = null;
586
+ const instance = render(_jsx(InteractiveApp, { factory: options.factory, initialSessions: initialSessions, ...(options.initialPrompt === undefined
587
+ ? {}
588
+ : { initialPrompt: options.initialPrompt }), signal: signal, onCancel: () => controller.abort(), onTurnChange: (turn) => {
589
+ activeTurn = turn;
590
+ }, onCleanup: (closing) => {
591
+ cleanup = closing;
592
+ }, allowNewSession: !options.requireSession, ...(resume === undefined ? {} : { resume }), ...(options.axScreenReader ? { axScreenReader: true } : {}) }), { exitOnCtrlC: false, incrementalRendering: !options.axScreenReader });
593
+ await instance.waitUntilExit();
594
+ if (activeTurn)
595
+ await activeTurn;
596
+ if (cleanup)
597
+ await cleanup;
598
+ return signal.aborted ? 130 : 0;
599
+ }
600
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/cli/interactive.tsx"],"names":[],"mappings":"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"}