monomind 1.11.11 → 1.11.13

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 (227) hide show
  1. package/.claude/commands/mastermind/idea.md +1 -1
  2. package/.claude/commands/mastermind/master.md +1 -1
  3. package/.claude/skills/mastermind/_protocol.md +4 -4
  4. package/.claude/skills/mastermind/architect.md +7 -4
  5. package/.claude/skills/mastermind/autodev.md +4 -2
  6. package/.claude/skills/mastermind/build.md +3 -3
  7. package/.claude/skills/mastermind/content.md +3 -3
  8. package/.claude/skills/mastermind/createorg.md +2 -2
  9. package/.claude/skills/mastermind/finance.md +3 -3
  10. package/.claude/skills/mastermind/idea.md +8 -0
  11. package/.claude/skills/mastermind/marketing.md +3 -3
  12. package/.claude/skills/mastermind/ops.md +3 -3
  13. package/.claude/skills/mastermind/release.md +3 -3
  14. package/.claude/skills/mastermind/research.md +3 -3
  15. package/.claude/skills/mastermind/review.md +3 -3
  16. package/.claude/skills/mastermind/sales.md +3 -3
  17. package/package.json +1 -1
  18. package/packages/@monomind/cli/dist/src/index.js +19 -14
  19. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +3 -3
  20. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +1 -1
  21. package/packages/@monomind/cli/dist/src/update/checker.js +24 -7
  22. package/packages/@monomind/cli/dist/src/update/index.d.ts +10 -0
  23. package/packages/@monomind/cli/dist/src/update/index.js +29 -2
  24. package/packages/@monomind/cli/package.json +1 -1
  25. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +0 -25
  26. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +0 -76
  27. package/packages/@monomind/cli/dist/src/agents/index.d.ts +0 -18
  28. package/packages/@monomind/cli/dist/src/agents/index.js +0 -13
  29. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +0 -41
  30. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +0 -69
  31. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +0 -23
  32. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +0 -49
  33. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +0 -22
  34. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +0 -80
  35. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +0 -71
  36. package/packages/@monomind/cli/dist/src/agents/registry-query.js +0 -125
  37. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +0 -19
  38. package/packages/@monomind/cli/dist/src/agents/score-decay.js +0 -22
  39. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  40. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +0 -40
  41. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +0 -54
  42. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +0 -212
  43. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +0 -30
  44. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +0 -84
  45. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +0 -20
  46. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +0 -38
  47. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +0 -64
  48. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +0 -308
  49. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +0 -18
  50. package/packages/@monomind/cli/dist/src/agents/version-diff.js +0 -64
  51. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -60
  52. package/packages/@monomind/cli/dist/src/agents/version-store.js +0 -235
  53. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -45
  54. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +0 -404
  55. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +0 -14
  56. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +0 -333
  57. package/packages/@monomind/cli/dist/src/commands/ui.js +0 -68
  58. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +0 -7
  59. package/packages/@monomind/cli/dist/src/consensus/index.js +0 -6
  60. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +0 -44
  61. package/packages/@monomind/cli/dist/src/context/context-provider.js +0 -25
  62. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +0 -12
  63. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +0 -34
  64. package/packages/@monomind/cli/dist/src/context/index.d.ts +0 -12
  65. package/packages/@monomind/cli/dist/src/context/index.js +0 -12
  66. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +0 -15
  67. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +0 -19
  68. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +0 -26
  69. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +0 -93
  70. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +0 -24
  71. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +0 -32
  72. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +0 -14
  73. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +0 -27
  74. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +0 -31
  75. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +0 -81
  76. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +0 -24
  77. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +0 -65
  78. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +0 -10
  79. package/packages/@monomind/cli/dist/src/dlq/index.js +0 -7
  80. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +0 -33
  81. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +0 -107
  82. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +0 -23
  83. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +0 -59
  84. package/packages/@monomind/cli/dist/src/eval/index.d.ts +0 -10
  85. package/packages/@monomind/cli/dist/src/eval/index.js +0 -7
  86. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +0 -40
  87. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +0 -102
  88. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  89. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +0 -264
  90. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +0 -22
  91. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +0 -71
  92. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +0 -25
  93. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +0 -48
  94. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +0 -61
  95. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +0 -246
  96. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  97. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  98. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +0 -21
  99. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +0 -106
  100. package/packages/@monomind/cli/dist/src/model/index.d.ts +0 -4
  101. package/packages/@monomind/cli/dist/src/model/index.js +0 -4
  102. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +0 -22
  103. package/packages/@monomind/cli/dist/src/model/model-settings.js +0 -33
  104. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +0 -24
  105. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +0 -65
  106. package/packages/@monomind/cli/dist/src/monovector/capabilities.d.ts +0 -34
  107. package/packages/@monomind/cli/dist/src/monovector/capabilities.js +0 -37
  108. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +0 -7
  109. package/packages/@monomind/cli/dist/src/orchestration/index.js +0 -6
  110. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  111. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +0 -31
  112. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +0 -68
  113. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +0 -180
  114. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  115. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  116. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  117. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +0 -188
  118. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  119. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +0 -206
  120. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +0 -60
  121. package/packages/@monomind/cli/dist/src/runtime/headless.js +0 -284
  122. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  123. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +0 -95
  124. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  125. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +0 -623
  126. package/packages/@monomind/cli/dist/src/services/index.d.ts +0 -13
  127. package/packages/@monomind/cli/dist/src/services/index.js +0 -11
  128. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +0 -201
  129. package/packages/@monomind/cli/dist/src/services/worker-queue.js +0 -594
  130. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +0 -25
  131. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +0 -77
  132. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +0 -31
  133. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +0 -61
  134. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +0 -19
  135. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +0 -68
  136. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  137. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +0 -205
  138. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  139. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +0 -190
  140. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +0 -6
  141. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +0 -105
  142. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +0 -7
  143. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +0 -214
  144. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +0 -10
  145. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +0 -82
  146. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +0 -12
  147. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +0 -23
  148. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +0 -17
  149. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +0 -129
  150. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +0 -9
  151. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +0 -116
  152. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +0 -41
  153. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +0 -8
  154. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +0 -12
  155. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +0 -20
  156. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +0 -165
  157. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +0 -82
  158. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +0 -13
  159. package/packages/@monomind/cli/dist/src/workflow/index.js +0 -11
  160. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +0 -11
  161. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +0 -40
  162. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +0 -29
  163. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +0 -227
  164. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  165. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  166. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  167. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  168. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  169. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  170. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  171. package/packages/@monomind/guidance/dist/authority.js +0 -558
  172. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  173. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  174. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  175. package/packages/@monomind/guidance/dist/coherence.js +0 -372
  176. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  177. package/packages/@monomind/guidance/dist/compiler.js +0 -419
  178. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  179. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  180. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  181. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  182. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  183. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  184. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  185. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  186. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  187. package/packages/@monomind/guidance/dist/gates.js +0 -302
  188. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  189. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  190. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  191. package/packages/@monomind/guidance/dist/generators.js +0 -682
  192. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  193. package/packages/@monomind/guidance/dist/headless.js +0 -342
  194. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  195. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  196. package/packages/@monomind/guidance/dist/index.d.ts +0 -205
  197. package/packages/@monomind/guidance/dist/index.js +0 -321
  198. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  199. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  200. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  201. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  202. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  203. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  204. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  205. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  206. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  207. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  208. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  209. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  210. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  211. package/packages/@monomind/guidance/dist/proof.js +0 -238
  212. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  213. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  214. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  215. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  216. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -426
  217. package/packages/@monomind/guidance/dist/temporal.js +0 -658
  218. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  219. package/packages/@monomind/guidance/dist/trust.js +0 -473
  220. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  221. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  222. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  223. package/packages/@monomind/guidance/dist/types.js +0 -10
  224. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  225. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  226. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  227. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
