@monoes/monomindcli 1.11.14 → 1.13.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 (434) hide show
  1. package/.claude/agents/generated/channel-intelligence-director.md +87 -0
  2. package/.claude/agents/generated/chief-growth-officer.md +88 -0
  3. package/.claude/agents/generated/content-seo-strategist.md +90 -0
  4. package/.claude/agents/generated/developer-community-strategist.md +91 -0
  5. package/.claude/agents/generated/outreach-partnership-strategist.md +90 -0
  6. package/.claude/agents/generated/social-media-strategist.md +91 -0
  7. package/.claude/agents/generated/video-visual-strategist.md +90 -0
  8. package/.claude/commands/mastermind/master.md +1 -1
  9. package/.claude/helpers/auto-memory-hook.mjs +13 -4
  10. package/.claude/helpers/control-start.cjs +5 -0
  11. package/.claude/helpers/event-logger.cjs +114 -0
  12. package/.claude/helpers/handlers/adr-draft-handler.cjs +19 -5
  13. package/.claude/helpers/handlers/agent-start-handler.cjs +13 -4
  14. package/.claude/helpers/handlers/compact-handler.cjs +2 -0
  15. package/.claude/helpers/handlers/edit-handler.cjs +1 -1
  16. package/.claude/helpers/handlers/gates-handler.cjs +3 -0
  17. package/.claude/helpers/handlers/graph-status-handler.cjs +14 -8
  18. package/.claude/helpers/handlers/loops-status-handler.cjs +5 -2
  19. package/.claude/helpers/handlers/route-handler.cjs +24 -10
  20. package/.claude/helpers/handlers/session-handler.cjs +11 -4
  21. package/.claude/helpers/handlers/session-restore-handler.cjs +35 -19
  22. package/.claude/helpers/handlers/task-handler.cjs +13 -5
  23. package/.claude/helpers/hook-handler.cjs +40 -0
  24. package/.claude/helpers/intelligence.cjs +130 -53
  25. package/.claude/helpers/loop-tracker.cjs +15 -3
  26. package/.claude/helpers/memory-palace.cjs +461 -0
  27. package/.claude/helpers/memory.cjs +138 -14
  28. package/.claude/helpers/metrics-db.mjs +87 -0
  29. package/.claude/helpers/router.cjs +300 -42
  30. package/.claude/helpers/session.cjs +89 -30
  31. package/.claude/helpers/statusline.cjs +148 -4
  32. package/.claude/helpers/toggle-statusline.cjs +73 -0
  33. package/.claude/helpers/token-tracker.cjs +934 -0
  34. package/.claude/helpers/utils/micro-agents.cjs +20 -4
  35. package/.claude/helpers/utils/monograph.cjs +39 -4
  36. package/.claude/helpers/utils/telemetry.cjs +3 -3
  37. package/.claude/skills/mastermind/_protocol.md +25 -15
  38. package/.claude/skills/mastermind/architect.md +3 -3
  39. package/.claude/skills/mastermind/autodev.md +4 -2
  40. package/.claude/skills/mastermind/idea.md +10 -0
  41. package/.claude/skills/mastermind/ops.md +3 -3
  42. package/.claude/skills/mastermind/runorg.md +153 -86
  43. package/dist/src/agents/registry-builder.d.ts.map +1 -1
  44. package/dist/src/agents/registry-builder.js +2 -0
  45. package/dist/src/agents/registry-builder.js.map +1 -1
  46. package/dist/src/autopilot-state.d.ts.map +1 -1
  47. package/dist/src/autopilot-state.js +10 -5
  48. package/dist/src/autopilot-state.js.map +1 -1
  49. package/dist/src/benchmarks/benchmark-runner.d.ts.map +1 -1
  50. package/dist/src/benchmarks/benchmark-runner.js +13 -0
  51. package/dist/src/benchmarks/benchmark-runner.js.map +1 -1
  52. package/dist/src/benchmarks/metric-evaluators.d.ts.map +1 -1
  53. package/dist/src/benchmarks/metric-evaluators.js +20 -9
  54. package/dist/src/benchmarks/metric-evaluators.js.map +1 -1
  55. package/dist/src/browser/actions.d.ts.map +1 -1
  56. package/dist/src/browser/actions.js +10 -3
  57. package/dist/src/browser/actions.js.map +1 -1
  58. package/dist/src/browser/browser.d.ts.map +1 -1
  59. package/dist/src/browser/browser.js +12 -2
  60. package/dist/src/browser/browser.js.map +1 -1
  61. package/dist/src/browser/cdp.d.ts.map +1 -1
  62. package/dist/src/browser/cdp.js +21 -3
  63. package/dist/src/browser/cdp.js.map +1 -1
  64. package/dist/src/browser/har.d.ts.map +1 -1
  65. package/dist/src/browser/har.js +27 -5
  66. package/dist/src/browser/har.js.map +1 -1
  67. package/dist/src/commands/agent.d.ts.map +1 -1
  68. package/dist/src/commands/agent.js +11 -8
  69. package/dist/src/commands/agent.js.map +1 -1
  70. package/dist/src/commands/analyze.d.ts.map +1 -1
  71. package/dist/src/commands/analyze.js +36 -21
  72. package/dist/src/commands/analyze.js.map +1 -1
  73. package/dist/src/commands/autopilot.d.ts.map +1 -1
  74. package/dist/src/commands/autopilot.js +12 -4
  75. package/dist/src/commands/autopilot.js.map +1 -1
  76. package/dist/src/commands/benchmark.d.ts.map +1 -1
  77. package/dist/src/commands/benchmark.js +51 -8
  78. package/dist/src/commands/benchmark.js.map +1 -1
  79. package/dist/src/commands/browse.d.ts.map +1 -1
  80. package/dist/src/commands/browse.js +5 -2
  81. package/dist/src/commands/browse.js.map +1 -1
  82. package/dist/src/commands/claims.d.ts.map +1 -1
  83. package/dist/src/commands/claims.js +29 -11
  84. package/dist/src/commands/claims.js.map +1 -1
  85. package/dist/src/commands/cleanup.d.ts.map +1 -1
  86. package/dist/src/commands/cleanup.js +25 -5
  87. package/dist/src/commands/cleanup.js.map +1 -1
  88. package/dist/src/commands/config.d.ts.map +1 -1
  89. package/dist/src/commands/config.js +15 -7
  90. package/dist/src/commands/config.js.map +1 -1
  91. package/dist/src/commands/daemon.d.ts.map +1 -1
  92. package/dist/src/commands/daemon.js +6 -0
  93. package/dist/src/commands/daemon.js.map +1 -1
  94. package/dist/src/commands/deployment.d.ts.map +1 -1
  95. package/dist/src/commands/deployment.js +34 -19
  96. package/dist/src/commands/deployment.js.map +1 -1
  97. package/dist/src/commands/doctor.d.ts.map +1 -1
  98. package/dist/src/commands/doctor.js +133 -15
  99. package/dist/src/commands/doctor.js.map +1 -1
  100. package/dist/src/commands/guidance.d.ts.map +1 -1
  101. package/dist/src/commands/guidance.js +15 -2
  102. package/dist/src/commands/guidance.js.map +1 -1
  103. package/dist/src/commands/hive-mind.d.ts.map +1 -1
  104. package/dist/src/commands/hive-mind.js +37 -14
  105. package/dist/src/commands/hive-mind.js.map +1 -1
  106. package/dist/src/commands/hooks.d.ts.map +1 -1
  107. package/dist/src/commands/hooks.js +42 -25
  108. package/dist/src/commands/hooks.js.map +1 -1
  109. package/dist/src/commands/init.d.ts.map +1 -1
  110. package/dist/src/commands/init.js +9 -4
  111. package/dist/src/commands/init.js.map +1 -1
  112. package/dist/src/commands/issues.d.ts.map +1 -1
  113. package/dist/src/commands/issues.js +29 -26
  114. package/dist/src/commands/issues.js.map +1 -1
  115. package/dist/src/commands/mcp.d.ts.map +1 -1
  116. package/dist/src/commands/mcp.js +11 -5
  117. package/dist/src/commands/mcp.js.map +1 -1
  118. package/dist/src/commands/memory.d.ts.map +1 -1
  119. package/dist/src/commands/memory.js +10 -0
  120. package/dist/src/commands/memory.js.map +1 -1
  121. package/dist/src/commands/migrate.js +5 -5
  122. package/dist/src/commands/migrate.js.map +1 -1
  123. package/dist/src/commands/monograph.d.ts.map +1 -1
  124. package/dist/src/commands/monograph.js +18 -5
  125. package/dist/src/commands/monograph.js.map +1 -1
  126. package/dist/src/commands/monovector/backup.d.ts.map +1 -1
  127. package/dist/src/commands/monovector/backup.js +8 -2
  128. package/dist/src/commands/monovector/backup.js.map +1 -1
  129. package/dist/src/commands/monovector/benchmark.d.ts.map +1 -1
  130. package/dist/src/commands/monovector/benchmark.js +20 -7
  131. package/dist/src/commands/monovector/benchmark.js.map +1 -1
  132. package/dist/src/commands/monovector/import.d.ts.map +1 -1
  133. package/dist/src/commands/monovector/import.js +15 -0
  134. package/dist/src/commands/monovector/import.js.map +1 -1
  135. package/dist/src/commands/monovector/migrate.d.ts.map +1 -1
  136. package/dist/src/commands/monovector/migrate.js +4 -1
  137. package/dist/src/commands/monovector/migrate.js.map +1 -1
  138. package/dist/src/commands/monovector/optimize.d.ts.map +1 -1
  139. package/dist/src/commands/monovector/optimize.js +11 -0
  140. package/dist/src/commands/monovector/optimize.js.map +1 -1
  141. package/dist/src/commands/monovector/setup.d.ts.map +1 -1
  142. package/dist/src/commands/monovector/setup.js +11 -1
  143. package/dist/src/commands/monovector/setup.js.map +1 -1
  144. package/dist/src/commands/neural.js +1 -1
  145. package/dist/src/commands/neural.js.map +1 -1
  146. package/dist/src/commands/performance.d.ts.map +1 -1
  147. package/dist/src/commands/performance.js +20 -7
  148. package/dist/src/commands/performance.js.map +1 -1
  149. package/dist/src/commands/platforms.d.ts.map +1 -1
  150. package/dist/src/commands/platforms.js +90 -8
  151. package/dist/src/commands/platforms.js.map +1 -1
  152. package/dist/src/commands/plugins.d.ts.map +1 -1
  153. package/dist/src/commands/plugins.js +12 -5
  154. package/dist/src/commands/plugins.js.map +1 -1
  155. package/dist/src/commands/process.d.ts.map +1 -1
  156. package/dist/src/commands/process.js +33 -10
  157. package/dist/src/commands/process.js.map +1 -1
  158. package/dist/src/commands/progress.d.ts.map +1 -1
  159. package/dist/src/commands/progress.js +5 -3
  160. package/dist/src/commands/progress.js.map +1 -1
  161. package/dist/src/commands/providers.js +5 -5
  162. package/dist/src/commands/providers.js.map +1 -1
  163. package/dist/src/commands/replay.d.ts.map +1 -1
  164. package/dist/src/commands/replay.js +8 -2
  165. package/dist/src/commands/replay.js.map +1 -1
  166. package/dist/src/commands/route.d.ts.map +1 -1
  167. package/dist/src/commands/route.js +27 -7
  168. package/dist/src/commands/route.js.map +1 -1
  169. package/dist/src/commands/security.d.ts.map +1 -1
  170. package/dist/src/commands/security.js +4 -0
  171. package/dist/src/commands/security.js.map +1 -1
  172. package/dist/src/commands/session.d.ts.map +1 -1
  173. package/dist/src/commands/session.js +12 -1
  174. package/dist/src/commands/session.js.map +1 -1
  175. package/dist/src/commands/start.d.ts.map +1 -1
  176. package/dist/src/commands/start.js +11 -4
  177. package/dist/src/commands/start.js.map +1 -1
  178. package/dist/src/commands/status.d.ts.map +1 -1
  179. package/dist/src/commands/status.js +7 -4
  180. package/dist/src/commands/status.js.map +1 -1
  181. package/dist/src/commands/swarm.d.ts.map +1 -1
  182. package/dist/src/commands/swarm.js +27 -13
  183. package/dist/src/commands/swarm.js.map +1 -1
  184. package/dist/src/commands/task.d.ts.map +1 -1
  185. package/dist/src/commands/task.js +26 -11
  186. package/dist/src/commands/task.js.map +1 -1
  187. package/dist/src/commands/tokens.d.ts.map +1 -1
  188. package/dist/src/commands/tokens.js +7 -2
  189. package/dist/src/commands/tokens.js.map +1 -1
  190. package/dist/src/commands/transfer-store.d.ts.map +1 -1
  191. package/dist/src/commands/transfer-store.js +36 -22
  192. package/dist/src/commands/transfer-store.js.map +1 -1
  193. package/dist/src/commands/update.d.ts.map +1 -1
  194. package/dist/src/commands/update.js +15 -3
  195. package/dist/src/commands/update.js.map +1 -1
  196. package/dist/src/commands/workflow.d.ts.map +1 -1
  197. package/dist/src/commands/workflow.js +39 -6
  198. package/dist/src/commands/workflow.js.map +1 -1
  199. package/dist/src/consensus/audit-writer.d.ts.map +1 -1
  200. package/dist/src/consensus/audit-writer.js +18 -7
  201. package/dist/src/consensus/audit-writer.js.map +1 -1
  202. package/dist/src/consensus/vote-signer.d.ts.map +1 -1
  203. package/dist/src/consensus/vote-signer.js +25 -8
  204. package/dist/src/consensus/vote-signer.js.map +1 -1
  205. package/dist/src/index.d.ts.map +1 -1
  206. package/dist/src/index.js +7 -3
  207. package/dist/src/index.js.map +1 -1
  208. package/dist/src/init/executor.d.ts.map +1 -1
  209. package/dist/src/init/executor.js +14 -11
  210. package/dist/src/init/executor.js.map +1 -1
  211. package/dist/src/init/shared-instructions-generator.d.ts.map +1 -1
  212. package/dist/src/init/shared-instructions-generator.js +20 -4
  213. package/dist/src/init/shared-instructions-generator.js.map +1 -1
  214. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  215. package/dist/src/init/statusline-generator.js +36 -15
  216. package/dist/src/init/statusline-generator.js.map +1 -1
  217. package/dist/src/mcp-tools/a2a-tools.d.ts.map +1 -1
  218. package/dist/src/mcp-tools/a2a-tools.js +98 -13
  219. package/dist/src/mcp-tools/a2a-tools.js.map +1 -1
  220. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  221. package/dist/src/mcp-tools/agent-tools.js +16 -3
  222. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
  224. package/dist/src/mcp-tools/analyze-tools.js +80 -17
  225. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  226. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
  227. package/dist/src/mcp-tools/browser-tools.js +84 -22
  228. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  229. package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -1
  230. package/dist/src/mcp-tools/claims-tools.js +35 -7
  231. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  232. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
  233. package/dist/src/mcp-tools/config-tools.js +82 -17
  234. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  235. package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
  236. package/dist/src/mcp-tools/coordination-tools.js +37 -4
  237. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  238. package/dist/src/mcp-tools/daa-tools.d.ts.map +1 -1
  239. package/dist/src/mcp-tools/daa-tools.js +49 -7
  240. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  241. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
  242. package/dist/src/mcp-tools/embeddings-tools.js +45 -18
  243. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  244. package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
  245. package/dist/src/mcp-tools/github-tools.js +75 -25
  246. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  247. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  248. package/dist/src/mcp-tools/guidance-tools.js +32 -10
  249. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  250. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  251. package/dist/src/mcp-tools/hive-mind-tools.js +91 -20
  252. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  253. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  254. package/dist/src/mcp-tools/hooks-tools.js +188 -29
  255. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  256. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  257. package/dist/src/mcp-tools/memory-tools.js +25 -7
  258. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  259. package/dist/src/mcp-tools/monograph-compat.d.ts.map +1 -1
  260. package/dist/src/mcp-tools/monograph-compat.js +11 -2
  261. package/dist/src/mcp-tools/monograph-compat.js.map +1 -1
  262. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  263. package/dist/src/mcp-tools/monograph-tools.js +476 -62
  264. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  265. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  266. package/dist/src/mcp-tools/neural-tools.js +44 -9
  267. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  268. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  269. package/dist/src/mcp-tools/performance-tools.js +45 -10
  270. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  271. package/dist/src/mcp-tools/progress-tools.d.ts.map +1 -1
  272. package/dist/src/mcp-tools/progress-tools.js +7 -4
  273. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  274. package/dist/src/mcp-tools/request-tracker.d.ts.map +1 -1
  275. package/dist/src/mcp-tools/request-tracker.js +15 -1
  276. package/dist/src/mcp-tools/request-tracker.js.map +1 -1
  277. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
  278. package/dist/src/mcp-tools/security-tools.js +61 -9
  279. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  280. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
  281. package/dist/src/mcp-tools/session-tools.js +45 -14
  282. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  283. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  284. package/dist/src/mcp-tools/swarm-tools.js +15 -3
  285. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  286. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  287. package/dist/src/mcp-tools/system-tools.js +14 -7
  288. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  289. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  290. package/dist/src/mcp-tools/task-tools.js +52 -10
  291. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  292. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  293. package/dist/src/mcp-tools/terminal-tools.js +40 -6
  294. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  295. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  296. package/dist/src/mcp-tools/transfer-tools.js +37 -4
  297. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  298. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
  299. package/dist/src/mcp-tools/workflow-tools.js +29 -6
  300. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  301. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
  302. package/dist/src/memory/ewc-consolidation.js +26 -10
  303. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  304. package/dist/src/memory/intelligence.d.ts.map +1 -1
  305. package/dist/src/memory/intelligence.js +80 -19
  306. package/dist/src/memory/intelligence.js.map +1 -1
  307. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  308. package/dist/src/memory/memory-bridge.js +21 -2
  309. package/dist/src/memory/memory-bridge.js.map +1 -1
  310. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  311. package/dist/src/memory/memory-initializer.js +67 -3
  312. package/dist/src/memory/memory-initializer.js.map +1 -1
  313. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  314. package/dist/src/memory/sona-optimizer.js +14 -4
  315. package/dist/src/memory/sona-optimizer.js.map +1 -1
  316. package/dist/src/monovector/command-outcomes.d.ts.map +1 -1
  317. package/dist/src/monovector/command-outcomes.js +43 -7
  318. package/dist/src/monovector/command-outcomes.js.map +1 -1
  319. package/dist/src/monovector/coverage-router.d.ts.map +1 -1
  320. package/dist/src/monovector/coverage-router.js +8 -4
  321. package/dist/src/monovector/coverage-router.js.map +1 -1
  322. package/dist/src/monovector/coverage-tools.d.ts.map +1 -1
  323. package/dist/src/monovector/coverage-tools.js +6 -3
  324. package/dist/src/monovector/coverage-tools.js.map +1 -1
  325. package/dist/src/monovector/diff-classifier.d.ts.map +1 -1
  326. package/dist/src/monovector/diff-classifier.js +13 -0
  327. package/dist/src/monovector/diff-classifier.js.map +1 -1
  328. package/dist/src/monovector/route-outcomes.d.ts +2 -1
  329. package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
  330. package/dist/src/monovector/route-outcomes.js +46 -4
  331. package/dist/src/monovector/route-outcomes.js.map +1 -1
  332. package/dist/src/plugins/manager.d.ts.map +1 -1
  333. package/dist/src/plugins/manager.js +8 -3
  334. package/dist/src/plugins/manager.js.map +1 -1
  335. package/dist/src/plugins/store/discovery.d.ts.map +1 -1
  336. package/dist/src/plugins/store/discovery.js +46 -2
  337. package/dist/src/plugins/store/discovery.js.map +1 -1
  338. package/dist/src/plugins/store/search.d.ts.map +1 -1
  339. package/dist/src/plugins/store/search.js +5 -4
  340. package/dist/src/plugins/store/search.js.map +1 -1
  341. package/dist/src/production/circuit-breaker.d.ts.map +1 -1
  342. package/dist/src/production/circuit-breaker.js +17 -3
  343. package/dist/src/production/circuit-breaker.js.map +1 -1
  344. package/dist/src/production/error-handler.d.ts.map +1 -1
  345. package/dist/src/production/error-handler.js +3 -0
  346. package/dist/src/production/error-handler.js.map +1 -1
  347. package/dist/src/production/monitoring.d.ts.map +1 -1
  348. package/dist/src/production/monitoring.js +20 -3
  349. package/dist/src/production/monitoring.js.map +1 -1
  350. package/dist/src/production/rate-limiter.d.ts.map +1 -1
  351. package/dist/src/production/rate-limiter.js +13 -4
  352. package/dist/src/production/rate-limiter.js.map +1 -1
  353. package/dist/src/production/retry.d.ts.map +1 -1
  354. package/dist/src/production/retry.js +17 -9
  355. package/dist/src/production/retry.js.map +1 -1
  356. package/dist/src/routing/embed-worker.js +6 -2
  357. package/dist/src/routing/embed-worker.js.map +1 -1
  358. package/dist/src/routing/embedder.d.ts.map +1 -1
  359. package/dist/src/routing/embedder.js +0 -0
  360. package/dist/src/routing/embedder.js.map +1 -1
  361. package/dist/src/routing/llm-caller.d.ts.map +1 -1
  362. package/dist/src/routing/llm-caller.js +13 -2
  363. package/dist/src/routing/llm-caller.js.map +1 -1
  364. package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
  365. package/dist/src/routing/route-layer-factory.js +18 -3
  366. package/dist/src/routing/route-layer-factory.js.map +1 -1
  367. package/dist/src/services/claim-service.d.ts +1 -0
  368. package/dist/src/services/claim-service.d.ts.map +1 -1
  369. package/dist/src/services/claim-service.js +8 -0
  370. package/dist/src/services/claim-service.js.map +1 -1
  371. package/dist/src/services/config-file-manager.d.ts.map +1 -1
  372. package/dist/src/services/config-file-manager.js +14 -2
  373. package/dist/src/services/config-file-manager.js.map +1 -1
  374. package/dist/src/services/headless-worker-executor.d.ts.map +1 -1
  375. package/dist/src/services/headless-worker-executor.js +18 -2
  376. package/dist/src/services/headless-worker-executor.js.map +1 -1
  377. package/dist/src/services/worker-daemon.d.ts.map +1 -1
  378. package/dist/src/services/worker-daemon.js +348 -17
  379. package/dist/src/services/worker-daemon.js.map +1 -1
  380. package/dist/src/transfer/anonymization/index.d.ts +0 -3
  381. package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
  382. package/dist/src/transfer/anonymization/index.js +16 -1
  383. package/dist/src/transfer/anonymization/index.js.map +1 -1
  384. package/dist/src/transfer/export.d.ts.map +1 -1
  385. package/dist/src/transfer/export.js +8 -0
  386. package/dist/src/transfer/export.js.map +1 -1
  387. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -1
  388. package/dist/src/transfer/ipfs/upload.js +33 -3
  389. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  390. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -1
  391. package/dist/src/transfer/serialization/cfp.js +8 -2
  392. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  393. package/dist/src/transfer/storage/gcs.d.ts.map +1 -1
  394. package/dist/src/transfer/storage/gcs.js +37 -3
  395. package/dist/src/transfer/storage/gcs.js.map +1 -1
  396. package/dist/src/transfer/store/discovery.d.ts.map +1 -1
  397. package/dist/src/transfer/store/discovery.js +45 -3
  398. package/dist/src/transfer/store/discovery.js.map +1 -1
  399. package/dist/src/transfer/store/download.d.ts.map +1 -1
  400. package/dist/src/transfer/store/download.js +5 -0
  401. package/dist/src/transfer/store/download.js.map +1 -1
  402. package/dist/src/transfer/store/publish.d.ts.map +1 -1
  403. package/dist/src/transfer/store/publish.js +13 -1
  404. package/dist/src/transfer/store/publish.js.map +1 -1
  405. package/dist/src/transfer/store/registry.d.ts +8 -0
  406. package/dist/src/transfer/store/registry.d.ts.map +1 -1
  407. package/dist/src/transfer/store/registry.js +30 -5
  408. package/dist/src/transfer/store/registry.js.map +1 -1
  409. package/dist/src/transfer/store/search.d.ts.map +1 -1
  410. package/dist/src/transfer/store/search.js +20 -5
  411. package/dist/src/transfer/store/search.js.map +1 -1
  412. package/dist/src/ui/collector.mjs +39 -5
  413. package/dist/src/ui/dashboard.html +1603 -1284
  414. package/dist/src/ui/orgs.html +722 -12
  415. package/dist/src/ui/server.mjs +717 -136
  416. package/dist/src/update/checker.d.ts.map +1 -1
  417. package/dist/src/update/checker.js +59 -7
  418. package/dist/src/update/checker.js.map +1 -1
  419. package/dist/src/update/executor.d.ts.map +1 -1
  420. package/dist/src/update/executor.js +50 -3
  421. package/dist/src/update/executor.js.map +1 -1
  422. package/dist/src/update/index.d.ts.map +1 -1
  423. package/dist/src/update/index.js +18 -1
  424. package/dist/src/update/index.js.map +1 -1
  425. package/dist/src/update/rate-limiter.d.ts +6 -0
  426. package/dist/src/update/rate-limiter.d.ts.map +1 -1
  427. package/dist/src/update/rate-limiter.js +79 -7
  428. package/dist/src/update/rate-limiter.js.map +1 -1
  429. package/dist/src/update/validator.d.ts.map +1 -1
  430. package/dist/src/update/validator.js +52 -1
  431. package/dist/src/update/validator.js.map +1 -1
  432. package/dist/tsconfig.tsbuildinfo +1 -1
  433. package/package.json +2 -3
  434. package/dist/src/ui/data/mastermind-events.jsonl +0 -59
