@hivehub/rulebook 4.0.0 → 4.2.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 (348) hide show
  1. package/.claude/commands/continue.md +33 -33
  2. package/.claude/commands/ralph-config.md +112 -112
  3. package/.claude/commands/ralph-history.md +110 -110
  4. package/.claude/commands/ralph-init.md +72 -72
  5. package/.claude/commands/ralph-pause-resume.md +105 -105
  6. package/.claude/commands/ralph-run.md +101 -101
  7. package/.claude/commands/ralph-status.md +76 -76
  8. package/.claude/commands/rulebook-memory-save.md +48 -48
  9. package/.claude/commands/rulebook-memory-search.md +47 -47
  10. package/.claude/commands/rulebook-task-apply.md +67 -67
  11. package/.claude/commands/rulebook-task-archive.md +70 -70
  12. package/.claude/commands/rulebook-task-create.md +93 -93
  13. package/.claude/commands/rulebook-task-list.md +42 -42
  14. package/.claude/commands/rulebook-task-show.md +52 -52
  15. package/.claude/commands/rulebook-task-validate.md +53 -53
  16. package/.claude-plugin/marketplace.json +28 -28
  17. package/.claude-plugin/plugin.json +8 -8
  18. package/README.md +34 -0
  19. package/dist/cli/commands.d.ts +18 -6
  20. package/dist/cli/commands.d.ts.map +1 -1
  21. package/dist/cli/commands.js +717 -406
  22. package/dist/cli/commands.js.map +1 -1
  23. package/dist/core/claude-mcp.d.ts +4 -2
  24. package/dist/core/claude-mcp.d.ts.map +1 -1
  25. package/dist/core/claude-mcp.js +14 -9
  26. package/dist/core/claude-mcp.js.map +1 -1
  27. package/dist/core/generator.d.ts.map +1 -1
  28. package/dist/core/generator.js +13 -0
  29. package/dist/core/generator.js.map +1 -1
  30. package/dist/core/indexer/background-indexer.d.ts +27 -0
  31. package/dist/core/indexer/background-indexer.d.ts.map +1 -0
  32. package/dist/core/indexer/background-indexer.js +156 -0
  33. package/dist/core/indexer/background-indexer.js.map +1 -0
  34. package/dist/core/indexer/file-parser.d.ts +28 -0
  35. package/dist/core/indexer/file-parser.d.ts.map +1 -0
  36. package/dist/core/indexer/file-parser.js +171 -0
  37. package/dist/core/indexer/file-parser.js.map +1 -0
  38. package/dist/core/indexer/indexer-types.d.ts +35 -0
  39. package/dist/core/indexer/indexer-types.d.ts.map +1 -0
  40. package/dist/core/indexer/indexer-types.js +8 -0
  41. package/dist/core/indexer/indexer-types.js.map +1 -0
  42. package/dist/core/workspace/legacy-migrator.d.ts +29 -0
  43. package/dist/core/workspace/legacy-migrator.d.ts.map +1 -0
  44. package/dist/core/workspace/legacy-migrator.js +142 -0
  45. package/dist/core/workspace/legacy-migrator.js.map +1 -0
  46. package/dist/core/workspace/project-worker.d.ts +49 -0
  47. package/dist/core/workspace/project-worker.d.ts.map +1 -0
  48. package/dist/core/workspace/project-worker.js +108 -0
  49. package/dist/core/workspace/project-worker.js.map +1 -0
  50. package/dist/core/workspace/workspace-manager.d.ts +90 -0
  51. package/dist/core/workspace/workspace-manager.d.ts.map +1 -0
  52. package/dist/core/workspace/workspace-manager.js +337 -0
  53. package/dist/core/workspace/workspace-manager.js.map +1 -0
  54. package/dist/core/workspace/workspace-types.d.ts +37 -0
  55. package/dist/core/workspace/workspace-types.d.ts.map +1 -0
  56. package/dist/core/workspace/workspace-types.js +8 -0
  57. package/dist/core/workspace/workspace-types.js.map +1 -0
  58. package/dist/index.js +43 -7
  59. package/dist/index.js.map +1 -1
  60. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  61. package/dist/mcp/rulebook-server.js +450 -81
  62. package/dist/mcp/rulebook-server.js.map +1 -1
  63. package/dist/memory/memory-manager.d.ts +4 -1
  64. package/dist/memory/memory-manager.d.ts.map +1 -1
  65. package/dist/memory/memory-manager.js +33 -4
  66. package/dist/memory/memory-manager.js.map +1 -1
  67. package/dist/memory/memory-search.d.ts +2 -2
  68. package/dist/memory/memory-search.d.ts.map +1 -1
  69. package/dist/memory/memory-search.js +19 -0
  70. package/dist/memory/memory-search.js.map +1 -1
  71. package/dist/memory/memory-store.d.ts +13 -0
  72. package/dist/memory/memory-store.d.ts.map +1 -1
  73. package/dist/memory/memory-store.js +88 -1
  74. package/dist/memory/memory-store.js.map +1 -1
  75. package/dist/memory/memory-types.d.ts +15 -0
  76. package/dist/memory/memory-types.d.ts.map +1 -1
  77. package/dist/types.d.ts +1 -0
  78. package/dist/types.d.ts.map +1 -1
  79. package/package.json +22 -21
  80. package/templates/agents/implementer.md +35 -35
  81. package/templates/agents/researcher.md +34 -34
  82. package/templates/agents/team-lead.md +34 -34
  83. package/templates/agents/tester.md +42 -42
  84. package/templates/ci/rulebook-review.yml +26 -26
  85. package/templates/cli/AIDER.md +49 -49
  86. package/templates/cli/AMAZON_Q.md +25 -25
  87. package/templates/cli/AUGGIE.md +32 -32
  88. package/templates/cli/CLAUDE.md +117 -117
  89. package/templates/cli/CLINE.md +99 -99
  90. package/templates/cli/CODEBUDDY.md +20 -20
  91. package/templates/cli/CODEIUM.md +20 -20
  92. package/templates/cli/CODEX.md +21 -21
  93. package/templates/cli/CONTINUE.md +34 -34
  94. package/templates/cli/CURSOR_CLI.md +62 -62
  95. package/templates/cli/FACTORY.md +18 -18
  96. package/templates/cli/GEMINI.md +35 -35
  97. package/templates/cli/KILOCODE.md +18 -18
  98. package/templates/cli/OPENCODE.md +18 -18
  99. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  100. package/templates/commands/rulebook-memory-save.md +48 -48
  101. package/templates/commands/rulebook-memory-search.md +47 -47
  102. package/templates/commands/rulebook-task-apply.md +67 -67
  103. package/templates/commands/rulebook-task-archive.md +94 -70
  104. package/templates/commands/rulebook-task-create.md +93 -93
  105. package/templates/commands/rulebook-task-list.md +42 -42
  106. package/templates/commands/rulebook-task-show.md +52 -52
  107. package/templates/commands/rulebook-task-validate.md +53 -53
  108. package/templates/core/AGENTS_LEAN.md +25 -25
  109. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  110. package/templates/core/AGENT_AUTOMATION.md +288 -288
  111. package/templates/core/DAG.md +304 -304
  112. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  113. package/templates/core/MULTI_AGENT.md +74 -74
  114. package/templates/core/PLANS.md +28 -28
  115. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  116. package/templates/core/RALPH.md +471 -471
  117. package/templates/core/RULEBOOK.md +1935 -1893
  118. package/templates/core/WORKSPACE.md +69 -0
  119. package/templates/frameworks/ANGULAR.md +36 -36
  120. package/templates/frameworks/DJANGO.md +83 -83
  121. package/templates/frameworks/ELECTRON.md +147 -147
  122. package/templates/frameworks/FLASK.md +38 -38
  123. package/templates/frameworks/FLUTTER.md +55 -55
  124. package/templates/frameworks/JQUERY.md +32 -32
  125. package/templates/frameworks/LARAVEL.md +38 -38
  126. package/templates/frameworks/NESTJS.md +43 -43
  127. package/templates/frameworks/NEXTJS.md +127 -127
  128. package/templates/frameworks/NUXT.md +40 -40
  129. package/templates/frameworks/RAILS.md +66 -66
  130. package/templates/frameworks/REACT.md +38 -38
  131. package/templates/frameworks/REACT_NATIVE.md +47 -47
  132. package/templates/frameworks/SPRING.md +39 -39
  133. package/templates/frameworks/SYMFONY.md +36 -36
  134. package/templates/frameworks/VUE.md +36 -36
  135. package/templates/frameworks/ZEND.md +35 -35
  136. package/templates/git/CI_CD_PATTERNS.md +661 -661
  137. package/templates/git/GITHUB_ACTIONS.md +728 -728
  138. package/templates/git/GITLAB_CI.md +730 -730
  139. package/templates/git/GIT_WORKFLOW.md +1157 -1157
  140. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  141. package/templates/hooks/COMMIT_MSG.md +530 -530
  142. package/templates/hooks/POST_CHECKOUT.md +546 -546
  143. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  144. package/templates/hooks/PRE_COMMIT.md +414 -414
  145. package/templates/hooks/PRE_PUSH.md +601 -601
  146. package/templates/ides/CONTINUE_RULES.md +16 -16
  147. package/templates/ides/COPILOT.md +37 -37
  148. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  149. package/templates/ides/CURSOR.md +43 -43
  150. package/templates/ides/GEMINI_RULES.md +17 -17
  151. package/templates/ides/JETBRAINS_AI.md +35 -35
  152. package/templates/ides/REPLIT.md +36 -36
  153. package/templates/ides/TABNINE.md +29 -29
  154. package/templates/ides/VSCODE.md +40 -40
  155. package/templates/ides/WINDSURF.md +36 -36
  156. package/templates/ides/WINDSURF_RULES.md +14 -14
  157. package/templates/ides/ZED.md +32 -32
  158. package/templates/ides/cursor-mdc/go.mdc +24 -24
  159. package/templates/ides/cursor-mdc/python.mdc +24 -24
  160. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  161. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  162. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  163. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  164. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  165. package/templates/languages/C.md +333 -333
  166. package/templates/languages/CPP.md +743 -743
  167. package/templates/languages/CSHARP.md +417 -417
  168. package/templates/languages/ELIXIR.md +454 -454
  169. package/templates/languages/ERLANG.md +361 -361
  170. package/templates/languages/GO.md +645 -645
  171. package/templates/languages/HASKELL.md +177 -177
  172. package/templates/languages/JAVA.md +607 -607
  173. package/templates/languages/JAVASCRIPT.md +631 -631
  174. package/templates/languages/JULIA.md +97 -97
  175. package/templates/languages/KOTLIN.md +511 -511
  176. package/templates/languages/LISP.md +100 -100
  177. package/templates/languages/LUA.md +74 -74
  178. package/templates/languages/OBJECTIVEC.md +90 -90
  179. package/templates/languages/PHP.md +416 -416
  180. package/templates/languages/PYTHON.md +682 -682
  181. package/templates/languages/RUBY.md +421 -421
  182. package/templates/languages/RUST.md +477 -477
  183. package/templates/languages/SAS.md +73 -73
  184. package/templates/languages/SCALA.md +348 -348
  185. package/templates/languages/SOLIDITY.md +580 -580
  186. package/templates/languages/SQL.md +137 -137
  187. package/templates/languages/SWIFT.md +466 -466
  188. package/templates/languages/TYPESCRIPT.md +591 -591
  189. package/templates/languages/ZIG.md +265 -265
  190. package/templates/modules/ATLASSIAN.md +255 -255
  191. package/templates/modules/CONTEXT7.md +54 -54
  192. package/templates/modules/FIGMA.md +267 -267
  193. package/templates/modules/GITHUB_MCP.md +64 -64
  194. package/templates/modules/GRAFANA.md +328 -328
  195. package/templates/modules/MEMORY.md +126 -126
  196. package/templates/modules/NOTION.md +247 -247
  197. package/templates/modules/PLAYWRIGHT.md +90 -90
  198. package/templates/modules/RULEBOOK_MCP.md +156 -156
  199. package/templates/modules/SERENA.md +337 -337
  200. package/templates/modules/SUPABASE.md +223 -223
  201. package/templates/modules/SYNAP.md +69 -69
  202. package/templates/modules/VECTORIZER.md +63 -63
  203. package/templates/modules/sequential-thinking.md +42 -42
  204. package/templates/ralph/ralph-history.bat +4 -4
  205. package/templates/ralph/ralph-history.sh +5 -5
  206. package/templates/ralph/ralph-init.bat +5 -5
  207. package/templates/ralph/ralph-init.sh +5 -5
  208. package/templates/ralph/ralph-pause.bat +5 -5
  209. package/templates/ralph/ralph-pause.sh +5 -5
  210. package/templates/ralph/ralph-run.bat +5 -5
  211. package/templates/ralph/ralph-run.sh +5 -5
  212. package/templates/ralph/ralph-status.bat +4 -4
  213. package/templates/ralph/ralph-status.sh +5 -5
  214. package/templates/services/AZURE_BLOB.md +184 -184
  215. package/templates/services/CASSANDRA.md +239 -239
  216. package/templates/services/DATADOG.md +26 -26
  217. package/templates/services/DOCKER.md +124 -124
  218. package/templates/services/DOCKER_COMPOSE.md +168 -168
  219. package/templates/services/DYNAMODB.md +308 -308
  220. package/templates/services/ELASTICSEARCH.md +347 -347
  221. package/templates/services/GCS.md +178 -178
  222. package/templates/services/HELM.md +194 -194
  223. package/templates/services/INFLUXDB.md +265 -265
  224. package/templates/services/KAFKA.md +341 -341
  225. package/templates/services/KUBERNETES.md +208 -208
  226. package/templates/services/MARIADB.md +183 -183
  227. package/templates/services/MEMCACHED.md +242 -242
  228. package/templates/services/MINIO.md +201 -201
  229. package/templates/services/MONGODB.md +268 -268
  230. package/templates/services/MYSQL.md +358 -358
  231. package/templates/services/NEO4J.md +247 -247
  232. package/templates/services/OPENTELEMETRY.md +25 -25
  233. package/templates/services/ORACLE.md +290 -290
  234. package/templates/services/PINO.md +24 -24
  235. package/templates/services/POSTGRESQL.md +326 -326
  236. package/templates/services/PROMETHEUS.md +33 -33
  237. package/templates/services/RABBITMQ.md +286 -286
  238. package/templates/services/REDIS.md +292 -292
  239. package/templates/services/S3.md +298 -298
  240. package/templates/services/SENTRY.md +23 -23
  241. package/templates/services/SQLITE.md +294 -294
  242. package/templates/services/SQLSERVER.md +294 -294
  243. package/templates/services/WINSTON.md +30 -30
  244. package/templates/skills/cli/aider/SKILL.md +59 -59
  245. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  246. package/templates/skills/cli/auggie/SKILL.md +42 -42
  247. package/templates/skills/cli/claude/SKILL.md +42 -42
  248. package/templates/skills/cli/cline/SKILL.md +42 -42
  249. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  250. package/templates/skills/cli/codeium/SKILL.md +30 -30
  251. package/templates/skills/cli/codex/SKILL.md +31 -31
  252. package/templates/skills/cli/continue/SKILL.md +44 -44
  253. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  254. package/templates/skills/cli/factory/SKILL.md +28 -28
  255. package/templates/skills/cli/gemini/SKILL.md +45 -45
  256. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  257. package/templates/skills/cli/opencode/SKILL.md +28 -28
  258. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  259. package/templates/skills/core/dag/SKILL.md +314 -314
  260. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  261. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  262. package/templates/skills/core/rulebook/SKILL.md +176 -176
  263. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  264. package/templates/skills/frameworks/django/SKILL.md +93 -93
  265. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  266. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  267. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  268. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  269. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  270. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  271. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  272. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  273. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  274. package/templates/skills/frameworks/react/SKILL.md +48 -48
  275. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  276. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  277. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  278. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  279. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  280. package/templates/skills/ides/copilot/SKILL.md +47 -47
  281. package/templates/skills/ides/cursor/SKILL.md +53 -53
  282. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  283. package/templates/skills/ides/replit/SKILL.md +46 -46
  284. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  285. package/templates/skills/ides/vscode/SKILL.md +50 -50
  286. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  287. package/templates/skills/ides/zed/SKILL.md +42 -42
  288. package/templates/skills/languages/c/SKILL.md +343 -343
  289. package/templates/skills/languages/cpp/SKILL.md +753 -753
  290. package/templates/skills/languages/csharp/SKILL.md +427 -427
  291. package/templates/skills/languages/elixir/SKILL.md +464 -464
  292. package/templates/skills/languages/erlang/SKILL.md +371 -371
  293. package/templates/skills/languages/go/SKILL.md +655 -655
  294. package/templates/skills/languages/haskell/SKILL.md +187 -187
  295. package/templates/skills/languages/java/SKILL.md +617 -617
  296. package/templates/skills/languages/javascript/SKILL.md +641 -641
  297. package/templates/skills/languages/julia/SKILL.md +107 -107
  298. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  299. package/templates/skills/languages/lisp/SKILL.md +110 -110
  300. package/templates/skills/languages/lua/SKILL.md +84 -84
  301. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  302. package/templates/skills/languages/php/SKILL.md +426 -426
  303. package/templates/skills/languages/python/SKILL.md +692 -692
  304. package/templates/skills/languages/ruby/SKILL.md +431 -431
  305. package/templates/skills/languages/rust/SKILL.md +487 -487
  306. package/templates/skills/languages/sas/SKILL.md +83 -83
  307. package/templates/skills/languages/scala/SKILL.md +358 -358
  308. package/templates/skills/languages/solidity/SKILL.md +590 -590
  309. package/templates/skills/languages/sql/SKILL.md +147 -147
  310. package/templates/skills/languages/swift/SKILL.md +476 -476
  311. package/templates/skills/languages/typescript/SKILL.md +302 -302
  312. package/templates/skills/languages/zig/SKILL.md +275 -275
  313. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  314. package/templates/skills/modules/context7/SKILL.md +64 -64
  315. package/templates/skills/modules/figma/SKILL.md +277 -277
  316. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  317. package/templates/skills/modules/grafana/SKILL.md +338 -338
  318. package/templates/skills/modules/memory/SKILL.md +73 -73
  319. package/templates/skills/modules/notion/SKILL.md +257 -257
  320. package/templates/skills/modules/playwright/SKILL.md +100 -100
  321. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  322. package/templates/skills/modules/serena/SKILL.md +347 -347
  323. package/templates/skills/modules/supabase/SKILL.md +233 -233
  324. package/templates/skills/modules/synap/SKILL.md +79 -79
  325. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  326. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  327. package/templates/skills/services/cassandra/SKILL.md +249 -249
  328. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  329. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  330. package/templates/skills/services/gcs/SKILL.md +188 -188
  331. package/templates/skills/services/influxdb/SKILL.md +275 -275
  332. package/templates/skills/services/kafka/SKILL.md +351 -351
  333. package/templates/skills/services/mariadb/SKILL.md +193 -193
  334. package/templates/skills/services/memcached/SKILL.md +252 -252
  335. package/templates/skills/services/minio/SKILL.md +211 -211
  336. package/templates/skills/services/mongodb/SKILL.md +278 -278
  337. package/templates/skills/services/mysql/SKILL.md +368 -368
  338. package/templates/skills/services/neo4j/SKILL.md +257 -257
  339. package/templates/skills/services/oracle/SKILL.md +300 -300
  340. package/templates/skills/services/postgresql/SKILL.md +336 -336
  341. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  342. package/templates/skills/services/redis/SKILL.md +302 -302
  343. package/templates/skills/services/s3/SKILL.md +308 -308
  344. package/templates/skills/services/sqlite/SKILL.md +304 -304
  345. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  346. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  347. package/templates/skills/workflows/ralph/install.sh +87 -87
  348. package/templates/skills/workflows/ralph/manifest.json +158 -158
@@ -0,0 +1,90 @@
1
+ /**
2
+ * WorkspaceManager — Orchestrates multi-project workspace.
3
+ *
4
+ * Manages ProjectWorker lifecycle (spawn on-demand, kill idle),
5
+ * discovers workspace config from multiple sources, and provides
6
+ * cross-project operations (memory search, task listing).
7
+ */
8
+ import { ProjectWorker } from './project-worker.js';
9
+ import type { WorkspaceConfig, WorkspaceProject, WorkspaceStatus } from './workspace-types.js';
10
+ export declare class WorkspaceManager {
11
+ private workers;
12
+ private config;
13
+ private workspaceRoot;
14
+ private idleCheckInterval;
15
+ constructor(config: WorkspaceConfig, workspaceRoot: string);
16
+ /** Start the idle-check timer. */
17
+ startIdleChecker(): void;
18
+ /** Stop the idle-check timer. */
19
+ stopIdleChecker(): void;
20
+ /**
21
+ * Get (or spawn) a worker for the given project.
22
+ * Initializes lazily on first access.
23
+ */
24
+ getWorker(projectId: string): Promise<ProjectWorker>;
25
+ /** Spawn and initialize a new worker for the given project. */
26
+ spawnWorker(projectId: string): Promise<ProjectWorker>;
27
+ /** Shut down workers that have been idle longer than the configured timeout. */
28
+ killIdleWorkers(): Promise<string[]>;
29
+ /** Gracefully shut down all workers and stop the idle checker. */
30
+ shutdownAll(): Promise<void>;
31
+ getConfig(): WorkspaceConfig;
32
+ getProjects(): WorkspaceProject[];
33
+ getDefaultProjectId(): string;
34
+ getActiveWorkerIds(): string[];
35
+ getWorkspaceRoot(): string;
36
+ /** Build a status snapshot of the entire workspace. */
37
+ getStatus(): Promise<WorkspaceStatus>;
38
+ /**
39
+ * Search memory across all active workers.
40
+ * Returns results tagged with project name.
41
+ */
42
+ searchMemoryAcrossProjects(query: string, options?: {
43
+ limit?: number;
44
+ type?: string;
45
+ }): Promise<Array<{
46
+ project: string;
47
+ results: unknown[];
48
+ }>>;
49
+ /**
50
+ * Discovery chain (priority order):
51
+ * 1. .rulebook-workspace.json
52
+ * 2. *.code-workspace (VSCode format)
53
+ * 3. Monorepo detection (pnpm/turbo/nx/lerna)
54
+ * Returns null if no workspace found.
55
+ */
56
+ static findWorkspaceConfig(startDir: string): WorkspaceConfig | null;
57
+ /** Find a *.code-workspace file in the given directory. */
58
+ private static findCodeWorkspaceFile;
59
+ /**
60
+ * Parse a VSCode .code-workspace file into WorkspaceConfig.
61
+ * Format: { "folders": [{ "path": "." }, { "path": "../frontend" }] }
62
+ */
63
+ static fromCodeWorkspace(filePath: string, workspaceRoot?: string): WorkspaceConfig | null;
64
+ /**
65
+ * Detect monorepo structure and build WorkspaceConfig.
66
+ * Checks: pnpm-workspace.yaml, turbo.json, nx.json, lerna.json
67
+ */
68
+ static fromMonorepo(dir: string): WorkspaceConfig | null;
69
+ /** Build config from monorepo by scanning packages/ and apps/ directories. */
70
+ private static buildMonorepoConfig;
71
+ /**
72
+ * Walk up from `startDir` to find a workspace root directory.
73
+ * Returns `{ config, root }` or null if no workspace found.
74
+ */
75
+ static findWorkspaceFromCwd(startDir: string): {
76
+ config: WorkspaceConfig;
77
+ root: string;
78
+ } | null;
79
+ /**
80
+ * Given a cwd, find the workspace and determine which project the cwd belongs to.
81
+ * Matches by checking if the cwd starts with the resolved project path.
82
+ * Returns `{ config, root, projectName }` or null.
83
+ */
84
+ static resolveProjectFromCwd(cwd: string): {
85
+ config: WorkspaceConfig;
86
+ root: string;
87
+ projectName: string;
88
+ } | null;
89
+ }
90
+ //# sourceMappingURL=workspace-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-manager.d.ts","sourceRoot":"","sources":["../../../src/core/workspace/workspace-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK/F,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAA+C;gBAE5D,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM;IAK1D,kCAAkC;IAClC,gBAAgB,IAAI,IAAI;IAUxB,iCAAiC;IACjC,eAAe,IAAI,IAAI;IASvB;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAS1D,+DAA+D;IACzD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkB5D,gFAAgF;IAC1E,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAc1C,kEAAkE;IAC5D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,SAAS,IAAI,eAAe;IAI5B,WAAW,IAAI,gBAAgB,EAAE;IAIjC,mBAAmB,IAAI,MAAM;IAI7B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,MAAM;IAI1B,uDAAuD;IACjD,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAyC3C;;;OAGG;IACG,0BAA0B,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IAyB1D;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAuBpE,2DAA2D;IAC3D,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IA0B1F;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAyBxD,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA2ClC;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CACzB,QAAQ,EAAE,MAAM,GACf;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAgBnD;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAC1B,GAAG,EAAE,MAAM,GACV;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAwBzE"}
@@ -0,0 +1,337 @@
1
+ /**
2
+ * WorkspaceManager — Orchestrates multi-project workspace.
3
+ *
4
+ * Manages ProjectWorker lifecycle (spawn on-demand, kill idle),
5
+ * discovers workspace config from multiple sources, and provides
6
+ * cross-project operations (memory search, task listing).
7
+ */
8
+ import { basename, dirname, isAbsolute, join, resolve } from 'path';
9
+ import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
10
+ import { ProjectWorker } from './project-worker.js';
11
+ const DEFAULT_IDLE_TIMEOUT_MS = 300_000; // 5 minutes
12
+ const IDLE_CHECK_INTERVAL_MS = 60_000; // 1 minute
13
+ export class WorkspaceManager {
14
+ workers = new Map();
15
+ config;
16
+ workspaceRoot;
17
+ idleCheckInterval = null;
18
+ constructor(config, workspaceRoot) {
19
+ this.config = config;
20
+ this.workspaceRoot = workspaceRoot;
21
+ }
22
+ /** Start the idle-check timer. */
23
+ startIdleChecker() {
24
+ if (this.idleCheckInterval)
25
+ return;
26
+ this.idleCheckInterval = setInterval(() => this.killIdleWorkers(), IDLE_CHECK_INTERVAL_MS);
27
+ // Don't keep process alive just for the idle checker
28
+ this.idleCheckInterval.unref();
29
+ }
30
+ /** Stop the idle-check timer. */
31
+ stopIdleChecker() {
32
+ if (this.idleCheckInterval) {
33
+ clearInterval(this.idleCheckInterval);
34
+ this.idleCheckInterval = null;
35
+ }
36
+ }
37
+ // --- Worker Lifecycle ---
38
+ /**
39
+ * Get (or spawn) a worker for the given project.
40
+ * Initializes lazily on first access.
41
+ */
42
+ async getWorker(projectId) {
43
+ const existing = this.workers.get(projectId);
44
+ if (existing) {
45
+ existing.touch();
46
+ return existing;
47
+ }
48
+ return this.spawnWorker(projectId);
49
+ }
50
+ /** Spawn and initialize a new worker for the given project. */
51
+ async spawnWorker(projectId) {
52
+ const project = this.config.projects.find((p) => p.name === projectId && p.enabled !== false);
53
+ if (!project) {
54
+ throw new Error(`Project "${projectId}" not found in workspace "${this.config.name}"`);
55
+ }
56
+ const projectRoot = isAbsolute(project.path)
57
+ ? project.path
58
+ : resolve(this.workspaceRoot, project.path);
59
+ const worker = new ProjectWorker(projectId, projectRoot);
60
+ await worker.initialize();
61
+ this.workers.set(projectId, worker);
62
+ return worker;
63
+ }
64
+ /** Shut down workers that have been idle longer than the configured timeout. */
65
+ async killIdleWorkers() {
66
+ const timeout = this.config.idleTimeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
67
+ const killed = [];
68
+ for (const [id, worker] of this.workers) {
69
+ if (worker.isIdle(timeout)) {
70
+ await worker.shutdown();
71
+ this.workers.delete(id);
72
+ killed.push(id);
73
+ }
74
+ }
75
+ return killed;
76
+ }
77
+ /** Gracefully shut down all workers and stop the idle checker. */
78
+ async shutdownAll() {
79
+ this.stopIdleChecker();
80
+ for (const [id, worker] of this.workers) {
81
+ await worker.shutdown();
82
+ this.workers.delete(id);
83
+ }
84
+ }
85
+ // --- Accessors ---
86
+ getConfig() {
87
+ return this.config;
88
+ }
89
+ getProjects() {
90
+ return this.config.projects.filter((p) => p.enabled !== false);
91
+ }
92
+ getDefaultProjectId() {
93
+ return this.config.defaultProject ?? this.config.projects[0]?.name ?? '';
94
+ }
95
+ getActiveWorkerIds() {
96
+ return [...this.workers.keys()];
97
+ }
98
+ getWorkspaceRoot() {
99
+ return this.workspaceRoot;
100
+ }
101
+ /** Build a status snapshot of the entire workspace. */
102
+ async getStatus() {
103
+ const projects = await Promise.all(this.getProjects().map(async (p) => {
104
+ const worker = this.workers.get(p.name);
105
+ const projectRoot = isAbsolute(p.path)
106
+ ? p.path
107
+ : resolve(this.workspaceRoot, p.path);
108
+ const hasConfig = existsSync(join(projectRoot, '.rulebook'));
109
+ let taskCount = 0;
110
+ if (worker?.initialized) {
111
+ try {
112
+ const tasks = await worker.getTaskManager().listTasks(false);
113
+ taskCount = tasks.length;
114
+ }
115
+ catch {
116
+ // ignore
117
+ }
118
+ }
119
+ return {
120
+ name: p.name,
121
+ path: projectRoot,
122
+ workerActive: worker?.initialized ?? false,
123
+ hasRulebookConfig: hasConfig,
124
+ memoryEnabled: worker?.getRulebookConfig()?.memory?.enabled ?? false,
125
+ taskCount,
126
+ lastAccessed: worker?.lastAccessedAt,
127
+ };
128
+ }));
129
+ return {
130
+ name: this.config.name,
131
+ projects,
132
+ activeWorkers: this.workers.size,
133
+ totalProjects: this.config.projects.length,
134
+ };
135
+ }
136
+ // --- Cross-Project Operations ---
137
+ /**
138
+ * Search memory across all active workers.
139
+ * Returns results tagged with project name.
140
+ */
141
+ async searchMemoryAcrossProjects(query, options) {
142
+ const results = [];
143
+ for (const project of this.getProjects()) {
144
+ try {
145
+ const worker = await this.getWorker(project.name);
146
+ const mm = worker.getMemoryManager();
147
+ if (!mm)
148
+ continue;
149
+ const searchResults = await mm.searchMemories({
150
+ query,
151
+ limit: options?.limit ?? 10,
152
+ });
153
+ if (searchResults.length > 0) {
154
+ results.push({ project: project.name, results: searchResults });
155
+ }
156
+ }
157
+ catch {
158
+ // Skip projects that fail to initialize
159
+ }
160
+ }
161
+ return results;
162
+ }
163
+ // --- Static Discovery ---
164
+ /**
165
+ * Discovery chain (priority order):
166
+ * 1. .rulebook-workspace.json
167
+ * 2. *.code-workspace (VSCode format)
168
+ * 3. Monorepo detection (pnpm/turbo/nx/lerna)
169
+ * Returns null if no workspace found.
170
+ */
171
+ static findWorkspaceConfig(startDir) {
172
+ const dir = resolve(startDir);
173
+ // 1. Native rulebook workspace
174
+ const nativePath = join(dir, '.rulebook-workspace.json');
175
+ if (existsSync(nativePath)) {
176
+ try {
177
+ return JSON.parse(readFileSync(nativePath, 'utf-8'));
178
+ }
179
+ catch {
180
+ // fall through
181
+ }
182
+ }
183
+ // 2. VSCode .code-workspace
184
+ const codeWorkspace = WorkspaceManager.findCodeWorkspaceFile(dir);
185
+ if (codeWorkspace) {
186
+ return WorkspaceManager.fromCodeWorkspace(codeWorkspace, dir);
187
+ }
188
+ // 3. Monorepo detection
189
+ return WorkspaceManager.fromMonorepo(dir);
190
+ }
191
+ /** Find a *.code-workspace file in the given directory. */
192
+ static findCodeWorkspaceFile(dir) {
193
+ try {
194
+ const entries = readdirSync(dir);
195
+ const match = entries.find((e) => e.endsWith('.code-workspace'));
196
+ return match ? join(dir, match) : null;
197
+ }
198
+ catch {
199
+ return null;
200
+ }
201
+ }
202
+ /**
203
+ * Parse a VSCode .code-workspace file into WorkspaceConfig.
204
+ * Format: { "folders": [{ "path": "." }, { "path": "../frontend" }] }
205
+ */
206
+ static fromCodeWorkspace(filePath, workspaceRoot) {
207
+ try {
208
+ const raw = readFileSync(filePath, 'utf-8');
209
+ const parsed = JSON.parse(raw);
210
+ if (!parsed.folders || parsed.folders.length === 0)
211
+ return null;
212
+ const root = workspaceRoot ?? dirname(filePath);
213
+ const projects = parsed.folders.map((folder) => {
214
+ const resolvedPath = isAbsolute(folder.path)
215
+ ? folder.path
216
+ : resolve(root, folder.path);
217
+ const name = folder.name ?? basename(resolvedPath);
218
+ return { name, path: folder.path };
219
+ });
220
+ return {
221
+ name: basename(filePath, '.code-workspace'),
222
+ version: '1.0.0',
223
+ projects,
224
+ defaultProject: projects[0]?.name,
225
+ };
226
+ }
227
+ catch {
228
+ return null;
229
+ }
230
+ }
231
+ /**
232
+ * Detect monorepo structure and build WorkspaceConfig.
233
+ * Checks: pnpm-workspace.yaml, turbo.json, nx.json, lerna.json
234
+ */
235
+ static fromMonorepo(dir) {
236
+ // Check for pnpm-workspace.yaml with packages
237
+ const pnpmWs = join(dir, 'pnpm-workspace.yaml');
238
+ if (existsSync(pnpmWs)) {
239
+ return WorkspaceManager.buildMonorepoConfig(dir, 'pnpm');
240
+ }
241
+ // Check for turbo.json
242
+ if (existsSync(join(dir, 'turbo.json'))) {
243
+ return WorkspaceManager.buildMonorepoConfig(dir, 'turborepo');
244
+ }
245
+ // Check for nx.json
246
+ if (existsSync(join(dir, 'nx.json'))) {
247
+ return WorkspaceManager.buildMonorepoConfig(dir, 'nx');
248
+ }
249
+ // Check for lerna.json
250
+ if (existsSync(join(dir, 'lerna.json'))) {
251
+ return WorkspaceManager.buildMonorepoConfig(dir, 'lerna');
252
+ }
253
+ return null;
254
+ }
255
+ /** Build config from monorepo by scanning packages/ and apps/ directories. */
256
+ static buildMonorepoConfig(dir, _tool) {
257
+ const projects = [];
258
+ // Scan common monorepo directories
259
+ for (const subdir of ['packages', 'apps', 'libs', 'services']) {
260
+ const fullPath = join(dir, subdir);
261
+ if (!existsSync(fullPath))
262
+ continue;
263
+ try {
264
+ const entries = readdirSync(fullPath);
265
+ for (const entry of entries) {
266
+ const entryPath = join(fullPath, entry);
267
+ if (!statSync(entryPath).isDirectory())
268
+ continue;
269
+ // Only include directories that have a package.json or .rulebook
270
+ if (existsSync(join(entryPath, 'package.json')) ||
271
+ existsSync(join(entryPath, '.rulebook'))) {
272
+ projects.push({
273
+ name: entry,
274
+ path: `./${subdir}/${entry}`,
275
+ });
276
+ }
277
+ }
278
+ }
279
+ catch {
280
+ // ignore read errors
281
+ }
282
+ }
283
+ if (projects.length === 0)
284
+ return null;
285
+ return {
286
+ name: basename(dir),
287
+ version: '1.0.0',
288
+ projects,
289
+ defaultProject: projects[0]?.name,
290
+ };
291
+ }
292
+ /**
293
+ * Walk up from `startDir` to find a workspace root directory.
294
+ * Returns `{ config, root }` or null if no workspace found.
295
+ */
296
+ static findWorkspaceFromCwd(startDir) {
297
+ let dir = resolve(startDir);
298
+ const root = resolve('/');
299
+ while (true) {
300
+ const config = WorkspaceManager.findWorkspaceConfig(dir);
301
+ if (config) {
302
+ return { config, root: dir };
303
+ }
304
+ const parent = dirname(dir);
305
+ if (parent === dir || parent === root)
306
+ break;
307
+ dir = parent;
308
+ }
309
+ return null;
310
+ }
311
+ /**
312
+ * Given a cwd, find the workspace and determine which project the cwd belongs to.
313
+ * Matches by checking if the cwd starts with the resolved project path.
314
+ * Returns `{ config, root, projectName }` or null.
315
+ */
316
+ static resolveProjectFromCwd(cwd) {
317
+ const ws = WorkspaceManager.findWorkspaceFromCwd(cwd);
318
+ if (!ws)
319
+ return null;
320
+ const resolved = resolve(cwd);
321
+ // Find the project whose resolved path is a prefix of cwd
322
+ for (const project of ws.config.projects) {
323
+ const projectRoot = isAbsolute(project.path)
324
+ ? resolve(project.path)
325
+ : resolve(ws.root, project.path);
326
+ if (resolved === projectRoot || resolved.startsWith(projectRoot + '/')) {
327
+ return { config: ws.config, root: ws.root, projectName: project.name };
328
+ }
329
+ }
330
+ // cwd is at the workspace root itself — use defaultProject if set
331
+ if (resolved === resolve(ws.root) && ws.config.defaultProject) {
332
+ return { config: ws.config, root: ws.root, projectName: ws.config.defaultProject };
333
+ }
334
+ return null;
335
+ }
336
+ }
337
+ //# sourceMappingURL=workspace-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../../src/core/workspace/workspace-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Workspace Type Definitions
3
+ *
4
+ * Types for multi-project workspace management.
5
+ * Supports monorepo, .code-workspace, and independent project layouts.
6
+ */
7
+ export interface WorkspaceConfig {
8
+ name: string;
9
+ version: string;
10
+ projects: WorkspaceProject[];
11
+ defaultProject?: string;
12
+ idleTimeoutMs?: number;
13
+ memory?: {
14
+ crossProjectSearch?: boolean;
15
+ };
16
+ }
17
+ export interface WorkspaceProject {
18
+ name: string;
19
+ path: string;
20
+ enabled?: boolean;
21
+ }
22
+ export interface WorkspaceStatus {
23
+ name: string;
24
+ projects: WorkspaceProjectStatus[];
25
+ activeWorkers: number;
26
+ totalProjects: number;
27
+ }
28
+ export interface WorkspaceProjectStatus {
29
+ name: string;
30
+ path: string;
31
+ workerActive: boolean;
32
+ hasRulebookConfig: boolean;
33
+ memoryEnabled: boolean;
34
+ taskCount: number;
35
+ lastAccessed?: number;
36
+ }
37
+ //# sourceMappingURL=workspace-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-types.d.ts","sourceRoot":"","sources":["../../../src/core/workspace/workspace-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Workspace Type Definitions
3
+ *
4
+ * Types for multi-project workspace management.
5
+ * Supports monorepo, .code-workspace, and independent project layouts.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=workspace-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-types.js","sourceRoot":"","sources":["../../../src/core/workspace/workspace-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/dist/index.js CHANGED
@@ -14,7 +14,9 @@ overrideShowCommand, overrideEditCommand, overrideClearCommand,
14
14
  // Review command (v4.0)
15
15
  reviewCommand,
16
16
  // Setup commands
17
- setupClaudeCodePlugin, migrateMemoryDirectory, } from './cli/commands.js';
17
+ setupClaudeCodePlugin, migrateMemoryDirectory,
18
+ // Workspace commands (v4.2)
19
+ workspaceInitCommand, workspaceAddCommand, workspaceRemoveCommand, workspaceListCommand, workspaceStatusCommand, } from './cli/commands.js';
18
20
  import { readFileSync } from 'fs';
19
21
  import { fileURLToPath } from 'url';
20
22
  import path from 'path';
@@ -123,25 +125,34 @@ const taskCommand = program.command('task').description('Manage Rulebook tasks')
123
125
  taskCommand
124
126
  .command('create <task-id>')
125
127
  .description('Create a new task')
126
- .action((taskId) => taskCreateCommand(taskId));
128
+ .option('--project <name>', 'Target a specific workspace project')
129
+ .action((taskId, options) => taskCreateCommand(taskId, { project: options.project }));
127
130
  taskCommand
128
131
  .command('list')
129
132
  .description('List all tasks')
130
133
  .option('--archived', 'Include archived tasks')
131
- .action((options) => taskListCommand(options.archived || false));
134
+ .option('--project <name>', 'Target a specific workspace project')
135
+ .option('--all-projects', 'List tasks from all workspace projects')
136
+ .action((options) => taskListCommand(options.archived || false, {
137
+ project: options.project,
138
+ allProjects: options.allProjects,
139
+ }));
132
140
  taskCommand
133
141
  .command('show <task-id>')
134
142
  .description('Show task details')
135
- .action((taskId) => taskShowCommand(taskId));
143
+ .option('--project <name>', 'Target a specific workspace project')
144
+ .action((taskId, options) => taskShowCommand(taskId, { project: options.project }));
136
145
  taskCommand
137
146
  .command('validate <task-id>')
138
147
  .description('Validate task format')
139
- .action((taskId) => taskValidateCommand(taskId));
148
+ .option('--project <name>', 'Target a specific workspace project')
149
+ .action((taskId, options) => taskValidateCommand(taskId, { project: options.project }));
140
150
  taskCommand
141
151
  .command('archive <task-id>')
142
152
  .description('Archive a completed task')
143
153
  .option('--skip-validation', 'Skip validation before archiving')
144
- .action((taskId, options) => taskArchiveCommand(taskId, options.skipValidation || false));
154
+ .option('--project <name>', 'Target a specific workspace project')
155
+ .action((taskId, options) => taskArchiveCommand(taskId, options.skipValidation || false, { project: options.project }));
145
156
  // Legacy tasks command (deprecated)
146
157
  program
147
158
  .command('tasks')
@@ -167,7 +178,8 @@ const mcpCommand = program.command('mcp').description('Manage Rulebook MCP serve
167
178
  mcpCommand
168
179
  .command('init')
169
180
  .description('Initialize MCP configuration in .rulebook and .cursor/mcp.json')
170
- .action(() => mcpInitCommand());
181
+ .option('--workspace', 'Configure MCP for workspace mode (multi-project)')
182
+ .action((options) => mcpInitCommand(options));
171
183
  program
172
184
  .command('mcp-server')
173
185
  .description('Start Rulebook MCP server for task management via MCP protocol (stdio transport)')
@@ -358,5 +370,29 @@ program
358
370
  .command('migrate:memory')
359
371
  .description('Migrate .rulebook-memory to .rulebook/memory structure')
360
372
  .action(() => migrateMemoryDirectory());
373
+ // Workspace commands (v4.2)
374
+ const workspaceCommand = program
375
+ .command('workspace')
376
+ .description('Manage multi-project workspace');
377
+ workspaceCommand
378
+ .command('init')
379
+ .description('Initialize workspace config (auto-detects monorepo, .code-workspace, etc.)')
380
+ .action(() => workspaceInitCommand());
381
+ workspaceCommand
382
+ .command('add <path>')
383
+ .description('Add a project to the workspace')
384
+ .action((projectPath) => workspaceAddCommand(projectPath));
385
+ workspaceCommand
386
+ .command('remove <name>')
387
+ .description('Remove a project from the workspace')
388
+ .action((name) => workspaceRemoveCommand(name));
389
+ workspaceCommand
390
+ .command('list')
391
+ .description('List all projects in the workspace')
392
+ .action(() => workspaceListCommand());
393
+ workspaceCommand
394
+ .command('status')
395
+ .description('Show detailed workspace status (workers, tasks, memory)')
396
+ .action(() => workspaceStatusCommand());
361
397
  program.parse(process.argv);
362
398
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}