verbolab 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/dist/bin/verbo.d.ts +3 -0
  4. package/dist/bin/verbo.d.ts.map +1 -0
  5. package/dist/bin/verbo.js +1156 -0
  6. package/dist/bin/verbo.js.map +1 -0
  7. package/dist/relay/index.d.ts +2 -0
  8. package/dist/relay/index.d.ts.map +1 -0
  9. package/dist/relay/index.js +15 -0
  10. package/dist/relay/index.js.map +1 -0
  11. package/dist/src/agent/agent-launcher.d.ts +64 -0
  12. package/dist/src/agent/agent-launcher.d.ts.map +1 -0
  13. package/dist/src/agent/agent-launcher.js +326 -0
  14. package/dist/src/agent/agent-launcher.js.map +1 -0
  15. package/dist/src/agent/agent-monitor.d.ts +16 -0
  16. package/dist/src/agent/agent-monitor.d.ts.map +1 -0
  17. package/dist/src/agent/agent-monitor.js +41 -0
  18. package/dist/src/agent/agent-monitor.js.map +1 -0
  19. package/dist/src/agent/fun-names.d.ts +9 -0
  20. package/dist/src/agent/fun-names.d.ts.map +1 -0
  21. package/dist/src/agent/fun-names.js +118 -0
  22. package/dist/src/agent/fun-names.js.map +1 -0
  23. package/dist/src/agent/mcp-shim.d.ts +45 -0
  24. package/dist/src/agent/mcp-shim.d.ts.map +1 -0
  25. package/dist/src/agent/mcp-shim.js +192 -0
  26. package/dist/src/agent/mcp-shim.js.map +1 -0
  27. package/dist/src/agent/personas.d.ts +47 -0
  28. package/dist/src/agent/personas.d.ts.map +1 -0
  29. package/dist/src/agent/personas.js +86 -0
  30. package/dist/src/agent/personas.js.map +1 -0
  31. package/dist/src/agent/provider-detection.d.ts +21 -0
  32. package/dist/src/agent/provider-detection.d.ts.map +1 -0
  33. package/dist/src/agent/provider-detection.js +47 -0
  34. package/dist/src/agent/provider-detection.js.map +1 -0
  35. package/dist/src/agent/providers/claude-provider.d.ts +3 -0
  36. package/dist/src/agent/providers/claude-provider.d.ts.map +1 -0
  37. package/dist/src/agent/providers/claude-provider.js +119 -0
  38. package/dist/src/agent/providers/claude-provider.js.map +1 -0
  39. package/dist/src/agent/providers/gemini-provider.d.ts +13 -0
  40. package/dist/src/agent/providers/gemini-provider.d.ts.map +1 -0
  41. package/dist/src/agent/providers/gemini-provider.js +143 -0
  42. package/dist/src/agent/providers/gemini-provider.js.map +1 -0
  43. package/dist/src/agent/providers/openai-provider.d.ts +3 -0
  44. package/dist/src/agent/providers/openai-provider.d.ts.map +1 -0
  45. package/dist/src/agent/providers/openai-provider.js +127 -0
  46. package/dist/src/agent/providers/openai-provider.js.map +1 -0
  47. package/dist/src/agent/providers/registry.d.ts +19 -0
  48. package/dist/src/agent/providers/registry.d.ts.map +1 -0
  49. package/dist/src/agent/providers/registry.js +30 -0
  50. package/dist/src/agent/providers/registry.js.map +1 -0
  51. package/dist/src/agent/providers/types.d.ts +118 -0
  52. package/dist/src/agent/providers/types.d.ts.map +1 -0
  53. package/dist/src/agent/providers/types.js +2 -0
  54. package/dist/src/agent/providers/types.js.map +1 -0
  55. package/dist/src/approval/approval-server.d.ts +17 -0
  56. package/dist/src/approval/approval-server.d.ts.map +1 -0
  57. package/dist/src/approval/approval-server.js +90 -0
  58. package/dist/src/approval/approval-server.js.map +1 -0
  59. package/dist/src/approval/approval-store.d.ts +29 -0
  60. package/dist/src/approval/approval-store.d.ts.map +1 -0
  61. package/dist/src/approval/approval-store.js +94 -0
  62. package/dist/src/approval/approval-store.js.map +1 -0
  63. package/dist/src/auth/auth-store.d.ts +18 -0
  64. package/dist/src/auth/auth-store.d.ts.map +1 -0
  65. package/dist/src/auth/auth-store.js +34 -0
  66. package/dist/src/auth/auth-store.js.map +1 -0
  67. package/dist/src/auth/device-code-client.d.ts +32 -0
  68. package/dist/src/auth/device-code-client.d.ts.map +1 -0
  69. package/dist/src/auth/device-code-client.js +41 -0
  70. package/dist/src/auth/device-code-client.js.map +1 -0
  71. package/dist/src/auth/plan-enforcer.d.ts +8 -0
  72. package/dist/src/auth/plan-enforcer.d.ts.map +1 -0
  73. package/dist/src/auth/plan-enforcer.js +14 -0
  74. package/dist/src/auth/plan-enforcer.js.map +1 -0
  75. package/dist/src/commands/audit.d.ts +7 -0
  76. package/dist/src/commands/audit.d.ts.map +1 -0
  77. package/dist/src/commands/audit.js +92 -0
  78. package/dist/src/commands/audit.js.map +1 -0
  79. package/dist/src/commands/team.d.ts +48 -0
  80. package/dist/src/commands/team.d.ts.map +1 -0
  81. package/dist/src/commands/team.js +175 -0
  82. package/dist/src/commands/team.js.map +1 -0
  83. package/dist/src/config/verbo-config.d.ts +43 -0
  84. package/dist/src/config/verbo-config.d.ts.map +1 -0
  85. package/dist/src/config/verbo-config.js +111 -0
  86. package/dist/src/config/verbo-config.js.map +1 -0
  87. package/dist/src/core/agent-session-store.d.ts +69 -0
  88. package/dist/src/core/agent-session-store.d.ts.map +1 -0
  89. package/dist/src/core/agent-session-store.js +168 -0
  90. package/dist/src/core/agent-session-store.js.map +1 -0
  91. package/dist/src/core/audit-log-store.d.ts +33 -0
  92. package/dist/src/core/audit-log-store.d.ts.map +1 -0
  93. package/dist/src/core/audit-log-store.js +104 -0
  94. package/dist/src/core/audit-log-store.js.map +1 -0
  95. package/dist/src/core/compliance.d.ts +50 -0
  96. package/dist/src/core/compliance.d.ts.map +1 -0
  97. package/dist/src/core/compliance.js +59 -0
  98. package/dist/src/core/compliance.js.map +1 -0
  99. package/dist/src/core/conflict-detector.d.ts +19 -0
  100. package/dist/src/core/conflict-detector.d.ts.map +1 -0
  101. package/dist/src/core/conflict-detector.js +87 -0
  102. package/dist/src/core/conflict-detector.js.map +1 -0
  103. package/dist/src/core/conflict-enforcer.d.ts +37 -0
  104. package/dist/src/core/conflict-enforcer.d.ts.map +1 -0
  105. package/dist/src/core/conflict-enforcer.js +139 -0
  106. package/dist/src/core/conflict-enforcer.js.map +1 -0
  107. package/dist/src/core/cost-store.d.ts +55 -0
  108. package/dist/src/core/cost-store.d.ts.map +1 -0
  109. package/dist/src/core/cost-store.js +140 -0
  110. package/dist/src/core/cost-store.js.map +1 -0
  111. package/dist/src/core/hot-files.d.ts +19 -0
  112. package/dist/src/core/hot-files.d.ts.map +1 -0
  113. package/dist/src/core/hot-files.js +64 -0
  114. package/dist/src/core/hot-files.js.map +1 -0
  115. package/dist/src/core/human-action-store.d.ts +33 -0
  116. package/dist/src/core/human-action-store.d.ts.map +1 -0
  117. package/dist/src/core/human-action-store.js +92 -0
  118. package/dist/src/core/human-action-store.js.map +1 -0
  119. package/dist/src/core/learning-store.d.ts +32 -0
  120. package/dist/src/core/learning-store.d.ts.map +1 -0
  121. package/dist/src/core/learning-store.js +95 -0
  122. package/dist/src/core/learning-store.js.map +1 -0
  123. package/dist/src/core/merge-queue.d.ts +28 -0
  124. package/dist/src/core/merge-queue.d.ts.map +1 -0
  125. package/dist/src/core/merge-queue.js +92 -0
  126. package/dist/src/core/merge-queue.js.map +1 -0
  127. package/dist/src/core/notification-service.d.ts +13 -0
  128. package/dist/src/core/notification-service.d.ts.map +1 -0
  129. package/dist/src/core/notification-service.js +126 -0
  130. package/dist/src/core/notification-service.js.map +1 -0
  131. package/dist/src/core/notifications.d.ts +10 -0
  132. package/dist/src/core/notifications.d.ts.map +1 -0
  133. package/dist/src/core/notifications.js +33 -0
  134. package/dist/src/core/notifications.js.map +1 -0
  135. package/dist/src/core/orchestrator-store.d.ts +44 -0
  136. package/dist/src/core/orchestrator-store.d.ts.map +1 -0
  137. package/dist/src/core/orchestrator-store.js +69 -0
  138. package/dist/src/core/orchestrator-store.js.map +1 -0
  139. package/dist/src/core/parallelizer.d.ts +47 -0
  140. package/dist/src/core/parallelizer.d.ts.map +1 -0
  141. package/dist/src/core/parallelizer.js +224 -0
  142. package/dist/src/core/parallelizer.js.map +1 -0
  143. package/dist/src/core/pipeline-rollback.d.ts +29 -0
  144. package/dist/src/core/pipeline-rollback.d.ts.map +1 -0
  145. package/dist/src/core/pipeline-rollback.js +84 -0
  146. package/dist/src/core/pipeline-rollback.js.map +1 -0
  147. package/dist/src/core/pipeline-runner.d.ts +73 -0
  148. package/dist/src/core/pipeline-runner.d.ts.map +1 -0
  149. package/dist/src/core/pipeline-runner.js +165 -0
  150. package/dist/src/core/pipeline-runner.js.map +1 -0
  151. package/dist/src/core/pr-creator.d.ts +22 -0
  152. package/dist/src/core/pr-creator.d.ts.map +1 -0
  153. package/dist/src/core/pr-creator.js +55 -0
  154. package/dist/src/core/pr-creator.js.map +1 -0
  155. package/dist/src/core/rbac.d.ts +27 -0
  156. package/dist/src/core/rbac.d.ts.map +1 -0
  157. package/dist/src/core/rbac.js +76 -0
  158. package/dist/src/core/rbac.js.map +1 -0
  159. package/dist/src/core/startup-cleanup.d.ts +47 -0
  160. package/dist/src/core/startup-cleanup.d.ts.map +1 -0
  161. package/dist/src/core/startup-cleanup.js +150 -0
  162. package/dist/src/core/startup-cleanup.js.map +1 -0
  163. package/dist/src/core/task-store.d.ts +96 -0
  164. package/dist/src/core/task-store.d.ts.map +1 -0
  165. package/dist/src/core/task-store.js +309 -0
  166. package/dist/src/core/task-store.js.map +1 -0
  167. package/dist/src/core/verbo-config-editor.d.ts +44 -0
  168. package/dist/src/core/verbo-config-editor.d.ts.map +1 -0
  169. package/dist/src/core/verbo-config-editor.js +204 -0
  170. package/dist/src/core/verbo-config-editor.js.map +1 -0
  171. package/dist/src/core/verbo-config.d.ts +35 -0
  172. package/dist/src/core/verbo-config.d.ts.map +1 -0
  173. package/dist/src/core/verbo-config.js +55 -0
  174. package/dist/src/core/verbo-config.js.map +1 -0
  175. package/dist/src/core/verbo-md.d.ts +96 -0
  176. package/dist/src/core/verbo-md.d.ts.map +1 -0
  177. package/dist/src/core/verbo-md.js +410 -0
  178. package/dist/src/core/verbo-md.js.map +1 -0
  179. package/dist/src/db/database.d.ts +9 -0
  180. package/dist/src/db/database.d.ts.map +1 -0
  181. package/dist/src/db/database.js +37 -0
  182. package/dist/src/db/database.js.map +1 -0
  183. package/dist/src/db/migrations/001-personas-subtasks.d.ts +10 -0
  184. package/dist/src/db/migrations/001-personas-subtasks.d.ts.map +1 -0
  185. package/dist/src/db/migrations/001-personas-subtasks.js +32 -0
  186. package/dist/src/db/migrations/001-personas-subtasks.js.map +1 -0
  187. package/dist/src/db/migrations/002-rbac.d.ts +9 -0
  188. package/dist/src/db/migrations/002-rbac.d.ts.map +1 -0
  189. package/dist/src/db/migrations/002-rbac.js +31 -0
  190. package/dist/src/db/migrations/002-rbac.js.map +1 -0
  191. package/dist/src/db/migrations/003-provider-column.d.ts +8 -0
  192. package/dist/src/db/migrations/003-provider-column.d.ts.map +1 -0
  193. package/dist/src/db/migrations/003-provider-column.js +12 -0
  194. package/dist/src/db/migrations/003-provider-column.js.map +1 -0
  195. package/dist/src/db/migrations/004-pipeline-cost.d.ts +8 -0
  196. package/dist/src/db/migrations/004-pipeline-cost.d.ts.map +1 -0
  197. package/dist/src/db/migrations/004-pipeline-cost.js +23 -0
  198. package/dist/src/db/migrations/004-pipeline-cost.js.map +1 -0
  199. package/dist/src/db/migrations/005-audit-log-timestamp.d.ts +10 -0
  200. package/dist/src/db/migrations/005-audit-log-timestamp.d.ts.map +1 -0
  201. package/dist/src/db/migrations/005-audit-log-timestamp.js +39 -0
  202. package/dist/src/db/migrations/005-audit-log-timestamp.js.map +1 -0
  203. package/dist/src/db/migrations/006-human-action-type.d.ts +9 -0
  204. package/dist/src/db/migrations/006-human-action-type.d.ts.map +1 -0
  205. package/dist/src/db/migrations/006-human-action-type.js +16 -0
  206. package/dist/src/db/migrations/006-human-action-type.js.map +1 -0
  207. package/dist/src/db/schema.d.ts +6 -0
  208. package/dist/src/db/schema.d.ts.map +1 -0
  209. package/dist/src/db/schema.js +255 -0
  210. package/dist/src/db/schema.js.map +1 -0
  211. package/dist/src/deps/dependabot-generator.d.ts +22 -0
  212. package/dist/src/deps/dependabot-generator.d.ts.map +1 -0
  213. package/dist/src/deps/dependabot-generator.js +83 -0
  214. package/dist/src/deps/dependabot-generator.js.map +1 -0
  215. package/dist/src/deps/dependabot-monitor.d.ts +22 -0
  216. package/dist/src/deps/dependabot-monitor.d.ts.map +1 -0
  217. package/dist/src/deps/dependabot-monitor.js +28 -0
  218. package/dist/src/deps/dependabot-monitor.js.map +1 -0
  219. package/dist/src/deps/package-auditor.d.ts +24 -0
  220. package/dist/src/deps/package-auditor.d.ts.map +1 -0
  221. package/dist/src/deps/package-auditor.js +118 -0
  222. package/dist/src/deps/package-auditor.js.map +1 -0
  223. package/dist/src/init/ensure-init.d.ts +6 -0
  224. package/dist/src/init/ensure-init.d.ts.map +1 -0
  225. package/dist/src/init/ensure-init.js +27 -0
  226. package/dist/src/init/ensure-init.js.map +1 -0
  227. package/dist/src/init/project-detector.d.ts +11 -0
  228. package/dist/src/init/project-detector.d.ts.map +1 -0
  229. package/dist/src/init/project-detector.js +117 -0
  230. package/dist/src/init/project-detector.js.map +1 -0
  231. package/dist/src/init/questionnaire.d.ts +5 -0
  232. package/dist/src/init/questionnaire.d.ts.map +1 -0
  233. package/dist/src/init/questionnaire.js +112 -0
  234. package/dist/src/init/questionnaire.js.map +1 -0
  235. package/dist/src/init/template.d.ts +17 -0
  236. package/dist/src/init/template.d.ts.map +1 -0
  237. package/dist/src/init/template.js +46 -0
  238. package/dist/src/init/template.js.map +1 -0
  239. package/dist/src/intelligence/claude-client.d.ts +3 -0
  240. package/dist/src/intelligence/claude-client.d.ts.map +1 -0
  241. package/dist/src/intelligence/claude-client.js +12 -0
  242. package/dist/src/intelligence/claude-client.js.map +1 -0
  243. package/dist/src/intelligence/conflict-mediator.d.ts +17 -0
  244. package/dist/src/intelligence/conflict-mediator.d.ts.map +1 -0
  245. package/dist/src/intelligence/conflict-mediator.js +83 -0
  246. package/dist/src/intelligence/conflict-mediator.js.map +1 -0
  247. package/dist/src/intelligence/github-orchestrator.d.ts +30 -0
  248. package/dist/src/intelligence/github-orchestrator.d.ts.map +1 -0
  249. package/dist/src/intelligence/github-orchestrator.js +270 -0
  250. package/dist/src/intelligence/github-orchestrator.js.map +1 -0
  251. package/dist/src/intelligence/kill-switch.d.ts +10 -0
  252. package/dist/src/intelligence/kill-switch.d.ts.map +1 -0
  253. package/dist/src/intelligence/kill-switch.js +12 -0
  254. package/dist/src/intelligence/kill-switch.js.map +1 -0
  255. package/dist/src/intelligence/learnings-extractor.d.ts +13 -0
  256. package/dist/src/intelligence/learnings-extractor.d.ts.map +1 -0
  257. package/dist/src/intelligence/learnings-extractor.js +74 -0
  258. package/dist/src/intelligence/learnings-extractor.js.map +1 -0
  259. package/dist/src/intelligence/project-scanner.d.ts +2 -0
  260. package/dist/src/intelligence/project-scanner.d.ts.map +1 -0
  261. package/dist/src/intelligence/project-scanner.js +28 -0
  262. package/dist/src/intelligence/project-scanner.js.map +1 -0
  263. package/dist/src/intelligence/task-decomposer.d.ts +14 -0
  264. package/dist/src/intelligence/task-decomposer.d.ts.map +1 -0
  265. package/dist/src/intelligence/task-decomposer.js +97 -0
  266. package/dist/src/intelligence/task-decomposer.js.map +1 -0
  267. package/dist/src/intelligence/types.d.ts +14 -0
  268. package/dist/src/intelligence/types.d.ts.map +1 -0
  269. package/dist/src/intelligence/types.js +2 -0
  270. package/dist/src/intelligence/types.js.map +1 -0
  271. package/dist/src/mcp/server.d.ts +63 -0
  272. package/dist/src/mcp/server.d.ts.map +1 -0
  273. package/dist/src/mcp/server.js +537 -0
  274. package/dist/src/mcp/server.js.map +1 -0
  275. package/dist/src/mcp/stdio-entry.d.ts +2 -0
  276. package/dist/src/mcp/stdio-entry.d.ts.map +1 -0
  277. package/dist/src/mcp/stdio-entry.js +124 -0
  278. package/dist/src/mcp/stdio-entry.js.map +1 -0
  279. package/dist/src/mcp/subtask-handlers.d.ts +7 -0
  280. package/dist/src/mcp/subtask-handlers.d.ts.map +1 -0
  281. package/dist/src/mcp/subtask-handlers.js +50 -0
  282. package/dist/src/mcp/subtask-handlers.js.map +1 -0
  283. package/dist/src/security/network-proxy.d.ts +20 -0
  284. package/dist/src/security/network-proxy.d.ts.map +1 -0
  285. package/dist/src/security/network-proxy.js +125 -0
  286. package/dist/src/security/network-proxy.js.map +1 -0
  287. package/dist/src/security/network-sandbox.d.ts +19 -0
  288. package/dist/src/security/network-sandbox.d.ts.map +1 -0
  289. package/dist/src/security/network-sandbox.js +100 -0
  290. package/dist/src/security/network-sandbox.js.map +1 -0
  291. package/dist/src/security/sanitize.d.ts +13 -0
  292. package/dist/src/security/sanitize.d.ts.map +1 -0
  293. package/dist/src/security/sanitize.js +19 -0
  294. package/dist/src/security/sanitize.js.map +1 -0
  295. package/dist/src/security/secrets-patterns.d.ts +29 -0
  296. package/dist/src/security/secrets-patterns.d.ts.map +1 -0
  297. package/dist/src/security/secrets-patterns.js +430 -0
  298. package/dist/src/security/secrets-patterns.js.map +1 -0
  299. package/dist/src/security/secrets-scanner.d.ts +26 -0
  300. package/dist/src/security/secrets-scanner.d.ts.map +1 -0
  301. package/dist/src/security/secrets-scanner.js +62 -0
  302. package/dist/src/security/secrets-scanner.js.map +1 -0
  303. package/dist/src/skills/classifier.d.ts +9 -0
  304. package/dist/src/skills/classifier.d.ts.map +1 -0
  305. package/dist/src/skills/classifier.js +41 -0
  306. package/dist/src/skills/classifier.js.map +1 -0
  307. package/dist/src/skills/registry.d.ts +16 -0
  308. package/dist/src/skills/registry.d.ts.map +1 -0
  309. package/dist/src/skills/registry.js +61 -0
  310. package/dist/src/skills/registry.js.map +1 -0
  311. package/dist/src/sync/events.d.ts +9 -0
  312. package/dist/src/sync/events.d.ts.map +1 -0
  313. package/dist/src/sync/events.js +2 -0
  314. package/dist/src/sync/events.js.map +1 -0
  315. package/dist/src/sync/relay-server.d.ts +18 -0
  316. package/dist/src/sync/relay-server.d.ts.map +1 -0
  317. package/dist/src/sync/relay-server.js +131 -0
  318. package/dist/src/sync/relay-server.js.map +1 -0
  319. package/dist/src/sync/sync-client.d.ts +31 -0
  320. package/dist/src/sync/sync-client.d.ts.map +1 -0
  321. package/dist/src/sync/sync-client.js +314 -0
  322. package/dist/src/sync/sync-client.js.map +1 -0
  323. package/dist/src/tui/app.d.ts +35 -0
  324. package/dist/src/tui/app.d.ts.map +1 -0
  325. package/dist/src/tui/app.js +676 -0
  326. package/dist/src/tui/app.js.map +1 -0
  327. package/dist/src/tui/components/activity-feed.d.ts +12 -0
  328. package/dist/src/tui/components/activity-feed.d.ts.map +1 -0
  329. package/dist/src/tui/components/activity-feed.js +82 -0
  330. package/dist/src/tui/components/activity-feed.js.map +1 -0
  331. package/dist/src/tui/components/agent-list.d.ts +19 -0
  332. package/dist/src/tui/components/agent-list.d.ts.map +1 -0
  333. package/dist/src/tui/components/agent-list.js +33 -0
  334. package/dist/src/tui/components/agent-list.js.map +1 -0
  335. package/dist/src/tui/components/agent-row.d.ts +12 -0
  336. package/dist/src/tui/components/agent-row.d.ts.map +1 -0
  337. package/dist/src/tui/components/agent-row.js +37 -0
  338. package/dist/src/tui/components/agent-row.js.map +1 -0
  339. package/dist/src/tui/components/approval-terminal.d.ts +13 -0
  340. package/dist/src/tui/components/approval-terminal.d.ts.map +1 -0
  341. package/dist/src/tui/components/approval-terminal.js +34 -0
  342. package/dist/src/tui/components/approval-terminal.js.map +1 -0
  343. package/dist/src/tui/components/audit-viewer.d.ts +16 -0
  344. package/dist/src/tui/components/audit-viewer.d.ts.map +1 -0
  345. package/dist/src/tui/components/audit-viewer.js +46 -0
  346. package/dist/src/tui/components/audit-viewer.js.map +1 -0
  347. package/dist/src/tui/components/auth-gate.d.ts +9 -0
  348. package/dist/src/tui/components/auth-gate.d.ts.map +1 -0
  349. package/dist/src/tui/components/auth-gate.js +112 -0
  350. package/dist/src/tui/components/auth-gate.js.map +1 -0
  351. package/dist/src/tui/components/command-palette.d.ts +12 -0
  352. package/dist/src/tui/components/command-palette.d.ts.map +1 -0
  353. package/dist/src/tui/components/command-palette.js +51 -0
  354. package/dist/src/tui/components/command-palette.js.map +1 -0
  355. package/dist/src/tui/components/compliance-badge.d.ts +11 -0
  356. package/dist/src/tui/components/compliance-badge.d.ts.map +1 -0
  357. package/dist/src/tui/components/compliance-badge.js +12 -0
  358. package/dist/src/tui/components/compliance-badge.js.map +1 -0
  359. package/dist/src/tui/components/decomposition-review.d.ts +10 -0
  360. package/dist/src/tui/components/decomposition-review.d.ts.map +1 -0
  361. package/dist/src/tui/components/decomposition-review.js +19 -0
  362. package/dist/src/tui/components/decomposition-review.js.map +1 -0
  363. package/dist/src/tui/components/dependency-graph.d.ts +13 -0
  364. package/dist/src/tui/components/dependency-graph.d.ts.map +1 -0
  365. package/dist/src/tui/components/dependency-graph.js +143 -0
  366. package/dist/src/tui/components/dependency-graph.js.map +1 -0
  367. package/dist/src/tui/components/diff-viewer.d.ts +11 -0
  368. package/dist/src/tui/components/diff-viewer.d.ts.map +1 -0
  369. package/dist/src/tui/components/diff-viewer.js +82 -0
  370. package/dist/src/tui/components/diff-viewer.js.map +1 -0
  371. package/dist/src/tui/components/edit-task-input.d.ts +10 -0
  372. package/dist/src/tui/components/edit-task-input.d.ts.map +1 -0
  373. package/dist/src/tui/components/edit-task-input.js +20 -0
  374. package/dist/src/tui/components/edit-task-input.js.map +1 -0
  375. package/dist/src/tui/components/footer.d.ts +12 -0
  376. package/dist/src/tui/components/footer.d.ts.map +1 -0
  377. package/dist/src/tui/components/footer.js +41 -0
  378. package/dist/src/tui/components/footer.js.map +1 -0
  379. package/dist/src/tui/components/header.d.ts +8 -0
  380. package/dist/src/tui/components/header.d.ts.map +1 -0
  381. package/dist/src/tui/components/header.js +20 -0
  382. package/dist/src/tui/components/header.js.map +1 -0
  383. package/dist/src/tui/components/human-actions.d.ts +14 -0
  384. package/dist/src/tui/components/human-actions.d.ts.map +1 -0
  385. package/dist/src/tui/components/human-actions.js +43 -0
  386. package/dist/src/tui/components/human-actions.js.map +1 -0
  387. package/dist/src/tui/components/log-panel.d.ts +10 -0
  388. package/dist/src/tui/components/log-panel.d.ts.map +1 -0
  389. package/dist/src/tui/components/log-panel.js +38 -0
  390. package/dist/src/tui/components/log-panel.js.map +1 -0
  391. package/dist/src/tui/components/memory-viewer.d.ts +10 -0
  392. package/dist/src/tui/components/memory-viewer.d.ts.map +1 -0
  393. package/dist/src/tui/components/memory-viewer.js +44 -0
  394. package/dist/src/tui/components/memory-viewer.js.map +1 -0
  395. package/dist/src/tui/components/new-task-input.d.ts +9 -0
  396. package/dist/src/tui/components/new-task-input.d.ts.map +1 -0
  397. package/dist/src/tui/components/new-task-input.js +21 -0
  398. package/dist/src/tui/components/new-task-input.js.map +1 -0
  399. package/dist/src/tui/components/orchestrator-status.d.ts +9 -0
  400. package/dist/src/tui/components/orchestrator-status.d.ts.map +1 -0
  401. package/dist/src/tui/components/orchestrator-status.js +15 -0
  402. package/dist/src/tui/components/orchestrator-status.js.map +1 -0
  403. package/dist/src/tui/components/parallelize-banner.d.ts +8 -0
  404. package/dist/src/tui/components/parallelize-banner.d.ts.map +1 -0
  405. package/dist/src/tui/components/parallelize-banner.js +9 -0
  406. package/dist/src/tui/components/parallelize-banner.js.map +1 -0
  407. package/dist/src/tui/components/progress-bar.d.ts +9 -0
  408. package/dist/src/tui/components/progress-bar.d.ts.map +1 -0
  409. package/dist/src/tui/components/progress-bar.js +15 -0
  410. package/dist/src/tui/components/progress-bar.js.map +1 -0
  411. package/dist/src/tui/components/review-queue.d.ts +13 -0
  412. package/dist/src/tui/components/review-queue.d.ts.map +1 -0
  413. package/dist/src/tui/components/review-queue.js +78 -0
  414. package/dist/src/tui/components/review-queue.js.map +1 -0
  415. package/dist/src/tui/components/rich-header.d.ts +11 -0
  416. package/dist/src/tui/components/rich-header.d.ts.map +1 -0
  417. package/dist/src/tui/components/rich-header.js +25 -0
  418. package/dist/src/tui/components/rich-header.js.map +1 -0
  419. package/dist/src/tui/components/spinner.d.ts +7 -0
  420. package/dist/src/tui/components/spinner.d.ts.map +1 -0
  421. package/dist/src/tui/components/spinner.js +8 -0
  422. package/dist/src/tui/components/spinner.js.map +1 -0
  423. package/dist/src/tui/components/status-bar.d.ts +23 -0
  424. package/dist/src/tui/components/status-bar.d.ts.map +1 -0
  425. package/dist/src/tui/components/status-bar.js +28 -0
  426. package/dist/src/tui/components/status-bar.js.map +1 -0
  427. package/dist/src/tui/components/task-queue.d.ts +11 -0
  428. package/dist/src/tui/components/task-queue.d.ts.map +1 -0
  429. package/dist/src/tui/components/task-queue.js +30 -0
  430. package/dist/src/tui/components/task-queue.js.map +1 -0
  431. package/dist/src/tui/components/team-view.d.ts +13 -0
  432. package/dist/src/tui/components/team-view.d.ts.map +1 -0
  433. package/dist/src/tui/components/team-view.js +12 -0
  434. package/dist/src/tui/components/team-view.js.map +1 -0
  435. package/dist/src/tui/graph-renderer.d.ts +11 -0
  436. package/dist/src/tui/graph-renderer.d.ts.map +1 -0
  437. package/dist/src/tui/graph-renderer.js +296 -0
  438. package/dist/src/tui/graph-renderer.js.map +1 -0
  439. package/dist/src/tui/hooks/use-bell.d.ts +21 -0
  440. package/dist/src/tui/hooks/use-bell.d.ts.map +1 -0
  441. package/dist/src/tui/hooks/use-bell.js +38 -0
  442. package/dist/src/tui/hooks/use-bell.js.map +1 -0
  443. package/dist/src/tui/hooks/use-ci-status.d.ts +16 -0
  444. package/dist/src/tui/hooks/use-ci-status.d.ts.map +1 -0
  445. package/dist/src/tui/hooks/use-ci-status.js +97 -0
  446. package/dist/src/tui/hooks/use-ci-status.js.map +1 -0
  447. package/dist/src/tui/hooks/use-command-palette.d.ts +37 -0
  448. package/dist/src/tui/hooks/use-command-palette.d.ts.map +1 -0
  449. package/dist/src/tui/hooks/use-command-palette.js +108 -0
  450. package/dist/src/tui/hooks/use-command-palette.js.map +1 -0
  451. package/dist/src/tui/hooks/use-diff-view.d.ts +16 -0
  452. package/dist/src/tui/hooks/use-diff-view.d.ts.map +1 -0
  453. package/dist/src/tui/hooks/use-diff-view.js +75 -0
  454. package/dist/src/tui/hooks/use-diff-view.js.map +1 -0
  455. package/dist/src/tui/hooks/use-keyboard.d.ts +3 -0
  456. package/dist/src/tui/hooks/use-keyboard.d.ts.map +1 -0
  457. package/dist/src/tui/hooks/use-keyboard.js +70 -0
  458. package/dist/src/tui/hooks/use-keyboard.js.map +1 -0
  459. package/dist/src/tui/hooks/use-log-stream.d.ts +25 -0
  460. package/dist/src/tui/hooks/use-log-stream.d.ts.map +1 -0
  461. package/dist/src/tui/hooks/use-log-stream.js +83 -0
  462. package/dist/src/tui/hooks/use-log-stream.js.map +1 -0
  463. package/dist/src/tui/hooks/use-spinner.d.ts +3 -0
  464. package/dist/src/tui/hooks/use-spinner.d.ts.map +1 -0
  465. package/dist/src/tui/hooks/use-spinner.js +13 -0
  466. package/dist/src/tui/hooks/use-spinner.js.map +1 -0
  467. package/dist/src/tui/hooks/use-store.d.ts +33 -0
  468. package/dist/src/tui/hooks/use-store.d.ts.map +1 -0
  469. package/dist/src/tui/hooks/use-store.js +21 -0
  470. package/dist/src/tui/hooks/use-store.js.map +1 -0
  471. package/dist/src/tui/lib/diff-parser.d.ts +24 -0
  472. package/dist/src/tui/lib/diff-parser.d.ts.map +1 -0
  473. package/dist/src/tui/lib/diff-parser.js +115 -0
  474. package/dist/src/tui/lib/diff-parser.js.map +1 -0
  475. package/dist/src/tui/lib/palette-commands.d.ts +14 -0
  476. package/dist/src/tui/lib/palette-commands.d.ts.map +1 -0
  477. package/dist/src/tui/lib/palette-commands.js +101 -0
  478. package/dist/src/tui/lib/palette-commands.js.map +1 -0
  479. package/dist/src/tui/tui.d.ts +8 -0
  480. package/dist/src/tui/tui.d.ts.map +1 -0
  481. package/dist/src/tui/tui.js +8 -0
  482. package/dist/src/tui/tui.js.map +1 -0
  483. package/package.json +66 -0
  484. package/skills/api-design.md +84 -0
  485. package/skills/backend-typescript.md +76 -0
  486. package/skills/data-modeling.md +73 -0
  487. package/skills/devops-ci.md +82 -0
  488. package/skills/frontend-design.md +69 -0
  489. package/skills/observability.md +73 -0
  490. package/skills/react-nextjs.md +76 -0
  491. package/skills/refactoring.md +77 -0
  492. package/skills/security.md +75 -0
  493. package/skills/testing.md +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/tui/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { Task } from '../../core/task-store.js';