@@ -77,15 +77,18 @@ function _triggerExtractFromFrontmatter(content, agentSlug) {
77
77
  return triggers;
78
78
  }
79
79
 
80
- function _triggerCollectMdFiles(dir) {
80
+ function _triggerCollectMdFiles(dir, _depth) {
81
+ var depth = (_depth === undefined) ? 0 : _depth;
82
+ if (depth > 5) return []; // cap recursion depth to prevent stack overflow DoS
81
83
  var results = [];
82
84
  try {
83
85
  var entries = fs.readdirSync(dir);
84
86
  for (var i = 0; i < entries.length; i++) {
87
+ if (results.length >= 200) break; // cap total file count to prevent DoS
85
88
  var full = path.join(dir, entries[i]);
86
89
  try {
87
90
  var st = fs.lstatSync(full);
88
- if (st.isDirectory()) results = results.concat(_triggerCollectMdFiles(full));
91
+ if (st.isDirectory()) results = results.concat(_triggerCollectMdFiles(full, depth + 1));
89
92
  else if (entries[i].endsWith('.md')) results.push(full);
90
93
  } catch (e) {}
91
94
  }
@@ -98,7 +101,11 @@ function _triggerBuildIndex(agentDir) {
98
101
  var files = _triggerCollectMdFiles(agentDir);
99
102
  for (var i = 0; i < files.length; i++) {
100
103
  var content;
101
- try { content = fs.readFileSync(files[i], 'utf-8'); } catch (e) { continue; }
104
+ try {
105
+ var _fst = fs.statSync(files[i]);
106
+ if (_fst.size > 256 * 1024) continue; // skip files > 256 KiB to prevent OOM
107
+ content = fs.readFileSync(files[i], 'utf-8');
108
+ } catch (e) { continue; }
102
109
  var slug = files[i].split('/').pop().replace(/\.md$/i, '').toLowerCase().replace(/[^a-z0-9-]/g, '-');
103
110
  patterns = patterns.concat(_triggerExtractFromFrontmatter(content, slug));
104
111
  }
@@ -114,6 +121,8 @@ function scanMicroAgentTriggers(prompt) {
114
121
 
115
122
  try {
116
123
  if (fs.existsSync(indexPath)) {
124
+ var _idxSt = fs.statSync(indexPath);
125
+ if (_idxSt.size > 512 * 1024) { throw new Error('trigger-index.json exceeds 512 KiB'); }
117
126
  var idx = JSON.parse(fs.readFileSync(indexPath, 'utf-8'));
118
127
  var age = Date.now() - new Date(idx.builtAt || 0).getTime();
119
128
  if (age < 3600000 && Array.isArray(idx.patterns)) {
@@ -140,6 +149,7 @@ function scanMicroAgentTriggers(prompt) {
140
149
  if (p.mode !== 'inject' && p.mode !== 'takeover') continue;
141
150
  if (seen[p.agentSlug]) continue;
142
151
  try {
152
+ if (typeof p.pattern !== 'string' || p.pattern.length > 500) continue; // cap pattern length to prevent ReDoS
143
153
  var re = new RegExp(p.pattern, 'i');
144
154
  var m = re.exec(prompt);
145
155
  if (m) {
@@ -164,6 +174,8 @@ function _buildKnowledgeSearchFn(knowledgeDir) {
164
174
  if (!fs.existsSync(chunksFile)) return [];
165
175
  var lines;
166
176
  try {
177
+ var _cSt = fs.statSync(chunksFile);
178
+ if (_cSt.size > 4 * 1024 * 1024) return []; // skip > 4 MiB to prevent OOM
167
179
  lines = fs.readFileSync(chunksFile, 'utf-8').trim().split('\n').filter(Boolean);
168
180
  } catch (e) { return []; }
169
181
 
@@ -209,6 +221,8 @@ function _autoIndexKnowledge(knowledgeDir) {
209
221
  } catch (e) {}
210
222
  }
211
223
  try {
224
+ var _sSt = fs.statSync(path.join(CWD, '.monomind', 'graph', 'stats.json'));
225
+ if (_sSt.size > 256 * 1024) { throw new Error('stats.json exceeds 256 KiB'); }
212
226
  var statsForHash = JSON.parse(fs.readFileSync(path.join(CWD, '.monomind', 'graph', 'stats.json'), 'utf-8'));
213
227
  hashInput += 'monograph:' + (statsForHash.builtAt || 0) + ';';
214
228
  } catch(e) {}
@@ -220,7 +234,7 @@ function _autoIndexKnowledge(knowledgeDir) {
220
234
  try { existingHash = fs.readFileSync(hashFile, 'utf-8').trim(); } catch (e) {}
221
235
 
222
236
  var existingChunkCount = 0;
223
- try { if (fs.existsSync(chunksFile)) { existingChunkCount = fs.readFileSync(chunksFile, 'utf-8').trim().split('\n').filter(Boolean).length; } } catch (e) {}
237
+ try { if (fs.existsSync(chunksFile)) { var _ecSt = fs.statSync(chunksFile); if (_ecSt.size <= 4 * 1024 * 1024) { existingChunkCount = fs.readFileSync(chunksFile, 'utf-8').trim().split('\n').filter(Boolean).length; } } } catch (e) {}
224
238
  if (existingHash === contentHash && existingChunkCount > 0) return 0;
225
239
 
226
240
  var newLines = [];
@@ -228,6 +242,8 @@ function _autoIndexKnowledge(knowledgeDir) {
228
242
  var src = sources[si];
229
243
  try {
230
244
  if (!fs.existsSync(src.filePath)) continue;
245
+ var _srcSt = fs.statSync(src.filePath);
246
+ if (_srcSt.size > 512 * 1024) continue; // skip > 512 KiB to prevent OOM
231
247
  var content = fs.readFileSync(src.filePath, 'utf-8');
232
248
  var sections = content.split(/\n{2,}|\n(?=#{1,3} )/);
233
249
  for (var ci = 0; ci < sections.length; ci++) {
@@ -25,6 +25,30 @@ function _requireMonograph() {
25
25
  // Memoized at module scope — opening monograph.db can take 7-10s.
26
26
  // Callers MUST NOT close the returned handle.
27
27
  var _cachedMonographDb = undefined;
28
+
29
+ // LRU cache for getMonographSuggestions: avoids re-querying the DB for
30
+ // the same task text within a single hook execution process lifetime.
31
+ // Max 20 entries; evicts the least-recently-used on overflow.
32
+ var _suggestCache = { _map: Object.create(null), _order: [], _max: 20 };
33
+ function _suggestCacheGet(key) {
34
+ if (key in _suggestCache._map) {
35
+ // Move to end (most recently used)
36
+ var idx = _suggestCache._order.indexOf(key);
37
+ if (idx !== -1) { _suggestCache._order.splice(idx, 1); _suggestCache._order.push(key); }
38
+ return _suggestCache._map[key];
39
+ }
40
+ return undefined;
41
+ }
42
+ function _suggestCacheSet(key, value) {
43
+ if (!(key in _suggestCache._map)) {
44
+ if (_suggestCache._order.length >= _suggestCache._max) {
45
+ var evict = _suggestCache._order.shift();
46
+ delete _suggestCache._map[evict];
47
+ }
48
+ _suggestCache._order.push(key);
49
+ }
50
+ _suggestCache._map[key] = value;
51
+ }
28
52
  function _openMonographDb() {
29
53
  if (_cachedMonographDb !== undefined) return _cachedMonographDb;
30
54
  try {
@@ -39,6 +63,10 @@ function _openMonographDb() {
39
63
 
40
64
  function getMonographSuggestions(taskText, limit) {
41
65
  if (!taskText || typeof taskText !== 'string') return [];
66
+ // Fast path: return cached result for repeated identical queries.
67
+ var cacheKey = taskText.slice(0, 200) + '|' + (limit || 5);
68
+ var cached = _suggestCacheGet(cacheKey);
69
+ if (cached !== undefined) return cached;
42
70
  var db = _openMonographDb();
43
71
  if (!db) return [];
44
72
  try {
@@ -56,7 +84,7 @@ function getMonographSuggestions(taskText, limit) {
56
84
  var rows = [];
57
85
  try {
58
86
  rows = db.prepare(
59
- 'SELECT n.id, n.name, n.label, n.file_path AS file, ' +
87
+ 'SELECT n.id, n.name, n.label, n.file_path AS file, n.start_line AS startLine, ' +
60
88
  'bm25(nodes_fts) AS bm25_score, ' +
61
89
  '(SELECT COUNT(*) FROM edges WHERE source_id=n.id OR target_id=n.id) AS deg, ' +
62
90
  'CASE n.label WHEN \'File\' THEN 3 WHEN \'Function\' THEN 3 WHEN \'Class\' THEN 3 ' +
@@ -72,7 +100,7 @@ function getMonographSuggestions(taskText, limit) {
72
100
  var likeFrag = keys.map(function(){ return 'lower(n.name) LIKE ?'; }).join(' OR ');
73
101
  var likeArgs = keys.map(function(k){ return '%' + k + '%'; });
74
102
  var stmt = db.prepare(
75
- 'SELECT n.id, n.name, n.label, n.file_path AS file, ' +
103
+ 'SELECT n.id, n.name, n.label, n.file_path AS file, n.start_line AS startLine, ' +
76
104
  '(SELECT COUNT(*) FROM edges WHERE source_id=n.id OR target_id=n.id) AS deg ' +
77
105
  'FROM nodes n WHERE (' + likeFrag + ') AND n.file_path IS NOT NULL AND n.file_path != \'\' ' +
78
106
  'AND n.label NOT IN (\'Concept\') ' +
@@ -80,7 +108,9 @@ function getMonographSuggestions(taskText, limit) {
80
108
  );
81
109
  rows = stmt.all.apply(stmt, likeArgs.concat([lim]));
82
110
  }
83
- return rows || [];
111
+ var result = rows || [];
112
+ _suggestCacheSet(cacheKey, result);
113
+ return result;
84
114
  } catch (e) { return []; }
85
115
  finally { /* db is shared/cached; do not close */ }
86
116
  }
@@ -287,8 +317,13 @@ function injectGodNodesContext(CWD) {
287
317
  // Staleness indicator: compare stored commit hash with current HEAD.
288
318
  var staleIndicator = '';
289
319
  try {
320
+ // The orchestrator writes 'last_commit_hash'; fall back to legacy keys.
290
321
  var lastCommitRow = null;
291
- try { lastCommitRow = db.prepare("SELECT value FROM index_meta WHERE key='ua_last_commit'").get(); } catch (_) {}
322
+ try {
323
+ lastCommitRow = db.prepare("SELECT value FROM index_meta WHERE key='last_commit_hash'").get() ||
324
+ db.prepare("SELECT value FROM index_meta WHERE key='lastCommit'").get() ||
325
+ db.prepare("SELECT value FROM index_meta WHERE key='ua_last_commit'").get();
326
+ } catch (_) {}
292
327
  if (lastCommitRow && lastCommitRow.value) {
293
328
  var { execFileSync: execSync } = require('child_process');
294
329
  var currentHead = '';
@@ -10,14 +10,14 @@ const CWD = process.env.CLAUDE_PROJECT_DIR || process.cwd();
10
10
  function _recordRecentEdit(filePath) {
11
11
  if (!filePath) return;
12
12
  try {
13
- var relPath = path.isAbsolute(filePath) ? path.relative(CWD, filePath) : filePath;
13
+ var storedPath = filePath;
14
14
  var f = path.join(CWD, '.monomind', 'metrics', 'recent-edits.json');
15
15
  fs.mkdirSync(path.dirname(f), { recursive: true });
16
16
  var d = { edits: [] };
17
17
  try { d = JSON.parse(fs.readFileSync(f, 'utf-8')); } catch (_) {}
18
18
  if (!Array.isArray(d.edits)) d.edits = [];
19
- d.edits = d.edits.filter(function(e) { return e.file !== relPath; });
20
- d.edits.unshift({ file: relPath, editedAt: Date.now() });
19
+ d.edits = d.edits.filter(function(e) { return e.file !== storedPath; });
20
+ d.edits.unshift({ file: storedPath, editedAt: Date.now() });
21
21
  if (d.edits.length > 10) d.edits = d.edits.slice(0, 10);
22
22
  fs.writeFileSync(f, JSON.stringify(d));
23
23
  } catch (e) { /* non-fatal */ }
@@ -289,14 +289,16 @@ If the user is running across multiple repos for the same project, they MUST use
289
289
  # Compatible with macOS bash 3.2
290
290
  project_name="${project_name:-$(basename "$PWD")}"
291
291
  canonical="${project_name}-<domain>"
292
+ board_tracking=true
292
293
 
293
294
  # Step 1 — Resolve space
294
295
  space_id=$(monotask space list 2>/dev/null | awk -F'|' '{gsub(/^ +| +$/,"",$1);gsub(/^ +| +$/,"",$2);if($2==n)print $1}' n="$project_name" | head -1)
295
296
  [ -z "$space_id" ] && space_id=$(monotask space create "$project_name" 2>/dev/null | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
296
- [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name' verify monotask is installed (monotask --version)"; exit 1; }
297
+ [ -z "$space_id" ] && { echo "[mastermind] monotask board unavailableboard tracking skipped."; board_tracking=false; }
297
298
 
298
299
  # Step 2 — Find existing board by canonical name or create
299
300
  # board list format is "uuid: name" (colon-space separator, NOT pipe)
301
+ if [ "$board_tracking" = "true" ]; then
300
302
  board_id=$(monotask board list 2>/dev/null | awk -F': ' '{gsub(/^ +| +$/,"",$1);gsub(/^ +| +$/,"",$2);if($2==n)print $1}' n="$canonical" | head -1)
301
303
  if [ -n "$board_id" ]; then
302
304
  # Step 3a — Fetch column IDs from existing board
@@ -306,13 +308,16 @@ if [ -n "$board_id" ]; then
306
308
  done_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Done")] | .[0].id // empty')
307
309
  else
308
310
  # Step 3b — Create board and columns
309
- board_id=$(monotask board create --space "$space_id" "$canonical" --json | jq -r '.id // empty')
310
- [ -z "$board_id" ] && { echo "ERROR: Failed to create board '$canonical'"; exit 1; }
311
+ board_id=$(monotask board create --space "$space_id" "$canonical" --json 2>/dev/null | jq -r '.id // empty')
312
+ [ -z "$board_id" ] && { echo "[mastermind] monotask board unavailable board tracking skipped."; board_tracking=false; }
313
+ if [ "$board_tracking" = "true" ]; then
311
314
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
312
- todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id // empty')
313
- doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id // empty')
314
- done_col=$(monotask column create "$board_id" "Done" --json | jq -r '.id // empty')
315
- [ -z "$todo_col" ] && { echo "ERROR: Failed to create Todo column for $canonical"; exit 1; }
315
+ todo_col=$(monotask column create "$board_id" "Todo" --json 2>/dev/null | jq -r '.id // empty')
316
+ doing_col=$(monotask column create "$board_id" "Doing" --json 2>/dev/null | jq -r '.id // empty')
317
+ done_col=$(monotask column create "$board_id" "Done" --json 2>/dev/null | jq -r '.id // empty')
318
+ [ -z "$todo_col" ] && { echo "[mastermind] monotask board unavailable board tracking skipped."; board_tracking=false; }
319
+ fi
320
+ fi
316
321
  fi
317
322
  ```
318
323
 
@@ -321,28 +326,33 @@ When master.md runs multiple domains, resolve the space **once** before the loop
321
326
  ```bash
322
327
  # Compatible with macOS bash 3.2 — jq accumulation instead of declare -A
323
328
  project_name="<resolved project_name>"
329
+ board_tracking=true
324
330
  space_id=$(monotask space list 2>/dev/null | awk -F'|' '{gsub(/^ +| +$/,"",$1);gsub(/^ +| +$/,"",$2);if($2==n)print $1}' n="$project_name" | head -1)
325
331
  [ -z "$space_id" ] && space_id=$(monotask space create "$project_name" 2>/dev/null | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
326
- [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
332
+ [ -z "$space_id" ] && { echo "[mastermind] monotask board unavailable board tracking skipped."; board_tracking=false; }
327
333
 
328
334
  state_patch='{}'
329
335
  for domain in build marketing ops; do # substitute actual domain list
330
336
  canonical="${project_name}-${domain}"
337
+ if [ "$board_tracking" = "true" ]; then
331
338
  # board list format is "uuid: name" (colon-space separator, NOT pipe)
332
- board_id=$(monotask board list 2>/dev/null | awk -F': ' '{gsub(/^ +| +$/,"",$1);gsub(/^ +| +$/,"",$2);if($2==n)print $1}' n="$canonical" | head -1)
339
+ board_id=$(monotask board list 2>/dev/null | awk -F': ' '{gsub(/^ +| +$/,"",$1);gsub(/^ +| +$/,"",$2);if($2==n)print $1}' n="$canonical" | head -1)
333
340
  if [ -n "$board_id" ]; then
334
341
  cols_json=$(monotask column list "$board_id" --json 2>/dev/null || echo '[]')
335
342
  todo_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Todo" or .title=="Backlog")] | .[0].id // empty')
336
343
  doing_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Doing" or .title=="In Progress")] | .[0].id // empty')
337
344
  done_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Done")] | .[0].id // empty')
338
345
  else
339
- board_id=$(monotask board create --space "$space_id" "$canonical" --json | jq -r '.id // empty')
340
- [ -z "$board_id" ] && { echo "ERROR: Failed to create $canonical board"; exit 1; }
346
+ board_id=$(monotask board create --space "$space_id" "$canonical" --json 2>/dev/null | jq -r '.id // empty')
347
+ [ -z "$board_id" ] && { echo "[mastermind] monotask board unavailable board tracking skipped."; board_tracking=false; }
348
+ if [ "$board_tracking" = "true" ]; then
341
349
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
342
- todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id // empty')
343
- doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id // empty')
344
- done_col=$(monotask column create "$board_id" "Done" --json | jq -r '.id // empty')
345
- [ -z "$todo_col" ] && { echo "ERROR: Failed to create Todo column for $canonical"; exit 1; }
350
+ todo_col=$(monotask column create "$board_id" "Todo" --json 2>/dev/null | jq -r '.id // empty')
351
+ doing_col=$(monotask column create "$board_id" "Doing" --json 2>/dev/null | jq -r '.id // empty')
352
+ done_col=$(monotask column create "$board_id" "Done" --json 2>/dev/null | jq -r '.id // empty')
353
+ [ -z "$todo_col" ] && { echo "[mastermind] monotask board unavailable board tracking skipped."; board_tracking=false; }
354
+ fi
355
+ fi
346
356
  fi
347
357
  state_patch=$(echo "$state_patch" | jq \
348
358
  --arg d "$domain" --arg b "$board_id" \
@@ -95,10 +95,10 @@ If this skill is invoked directly (not by master):
95
95
  result=$(monotask board create "architect" --json 2>/dev/null)
96
96
  board_id=$(echo "$result" | jq -r '.id // empty')
97
97
  [ -n "$board_id" ] && [ -n "$space_id" ] && monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
98
- [ -z "$board_id" ] && { echo "ERROR: Failed to create monotask board — verify monotask is installed (run: monotask --version)"; exit 1; }
99
- echo "$board_id"
98
+ [ -z "$board_id" ] && { echo "[mastermind] monotask board unavailable board tracking skipped."; board_tracking=false; }
99
+ echo "${board_id:-}"
100
100
  ```
101
- If this block exits with an error (board_id is still empty), stop execution and return an error to the caller do not proceed to complexity assessment.
101
+ If board_id is empty after this block, set `board_tracking=false` and continue do not abort. Card creation steps later are skipped when `board_tracking=false`.
102
102
  6. Proceed with complexity assessment below
103
103
  7. At end: emit `session:complete` (if `caller` is `standalone`). Before executing the curl below, substitute the resolved sessionId for `<sessionId>`:
104
104
  ```bash
@@ -432,7 +432,7 @@ Invoke `Skill("mastermind:build")` with:
432
432
  - `brain_context`: the loaded brain context
433
433
  - `project_name`: `$(basename "$PWD")`
434
434
  - `mode`: `auto`
435
- - `board_id`: the autodev board (create once at startup, reuse)
435
+ - `board_id`: the autodev board (only if non-empty; omit if monotask was unavailable)
436
436
 
437
437
  The brief passed to build MUST include:
438
438
  - What to build (concrete spec, not vague)
@@ -490,11 +490,13 @@ If `N < count`: log `[autodev] Moving to improvement <N+1>/<count>...` and repea
490
490
 
491
491
  1. Extract flags (leading integer for count, --newfeature N, --focus, --auto/--confirm)
492
492
  2. Load brain context via _protocol.md Brain Load Procedure (namespace: `autodev`)
493
- 3. Create monotask board:
493
+ 3. Create monotask board (optional — skip gracefully if monotask is not installed):
494
494
  ```bash
495
495
  project_name="${project_name:-$(basename "$PWD")}"
496
496
  board_id=$(monotask board create "autodev" --json 2>/dev/null | jq -r '.id // empty')
497
+ [ -z "$board_id" ] && echo "[autodev] monotask board unavailable — board tracking skipped."
497
498
  ```
499
+ Pass `board_id` to `mastermind:build` only if non-empty; omit the parameter otherwise.
498
500
  4. **If `--newfeature` was parsed:** run the Feature Pipeline (FP-0 through FP-End) and skip the improvement loop entirely.
499
501
  **Otherwise:** run the Loop section above for each improvement.
500
502
  5. At end: follow _protocol.md Brain Write Procedure (namespace: `autodev`)
@@ -9,6 +9,16 @@ default_mode: confirm
9
9
 
10
10
  This skill is invoked by `mastermind:master` or directly via `/mastermind:idea`.
11
11
 
12
+ **Extract `--monotask` flag:** If present in `$ARGUMENTS`, set `USE_MONOTASK=true` and remove it from `$ARGUMENTS`. Default: `USE_MONOTASK=false`.
13
+
14
+ **File mode (default, `USE_MONOTASK=false`):**
15
+
16
+ Invoke `Skill("mastermind:ideate", $ARGUMENTS)` immediately — it provides the same research, evaluation, elaboration, and task-decomposition pipeline with file-first storage (`docs/ideas/` and `docs/tasks/`). The rest of this skill is skipped in file mode.
17
+
18
+ **Board mode (`USE_MONOTASK=true`):**
19
+
20
+ Continue with the full monotask board pipeline below (Steps 3-6).
21
+
12
22
  ---
13
23
 
14
24
  ## Inputs
@@ -51,8 +51,8 @@ If this skill is invoked directly (not by master):
51
51
  space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$project_name" '$2==n{print $1}' | head -1)
52
52
  [ -z "$space_id" ] && space_id=$(monotask space create "$project_name" 2>&1 | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
53
53
  [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
54
- board_id=$(monotask board create "ops" --json | jq -r '.id // empty')
55
- [ -z "$board_id" ] && { echo "ERROR: Failed to create ops board"; exit 1; }
54
+ board_id=$(monotask board create "ops" --json 2>/dev/null | jq -r '.id // empty')
55
+ [ -z "$board_id" ] && echo "[ops] monotask board unavailable board tracking skipped."
56
56
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
57
57
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id')
58
58
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id')
@@ -118,7 +118,7 @@ Spawn one Task agent per workstream (star topology — hub aggregates independen
118
118
  - Infrastructure automation: subagent_type "DevOps Automator"
119
119
  - CI/CD pipelines: subagent_type "cicd-engineer"
120
120
 
121
- Also run /mastermind:do --board <board_id> to track execution.
121
+ Tasks are saved to `docs/tasks/` by default. To execute: `/mastermind:do --file <TASK_FILE>`. With monotask: `/mastermind:do --monotask --space $SPACE_ID --board $TASK_BOARD_ID`.
122
122
 
123
123
  STEP 4 — COLLECT AND RETURN
124
124
  Collect all agent outputs. Return to caller: