@hivehub/rulebook 5.5.1 → 5.7.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 (342) hide show
  1. package/.claude/commands/rulebook-learn-capture.md +41 -48
  2. package/.claude/commands/rulebook-learn-list.md +13 -13
  3. package/README.md +332 -394
  4. package/dist/cli/commands/context-intelligence.d.ts +0 -1
  5. package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
  6. package/dist/cli/commands/context-intelligence.js +12 -33
  7. package/dist/cli/commands/context-intelligence.js.map +1 -1
  8. package/dist/cli/commands/index.d.ts +4 -7
  9. package/dist/cli/commands/index.d.ts.map +1 -1
  10. package/dist/cli/commands/index.js +4 -7
  11. package/dist/cli/commands/index.js.map +1 -1
  12. package/dist/cli/commands/init.d.ts.map +1 -1
  13. package/dist/cli/commands/init.js +40 -81
  14. package/dist/cli/commands/init.js.map +1 -1
  15. package/dist/cli/commands/mcp.d.ts +0 -1
  16. package/dist/cli/commands/mcp.d.ts.map +1 -1
  17. package/dist/cli/commands/mcp.js +1 -7
  18. package/dist/cli/commands/mcp.js.map +1 -1
  19. package/dist/cli/commands/memory.d.ts +7 -1
  20. package/dist/cli/commands/memory.d.ts.map +1 -1
  21. package/dist/cli/commands/memory.js +51 -57
  22. package/dist/cli/commands/memory.js.map +1 -1
  23. package/dist/cli/commands/misc.d.ts +1 -15
  24. package/dist/cli/commands/misc.d.ts.map +1 -1
  25. package/dist/cli/commands/misc.js +36 -215
  26. package/dist/cli/commands/misc.js.map +1 -1
  27. package/dist/cli/commands/plans.d.ts +0 -6
  28. package/dist/cli/commands/plans.d.ts.map +1 -1
  29. package/dist/cli/commands/plans.js +9 -77
  30. package/dist/cli/commands/plans.js.map +1 -1
  31. package/dist/cli/commands/skills.js +6 -6
  32. package/dist/cli/commands/skills.js.map +1 -1
  33. package/dist/cli/commands/task.js +4 -4
  34. package/dist/cli/commands/task.js.map +1 -1
  35. package/dist/cli/commands/update.d.ts.map +1 -1
  36. package/dist/cli/commands/update.js +122 -52
  37. package/dist/cli/commands/update.js.map +1 -1
  38. package/dist/cli/prompts.d.ts.map +1 -1
  39. package/dist/cli/prompts.js +1 -78
  40. package/dist/cli/prompts.js.map +1 -1
  41. package/dist/core/claude/claude-mcp.d.ts +59 -0
  42. package/dist/core/claude/claude-mcp.d.ts.map +1 -0
  43. package/dist/core/claude/claude-mcp.js +220 -0
  44. package/dist/core/claude/claude-mcp.js.map +1 -0
  45. package/dist/core/claude/claude-md-generator.d.ts +52 -0
  46. package/dist/core/claude/claude-md-generator.d.ts.map +1 -0
  47. package/dist/core/claude/claude-md-generator.js +104 -0
  48. package/dist/core/claude/claude-md-generator.js.map +1 -0
  49. package/dist/core/claude/claude-settings-manager.d.ts +44 -0
  50. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -0
  51. package/dist/core/claude/claude-settings-manager.js +194 -0
  52. package/dist/core/claude/claude-settings-manager.js.map +1 -0
  53. package/dist/core/claude-settings-manager.d.ts.map +1 -1
  54. package/dist/core/claude-settings-manager.js +9 -3
  55. package/dist/core/claude-settings-manager.js.map +1 -1
  56. package/dist/core/console/cli-bridge.d.ts +113 -0
  57. package/dist/core/console/cli-bridge.d.ts.map +1 -0
  58. package/dist/core/console/cli-bridge.js +1094 -0
  59. package/dist/core/console/cli-bridge.js.map +1 -0
  60. package/dist/core/detect/detector.d.ts +35 -0
  61. package/dist/core/detect/detector.d.ts.map +1 -0
  62. package/dist/core/detect/detector.js +541 -0
  63. package/dist/core/detect/detector.js.map +1 -0
  64. package/dist/core/docs/docs-generator.d.ts +9 -0
  65. package/dist/core/docs/docs-generator.d.ts.map +1 -0
  66. package/dist/core/docs/docs-generator.js +531 -0
  67. package/dist/core/docs/docs-generator.js.map +1 -0
  68. package/dist/core/docs/mcp-reference-generator.d.ts +13 -0
  69. package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -0
  70. package/dist/core/docs/mcp-reference-generator.js +66 -0
  71. package/dist/core/docs/mcp-reference-generator.js.map +1 -0
  72. package/dist/core/generators/generator.d.ts +54 -0
  73. package/dist/core/generators/generator.d.ts.map +1 -0
  74. package/dist/core/generators/generator.js +1041 -0
  75. package/dist/core/generators/generator.js.map +1 -0
  76. package/dist/core/generators/gitignore-generator.d.ts +13 -0
  77. package/dist/core/generators/gitignore-generator.d.ts.map +1 -0
  78. package/dist/core/generators/gitignore-generator.js +307 -0
  79. package/dist/core/generators/gitignore-generator.js.map +1 -0
  80. package/dist/core/generators/minimal-scaffolder.d.ts +8 -0
  81. package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -0
  82. package/dist/core/generators/minimal-scaffolder.js +51 -0
  83. package/dist/core/generators/minimal-scaffolder.js.map +1 -0
  84. package/dist/core/generators/rules-generator.d.ts +73 -0
  85. package/dist/core/generators/rules-generator.d.ts.map +1 -0
  86. package/dist/core/generators/rules-generator.js +202 -0
  87. package/dist/core/generators/rules-generator.js.map +1 -0
  88. package/dist/core/generators/workflow-generator.d.ts +15 -0
  89. package/dist/core/generators/workflow-generator.d.ts.map +1 -0
  90. package/dist/core/generators/workflow-generator.js +390 -0
  91. package/dist/core/generators/workflow-generator.js.map +1 -0
  92. package/dist/core/ide/multi-tool-generator.d.ts +59 -0
  93. package/dist/core/ide/multi-tool-generator.d.ts.map +1 -0
  94. package/dist/core/ide/multi-tool-generator.js +157 -0
  95. package/dist/core/ide/multi-tool-generator.js.map +1 -0
  96. package/dist/core/ide/opencode-generator.d.ts +72 -0
  97. package/dist/core/ide/opencode-generator.d.ts.map +1 -0
  98. package/dist/core/ide/opencode-generator.js +450 -0
  99. package/dist/core/ide/opencode-generator.js.map +1 -0
  100. package/dist/core/merger.d.ts +1 -1
  101. package/dist/core/merger.d.ts.map +1 -1
  102. package/dist/core/merger.js +5 -5
  103. package/dist/core/merger.js.map +1 -1
  104. package/dist/core/migrator.d.ts +0 -1
  105. package/dist/core/migrator.d.ts.map +1 -1
  106. package/dist/core/migrator.js +4 -29
  107. package/dist/core/migrator.js.map +1 -1
  108. package/dist/core/quality/coverage-checker.d.ts +14 -0
  109. package/dist/core/quality/coverage-checker.d.ts.map +1 -0
  110. package/dist/core/quality/coverage-checker.js +176 -0
  111. package/dist/core/quality/coverage-checker.js.map +1 -0
  112. package/dist/core/quality/dependency-checker.d.ts +21 -0
  113. package/dist/core/quality/dependency-checker.d.ts.map +1 -0
  114. package/dist/core/quality/dependency-checker.js +247 -0
  115. package/dist/core/quality/dependency-checker.js.map +1 -0
  116. package/dist/core/quality/doctor.d.ts +19 -0
  117. package/dist/core/quality/doctor.d.ts.map +1 -0
  118. package/dist/core/quality/doctor.js +163 -0
  119. package/dist/core/quality/doctor.js.map +1 -0
  120. package/dist/core/quality/validator.d.ts +21 -0
  121. package/dist/core/quality/validator.d.ts.map +1 -0
  122. package/dist/core/quality/validator.js +177 -0
  123. package/dist/core/quality/validator.js.map +1 -0
  124. package/dist/core/ralph-scripts.d.ts.map +1 -1
  125. package/dist/core/ralph-scripts.js +7 -6
  126. package/dist/core/ralph-scripts.js.map +1 -1
  127. package/dist/core/skills/skills-manager.d.ts +126 -0
  128. package/dist/core/skills/skills-manager.d.ts.map +1 -0
  129. package/dist/core/skills/skills-manager.js +630 -0
  130. package/dist/core/skills/skills-manager.js.map +1 -0
  131. package/dist/core/state/config-manager.d.ts +86 -0
  132. package/dist/core/state/config-manager.d.ts.map +1 -0
  133. package/dist/core/state/config-manager.js +562 -0
  134. package/dist/core/state/config-manager.js.map +1 -0
  135. package/dist/core/state/override-manager.d.ts +23 -0
  136. package/dist/core/state/override-manager.d.ts.map +1 -0
  137. package/dist/core/state/override-manager.js +82 -0
  138. package/dist/core/state/override-manager.js.map +1 -0
  139. package/dist/core/state/state-writer.d.ts +34 -0
  140. package/dist/core/state/state-writer.d.ts.map +1 -0
  141. package/dist/core/state/state-writer.js +78 -0
  142. package/dist/core/state/state-writer.js.map +1 -0
  143. package/dist/core/state/version-bumper.d.ts +19 -0
  144. package/dist/core/state/version-bumper.d.ts.map +1 -0
  145. package/dist/core/state/version-bumper.js +180 -0
  146. package/dist/core/state/version-bumper.js.map +1 -0
  147. package/dist/core/tasks/decision-manager.d.ts +25 -0
  148. package/dist/core/tasks/decision-manager.d.ts.map +1 -0
  149. package/dist/core/tasks/decision-manager.js +183 -0
  150. package/dist/core/tasks/decision-manager.js.map +1 -0
  151. package/dist/core/tasks/knowledge-manager.d.ts +24 -0
  152. package/dist/core/tasks/knowledge-manager.d.ts.map +1 -0
  153. package/dist/core/tasks/knowledge-manager.js +173 -0
  154. package/dist/core/tasks/knowledge-manager.js.map +1 -0
  155. package/dist/core/tasks/learn-manager.d.ts +27 -0
  156. package/dist/core/tasks/learn-manager.d.ts.map +1 -0
  157. package/dist/core/tasks/learn-manager.js +121 -0
  158. package/dist/core/tasks/learn-manager.js.map +1 -0
  159. package/dist/core/tasks/plans-manager.d.ts +46 -0
  160. package/dist/core/tasks/plans-manager.d.ts.map +1 -0
  161. package/dist/core/tasks/plans-manager.js +158 -0
  162. package/dist/core/tasks/plans-manager.js.map +1 -0
  163. package/dist/core/tasks/task-manager.d.ts +127 -0
  164. package/dist/core/tasks/task-manager.d.ts.map +1 -0
  165. package/dist/core/tasks/task-manager.js +607 -0
  166. package/dist/core/tasks/task-manager.js.map +1 -0
  167. package/dist/core/workspace/project-worker.d.ts +6 -6
  168. package/dist/core/workspace/project-worker.d.ts.map +1 -1
  169. package/dist/core/workspace/project-worker.js +6 -6
  170. package/dist/core/workspace/project-worker.js.map +1 -1
  171. package/dist/index.d.ts +1 -1
  172. package/dist/index.d.ts.map +1 -1
  173. package/dist/index.js +19 -176
  174. package/dist/index.js.map +1 -1
  175. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  176. package/dist/mcp/rulebook-server.js +16 -960
  177. package/dist/mcp/rulebook-server.js.map +1 -1
  178. package/dist/memory/file-search.d.ts +43 -0
  179. package/dist/memory/file-search.d.ts.map +1 -0
  180. package/dist/memory/file-search.js +228 -0
  181. package/dist/memory/file-search.js.map +1 -0
  182. package/dist/memory/file-store.d.ts +99 -0
  183. package/dist/memory/file-store.d.ts.map +1 -0
  184. package/dist/memory/file-store.js +615 -0
  185. package/dist/memory/file-store.js.map +1 -0
  186. package/dist/memory/legacy-migrator.d.ts +27 -0
  187. package/dist/memory/legacy-migrator.d.ts.map +1 -0
  188. package/dist/memory/legacy-migrator.js +185 -0
  189. package/dist/memory/legacy-migrator.js.map +1 -0
  190. package/dist/memory/memory-manager.d.ts +25 -24
  191. package/dist/memory/memory-manager.d.ts.map +1 -1
  192. package/dist/memory/memory-manager.js +97 -140
  193. package/dist/memory/memory-manager.js.map +1 -1
  194. package/dist/memory/memory-types.d.ts +1 -1
  195. package/dist/memory/memory-types.d.ts.map +1 -1
  196. package/dist/types.d.ts +8 -119
  197. package/dist/types.d.ts.map +1 -1
  198. package/dist/utils/file-system.d.ts +22 -0
  199. package/dist/utils/file-system.d.ts.map +1 -1
  200. package/dist/utils/file-system.js +31 -0
  201. package/dist/utils/file-system.js.map +1 -1
  202. package/dist/utils/git-hooks.d.ts.map +1 -1
  203. package/dist/utils/git-hooks.js +3 -2
  204. package/dist/utils/git-hooks.js.map +1 -1
  205. package/package.json +2 -6
  206. package/templates/agents/context-intelligence.md +50 -52
  207. package/templates/cli/OPENCODE.md +85 -18
  208. package/templates/commands/rulebook-learn-capture.md +41 -48
  209. package/templates/commands/rulebook-learn-list.md +13 -13
  210. package/templates/core/AGENTS_LEAN.md +0 -14
  211. package/templates/hooks/check-context-and-handoff.sh +74 -76
  212. package/templates/hooks/enforce-pre-tool.sh +70 -0
  213. package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
  214. package/templates/hooks/on-compact-reinject.sh +34 -34
  215. package/templates/hooks/resume-from-handoff.sh +61 -61
  216. package/templates/hooks/terse-activate.sh +197 -197
  217. package/templates/hooks/terse-mode-tracker.sh +190 -187
  218. package/templates/ides/OPENCODE.md +63 -0
  219. package/templates/skills/cli/opencode/SKILL.md +82 -28
  220. package/.claude/commands/ralph-config.md +0 -112
  221. package/.claude/commands/ralph-history.md +0 -110
  222. package/.claude/commands/ralph-init.md +0 -72
  223. package/.claude/commands/ralph-pause-resume.md +0 -105
  224. package/.claude/commands/ralph-run.md +0 -101
  225. package/.claude/commands/ralph-status.md +0 -76
  226. package/templates/core/RALPH.md +0 -471
  227. package/templates/frameworks/ANGULAR.md +0 -36
  228. package/templates/frameworks/DJANGO.md +0 -83
  229. package/templates/frameworks/ELECTRON.md +0 -147
  230. package/templates/frameworks/FLASK.md +0 -38
  231. package/templates/frameworks/FLUTTER.md +0 -55
  232. package/templates/frameworks/JQUERY.md +0 -32
  233. package/templates/frameworks/LARAVEL.md +0 -38
  234. package/templates/frameworks/NESTJS.md +0 -43
  235. package/templates/frameworks/NEXTJS.md +0 -127
  236. package/templates/frameworks/NUXT.md +0 -40
  237. package/templates/frameworks/RAILS.md +0 -66
  238. package/templates/frameworks/REACT.md +0 -38
  239. package/templates/frameworks/REACT_NATIVE.md +0 -47
  240. package/templates/frameworks/SPRING.md +0 -39
  241. package/templates/frameworks/SYMFONY.md +0 -36
  242. package/templates/frameworks/VUE.md +0 -36
  243. package/templates/frameworks/ZEND.md +0 -35
  244. package/templates/hooks/enforce-mcp-for-tasks.sh +0 -31
  245. package/templates/hooks/enforce-no-deferred.sh +0 -21
  246. package/templates/hooks/enforce-no-shortcuts.sh +0 -31
  247. package/templates/ides/COPILOT.md +0 -37
  248. package/templates/ides/CURSOR.md +0 -43
  249. package/templates/ides/JETBRAINS_AI.md +0 -35
  250. package/templates/ides/REPLIT.md +0 -36
  251. package/templates/ides/TABNINE.md +0 -29
  252. package/templates/ides/VSCODE.md +0 -40
  253. package/templates/ides/WINDSURF.md +0 -36
  254. package/templates/ides/ZED.md +0 -32
  255. package/templates/ides/cursor-mdc/go.mdc +0 -24
  256. package/templates/ides/cursor-mdc/python.mdc +0 -24
  257. package/templates/ides/cursor-mdc/quality.mdc +0 -25
  258. package/templates/ides/cursor-mdc/ralph.mdc +0 -39
  259. package/templates/ides/cursor-mdc/rulebook.mdc +0 -38
  260. package/templates/ides/cursor-mdc/rust.mdc +0 -24
  261. package/templates/ides/cursor-mdc/typescript.mdc +0 -25
  262. package/templates/ralph/ralph-history.bat +0 -4
  263. package/templates/ralph/ralph-history.sh +0 -5
  264. package/templates/ralph/ralph-init.bat +0 -5
  265. package/templates/ralph/ralph-init.sh +0 -5
  266. package/templates/ralph/ralph-pause.bat +0 -5
  267. package/templates/ralph/ralph-pause.sh +0 -5
  268. package/templates/ralph/ralph-run.bat +0 -5
  269. package/templates/ralph/ralph-run.sh +0 -5
  270. package/templates/ralph/ralph-status.bat +0 -4
  271. package/templates/ralph/ralph-status.sh +0 -5
  272. package/templates/services/AZURE_BLOB.md +0 -184
  273. package/templates/services/CASSANDRA.md +0 -239
  274. package/templates/services/DATADOG.md +0 -26
  275. package/templates/services/DOCKER.md +0 -124
  276. package/templates/services/DOCKER_COMPOSE.md +0 -168
  277. package/templates/services/DYNAMODB.md +0 -308
  278. package/templates/services/ELASTICSEARCH.md +0 -347
  279. package/templates/services/GCS.md +0 -178
  280. package/templates/services/HELM.md +0 -194
  281. package/templates/services/INFLUXDB.md +0 -265
  282. package/templates/services/KAFKA.md +0 -341
  283. package/templates/services/KUBERNETES.md +0 -208
  284. package/templates/services/MARIADB.md +0 -183
  285. package/templates/services/MEMCACHED.md +0 -242
  286. package/templates/services/MINIO.md +0 -201
  287. package/templates/services/MONGODB.md +0 -268
  288. package/templates/services/MYSQL.md +0 -358
  289. package/templates/services/NEO4J.md +0 -247
  290. package/templates/services/OPENTELEMETRY.md +0 -25
  291. package/templates/services/ORACLE.md +0 -290
  292. package/templates/services/PINO.md +0 -24
  293. package/templates/services/POSTGRESQL.md +0 -326
  294. package/templates/services/PROMETHEUS.md +0 -33
  295. package/templates/services/RABBITMQ.md +0 -286
  296. package/templates/services/REDIS.md +0 -292
  297. package/templates/services/S3.md +0 -298
  298. package/templates/services/SENTRY.md +0 -23
  299. package/templates/services/SQLITE.md +0 -294
  300. package/templates/services/SQLSERVER.md +0 -294
  301. package/templates/services/WINSTON.md +0 -30
  302. package/templates/skills/frameworks/angular/SKILL.md +0 -46
  303. package/templates/skills/frameworks/django/SKILL.md +0 -93
  304. package/templates/skills/frameworks/electron/SKILL.md +0 -157
  305. package/templates/skills/frameworks/flask/SKILL.md +0 -48
  306. package/templates/skills/frameworks/flutter/SKILL.md +0 -65
  307. package/templates/skills/frameworks/jquery/SKILL.md +0 -42
  308. package/templates/skills/frameworks/laravel/SKILL.md +0 -48
  309. package/templates/skills/frameworks/nestjs/SKILL.md +0 -53
  310. package/templates/skills/frameworks/nextjs/SKILL.md +0 -137
  311. package/templates/skills/frameworks/nuxt/SKILL.md +0 -50
  312. package/templates/skills/frameworks/rails/SKILL.md +0 -76
  313. package/templates/skills/frameworks/react/SKILL.md +0 -48
  314. package/templates/skills/frameworks/react-native/SKILL.md +0 -57
  315. package/templates/skills/frameworks/spring/SKILL.md +0 -49
  316. package/templates/skills/frameworks/symfony/SKILL.md +0 -46
  317. package/templates/skills/frameworks/vue/SKILL.md +0 -46
  318. package/templates/skills/frameworks/zend/SKILL.md +0 -45
  319. package/templates/skills/services/azure-blob/SKILL.md +0 -194
  320. package/templates/skills/services/cassandra/SKILL.md +0 -249
  321. package/templates/skills/services/dynamodb/SKILL.md +0 -318
  322. package/templates/skills/services/elasticsearch/SKILL.md +0 -357
  323. package/templates/skills/services/gcs/SKILL.md +0 -188
  324. package/templates/skills/services/influxdb/SKILL.md +0 -275
  325. package/templates/skills/services/kafka/SKILL.md +0 -351
  326. package/templates/skills/services/mariadb/SKILL.md +0 -193
  327. package/templates/skills/services/memcached/SKILL.md +0 -252
  328. package/templates/skills/services/minio/SKILL.md +0 -211
  329. package/templates/skills/services/mongodb/SKILL.md +0 -278
  330. package/templates/skills/services/mysql/SKILL.md +0 -368
  331. package/templates/skills/services/neo4j/SKILL.md +0 -257
  332. package/templates/skills/services/oracle/SKILL.md +0 -300
  333. package/templates/skills/services/postgresql/SKILL.md +0 -336
  334. package/templates/skills/services/rabbitmq/SKILL.md +0 -296
  335. package/templates/skills/services/redis/SKILL.md +0 -302
  336. package/templates/skills/services/s3/SKILL.md +0 -308
  337. package/templates/skills/services/sqlite/SKILL.md +0 -304
  338. package/templates/skills/services/sqlserver/SKILL.md +0 -304
  339. package/templates/skills/workflows/ralph/SETUP.md +0 -228
  340. package/templates/skills/workflows/ralph/SKILL.md +0 -309
  341. package/templates/skills/workflows/ralph/install.sh +0 -87
  342. package/templates/skills/workflows/ralph/manifest.json +0 -158