@@ -19,7 +19,7 @@ Run intake if prompt is vague (follow _intake.md — stop at Q3, domain is alrea
19
19
 
20
20
  Default mode for this command: **confirm** (unless `--auto` flag present or intake Q4 says auto).
21
21
 
22
- Invoke `Skill("mastermind:idea")` passing: brain_context, prompt, project_name, board_id (create if needed), mode.
22
+ Invoke `Skill("mastermind:idea")` passing: brain_context, prompt, project_name, mode. Pass `--monotask` in the arguments if monotask board tracking is desired; omit for file-first mode.
23
23
 
24
24
  After skill returns: follow _protocol.md Brain Write Procedure for domain `idea`.
25
25
 
@@ -441,7 +441,7 @@ for domain in $domains_needed; do
441
441
  else
442
442
  echo "Creating board: $canonical"
443
443
  board_id=$(monotask board create --space "$space_id" "$canonical" --json 2>/dev/null | jq -r '.id // empty')
444
- [ -z "$board_id" ] && { echo "ERROR: Failed to create board '$canonical'"; exit 1; }
444
+ [ -z "$board_id" ] && echo "[mastermind] monotask board unavailable board tracking skipped."
445
445
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
446
446
  if [ "$domain" = "idea" ]; then
447
447
  todo_col=$(monotask column create "$board_id" "New" --json | jq -r '.id // empty')
@@ -306,8 +306,8 @@ if [ -n "$board_id" ]; then
306
306
  done_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Done")] | .[0].id // empty')
307
307
  else
308
308
  # 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; }
309
+ board_id=$(monotask board create --space "$space_id" "$canonical" --json 2>/dev/null | jq -r '.id // empty')
310
+ [ -z "$board_id" ] && echo "[mastermind] monotask board unavailable board tracking skipped."
311
311
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
312
312
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id // empty')
313
313
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id // empty')
@@ -336,8 +336,8 @@ board_id=$(monotask board list 2>/dev/null | awk -F': ' '{gsub(/^ +| +$/,"",$1);
336
336
  doing_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Doing" or .title=="In Progress")] | .[0].id // empty')
337
337
  done_col=$(echo "$cols_json" | jq -r '[.[] | select(.title=="Done")] | .[0].id // empty')
338
338
  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; }
339
+ board_id=$(monotask board create --space "$space_id" "$canonical" --json 2>/dev/null | jq -r '.id // empty')
340
+ [ -z "$board_id" ] && echo "[mastermind] monotask board unavailable board tracking skipped."
341
341
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
342
342
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id // empty')
343
343
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id // empty')
@@ -88,14 +88,14 @@ If this skill is invoked directly (not by master):
88
88
  ```
89
89
  After the bash above completes, apply the 60% classification rule: sum the total file count across all extensions. If any single extension group exceeds 60% of the total, set `<stack>` to that stack's name (e.g. `typescript`, `python`, `go`); otherwise set `<stack>` to `multi-stack`. Use this value for `Stack: <stack>` in all subsequent briefings.
90
90
  If `scope` was not provided by the caller, infer it from the prompt: "review"/"audit"/"check"/"assess" → `review`; "deduplicate"/"dedup"/"consolidate" → `deduplicate`; "design"/"architect"/"model"/"bounded context" → `design`; "migrate"/"migration"/"port to"/"convert" → `migrate`; no keyword match or multiple keyword matches → `all`. Use the resolved scope for all subsequent steps.
91
- 5. If `board_id` was not provided by the caller: find or create monotask space `<project_name>`, then create board `architect` within it. Before executing the bash block below, substitute the resolved `project_name` (or `basename "$PWD"` if not provided) for every `<project_name>` occurrence:
91
+ 5. If `board_id` was not provided by the caller: find or create monotask space `<project_name>`, then create board `architect` within it (optional — proceed without a board if monotask is not installed). Before executing the bash block below, substitute the resolved `project_name` (or `basename "$PWD"` if not provided) for every `<project_name>` occurrence:
92
92
  ```bash
93
93
  space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="<project_name>" '$2==n{print $1}' | head -1)
94
94
  [ -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}')
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; }
98
+ [ -z "$board_id" ] && echo "[architect] monotask board unavailable board tracking skipped. Install monotask to enable progress tracking."
99
99
  echo "$board_id"
100
100
  ```
101
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.
@@ -363,10 +363,13 @@ For each stream, identify:
363
363
  - Dependencies between streams (e.g. coupling analysis before deduplication plan)
364
364
 
365
365
  STEP 3 — CREATE TASKS
366
- For each architecture stream, create a monotask card on the project board. First resolve column IDs (slash commands are not available inside background Task agentsuse bash directly):
366
+ For each architecture stream, create a monotask card on the project board if a board is available. If BOARD_ID is empty (monotask not installed), skip all monotask card operations in this step proceed directly to STEP 4 with an in-memory task list instead.
367
+
368
+ If BOARD_ID is non-empty: First resolve column IDs (slash commands are not available inside background Task agents — use bash directly):
367
369
 
368
370
  \`\`\`bash
369
- columns=$(monotask column list "$BOARD_ID" --json)
371
+ [ -z "$BOARD_ID" ] && { echo "[architect] No board — skipping card creation, proceeding with in-memory tasks."; }
372
+ columns=$([ -n "$BOARD_ID" ] && monotask column list "$BOARD_ID" --json || echo '[]')
370
373
  COL_TODO_ID=$(echo "$columns" | jq -r '.[] | select(.title == "Todo" or .title == "Backlog") | .id' | head -1)
371
374
  COL_DONE_ID=$(echo "$columns" | jq -r '.[] | select(.title == "Done") | .id' | head -1)
372
375
  \`\`\`
@@ -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`)
@@ -52,8 +52,8 @@ If this skill is invoked directly (not by master):
52
52
  space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$project_name" '$2==n{print $1}' | head -1)
53
53
  [ -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}')
54
54
  [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
55
- board_id=$(monotask board create "development" --json | jq -r '.id // empty')
56
- [ -z "$board_id" ] && { echo "ERROR: Failed to create development board"; exit 1; }
55
+ board_id=$(monotask board create "development" --json 2>/dev/null | jq -r '.id // empty')
56
+ [ -z "$board_id" ] && echo "[build] monotask board unavailable board tracking skipped."
57
57
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
58
58
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id')
59
59
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id')
@@ -120,7 +120,7 @@ Spawn one Task agent per task (all in parallel where dependencies allow):
120
120
  - Code review: subagent_type "reviewer"
121
121
  - TDD/SPARC work: subagent_type "sparc-coder"
122
122
 
123
- Also run /mastermind:do --board <board_id> to track execution.
123
+ 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`.
124
124
 
125
125
  STEP 4 — COLLECT AND RETURN
126
126
  Collect all agent output schemas. Return to caller:
@@ -73,8 +73,8 @@ If this skill is invoked directly (not by master):
73
73
  space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$project_name" '$2==n{print $1}' | head -1)
74
74
  [ -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}')
75
75
  [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
76
- board_id=$(monotask board create "content" --json | jq -r '.id // empty')
77
- [ -z "$board_id" ] && { echo "ERROR: Failed to create content board"; exit 1; }
76
+ board_id=$(monotask board create "content" --json 2>/dev/null | jq -r '.id // empty')
77
+ [ -z "$board_id" ] && echo "[content] monotask board unavailable board tracking skipped."
78
78
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
79
79
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id')
80
80
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id')
@@ -147,7 +147,7 @@ Stage 2 draft: subagent_type "Content Creator"
147
147
  Stage 3 edit: subagent_type "Technical Writer"
148
148
  Stage 4 format/publish: subagent_type "Content Creator"
149
149
 
150
- Also run /mastermind:do --board <board_id> to track execution.
150
+ 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`.
151
151
 
152
152
  STEP 4 — COLLECT AND RETURN
153
153
  Collect the final formatted content. Return to caller:
@@ -401,8 +401,8 @@ space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$org_name" '$2==
401
401
  [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$org_name' — verify monotask is installed (run: monotask --version)"; exit 1; }
402
402
 
403
403
  # Step 2 — Board (created only after space is confirmed)
404
- board_id=$(monotask board create "org-tasks" --json | jq -r '.id // empty')
405
- [ -z "$board_id" ] && { echo "ERROR: Failed to create monotask board"; exit 1; }
404
+ board_id=$(monotask board create "org-tasks" --json 2>/dev/null | jq -r '.id // empty')
405
+ [ -z "$board_id" ] && echo "[createorg] monotask board unavailable board tracking skipped."
406
406
 
407
407
  # Step 3 — Link board to space immediately
408
408
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
@@ -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 "finance" --json | jq -r '.id // empty')
55
- [ -z "$board_id" ] && { echo "ERROR: Failed to create finance board"; exit 1; }
54
+ board_id=$(monotask board create "finance" --json 2>/dev/null | jq -r '.id // empty')
55
+ [ -z "$board_id" ] && echo "[finance] 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')
@@ -116,7 +116,7 @@ Spawn one Task agent per workstream:
116
116
  - Financial tracking and invoicing: subagent_type "Finance Tracker"
117
117
  - Analysis and reporting: subagent_type "Analytics Reporter"
118
118
 
119
- Also run /mastermind:do --board <board_id> to track execution.
119
+ 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`.
120
120
 
121
121
  STEP 4 — COLLECT AND RETURN
122
122
  Collect all financial outputs. Return to caller:
@@ -9,6 +9,14 @@ 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. 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 only runs in monotask mode.
17
+
18
+ **Monotask mode (`USE_MONOTASK=true` only):** Continue with the steps below.
19
+
12
20
  ---
13
21
 
14
22
  ## Inputs
@@ -97,8 +97,8 @@ If this skill is invoked directly (not by master):
97
97
  space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$project_name" '$2==n{print $1}' | head -1)
98
98
  [ -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}')
99
99
  [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
100
- board_id=$(monotask board create "marketing" --json | jq -r '.id // empty')
101
- [ -z "$board_id" ] && { echo "ERROR: Failed to create marketing board"; exit 1; }
100
+ board_id=$(monotask board create "marketing" --json 2>/dev/null | jq -r '.id // empty')
101
+ [ -z "$board_id" ] && echo "[marketing] monotask board unavailable board tracking skipped."
102
102
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
103
103
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id')
104
104
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id')
@@ -172,7 +172,7 @@ Spawn one Task agent per workstream (all in parallel — star topology, hub aggr
172
172
  - Product launch / GTM: subagent_type "Launch Strategist" (slug: launch-strategist)
173
173
  - Competitive content / comparison pages: subagent_type "Competitive Content Strategist" (slug: competitive-content)
174
174
 
175
- Also run /mastermind:do --board <board_id> to track execution.
175
+ 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`.
176
176
 
177
177
  STEP 4 — COLLECT AND RETURN
178
178
  Collect all agent outputs. Return to caller:
@@ -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:
@@ -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 "release" --json | jq -r '.id // empty')
55
- [ -z "$board_id" ] && { echo "ERROR: Failed to create release board"; exit 1; }
54
+ board_id=$(monotask board create "release" --json 2>/dev/null | jq -r '.id // empty')
55
+ [ -z "$board_id" ] && echo "[release] 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 Task agents in release order (hierarchical raft — coordinator maintains
118
118
  - Infrastructure and deploy: subagent_type "DevOps Automator"
119
119
  - CI/CD pipeline: 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 stage outcomes. Return to caller:
@@ -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 "research" --json | jq -r '.id // empty')
55
- [ -z "$board_id" ] && { echo "ERROR: Failed to create research board"; exit 1; }
54
+ board_id=$(monotask board create "research" --json 2>/dev/null | jq -r '.id // empty')
55
+ [ -z "$board_id" ] && echo "[research] 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 research stream (mesh topology — findings cross-polli
118
118
  - User behavior and UX signals: subagent_type "UX Researcher"
119
119
  - Data and metrics analysis: subagent_type "Analytics Reporter"
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
  Synthesize all research streams into an intelligence report. Return to caller:
@@ -62,8 +62,8 @@ If this skill is invoked directly (not by master):
62
62
  space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$project_name" '$2==n{print $1}' | head -1)
63
63
  [ -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}')
64
64
  [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
65
- board_id=$(monotask board create "review" --json | jq -r '.id // empty')
66
- [ -z "$board_id" ] && { echo "ERROR: Failed to create review board"; exit 1; }
65
+ board_id=$(monotask board create "review" --json 2>/dev/null | jq -r '.id // empty')
66
+ [ -z "$board_id" ] && echo "[review] monotask board unavailable board tracking skipped."
67
67
  monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
68
68
  todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id')
69
69
  doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id')
@@ -169,7 +169,7 @@ Step 4 — Report:
169
169
  MISSES: representative samples that return safe=true but contain injection patterns
170
170
  ```
171
171
 
172
- Also run /mastermind:do --board <board_id> to track execution.
172
+ 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`.
173
173
 
174
174
  STEP 4 — COLLECT AND RETURN
175
175
  Synthesize all review findings. Return to caller:
@@ -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 "sales" --json | jq -r '.id // empty')
55
- [ -z "$board_id" ] && { echo "ERROR: Failed to create sales board"; exit 1; }
54
+ board_id=$(monotask board create "sales" --json 2>/dev/null | jq -r '.id // empty')
55
+ [ -z "$board_id" ] && echo "[sales] 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')
@@ -120,7 +120,7 @@ Spawn one Task agent per workstream:
120
120
  - Account expansion: subagent_type "Account Strategist"
121
121
  - Competitive research: subagent_type "researcher"
122
122
 
