prjct-cli 0.11.5 → 0.12.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 (391) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +81 -25
  3. package/bin/dev.js +1 -1
  4. package/bin/generate-views.js +209 -0
  5. package/bin/migrate-to-json.js +742 -0
  6. package/bin/prjct +5 -5
  7. package/bin/serve.js +226 -50
  8. package/core/__tests__/agentic/{memory-system.test.js → memory-system.test.ts} +12 -23
  9. package/core/__tests__/agentic/{plan-mode.test.js → plan-mode.test.ts} +26 -24
  10. package/core/__tests__/agentic/{prompt-builder.test.js → prompt-builder.test.ts} +3 -8
  11. package/core/__tests__/utils/{date-helper.test.js → date-helper.test.ts} +19 -30
  12. package/core/__tests__/utils/{output.test.js → output.test.ts} +12 -24
  13. package/core/agentic/agent-router.ts +137 -0
  14. package/core/agentic/chain-of-thought.ts +228 -0
  15. package/core/agentic/command-executor/command-executor.ts +384 -0
  16. package/core/agentic/command-executor/index.ts +16 -0
  17. package/core/agentic/command-executor/status-signal.ts +38 -0
  18. package/core/agentic/command-executor/types.ts +79 -0
  19. package/core/agentic/command-executor.ts +8 -0
  20. package/core/agentic/{context-builder.js → context-builder.ts} +92 -81
  21. package/core/agentic/context-filter.ts +365 -0
  22. package/core/agentic/ground-truth/index.ts +76 -0
  23. package/core/agentic/ground-truth/types.ts +33 -0
  24. package/core/agentic/ground-truth/utils.ts +48 -0
  25. package/core/agentic/ground-truth/verifiers/analyze.ts +54 -0
  26. package/core/agentic/ground-truth/verifiers/done.ts +75 -0
  27. package/core/agentic/ground-truth/verifiers/feature.ts +70 -0
  28. package/core/agentic/ground-truth/verifiers/index.ts +37 -0
  29. package/core/agentic/ground-truth/verifiers/init.ts +52 -0
  30. package/core/agentic/ground-truth/verifiers/now.ts +57 -0
  31. package/core/agentic/ground-truth/verifiers/ship.ts +85 -0
  32. package/core/agentic/ground-truth/verifiers/spec.ts +45 -0
  33. package/core/agentic/ground-truth/verifiers/sync.ts +47 -0
  34. package/core/agentic/ground-truth/verifiers.ts +6 -0
  35. package/core/agentic/ground-truth.ts +8 -0
  36. package/core/agentic/loop-detector/error-analysis.ts +97 -0
  37. package/core/agentic/loop-detector/hallucination.ts +71 -0
  38. package/core/agentic/loop-detector/index.ts +41 -0
  39. package/core/agentic/loop-detector/loop-detector.ts +222 -0
  40. package/core/agentic/loop-detector/types.ts +66 -0
  41. package/core/agentic/loop-detector.ts +8 -0
  42. package/core/agentic/memory-system/history.ts +53 -0
  43. package/core/agentic/memory-system/index.ts +192 -0
  44. package/core/agentic/memory-system/patterns.ts +156 -0
  45. package/core/agentic/memory-system/semantic-memories.ts +277 -0
  46. package/core/agentic/memory-system/session.ts +21 -0
  47. package/core/agentic/memory-system/types.ts +159 -0
  48. package/core/agentic/memory-system.ts +8 -0
  49. package/core/agentic/parallel-tools.ts +165 -0
  50. package/core/agentic/plan-mode/approval.ts +57 -0
  51. package/core/agentic/plan-mode/constants.ts +44 -0
  52. package/core/agentic/plan-mode/index.ts +28 -0
  53. package/core/agentic/plan-mode/plan-mode.ts +406 -0
  54. package/core/agentic/plan-mode/types.ts +193 -0
  55. package/core/agentic/plan-mode.ts +8 -0
  56. package/core/agentic/prompt-builder.ts +566 -0
  57. package/core/agentic/response-templates.ts +164 -0
  58. package/core/agentic/semantic-compression.ts +273 -0
  59. package/core/agentic/services.ts +206 -0
  60. package/core/agentic/smart-context.ts +476 -0
  61. package/core/agentic/{template-loader.js → template-loader.ts} +27 -16
  62. package/core/agentic/think-blocks.ts +202 -0
  63. package/core/agentic/tool-registry.ts +119 -0
  64. package/core/agentic/validation-rules.ts +313 -0
  65. package/core/agents/index.ts +28 -0
  66. package/core/agents/performance.ts +444 -0
  67. package/core/agents/types.ts +126 -0
  68. package/core/bus/{index.js → index.ts} +57 -61
  69. package/core/command-registry/categories.ts +23 -0
  70. package/core/command-registry/commands.ts +15 -0
  71. package/core/command-registry/core-commands.ts +319 -0
  72. package/core/command-registry/index.ts +158 -0
  73. package/core/command-registry/optional-commands.ts +119 -0
  74. package/core/command-registry/setup-commands.ts +53 -0
  75. package/core/command-registry/types.ts +59 -0
  76. package/core/command-registry.ts +9 -0
  77. package/core/commands/analysis.ts +298 -0
  78. package/core/commands/analytics.ts +288 -0
  79. package/core/commands/base.ts +273 -0
  80. package/core/commands/index.ts +211 -0
  81. package/core/commands/maintenance.ts +226 -0
  82. package/core/commands/planning.ts +311 -0
  83. package/core/commands/setup.ts +309 -0
  84. package/core/commands/shipping.ts +188 -0
  85. package/core/commands/types.ts +183 -0
  86. package/core/commands/workflow.ts +226 -0
  87. package/core/commands.ts +11 -0
  88. package/core/constants/formats.ts +187 -0
  89. package/core/constants/index.ts +7 -0
  90. package/core/{context-sync.js → context-sync.ts} +59 -26
  91. package/core/data/agents-manager.ts +76 -0
  92. package/core/data/analysis-manager.ts +83 -0
  93. package/core/data/base-manager.ts +156 -0
  94. package/core/data/ideas-manager.ts +81 -0
  95. package/core/data/index.ts +32 -0
  96. package/core/data/outcomes-manager.ts +96 -0
  97. package/core/data/project-manager.ts +75 -0
  98. package/core/data/roadmap-manager.ts +118 -0
  99. package/core/data/shipped-manager.ts +65 -0
  100. package/core/data/state-manager.ts +214 -0
  101. package/core/domain/{agent-generator.js → agent-generator.ts} +77 -57
  102. package/core/domain/{agent-loader.js → agent-loader.ts} +65 -56
  103. package/core/domain/{agent-matcher.js → agent-matcher.ts} +51 -24
  104. package/core/domain/{agent-validator.js → agent-validator.ts} +70 -37
  105. package/core/domain/{analyzer.js → analyzer.ts} +91 -85
  106. package/core/domain/{architect-session.js → architect-session.ts} +49 -34
  107. package/core/domain/{architecture-generator.js → architecture-generator.ts} +25 -13
  108. package/core/domain/{context-estimator.js → context-estimator.ts} +57 -36
  109. package/core/domain/{product-standards.js → product-standards.ts} +40 -26
  110. package/core/domain/{smart-cache.js → smart-cache.ts} +39 -30
  111. package/core/domain/{snapshot-manager.js → snapshot-manager.ts} +103 -100
  112. package/core/domain/{task-analyzer.js → task-analyzer.ts} +82 -43
  113. package/core/domain/task-stack/index.ts +19 -0
  114. package/core/domain/task-stack/parser.ts +86 -0
  115. package/core/domain/task-stack/storage.ts +123 -0
  116. package/core/domain/task-stack/task-stack.ts +340 -0
  117. package/core/domain/task-stack/types.ts +51 -0
  118. package/core/domain/task-stack.ts +8 -0
  119. package/core/{index.js → index.ts} +61 -18
  120. package/core/infrastructure/{agent-detector.js → agent-detector.ts} +55 -19
  121. package/core/infrastructure/agents/{claude-agent.js → claude-agent.ts} +61 -21
  122. package/core/infrastructure/{author-detector.js → author-detector.ts} +42 -49
  123. package/core/infrastructure/{capability-installer.js → capability-installer.ts} +51 -27
  124. package/core/infrastructure/{command-installer.js → command-installer/command-installer.ts} +43 -144
  125. package/core/infrastructure/command-installer/global-config.ts +106 -0
  126. package/core/infrastructure/command-installer/index.ts +25 -0
  127. package/core/infrastructure/command-installer/types.ts +41 -0
  128. package/core/infrastructure/command-installer.ts +8 -0
  129. package/core/infrastructure/{config-manager.js → config-manager.ts} +60 -80
  130. package/core/infrastructure/{editors-config.js → editors-config.ts} +33 -31
  131. package/core/infrastructure/legacy-installer-detector/cleanup.ts +216 -0
  132. package/core/infrastructure/legacy-installer-detector/detection.ts +95 -0
  133. package/core/infrastructure/legacy-installer-detector/index.ts +171 -0
  134. package/core/infrastructure/legacy-installer-detector/migration.ts +87 -0
  135. package/core/infrastructure/legacy-installer-detector/types.ts +42 -0
  136. package/core/infrastructure/legacy-installer-detector.ts +7 -0
  137. package/core/infrastructure/migrator/file-operations.ts +125 -0
  138. package/core/infrastructure/migrator/index.ts +288 -0
  139. package/core/infrastructure/migrator/project-scanner.ts +89 -0
  140. package/core/infrastructure/migrator/reports.ts +117 -0
  141. package/core/infrastructure/migrator/types.ts +124 -0
  142. package/core/infrastructure/migrator/validation.ts +94 -0
  143. package/core/infrastructure/migrator/version-migration.ts +117 -0
  144. package/core/infrastructure/migrator.ts +10 -0
  145. package/core/infrastructure/{path-manager.js → path-manager.ts} +51 -91
  146. package/core/infrastructure/session-manager/index.ts +23 -0
  147. package/core/infrastructure/session-manager/migration.ts +88 -0
  148. package/core/infrastructure/session-manager/session-manager.ts +307 -0
  149. package/core/infrastructure/session-manager/types.ts +45 -0
  150. package/core/infrastructure/session-manager.ts +8 -0
  151. package/core/infrastructure/{setup.js → setup.ts} +29 -21
  152. package/core/infrastructure/{update-checker.js → update-checker.ts} +40 -18
  153. package/core/outcomes/analyzer.ts +333 -0
  154. package/core/outcomes/index.ts +34 -0
  155. package/core/outcomes/recorder.ts +194 -0
  156. package/core/outcomes/types.ts +145 -0
  157. package/core/plugin/{hooks.js → hooks.ts} +56 -58
  158. package/core/plugin/{index.js → index.ts} +19 -8
  159. package/core/plugin/{loader.js → loader.ts} +87 -69
  160. package/core/plugin/{registry.js → registry.ts} +49 -45
  161. package/core/plugins/{webhook.js → webhook.ts} +43 -27
  162. package/core/schemas/agents.ts +27 -0
  163. package/core/schemas/analysis.ts +41 -0
  164. package/core/schemas/ideas.ts +83 -0
  165. package/core/schemas/index.ts +73 -0
  166. package/core/schemas/outcomes.ts +22 -0
  167. package/core/schemas/project.ts +26 -0
  168. package/core/schemas/roadmap.ts +90 -0
  169. package/core/schemas/shipped.ts +82 -0
  170. package/core/schemas/state.ts +107 -0
  171. package/core/session/index.ts +17 -0
  172. package/core/session/{metrics.js → metrics.ts} +64 -46
  173. package/core/session/{index.js → session-manager.ts} +51 -117
  174. package/core/session/types.ts +29 -0
  175. package/core/session/utils.ts +57 -0
  176. package/core/state/index.ts +25 -0
  177. package/core/state/manager.ts +376 -0
  178. package/core/state/types.ts +185 -0
  179. package/core/tsconfig.json +22 -0
  180. package/core/types/index.ts +506 -0
  181. package/core/utils/{animations.js → animations.ts} +74 -28
  182. package/core/utils/{branding.js → branding.ts} +29 -4
  183. package/core/utils/{date-helper.js → date-helper.ts} +31 -74
  184. package/core/utils/file-helper.ts +262 -0
  185. package/core/utils/{jsonl-helper.js → jsonl-helper.ts} +71 -107
  186. package/core/utils/{logger.js → logger.ts} +24 -12
  187. package/core/utils/{output.js → output.ts} +25 -13
  188. package/core/utils/{project-capabilities.js → project-capabilities.ts} +31 -18
  189. package/core/utils/{session-helper.js → session-helper.ts} +79 -66
  190. package/core/utils/{version.js → version.ts} +23 -31
  191. package/core/view-generator.ts +536 -0
  192. package/package.json +23 -17
  193. package/packages/shared/.turbo/turbo-build.log +14 -0
  194. package/packages/shared/dist/index.d.ts +8 -613
  195. package/packages/shared/dist/index.d.ts.map +1 -0
  196. package/packages/shared/dist/index.js +4110 -118
  197. package/packages/shared/dist/schemas.d.ts +408 -0
  198. package/packages/shared/dist/schemas.d.ts.map +1 -0
  199. package/packages/shared/dist/types.d.ts +144 -0
  200. package/packages/shared/dist/types.d.ts.map +1 -0
  201. package/packages/shared/dist/unified.d.ts +139 -0
  202. package/packages/shared/dist/unified.d.ts.map +1 -0
  203. package/packages/shared/dist/utils.d.ts +60 -0
  204. package/packages/shared/dist/utils.d.ts.map +1 -0
  205. package/packages/shared/package.json +4 -4
  206. package/packages/shared/src/index.ts +1 -0
  207. package/packages/shared/src/unified.ts +174 -0
  208. package/packages/web/app/api/claude/sessions/route.ts +1 -1
  209. package/packages/web/app/api/claude/status/route.ts +1 -1
  210. package/packages/web/app/api/migrate/route.ts +46 -0
  211. package/packages/web/app/api/projects/[id]/route.ts +1 -1
  212. package/packages/web/app/api/projects/[id]/stats/route.ts +30 -2
  213. package/packages/web/app/api/projects/[id]/status/route.ts +1 -1
  214. package/packages/web/app/api/projects/route.ts +1 -1
  215. package/packages/web/app/api/settings/route.ts +97 -0
  216. package/packages/web/app/api/v2/projects/[id]/unified/route.ts +57 -0
  217. package/packages/web/app/globals.css +38 -0
  218. package/packages/web/app/layout.tsx +10 -2
  219. package/packages/web/app/page.tsx +9 -224
  220. package/packages/web/app/project/[id]/page.tsx +191 -63
  221. package/packages/web/app/project/[id]/stats/loading.tsx +43 -0
  222. package/packages/web/app/project/[id]/stats/page.tsx +204 -163
  223. package/packages/web/app/settings/page.tsx +222 -2
  224. package/packages/web/components/ActivityTimeline/ActivityTimeline.constants.ts +2 -0
  225. package/packages/web/components/ActivityTimeline/ActivityTimeline.tsx +50 -0
  226. package/packages/web/components/ActivityTimeline/ActivityTimeline.types.ts +8 -0
  227. package/packages/web/components/ActivityTimeline/hooks/index.ts +2 -0
  228. package/packages/web/components/ActivityTimeline/hooks/useExpandable.ts +9 -0
  229. package/packages/web/components/ActivityTimeline/hooks/useGroupedEvents.ts +23 -0
  230. package/packages/web/components/ActivityTimeline/index.ts +2 -0
  231. package/packages/web/components/AgentsCard/AgentsCard.tsx +63 -0
  232. package/packages/web/components/AgentsCard/AgentsCard.types.ts +13 -0
  233. package/packages/web/components/AgentsCard/index.ts +2 -0
  234. package/packages/web/components/AppSidebar/AppSidebar.tsx +190 -0
  235. package/packages/web/components/AppSidebar/index.ts +1 -0
  236. package/packages/web/components/BackLink/BackLink.tsx +18 -0
  237. package/packages/web/components/BackLink/BackLink.types.ts +5 -0
  238. package/packages/web/components/BackLink/index.ts +2 -0
  239. package/packages/web/components/BentoCard/BentoCard.constants.ts +16 -0
  240. package/packages/web/components/BentoCard/BentoCard.tsx +47 -0
  241. package/packages/web/components/BentoCard/BentoCard.types.ts +15 -0
  242. package/packages/web/components/BentoCard/index.ts +2 -0
  243. package/packages/web/components/BentoCardSkeleton/BentoCardSkeleton.constants.ts +9 -0
  244. package/packages/web/components/BentoCardSkeleton/BentoCardSkeleton.tsx +18 -0
  245. package/packages/web/components/BentoCardSkeleton/BentoCardSkeleton.types.ts +5 -0
  246. package/packages/web/components/BentoCardSkeleton/index.ts +2 -0
  247. package/packages/web/components/{stats → BentoGrid}/BentoGrid.tsx +4 -8
  248. package/packages/web/components/BentoGrid/BentoGrid.types.ts +4 -0
  249. package/packages/web/components/BentoGrid/index.ts +2 -0
  250. package/packages/web/components/CommandButton/index.ts +1 -0
  251. package/packages/web/components/ConnectionStatus/index.ts +1 -0
  252. package/packages/web/components/DashboardContent/DashboardContent.tsx +254 -0
  253. package/packages/web/components/DashboardContent/index.ts +1 -0
  254. package/packages/web/components/DateGroup/DateGroup.tsx +18 -0
  255. package/packages/web/components/DateGroup/DateGroup.types.ts +6 -0
  256. package/packages/web/components/DateGroup/DateGroup.utils.ts +11 -0
  257. package/packages/web/components/DateGroup/index.ts +2 -0
  258. package/packages/web/components/{stats → EmptyState}/EmptyState.tsx +1 -10
  259. package/packages/web/components/EmptyState/EmptyState.types.ts +10 -0
  260. package/packages/web/components/EmptyState/index.ts +2 -0
  261. package/packages/web/components/EventRow/EventRow.constants.ts +10 -0
  262. package/packages/web/components/EventRow/EventRow.tsx +49 -0
  263. package/packages/web/components/EventRow/EventRow.types.ts +7 -0
  264. package/packages/web/components/EventRow/EventRow.utils.ts +49 -0
  265. package/packages/web/components/EventRow/index.ts +2 -0
  266. package/packages/web/components/ExpandButton/ExpandButton.tsx +18 -0
  267. package/packages/web/components/ExpandButton/ExpandButton.types.ts +6 -0
  268. package/packages/web/components/ExpandButton/index.ts +2 -0
  269. package/packages/web/components/HealthGradientBackground/HealthGradientBackground.tsx +14 -0
  270. package/packages/web/components/HealthGradientBackground/HealthGradientBackground.types.ts +5 -0
  271. package/packages/web/components/HealthGradientBackground/HealthGradientBackground.utils.ts +13 -0
  272. package/packages/web/components/HealthGradientBackground/index.ts +2 -0
  273. package/packages/web/components/HeroSection/HeroSection.tsx +55 -0
  274. package/packages/web/components/HeroSection/HeroSection.types.ts +14 -0
  275. package/packages/web/components/HeroSection/HeroSection.utils.ts +7 -0
  276. package/packages/web/components/HeroSection/hooks/index.ts +2 -0
  277. package/packages/web/components/HeroSection/hooks/useCountUp.ts +45 -0
  278. package/packages/web/components/HeroSection/hooks/useWeeklyActivity.ts +18 -0
  279. package/packages/web/components/HeroSection/index.ts +2 -0
  280. package/packages/web/components/{stats → IdeasCard}/IdeasCard.tsx +3 -14
  281. package/packages/web/components/IdeasCard/IdeasCard.types.ts +9 -0
  282. package/packages/web/components/IdeasCard/index.ts +2 -0
  283. package/packages/web/components/InsightMessage/InsightMessage.tsx +9 -0
  284. package/packages/web/components/InsightMessage/InsightMessage.types.ts +3 -0
  285. package/packages/web/components/InsightMessage/index.ts +2 -0
  286. package/packages/web/components/Logo/index.ts +1 -0
  287. package/packages/web/components/MarkdownContent/index.ts +1 -0
  288. package/packages/web/components/NowCard/NowCard.tsx +93 -0
  289. package/packages/web/components/NowCard/NowCard.types.ts +15 -0
  290. package/packages/web/components/NowCard/index.ts +2 -0
  291. package/packages/web/components/ProgressRing/ProgressRing.constants.ts +20 -0
  292. package/packages/web/components/{stats → ProgressRing}/ProgressRing.tsx +4 -27
  293. package/packages/web/components/ProgressRing/ProgressRing.types.ts +11 -0
  294. package/packages/web/components/ProgressRing/index.ts +2 -0
  295. package/packages/web/components/ProjectAvatar/index.ts +1 -0
  296. package/packages/web/components/Providers/index.ts +1 -0
  297. package/packages/web/components/QueueCard/QueueCard.tsx +72 -0
  298. package/packages/web/components/QueueCard/QueueCard.types.ts +11 -0
  299. package/packages/web/components/QueueCard/QueueCard.utils.ts +12 -0
  300. package/packages/web/components/QueueCard/index.ts +2 -0
  301. package/packages/web/components/{stats → RoadmapCard}/RoadmapCard.tsx +3 -23
  302. package/packages/web/components/RoadmapCard/RoadmapCard.types.ts +15 -0
  303. package/packages/web/components/RoadmapCard/index.ts +2 -0
  304. package/packages/web/components/{stats → ShipsCard}/ShipsCard.tsx +4 -22
  305. package/packages/web/components/ShipsCard/ShipsCard.types.ts +12 -0
  306. package/packages/web/components/ShipsCard/ShipsCard.utils.ts +4 -0
  307. package/packages/web/components/ShipsCard/index.ts +2 -0
  308. package/packages/web/components/{stats → SparklineChart}/SparklineChart.tsx +1 -7
  309. package/packages/web/components/SparklineChart/SparklineChart.types.ts +6 -0
  310. package/packages/web/components/SparklineChart/index.ts +2 -0
  311. package/packages/web/components/StreakCard/StreakCard.constants.ts +2 -0
  312. package/packages/web/components/{stats → StreakCard}/StreakCard.tsx +5 -11
  313. package/packages/web/components/StreakCard/StreakCard.types.ts +4 -0
  314. package/packages/web/components/StreakCard/index.ts +2 -0
  315. package/packages/web/components/TasksCounter/TasksCounter.tsx +14 -0
  316. package/packages/web/components/TasksCounter/TasksCounter.types.ts +3 -0
  317. package/packages/web/components/TasksCounter/index.ts +2 -0
  318. package/packages/web/components/TechStackBadges/index.ts +1 -0
  319. package/packages/web/components/{TerminalTab.tsx → TerminalTabs/TerminalTab.tsx} +11 -0
  320. package/packages/web/components/{TerminalTabs.tsx → TerminalTabs/TerminalTabs.tsx} +29 -28
  321. package/packages/web/components/TerminalTabs/index.ts +1 -0
  322. package/packages/web/components/VelocityBadge/VelocityBadge.tsx +27 -0
  323. package/packages/web/components/VelocityBadge/VelocityBadge.types.ts +3 -0
  324. package/packages/web/components/VelocityBadge/index.ts +2 -0
  325. package/packages/web/components/VelocityCard/VelocityCard.tsx +71 -0
  326. package/packages/web/components/VelocityCard/VelocityCard.types.ts +7 -0
  327. package/packages/web/components/VelocityCard/index.ts +2 -0
  328. package/packages/web/components/WeeklySparkline/WeeklySparkline.tsx +13 -0
  329. package/packages/web/components/WeeklySparkline/WeeklySparkline.types.ts +3 -0
  330. package/packages/web/components/WeeklySparkline/index.ts +2 -0
  331. package/packages/web/components/ui/input.tsx +21 -0
  332. package/packages/web/context/TerminalTabsContext.tsx +46 -1
  333. package/packages/web/hooks/useClaudeTerminal.ts +71 -21
  334. package/packages/web/hooks/useProjectStats.ts +55 -0
  335. package/packages/web/hooks/useProjects.ts +6 -6
  336. package/packages/web/lib/actions/projects.ts +15 -0
  337. package/packages/web/lib/json-loader.ts +630 -0
  338. package/packages/web/lib/services/index.ts +9 -0
  339. package/packages/web/lib/services/migration.server.ts +600 -0
  340. package/packages/web/lib/services/projects.server.ts +52 -0
  341. package/packages/web/lib/services/stats.server.ts +264 -0
  342. package/packages/web/lib/unified-loader.ts +396 -0
  343. package/packages/web/package.json +10 -7
  344. package/packages/web/server.ts +58 -8
  345. package/templates/commands/done.md +76 -32
  346. package/templates/commands/feature.md +121 -47
  347. package/templates/commands/idea.md +81 -8
  348. package/templates/commands/now.md +41 -17
  349. package/templates/commands/ship.md +64 -25
  350. package/templates/commands/sync.md +28 -3
  351. package/core/agentic/agent-router.js +0 -140
  352. package/core/agentic/chain-of-thought.js +0 -578
  353. package/core/agentic/command-executor.js +0 -417
  354. package/core/agentic/context-filter.js +0 -354
  355. package/core/agentic/ground-truth.js +0 -591
  356. package/core/agentic/loop-detector.js +0 -406
  357. package/core/agentic/memory-system.js +0 -845
  358. package/core/agentic/parallel-tools.js +0 -366
  359. package/core/agentic/plan-mode.js +0 -572
  360. package/core/agentic/prompt-builder.js +0 -352
  361. package/core/agentic/response-templates.js +0 -290
  362. package/core/agentic/semantic-compression.js +0 -517
  363. package/core/agentic/think-blocks.js +0 -657
  364. package/core/agentic/tool-registry.js +0 -184
  365. package/core/agentic/validation-rules.js +0 -380
  366. package/core/command-registry.js +0 -698
  367. package/core/commands.js +0 -2237
  368. package/core/domain/task-stack.js +0 -497
  369. package/core/infrastructure/legacy-installer-detector.js +0 -546
  370. package/core/infrastructure/migrator.js +0 -796
  371. package/core/infrastructure/session-manager.js +0 -390
  372. package/core/utils/file-helper.js +0 -329
  373. package/packages/web/app/api/projects/[id]/delete/route.ts +0 -21
  374. package/packages/web/app/api/stats/route.ts +0 -38
  375. package/packages/web/components/AppSidebar.tsx +0 -113
  376. package/packages/web/components/stats/ActivityTimeline.tsx +0 -201
  377. package/packages/web/components/stats/AgentsCard.tsx +0 -56
  378. package/packages/web/components/stats/BentoCard.tsx +0 -88
  379. package/packages/web/components/stats/HeroSection.tsx +0 -172
  380. package/packages/web/components/stats/NowCard.tsx +0 -71
  381. package/packages/web/components/stats/QueueCard.tsx +0 -58
  382. package/packages/web/components/stats/VelocityCard.tsx +0 -60
  383. package/packages/web/components/stats/index.ts +0 -17
  384. package/packages/web/hooks/useStats.ts +0 -28
  385. /package/packages/web/components/{CommandButton.tsx → CommandButton/CommandButton.tsx} +0 -0
  386. /package/packages/web/components/{ConnectionStatus.tsx → ConnectionStatus/ConnectionStatus.tsx} +0 -0
  387. /package/packages/web/components/{Logo.tsx → Logo/Logo.tsx} +0 -0
  388. /package/packages/web/components/{MarkdownContent.tsx → MarkdownContent/MarkdownContent.tsx} +0 -0
  389. /package/packages/web/components/{ProjectAvatar.tsx → ProjectAvatar/ProjectAvatar.tsx} +0 -0
  390. /package/packages/web/components/{providers.tsx → Providers/Providers.tsx} +0 -0
  391. /package/packages/web/components/{TechStackBadges.tsx → TechStackBadges/TechStackBadges.tsx} +0 -0
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Zod Schemas for validation
3
+ */
4
+ import { z } from 'zod';
5
+ export declare const SessionMetricsSchema: z.ZodObject<{
6
+ filesChanged: z.ZodDefault<z.ZodNumber>;
7
+ linesAdded: z.ZodDefault<z.ZodNumber>;
8
+ linesRemoved: z.ZodDefault<z.ZodNumber>;
9
+ commits: z.ZodDefault<z.ZodNumber>;
10
+ snapshots: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ filesChanged: number;
13
+ linesAdded: number;
14
+ linesRemoved: number;
15
+ commits: number;
16
+ snapshots: string[];
17
+ }, {
18
+ filesChanged?: number | undefined;
19
+ linesAdded?: number | undefined;
20
+ linesRemoved?: number | undefined;
21
+ commits?: number | undefined;
22
+ snapshots?: string[] | undefined;
23
+ }>;
24
+ export declare const TimelineEventSchema: z.ZodObject<{
25
+ type: z.ZodEnum<["start", "pause", "resume", "complete", "snapshot"]>;
26
+ at: z.ZodString;
27
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ at: string;
30
+ type: "start" | "pause" | "resume" | "complete" | "snapshot";
31
+ data?: Record<string, unknown> | undefined;
32
+ }, {
33
+ at: string;
34
+ type: "start" | "pause" | "resume" | "complete" | "snapshot";
35
+ data?: Record<string, unknown> | undefined;
36
+ }>;
37
+ export declare const SessionSchema: z.ZodObject<{
38
+ id: z.ZodString;
39
+ projectId: z.ZodString;
40
+ task: z.ZodString;
41
+ status: z.ZodEnum<["active", "paused", "completed"]>;
42
+ startedAt: z.ZodString;
43
+ pausedAt: z.ZodNullable<z.ZodString>;
44
+ completedAt: z.ZodNullable<z.ZodString>;
45
+ duration: z.ZodNumber;
46
+ metrics: z.ZodObject<{
47
+ filesChanged: z.ZodDefault<z.ZodNumber>;
48
+ linesAdded: z.ZodDefault<z.ZodNumber>;
49
+ linesRemoved: z.ZodDefault<z.ZodNumber>;
50
+ commits: z.ZodDefault<z.ZodNumber>;
51
+ snapshots: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ filesChanged: number;
54
+ linesAdded: number;
55
+ linesRemoved: number;
56
+ commits: number;
57
+ snapshots: string[];
58
+ }, {
59
+ filesChanged?: number | undefined;
60
+ linesAdded?: number | undefined;
61
+ linesRemoved?: number | undefined;
62
+ commits?: number | undefined;
63
+ snapshots?: string[] | undefined;
64
+ }>;
65
+ timeline: z.ZodArray<z.ZodObject<{
66
+ type: z.ZodEnum<["start", "pause", "resume", "complete", "snapshot"]>;
67
+ at: z.ZodString;
68
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ at: string;
71
+ type: "start" | "pause" | "resume" | "complete" | "snapshot";
72
+ data?: Record<string, unknown> | undefined;
73
+ }, {
74
+ at: string;
75
+ type: "start" | "pause" | "resume" | "complete" | "snapshot";
76
+ data?: Record<string, unknown> | undefined;
77
+ }>, "many">;
78
+ }, "strip", z.ZodTypeAny, {
79
+ projectId: string;
80
+ status: "active" | "paused" | "completed";
81
+ id: string;
82
+ task: string;
83
+ startedAt: string;
84
+ pausedAt: string | null;
85
+ completedAt: string | null;
86
+ duration: number;
87
+ metrics: {
88
+ filesChanged: number;
89
+ linesAdded: number;
90
+ linesRemoved: number;
91
+ commits: number;
92
+ snapshots: string[];
93
+ };
94
+ timeline: {
95
+ at: string;
96
+ type: "start" | "pause" | "resume" | "complete" | "snapshot";
97
+ data?: Record<string, unknown> | undefined;
98
+ }[];
99
+ }, {
100
+ projectId: string;
101
+ status: "active" | "paused" | "completed";
102
+ id: string;
103
+ task: string;
104
+ startedAt: string;
105
+ pausedAt: string | null;
106
+ completedAt: string | null;
107
+ duration: number;
108
+ metrics: {
109
+ filesChanged?: number | undefined;
110
+ linesAdded?: number | undefined;
111
+ linesRemoved?: number | undefined;
112
+ commits?: number | undefined;
113
+ snapshots?: string[] | undefined;
114
+ };
115
+ timeline: {
116
+ at: string;
117
+ type: "start" | "pause" | "resume" | "complete" | "snapshot";
118
+ data?: Record<string, unknown> | undefined;
119
+ }[];
120
+ }>;
121
+ export declare const TaskSchema: z.ZodObject<{
122
+ id: z.ZodString;
123
+ title: z.ZodString;
124
+ description: z.ZodOptional<z.ZodString>;
125
+ status: z.ZodEnum<["pending", "in_progress", "completed", "blocked"]>;
126
+ priority: z.ZodEnum<["low", "medium", "high", "critical"]>;
127
+ createdAt: z.ZodString;
128
+ completedAt: z.ZodOptional<z.ZodString>;
129
+ duration: z.ZodOptional<z.ZodNumber>;
130
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ status: "completed" | "pending" | "in_progress" | "blocked";
133
+ id: string;
134
+ title: string;
135
+ priority: "low" | "medium" | "high" | "critical";
136
+ createdAt: string;
137
+ completedAt?: string | undefined;
138
+ duration?: number | undefined;
139
+ description?: string | undefined;
140
+ tags?: string[] | undefined;
141
+ }, {
142
+ status: "completed" | "pending" | "in_progress" | "blocked";
143
+ id: string;
144
+ title: string;
145
+ priority: "low" | "medium" | "high" | "critical";
146
+ createdAt: string;
147
+ completedAt?: string | undefined;
148
+ duration?: number | undefined;
149
+ description?: string | undefined;
150
+ tags?: string[] | undefined;
151
+ }>;
152
+ export declare const IdeaSchema: z.ZodObject<{
153
+ id: z.ZodString;
154
+ content: z.ZodString;
155
+ capturedAt: z.ZodString;
156
+ source: z.ZodOptional<z.ZodString>;
157
+ promoted: z.ZodOptional<z.ZodBoolean>;
158
+ promotedTo: z.ZodOptional<z.ZodString>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ id: string;
161
+ content: string;
162
+ capturedAt: string;
163
+ source?: string | undefined;
164
+ promoted?: boolean | undefined;
165
+ promotedTo?: string | undefined;
166
+ }, {
167
+ id: string;
168
+ content: string;
169
+ capturedAt: string;
170
+ source?: string | undefined;
171
+ promoted?: boolean | undefined;
172
+ promotedTo?: string | undefined;
173
+ }>;
174
+ export declare const FeatureSchema: z.ZodObject<{
175
+ id: z.ZodString;
176
+ title: z.ZodString;
177
+ description: z.ZodOptional<z.ZodString>;
178
+ status: z.ZodEnum<["planned", "in_progress", "shipped", "cancelled"]>;
179
+ priority: z.ZodNumber;
180
+ createdAt: z.ZodString;
181
+ shippedAt: z.ZodOptional<z.ZodString>;
182
+ tasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
183
+ id: z.ZodString;
184
+ title: z.ZodString;
185
+ description: z.ZodOptional<z.ZodString>;
186
+ status: z.ZodEnum<["pending", "in_progress", "completed", "blocked"]>;
187
+ priority: z.ZodEnum<["low", "medium", "high", "critical"]>;
188
+ createdAt: z.ZodString;
189
+ completedAt: z.ZodOptional<z.ZodString>;
190
+ duration: z.ZodOptional<z.ZodNumber>;
191
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
192
+ }, "strip", z.ZodTypeAny, {
193
+ status: "completed" | "pending" | "in_progress" | "blocked";
194
+ id: string;
195
+ title: string;
196
+ priority: "low" | "medium" | "high" | "critical";
197
+ createdAt: string;
198
+ completedAt?: string | undefined;
199
+ duration?: number | undefined;
200
+ description?: string | undefined;
201
+ tags?: string[] | undefined;
202
+ }, {
203
+ status: "completed" | "pending" | "in_progress" | "blocked";
204
+ id: string;
205
+ title: string;
206
+ priority: "low" | "medium" | "high" | "critical";
207
+ createdAt: string;
208
+ completedAt?: string | undefined;
209
+ duration?: number | undefined;
210
+ description?: string | undefined;
211
+ tags?: string[] | undefined;
212
+ }>, "many">>;
213
+ version: z.ZodOptional<z.ZodString>;
214
+ }, "strip", z.ZodTypeAny, {
215
+ status: "in_progress" | "planned" | "shipped" | "cancelled";
216
+ id: string;
217
+ title: string;
218
+ priority: number;
219
+ createdAt: string;
220
+ description?: string | undefined;
221
+ shippedAt?: string | undefined;
222
+ tasks?: {
223
+ status: "completed" | "pending" | "in_progress" | "blocked";
224
+ id: string;
225
+ title: string;
226
+ priority: "low" | "medium" | "high" | "critical";
227
+ createdAt: string;
228
+ completedAt?: string | undefined;
229
+ duration?: number | undefined;
230
+ description?: string | undefined;
231
+ tags?: string[] | undefined;
232
+ }[] | undefined;
233
+ version?: string | undefined;
234
+ }, {
235
+ status: "in_progress" | "planned" | "shipped" | "cancelled";
236
+ id: string;
237
+ title: string;
238
+ priority: number;
239
+ createdAt: string;
240
+ description?: string | undefined;
241
+ shippedAt?: string | undefined;
242
+ tasks?: {
243
+ status: "completed" | "pending" | "in_progress" | "blocked";
244
+ id: string;
245
+ title: string;
246
+ priority: "low" | "medium" | "high" | "critical";
247
+ createdAt: string;
248
+ completedAt?: string | undefined;
249
+ duration?: number | undefined;
250
+ description?: string | undefined;
251
+ tags?: string[] | undefined;
252
+ }[] | undefined;
253
+ version?: string | undefined;
254
+ }>;
255
+ export declare const ProjectConfigSchema: z.ZodObject<{
256
+ projectId: z.ZodString;
257
+ name: z.ZodOptional<z.ZodString>;
258
+ plugins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
259
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
260
+ projectId: z.ZodString;
261
+ name: z.ZodOptional<z.ZodString>;
262
+ plugins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
263
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
264
+ projectId: z.ZodString;
265
+ name: z.ZodOptional<z.ZodString>;
266
+ plugins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
267
+ }, z.ZodTypeAny, "passthrough">>;
268
+ export declare const WSInputMessageSchema: z.ZodObject<{
269
+ type: z.ZodLiteral<"input">;
270
+ payload: z.ZodObject<{
271
+ data: z.ZodString;
272
+ }, "strip", z.ZodTypeAny, {
273
+ data: string;
274
+ }, {
275
+ data: string;
276
+ }>;
277
+ timestamp: z.ZodString;
278
+ }, "strip", z.ZodTypeAny, {
279
+ type: "input";
280
+ payload: {
281
+ data: string;
282
+ };
283
+ timestamp: string;
284
+ }, {
285
+ type: "input";
286
+ payload: {
287
+ data: string;
288
+ };
289
+ timestamp: string;
290
+ }>;
291
+ export declare const WSResizeMessageSchema: z.ZodObject<{
292
+ type: z.ZodLiteral<"resize">;
293
+ payload: z.ZodObject<{
294
+ cols: z.ZodNumber;
295
+ rows: z.ZodNumber;
296
+ }, "strip", z.ZodTypeAny, {
297
+ cols: number;
298
+ rows: number;
299
+ }, {
300
+ cols: number;
301
+ rows: number;
302
+ }>;
303
+ timestamp: z.ZodString;
304
+ }, "strip", z.ZodTypeAny, {
305
+ type: "resize";
306
+ payload: {
307
+ cols: number;
308
+ rows: number;
309
+ };
310
+ timestamp: string;
311
+ }, {
312
+ type: "resize";
313
+ payload: {
314
+ cols: number;
315
+ rows: number;
316
+ };
317
+ timestamp: string;
318
+ }>;
319
+ export declare const WSMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
320
+ type: z.ZodLiteral<"input">;
321
+ payload: z.ZodObject<{
322
+ data: z.ZodString;
323
+ }, "strip", z.ZodTypeAny, {
324
+ data: string;
325
+ }, {
326
+ data: string;
327
+ }>;
328
+ timestamp: z.ZodString;
329
+ }, "strip", z.ZodTypeAny, {
330
+ type: "input";
331
+ payload: {
332
+ data: string;
333
+ };
334
+ timestamp: string;
335
+ }, {
336
+ type: "input";
337
+ payload: {
338
+ data: string;
339
+ };
340
+ timestamp: string;
341
+ }>, z.ZodObject<{
342
+ type: z.ZodLiteral<"resize">;
343
+ payload: z.ZodObject<{
344
+ cols: z.ZodNumber;
345
+ rows: z.ZodNumber;
346
+ }, "strip", z.ZodTypeAny, {
347
+ cols: number;
348
+ rows: number;
349
+ }, {
350
+ cols: number;
351
+ rows: number;
352
+ }>;
353
+ timestamp: z.ZodString;
354
+ }, "strip", z.ZodTypeAny, {
355
+ type: "resize";
356
+ payload: {
357
+ cols: number;
358
+ rows: number;
359
+ };
360
+ timestamp: string;
361
+ }, {
362
+ type: "resize";
363
+ payload: {
364
+ cols: number;
365
+ rows: number;
366
+ };
367
+ timestamp: string;
368
+ }>]>;
369
+ export declare const CreateSessionRequestSchema: z.ZodObject<{
370
+ task: z.ZodString;
371
+ projectId: z.ZodString;
372
+ }, "strip", z.ZodTypeAny, {
373
+ projectId: string;
374
+ task: string;
375
+ }, {
376
+ projectId: string;
377
+ task: string;
378
+ }>;
379
+ export declare const CreateTaskRequestSchema: z.ZodObject<{
380
+ title: z.ZodString;
381
+ description: z.ZodOptional<z.ZodString>;
382
+ priority: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "critical"]>>;
383
+ }, "strip", z.ZodTypeAny, {
384
+ title: string;
385
+ priority: "low" | "medium" | "high" | "critical";
386
+ description?: string | undefined;
387
+ }, {
388
+ title: string;
389
+ description?: string | undefined;
390
+ priority?: "low" | "medium" | "high" | "critical" | undefined;
391
+ }>;
392
+ export declare const CaptureIdeaRequestSchema: z.ZodObject<{
393
+ content: z.ZodString;
394
+ source: z.ZodOptional<z.ZodString>;
395
+ }, "strip", z.ZodTypeAny, {
396
+ content: string;
397
+ source?: string | undefined;
398
+ }, {
399
+ content: string;
400
+ source?: string | undefined;
401
+ }>;
402
+ export type SessionInput = z.infer<typeof SessionSchema>;
403
+ export type TaskInput = z.infer<typeof TaskSchema>;
404
+ export type IdeaInput = z.infer<typeof IdeaSchema>;
405
+ export type FeatureInput = z.infer<typeof FeatureSchema>;
406
+ export type ProjectConfigInput = z.infer<typeof ProjectConfigSchema>;
407
+ export type WSMessageInput = z.infer<typeof WSMessageSchema>;
408
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;EAM/B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAA;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAA;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;EAOrB,CAAA;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUxB,CAAA;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;gCAIhB,CAAA;AAGhB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;EAM/B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG1B,CAAA;AAGF,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAA;AAGF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAClD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Core Types for prjct
3
+ */
4
+ export interface Session {
5
+ id: string;
6
+ projectId: string;
7
+ task: string;
8
+ status: 'active' | 'paused' | 'completed';
9
+ startedAt: string;
10
+ pausedAt: string | null;
11
+ completedAt: string | null;
12
+ duration: number;
13
+ metrics: SessionMetrics;
14
+ timeline: TimelineEvent[];
15
+ }
16
+ export interface SessionMetrics {
17
+ filesChanged: number;
18
+ linesAdded: number;
19
+ linesRemoved: number;
20
+ commits: number;
21
+ snapshots: string[];
22
+ }
23
+ export interface TimelineEvent {
24
+ type: 'start' | 'pause' | 'resume' | 'complete' | 'snapshot';
25
+ at: string;
26
+ data?: Record<string, unknown>;
27
+ }
28
+ export interface Snapshot {
29
+ hash: string;
30
+ shortHash: string;
31
+ message: string;
32
+ timestamp: string;
33
+ files: string[];
34
+ }
35
+ export interface Task {
36
+ id: string;
37
+ title: string;
38
+ description?: string;
39
+ status: 'pending' | 'in_progress' | 'completed' | 'blocked';
40
+ priority: 'low' | 'medium' | 'high' | 'critical';
41
+ createdAt: string;
42
+ completedAt?: string;
43
+ duration?: number;
44
+ tags?: string[];
45
+ }
46
+ export interface Idea {
47
+ id: string;
48
+ content: string;
49
+ capturedAt: string;
50
+ source?: string;
51
+ promoted?: boolean;
52
+ promotedTo?: string;
53
+ }
54
+ export interface Feature {
55
+ id: string;
56
+ title: string;
57
+ description?: string;
58
+ status: 'planned' | 'in_progress' | 'shipped' | 'cancelled';
59
+ priority: number;
60
+ createdAt: string;
61
+ shippedAt?: string;
62
+ tasks?: Task[];
63
+ version?: string;
64
+ }
65
+ export interface Project {
66
+ id: string;
67
+ name: string;
68
+ path: string;
69
+ createdAt: string;
70
+ lastActiveAt: string;
71
+ config: ProjectConfig;
72
+ }
73
+ export interface ProjectConfig {
74
+ projectId: string;
75
+ name?: string;
76
+ plugins?: string[];
77
+ [key: string]: unknown;
78
+ }
79
+ export interface DailyMetrics {
80
+ date: string;
81
+ sessions: number;
82
+ duration: number;
83
+ commits: number;
84
+ filesChanged: number;
85
+ linesAdded: number;
86
+ linesRemoved: number;
87
+ }
88
+ export interface WeeklyMetrics {
89
+ weekStart: string;
90
+ weekEnd: string;
91
+ totalSessions: number;
92
+ totalDuration: number;
93
+ averageDuration: number;
94
+ tasksCompleted: number;
95
+ featuresShipped: number;
96
+ productivityScore: number;
97
+ streak: number;
98
+ byDay: Record<string, DailyMetrics>;
99
+ }
100
+ export interface WSMessage {
101
+ type: string;
102
+ payload?: unknown;
103
+ timestamp: string;
104
+ }
105
+ export interface WSInputMessage extends WSMessage {
106
+ type: 'input';
107
+ payload: {
108
+ data: string;
109
+ };
110
+ }
111
+ export interface WSOutputMessage extends WSMessage {
112
+ type: 'output';
113
+ payload: {
114
+ data: string;
115
+ };
116
+ }
117
+ export interface WSResizeMessage extends WSMessage {
118
+ type: 'resize';
119
+ payload: {
120
+ cols: number;
121
+ rows: number;
122
+ };
123
+ }
124
+ export interface WSStatusMessage extends WSMessage {
125
+ type: 'status';
126
+ payload: {
127
+ status: 'connected' | 'disconnected' | 'error';
128
+ message?: string;
129
+ };
130
+ }
131
+ export interface ApiResponse<T = unknown> {
132
+ success: boolean;
133
+ data?: T;
134
+ error?: string;
135
+ timestamp: string;
136
+ }
137
+ export type EventType = 'session.started' | 'session.paused' | 'session.resumed' | 'session.completed' | 'task.created' | 'task.completed' | 'feature.added' | 'feature.shipped' | 'idea.captured' | 'snapshot.created' | 'snapshot.restored' | 'git.commit' | 'git.push' | 'project.init' | 'project.sync';
138
+ export interface EventPayload {
139
+ type: EventType;
140
+ timestamp: string;
141
+ projectId: string;
142
+ data: Record<string, unknown>;
143
+ }
144
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Unified State Types
3
+ *
4
+ * Types shared between CLI core modules and web UI.
5
+ * These mirror the types in core/state/, core/outcomes/, and core/agents/
6
+ */
7
+ export type Priority = 'low' | 'medium' | 'high' | 'critical';
8
+ export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'blocked' | 'paused';
9
+ export type FeatureStatus = 'planned' | 'in_progress' | 'completed' | 'shipped';
10
+ export interface CurrentTask {
11
+ id: string;
12
+ description: string;
13
+ startedAt: string;
14
+ agent?: string;
15
+ agentConfidence?: number;
16
+ estimatedDuration?: string;
17
+ featureId?: string;
18
+ pausedAt?: string;
19
+ pauseReason?: string;
20
+ }
21
+ export interface QueuedTask {
22
+ id: string;
23
+ description: string;
24
+ priority: Priority;
25
+ featureId?: string;
26
+ estimatedDuration?: string;
27
+ tags?: string[];
28
+ createdAt: string;
29
+ blockedReason?: string;
30
+ }
31
+ export interface ActiveFeature {
32
+ id: string;
33
+ name: string;
34
+ status: FeatureStatus;
35
+ tasksCompleted: number;
36
+ tasksRemaining: number;
37
+ estimatedEffort?: string;
38
+ actualEffort?: string;
39
+ startedAt: string;
40
+ }
41
+ export interface PerformanceStats {
42
+ tasksToday: number;
43
+ tasksThisWeek: number;
44
+ avgDuration: string;
45
+ velocity: string;
46
+ estimateAccuracy: number;
47
+ streak: number;
48
+ }
49
+ export interface RecentActivity {
50
+ type: 'task_completed' | 'feature_shipped' | 'idea_captured' | 'session_started';
51
+ description: string;
52
+ timestamp: string;
53
+ duration?: string;
54
+ }
55
+ export interface ProjectState {
56
+ projectId: string;
57
+ currentTask: CurrentTask | null;
58
+ queue: QueuedTask[];
59
+ activeFeature: ActiveFeature | null;
60
+ stats: PerformanceStats;
61
+ recentActivity: RecentActivity[];
62
+ lastSync: string;
63
+ version: number;
64
+ }
65
+ export type QualityScore = 1 | 2 | 3 | 4 | 5;
66
+ export interface Outcome {
67
+ id: string;
68
+ sessionId: string;
69
+ command: string;
70
+ task: string;
71
+ startedAt: string;
72
+ completedAt: string;
73
+ estimatedDuration: string;
74
+ actualDuration: string;
75
+ variance: string;
76
+ completedAsPlanned: boolean;
77
+ qualityScore: QualityScore;
78
+ blockers?: string[];
79
+ errors?: string[];
80
+ agentUsed?: string;
81
+ agentConfidence?: number;
82
+ agentPerformedWell?: boolean;
83
+ patternDetected?: string;
84
+ nextTimeEstimate?: string;
85
+ tags?: string[];
86
+ }
87
+ export interface OutcomeSummary {
88
+ totalOutcomes: number;
89
+ avgQualityScore: number;
90
+ estimateAccuracy: number;
91
+ topBlockers: string[];
92
+ topAgents: string[];
93
+ patternsDetected: string[];
94
+ }
95
+ export type TaskType = 'frontend' | 'backend' | 'devops' | 'database' | 'testing' | 'documentation' | 'refactoring' | 'bugfix' | 'feature' | 'design' | 'other';
96
+ export interface AgentPerformance {
97
+ agentName: string;
98
+ taskType: TaskType;
99
+ tasksCompleted: number;
100
+ successRate: number;
101
+ avgDuration: string;
102
+ estimateAccuracy: number;
103
+ improving: boolean;
104
+ lastUpdated: string;
105
+ bestFor: TaskType[];
106
+ avoidFor: TaskType[];
107
+ }
108
+ export interface AgentSuggestion {
109
+ agentName: string;
110
+ confidence: number;
111
+ reason: string;
112
+ alternatives?: string[];
113
+ }
114
+ export interface ProjectInsights {
115
+ healthScore: number;
116
+ estimateAccuracy: number;
117
+ topBlockers: string[];
118
+ patternsDetected: string[];
119
+ recommendations: string[];
120
+ }
121
+ export interface UnifiedProjectData {
122
+ state: ProjectState | null;
123
+ outcomes: OutcomeSummary | null;
124
+ agentPerformance: AgentPerformance[];
125
+ insights: ProjectInsights;
126
+ legacyFallback: boolean;
127
+ }
128
+ export interface UnifiedApiResponse {
129
+ success: boolean;
130
+ version: 'v2' | 'v1-legacy';
131
+ state: ProjectState | null;
132
+ outcomes: OutcomeSummary | null;
133
+ agentPerformance: AgentPerformance[];
134
+ insights: ProjectInsights;
135
+ legacyFallback: boolean;
136
+ legacyData?: unknown;
137
+ legacyRaw?: unknown;
138
+ }
139
+ //# sourceMappingURL=unified.d.ts.map