prjct-cli 0.11.5 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +134 -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 +598 -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 +36 -6
  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
@@ -1,698 +0,0 @@
1
- /**
2
- * Command Registry - Single Source of Truth
3
- *
4
- * All prjct commands are defined here with metadata.
5
- * This registry is used by:
6
- * - bin/prjct (terminal CLI)
7
- * - website/Commands.tsx (documentation site)
8
- * - CLAUDE.md (AI assistant instructions)
9
- * - scripts/validate-commands.js (validation)
10
- *
11
- * @version 0.9.0 - Simplified commands with pause/resume and intelligent idea development
12
- */
13
-
14
- const COMMANDS = [
15
- // ===== CORE WORKFLOW COMMANDS (13 essential) =====
16
-
17
- // 1. Initialize
18
- {
19
- name: 'init',
20
- category: 'core',
21
- description: 'Deep project analysis and initialization',
22
- usage: {
23
- claude: '/p:init "[idea]"',
24
- terminal: 'prjct init "[idea]"',
25
- },
26
- params: '[idea]',
27
- implemented: true,
28
- hasTemplate: true,
29
- icon: 'Zap',
30
- requiresInit: false,
31
- blockingRules: null,
32
- features: [
33
- 'Architect mode for blank projects',
34
- 'Auto tech stack recommendation',
35
- 'Project structure generation',
36
- 'Initial roadmap creation',
37
- 'Analyzes existing codebases',
38
- ],
39
- },
40
-
41
- // 2. Idea Development - Transform ideas into complete architectures
42
- {
43
- name: 'idea',
44
- category: 'core',
45
- description: 'Transform ideas into complete technical architectures',
46
- usage: {
47
- claude: '/p:idea "build a CRM with AI"',
48
- terminal: 'prjct idea "build a CRM with AI"',
49
- },
50
- params: '<description>',
51
- implemented: true,
52
- hasTemplate: true,
53
- icon: 'Lightbulb',
54
- requiresInit: true,
55
- blockingRules: null,
56
- features: [
57
- 'Simple ideas → Quick capture',
58
- 'Complex ideas → Full architecture',
59
- 'Interactive discovery process',
60
- 'Tech stack recommendation',
61
- 'Complete roadmap generation',
62
- 'Database schema design',
63
- 'API specification',
64
- ],
65
- },
66
-
67
- // 3. Feature with Roadmap
68
- {
69
- name: 'feature',
70
- category: 'core',
71
- description: 'Add feature with value analysis, roadmap, and task breakdown',
72
- usage: {
73
- claude: '/p:feature "add unit testing"',
74
- terminal: 'prjct feature "add unit testing"',
75
- },
76
- params: '<description>',
77
- implemented: true,
78
- hasTemplate: true,
79
- icon: 'Package',
80
- requiresInit: true,
81
- blockingRules: null,
82
- features: [
83
- 'Value analysis (impact/effort/timing)',
84
- 'Auto roadmap generation',
85
- 'Task breakdown',
86
- 'Auto-start first task',
87
- 'Timing recommendations',
88
- ],
89
- },
90
-
91
- // 3.5. Spec-Driven Development (P1.2)
92
- {
93
- name: 'spec',
94
- category: 'core',
95
- description: 'Create detailed specifications for complex features',
96
- usage: {
97
- claude: '/p:spec "Dark Mode"',
98
- terminal: 'prjct spec "Dark Mode"',
99
- },
100
- params: '[feature]',
101
- implemented: true,
102
- hasTemplate: true,
103
- icon: 'FileText',
104
- requiresInit: true,
105
- blockingRules: null,
106
- features: [
107
- 'Requirements documentation',
108
- 'Design decisions tracking',
109
- 'Tasks broken into 20-30min chunks',
110
- 'User approval workflow',
111
- 'Auto-add tasks to queue on approve',
112
- 'Integrates with /p:feature',
113
- ],
114
- },
115
-
116
- // 4. Work - Unified task management (replaces now + build)
117
- {
118
- name: 'work',
119
- category: 'core',
120
- description: 'Show current or start new task',
121
- usage: {
122
- claude: '/p:work ["task"]',
123
- terminal: 'prjct work ["task"]',
124
- },
125
- params: '[task]',
126
- implemented: true,
127
- hasTemplate: true,
128
- icon: 'Target',
129
- requiresInit: true,
130
- blockingRules: null,
131
- features: [
132
- 'No params → Show current task',
133
- 'With task → Start new task',
134
- 'Auto agent assignment',
135
- 'Supports task numbers',
136
- 'Replaces /p:now and /p:build',
137
- ],
138
- },
139
-
140
- // 5. Pause - Pause active task
141
- {
142
- name: 'pause',
143
- category: 'core',
144
- description: 'Pause active task to handle interruption',
145
- usage: {
146
- claude: '/p:pause ["reason"]',
147
- terminal: 'prjct pause ["reason"]',
148
- },
149
- params: '[reason]',
150
- implemented: true,
151
- hasTemplate: true,
152
- icon: 'Pause',
153
- requiresInit: true,
154
- blockingRules: {
155
- check: 'Active task exists',
156
- message: 'No active task to pause',
157
- },
158
- features: [
159
- 'Preserves task context',
160
- 'Optional pause reason',
161
- 'Tracks paused duration',
162
- 'Allows multiple paused tasks',
163
- ],
164
- },
165
-
166
- // 6. Resume - Resume paused task
167
- {
168
- name: 'resume',
169
- category: 'core',
170
- description: 'Resume most recently paused task',
171
- usage: {
172
- claude: '/p:resume [task_id]',
173
- terminal: 'prjct resume [task_id]',
174
- },
175
- params: '[task_id]',
176
- implemented: true,
177
- hasTemplate: true,
178
- icon: 'Play',
179
- requiresInit: true,
180
- blockingRules: {
181
- check: 'Paused tasks exist',
182
- message: 'No paused tasks to resume',
183
- },
184
- features: [
185
- 'Resume last paused',
186
- 'Resume specific task',
187
- 'Resume by number',
188
- 'Calculates active time',
189
- ],
190
- },
191
-
192
- // 7. Next Tasks
193
- {
194
- name: 'next',
195
- category: 'core',
196
- description: 'Show top 5 non-blocking priority tasks',
197
- usage: {
198
- claude: '/p:next',
199
- terminal: 'prjct next',
200
- },
201
- params: null,
202
- implemented: true, // Needs blocking logic
203
- hasTemplate: true,
204
- icon: 'List',
205
- requiresInit: true,
206
- blockingRules: {
207
- check: 'filters blocked tasks',
208
- message: 'Shows warning if now.md is active',
209
- },
210
- features: [
211
- 'Filters out blocked tasks',
212
- 'Shows top 5 by priority',
213
- 'Numbered 1-5 for quick selection',
214
- 'Warns if active task exists',
215
- ],
216
- },
217
-
218
- // 8. Complete Task
219
- {
220
- name: 'done',
221
- category: 'core',
222
- description: 'Mark current task as complete',
223
- usage: {
224
- claude: '/p:done',
225
- terminal: 'prjct done',
226
- },
227
- params: null,
228
- implemented: true,
229
- hasTemplate: true,
230
- icon: 'CheckCircle',
231
- requiresInit: true,
232
- blockingRules: {
233
- check: 'now.md must have content',
234
- message: 'No active task to complete',
235
- },
236
- },
237
-
238
- // 9. Ship Feature
239
- {
240
- name: 'ship',
241
- category: 'core',
242
- description: 'Commit, push, and celebrate shipped feature',
243
- usage: {
244
- claude: '/p:ship "user authentication"',
245
- terminal: 'prjct ship "user authentication"',
246
- },
247
- params: '<feature>',
248
- implemented: true, // Complete automated workflow
249
- hasTemplate: true,
250
- icon: 'Rocket',
251
- requiresInit: true,
252
- blockingRules: null,
253
- features: [
254
- 'Lint checks (non-blocking)',
255
- 'Run tests (non-blocking)',
256
- 'Update docs',
257
- 'Update version',
258
- 'Update CHANGELOG',
259
- 'Git commit + push',
260
- 'Recommend compact',
261
- ],
262
- },
263
-
264
- // 10. Bug Tracking
265
- {
266
- name: 'bug',
267
- category: 'core',
268
- description: 'Report and track bugs with priority',
269
- usage: {
270
- claude: '/p:bug "login button not working"',
271
- terminal: 'prjct bug "login button not working"',
272
- },
273
- params: '<description>',
274
- implemented: true,
275
- hasTemplate: true,
276
- icon: 'Bug',
277
- requiresInit: true,
278
- blockingRules: null,
279
- features: [
280
- 'Auto-detect severity (critical/high/medium/low)',
281
- 'Priority placement in next.md',
282
- 'Bug tracking in memory',
283
- 'Quick bug resolution workflow',
284
- ],
285
- },
286
-
287
- // 11. Dashboard - Unified project view (replaces status, recap, progress, roadmap)
288
- {
289
- name: 'dash',
290
- category: 'core',
291
- description: 'Unified dashboard - status, progress, and roadmap',
292
- usage: {
293
- claude: '/p:dash [view]',
294
- terminal: 'prjct dash [view]',
295
- },
296
- params: '[week|month|roadmap|compact]',
297
- implemented: true,
298
- hasTemplate: true,
299
- icon: 'BarChart3',
300
- requiresInit: true,
301
- blockingRules: null,
302
- features: [
303
- 'Project overview',
304
- 'Weekly/monthly progress',
305
- 'Roadmap view',
306
- 'ASCII graphics',
307
- 'Replaces 4 commands',
308
- ],
309
- },
310
-
311
- // 12. Help - Enhanced contextual help (absorbs ask, suggest, stuck)
312
- {
313
- name: 'help',
314
- category: 'core',
315
- description: 'Contextual help and guidance',
316
- usage: {
317
- claude: '/p:help [topic]',
318
- terminal: 'prjct help [topic]',
319
- },
320
- params: '[topic]',
321
- implemented: true,
322
- hasTemplate: true,
323
- icon: 'HelpCircle',
324
- requiresInit: false,
325
- blockingRules: null,
326
- features: [
327
- 'Context-aware suggestions',
328
- 'Intent to action translator',
329
- 'Problem solving guidance',
330
- 'Absorbs ask/suggest/stuck',
331
- ],
332
- },
333
-
334
- // 13. Sync - Sync project state
335
- {
336
- name: 'sync',
337
- category: 'core',
338
- description: 'Sync project state and update workflow agents',
339
- usage: {
340
- claude: '/p:sync',
341
- terminal: 'prjct sync',
342
- },
343
- params: null,
344
- implemented: true,
345
- hasTemplate: true,
346
- icon: 'RefreshCw',
347
- requiresInit: true,
348
- blockingRules: null,
349
- features: [
350
- 'Syncs project state',
351
- 'Updates dynamic agents',
352
- 'Refreshes context',
353
- ],
354
- },
355
-
356
- // ===== OPTIONAL COMMANDS (Advanced features) =====
357
-
358
- {
359
- name: 'design',
360
- category: 'optional',
361
- description: 'Design system architecture, APIs, and components',
362
- usage: {
363
- claude: '/p:design authentication --type architecture',
364
- terminal: 'prjct design authentication --type architecture',
365
- },
366
- params: '[target] --type architecture|api|component|database|flow',
367
- implemented: true,
368
- hasTemplate: true,
369
- icon: 'Palette',
370
- requiresInit: true,
371
- blockingRules: null,
372
- isOptional: true,
373
- },
374
- {
375
- name: 'spec',
376
- category: 'optional',
377
- description: 'Spec-driven development for complex features',
378
- usage: {
379
- claude: '/p:spec "Dark Mode"',
380
- terminal: 'prjct spec "Dark Mode"',
381
- },
382
- params: '[feature_name]',
383
- implemented: true,
384
- hasTemplate: true,
385
- icon: 'FileText',
386
- requiresInit: true,
387
- blockingRules: null,
388
- isOptional: true,
389
- features: [
390
- 'Clear requirements before coding',
391
- 'Design decisions documented',
392
- 'Tasks broken into 20-30 min chunks',
393
- 'User approval before starting',
394
- 'Auto-adds tasks to queue on approval',
395
- ],
396
- },
397
- {
398
- name: 'cleanup',
399
- category: 'optional',
400
- description: 'Clean up temp files and old entries',
401
- usage: {
402
- claude: '/p:cleanup',
403
- terminal: 'prjct cleanup',
404
- },
405
- params: null,
406
- implemented: true,
407
- hasTemplate: true,
408
- icon: 'Zap',
409
- requiresInit: true,
410
- blockingRules: null,
411
- isOptional: true,
412
- },
413
- {
414
- name: 'analyze',
415
- category: 'optional',
416
- description: 'Analyze repository and sync tasks',
417
- usage: {
418
- claude: '/p:analyze',
419
- terminal: 'prjct analyze',
420
- },
421
- params: null,
422
- implemented: true,
423
- hasTemplate: true,
424
- icon: 'Search',
425
- requiresInit: true,
426
- blockingRules: null,
427
- isOptional: true,
428
- },
429
-
430
- // ===== SNAPSHOT COMMANDS (Undo/Redo Support) =====
431
- {
432
- name: 'undo',
433
- category: 'optional',
434
- description: 'Revert to previous snapshot',
435
- usage: {
436
- claude: '/p:undo',
437
- terminal: 'prjct undo',
438
- },
439
- params: null,
440
- implemented: true,
441
- hasTemplate: true,
442
- icon: 'RotateCcw',
443
- requiresInit: true,
444
- blockingRules: null,
445
- isOptional: true,
446
- features: [
447
- 'Git-based snapshots',
448
- 'Preserves redo history',
449
- 'Non-destructive',
450
- ],
451
- },
452
- {
453
- name: 'redo',
454
- category: 'optional',
455
- description: 'Redo previously undone changes',
456
- usage: {
457
- claude: '/p:redo',
458
- terminal: 'prjct redo',
459
- },
460
- params: null,
461
- implemented: true,
462
- hasTemplate: true,
463
- icon: 'RotateCw',
464
- requiresInit: true,
465
- blockingRules: null,
466
- isOptional: true,
467
- features: [
468
- 'Only available after undo',
469
- 'Restores undone state',
470
- 'Clears on new snapshot',
471
- ],
472
- },
473
- {
474
- name: 'history',
475
- category: 'optional',
476
- description: 'View snapshot history',
477
- usage: {
478
- claude: '/p:history',
479
- terminal: 'prjct history',
480
- },
481
- params: null,
482
- implemented: true,
483
- hasTemplate: true,
484
- icon: 'Clock',
485
- requiresInit: true,
486
- blockingRules: null,
487
- isOptional: true,
488
- features: [
489
- 'Shows all snapshots',
490
- 'Current position indicator',
491
- 'Redo availability count',
492
- ],
493
- },
494
-
495
- // ===== SETUP COMMANDS (Not part of daily workflow) =====
496
- {
497
- name: 'start',
498
- category: 'setup',
499
- description: 'First-time setup (install commands to editors)',
500
- usage: {
501
- claude: null,
502
- terminal: 'prjct start',
503
- },
504
- params: null,
505
- implemented: true,
506
- hasTemplate: false,
507
- icon: 'Terminal',
508
- requiresInit: false,
509
- blockingRules: null,
510
- },
511
- {
512
- name: 'setup',
513
- category: 'setup',
514
- description: 'Reconfigure editor installations',
515
- usage: {
516
- claude: '/p:setup',
517
- terminal: 'prjct setup [--force] [--editor <name>]',
518
- },
519
- params: '[--force] [--editor <name>]',
520
- implemented: true,
521
- hasTemplate: true,
522
- icon: 'Settings',
523
- requiresInit: false,
524
- blockingRules: null,
525
- },
526
- {
527
- name: 'migrate-all',
528
- category: 'setup',
529
- description: 'Migrate all legacy projects',
530
- usage: {
531
- claude: '/p:migrate-all',
532
- terminal: 'prjct migrate-all [--deep-scan] [--remove-legacy] [--dry-run]',
533
- },
534
- params: '[--deep-scan] [--remove-legacy] [--dry-run]',
535
- implemented: true,
536
- hasTemplate: true,
537
- icon: 'Database',
538
- requiresInit: false,
539
- blockingRules: null,
540
- },
541
- ]
542
-
543
- /**
544
- * Category metadata
545
- */
546
- const CATEGORIES = {
547
- core: {
548
- title: 'Core Workflow',
549
- icon: 'Zap',
550
- description: '13 essential commands for daily development workflow (simplified)',
551
- order: 1,
552
- },
553
- optional: {
554
- title: 'Optional Commands',
555
- icon: 'Package',
556
- description: 'Advanced features for specialized workflows',
557
- order: 2,
558
- },
559
- setup: {
560
- title: 'Setup',
561
- icon: 'Terminal',
562
- description: 'Installation and configuration (not for daily use)',
563
- order: 3,
564
- },
565
- }
566
-
567
- /**
568
- * Helper functions
569
- */
570
- const registry = {
571
- /**
572
- * Get all commands
573
- */
574
- getAll: () => COMMANDS,
575
-
576
- /**
577
- * Get command by name
578
- */
579
- getByName: (name) => COMMANDS.find((c) => c.name === name),
580
-
581
- /**
582
- * Get commands by category
583
- */
584
- getByCategory: (category) => COMMANDS.filter((c) => c.category === category),
585
-
586
- /**
587
- * Get all implemented commands
588
- */
589
- getAllImplemented: () => COMMANDS.filter((c) => c.implemented),
590
-
591
- /**
592
- * Get all commands with templates
593
- */
594
- getAllWithTemplates: () => COMMANDS.filter((c) => c.hasTemplate),
595
-
596
- /**
597
- * Get commands available in Claude Code
598
- */
599
- getClaudeCommands: () => COMMANDS.filter((c) => c.usage.claude !== null),
600
-
601
- /**
602
- * Get commands available in terminal
603
- */
604
- getTerminalCommands: () => COMMANDS.filter((c) => c.usage.terminal !== null),
605
-
606
- /**
607
- * Get all categories
608
- */
609
- getCategories: () => CATEGORIES,
610
-
611
- /**
612
- * Get category metadata
613
- */
614
- getCategory: (category) => CATEGORIES[category],
615
-
616
- /**
617
- * Validate command registry
618
- */
619
- validate: () => {
620
- const issues = []
621
-
622
- // Check for duplicate names
623
- const names = COMMANDS.map((c) => c.name)
624
- const duplicates = names.filter((name, index) => names.indexOf(name) !== index)
625
- if (duplicates.length > 0) {
626
- issues.push(`Duplicate command names: ${duplicates.join(', ')}`)
627
- }
628
-
629
- // Check for commands with templates but not implemented
630
- const notImplemented = COMMANDS.filter((c) => c.hasTemplate && !c.implemented)
631
- if (notImplemented.length > 0) {
632
- issues.push(
633
- `Commands with templates but not implemented: ${notImplemented.map((c) => c.name).join(', ')}`
634
- )
635
- }
636
-
637
- // Check for invalid categories
638
- const validCategories = Object.keys(CATEGORIES)
639
- const invalidCategories = COMMANDS.filter((c) => !validCategories.includes(c.category))
640
- if (invalidCategories.length > 0) {
641
- issues.push(
642
- `Invalid categories: ${invalidCategories.map((c) => `${c.name}:${c.category}`).join(', ')}`
643
- )
644
- }
645
-
646
- return {
647
- valid: issues.length === 0,
648
- issues,
649
- }
650
- },
651
-
652
- /**
653
- * Get core commands only (9 essential)
654
- */
655
- getCoreCommands: () => COMMANDS.filter((c) => c.category === 'core'),
656
-
657
- /**
658
- * Get optional commands
659
- */
660
- getOptionalCommands: () => COMMANDS.filter((c) => c.category === 'optional'),
661
-
662
- /**
663
- * Get commands that require initialization
664
- */
665
- getRequiresInit: () => COMMANDS.filter((c) => c.requiresInit),
666
-
667
- /**
668
- * Get commands with blocking rules
669
- * NOTE: Blocking rules are now handled by Claude reading templates, not deterministic code
670
- */
671
- getWithBlockingRules: () => COMMANDS.filter((c) => c.blockingRules !== null),
672
-
673
- /**
674
- * Get statistics
675
- */
676
- getStats: () => ({
677
- total: COMMANDS.length,
678
- core: COMMANDS.filter((c) => c.category === 'core').length,
679
- optional: COMMANDS.filter((c) => c.category === 'optional').length,
680
- setup: COMMANDS.filter((c) => c.category === 'setup').length,
681
- implemented: COMMANDS.filter((c) => c.implemented).length,
682
- withTemplates: COMMANDS.filter((c) => c.hasTemplate).length,
683
- claudeOnly: COMMANDS.filter((c) => c.usage.claude && !c.usage.terminal).length,
684
- terminalOnly: COMMANDS.filter((c) => !c.usage.claude && c.usage.terminal).length,
685
- both: COMMANDS.filter((c) => c.usage.claude && c.usage.terminal).length,
686
- requiresInit: COMMANDS.filter((c) => c.requiresInit).length,
687
- withBlockingRules: COMMANDS.filter((c) => c.blockingRules !== null).length,
688
- byCategory: Object.keys(CATEGORIES).reduce(
689
- (acc, cat) => ({
690
- ...acc,
691
- [cat]: COMMANDS.filter((c) => c.category === cat).length,
692
- }),
693
- {}
694
- ),
695
- }),
696
- }
697
-
698
- module.exports = registry