123
- Also run /mastermind:do --board <board_id> to track execution.
123
+ 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`.
124
124
 
125
125
  STEP 4 — COLLECT AND RETURN
126
126
  Collect all agent outputs. Return to caller:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monomind",
3
- "version": "1.11.11",
3
+ "version": "1.11.13",
4
4
  "description": "Monomind - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -11,7 +11,7 @@ import { commandParser } from './parser.js';
11
11
  import { output } from './output.js';
12
12
  import { commands, commandsByCategory, getCommand, getCommandAsync, getCommandNames, hasCommand } from './commands/index.js';
13
13
  import { suggestCommand } from './suggest.js';
14
- import { runStartupUpdateCheck } from './update/index.js';
14
+ import { runStartupUpdateCheck, getUpdateTagline } from './update/index.js';
15
15
  // Read version from package.json at runtime
16
16
  function getPackageVersion() {
17
17
  try {
@@ -223,7 +223,8 @@ export class CLI {
223
223
  */
224
224
  showHelp() {
225
225
  this.output.writeln();
226
- this.output.writeln(this.output.bold(`${this.name} v${this.version}`));
226
+ const tagline = getUpdateTagline(this.version);
227
+ this.output.writeln(this.output.bold(`${this.name} v${this.version}`) + this.output.dim(tagline));
227
228
  this.output.writeln(this.output.dim(this.description));
228
229
  this.output.writeln();
229
230
  this.output.writeln(this.output.bold('USAGE:'));
@@ -355,7 +356,8 @@ export class CLI {
355
356
  * Show version
356
357
  */
357
358
  showVersion() {
358
- this.output.writeln(`${this.name} v${this.version}`);
359
+ const tagline = getUpdateTagline(this.version);
360
+ this.output.writeln(`${this.name} v${this.version}${tagline}`);
359
361
  }
360
362
  /**
361
363
  * Check for updates on startup (non-blocking)
@@ -363,17 +365,20 @@ export class CLI {
363
365
  */
364
366
  async checkForUpdatesOnStartup() {
365
367
  try {
366
- const result = await runStartupUpdateCheck({ autoUpdate: true });
367
- // Show notifications for available updates that weren't auto-applied
368
- if (result.checked && result.updatesAvailable.length > 0) {
369
- const nonAutoUpdates = result.updatesAvailable.filter(u => !u.shouldAutoUpdate);
370
- if (result.updatesApplied.length > 0) {
371
- this.output.writeln(this.output.dim(`Auto-updated: ${result.updatesApplied.join(', ')}`));
372
- }
373
- if (nonAutoUpdates.length > 0) {
374
- this.output.writeln(this.output.dim(`Updates available: ${nonAutoUpdates.map(u => `${u.package}@${u.latestVersion}`).join(', ')}`));
375
- this.output.writeln(this.output.dim(`Run '${this.name} update check' for details`));
376
- }
368
+ const result = await runStartupUpdateCheck({
369
+ autoUpdate: true,
370
+ onInstalling: (pkgs) => {
371
+ this.output.writeln(this.output.dim(` ↑ installing ${pkgs.join(', ')}...`));
372
+ },
373
+ });
374
+ if (!result.checked)
375
+ return;
376
+ if (result.updatesApplied.length > 0) {
377
+ this.output.writeln(this.output.dim(` updated ${result.updatesApplied.join(', ')}`));
378
+ }
379
+ const manual = result.updatesAvailable.filter(u => !u.shouldAutoUpdate);
380
+ if (manual.length > 0) {
381
+ this.output.writeln(this.output.dim(` ↑ ${manual.map(u => `${u.package} v${u.latestVersion}`).join(', ')} available → run: ${this.name} update all`));
377
382
  }
378
383
  }
379
384
  catch {
@@ -1149,10 +1149,10 @@ function generateDashboard() {
1149
1149
 
1150
1150
  const hil = getHILPending();
1151
1151
  const hilStr = hil.pending > 0
1152
- ? \`\${x.coral}✨ \${x.bold}\${hil.pending}\${x.reset}\${x.coral} HIL pending\${x.reset}\`
1153
- : \`\${x.slate}✨ no pending HIL\${x.reset}\`;
1152
+ ? \` \${DIV} \${x.coral}✨ \${x.bold}\${hil.pending}\${x.reset}\${x.coral} HIL pending\${x.reset}\`
1153
+ : \`\`;
1154
1154
 
1155
- lines.push(\`\${x.teal}🧠 CONTEXT\${x.reset} \${graphStr} \${DIV} \${hilStr}\`);
1155
+ lines.push(\`\${x.teal}🧠 CONTEXT\${x.reset} \${graphStr}\${hilStr}\`);
1156
1156
 
1157
1157
  return lines.join('\\n');
1158
1158
  }
@@ -20,7 +20,7 @@ export interface SessionReplay extends SessionSummary {
20
20
  }
21
21
  export declare class ReplayReader {
22
22
  private sessionsDir;
23
- constructor(cwd?: string);
23
+ constructor(cwd?: any);
24
24
  /**
25
25
  * Find and return the session data for a given session ID.
26
26
  * The ID may be a bare ID (e.g. "session-1234567890") or a timestamp number.
@@ -3,6 +3,7 @@
3
3
  * Queries npm registry and compares versions
4
4
  */
5
5
  import { createRequire } from 'module';
6
+ import { execFileSync } from 'child_process';
6
7
  import * as semver from 'semver';
7
8
  import { reserveCheck, recordCheck, getCachedVersions } from './rate-limiter.js';
8
9
  const require = createRequire(import.meta.url);
@@ -82,8 +83,8 @@ function getUpdateType(current, latest) {
82
83
  function shouldAutoUpdate(updateType, priority, config) {
83
84
  if (updateType === 'none')
84
85
  return false;
85
- // Critical security packages always auto-update patches
86
- if (priority === 'critical' && updateType === 'patch') {
86
+ // Critical security packages always auto-update patches and minors
87
+ if (priority === 'critical' && (updateType === 'patch' || updateType === 'minor')) {
87
88
  return true;
88
89
  }
89
90
  // Check config
@@ -99,23 +100,39 @@ export function getInstalledVersion(packageName) {
99
100
  if (!isValidNpmName(packageName))
100
101
  return null;
101
102
  try {
102
- // Try to find the package in node_modules
103
- const possiblePaths = [
103
+ // Attempt 1: let Node resolve from any search path (covers local and global installs)
104
+ try {
105
+ const resolved = require.resolve(`${packageName}/package.json`);
106
+ const pkg = require(resolved);
107
+ if (pkg.version)
108
+ return pkg.version;
109
+ }
110
+ catch { /* not on default paths */ }
111
+ // Attempt 2: resolve from cwd (monorepo / workspace installs)
112
+ const cwdPaths = [
104
113
  `${packageName}/package.json`,
105
114
  `../../node_modules/${packageName}/package.json`,
106
115
  `../../../node_modules/${packageName}/package.json`,
107
116
  ];
108
- for (const modulePath of possiblePaths) {
117
+ for (const modulePath of cwdPaths) {
109
118
  try {
110
- // Use dynamic import with require for package.json
111
119
  const resolved = require.resolve(modulePath, { paths: [process.cwd()] });
112
120
  const pkg = require(resolved);
113
- return pkg.version;
121
+ if (pkg.version)
122
+ return pkg.version;
114
123
  }
115
124
  catch {
116
125
  continue;
117
126
  }
118
127
  }
128
+ // Attempt 3: npm global prefix (covers `npm i -g monomind`)
129
+ try {
130
+ const prefix = execFileSync('npm', ['prefix', '-g'], { encoding: 'utf8', timeout: 3000 }).trim();
131
+ const globalPkg = require(require.resolve(`${packageName}/package.json`, { paths: [`${prefix}/lib/node_modules`] }));
132
+ if (globalPkg.version)
133
+ return globalPkg.version;
134
+ }
135
+ catch { /* no global install or npm unavailable */ }
119
136
  return null;
120
137
  }
121
138
  catch {
@@ -17,6 +17,15 @@ export type { ValidationResult } from './validator.js';
17
17
  export { executeUpdate, executeMultipleUpdates, rollbackUpdate, getUpdateHistory, clearHistory, loadHistory, } from './executor.js';
18
18
  export type { UpdateHistoryEntry, UpdateExecutionResult } from './executor.js';
19
19
  import type { UpdateCheckResult } from './checker.js';
20
+ /**
21
+ * Synchronous — reads cached state from last check.
22
+ * Returns a short inline string for the CLI version tagline, e.g.
23
+ * " ↑ v1.11.12 available"
24
+ * " ↑ v1.11.12 installing..."
25
+ * " ✓ up to date"
26
+ * "" (no cache yet)
27
+ */
28
+ export declare function getUpdateTagline(currentVersion: string): string;
20
29
  /**
21
30
  * Run auto-update check on startup
22
31
  * This is the main entry point for the auto-update system
@@ -24,6 +33,7 @@ import type { UpdateCheckResult } from './checker.js';
24
33
  export declare function runStartupUpdateCheck(options: {
25
34
  verbose?: boolean;
26
35
  autoUpdate?: boolean;
36
+ onInstalling?: (packages: string[]) => void;
27
37
  }): Promise<{
28
38
  checked: boolean;
29
39
  updatesAvailable: UpdateCheckResult[];
@@ -13,9 +13,34 @@ export { shouldCheckForUpdates, recordCheck, getCachedVersions, clearCache, load
13
13
  export { validateUpdate, validateBulkUpdate } from './validator.js';
14
14
  export { executeUpdate, executeMultipleUpdates, rollbackUpdate, getUpdateHistory, clearHistory, loadHistory, } from './executor.js';
15
15
  // Re-export a convenience function for startup
16
- import { checkForUpdates, DEFAULT_CONFIG } from './checker.js';
16
+ import { checkForUpdates, DEFAULT_CONFIG, getInstalledVersion } from './checker.js';
17
17
  import { executeMultipleUpdates } from './executor.js';
18
- import { getInstalledVersion } from './checker.js';
18
+ import { getCachedVersions } from './rate-limiter.js';
19
+ import * as semver from 'semver';
20
+ /**
21
+ * Synchronous — reads cached state from last check.
22
+ * Returns a short inline string for the CLI version tagline, e.g.
23
+ * " ↑ v1.11.12 available"
24
+ * " ↑ v1.11.12 installing..."
25
+ * " ✓ up to date"
26
+ * "" (no cache yet)
27
+ */
28
+ export function getUpdateTagline(currentVersion) {
29
+ try {
30
+ const cached = getCachedVersions();
31
+ // Compare CLI version against its own cached version only — the umbrella package
32
+ // has a different version number and must not be used for this comparison.
33
+ const latest = cached['@monoes/monomindcli'];
34
+ if (!latest || !semver.valid(latest) || !semver.valid(currentVersion))
35
+ return '';
36
+ if (semver.lte(latest, currentVersion))
37
+ return ' ✓ up to date';
38
+ return ` ↑ v${latest} available`;
39
+ }
40
+ catch {
41
+ return '';
42
+ }
43
+ }
19
44
  /**
20
45
  * Run auto-update check on startup
21
46
  * This is the main entry point for the auto-update system
@@ -39,6 +64,8 @@ export async function runStartupUpdateCheck(options) {
39
64
  if (options.autoUpdate !== false) {
40
65
  const autoUpdateable = results.filter((r) => r.shouldAutoUpdate);
41
66
  if (autoUpdateable.length > 0) {
67
+ // Notify caller before installation begins
68
+ options.onInstalling?.(autoUpdateable.map(u => `${u.package}@${u.latestVersion}`));
42
69
  // Get current installed packages
43
70
  const installedPackages = {};
44
71
  for (const update of autoUpdateable) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monoes/monomindcli",
3
- "version": "1.11.10",
3
+ "version": "1.11.12",
4
4
  "type": "module",
5
5
  "description": "Monomind CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
6
6
  "main": "dist/src/index.js",
@@ -1,25 +0,0 @@
1
- /**
2
- * Halt Signal (Task 35)
3
- *
4
- * JSONL-based broadcast/check for swarm-level halt signals.
5
- * When an agent triggers a cascade halt, other agents in the same swarm
6
- * can query whether a halt has been issued.
7
- */
8
- import type { TerminationReason } from '../../../shared/src/types/termination.js';
9
- /** Record written to the JSONL halt log. */
10
- export interface HaltRecord {
11
- id: string;
12
- swarmId: string;
13
- sourceAgentId: string;
14
- reason: TerminationReason;
15
- haltedAt: string;
16
- }
17
- /**
18
- * Broadcast a halt signal for a swarm.
19
- */
20
- export declare function broadcast(swarmId: string, sourceAgentId: string, reason: TerminationReason, filePath?: string): HaltRecord;
21
- /**
22
- * Check whether any halt signal exists for the given swarm.
23
- */
24
- export declare function isHalted(swarmId: string, filePath?: string): boolean;
25
- //# sourceMappingURL=halt-signal.d.ts.map