total-recall-brain 3.45.0 → 3.46.1

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 (363) hide show
  1. package/bin/total-recall.mjs +7 -2
  2. package/frontend/dist/assets/index-BRYE1jmv.css +1 -0
  3. package/frontend/dist/assets/index-D1goIPjC.js +5598 -0
  4. package/frontend/dist/index.html +2 -2
  5. package/frontend/dist/sw.js +5 -4
  6. package/frontend/src/App.tsx +183 -236
  7. package/frontend/src/api/auth-inventory.ts +62 -0
  8. package/frontend/src/api/memory.ts +13 -8
  9. package/frontend/src/api/plugin-credentials.ts +23 -0
  10. package/frontend/src/api/plugins.ts +37 -53
  11. package/frontend/src/api/workspace-drawers.ts +97 -0
  12. package/frontend/src/components/BrainSelector.tsx +9 -3
  13. package/frontend/src/components/plugins/PluginPanel.tsx +83 -42
  14. package/frontend/src/components/plugins/PluginSettings.tsx +10 -20
  15. package/frontend/src/components/plugins/PluginWorkspace.tsx +367 -0
  16. package/frontend/src/components/plugins/ScopedPluginCommands.tsx +142 -0
  17. package/frontend/src/components/plugins/plugin-frame.ts +44 -33
  18. package/frontend/src/components/plugins/scoped-plugin-operations.ts +28 -0
  19. package/frontend/src/components/workspace/DrawerChat.tsx +110 -0
  20. package/frontend/src/components/workspace/DrawerLayout.tsx +196 -0
  21. package/frontend/src/components/workspace/DrawerMarkup.tsx +49 -0
  22. package/frontend/src/components/workspace/PluginChunkLibrary.tsx +92 -0
  23. package/frontend/src/components/workspace/PluginHome.tsx +76 -0
  24. package/frontend/src/components/workspace/WorkspaceDrawers.tsx +96 -0
  25. package/frontend/src/components/workspace/WorkspacePage.tsx +95 -0
  26. package/frontend/src/components/workspace/usePluginDesign.ts +38 -0
  27. package/frontend/src/index.css +409 -136
  28. package/frontend/src/pages/HelpPage.tsx +15 -46
  29. package/frontend/src/pages/MemoryPage.tsx +19 -36
  30. package/frontend/src/pages/SettingsPage.tsx +1 -1
  31. package/metadata.plugin.schema.json +53 -227
  32. package/package.json +1 -1
  33. package/scaffold/.agent/skills/plugin/SKILL.md +13 -11
  34. package/scaffold/.agent/skills/plugin/evals/README.md +14 -21
  35. package/scaffold/.agent/skills/plugin/evals/cases/01-fabricated-seed.mjs +15 -18
  36. package/scaffold/.agent/skills/plugin/evals/cases/02-reassuring-default.mjs +19 -24
  37. package/scaffold/.agent/skills/plugin/evals/cases/03-declared-template.mjs +12 -20
  38. package/scaffold/.agent/skills/plugin/evals/cases/04-home-collects-credential.mjs +35 -0
  39. package/scaffold/.agent/skills/plugin/evals/cases/05-host-leak-in-scaffold.mjs +8 -28
  40. package/scaffold/.agent/skills/plugin/evals/cases/06-correct-plugin.mjs +85 -47
  41. package/scaffold/.agent/skills/plugin/evals/run.mjs +17 -18
  42. package/scaffold/.agent/skills/plugin/prompts/05-credentials.md +4 -4
  43. package/scaffold/.agent/skills/plugin/prompts/07-scaffold.md +2 -2
  44. package/scaffold/.agent/skills/plugin/prompts/08-verify.md +4 -4
  45. package/scaffold/.agent/skills/plugin/references/anti-patterns.md +2 -2
  46. package/scaffold/.agent/skills/plugin/references/generative-home.md +38 -0
  47. package/scaffold/.agent/skills/plugin/references/scaffold.md +5 -5
  48. package/scaffold/.agent/skills/plugin/references/surfaces.md +13 -4
  49. package/scaffold/.agent/skills/plugin/scripts/record.mjs +75 -153
  50. package/scaffold/.agent/skills/plugin/subagents/plugin-reviewer.md +4 -4
  51. package/scaffold/.agent/skills/total-recall/plugins/auth/DESIGN.md +76 -0
  52. package/scaffold/.agent/skills/total-recall/plugins/auth/README.md +3 -1
  53. package/scaffold/.agent/skills/total-recall/plugins/auth/cli.mjs +20 -15
  54. package/scaffold/.agent/skills/total-recall/plugins/auth/package-lock.json +6 -6
  55. package/scaffold/.agent/skills/total-recall/plugins/auth/package.json +2 -1
  56. package/scaffold/.agent/skills/total-recall/plugins/auth/plugin.json +13 -51
  57. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/access-overview.md +17 -0
  58. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/agent-login.md +20 -0
  59. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/baseline-audit.md +22 -0
  60. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/credential-repository-binding.md +17 -0
  61. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/credential-store-maintenance.md +17 -0
  62. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/dashboard-password.md +18 -0
  63. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/dashboard-sessions.md +18 -0
  64. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/endpoint-probe.md +23 -0
  65. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/google-sign-in.md +21 -0
  66. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/mesh-machines.md +16 -0
  67. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/passkey-enrollment.md +21 -0
  68. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/registered-brains.md +16 -0
  69. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/scoped-access-keys.md +17 -0
  70. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/secret-inventory.md +25 -0
  71. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/signing-key-rotation.md +22 -0
  72. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/home.js +375 -0
  73. package/scaffold/.agent/skills/total-recall/plugins/automations/{ui/DESIGN.md → DESIGN.md} +32 -21
  74. package/scaffold/.agent/skills/total-recall/plugins/automations/adapters.mjs +17 -1
  75. package/scaffold/.agent/skills/total-recall/plugins/automations/cli.mjs +10 -1
  76. package/scaffold/.agent/skills/total-recall/plugins/automations/package-lock.json +6 -6
  77. package/scaffold/.agent/skills/total-recall/plugins/automations/package.json +4 -3
  78. package/scaffold/.agent/skills/total-recall/plugins/automations/plugin.json +11 -27
  79. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/automations.js +2 -2
  80. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/control-ledger.md +42 -0
  81. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/local-inventory-triage.md +17 -0
  82. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/pending-control.md +39 -0
  83. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/run-evidence.md +41 -0
  84. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/schedule-vs-run-evidence.md +17 -0
  85. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/source-coverage.md +41 -0
  86. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/{card.js → home.js} +32 -27
  87. package/scaffold/.agent/skills/total-recall/plugins/code-quality/DESIGN.md +53 -0
  88. package/scaffold/.agent/skills/total-recall/plugins/code-quality/cli.mjs +23 -0
  89. package/scaffold/.agent/skills/total-recall/plugins/code-quality/commands/run-core.mjs +4 -2
  90. package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/check.mjs +4 -2
  91. package/scaffold/.agent/skills/total-recall/plugins/code-quality/package-lock.json +6 -6
  92. package/scaffold/.agent/skills/total-recall/plugins/code-quality/package.json +2 -1
  93. package/scaffold/.agent/skills/total-recall/plugins/code-quality/plugin.json +40 -40
  94. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/config.md +15 -0
  95. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/detect.md +15 -0
  96. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/gate.md +15 -0
  97. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/init.md +15 -0
  98. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/report.md +17 -0
  99. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/run.md +17 -0
  100. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/snapshot.md +15 -0
  101. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/code-quality-report.mjs +55 -23
  102. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/home.mjs +214 -0
  103. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/DESIGN.md +146 -0
  104. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package-lock.json +6 -6
  105. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package.json +2 -1
  106. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/plugin.json +51 -34
  107. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/src/command.mjs +1 -1
  108. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/create.md +35 -0
  109. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/history.md +35 -0
  110. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/library.md +49 -0
  111. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/list.md +42 -0
  112. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/promote.md +40 -0
  113. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/read.md +25 -0
  114. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/remove.md +26 -0
  115. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/rollback.md +26 -0
  116. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/show.md +53 -0
  117. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/status.md +40 -0
  118. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/test-path.md +38 -0
  119. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/test.md +46 -0
  120. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/update.md +32 -0
  121. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/home.js +533 -0
  122. package/scaffold/.agent/skills/total-recall/plugins/embeddings/DESIGN.md +110 -0
  123. package/scaffold/.agent/skills/total-recall/plugins/embeddings/package-lock.json +6 -6
  124. package/scaffold/.agent/skills/total-recall/plugins/embeddings/package.json +2 -1
  125. package/scaffold/.agent/skills/total-recall/plugins/embeddings/plugin.json +13 -10
  126. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/benchmark.md +49 -0
  127. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/coverage.md +53 -0
  128. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/models.md +43 -0
  129. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/pull.md +41 -0
  130. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/status.md +59 -0
  131. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/home.js +353 -0
  132. package/scaffold/.agent/skills/total-recall/plugins/git/DESIGN.md +31 -0
  133. package/scaffold/.agent/skills/total-recall/plugins/git/README.md +25 -1
  134. package/scaffold/.agent/skills/total-recall/plugins/git/cli.mjs +5 -1
  135. package/scaffold/.agent/skills/total-recall/plugins/git/package-lock.json +6 -6
  136. package/scaffold/.agent/skills/total-recall/plugins/git/package.json +2 -1
  137. package/scaffold/.agent/skills/total-recall/plugins/git/plugin.json +17 -27
  138. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/commit-memory.mjs +30 -6
  139. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/fleet.mjs +24 -6
  140. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/secret-firewall.mjs +33 -7
  141. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/undo.mjs +29 -5
  142. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/unmerged.mjs +182 -0
  143. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/change-comparison.md +27 -0
  144. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/commit-identity.md +22 -0
  145. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/create-worktree.md +25 -0
  146. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/registered-worktrees.md +22 -0
  147. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/remove-worktree.md +23 -0
  148. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/repository-ledger.md +25 -0
  149. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/unmerged-work.md +22 -0
  150. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/upstream-divergence.md +17 -0
  151. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/worktree-conflict-triage.md +17 -0
  152. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/worktree-terminal.md +22 -0
  153. package/scaffold/.agent/skills/total-recall/plugins/git/ui/home.js +273 -0
  154. package/scaffold/.agent/skills/total-recall/plugins/mesh/DESIGN.md +35 -0
  155. package/scaffold/.agent/skills/total-recall/plugins/mesh/README.md +4 -5
  156. package/scaffold/.agent/skills/total-recall/plugins/mesh/cli.mjs +9 -3
  157. package/scaffold/.agent/skills/total-recall/plugins/mesh/package-lock.json +6 -6
  158. package/scaffold/.agent/skills/total-recall/plugins/mesh/package.json +2 -1
  159. package/scaffold/.agent/skills/total-recall/plugins/mesh/plugin.json +37 -39
  160. package/scaffold/.agent/skills/total-recall/plugins/mesh/src/cli/mesh.mjs +5 -3
  161. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/active-device-dispatch.md +22 -0
  162. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/control-probe.md +25 -0
  163. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/control-server.md +22 -0
  164. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/credential-readiness.md +23 -0
  165. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/elected-leader.md +22 -0
  166. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/enrollment-key.md +22 -0
  167. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/file-receipt.md +25 -0
  168. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/fleet-execution.md +23 -0
  169. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/fleet-presence.md +23 -0
  170. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/interactive-ssh.md +22 -0
  171. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/local-enrollment.md +23 -0
  172. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/mesh-policy.md +23 -0
  173. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/network-atlas.md +25 -0
  174. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/node-roster.md +26 -0
  175. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/node-selection-proof.md +17 -0
  176. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/owner-observations.md +23 -0
  177. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/peer-path.md +23 -0
  178. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/pinned-leader.md +24 -0
  179. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/reachability-evidence-ladder.md +17 -0
  180. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/recorded-login.md +23 -0
  181. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/remote-execution.md +22 -0
  182. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/secret-grants.md +26 -0
  183. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/{card.js → home.js} +93 -22
  184. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/DESIGN.md +86 -0
  185. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/README.md +19 -0
  186. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/cli.mjs +5 -1
  187. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package-lock.json +6 -6
  188. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package.json +2 -1
  189. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/plugin.json +43 -22
  190. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/chat.mjs +80 -0
  191. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/adapter-docs-freshness.md +16 -0
  192. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/chat-handoff.md +26 -0
  193. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/fleet-maintenance.md +21 -0
  194. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/harness-inventory.md +21 -0
  195. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/included-access.md +18 -0
  196. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/included-usage-verification.md +15 -0
  197. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/independent-review.md +17 -0
  198. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/managed-execution.md +20 -0
  199. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/official-documentation.md +18 -0
  200. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/quota-recovery.md +21 -0
  201. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/review-routing-decision.md +16 -0
  202. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/route-work.md +18 -0
  203. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/routing-evidence.md +18 -0
  204. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/run-ledger.md +18 -0
  205. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/home.js +198 -0
  206. package/scaffold/.agent/skills/total-recall/plugins/openwiki/DESIGN.md +75 -0
  207. package/scaffold/.agent/skills/total-recall/plugins/openwiki/README.md +2 -0
  208. package/scaffold/.agent/skills/total-recall/plugins/openwiki/cli.mjs +17 -14
  209. package/scaffold/.agent/skills/total-recall/plugins/openwiki/package-lock.json +6 -6
  210. package/scaffold/.agent/skills/total-recall/plugins/openwiki/package.json +2 -1
  211. package/scaffold/.agent/skills/total-recall/plugins/openwiki/plugin.json +10 -44
  212. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/generate.mjs +5 -4
  213. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/graph.mjs +3 -4
  214. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/ingest.mjs +23 -18
  215. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/mesh-vaults.mjs +8 -3
  216. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/refresh.mjs +6 -3
  217. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/search.mjs +3 -5
  218. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/token.mjs +21 -47
  219. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/upstream-watcher.mjs +17 -6
  220. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/auto-refresh.md +18 -0
  221. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/bootstrap-pages.md +18 -0
  222. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/generate-wiki.md +21 -0
  223. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/generator-settings.md +18 -0
  224. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/host-probe.md +18 -0
  225. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/ingest-preview.md +18 -0
  226. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/link-hygiene.md +21 -0
  227. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/link-topology.md +19 -0
  228. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/passage-search.md +19 -0
  229. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/propagation-plan.md +18 -0
  230. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/provider-credentials.md +18 -0
  231. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/refresh-report.md +18 -0
  232. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/task-evidence.md +22 -0
  233. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/upstream-record.md +18 -0
  234. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/watch-upstream.md +18 -0
  235. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/wiki-atlas.md +19 -0
  236. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/panel.js +261 -513
  237. package/scaffold/.agent/skills/total-recall/plugins/security/DESIGN.md +84 -0
  238. package/scaffold/.agent/skills/total-recall/plugins/security/README.md +4 -2
  239. package/scaffold/.agent/skills/total-recall/plugins/security/cli.mjs +7 -19
  240. package/scaffold/.agent/skills/total-recall/plugins/security/package-lock.json +6 -6
  241. package/scaffold/.agent/skills/total-recall/plugins/security/package.json +2 -3
  242. package/scaffold/.agent/skills/total-recall/plugins/security/plugin.json +19 -52
  243. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/device-evidence.md +21 -0
  244. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/evidence-desk.md +18 -0
  245. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/guided-device-review.md +17 -0
  246. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/host-and-network.md +21 -0
  247. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/https-headers.md +17 -0
  248. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/mesh-coverage.md +18 -0
  249. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/private-security-tools.md +16 -0
  250. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/single-origin-header-check.md +17 -0
  251. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/source-review.md +21 -0
  252. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/ssh-permission-plan.md +17 -0
  253. package/scaffold/.agent/skills/total-recall/plugins/security/ui/home.js +283 -0
  254. package/scaffold/.agent/skills/total-recall/plugins/ssss/DESIGN.md +93 -0
  255. package/scaffold/.agent/skills/total-recall/plugins/ssss/package-lock.json +2 -2
  256. package/scaffold/.agent/skills/total-recall/plugins/ssss/package.json +2 -1
  257. package/scaffold/.agent/skills/total-recall/plugins/ssss/plugin.json +5 -3
  258. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/conformance.md +26 -0
  259. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/registry.md +37 -0
  260. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/repair.md +42 -0
  261. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/scaffold.md +33 -0
  262. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/status.md +43 -0
  263. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/validate.md +34 -0
  264. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/validation-diagnostics.md +17 -0
  265. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/workspace-registry-preflight.md +17 -0
  266. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/home.js +348 -0
  267. package/scaffold/.agent/skills/total-recall/references/operations.md +2 -0
  268. package/src/cli/api.mjs +3 -3
  269. package/src/cli/brief.mjs +3 -0
  270. package/src/cli/config.mjs +16 -0
  271. package/src/cli/connect.mjs +2 -7
  272. package/src/cli/plugin/chunks.mjs +145 -0
  273. package/src/cli/plugin/create.mjs +24 -52
  274. package/src/cli/plugin/index.mjs +20 -9
  275. package/src/cli/setup.mjs +2 -9
  276. package/src/cli/start.mjs +1 -0
  277. package/src/cli/startup.mjs +18 -0
  278. package/src/core/app-deploy/design-tokens.mjs +14 -9
  279. package/src/core/app-deploy/ui-elements.mjs +1 -1
  280. package/src/core/brain-registry.mjs +5 -0
  281. package/src/core/brain-updates.mjs +5 -1
  282. package/src/core/daemon-control.mjs +5 -1
  283. package/src/core/dashboard-bundle.mjs +261 -0
  284. package/src/core/default-plugin-refresh.mjs +39 -0
  285. package/src/core/ensure-dependencies.mjs +19 -15
  286. package/src/core/memory-brain.mjs +30 -8
  287. package/src/core/plugin-activation.mjs +63 -20
  288. package/src/core/plugin-contracts/{card.mjs → manifest.mjs} +23 -57
  289. package/src/core/plugin-contracts/startup-check.mjs +49 -0
  290. package/src/core/plugin-contracts/ui.mjs +9 -3
  291. package/src/core/plugin-distribution.mjs +6 -6
  292. package/src/core/plugin-lifecycle.mjs +58 -0
  293. package/src/core/plugin-loader.mjs +9 -5
  294. package/src/core/plugin-runner.mjs +21 -10
  295. package/src/core/plugin-startup-checks.mjs +44 -0
  296. package/src/core/plugin-state.mjs +19 -5
  297. package/src/core/plugin-store.mjs +30 -11
  298. package/src/core/project-id.mjs +15 -5
  299. package/src/core/required-plugins.mjs +31 -6
  300. package/src/core/schema.mjs +2 -0
  301. package/src/core/ssss-operation-service.mjs +1 -0
  302. package/src/core/startup-health.mjs +28 -3
  303. package/src/core/testing/plugin-fixture.mjs +22 -21
  304. package/src/core/throttled-fetch.mjs +25 -18
  305. package/src/core/ui-chunk-choice.mjs +77 -0
  306. package/src/core/ui-chunk.registry.json +23 -0
  307. package/src/core/ui-chunks.mjs +434 -0
  308. package/src/core/vault-cache.mjs +58 -59
  309. package/src/core/workspace-compositions.mjs +151 -0
  310. package/src/core/workspace-drawers.mjs +79 -0
  311. package/src/server/api.mjs +4 -27
  312. package/src/server/index.mjs +28 -21
  313. package/src/server/memory-events.mjs +31 -0
  314. package/src/server/plugin-brain-targets.mjs +89 -0
  315. package/src/server/rest.mjs +2 -0
  316. package/src/server/route-inventory.mjs +3 -2
  317. package/src/server/route-manifest.json +52 -4
  318. package/src/server/routes/_shared.mjs +7 -14
  319. package/src/server/routes/brains.mjs +29 -44
  320. package/src/server/routes/dashboard.mjs +26 -0
  321. package/src/server/routes/plugins.mjs +154 -45
  322. package/src/server/routes/ui-chunks.mjs +192 -0
  323. package/frontend/dist/assets/index-DACh1dhx.js +0 -5613
  324. package/frontend/dist/assets/index-DtwsDyFM.css +0 -1
  325. package/frontend/src/components/plugins/card/CardEngine.tsx +0 -108
  326. package/frontend/src/components/plugins/card/CardScenes.tsx +0 -103
  327. package/frontend/src/components/plugins/card/ExecutionPicker.tsx +0 -64
  328. package/frontend/src/components/plugins/card/args.ts +0 -28
  329. package/frontend/src/components/plugins/card/card.css +0 -32
  330. package/frontend/src/components/plugins/card/cli-line.ts +0 -13
  331. package/frontend/src/components/plugins/card/contract.ts +0 -91
  332. package/frontend/src/components/plugins/card/format.ts +0 -49
  333. package/frontend/src/components/plugins/card/runner-context.ts +0 -11
  334. package/frontend/src/components/plugins/card/runner.tsx +0 -43
  335. package/frontend/src/components/plugins/card/theme.ts +0 -35
  336. package/frontend/src/components/plugins/card/use-source.ts +0 -22
  337. package/frontend/src/components/plugins/card/widgets.tsx +0 -94
  338. package/frontend/src/components/plugins/workspace/WorkspaceHost.tsx +0 -23
  339. package/frontend/src/pages/PluginsPage.tsx +0 -1719
  340. package/scaffold/.agent/skills/plugin/evals/cases/04-card-collects-credential.mjs +0 -47
  341. package/scaffold/.agent/skills/plugin/prompts/06-card.md +0 -46
  342. package/scaffold/.agent/skills/plugin/references/card.md +0 -90
  343. package/scaffold/.agent/skills/plugin/subagents/card-designer.md +0 -60
  344. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/DESIGN.md +0 -67
  345. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/card.js +0 -1179
  346. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/DESIGN.md +0 -32
  347. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/card.js +0 -588
  348. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/card.js +0 -575
  349. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/DESIGN.md +0 -32
  350. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/card.js +0 -482
  351. package/scaffold/.agent/skills/total-recall/plugins/git/ui/DESIGN.md +0 -100
  352. package/scaffold/.agent/skills/total-recall/plugins/git/ui/card.js +0 -637
  353. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/DESIGN.md +0 -217
  354. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/DESIGN.md +0 -32
  355. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/card.js +0 -1276
  356. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/DESIGN.md +0 -45
  357. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/card.js +0 -1401
  358. package/scaffold/.agent/skills/total-recall/plugins/security/scripts/build-ui.mjs +0 -4
  359. package/scaffold/.agent/skills/total-recall/plugins/security/ui/DESIGN.md +0 -41
  360. package/scaffold/.agent/skills/total-recall/plugins/security/ui/card.js +0 -396
  361. package/scaffold/.agent/skills/total-recall/plugins/security/ui/panel.js +0 -98
  362. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/DESIGN.md +0 -15
  363. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/card.js +0 -182
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "tr-plugin-composable-cli",
3
- "version": "0.2.6",
3
+ "version": "0.3.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "tr-plugin-composable-cli",
9
- "version": "0.2.6",
9
+ "version": "0.3.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@gregiteen/ssss-cli": "0.14.5"
13
13
  },