@@ -0,0 +1,607 @@
1
+ import { writeFile as fsWriteFile, existsSync, mkdirSync, readdirSync, statSync } from 'fs';
2
+ import { promisify } from 'util';
3
+ import { join } from 'path';
4
+ import { fileExists, readFile as readFileUtil, writeFile as writeFileUtil, } from '../../utils/file-system.js';
5
+ const writeFileAsync = promisify(fsWriteFile);
6
+ const TASKS_DIR = 'tasks';
7
+ const ARCHIVE_DIR = 'archive';
8
+ const SPECS_DIR = 'specs';
9
+ const README_FILE = 'README.md';
10
+ /**
11
+ * Regex for phase-based task naming: phase<number>[subletter]_<version>-<description>
12
+ * Examples: phase0_3.1.0-volumetric-clouds, phase3a_3.24.0-lens-flare
13
+ */
14
+ const PHASE_PREFIX_REGEX = /^phase\d+[a-z]?_/;
15
+ /**
16
+ * v5.3.0 F-NEW-3 — mandatory task tail.
17
+ *
18
+ * Every task MUST end with these three items. `createTask()` appends them
19
+ * automatically; `validateTask()` refuses any task that does not have them
20
+ * all checked; `archiveTask()` propagates that refusal.
21
+ *
22
+ * Idempotent: `renderMandatoryTail` is deterministic and `checkMandatoryTail`
23
+ * is case-insensitive on the leading verb so a user who rewords the items
24
+ * slightly (e.g. "Update docs covering the change") is still recognized.
25
+ */
26
+ export const MANDATORY_TAIL_ITEMS = [
27
+ {
28
+ label: 'Update or create documentation covering the implementation',
29
+ match: /^\s*-\s*\[[ x]\]\s.*(update|create).*documentation/i,
30
+ },
31
+ { label: 'Write tests covering the new behavior', match: /^\s*-\s*\[[ x]\]\s.*write.*tests?/i },
32
+ {
33
+ label: 'Run tests and confirm they pass',
34
+ match: /^\s*-\s*\[[ x]\]\s.*run.*tests?.*(pass|confirm)/i,
35
+ },
36
+ ];
37
+ export function renderMandatoryTail(sectionNumber) {
38
+ return [
39
+ `## ${sectionNumber}. Tail (mandatory — enforced by rulebook v5.3.0)`,
40
+ `- [ ] ${sectionNumber}.1 Update or create documentation covering the implementation`,
41
+ `- [ ] ${sectionNumber}.2 Write tests covering the new behavior`,
42
+ `- [ ] ${sectionNumber}.3 Run tests and confirm they pass`,
43
+ '',
44
+ ].join('\n');
45
+ }
46
+ export function checkMandatoryTail(tasksContent) {
47
+ const lines = tasksContent.split('\n');
48
+ const missing = [];
49
+ const unchecked = [];
50
+ for (const item of MANDATORY_TAIL_ITEMS) {
51
+ const matched = lines.find((line) => item.match.test(line));
52
+ if (!matched) {
53
+ missing.push(item.label);
54
+ continue;
55
+ }
56
+ // Checked if the line contains `[x]` or `[X]`; unchecked otherwise.
57
+ if (!/\[x\]/i.test(matched)) {
58
+ unchecked.push(item.label);
59
+ }
60
+ }
61
+ return {
62
+ present: missing.length === 0,
63
+ missing,
64
+ unchecked,
65
+ };
66
+ }
67
+ export class TaskManager {
68
+ rulebookPath;
69
+ tasksPath;
70
+ archivePath;
71
+ constructor(projectRoot, rulebookDir = '.rulebook') {
72
+ this.rulebookPath = join(projectRoot, rulebookDir);
73
+ this.tasksPath = join(this.rulebookPath, TASKS_DIR);
74
+ this.archivePath = join(this.rulebookPath, ARCHIVE_DIR);
75
+ }
76
+ /**
77
+ * Initialize Rulebook tasks directory structure
78
+ */
79
+ async initialize() {
80
+ if (!existsSync(this.rulebookPath)) {
81
+ mkdirSync(this.rulebookPath, { recursive: true });
82
+ }
83
+ if (!existsSync(this.tasksPath)) {
84
+ mkdirSync(this.tasksPath, { recursive: true });
85
+ }
86
+ if (!existsSync(this.archivePath)) {
87
+ mkdirSync(this.archivePath, { recursive: true });
88
+ }
89
+ // Auto-migrate legacy archive from tasks/archive to .rulebook/archive
90
+ await this.migrateArchive();
91
+ }
92
+ /**
93
+ * Get the path to a task directory
94
+ */
95
+ getTaskPath(taskId) {
96
+ return join(this.tasksPath, taskId);
97
+ }
98
+ /**
99
+ * Validate task ID follows phase naming convention: phase<x>_<description>
100
+ */
101
+ validateTaskId(taskId) {
102
+ if (!PHASE_PREFIX_REGEX.test(taskId)) {
103
+ return {
104
+ valid: false,
105
+ error: `Task ID "${taskId}" must start with a phase prefix (e.g., phase0_, phase1_, phase2a_). Example: phase1_add-user-auth`,
106
+ };
107
+ }
108
+ return { valid: true };
109
+ }
110
+ /**
111
+ * Extract phase number from task ID for sorting
112
+ */
113
+ extractPhase(taskId) {
114
+ const match = taskId.match(/^phase(\d+)([a-z])?_/);
115
+ if (!match)
116
+ return { phase: Infinity, subletter: '' };
117
+ return { phase: parseInt(match[1], 10), subletter: match[2] || '' };
118
+ }
119
+ /**
120
+ * Create a new task
121
+ */
122
+ async createTask(taskId) {
123
+ await this.initialize();
124
+ // Validate phase naming convention
125
+ const nameValidation = this.validateTaskId(taskId);
126
+ if (!nameValidation.valid) {
127
+ throw new Error(nameValidation.error);
128
+ }
129
+ const taskPath = join(this.tasksPath, taskId);
130
+ if (existsSync(taskPath)) {
131
+ throw new Error(`Task ${taskId} already exists`);
132
+ }
133
+ mkdirSync(taskPath, { recursive: true });
134
+ mkdirSync(join(taskPath, SPECS_DIR), { recursive: true });
135
+ // Create proposal.md template
136
+ const proposalContent = `# Proposal: ${taskId}
137
+
138
+ ## Why
139
+ [Explain why this change is needed - minimum 20 characters]
140
+
141
+ ## What Changes
142
+ [Describe what will change]
143
+
144
+ ## Impact
145
+ - Affected specs: [list]
146
+ - Affected code: [list]
147
+ - Breaking change: YES/NO
148
+ - User benefit: [describe]
149
+ `;
150
+ await writeFileAsync(join(taskPath, 'proposal.md'), proposalContent);
151
+ // Create tasks.md template — the MANDATORY tail items (v5.3.0 F-NEW-3)
152
+ // are appended automatically here AND enforced by validateTask() /
153
+ // archiveTask(): a task cannot be closed unless docs are updated,
154
+ // tests are written, and tests pass.
155
+ const tasksContent = `## 1. Implementation
156
+ - [ ] 1.1 First task
157
+ - [ ] 1.2 Second task
158
+
159
+ ${renderMandatoryTail(2)}`;
160
+ await writeFileAsync(join(taskPath, 'tasks.md'), tasksContent);
161
+ // Create .metadata.json with initial status
162
+ const now = new Date().toISOString();
163
+ const metadata = {
164
+ status: 'pending',
165
+ createdAt: now,
166
+ updatedAt: now,
167
+ };
168
+ await writeFileAsync(join(taskPath, '.metadata.json'), JSON.stringify(metadata, null, 2));
169
+ // Update tasks README index + STATE.md
170
+ await this.updateReadme();
171
+ await this.refreshState();
172
+ }
173
+ /**
174
+ * Generate and update README.md index in the tasks root directory.
175
+ * Groups tasks by phase and shows status, description, and progress.
176
+ */
177
+ async updateReadme() {
178
+ const tasks = await this.listTasks(false);
179
+ // Sort tasks by phase, then by subletter, then alphabetically
180
+ tasks.sort((a, b) => {
181
+ const phaseA = this.extractPhase(a.id);
182
+ const phaseB = this.extractPhase(b.id);
183
+ if (phaseA.phase !== phaseB.phase)
184
+ return phaseA.phase - phaseB.phase;
185
+ if (phaseA.subletter !== phaseB.subletter)
186
+ return phaseA.subletter.localeCompare(phaseB.subletter);
187
+ return a.id.localeCompare(b.id);
188
+ });
189
+ // Group by phase
190
+ const phases = new Map();
191
+ for (const task of tasks) {
192
+ const match = task.id.match(/^(phase\d+[a-z]?)_/);
193
+ const phaseKey = match ? match[1] : 'unphased';
194
+ if (!phases.has(phaseKey))
195
+ phases.set(phaseKey, []);
196
+ phases.get(phaseKey).push(task);
197
+ }
198
+ // Calculate progress for each task from tasks.md checklist
199
+ const getProgress = (task) => {
200
+ if (!task.tasks)
201
+ return { done: 0, total: 0 };
202
+ const checked = (task.tasks.match(/- \[x\]/gi) || []).length;
203
+ const unchecked = (task.tasks.match(/- \[ \]/g) || []).length;
204
+ return { done: checked, total: checked + unchecked };
205
+ };
206
+ const statusIcon = (status) => {
207
+ switch (status) {
208
+ case 'completed':
209
+ return '✅';
210
+ case 'in-progress':
211
+ return '🔄';
212
+ case 'blocked':
213
+ return '🚫';
214
+ default:
215
+ return '⬚';
216
+ }
217
+ };
218
+ let readme = `# Tasks Index\n\n`;
219
+ readme += `> Auto-generated by rulebook. Do not edit manually.\n\n`;
220
+ const totalTasks = tasks.length;
221
+ const completedTasks = tasks.filter((t) => t.status === 'completed').length;
222
+ const inProgressTasks = tasks.filter((t) => t.status === 'in-progress').length;
223
+ readme += `**Total**: ${totalTasks} tasks | **Completed**: ${completedTasks} | **In Progress**: ${inProgressTasks} | **Pending**: ${totalTasks - completedTasks - inProgressTasks}\n\n`;
224
+ for (const [phaseKey, phaseTasks] of phases) {
225
+ readme += `## ${phaseKey}\n\n`;
226
+ readme += `| Status | Task | Progress | Description |\n`;
227
+ readme += `|--------|------|----------|-------------|\n`;
228
+ for (const task of phaseTasks) {
229
+ const progress = getProgress(task);
230
+ const progressStr = progress.total > 0 ? `${progress.done}/${progress.total}` : '-';
231
+ // Extract short description from task ID (after phase prefix)
232
+ const desc = task.id.replace(/^phase\d+[a-z]?_/, '').replace(/-/g, ' ');
233
+ readme += `| ${statusIcon(task.status)} | ${task.id} | ${progressStr} | ${desc} |\n`;
234
+ }
235
+ readme += `\n`;
236
+ }
237
+ await writeFileUtil(join(this.tasksPath, README_FILE), readme);
238
+ }
239
+ /**
240
+ * Migrate archive directory from legacy location (tasks/archive) to new location (.rulebook/archive)
241
+ */
242
+ async migrateArchive() {
243
+ const legacyArchivePath = join(this.tasksPath, ARCHIVE_DIR);
244
+ if (!existsSync(legacyArchivePath) || !statSync(legacyArchivePath).isDirectory()) {
245
+ return false;
246
+ }
247
+ // Already migrated — new archive path exists and legacy also exists
248
+ if (!existsSync(this.archivePath)) {
249
+ mkdirSync(this.archivePath, { recursive: true });
250
+ }
251
+ // Move each archived task from legacy to new location
252
+ const entries = readdirSync(legacyArchivePath, { withFileTypes: true });
253
+ const { renameSync } = await import('fs');
254
+ for (const entry of entries) {
255
+ if (entry.isDirectory()) {
256
+ const src = join(legacyArchivePath, entry.name);
257
+ const dest = join(this.archivePath, entry.name);
258
+ if (!existsSync(dest)) {
259
+ renameSync(src, dest);
260
+ }
261
+ }
262
+ }
263
+ // Remove legacy archive directory if empty
264
+ const remaining = readdirSync(legacyArchivePath);
265
+ if (remaining.length === 0) {
266
+ const { rmdirSync } = await import('fs');
267
+ rmdirSync(legacyArchivePath);
268
+ }
269
+ return true;
270
+ }
271
+ /**
272
+ * List all tasks
273
+ */
274
+ async listTasks(includeArchived = false) {
275
+ await this.initialize();
276
+ const tasks = [];
277
+ // List active tasks
278
+ if (existsSync(this.tasksPath)) {
279
+ const entries = readdirSync(this.tasksPath, { withFileTypes: true });
280
+ for (const entry of entries) {
281
+ if (entry.isDirectory() && entry.name !== ARCHIVE_DIR) {
282
+ const task = await this.loadTask(entry.name);
283
+ if (task) {
284
+ tasks.push(task);
285
+ }
286
+ }
287
+ }
288
+ }
289
+ // List archived tasks if requested
290
+ if (includeArchived && existsSync(this.archivePath)) {
291
+ const archiveEntries = readdirSync(this.archivePath, { withFileTypes: true });
292
+ for (const entry of archiveEntries) {
293
+ if (entry.isDirectory()) {
294
+ const task = await this.loadTask(entry.name, true);
295
+ if (task) {
296
+ // Extract date from archive name (YYYY-MM-DD-task-id format)
297
+ const dateMatch = entry.name.match(/^(\d{4}-\d{2}-\d{2})-/);
298
+ if (dateMatch) {
299
+ task.archivedAt = dateMatch[1];
300
+ }
301
+ else {
302
+ task.archivedAt = new Date().toISOString().split('T')[0];
303
+ }
304
+ tasks.push(task);
305
+ }
306
+ }
307
+ }
308
+ }
309
+ return tasks;
310
+ }
311
+ /**
312
+ * Load a task by ID
313
+ */
314
+ async loadTask(taskId, archived = false) {
315
+ const basePath = archived ? this.archivePath : this.tasksPath;
316
+ const taskPath = join(basePath, taskId);
317
+ if (!existsSync(taskPath)) {
318
+ return null;
319
+ }
320
+ const proposalPath = join(taskPath, 'proposal.md');
321
+ const tasksPath = join(taskPath, 'tasks.md');
322
+ const designPath = join(taskPath, 'design.md');
323
+ const specsPath = join(taskPath, SPECS_DIR);
324
+ const metadataPath = join(taskPath, '.metadata.json');
325
+ // Extract original task ID from archive name if archived (YYYY-MM-DD-task-id format)
326
+ let originalTaskId = taskId;
327
+ if (archived) {
328
+ const dateMatch = taskId.match(/^(\d{4}-\d{2}-\d{2})-(.+)$/);
329
+ if (dateMatch) {
330
+ originalTaskId = dateMatch[2];
331
+ }
332
+ }
333
+ const task = {
334
+ id: originalTaskId,
335
+ title: originalTaskId,
336
+ status: 'pending',
337
+ createdAt: new Date().toISOString(),
338
+ updatedAt: new Date().toISOString(),
339
+ specs: {},
340
+ };
341
+ // Load metadata (status, dates, etc.)
342
+ if (await fileExists(metadataPath)) {
343
+ try {
344
+ const metadata = JSON.parse(await readFileUtil(metadataPath));
345
+ if (metadata.status)
346
+ task.status = metadata.status;
347
+ if (metadata.createdAt)
348
+ task.createdAt = metadata.createdAt;
349
+ if (metadata.updatedAt)
350
+ task.updatedAt = metadata.updatedAt;
351
+ }
352
+ catch {
353
+ // Ignore invalid metadata
354
+ }
355
+ }
356
+ // Load proposal
357
+ if (await fileExists(proposalPath)) {
358
+ task.proposal = await readFileUtil(proposalPath);
359
+ }
360
+ // Load tasks
361
+ if (await fileExists(tasksPath)) {
362
+ task.tasks = await readFileUtil(tasksPath);
363
+ }
364
+ // Load design
365
+ if (await fileExists(designPath)) {
366
+ task.design = await readFileUtil(designPath);
367
+ }
368
+ // Load specs
369
+ if (existsSync(specsPath)) {
370
+ const specEntries = readdirSync(specsPath, { withFileTypes: true });
371
+ for (const specEntry of specEntries) {
372
+ if (specEntry.isDirectory()) {
373
+ const specFile = join(specsPath, specEntry.name, 'spec.md');
374
+ if (await fileExists(specFile)) {
375
+ task.specs[specEntry.name] = await readFileUtil(specFile);
376
+ }
377
+ }
378
+ }
379
+ }
380
+ // Fallback to file stats for dates if metadata doesn't exist
381
+ if (!(await fileExists(metadataPath))) {
382
+ try {
383
+ const stats = statSync(taskPath);
384
+ task.createdAt = stats.birthtime.toISOString();
385
+ task.updatedAt = stats.mtime.toISOString();
386
+ }
387
+ catch {
388
+ // Use defaults if stats fail
389
+ }
390
+ }
391
+ return task;
392
+ }
393
+ /**
394
+ * Validate task format
395
+ */
396
+ async validateTask(taskId) {
397
+ const task = await this.loadTask(taskId);
398
+ if (!task) {
399
+ return {
400
+ valid: false,
401
+ errors: [`Task ${taskId} not found`],
402
+ warnings: [],
403
+ };
404
+ }
405
+ const errors = [];
406
+ const warnings = [];
407
+ // Validate proposal
408
+ if (!task.proposal) {
409
+ errors.push('Missing proposal.md');
410
+ }
411
+ else {
412
+ // Check Purpose section (minimum 20 characters)
413
+ const purposeMatch = task.proposal.match(/## Why\s*\n([\s\S]*?)(?=\n##|$)/);
414
+ if (!purposeMatch || purposeMatch[1].trim().length < 20) {
415
+ errors.push('Purpose section (## Why) must have at least 20 characters');
416
+ }
417
+ }
418
+ // v5.3.0 F-NEW-3: mandatory task tail (docs + tests + verify)
419
+ const tail = task.tasks
420
+ ? checkMandatoryTail(task.tasks)
421
+ : { present: false, missing: MANDATORY_TAIL_ITEMS.map((i) => i.label), unchecked: [] };
422
+ if (!tail.present) {
423
+ errors.push(`Mandatory task tail missing from tasks.md (required in v5.3.0): ${tail.missing.join(', ')}`);
424
+ }
425
+ else if (tail.unchecked.length > 0) {
426
+ errors.push(`Mandatory task tail items are still unchecked: ${tail.unchecked.join(', ')}`);
427
+ }
428
+ // Validate specs
429
+ if (!task.specs || Object.keys(task.specs).length === 0) {
430
+ warnings.push('No spec files found (specs/*/spec.md)');
431
+ }
432
+ else {
433
+ for (const [module, specContent] of Object.entries(task.specs)) {
434
+ // Check for requirements with SHALL/MUST
435
+ const requirementMatches = specContent.match(/### Requirement:.*/g) || [];
436
+ for (const req of requirementMatches) {
437
+ const reqText = specContent.substring(specContent.indexOf(req));
438
+ const reqBody = reqText.split('\n').slice(1).join('\n').split('####')[0];
439
+ if (!reqBody.match(/\b(SHALL|MUST)\b/i)) {
440
+ errors.push(`Requirement in ${module}/spec.md missing SHALL or MUST keyword: ${req}`);
441
+ }
442
+ }
443
+ // Check for scenarios with 4 hashtags (not 3)
444
+ // Only check at start of line (not in text content)
445
+ const scenario3Matches = specContent.match(/^### Scenario:/gm) || [];
446
+ if (scenario3Matches.length > 0) {
447
+ errors.push(`Scenarios in ${module}/spec.md must use 4 hashtags (####), not 3 (###)`);
448
+ }
449
+ // Check for Given/When/Then structure
450
+ const scenarios = specContent.match(/#### Scenario:[\s\S]*?(?=####|##|$)/g) || [];
451
+ for (const scenario of scenarios) {
452
+ const hasGiven = /Given/i.test(scenario);
453
+ const hasWhen = /When/i.test(scenario);
454
+ const hasThen = /Then/i.test(scenario);
455
+ if (!hasGiven || !hasWhen || !hasThen) {
456
+ warnings.push(`Scenario in ${module}/spec.md should use Given/When/Then structure`);
457
+ }
458
+ }
459
+ }
460
+ }
461
+ return {
462
+ valid: errors.length === 0,
463
+ errors,
464
+ warnings,
465
+ };
466
+ }
467
+ /**
468
+ * Archive a completed task
469
+ */
470
+ async archiveTask(taskId, skipValidation = false) {
471
+ const task = await this.loadTask(taskId);
472
+ if (!task) {
473
+ throw new Error(`Task ${taskId} not found`);
474
+ }
475
+ // Validate before archiving (unless skipped)
476
+ if (!skipValidation) {
477
+ const validation = await this.validateTask(taskId);
478
+ if (!validation.valid) {
479
+ throw new Error(`Task validation failed:\n${validation.errors.join('\n')}`);
480
+ }
481
+ }
482
+ const taskPath = join(this.tasksPath, taskId);
483
+ const archiveDate = new Date().toISOString().split('T')[0];
484
+ const archiveName = `${archiveDate}-${taskId}`;
485
+ const archiveTaskPath = join(this.archivePath, archiveName);
486
+ // Ensure archive directory exists
487
+ if (!existsSync(this.archivePath)) {
488
+ mkdirSync(this.archivePath, { recursive: true });
489
+ }
490
+ if (existsSync(archiveTaskPath)) {
491
+ throw new Error(`Archive ${archiveName} already exists`);
492
+ }
493
+ // Move task to archive using cross-platform filesystem operations
494
+ const { renameSync } = await import('fs');
495
+ renameSync(taskPath, archiveTaskPath);
496
+ // Update tasks README index + STATE.md
497
+ await this.updateReadme();
498
+ await this.refreshState();
499
+ }
500
+ /**
501
+ * Update task status
502
+ */
503
+ async updateTaskStatus(taskId, status) {
504
+ const task = await this.loadTask(taskId);
505
+ if (!task) {
506
+ throw new Error(`Task ${taskId} not found`);
507
+ }
508
+ task.status = status;
509
+ task.updatedAt = new Date().toISOString();
510
+ // Persist status to .metadata.json
511
+ const taskPath = join(this.tasksPath, taskId);
512
+ const metadataPath = join(taskPath, '.metadata.json');
513
+ const metadata = {
514
+ status: task.status,
515
+ createdAt: task.createdAt,
516
+ updatedAt: task.updatedAt,
517
+ };
518
+ await writeFileUtil(metadataPath, JSON.stringify(metadata, null, 2));
519
+ // Update tasks README index + STATE.md
520
+ await this.updateReadme();
521
+ await this.refreshState();
522
+ }
523
+ /**
524
+ * v5.3.0 F3: refresh .rulebook/STATE.md after task state changes.
525
+ */
526
+ async refreshState() {
527
+ try {
528
+ const { writeState } = await import('../state/state-writer.js');
529
+ const tasks = await this.listTasks(false);
530
+ const active = tasks.find((t) => t.status === 'in-progress') ??
531
+ tasks.find((t) => t.status === 'pending') ??
532
+ null;
533
+ const totalItems = tasks.reduce((n, t) => {
534
+ const m = t.tasks?.match(/- \[x\]/gi);
535
+ const u = t.tasks?.match(/- \[ \]/g);
536
+ return n + (m?.length ?? 0) + (u?.length ?? 0);
537
+ }, 0);
538
+ const checkedItems = tasks.reduce((n, t) => {
539
+ const m = t.tasks?.match(/- \[x\]/gi);
540
+ return n + (m?.length ?? 0);
541
+ }, 0);
542
+ await writeState(join(this.rulebookPath, '..'), {
543
+ activeTask: active
544
+ ? {
545
+ id: active.id,
546
+ phase: active.id.match(/^(phase\d+[a-z]?)_/)?.[1] ?? '?',
547
+ progress: `${checkedItems}/${totalItems} items`,
548
+ }
549
+ : null,
550
+ updatedAt: new Date().toISOString(),
551
+ });
552
+ }
553
+ catch {
554
+ // Non-fatal — STATE.md refresh must never break task operations
555
+ }
556
+ }
557
+ /**
558
+ * Get raw task metadata (including blocks/blockedBy/cascadeImpact for v5 blocker tracking)
559
+ */
560
+ async getTaskMetadata(taskId) {
561
+ const taskPath = join(this.tasksPath, taskId);
562
+ const metadataPath = join(taskPath, '.metadata.json');
563
+ if (!(await fileExists(metadataPath)))
564
+ return null;
565
+ try {
566
+ return JSON.parse(await readFileUtil(metadataPath));
567
+ }
568
+ catch {
569
+ return null;
570
+ }
571
+ }
572
+ /**
573
+ * Show task details
574
+ */
575
+ async showTask(taskId) {
576
+ // Try active tasks first
577
+ let task = await this.loadTask(taskId, false);
578
+ if (task) {
579
+ return task;
580
+ }
581
+ // Try archived tasks
582
+ task = await this.loadTask(taskId, true);
583
+ if (task) {
584
+ task.archivedAt = taskId.split('-').slice(0, 3).join('-'); // Extract date from task ID
585
+ return task;
586
+ }
587
+ return null;
588
+ }
589
+ /**
590
+ * Delete a task permanently
591
+ */
592
+ async deleteTask(taskId) {
593
+ const taskPath = join(this.tasksPath, taskId);
594
+ if (!existsSync(taskPath)) {
595
+ throw new Error(`Task ${taskId} not found`);
596
+ }
597
+ // Remove task directory recursively
598
+ const { rmSync } = await import('fs');
599
+ rmSync(taskPath, { recursive: true, force: true });
600
+ // Update tasks README index
601
+ await this.updateReadme();
602
+ }
603
+ }
604
+ export function createTaskManager(projectRoot, rulebookDir = '.rulebook') {
605
+ return new TaskManager(projectRoot, rulebookDir);
606
+ }
607
+ //# sourceMappingURL=task-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../../src/core/tasks/task-manager.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,12 @@
4
4
  * Lazy-initialized: managers are created on first access.
5
5
  * Tracks idle time for lifecycle management.
6
6
  */
7
- import { TaskManager } from '../task-manager.js';
8
- import { ConfigManager } from '../config-manager.js';
9
- import { SkillsManager } from '../skills-manager.js';
10
- import { DecisionManager } from '../decision-manager.js';
11
- import { KnowledgeManager } from '../knowledge-manager.js';
12
- import { LearnManager } from '../learn-manager.js';
7
+ import { TaskManager } from '../tasks/task-manager.js';
8
+ import { ConfigManager } from '../state/config-manager.js';
9
+ import { SkillsManager } from '../skills/skills-manager.js';
10
+ import { DecisionManager } from '../tasks/decision-manager.js';
11
+ import { KnowledgeManager } from '../tasks/knowledge-manager.js';
12
+ import { LearnManager } from '../tasks/learn-manager.js';
13
13
  import type { RulebookConfig } from '../../types.js';
14
14
  export declare class ProjectWorker {
15
15
  readonly projectId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"project-worker.d.ts","sourceRoot":"","sources":["../../../src/core/workspace/project-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,qBAAa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAEL;IAChB,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAA+B;gBAE1C,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKlD,uDAAuD;IACvD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,6DAA6D;IAC7D,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAIb,wEAAwE;IACxE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC,+DAA+D;IACzD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B,2EAA2E;IAC3E,cAAc,IAAI,WAAW;IAM7B,gEAAgE;IAChE,gBAAgB,IAAI,OAAO,IAAI,CAAC,aAAa;IAK7C,6EAA6E;IAC7E,gBAAgB,IAAI,aAAa;IAMjC,6EAA6E;IAC7E,gBAAgB,IAAI,aAAa;IAMjC,kBAAkB,IAAI,eAAe;IAMrC,mBAAmB,IAAI,gBAAgB;IAMvC,eAAe,IAAI,YAAY;IAM/B,qEAAqE;IACrE,iBAAiB,IAAI,cAAc,GAAG,IAAI;CAG3C"}
1
+ {"version":3,"file":"project-worker.d.ts","sourceRoot":"","sources":["../../../src/core/workspace/project-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAA2B,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,qBAAa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAEL;IAChB,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAA+B;gBAE1C,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKlD,uDAAuD;IACvD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,6DAA6D;IAC7D,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAIb,wEAAwE;IACxE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC,+DAA+D;IACzD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B,2EAA2E;IAC3E,cAAc,IAAI,WAAW;IAM7B,gEAAgE;IAChE,gBAAgB,IAAI,OAAO,IAAI,CAAC,aAAa;IAK7C,6EAA6E;IAC7E,gBAAgB,IAAI,aAAa;IAMjC,6EAA6E;IAC7E,gBAAgB,IAAI,aAAa;IAMjC,kBAAkB,IAAI,eAAe;IAMrC,mBAAmB,IAAI,gBAAgB;IAMvC,eAAe,IAAI,YAAY;IAM/B,qEAAqE;IACrE,iBAAiB,IAAI,cAAc,GAAG,IAAI;CAG3C"}