3
+ import type { ApprovalRequest } from '../../approval/approval-store.js';
4
+ interface ActivityFeedProps {
5
+ tasks: Task[];
6
+ resolvedApprovals: ApprovalRequest[];
7
+ scrollOffset: number;
8
+ isActive: boolean;
9
+ }
10
+ export declare function ActivityFeed({ tasks, resolvedApprovals, scrollOffset, isActive }: ActivityFeedProps): React.JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=activity-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/activity-feed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,UAAU,iBAAiB;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA6ED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6CvH"}
@@ -0,0 +1,82 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { Box, Text, useStdout } from 'ink';
4
+ const MAX_VISIBLE = 10;
5
+ // chars used by: left-pad(1) + time(8) + gap(1) + icon(1) + gap(1) + right-pad(1)
6
+ const MSG_OVERHEAD = 13;
7
+ function formatTime(iso) {
8
+ const d = new Date(iso);
9
+ const hh = String(d.getHours()).padStart(2, '0');
10
+ const mm = String(d.getMinutes()).padStart(2, '0');
11
+ const ss = String(d.getSeconds()).padStart(2, '0');
12
+ return `${hh}:${mm}:${ss}`;
13
+ }
14
+ function truncate(str, max) {
15
+ if (str.length <= max)
16
+ return str;
17
+ return str.slice(0, max - 1) + '\u2026';
18
+ }
19
+ function typeIcon(type) {
20
+ switch (type) {
21
+ case 'progress':
22
+ return { icon: '\u25B8', color: 'blue' };
23
+ case 'completion':
24
+ return { icon: '\u2713', color: 'green' };
25
+ case 'approval':
26
+ return { icon: '\u26A0', color: 'yellow' }; // ⚠
27
+ }
28
+ }
29
+ function collectEvents(tasks, resolvedApprovals) {
30
+ const events = [];
31
+ // Progress updates from all tasks
32
+ for (const task of tasks) {
33
+ for (const log of task.progressLog) {
34
+ events.push({
35
+ timestamp: log.timestamp,
36
+ type: 'progress',
37
+ message: log.message,
38
+ taskTitle: task.title,
39
+ });
40
+ }
41
+ // Completion events for done tasks
42
+ if (task.status === 'done') {
43
+ events.push({
44
+ timestamp: task.updatedAt,
45
+ type: 'completion',
46
+ message: 'Task completed',
47
+ taskTitle: task.title,
48
+ });
49
+ }
50
+ }
51
+ // Approval decisions
52
+ for (const req of resolvedApprovals) {
53
+ const action = req.status === 'approved' ? 'Approved' : 'Denied';
54
+ events.push({
55
+ timestamp: req.resolvedAt ?? req.createdAt,
56
+ type: 'approval',
57
+ message: `${action} ${req.toolName} for "${req.agentName}"`,
58
+ });
59
+ }
60
+ // Sort newest first
61
+ events.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
62
+ return events;
63
+ }
64
+ export function ActivityFeed({ tasks, resolvedApprovals, scrollOffset, isActive }) {
65
+ const { stdout } = useStdout();
66
+ const maxMsgLen = Math.max(40, (stdout?.columns ?? 80) - MSG_OVERHEAD);
67
+ const events = useMemo(() => collectEvents(tasks, resolvedApprovals), [tasks, resolvedApprovals]);
68
+ if (events.length === 0) {
69
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: isActive, color: isActive ? 'magenta' : undefined, dimColor: !isActive, children: "ACTIVITY" }), _jsx(Text, { dimColor: true, children: "No activity yet" })] }));
70
+ }
71
+ const visible = events.slice(scrollOffset, scrollOffset + MAX_VISIBLE);
72
+ const hasMore = events.length > scrollOffset + MAX_VISIBLE;
73
+ const hasPrev = scrollOffset > 0;
74
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { paddingX: 1, children: _jsxs(Text, { bold: isActive, color: isActive ? 'magenta' : undefined, dimColor: !isActive, children: ["ACTIVITY \u00B7 ", events.length] }) }), visible.map((event, i) => {
75
+ const { icon, color } = typeIcon(event.type);
76
+ const time = formatTime(event.timestamp);
77
+ const prefix = event.taskTitle ? event.taskTitle + ': ' : '';
78
+ const msg = truncate(prefix + event.message, maxMsgLen);
79
+ return (_jsxs(Box, { paddingX: 1, gap: 1, children: [_jsx(Text, { color: "gray", children: time }), _jsx(Text, { color: color, children: icon }), _jsx(Text, { color: "white", children: msg })] }, `${event.timestamp}-${i}`));
80
+ }), (hasPrev || hasMore) && (_jsxs(Box, { paddingX: 1, gap: 1, children: [hasPrev && _jsxs(Text, { color: "gray", children: ['\u2191', " newer"] }), hasMore && _jsxs(Text, { color: "gray", children: ['\u2193', " +", events.length - scrollOffset - MAX_VISIBLE, " older"] })] }))] }));
81
+ }
82
+ //# sourceMappingURL=activity-feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../../src/tui/components/activity-feed.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { AgentSession } from '../../core/agent-session-store.js';
3
+ import type { Task } from '../../core/task-store.js';
4
+ import type { FileConflict } from '../../core/conflict-detector.js';
5
+ interface AgentListProps {
6
+ sessions: AgentSession[];
7
+ tasks: Task[];
8
+ conflicts: FileConflict[];
9
+ selectedIndex: number;
10
+ activeArea: 'agents' | 'tasks' | 'your-turn' | 'activity';
11
+ }
12
+ export declare function agentVerbPhrase(status: AgentSession['status'], progress: number): string;
13
+ export declare function formatLogStrip(log: {
14
+ timestamp: string;
15
+ message: string;
16
+ } | undefined): string;
17
+ export declare function AgentList({ sessions, tasks, conflicts, selectedIndex, activeArea }: AgentListProps): React.JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=agent-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-list.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/agent-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,UAAU,cAAc;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;CAC3D;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKxF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,MAAM,CAO9F;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmCtH"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { AgentRow } from './agent-row.js';
4
+ // Kept for backward compatibility (tests import these from agent-list)
5
+ export function agentVerbPhrase(status, progress) {
6
+ if (status === 'stalled')
7
+ return 'is stalled';
8
+ if (status === 'errored')
9
+ return 'errored';
10
+ if (progress === 0)
11
+ return 'is starting';
12
+ return 'is working on';
13
+ }
14
+ export function formatLogStrip(log) {
15
+ if (!log)
16
+ return 'No activity yet';
17
+ const d = new Date(log.timestamp);
18
+ const hh = String(d.getHours()).padStart(2, '0');
19
+ const mm = String(d.getMinutes()).padStart(2, '0');
20
+ const msg = log.message.length > 55 ? log.message.slice(0, 54) + '\u2026' : log.message;
21
+ return `${hh}:${mm} · ${msg}`;
22
+ }
23
+ export function AgentList({ sessions, tasks, conflicts, selectedIndex, activeArea }) {
24
+ const isActive = activeArea === 'agents';
25
+ if (sessions.length === 0) {
26
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { paddingX: 1, children: _jsx(Text, { bold: isActive, color: isActive ? 'cyan' : undefined, dimColor: !isActive, children: "Active Agents" }) }), _jsx(Box, { paddingX: 1, children: _jsx(Text, { dimColor: true, children: "No active agents" }) })] }));
27
+ }
28
+ return (_jsxs(Box, { flexDirection: "column", gap: 0, children: [_jsx(Box, { paddingX: 1, flexShrink: 0, children: _jsx(Text, { bold: isActive, color: isActive ? 'cyan' : undefined, dimColor: !isActive, children: "Active Agents" }) }), sessions.map((session, idx) => {
29
+ const task = tasks.find((t) => t.id === session.taskId);
30
+ return (_jsx(AgentRow, { session: session, task: task, conflicts: conflicts, isSelected: idx === selectedIndex }, session.id));
31
+ })] }));
32
+ }
33
+ //# sourceMappingURL=agent-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-list.js","sourceRoot":"","sources":["../../../../src/tui/components/agent-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIhC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAU1C,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,MAA8B,EAAE,QAAgB;IAC9E,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC9C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IACzC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAuD;IACpF,IAAI,CAAC,GAAG;QAAE,OAAO,iBAAiB,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IACxF,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAkB;IACjG,MAAM,QAAQ,GAAG,UAAU,KAAK,QAAQ,CAAC;IAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,QAAQ,8BAAsB,GACjG,EACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,IAAI,IAAC,QAAQ,uCAAwB,GAClC,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAChC,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAC7B,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,QAAQ,8BAAsB,GACjG,EACL,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxD,OAAO,CACL,KAAC,QAAQ,IAEP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,GAAG,KAAK,aAAa,IAJ5B,OAAO,CAAC,EAAE,CAKf,CACH,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { AgentSession } from '../../core/agent-session-store.js';
3
+ import type { Task } from '../../core/task-store.js';
4
+ import type { FileConflict } from '../../core/conflict-detector.js';
5
+ export interface AgentRowProps {
6
+ session: AgentSession;
7
+ task: Task | undefined;
8
+ conflicts: FileConflict[];
9
+ isSelected: boolean;
10
+ }
11
+ export declare function AgentRow({ session, task, conflicts, isSelected }: AgentRowProps): React.JSX.Element;
12
+ //# sourceMappingURL=agent-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-row.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/agent-row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAIpE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB;AAsBD,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuEnG"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { Spinner } from './spinner.js';
4
+ import { ProgressBar } from './progress-bar.js';
5
+ function cardBorderColor(session, isSelected) {
6
+ if (isSelected)
7
+ return 'cyan';
8
+ if (session.status === 'stalled')
9
+ return 'yellow';
10
+ if (session.status === 'errored')
11
+ return 'red';
12
+ return 'gray';
13
+ }
14
+ function formatLogStrip(log) {
15
+ if (!log)
16
+ return 'No activity yet';
17
+ const d = new Date(log.timestamp);
18
+ const hh = String(d.getHours()).padStart(2, '0');
19
+ const mm = String(d.getMinutes()).padStart(2, '0');
20
+ const msg = log.message.length > 55 ? log.message.slice(0, 54) + '\u2026' : log.message;
21
+ return `${hh}:${mm} · ${msg}`;
22
+ }
23
+ function isActiveStatus(status) {
24
+ return status === 'starting' || status === 'active';
25
+ }
26
+ export function AgentRow({ session, task, conflicts, isSelected }) {
27
+ const taskTitle = task?.title ?? session.taskId;
28
+ const progress = task?.progress ?? 0;
29
+ const lastLog = task?.progressLog[task.progressLog.length - 1];
30
+ const sessionConflicts = conflicts.filter((c) => c.taskIds.includes(session.taskId));
31
+ const agentLabel = session.funName ?? '—';
32
+ const isChild = session.parentSessionId !== null;
33
+ const strip = formatLogStrip(lastLog);
34
+ const active = isActiveStatus(session.status);
35
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, borderStyle: "single", borderColor: cardBorderColor(session, isSelected), children: [_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingTop: 0, paddingBottom: 0, children: [_jsxs(Box, { flexDirection: "row", gap: 1, children: [isChild && _jsx(Text, { dimColor: true, children: "\u2514\u2500" }), active ? (_jsx(Spinner, { label: agentLabel })) : (_jsx(Text, { bold: true, color: session.status === 'stalled' ? 'yellow' : session.status === 'errored' ? 'red' : 'green', children: agentLabel })), session.personaName && (_jsxs(Text, { color: "cyan", dimColor: true, children: ["[", session.personaName, "]"] })), isSelected && _jsx(Text, { dimColor: true, children: " \u25B6" })] }), session.funTagline && (_jsx(Box, { paddingLeft: isChild ? 3 : 0, children: _jsxs(Text, { dimColor: true, italic: true, children: ["\"", session.funTagline, "\""] }) })), _jsx(Box, { paddingLeft: isChild ? 3 : 0, children: _jsx(Text, { wrap: "truncate-end", color: isSelected ? 'cyan' : 'white', children: taskTitle }) }), _jsxs(Box, { flexDirection: "row", gap: 1, paddingLeft: isChild ? 3 : 0, children: [_jsx(ProgressBar, { value: progress, width: 20 }), _jsxs(Text, { dimColor: true, children: [progress, "%"] })] })] }), _jsx(Box, { borderStyle: "single", borderColor: "gray", borderTop: true, borderLeft: false, borderRight: false, borderBottom: false, paddingX: 1, children: _jsx(Text, { dimColor: true, children: strip }) }), sessionConflicts.map((conflict) => (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: "yellow", children: ["\u26A0 conflict: ", conflict.file, " (with ", conflict.taskTitles.filter((t) => t !== taskTitle).join(', '), ")"] }) }, conflict.file)))] }));
36
+ }
37
+ //# sourceMappingURL=agent-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-row.js","sourceRoot":"","sources":["../../../../src/tui/components/agent-row.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ApprovalRequest } from '../../approval/approval-store.js';
3
+ interface ApprovalTerminalProps {
4
+ requests: ApprovalRequest[];
5
+ selectedIndex: number;
6
+ yoloMode: boolean;
7
+ cols?: number;
8
+ }
9
+ export declare function shouldShowApprovalBar(requests: ApprovalRequest[], yoloMode: boolean): boolean;
10
+ export declare function truncateCommand(cmd: string): string;
11
+ export declare function ApprovalTerminal({ requests, selectedIndex, yoloMode, cols }: ApprovalTerminalProps): React.JSX.Element | null;
12
+ export {};
13
+ //# sourceMappingURL=approval-terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-terminal.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/approval-terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAE7F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAUD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAS,EAAE,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAuDlI"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export function shouldShowApprovalBar(requests, yoloMode) {
4
+ return yoloMode || requests.length > 0;
5
+ }
6
+ export function truncateCommand(cmd) {
7
+ if (cmd.length <= 60)
8
+ return cmd;
9
+ return cmd.slice(0, 59) + '\u2026';
10
+ }
11
+ function getCommandDisplay(req, maxLen) {
12
+ const raw = req.toolName === 'Bash'
13
+ ? req.toolInput.command || JSON.stringify(req.toolInput)
14
+ : JSON.stringify(req.toolInput);
15
+ if (raw.length <= maxLen)
16
+ return raw;
17
+ return raw.slice(0, maxLen - 1) + '\u2026';
18
+ }
19
+ export function ApprovalTerminal({ requests, selectedIndex, yoloMode, cols = 80 }) {
20
+ const cmdMaxLen = Math.max(20, cols - 60);
21
+ if (!shouldShowApprovalBar(requests, yoloMode)) {
22
+ return null;
23
+ }
24
+ if (yoloMode) {
25
+ return (_jsxs(Box, { borderStyle: "single", borderColor: "red", borderTop: true, borderLeft: false, borderRight: false, borderBottom: false, paddingX: 1, flexDirection: "row", gap: 2, children: [_jsx(Text, { color: "yellow", bold: true, children: "AUTO MODE" }), _jsx(Text, { dimColor: true, children: "all permissions auto-approved \u2014 ! to disable" })] }));
26
+ }
27
+ const req = requests[selectedIndex] ?? requests[0];
28
+ if (!req)
29
+ return null;
30
+ const display = getCommandDisplay(req, cmdMaxLen);
31
+ const counter = requests.length > 1 ? ` (${selectedIndex + 1}/${requests.length})` : '';
32
+ return (_jsxs(Box, { borderStyle: "single", borderColor: "yellow", borderTop: true, borderLeft: false, borderRight: false, borderBottom: false, paddingX: 1, flexDirection: "row", gap: 1, children: [_jsx(Text, { color: "yellow", children: "\u26A1" }), _jsx(Text, { color: "yellow", bold: true, children: req.agentName }), _jsx(Text, { dimColor: true, children: "wants" }), _jsx(Text, { color: "cyan", bold: true, children: req.toolName }), _jsxs(Text, { color: "white", children: ["> ", display] }), counter && _jsx(Text, { dimColor: true, children: counter }), _jsx(Box, { flexGrow: 1 }), _jsxs(Text, { children: [_jsx(Text, { color: "green", bold: true, children: "1" }), _jsx(Text, { dimColor: true, children: "=allow " })] }), _jsxs(Text, { children: [_jsx(Text, { color: "blue", bold: true, children: "2" }), _jsx(Text, { dimColor: true, children: "=session " })] }), _jsxs(Text, { children: [_jsx(Text, { color: "red", bold: true, children: "3" }), _jsx(Text, { dimColor: true, children: "=deny" })] })] }));
33
+ }
34
+ //# sourceMappingURL=approval-terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-terminal.js","sourceRoot":"","sources":["../../../../src/tui/components/approval-terminal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { AuditLogEntry } from '../../core/audit-log-store.js';
3
+ interface AuditViewerProps {
4
+ entries: AuditLogEntry[];
5
+ filterText: string;
6
+ scrollOffset?: number;
7
+ onClose: () => void;
8
+ }
9
+ export declare function getEventColor(eventType: string): string;
10
+ export declare function filterAuditEntries(entries: AuditLogEntry[], filterText: string): AuditLogEntry[];
11
+ export declare function formatAuditActor(entry: AuditLogEntry): string;
12
+ export declare function formatAuditDetails(details: Record<string, unknown>): string;
13
+ export declare const AUDIT_MAX_VISIBLE = 15;
14
+ export declare function AuditViewer({ entries, filterText, scrollOffset, onClose, }: AuditViewerProps): React.JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=audit-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-viewer.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/audit-viewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,UAAU,gBAAgB;IACxB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAYD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,CAUhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI3E;AAED,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,YAAgB,EAChB,OAAO,GACR,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiFtC"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ const eventColors = {
4
+ 'task.created': 'green',
5
+ 'task.claimed': 'cyan',
6
+ 'task.completed': 'blue',
7
+ 'task.blocked': 'red',
8
+ 'team.invite': 'yellow',
9
+ 'team.role_change': 'yellow',
10
+ 'compliance_mode_activated': 'magenta',
11
+ };
12
+ export function getEventColor(eventType) {
13
+ return eventColors[eventType] ?? 'white';
14
+ }
15
+ export function filterAuditEntries(entries, filterText) {
16
+ if (!filterText)
17
+ return entries;
18
+ const text = filterText.toLowerCase();
19
+ return entries.filter((e) => e.eventType.toLowerCase().includes(text) ||
20
+ (e.humanId?.toLowerCase().includes(text) ?? false) ||
21
+ (e.agentSessionId?.toLowerCase().includes(text) ?? false) ||
22
+ (e.taskId?.toLowerCase().includes(text) ?? false) ||
23
+ JSON.stringify(e.details).toLowerCase().includes(text));
24
+ }
25
+ export function formatAuditActor(entry) {
26
+ return entry.humanId ?? entry.agentSessionId ?? '-';
27
+ }
28
+ export function formatAuditDetails(details) {
29
+ const keys = Object.keys(details);
30
+ if (keys.length === 0)
31
+ return '';
32
+ return keys.map((k) => `${k}=${String(details[k])}`).join(' ');
33
+ }
34
+ export const AUDIT_MAX_VISIBLE = 15;
35
+ export function AuditViewer({ entries, filterText, scrollOffset = 0, onClose, }) {
36
+ const filtered = filterAuditEntries(entries, filterText);
37
+ const clamped = Math.max(0, Math.min(scrollOffset, Math.max(0, filtered.length - AUDIT_MAX_VISIBLE)));
38
+ const visible = filtered.slice(clamped, clamped + AUDIT_MAX_VISIBLE);
39
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "yellow", borderLeft: false, borderRight: false, borderBottom: false, paddingX: 1, children: [_jsxs(Box, { flexDirection: "row", gap: 2, marginBottom: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "Audit Log" }), _jsxs(Text, { dimColor: true, children: ["(", filtered.length, " entries)"] }), filterText && (_jsxs(Text, { color: "cyan", children: ["filter: \"", filterText, "\""] })), _jsx(Text, { dimColor: true, children: "/=filter esc=close" })] }), filtered.length === 0 ? (_jsxs(Text, { dimColor: true, children: ["No audit entries", filterText ? ' matching filter' : '', "."] })) : (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Box, { width: 19, children: _jsx(Text, { bold: true, dimColor: true, children: "TIMESTAMP" }) }), _jsx(Box, { width: 26, children: _jsx(Text, { bold: true, dimColor: true, children: "EVENT TYPE" }) }), _jsx(Box, { width: 18, children: _jsx(Text, { bold: true, dimColor: true, children: "ACTOR" }) }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { bold: true, dimColor: true, children: "DETAILS" }) })] }), visible.map((entry) => {
40
+ const ts = entry.timestamp.slice(0, 19).replace('T', ' ');
41
+ const actor = formatAuditActor(entry);
42
+ const detailStr = formatAuditDetails(entry.details);
43
+ return (_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Box, { width: 19, children: _jsx(Text, { dimColor: true, children: ts }) }), _jsx(Box, { width: 26, children: _jsx(Text, { color: getEventColor(entry.eventType), children: entry.eventType }) }), _jsx(Box, { width: 18, children: _jsx(Text, { children: actor }) }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { dimColor: true, children: detailStr }) })] }, entry.id));
44
+ }), filtered.length > AUDIT_MAX_VISIBLE && (_jsxs(Text, { dimColor: true, children: ["Showing ", clamped + 1, "-", Math.min(clamped + AUDIT_MAX_VISIBLE, filtered.length), " of ", filtered.length, " (j/k to scroll)"] }))] }))] }));
45
+ }
46
+ //# sourceMappingURL=audit-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-viewer.js","sourceRoot":"","sources":["../../../../src/tui/components/audit-viewer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export declare function buildBrowserCommand(url: string, platform: string): string;
3
+ export declare function formatCountdown(remainingMs: number): string;
4
+ interface AuthGateProps {
5
+ onSuccess: () => void;
6
+ }
7
+ export declare function AuthGate({ onSuccess }: AuthGateProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=auth-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-gate.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/auth-gate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAiBhE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM3D;AAsBD,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAMD,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6JxE"}
@@ -0,0 +1,112 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { Box, Text, useInput, useApp } from 'ink';
4
+ import { exec } from 'child_process';
5
+ import { requestDeviceCode, pollDeviceCode, toAuthSession, AUTH_API_URL, } from '../../auth/device-code-client.js';
6
+ import { writeSession } from '../../auth/auth-store.js';
7
+ import { useSpinner } from '../hooks/use-spinner.js';
8
+ /* ------------------------------------------------------------------ */
9
+ /* Pure helpers (exported for testing) */
10
+ /* ------------------------------------------------------------------ */
11
+ export function buildBrowserCommand(url, platform) {
12
+ if (platform === 'win32')
13
+ return `cmd /c start "" "${url}"`;
14
+ if (platform === 'darwin')
15
+ return `open "${url}"`;
16
+ return `xdg-open "${url}"`;
17
+ }
18
+ export function formatCountdown(remainingMs) {
19
+ const clamped = Math.max(0, remainingMs);
20
+ const totalSec = Math.floor(clamped / 1000);
21
+ const min = Math.floor(totalSec / 60);
22
+ const sec = totalSec % 60;
23
+ return `${min}:${sec.toString().padStart(2, '0')}`;
24
+ }
25
+ /* ------------------------------------------------------------------ */
26
+ /* Constants */
27
+ /* ------------------------------------------------------------------ */
28
+ const POLL_INTERVAL_MS = 3000;
29
+ const TIMEOUT_MS = 300_000; // 5 minutes
30
+ const LOGO = [
31
+ '__ _____ ____ ____ ___ ',
32
+ '\\ \\ / / __|| _ \\| __ ) / _ \\ ',
33
+ ' \\ V /| |_ | |_) | |_) | (_) |',
34
+ ' \\_/ |___||____/|____/ \\___/ ',
35
+ ];
36
+ function openBrowser(url) {
37
+ exec(buildBrowserCommand(url, process.platform), () => { });
38
+ }
39
+ export function AuthGate({ onSuccess }) {
40
+ const { exit } = useApp();
41
+ const spinnerFrame = useSpinner();
42
+ const [phase, setPhase] = useState('requesting');
43
+ const [code, setCode] = useState('');
44
+ const [error, setError] = useState('');
45
+ const [remaining, setRemaining] = useState(TIMEOUT_MS);
46
+ const [email, setEmail] = useState('');
47
+ const [plan, setPlan] = useState('');
48
+ const [rows, setRows] = useState(process.stdout.rows ?? 24);
49
+ useEffect(() => {
50
+ const onResize = () => setRows(process.stdout.rows ?? 24);
51
+ process.stdout.on('resize', onResize);
52
+ return () => { process.stdout.off('resize', onResize); };
53
+ }, []);
54
+ const startAuth = useCallback(async () => {
55
+ setPhase('requesting');
56
+ setRemaining(TIMEOUT_MS);
57
+ try {
58
+ const deviceCode = await requestDeviceCode();
59
+ setCode(deviceCode);
60
+ setPhase('waiting');
61
+ const url = `${AUTH_API_URL}/auth?code=${deviceCode}`;
62
+ openBrowser(url);
63
+ let elapsed = 0;
64
+ const interval = setInterval(async () => {
65
+ elapsed += POLL_INTERVAL_MS;
66
+ setRemaining(Math.max(0, TIMEOUT_MS - elapsed));
67
+ if (elapsed >= TIMEOUT_MS) {
68
+ clearInterval(interval);
69
+ setPhase('timeout');
70
+ return;
71
+ }
72
+ try {
73
+ const result = await pollDeviceCode(deviceCode);
74
+ if (result.status === 'completed') {
75
+ clearInterval(interval);
76
+ const completed = result;
77
+ const session = {
78
+ ...toAuthSession(completed),
79
+ cachedAt: new Date().toISOString(),
80
+ };
81
+ writeSession(session);
82
+ setEmail(completed.email);
83
+ setPlan(completed.plan);
84
+ setPhase('done');
85
+ setTimeout(onSuccess, 800);
86
+ }
87
+ }
88
+ catch {
89
+ // keep polling on transient errors
90
+ }
91
+ }, POLL_INTERVAL_MS);
92
+ }
93
+ catch (e) {
94
+ setPhase('error');
95
+ setError(e instanceof Error ? e.message : String(e));
96
+ }
97
+ }, [onSuccess]);
98
+ useEffect(() => {
99
+ startAuth();
100
+ }, [startAuth]);
101
+ useInput((_, key) => {
102
+ if (key.return && phase === 'timeout') {
103
+ startAuth();
104
+ }
105
+ if (key.escape) {
106
+ exit();
107
+ }
108
+ });
109
+ const authUrl = code ? `${AUTH_API_URL}/auth?code=${code}` : '';
110
+ return (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", height: rows, paddingX: 2, children: [_jsxs(Box, { flexDirection: "column", alignItems: "center", marginBottom: 1, children: [LOGO.map((line, i) => (_jsx(Text, { color: "green", bold: true, children: line }, i))), _jsx(Text, { dimColor: true, children: "ai agent orchestra" })] }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: "Login Required" }) }), phase === 'requesting' && (_jsxs(Text, { color: "gray", children: [spinnerFrame, " Requesting login code\u2026"] })), phase === 'waiting' && (_jsxs(Box, { flexDirection: "column", alignItems: "center", gap: 1, children: [_jsx(Text, { children: "Open this URL in your browser to log in:" }), _jsx(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 0, children: _jsx(Text, { bold: true, color: "cyan", children: authUrl }) }), _jsx(Text, { dimColor: true, children: "(browser should open automatically)" }), _jsxs(Box, { gap: 2, children: [_jsxs(Text, { color: "gray", children: [spinnerFrame, " Waiting for authentication\u2026"] }), _jsx(Text, { dimColor: true, children: formatCountdown(remaining) })] })] })), phase === 'timeout' && (_jsxs(Box, { flexDirection: "column", alignItems: "center", gap: 1, children: [_jsx(Text, { color: "yellow", children: "Login timed out." }), _jsxs(Text, { dimColor: true, children: ["Press ", _jsx(Text, { bold: true, color: "white", children: "Enter" }), " to retry \u00B7 ", _jsx(Text, { bold: true, color: "white", children: "Esc" }), " to exit"] })] })), phase === 'error' && (_jsxs(Box, { flexDirection: "column", alignItems: "center", gap: 1, children: [_jsxs(Text, { color: "red", children: ["Error: ", error] }), _jsxs(Text, { dimColor: true, children: ["Press ", _jsx(Text, { bold: true, color: "white", children: "Esc" }), " to exit"] })] })), phase === 'done' && (_jsxs(Box, { flexDirection: "column", alignItems: "center", gap: 1, children: [_jsx(Text, { color: "green", bold: true, children: "\u2713 Authenticated" }), email && (_jsxs(Text, { children: ["Logged in as ", _jsx(Text, { bold: true, children: email }), plan && _jsxs(Text, { dimColor: true, children: [" (", plan, " plan)"] })] })), _jsx(Text, { dimColor: true, children: "Starting Verbo\u2026" })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Esc to exit" }) })] }));
111
+ }
112
+ //# sourceMappingURL=auth-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-gate.js","sourceRoot":"","sources":["../../../../src/tui/components/auth-gate.tsx"],"names":[],"mappings":"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"}