14
14
  "devDependencies": {
15
- "total-recall-brain": "3.44.0"
15
+ "total-recall-brain": "3.45.0"
16
16
  }
17
17
  },
18
18
  "node_modules/@alcalzone/ansi-tokenize": {
@@ -5543,9 +5543,9 @@
5543
5543
  }
5544
5544
  },
5545
5545
  "node_modules/total-recall-brain": {
5546
- "version": "3.44.0",
5547
- "resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.44.0.tgz",
5548
- "integrity": "sha512-VNPaIO9zsSwoxAsJ5ByIQBP9zPpLq4RiQO7Vrex4rBOHFQJT50P7utcZiLMSZTyZJU4C/m5uB8qTCSBMp6+l6Q==",
5546
+ "version": "3.45.0",
5547
+ "resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.45.0.tgz",
5548
+ "integrity": "sha512-HDYfROazZbsLHQsFPnlBcSpe1HL1QEi7JG8x/eNRUI06RxVQsZWl8LwBo2lTWjWRDrKmCy7BUmSXQDuWF3lrEw==",
5549
5549
  "dev": true,
5550
5550
  "license": "MIT",
5551
5551
  "workspaces": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tr-plugin-composable-cli",
3
- "version": "0.2.6",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Total Recall composable CLI plugin: create, compose, register, test and safely run custom verbs; every command listed in the instruction surfaces.",
6
6
  "scripts": {
@@ -16,6 +16,7 @@
16
16
  "files": [
17
17
  "cli.mjs",
18
18
  "plugin.json",
19
+ "DESIGN.md",
19
20
  "README.md",
20
21
  "LICENSE",
21
22
  "examples/",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://github.com/gregiteen/total-recall/blob/main/metadata.plugin.schema.json",
3
3
  "id": "composable-cli",
4
4
  "name": "Composable CLI",
5
- "version": "0.2.6",
5
+ "version": "0.3.0",
6
6
  "description": "Dynamic agent command composition engine with pipeline registration, versioning, and execution.",
7
7
  "author": "Total Recall contributors",
8
8
  "license": "MIT",
@@ -117,42 +117,59 @@
117
117
  "description": "Total Recall composable CLI plugin: create, compose, register, test and safely run custom verbs; every command listed in the instruction surfaces."
118
118
  }
119
119
  ],
120
- "card_face": {
121
- "skin": "cyber-forge",
122
- "theme": "vibrant",
123
- "headline": "Dynamic Agent Command Composition",
124
- "primary_color": "#0891b2",
125
- "secondary_color": "#083344",
126
- "accent_color": "#06b6d4",
127
- "touch_layout": "comfortable",
128
- "interactive": true,
129
- "quick_actions": [
130
- {
131
- "subcommand": "library",
132
- "label": "LIBRARY"
133
- },
134
- {
135
- "subcommand": "list",
136
- "label": "LIST"
137
- },
138
- {
139
- "subcommand": "show",
140
- "label": "SHOW"
141
- },
142
- {
143
- "subcommand": "history",
144
- "label": "HISTORY"
145
- }
146
- ]
147
- },
148
120
  "ui": {
121
+ "home": "home",
122
+ "design_tokens": "DESIGN.md",
149
123
  "elements": [
150
124
  {
151
- "id": "card",
152
- "kind": "card",
153
- "tag": "tr-composable-cli-card",
154
- "module": "ui/card.js",
155
- "description": "Pipeline Card Face"
125
+ "id": "home",
126
+ "kind": "panel",
127
+ "tag": "tr-composable-cli-home",
128
+ "module": "ui/home.js",
129
+ "description": "CmdSmith Home: composed commands, their records and history, with on-demand test, rollback and remove",
130
+ "tokens": [
131
+ "color-background",
132
+ "color-secondary",
133
+ "color-surface",
134
+ "color-surface-raised",
135
+ "color-line",
136
+ "color-text",
137
+ "color-muted",
138
+ "color-primary",
139
+ "color-primary-strong",
140
+ "color-primary-soft",
141
+ "color-on-primary",
142
+ "color-ok",
143
+ "color-ok-soft",
144
+ "color-warn",
145
+ "color-warn-soft",
146
+ "color-danger",
147
+ "color-danger-soft",
148
+ "color-info",
149
+ "color-info-soft",
150
+ "spacing-xs",
151
+ "spacing-sm",
152
+ "spacing-md",
153
+ "spacing-lg",
154
+ "spacing-touch",
155
+ "radius-sm",
156
+ "radius-md",
157
+ "radius-lg",
158
+ "typography-title-font-family",
159
+ "typography-title-font-size",
160
+ "typography-title-font-weight",
161
+ "typography-title-line-height",
162
+ "typography-body-font-family",
163
+ "typography-body-font-size",
164
+ "typography-body-line-height",
165
+ "typography-label-font-family",
166
+ "typography-label-font-size",
167
+ "typography-label-font-weight",
168
+ "typography-label-letter-spacing",
169
+ "typography-code-font-family",
170
+ "typography-code-font-size",
171
+ "typography-code-line-height"
172
+ ]
156
173
  }
157
174
  ]
158
175
  },
@@ -295,7 +295,7 @@ export function commandList(targets = []) {
295
295
  const results = [];
296
296
  for (const t of targets) {
297
297
  if (fs.existsSync(t.dir)) {
298
- const files = fs.readdirSync(t.dir).filter((f) => f.endsWith('.mjs'));
298
+ const files = fs.readdirSync(t.dir).filter((f) => f.endsWith('.mjs') && !f.endsWith('.test.mjs'));
299
299
  for (const f of files) {
300
300
  const fullPath = path.join(t.dir, f);
301
301
  const name = f.replace(/\.mjs$/, '');
@@ -0,0 +1,35 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: create
5
+ title: Create a command
6
+ description: Turns a repeated sequence into a new named composed command with a declared risk class and a registry record.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Turn a repeated sequence into a reusable command
10
+ surfaces: [page]
11
+ operations: [create]
12
+ ---
13
+ <section data-design-component="op-sheet">
14
+ <style>
15
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
16
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
17
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
18
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-warn);background:var(--color-warn-soft)}
19
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
20
+ [data-design-component="field-list"] dt{color:var(--color-text)}
21
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
22
+ code{font-family:var(--typography-code-font-family)}
23
+ </style>
24
+ <h2>Create a command</h2>
25
+ <p><span data-design-component="risk-badge">write</span> Writes a new command file and its registry record, then refreshes the command inventories in the instruction files.</p>
26
+ <p>Run <code>total-recall composable-cli create &lt;name&gt; "&lt;code&gt;" --description "…" --risk read</code>. It confirms in plain text.</p>
27
+ <dl data-design-component="field-list">
28
+ <dt>&lt;name&gt;</dt><dd>Lowercase kebab case, 1 to 64 characters. Built-in Total Recall names are refused.</dd>
29
+ <dt>--risk</dt><dd><code>read</code>, <code>write</code>, <code>money</code>, <code>dns-cert</code>, <code>production-deploy</code> or <code>secret-revoke</code>. Defaults to <code>write</code>.</dd>
30
+ <dt>--global, --group &lt;id&gt;</dt><dd>Store it machine-wide or for one project group instead of this project.</dd>
31
+ <dt>--from-plugin &lt;dir&gt;</dt><dd>Wrap a command declared in a plugin's manifest instead of inline code.</dd>
32
+ <dt>--config-for-skill &lt;id&gt;</dt><dd>Create a repository config command for a layered skill.</dd>
33
+ </dl>
34
+ <p>Creating a name that already exists in the same scope fails; use <code>update</code> instead.</p>
35
+ </section>
@@ -0,0 +1,35 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: history
5
+ title: Version history
6
+ description: Lists the saved earlier versions of a composed command that a rollback can restore.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - See which earlier versions of a command can be restored
10
+ surfaces: [page]
11
+ operations: [history]
12
+ data:
13
+ - history:/name
14
+ - history:/versions
15
+ panel: home
16
+ ---
17
+ <section data-design-component="op-sheet">
18
+ <style>
19
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
20
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
21
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
22
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
23
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
24
+ [data-design-component="field-list"] dt{color:var(--color-text)}
25
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
26
+ code{font-family:var(--typography-code-font-family)}
27
+ </style>
28
+ <h2>Version history</h2>
29
+ <p><span data-design-component="risk-badge">read</span> Each update and rollback first saves the current version as a snapshot. This lists those snapshots.</p>
30
+ <p>Run <code>total-recall composable-cli history &lt;name&gt; --json</code>, adding <code>--global</code> or <code>--group &lt;id&gt;</code> for those scopes. The CmdSmith Home shows it in the command inspector, with a rollback button per version.</p>
31
+ <dl data-design-component="field-list">
32
+ <dt>name</dt><dd>The command the history belongs to.</dd>
33
+ <dt>versions</dt><dd>Saved version numbers in ascending order. Empty until the command is first updated.</dd>
34
+ </dl>
35
+ </section>
@@ -0,0 +1,49 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: library
5
+ title: Command library
6
+ description: Lists every installed plugin operation and every composed command in scope, read from declarations without running any of them.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Discover which commands and plugin operations are available
10
+ - Find an existing command before composing a new one
11
+ surfaces: [page]
12
+ operations: [library]
13
+ data:
14
+ - library:/plugins
15
+ - library:/plugins/*/id
16
+ - library:/commands
17
+ - library:/commands/*/command
18
+ - library:/commands/*/effect
19
+ - library:/commands/*/description
20
+ - library:/commands/*/plugin
21
+ - library:/composedCommands
22
+ - library:/composedCommands/*/name
23
+ - library:/composedCommands/*/scope
24
+ - library:/composedCommands/*/description
25
+ - library:/composedCommands/*/risk
26
+ - library:/composedCommands/*/command
27
+ - library:/evidence
28
+ ---
29
+ <section data-design-component="op-sheet">
30
+ <style>
31
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
32
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
33
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
34
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
35
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
36
+ [data-design-component="field-list"] dt{color:var(--color-text)}
37
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
38
+ code{font-family:var(--typography-code-font-family)}
39
+ </style>
40
+ <h2>Command library</h2>
41
+ <p><span data-design-component="risk-badge">read</span> One view of what you can call: installed plugin operations and your composed commands. Nothing is executed and no command code is imported.</p>
42
+ <p>Run <code>total-recall composable-cli library --json</code>. Add <code>--plugin &lt;id&gt;</code> to see one installed plugin's operations only; composed commands are then left out.</p>
43
+ <dl data-design-component="field-list">
44
+ <dt>plugins[].id</dt><dd>Each installed plugin.</dd>
45
+ <dt>commands[]</dt><dd>Each plugin operation: the full <code>command</code> to type, its declared <code>effect</code>, its <code>description</code> and owning <code>plugin</code>.</dd>
46
+ <dt>composedCommands[]</dt><dd>Each composed command in scope: <code>name</code>, <code>scope</code> (project, group or global), <code>description</code>, declared <code>risk</code> and the <code>command</code> to type.</dd>
47
+ <dt>evidence</dt><dd>A reminder that these are declarations. A provider is ready only after a real run succeeds.</dd>
48
+ </dl>
49
+ </section>
@@ -0,0 +1,42 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: list
5
+ title: Composed commands
6
+ description: Lists the composed commands in the project, group and global scopes with their declared risk and description.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - See which composed commands exist
10
+ - Check a composed command's scope and risk
11
+ surfaces: [page]
12
+ operations: [list]
13
+ data:
14
+ - list:/*/name
15
+ - list:/*/scope
16
+ - list:/*/path
17
+ - list:/*/description
18
+ - list:/*/risk
19
+ panel: home
20
+ ---
21
+ <section data-design-component="op-sheet">
22
+ <style>
23
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
24
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
25
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
26
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
27
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
28
+ [data-design-component="field-list"] dt{color:var(--color-text)}
29
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
30
+ code{font-family:var(--typography-code-font-family)}
31
+ </style>
32
+ <h2>Composed commands</h2>
33
+ <p><span data-design-component="risk-badge">read</span> Every composed command you can run here, nearest scope first: project, then each group this project belongs to, then global.</p>
34
+ <p>Run <code>total-recall composable-cli list --json</code>. The CmdSmith Home shows this list with a scope filter.</p>
35
+ <dl data-design-component="field-list">
36
+ <dt>name</dt><dd>The verb you type after <code>total-recall</code>.</dd>
37
+ <dt>scope</dt><dd><code>project</code>, <code>group</code> or <code>global</code>.</dd>
38
+ <dt>path</dt><dd>The command's source file.</dd>
39
+ <dt>description</dt><dd>The command's one-line purpose, or null when none was given.</dd>
40
+ <dt>risk</dt><dd>The declared risk class: <code>read</code>, <code>write</code>, <code>money</code>, <code>dns-cert</code>, <code>production-deploy</code> or <code>secret-revoke</code>. Null when undeclared.</dd>
41
+ </dl>
42
+ </section>
@@ -0,0 +1,40 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: promote
5
+ title: Promote into a plugin
6
+ description: Moves a registered inline composed command into a plugin's manifest and commands folder after verifying its digest and risk class.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Make a composed command part of a plugin
10
+ surfaces: [page]
11
+ operations: [promote]
12
+ data:
13
+ - promote:/ok
14
+ - promote:/name
15
+ - promote:/plugin
16
+ - promote:/handler
17
+ - promote:/risk
18
+ ---
19
+ <section data-design-component="op-sheet">
20
+ <style>
21
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
22
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
23
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
24
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-warn);background:var(--color-warn-soft)}
25
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
26
+ [data-design-component="field-list"] dt{color:var(--color-text)}
27
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
28
+ code{font-family:var(--typography-code-font-family)}
29
+ </style>
30
+ <h2>Promote into a plugin</h2>
31
+ <p><span data-design-component="risk-badge">write</span> Copies the command, and its test when present, into the plugin's <code>commands/</code> folder and adds it to that plugin's <code>plugin.json</code>. The manifest is validated before and after the change, and every copied file is removed again if any step fails.</p>
32
+ <p>Run <code>total-recall composable-cli promote &lt;name&gt; --to-plugin &lt;dir&gt; --json</code>.</p>
33
+ <dl data-design-component="field-list">
34
+ <dt>ok</dt><dd>True when the plugin manifest now declares the command.</dd>
35
+ <dt>name, plugin</dt><dd>The promoted command and the receiving plugin's id.</dd>
36
+ <dt>handler</dt><dd>The new handler path inside the plugin, <code>commands/&lt;name&gt;.mjs</code>.</dd>
37
+ <dt>risk</dt><dd>The carried risk class.</dd>
38
+ </dl>
39
+ <p>Only registered inline commands whose source still matches the recorded digest, with risk <code>read</code> or <code>write</code>, can be promoted. A name the plugin already declares is refused.</p>
40
+ </section>
@@ -0,0 +1,25 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: read
5
+ title: Command source
6
+ description: Prints the source of one composed command as plain text.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Read a composed command's source code
10
+ surfaces: [page]
11
+ operations: [read]
12
+ ---
13
+ <section data-design-component="op-sheet">
14
+ <style>
15
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
16
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
17
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
18
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
19
+ code{font-family:var(--typography-code-font-family)}
20
+ </style>
21
+ <h2>Command source</h2>
22
+ <p><span data-design-component="risk-badge">read</span> Prints one composed command's source file exactly as stored. It has no JSON form.</p>
23
+ <p>Run <code>total-recall composable-cli read &lt;name&gt;</code>, adding <code>--global</code> or <code>--group &lt;id&gt;</code> for those scopes. It fails with a clear message when the command does not exist in that scope.</p>
24
+ <p>For the source together with its registry record, use <code>show</code>.</p>
25
+ </section>
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: remove
5
+ title: Remove a command
6
+ description: Deletes a composed command's source file and its registry record from one scope.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Delete a composed command that is no longer needed
10
+ surfaces: [page]
11
+ operations: [remove]
12
+ panel: home
13
+ ---
14
+ <section data-design-component="op-sheet">
15
+ <style>
16
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
17
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
18
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
19
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-danger);background:var(--color-danger-soft)}
20
+ code{font-family:var(--typography-code-font-family)}
21
+ </style>
22
+ <h2>Remove a command</h2>
23
+ <p><span data-design-component="risk-badge">destructive</span> Deletes the command's source and its registry record from the selected scope, then refreshes the command inventories. Saved history snapshots stay on disk.</p>
24
+ <p>Run <code>total-recall composable-cli remove &lt;name&gt;</code>, adding <code>--global</code> or <code>--group &lt;id&gt;</code> for those scopes. It confirms in plain text and fails when the command does not exist there.</p>
25
+ <p>In the CmdSmith Home, Remove asks for a second, confirming click before anything is deleted.</p>
26
+ </section>
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: rollback
5
+ title: Roll back a command
6
+ description: Restores a saved earlier version of a composed command, snapshotting the current one first and raising the registry version.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Roll back a composed command to an earlier version
10
+ surfaces: [page]
11
+ operations: [rollback]
12
+ panel: home
13
+ ---
14
+ <section data-design-component="op-sheet">
15
+ <style>
16
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
17
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
18
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
19
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-warn);background:var(--color-warn-soft)}
20
+ code{font-family:var(--typography-code-font-family)}
21
+ </style>
22
+ <h2>Roll back a command</h2>
23
+ <p><span data-design-component="risk-badge">write</span> Copies a saved version back over the command's source. The version being replaced is saved first, so a rollback can itself be undone. The registry version goes up by one and its code digest is recomputed.</p>
24
+ <p>Run <code>total-recall composable-cli rollback &lt;name&gt; &lt;version&gt;</code>, with the version as a plain number from <code>history</code>, adding <code>--global</code> or <code>--group &lt;id&gt;</code> for those scopes. It confirms in plain text and fails when that version was never saved.</p>
25
+ <p>In the CmdSmith Home, each saved version in the inspector has its own rollback button. Nothing is rolled back until you select one.</p>
26
+ </section>
@@ -0,0 +1,53 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: show
5
+ title: Command record
6
+ description: Shows a composed command's registry record (version, risk, scope, author, dates, digest) together with its source.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Inspect a composed command before running it
10
+ - Confirm a command's version, risk and code digest
11
+ surfaces: [page]
12
+ operations: [show]
13
+ data:
14
+ - show:/registry
15
+ - show:/registry/name
16
+ - show:/registry/scope
17
+ - show:/registry/risk
18
+ - show:/registry/version
19
+ - show:/registry/author
20
+ - show:/registry/created
21
+ - show:/registry/updated
22
+ - show:/registry/description
23
+ - show:/registry/background_allowed
24
+ - show:/registry/code_sha256
25
+ - show:/registry/source
26
+ - show:/code
27
+ panel: home
28
+ ---
29
+ <section data-design-component="op-sheet">
30
+ <style>
31
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
32
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
33
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
34
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
35
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
36
+ [data-design-component="field-list"] dt{color:var(--color-text)}
37
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
38
+ code{font-family:var(--typography-code-font-family)}
39
+ </style>
40
+ <h2>Command record</h2>
41
+ <p><span data-design-component="risk-badge">read</span> The registry record and source of one composed command. Nothing runs.</p>
42
+ <p>Run <code>total-recall composable-cli show &lt;name&gt; --json</code>, adding <code>--global</code> or <code>--group &lt;id&gt;</code> for those scopes. The CmdSmith Home opens this when you select a command.</p>
43
+ <dl data-design-component="field-list">
44
+ <dt>registry</dt><dd>The command's <code>cli_command</code> record, or null when the source file has no record beside it.</dd>
45
+ <dt>registry.version</dt><dd>Starts at 1 and goes up by one on every update or rollback.</dd>
46
+ <dt>registry.risk, registry.scope</dt><dd>The declared risk class and the scope the record was written for.</dd>
47
+ <dt>registry.author, registry.created, registry.updated</dt><dd>Who registered it and when it was first and last written.</dd>
48
+ <dt>registry.source</dt><dd><code>inline</code>, <code>from-plugin</code> or <code>config-for-skill</code>.</dd>
49
+ <dt>registry.background_allowed</dt><dd>Whether the command may run in the background.</dd>
50
+ <dt>registry.code_sha256</dt><dd>SHA-256 of the source at the last registry write; compare it with the code to spot hand edits.</dd>
51
+ <dt>code</dt><dd>The command's full source.</dd>
52
+ </dl>
53
+ </section>
@@ -0,0 +1,40 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: status
5
+ title: Plugin status
6
+ description: Shows which Composable CLI operations are implemented and where project and global composed commands are stored.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Check which Composable CLI operations are implemented
10
+ - Find where composed commands are stored
11
+ surfaces: [page]
12
+ operations: [status]
13
+ data:
14
+ - status:/plugin
15
+ - status:/implemented
16
+ - status:/scope/project
17
+ - status:/scope/global
18
+ panel: home
19
+ ---
20
+ <section data-design-component="op-sheet">
21
+ <style>
22
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
23
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
24
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
25
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
26
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
27
+ [data-design-component="field-list"] dt{color:var(--color-text)}
28
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
29
+ code{font-family:var(--typography-code-font-family)}
30
+ </style>
31
+ <h2>Plugin status</h2>
32
+ <p><span data-design-component="risk-badge">read</span> Reports what this plugin can do on this machine. It changes nothing.</p>
33
+ <p>Run <code>total-recall composable-cli status --json</code>. The CmdSmith Home reads it on open.</p>
34
+ <dl data-design-component="field-list">
35
+ <dt>plugin</dt><dd>The plugin id, <code>composable-cli</code>.</dd>
36
+ <dt>implemented</dt><dd>Every operation this build answers, including <code>status</code>.</dd>
37
+ <dt>scope.project</dt><dd>The project folder for composed commands: <code>.agent/commands</code> under the current repository.</dd>
38
+ <dt>scope.global</dt><dd>The machine-wide folder, <code>~/.agent/commands</code>. Absent when no home folder is set.</dd>
39
+ </dl>
40
+ </section>
@@ -0,0 +1,38 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: composable-cli
4
+ id: test-path
5
+ title: Find a command's test
6
+ description: Locates a composed command's test file in its scope without running it.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - Check whether a composed command has a test before running it
10
+ surfaces: [page]
11
+ operations: [test-path]
12
+ data:
13
+ - test-path:/ok
14
+ - test-path:/name
15
+ - test-path:/scope
16
+ - test-path:/testFile
17
+ ---
18
+ <section data-design-component="op-sheet">
19
+ <style>
20
+ [data-design-component="op-sheet"]{background:var(--color-surface);color:var(--color-text);font-family:var(--typography-body-font-family);font-size:var(--typography-body-font-size);line-height:var(--typography-body-line-height);border-radius:var(--radius-lg);padding:var(--spacing-lg)}
21
+ [data-design-component="op-sheet"] h2{font-family:var(--typography-title-font-family);font-size:var(--typography-title-font-size);font-weight:var(--typography-title-font-weight);margin:0 0 var(--spacing-sm)}
22
+ [data-design-component="op-sheet"] p{margin:0 0 var(--spacing-md)}
23
+ [data-design-component="risk-badge"]{font-family:var(--typography-label-font-family);font-size:var(--typography-label-font-size);font-weight:var(--typography-label-font-weight);letter-spacing:var(--typography-label-letter-spacing);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--color-ok);background:var(--color-ok-soft)}
24
+ [data-design-component="field-list"]{color:var(--color-muted);font-family:var(--typography-code-font-family);font-size:var(--typography-code-font-size);margin:0}
25
+ [data-design-component="field-list"] dt{color:var(--color-text)}
26
+ [data-design-component="field-list"] dd{margin:0 0 var(--spacing-sm);font-family:var(--typography-body-font-family)}
27
+ code{font-family:var(--typography-code-font-family)}
28
+ </style>
29
+ <h2>Find a command's test</h2>
30
+ <p><span data-design-component="risk-badge">read</span> Confirms that <code>&lt;name&gt;.test.mjs</code> is a regular file inside the command's own scope folder. It does not run the test.</p>
31
+ <p>Run <code>total-recall composable-cli test-path &lt;name&gt; --json</code>, adding <code>--global</code> or <code>--group &lt;id&gt;</code> for those scopes.</p>
32
+ <dl data-design-component="field-list">
33
+ <dt>ok</dt><dd>True when the test file was found.</dd>
34
+ <dt>name, scope</dt><dd>The command and scope that were checked.</dd>
35
+ <dt>testFile</dt><dd>The test file's full path.</dd>
36
+ </dl>
37
+ <p>A missing file, a link or a file outside the scope folder returns <code>{ ok: false, error }</code>.</p>
38
+ </section>