total-recall-brain 3.44.0 → 3.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/bin/total-recall.mjs +10 -6
  2. package/docs/ARCHITECTURE.md +10 -7
  3. package/docs/reference/cli-reference.md +13 -8
  4. package/frontend/dist/assets/index-BRYE1jmv.css +1 -0
  5. package/frontend/dist/assets/index-D1goIPjC.js +5598 -0
  6. package/frontend/dist/index.html +2 -2
  7. package/frontend/dist/sw.js +5 -4
  8. package/frontend/src/App.tsx +185 -238
  9. package/frontend/src/api/auth-inventory.ts +62 -0
  10. package/frontend/src/api/memory.ts +13 -8
  11. package/frontend/src/api/plugin-credentials.ts +23 -0
  12. package/frontend/src/api/plugins.ts +37 -53
  13. package/frontend/src/api/workspace-drawers.ts +97 -0
  14. package/frontend/src/components/BrainSelector.tsx +9 -3
  15. package/frontend/src/components/plugins/PluginPanel.tsx +83 -42
  16. package/frontend/src/components/plugins/PluginSettings.tsx +10 -20
  17. package/frontend/src/components/plugins/PluginWorkspace.tsx +367 -0
  18. package/frontend/src/components/plugins/ScopedPluginCommands.tsx +142 -0
  19. package/frontend/src/components/plugins/plugin-frame.ts +44 -33
  20. package/frontend/src/components/plugins/scoped-plugin-operations.ts +28 -0
  21. package/frontend/src/components/workspace/DrawerChat.tsx +110 -0
  22. package/frontend/src/components/workspace/DrawerLayout.tsx +196 -0
  23. package/frontend/src/components/workspace/DrawerMarkup.tsx +49 -0
  24. package/frontend/src/components/workspace/PluginChunkLibrary.tsx +92 -0
  25. package/frontend/src/components/workspace/PluginHome.tsx +76 -0
  26. package/frontend/src/components/workspace/WorkspaceDrawers.tsx +96 -0
  27. package/frontend/src/components/workspace/WorkspacePage.tsx +95 -0
  28. package/frontend/src/components/workspace/usePluginDesign.ts +38 -0
  29. package/frontend/src/index.css +409 -136
  30. package/frontend/src/pages/HelpPage.tsx +15 -46
  31. package/frontend/src/pages/MemoryPage.tsx +19 -36
  32. package/frontend/src/pages/SettingsPage.tsx +1 -1
  33. package/metadata.plugin.schema.json +53 -227
  34. package/package.json +1 -1
  35. package/scaffold/.agent/skills/plugin/SKILL.md +13 -11
  36. package/scaffold/.agent/skills/plugin/evals/README.md +14 -21
  37. package/scaffold/.agent/skills/plugin/evals/cases/01-fabricated-seed.mjs +15 -18
  38. package/scaffold/.agent/skills/plugin/evals/cases/02-reassuring-default.mjs +19 -24
  39. package/scaffold/.agent/skills/plugin/evals/cases/03-declared-template.mjs +12 -20
  40. package/scaffold/.agent/skills/plugin/evals/cases/04-home-collects-credential.mjs +35 -0
  41. package/scaffold/.agent/skills/plugin/evals/cases/05-host-leak-in-scaffold.mjs +8 -28
  42. package/scaffold/.agent/skills/plugin/evals/cases/06-correct-plugin.mjs +85 -47
  43. package/scaffold/.agent/skills/plugin/evals/run.mjs +17 -18
  44. package/scaffold/.agent/skills/plugin/prompts/05-credentials.md +4 -4
  45. package/scaffold/.agent/skills/plugin/prompts/07-scaffold.md +2 -2
  46. package/scaffold/.agent/skills/plugin/prompts/08-verify.md +4 -4
  47. package/scaffold/.agent/skills/plugin/references/anti-patterns.md +2 -2
  48. package/scaffold/.agent/skills/plugin/references/generative-home.md +38 -0
  49. package/scaffold/.agent/skills/plugin/references/scaffold.md +5 -5
  50. package/scaffold/.agent/skills/plugin/references/surfaces.md +13 -4
  51. package/scaffold/.agent/skills/plugin/scripts/record.mjs +75 -153
  52. package/scaffold/.agent/skills/plugin/subagents/plugin-reviewer.md +4 -4
  53. package/scaffold/.agent/skills/total-recall/plugins/auth/DESIGN.md +76 -0
  54. package/scaffold/.agent/skills/total-recall/plugins/auth/README.md +3 -1
  55. package/scaffold/.agent/skills/total-recall/plugins/auth/cli.mjs +20 -15
  56. package/scaffold/.agent/skills/total-recall/plugins/auth/package-lock.json +7 -7
  57. package/scaffold/.agent/skills/total-recall/plugins/auth/package.json +2 -1
  58. package/scaffold/.agent/skills/total-recall/plugins/auth/plugin.json +13 -51
  59. package/scaffold/.agent/skills/total-recall/plugins/auth/src/cli-secret.mjs +20 -1
  60. package/scaffold/.agent/skills/total-recall/plugins/auth/src/secrets-store.mjs +12 -1
  61. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/access-overview.md +17 -0
  62. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/agent-login.md +20 -0
  63. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/baseline-audit.md +22 -0
  64. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/credential-repository-binding.md +17 -0
  65. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/credential-store-maintenance.md +17 -0
  66. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/dashboard-password.md +18 -0
  67. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/dashboard-sessions.md +18 -0
  68. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/endpoint-probe.md +23 -0
  69. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/google-sign-in.md +21 -0
  70. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/mesh-machines.md +16 -0
  71. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/passkey-enrollment.md +21 -0
  72. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/registered-brains.md +16 -0
  73. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/scoped-access-keys.md +17 -0
  74. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/secret-inventory.md +25 -0
  75. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/signing-key-rotation.md +22 -0
  76. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/home.js +375 -0
  77. package/scaffold/.agent/skills/total-recall/plugins/automations/BRICK.md +7 -0
  78. package/scaffold/.agent/skills/total-recall/plugins/automations/DESIGN.md +53 -0
  79. package/scaffold/.agent/skills/total-recall/plugins/automations/LICENSE +21 -0
  80. package/scaffold/.agent/skills/total-recall/plugins/automations/README.md +66 -0
  81. package/scaffold/.agent/skills/total-recall/plugins/automations/adapters.mjs +247 -0
  82. package/scaffold/.agent/skills/total-recall/plugins/automations/capability/index.mjs +16 -0
  83. package/scaffold/.agent/skills/total-recall/plugins/automations/cli.mjs +130 -0
  84. package/{src/core/plugin-cron.mjs → scaffold/.agent/skills/total-recall/plugins/automations/cron.mjs} +1 -3
  85. package/scaffold/.agent/skills/total-recall/plugins/automations/inventory.mjs +88 -0
  86. package/scaffold/.agent/skills/total-recall/plugins/automations/package-lock.json +7661 -0
  87. package/scaffold/.agent/skills/total-recall/plugins/automations/package.json +36 -0
  88. package/scaffold/.agent/skills/total-recall/plugins/automations/plugin.json +151 -0
  89. package/scaffold/.agent/skills/total-recall/plugins/automations/scheduler.mjs +246 -0
  90. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/automations.js +2 -0
  91. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/control-ledger.md +42 -0
  92. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/local-inventory-triage.md +17 -0
  93. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/pending-control.md +39 -0
  94. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/run-evidence.md +41 -0
  95. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/schedule-vs-run-evidence.md +17 -0
  96. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/source-coverage.md +41 -0
  97. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/home.js +278 -0
  98. package/scaffold/.agent/skills/total-recall/plugins/code-quality/DESIGN.md +53 -0
  99. package/scaffold/.agent/skills/total-recall/plugins/code-quality/cli.mjs +23 -0
  100. package/scaffold/.agent/skills/total-recall/plugins/code-quality/commands/run-core.mjs +5 -3
  101. package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/check.mjs +61 -7
  102. package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/report-data.mjs +40 -14
  103. package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/report.mjs +15 -40
  104. package/scaffold/.agent/skills/total-recall/plugins/code-quality/package-lock.json +7 -7
  105. package/scaffold/.agent/skills/total-recall/plugins/code-quality/package.json +2 -1
  106. package/scaffold/.agent/skills/total-recall/plugins/code-quality/plugin.json +40 -40
  107. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/config.md +15 -0
  108. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/detect.md +15 -0
  109. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/gate.md +15 -0
  110. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/init.md +15 -0
  111. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/report.md +17 -0
  112. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/run.md +17 -0
  113. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/snapshot.md +15 -0
  114. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/code-quality-report.mjs +55 -23
  115. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/home.mjs +214 -0
  116. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/DESIGN.md +146 -0
  117. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package-lock.json +7 -7
  118. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package.json +2 -1
  119. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/plugin.json +51 -34
  120. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/src/command.mjs +1 -1
  121. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/create.md +35 -0
  122. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/history.md +35 -0
  123. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/library.md +49 -0
  124. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/list.md +42 -0
  125. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/promote.md +40 -0
  126. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/read.md +25 -0
  127. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/remove.md +26 -0
  128. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/rollback.md +26 -0
  129. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/show.md +53 -0
  130. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/status.md +40 -0
  131. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/test-path.md +38 -0
  132. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/test.md +46 -0
  133. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/update.md +32 -0
  134. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/home.js +533 -0
  135. package/scaffold/.agent/skills/total-recall/plugins/embeddings/DESIGN.md +110 -0
  136. package/scaffold/.agent/skills/total-recall/plugins/embeddings/package-lock.json +7 -7
  137. package/scaffold/.agent/skills/total-recall/plugins/embeddings/package.json +2 -1
  138. package/scaffold/.agent/skills/total-recall/plugins/embeddings/plugin.json +13 -10
  139. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/benchmark.md +49 -0
  140. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/coverage.md +53 -0
  141. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/models.md +43 -0
  142. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/pull.md +41 -0
  143. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/status.md +59 -0
  144. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/home.js +353 -0
  145. package/scaffold/.agent/skills/total-recall/plugins/git/DESIGN.md +31 -0
  146. package/scaffold/.agent/skills/total-recall/plugins/git/README.md +136 -0
  147. package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/cli.mjs +140 -24
  148. package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/package-lock.json +9 -9
  149. package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/package.json +4 -2
  150. package/scaffold/.agent/skills/total-recall/plugins/git/plugin.json +151 -0
  151. package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/context.mjs +94 -0
  152. package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/phase3-spec-support.mjs +50 -0
  153. package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/runtime.mjs +40 -0
  154. package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/spec-support.mjs +51 -0
  155. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/_support.mjs +195 -0
  156. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/auth.mjs +201 -0
  157. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/bisect.mjs +40 -0
  158. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/cli-meta.mjs +159 -0
  159. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/commit-memory.mjs +54 -0
  160. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/commit.mjs +46 -0
  161. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/fleet.mjs +174 -0
  162. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/force-push.mjs +58 -0
  163. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/group.mjs +119 -0
  164. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/handoff.mjs +59 -0
  165. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/message.mjs +22 -0
  166. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/resolve.mjs +60 -0
  167. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/rules.mjs +81 -0
  168. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/secret-firewall.mjs +92 -0
  169. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/undo.mjs +156 -0
  170. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/unmerged.mjs +182 -0
  171. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/why.mjs +16 -0
  172. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/change-comparison.md +27 -0
  173. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/commit-identity.md +22 -0
  174. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/create-worktree.md +25 -0
  175. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/registered-worktrees.md +22 -0
  176. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/remove-worktree.md +23 -0
  177. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/repository-ledger.md +25 -0
  178. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/unmerged-work.md +22 -0
  179. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/upstream-divergence.md +17 -0
  180. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/worktree-conflict-triage.md +17 -0
  181. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/worktree-terminal.md +22 -0
  182. package/scaffold/.agent/skills/total-recall/plugins/git/ui/home.js +273 -0
  183. package/scaffold/.agent/skills/total-recall/plugins/mesh/DESIGN.md +35 -0
  184. package/scaffold/.agent/skills/total-recall/plugins/mesh/README.md +4 -5
  185. package/scaffold/.agent/skills/total-recall/plugins/mesh/cli.mjs +9 -3
  186. package/scaffold/.agent/skills/total-recall/plugins/mesh/package-lock.json +7 -7
  187. package/scaffold/.agent/skills/total-recall/plugins/mesh/package.json +2 -1
  188. package/scaffold/.agent/skills/total-recall/plugins/mesh/plugin.json +37 -39
  189. package/scaffold/.agent/skills/total-recall/plugins/mesh/src/cli/mesh.mjs +5 -3
  190. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/active-device-dispatch.md +22 -0
  191. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/control-probe.md +25 -0
  192. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/control-server.md +22 -0
  193. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/credential-readiness.md +23 -0
  194. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/elected-leader.md +22 -0
  195. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/enrollment-key.md +22 -0
  196. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/file-receipt.md +25 -0
  197. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/fleet-execution.md +23 -0
  198. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/fleet-presence.md +23 -0
  199. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/interactive-ssh.md +22 -0
  200. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/local-enrollment.md +23 -0
  201. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/mesh-policy.md +23 -0
  202. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/network-atlas.md +25 -0
  203. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/node-roster.md +26 -0
  204. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/node-selection-proof.md +17 -0
  205. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/owner-observations.md +23 -0
  206. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/peer-path.md +23 -0
  207. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/pinned-leader.md +24 -0
  208. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/reachability-evidence-ladder.md +17 -0
  209. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/recorded-login.md +23 -0
  210. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/remote-execution.md +22 -0
  211. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/secret-grants.md +26 -0
  212. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/{card.js → home.js} +93 -22
  213. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/DESIGN.md +86 -0
  214. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/README.md +44 -9
  215. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/capability/BRICK.md +1 -1
  216. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/capability/index.mjs +18 -6
  217. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/cli.mjs +128 -24
  218. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package-lock.json +7 -7
  219. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package.json +3 -2
  220. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/plugin.json +188 -34
  221. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/skills/meta-harness/SKILL.md +17 -3
  222. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/adoption.mjs +2 -2
  223. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/alerts.mjs +3 -3
  224. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/cascade.mjs +92 -18
  225. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/chat.mjs +80 -0
  226. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/control.mjs +145 -0
  227. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/coordinator.mjs +42 -21
  228. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/dispatch-request.mjs +4 -2
  229. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/dispatch.mjs +33 -9
  230. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/documentation.mjs +55 -11
  231. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/executor.mjs +26 -4
  232. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/gate-adapters/hermes.mjs +29 -1
  233. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/gate-adapters/index.mjs +1 -1
  234. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/included-usage.mjs +1 -1
  235. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/jobs.mjs +84 -0
  236. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/learner.mjs +3 -12
  237. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/maintenance.mjs +17 -0
  238. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/mcp-server.mjs +228 -0
  239. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/process-manager.mjs +25 -2
  240. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/reasoning.mjs +1 -1
  241. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/remote-operation.mjs +5 -1
  242. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/review.mjs +34 -3
  243. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/reviews.mjs +25 -0
  244. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/router.mjs +1 -1
  245. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/claude.mjs +319 -0
  246. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/codex.mjs +387 -0
  247. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/result.mjs +67 -0
  248. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/resume.mjs +373 -0
  249. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/run.mjs +223 -0
  250. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session-jobs.mjs +72 -0
  251. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/setup.mjs +6 -3
  252. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/termination.mjs +16 -12
  253. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/threads.mjs +32 -1
  254. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/usage-queue.mjs +1 -1
  255. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/verify-ssss.mjs +3 -3
  256. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/worker.mjs +285 -40
  257. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/worktree.mjs +76 -9
  258. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/adapter-docs-freshness.md +16 -0
  259. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/chat-handoff.md +26 -0
  260. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/fleet-maintenance.md +21 -0
  261. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/harness-inventory.md +21 -0
  262. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/included-access.md +18 -0
  263. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/included-usage-verification.md +15 -0
  264. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/independent-review.md +17 -0
  265. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/managed-execution.md +20 -0
  266. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/official-documentation.md +18 -0
  267. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/quota-recovery.md +21 -0
  268. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/review-routing-decision.md +16 -0
  269. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/route-work.md +18 -0
  270. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/routing-evidence.md +18 -0
  271. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/run-ledger.md +18 -0
  272. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/home.js +198 -0
  273. package/scaffold/.agent/skills/total-recall/plugins/openwiki/DESIGN.md +75 -0
  274. package/scaffold/.agent/skills/total-recall/plugins/openwiki/README.md +2 -0
  275. package/scaffold/.agent/skills/total-recall/plugins/openwiki/cli.mjs +64 -32
  276. package/scaffold/.agent/skills/total-recall/plugins/openwiki/package-lock.json +7 -7
  277. package/scaffold/.agent/skills/total-recall/plugins/openwiki/package.json +2 -1
  278. package/scaffold/.agent/skills/total-recall/plugins/openwiki/plugin.json +10 -44
  279. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/generate.mjs +5 -4
  280. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/graph.mjs +3 -4
  281. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/ingest.mjs +23 -18
  282. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/mesh-vaults.mjs +8 -3
  283. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/refresh-diagnostics.mjs +44 -0
  284. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/refresh.mjs +123 -113
  285. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/search.mjs +3 -5
  286. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/token.mjs +21 -47
  287. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/upstream-watcher.mjs +17 -6
  288. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/auto-refresh.md +18 -0
  289. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/bootstrap-pages.md +18 -0
  290. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/generate-wiki.md +21 -0
  291. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/generator-settings.md +18 -0
  292. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/host-probe.md +18 -0
  293. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/ingest-preview.md +18 -0
  294. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/link-hygiene.md +21 -0
  295. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/link-topology.md +19 -0
  296. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/passage-search.md +19 -0
  297. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/propagation-plan.md +18 -0
  298. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/provider-credentials.md +18 -0
  299. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/refresh-report.md +18 -0
  300. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/task-evidence.md +22 -0
  301. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/upstream-record.md +18 -0
  302. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/watch-upstream.md +18 -0
  303. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/wiki-atlas.md +19 -0
  304. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/panel.js +261 -513
  305. package/scaffold/.agent/skills/total-recall/plugins/security/DESIGN.md +84 -0
  306. package/scaffold/.agent/skills/total-recall/plugins/security/README.md +4 -2
  307. package/scaffold/.agent/skills/total-recall/plugins/security/cli.mjs +7 -19
  308. package/scaffold/.agent/skills/total-recall/plugins/security/package-lock.json +7 -7
  309. package/scaffold/.agent/skills/total-recall/plugins/security/package.json +2 -3
  310. package/scaffold/.agent/skills/total-recall/plugins/security/plugin.json +19 -52
  311. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/device-evidence.md +21 -0
  312. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/evidence-desk.md +18 -0
  313. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/guided-device-review.md +17 -0
  314. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/host-and-network.md +21 -0
  315. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/https-headers.md +17 -0
  316. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/mesh-coverage.md +18 -0
  317. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/private-security-tools.md +16 -0
  318. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/single-origin-header-check.md +17 -0
  319. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/source-review.md +21 -0
  320. package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/ssh-permission-plan.md +17 -0
  321. package/scaffold/.agent/skills/total-recall/plugins/security/ui/home.js +283 -0
  322. package/scaffold/.agent/skills/total-recall/plugins/ssss/DESIGN.md +93 -0
  323. package/scaffold/.agent/skills/total-recall/plugins/ssss/package-lock.json +2 -2
  324. package/scaffold/.agent/skills/total-recall/plugins/ssss/package.json +2 -1
  325. package/scaffold/.agent/skills/total-recall/plugins/ssss/plugin.json +5 -3
  326. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/conformance.md +26 -0
  327. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/registry.md +37 -0
  328. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/repair.md +42 -0
  329. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/scaffold.md +33 -0
  330. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/status.md +43 -0
  331. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/validate.md +34 -0
  332. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/validation-diagnostics.md +17 -0
  333. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/workspace-registry-preflight.md +17 -0
  334. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/home.js +348 -0
  335. package/scaffold/.agent/skills/total-recall/references/operations.md +3 -1
  336. package/src/cli/agent.mjs +1 -1
  337. package/src/cli/api.mjs +3 -3
  338. package/src/cli/brief.mjs +3 -0
  339. package/src/cli/command.mjs +41 -2
  340. package/src/cli/config.mjs +16 -0
  341. package/src/cli/connect.mjs +2 -7
  342. package/src/cli/dream.mjs +93 -69
  343. package/src/cli/harness.mjs +4 -4
  344. package/src/cli/help.mjs +1 -1
  345. package/src/cli/init.mjs +0 -25
  346. package/src/cli/lessons.mjs +51 -0
  347. package/src/cli/memory-plugin.mjs +1 -1
  348. package/src/cli/plugin/chunks.mjs +145 -0
  349. package/src/cli/plugin/copies.mjs +64 -14
  350. package/src/cli/plugin/create.mjs +30 -59
  351. package/src/cli/plugin/index.mjs +31 -16
  352. package/src/cli/plugin/install.mjs +10 -15
  353. package/src/cli/plugin/remove.mjs +1 -1
  354. package/src/cli/plugin/search.mjs +2 -2
  355. package/src/cli/preflight.mjs +19 -6
  356. package/src/cli/proposals.mjs +1 -1
  357. package/src/cli/recall.mjs +66 -23
  358. package/src/cli/remember.mjs +3 -14
  359. package/src/cli/server.mjs +18 -0
  360. package/src/cli/setup.mjs +2 -9
  361. package/src/cli/start.mjs +1 -0
  362. package/src/cli/startup.mjs +19 -0
  363. package/src/cli/task.mjs +9 -2
  364. package/src/cli/update.mjs +6 -2
  365. package/src/core/access-ledger.mjs +78 -0
  366. package/src/core/agent-manager.mjs +2 -2
  367. package/src/core/app-deploy/design-tokens.mjs +14 -9
  368. package/src/core/app-deploy/ui-elements.mjs +1 -1
  369. package/src/core/brain-locate.mjs +15 -0
  370. package/src/core/brain-registry.mjs +5 -0
  371. package/src/core/brain-updates.mjs +35 -11
  372. package/src/core/claude-hooks.mjs +3 -1
  373. package/src/core/cleanup-task.mjs +15 -0
  374. package/src/core/cli-commands.mjs +2 -0
  375. package/src/core/cli-maintenance.mjs +4 -1
  376. package/src/core/cli-semantic-index.mjs +23 -3
  377. package/src/core/context-compiler.mjs +20 -0
  378. package/src/core/daemon-control.mjs +5 -1
  379. package/src/core/daemon-loop.mjs +39 -62
  380. package/src/core/dashboard-bundle.mjs +261 -0
  381. package/src/core/default-plugins.mjs +1 -1
  382. package/src/core/dream.mjs +33 -105
  383. package/src/core/ensure-dependencies.mjs +152 -0
  384. package/src/core/fast-recall.mjs +2 -2
  385. package/src/core/field-evaluation.mjs +23 -0
  386. package/src/core/gate-mode.mjs +1 -1
  387. package/src/core/harness-hooks.mjs +14 -2
  388. package/src/core/lesson-hooks.mjs +74 -0
  389. package/src/core/lesson-memory.mjs +24 -0
  390. package/src/core/lesson-sessions.mjs +52 -0
  391. package/src/core/lessons.mjs +96 -0
  392. package/src/core/memory-brain.mjs +30 -8
  393. package/src/core/meta-harness.mjs +2 -2
  394. package/src/core/optimizer.mjs +66 -165
  395. package/src/core/plugin-activation.mjs +63 -20
  396. package/src/core/plugin-contracts/{card.mjs → manifest.mjs} +26 -57
  397. package/src/core/plugin-contracts/startup-check.mjs +49 -0
  398. package/src/core/plugin-contracts/ui.mjs +9 -3
  399. package/src/core/plugin-distribution.mjs +6 -6
  400. package/src/core/plugin-lifecycle.mjs +58 -0
  401. package/src/core/plugin-loader.mjs +21 -8
  402. package/src/core/plugin-runner.mjs +21 -10
  403. package/src/core/plugin-runtime.mjs +40 -1
  404. package/src/core/plugin-startup-checks.mjs +44 -0
  405. package/src/core/plugin-state.mjs +19 -5
  406. package/src/core/plugin-store.mjs +64 -33
  407. package/src/core/post-mortem.mjs +52 -36
  408. package/src/core/preflight-gate.mjs +23 -2
  409. package/src/core/project-id.mjs +15 -5
  410. package/src/core/proposal-applier.mjs +31 -2
  411. package/src/core/repo-sync.mjs +4 -6
  412. package/src/core/required-plugins.mjs +57 -10
  413. package/src/core/rule-length.mjs +23 -0
  414. package/src/core/runtime.mjs +1 -1
  415. package/src/core/scheduler.mjs +35 -43
  416. package/src/core/schema.mjs +3 -2
  417. package/src/core/search.mjs +4 -3
  418. package/src/core/server-service.mjs +148 -0
  419. package/src/core/session-watcher.mjs +19 -1
  420. package/src/core/skill-gap.mjs +16 -0
  421. package/src/core/ssss-kernel-bridge.mjs +32 -4
  422. package/src/core/ssss-operation-service.mjs +1 -0
  423. package/src/core/startup-health.mjs +34 -4
  424. package/src/core/surface.mjs +65 -54
  425. package/src/core/task-executors.mjs +54 -106
  426. package/src/core/testing/plugin-fixture.mjs +22 -21
  427. package/src/core/throttled-fetch.mjs +25 -18
  428. package/src/core/ui-chunk-choice.mjs +77 -0
  429. package/src/core/ui-chunk.registry.json +23 -0
  430. package/src/core/ui-chunks.mjs +434 -0
  431. package/src/core/validated-write.mjs +1 -0
  432. package/src/core/vault-cache.mjs +58 -59
  433. package/src/core/vector-field.mjs +134 -192
  434. package/src/core/workspace-compositions.mjs +151 -0
  435. package/src/core/workspace-drawers.mjs +79 -0
  436. package/src/server/api.mjs +4 -27
  437. package/src/server/index.mjs +28 -21
  438. package/src/server/invoke-core-child.mjs +24 -0
  439. package/src/server/invoke-core-operations.mjs +102 -0
  440. package/src/server/memory-events.mjs +31 -0
  441. package/src/server/plugin-brain-targets.mjs +89 -0
  442. package/src/server/rest.mjs +2 -0
  443. package/src/server/route-inventory.mjs +3 -2
  444. package/src/server/route-manifest.json +47 -55
  445. package/src/server/routes/_shared.mjs +7 -14
  446. package/src/server/routes/brains.mjs +29 -62
  447. package/src/server/routes/context.mjs +0 -41
  448. package/src/server/routes/dashboard.mjs +26 -0
  449. package/src/server/routes/invoke.mjs +26 -1
  450. package/src/server/routes/plugins.mjs +154 -45
  451. package/src/server/routes/ssss.mjs +0 -169
  452. package/src/server/routes/system.mjs +0 -15
  453. package/src/server/routes/tasks.mjs +0 -26
  454. package/src/server/routes/ui-chunks.mjs +192 -0
  455. package/src/server/routes/vault.mjs +2 -23
  456. package/frontend/dist/assets/index-DD4qONvH.js +0 -5607
  457. package/frontend/dist/assets/index-DtwsDyFM.css +0 -1
  458. package/frontend/src/components/plugins/card/CardEngine.tsx +0 -108
  459. package/frontend/src/components/plugins/card/CardScenes.tsx +0 -103
  460. package/frontend/src/components/plugins/card/ExecutionPicker.tsx +0 -64
  461. package/frontend/src/components/plugins/card/args.ts +0 -28
  462. package/frontend/src/components/plugins/card/card.css +0 -32
  463. package/frontend/src/components/plugins/card/cli-line.ts +0 -13
  464. package/frontend/src/components/plugins/card/contract.ts +0 -91
  465. package/frontend/src/components/plugins/card/format.ts +0 -49
  466. package/frontend/src/components/plugins/card/runner-context.ts +0 -11
  467. package/frontend/src/components/plugins/card/runner.tsx +0 -43
  468. package/frontend/src/components/plugins/card/theme.ts +0 -35
  469. package/frontend/src/components/plugins/card/use-source.ts +0 -22
  470. package/frontend/src/components/plugins/card/widgets.tsx +0 -94
  471. package/frontend/src/components/plugins/workspace/WorkspaceHost.tsx +0 -23
  472. package/frontend/src/pages/PluginsPage.tsx +0 -1719
  473. package/scaffold/.agent/skills/plugin/evals/cases/04-card-collects-credential.mjs +0 -47
  474. package/scaffold/.agent/skills/plugin/prompts/06-card.md +0 -46
  475. package/scaffold/.agent/skills/plugin/references/card.md +0 -90
  476. package/scaffold/.agent/skills/plugin/subagents/card-designer.md +0 -60
  477. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/DESIGN.md +0 -67
  478. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/card.js +0 -1179
  479. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/DESIGN.md +0 -32
  480. package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/card.js +0 -588
  481. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/card.js +0 -575
  482. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/DESIGN.md +0 -32
  483. package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/card.js +0 -482
  484. package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/README.md +0 -53
  485. package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/plugin.json +0 -129
  486. package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/ui/DESIGN.md +0 -100
  487. package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/ui/card.js +0 -637
  488. package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/DESIGN.md +0 -217
  489. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/DESIGN.md +0 -32
  490. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/card.js +0 -1276
  491. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/DESIGN.md +0 -45
  492. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/card.js +0 -1401
  493. package/scaffold/.agent/skills/total-recall/plugins/security/scripts/build-ui.mjs +0 -4
  494. package/scaffold/.agent/skills/total-recall/plugins/security/ui/DESIGN.md +0 -41
  495. package/scaffold/.agent/skills/total-recall/plugins/security/ui/card.js +0 -396
  496. package/scaffold/.agent/skills/total-recall/plugins/security/ui/panel.js +0 -98
  497. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/DESIGN.md +0 -15
  498. package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/card.js +0 -182
  499. package/src/core/append-log.mjs +0 -131
  500. package/src/core/plugin-tasks.mjs +0 -173
  501. package/templates/onboarding-interview.md +0 -82
  502. /package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/LICENSE +0 -0
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://github.com/gregiteen/total-recall/blob/main/metadata.plugin.schema.json",
3
3
  "id": "mesh",
4
4
  "name": "Headscale",
5
- "version": "0.2.9",
5
+ "version": "0.3.0",
6
6
  "description": "Control-server mesh administration, Tailscale SSH, and peer node discovery.",
7
7
  "license": "MIT",
8
8
  "requires": [
@@ -22,34 +22,6 @@
22
22
  "url": "https://headscale.net"
23
23
  }
24
24
  },
25
- "card_face": {
26
- "skin": "mesh-telemetry",
27
- "theme": "vibrant",
28
- "headline": "Mesh Control Deck",
29
- "primary_color": "#2563eb",
30
- "secondary_color": "#1e3a8a",
31
- "accent_color": "#3b82f6",
32
- "quick_actions": [
33
- {
34
- "subcommand": "status",
35
- "label": "STATUS"
36
- },
37
- {
38
- "subcommand": "nodes",
39
- "label": "NODES"
40
- },
41
- {
42
- "subcommand": "doctor",
43
- "label": "DOCTOR"
44
- },
45
- {
46
- "subcommand": "leader",
47
- "label": "LEADER"
48
- }
49
- ],
50
- "touch_layout": "comfortable",
51
- "interactive": true
52
- },
53
25
  "ssss_schemas": {
54
26
  "categories": [
55
27
  {
@@ -222,7 +194,8 @@
222
194
  "name": "preauthkey",
223
195
  "description": "Issue a secret enrollment key to an interactive terminal",
224
196
  "effect": "write",
225
- "output": "text"
197
+ "output": "text",
198
+ "sensitive_output": true
226
199
  },
227
200
  {
228
201
  "name": "policy",
@@ -234,6 +207,12 @@
234
207
  "description": "Mesh probe operation",
235
208
  "effect": "read"
236
209
  },
210
+ {
211
+ "name": "token-status",
212
+ "description": "Check whether Auth has a saved mesh credential",
213
+ "effect": "read",
214
+ "output": "json"
215
+ },
237
216
  {
238
217
  "name": "token",
239
218
  "description": "Mesh token operation",
@@ -262,14 +241,40 @@
262
241
  ]
263
242
  },
264
243
  "ui": {
265
- "design_tokens": "ui/DESIGN.md",
244
+ "design_tokens": "DESIGN.md",
245
+ "home": "network",
266
246
  "elements": [
247
+ {
248
+ "id": "network",
249
+ "kind": "panel",
250
+ "tag": "mesh-home",
251
+ "module": "ui/home.js",
252
+ "description": "Mesh network atlas",
253
+ "tokens": [
254
+ "color-background",
255
+ "color-surface",
256
+ "color-text",
257
+ "color-border",
258
+ "spacing-md",
259
+ "radius-md"
260
+ ],
261
+ "optional_tokens": [
262
+ "color-muted",
263
+ "color-accent",
264
+ "color-ok",
265
+ "color-warn",
266
+ "color-danger",
267
+ "typography-body-font-family",
268
+ "typography-heading-font-family",
269
+ "typography-mono-font-family"
270
+ ]
271
+ },
267
272
  {
268
273
  "id": "panel",
269
274
  "kind": "panel",
270
275
  "tag": "mesh-panel",
271
276
  "module": "ui/panel.js",
272
- "description": "Mesh panel",
277
+ "description": "Mesh credential setup through Auth",
273
278
  "events": [
274
279
  "save-token"
275
280
  ],
@@ -287,13 +292,6 @@
287
292
  "description": "Printed by `total-recall mesh token status --json`: { present, secretKey }"
288
293
  }
289
294
  }
290
- },
291
- {
292
- "id": "card",
293
- "kind": "card",
294
- "tag": "tr-mesh-card",
295
- "module": "ui/card.js",
296
- "description": "Meshlink Card Face"
297
295
  }
298
296
  ]
299
297
  },
@@ -50,6 +50,8 @@ function printHelp() {
50
50
  view <screen> Read Machines, Flows, Placement, Boundary or Join sources (--json)
51
51
  doctor Probe reachability & compute capabilities across all nodes
52
52
  nodes List mesh nodes and how to reach each one
53
+ token-status Read whether Auth has a saved mesh credential (--json)
54
+ token status Show credential presence and its Auth binding
53
55
  ssh <node> [cmd…] Open a session using the node's recorded access
54
56
  exec <node> <cmd…> Execute a command on a node non-interactively (--json)
55
57
  leader [--json] Show the elected leader and its server port
@@ -226,7 +228,7 @@ export default async function meshCli(argv = []) {
226
228
  error: null
227
229
  };
228
230
  nodeInfo.tested_runtimes = ['ollama', 'docker', 'node', 'git'];
229
- nodeInfo.tested_harnesses = ['agy', 'claude', 'codex', 'gemini'];
231
+ nodeInfo.tested_harnesses = ['agy', 'claude', 'codex'];
230
232
 
231
233
  if (node.self) {
232
234
  try {
@@ -239,7 +241,7 @@ export default async function meshCli(argv = []) {
239
241
  nodeInfo.reachable = true;
240
242
  } else if (resolved.complete) {
241
243
  try {
242
- const probeCmd = 'echo "agy=$(which agy 2>/dev/null) claude=$(which claude 2>/dev/null) codex=$(which codex 2>/dev/null) gemini=$(which gemini 2>/dev/null) ollama=$(which ollama 2>/dev/null) docker=$(which docker 2>/dev/null) node=$(which node 2>/dev/null) git=$(which git 2>/dev/null)"';
244
+ const probeCmd = 'echo "agy=$(which agy 2>/dev/null) claude=$(which claude 2>/dev/null) codex=$(which codex 2>/dev/null) ollama=$(which ollama 2>/dev/null) docker=$(which docker 2>/dev/null) node=$(which node 2>/dev/null) git=$(which git 2>/dev/null)"';
243
245
  const { execMeshCommand } = await import('../core/mesh.mjs');
244
246
  // Cloud peers routinely need several seconds; a 4 s budget reported
245
247
  // reachable machines as down.
@@ -250,7 +252,7 @@ export default async function meshCli(argv = []) {
250
252
  for (const part of parts) {
251
253
  const [k, v] = part.split('=');
252
254
  if (v && v.trim()) {
253
- if (['agy', 'claude', 'codex', 'gemini'].includes(k)) {
255
+ if (nodeInfo.tested_harnesses.includes(k)) {
254
256
  nodeInfo.harnesses.push(k);
255
257
  } else {
256
258
  nodeInfo.runtimes.push(k);
@@ -0,0 +1,22 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh dispatch receipt
4
+ description: Send a command to an explicit or freshly active device and inspect whether dispatch succeeded.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: active-device-dispatch
8
+ intents: [send command to active device, dispatch mesh task, inspect dispatch result, run on selected machine]
9
+ surfaces: [page]
10
+ operations: [dispatch]
11
+ data: ["dispatch:/dispatched", "dispatch:/is_local", "dispatch:/timestamp"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-dispatch { padding:var(--spacing-md); border-inline-start:3px solid var(--color-accent); background:var(--color-surface); }
16
+ .mesh-dispatch h2 { margin-top:0; }
17
+ .mesh-dispatch strong { color:var(--color-accent); }
18
+ </style>
19
+ <section class="mesh-dispatch">
20
+ <h2>Read where dispatch ran</h2>
21
+ <p>Supply an explicit target or let Mesh resolve a device from fresh presence. The receipt records whether the command dispatched and whether it ran <strong>locally or on a peer</strong>.</p>
22
+ </section>
@@ -0,0 +1,25 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh control verification
4
+ description: Check the control API and local mesh network as independent observations.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: control-probe
8
+ intents: [verify mesh control API, probe control server, troubleshoot Headscale API, check control plane health]
9
+ surfaces: [page, right]
10
+ operations: [probe]
11
+ data: ["probe:/control/verified", "probe:/control/state", "probe:/network_available"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-probe { padding:var(--spacing-md); background:var(--color-surface); border-inline-start:3px solid var(--color-accent); }
16
+ .mesh-probe h2 { margin-top:0; }
17
+ .mesh-probe li + li { margin-top:.4em; }
18
+ </style>
19
+ <section class="mesh-probe">
20
+ <h2>Test the control API</h2>
21
+ <ul>
22
+ <li>Read whether the authenticated control API was verified.</li>
23
+ <li>Check local mesh network availability separately.</li>
24
+ </ul>
25
+ </section>
@@ -0,0 +1,22 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Recorded mesh control server
4
+ description: Check whether the local owner has a recorded provisioning target for the control server.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: control-server
8
+ intents: [inspect mesh server provisioning, manage Headscale control server, check recorded server target, mesh server update]
9
+ surfaces: [page]
10
+ operations: [server]
11
+ data: ["server:/provisioned"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-server { padding:var(--spacing-md); background:var(--color-surface); border:1px solid var(--color-border); }
16
+ .mesh-server h2 { margin-top:0; }
17
+ .mesh-server code { color:var(--color-accent); }
18
+ </style>
19
+ <section class="mesh-server">
20
+ <h2>Inspect the provisioning record</h2>
21
+ <p>Run <code>server status</code> for the recorded control-server target. Use the control probe to verify the service that is answering now.</p>
22
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh credential readiness
4
+ description: Check whether Auth has the shared mesh credential, and use Auth to manage its value.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: credential-readiness
8
+ intents: [is mesh key configured, check mesh token status, save shared mesh credential, refresh Headscale auth]
9
+ surfaces: [page, right]
10
+ operations: [token-status, token]
11
+ data: ["token-status:/present", "token:/present"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-auth { padding:var(--spacing-md); background:var(--color-surface); border-radius:var(--radius-md); }
16
+ .mesh-auth h2 { margin:.25em 0; }
17
+ .mesh-auth small { color:var(--color-accent); font-weight:600; }
18
+ </style>
19
+ <section class="mesh-auth">
20
+ <small>Total Recall Auth</small>
21
+ <h2>Read credential presence</h2>
22
+ <p>Mesh Home reports whether the shared credential is saved. Check control verification separately. Use the credential setup panel to manage the value through Auth.</p>
23
+ </section>
@@ -0,0 +1,22 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Elected mesh leader
4
+ description: Inspect the election strategy, leader server port, and this machine's leader role.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: elected-leader
8
+ intents: [who is mesh leader, mesh leader election, leader port, is this machine leader]
9
+ surfaces: [page, right]
10
+ operations: [leader]
11
+ data: ["leader:/leader/strategy", "leader:/leader/port", "leader:/is_current_node_leader"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-leader { padding:var(--spacing-md); background:var(--color-surface); border-radius:var(--radius-md); }
16
+ .mesh-leader h2 { margin-top:0; }
17
+ .mesh-leader p { color:var(--color-muted); margin-bottom:0; }
18
+ </style>
19
+ <section class="mesh-leader">
20
+ <h2>Read the election</h2>
21
+ <p>See how the leader was selected, which server port was reported, and whether this machine leads the fleet.</p>
22
+ </section>
@@ -0,0 +1,22 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh enrollment key handoff
4
+ description: Issue an enrollment credential in an interactive terminal for the intended new machine.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: enrollment-key
8
+ intents: [create mesh enrollment key, add a device to private mesh, issue preauth key, terminal enrollment credential]
9
+ surfaces: [page]
10
+ operations: [preauthkey]
11
+ ---
12
+
13
+ <style>
14
+ .mesh-key { padding:var(--spacing-md); border:1px dashed var(--color-border); background:var(--color-surface); }
15
+ .mesh-key h2 { margin-top:0; }
16
+ .mesh-key code { color:var(--color-accent); overflow-wrap:anywhere; }
17
+ </style>
18
+ <section class="mesh-key">
19
+ <h2>Issue the key in a terminal</h2>
20
+ <p>Run <code>total-recall mesh preauthkey</code> in the interactive terminal and pass the credential directly to the intended machine.</p>
21
+ <p>Choose reusable or ephemeral enrollment only when it matches that machine’s role.</p>
22
+ </section>
@@ -0,0 +1,25 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Verified mesh file transfer
4
+ description: Send one bounded file and verify the destination byte count and SHA-256.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: file-receipt
8
+ intents: [copy file to mesh peer, verify mesh file transfer, check destination checksum, send file through mesh]
9
+ surfaces: [page]
10
+ operations: [file]
11
+ data: ["file:/ok", "file:/bytes", "file:/sha256"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-receipt { padding:var(--spacing-md); background:var(--color-surface); border:1px solid var(--color-border); }
16
+ .mesh-receipt h2 { margin-top:0; }
17
+ .mesh-receipt li::marker { color:var(--color-ok); }
18
+ </style>
19
+ <section class="mesh-receipt">
20
+ <h2>Read a transfer receipt</h2>
21
+ <ol>
22
+ <li>Choose a peer, source file, and destination explicitly.</li>
23
+ <li>Read the destination byte count and SHA-256 after the transfer.</li>
24
+ </ol>
25
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Fleet execution and capabilities
4
+ description: Verify which configured nodes can run a probe and which runtimes or harnesses they expose.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: fleet-execution
8
+ intents: [verify mesh execution, find node with Docker, check available harnesses, diagnose fleet compute capability]
9
+ surfaces: [page]
10
+ operations: [doctor]
11
+ data: ["doctor:/0/reachable", "doctor:/0/runtimes", "doctor:/0/harnesses"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-execution { padding:var(--spacing-md); border-inline-start:3px solid var(--color-ok); background:var(--color-surface); }
16
+ .mesh-execution h2 { margin-top:0; }
17
+ .mesh-execution em { color:var(--color-muted); }
18
+ </style>
19
+ <section class="mesh-execution">
20
+ <h2>Verify where work can run</h2>
21
+ <p>Request the execution probe before using the Placement matrix. An answering node can report the runtimes and harnesses it found.</p>
22
+ <p><em>A failed probe leaves that node’s capabilities unknown.</em></p>
23
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Fresh mesh presence
4
+ description: Observe recent activity evidence from reachable peers and check when the fleet observation was made.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: fleet-presence
8
+ intents: [check fleet presence, find active mesh device, see idle evidence, last peer activity]
9
+ surfaces: [page, right, bottom]
10
+ operations: [presence]
11
+ data: ["presence:/success", "presence:/timestamp", "presence:/peers/0/state"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-presence { padding:var(--spacing-md); background:var(--color-surface); border-block-end:1px solid var(--color-border); }
16
+ .mesh-presence h2 { margin-top:0; }
17
+ .mesh-presence em { color:var(--color-muted); }
18
+ </style>
19
+ <section class="mesh-presence">
20
+ <h2>Read current device activity</h2>
21
+ <p>Check whether the peer answered with a fresh activity observation. Use the observation time to distinguish fresh presence from an earlier record.</p>
22
+ <p><em>Unavailable presence remains unknown.</em></p>
23
+ </section>
@@ -0,0 +1,22 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Interactive mesh SSH
4
+ description: Open a terminal session to a peer using its recorded login and authenticated mesh access.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: interactive-ssh
8
+ intents: [SSH to mesh node, open peer terminal, interactive remote shell, log into fleet machine]
9
+ surfaces: [page, bottom]
10
+ operations: [ssh]
11
+ ---
12
+
13
+ <style>
14
+ .mesh-shell { padding:var(--spacing-md); background:var(--color-surface); }
15
+ .mesh-shell h2 { margin-top:0; }
16
+ .mesh-shell code { display:block; overflow-wrap:anywhere; padding:.55em; background:var(--color-background); color:var(--color-accent); }
17
+ </style>
18
+ <section class="mesh-shell">
19
+ <h2>Continue in a terminal</h2>
20
+ <p>Use the peer’s recorded access to open an interactive session.</p>
21
+ <code>total-recall mesh ssh &lt;peer&gt;</code>
22
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: This machine's mesh enrollment
4
+ description: Inspect local enrollment and backend state and determine whether unattended enrollment is enabled.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: local-enrollment
8
+ intents: [check mesh enrollment, join private mesh, re-enroll local machine, inspect mesh backend]
9
+ surfaces: [page, right]
10
+ operations: [enroll]
11
+ data: ["enroll:/state", "enroll:/backend_state", "enroll:/auto_enroll_enabled"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-join { padding:var(--spacing-md); background:var(--color-surface); border-inline-start:3px solid var(--color-warn); }
16
+ .mesh-join h2 { margin-top:0; }
17
+ .mesh-join small { color:var(--color-muted); }
18
+ </style>
19
+ <section class="mesh-join">
20
+ <h2>Check how this machine joined</h2>
21
+ <p>Read <code>enroll --status</code> for the local enrollment state, backend state, and unattended enrollment setting.</p>
22
+ <small>Re-enrollment can interrupt this machine’s connection. Confirm the target before changing it.</small>
23
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh access policy
4
+ description: Inspect whether the control server has a policy and when its current policy was recorded.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: mesh-policy
8
+ intents: [inspect mesh policy, audit network ACL, review SSH grants, change mesh trust policy]
9
+ surfaces: [page]
10
+ operations: [policy]
11
+ data: ["policy:/configured", "policy:/updatedAt"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-policy { padding:var(--spacing-md); border-block:1px solid var(--color-border); background:var(--color-surface); }
16
+ .mesh-policy h2 { margin-top:0; }
17
+ .mesh-policy code { color:var(--color-warn); }
18
+ </style>
19
+ <section class="mesh-policy">
20
+ <h2>Review the trust boundary</h2>
21
+ <p>Read the control server policy with <code>policy get</code>. Review who can reach each destination before replacing a policy.</p>
22
+ <p>The Boundary view presents policy and secret grants as separate observations.</p>
23
+ </section>
@@ -0,0 +1,25 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh network atlas
4
+ description: Read current network, control API, and enrollment observations for the private fleet.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: network-atlas
8
+ intents: [mesh overview, fleet connectivity, check mesh network, control server verified, inspect enrolled machines]
9
+ surfaces: [page, right]
10
+ panel: network
11
+ operations: [status]
12
+ data: ["status:/state", "status:/control/verified", "status:/enrollment/state", "status:/observed_at"]
13
+ ---
14
+
15
+ <style>
16
+ .mesh-atlas { color:var(--color-text); background:var(--color-surface); padding:var(--spacing-md); border-inline-start:3px solid var(--color-accent); }
17
+ .mesh-atlas h2 { margin:.3em 0; font:600 clamp(1.6rem,5vw,2.3rem) var(--typography-heading-font-family,Georgia,serif); }
18
+ .mesh-atlas p { margin:0; }
19
+ .mesh-atlas small { letter-spacing:.12em; text-transform:uppercase; color:var(--color-accent); }
20
+ </style>
21
+ <header class="mesh-atlas">
22
+ <small>Mesh field atlas</small>
23
+ <h2>Read the fleet</h2>
24
+ <p>Open a machine to inspect membership, path, recorded login, and execution separately.</p>
25
+ </header>
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh node roster
4
+ description: Inspect current fleet observations and distinguish members from recorded-only nodes.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: node-roster
8
+ intents: [list mesh nodes, show enrolled peers, which machines are online, recorded mesh node]
9
+ surfaces: [page, right]
10
+ operations: [nodes]
11
+ data: ["nodes:/nodes/0/network_state", "nodes:/nodes/0/access_state", "nodes:/nodes/0/vault_only"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-roster { padding:var(--spacing-md); border-block:1px solid var(--color-border); background:var(--color-surface); }
16
+ .mesh-roster h2 { margin:0 0 .5rem; }
17
+ .mesh-roster dt { color:var(--color-accent); font-weight:600; }
18
+ .mesh-roster dd { margin:0 0 .6rem; }
19
+ </style>
20
+ <section class="mesh-roster">
21
+ <h2>Compare node records</h2>
22
+ <dl>
23
+ <dt>Membership</dt><dd>Read current network state for enrolled machines.</dd>
24
+ <dt>Recorded only</dt><dd>Keep an earlier record separate from current membership and liveness.</dd>
25
+ </dl>
26
+ </section>
@@ -0,0 +1,17 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: mesh
4
+ id: node-selection-proof
5
+ title: Choose a mesh node with verified capabilities
6
+ description: Use current reachability and installed harness observations to narrow the list of candidate execution nodes.
7
+ timestamp: "2026-11-08T23:12:00Z"
8
+ intents: [choose a mesh node for work, check which peer has a harness, verify a node can run the required runtime]
9
+ surfaces: [page]
10
+ panel: network
11
+ operations: [nodes, doctor]
12
+ data: ["doctor:/0/reachable", "doctor:/0/runtimes", "doctor:/0/harnesses"]
13
+ ---
14
+ <section>
15
+ <h2>Check a node against the work it needs to run</h2>
16
+ <p>Start with the enrolled roster, then inspect the fleet execution probe. Filter to reachable nodes with the required runtime and harness. Recheck the selected peer before dispatch.</p>
17
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh owner observations
4
+ description: Read the selected fleet view and inspect its source evidence and observation time.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: owner-observations
8
+ intents: [read mesh view, mesh flows evidence, placement source observations, inspect boundary sources]
9
+ surfaces: [page, right]
10
+ operations: [view]
11
+ data: ["view:/screen", "view:/observed_at", "view:/sources/status/ok"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-sources { padding:var(--spacing-md); background:var(--color-surface); }
16
+ .mesh-sources h2 { margin-top:0; }
17
+ .mesh-sources small { color:var(--color-muted); }
18
+ </style>
19
+ <section class="mesh-sources">
20
+ <h2>Trace a fleet observation</h2>
21
+ <p>Select Machines, Flows, Placement, Boundary, or Join. Each view reports when its owner commands ran and whether each source answered.</p>
22
+ <small>A source can fail while the other observations remain available.</small>
23
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Mesh peer path and latency
4
+ description: Probe a named peer and report whether its network path answered, with timing when available.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: peer-path
8
+ intents: [ping mesh peer, check node path, measure mesh latency, test reachability]
9
+ surfaces: [page, right]
10
+ operations: [ping]
11
+ data: ["ping:/reachable", "ping:/latency_ms"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-path { padding:var(--spacing-md); border:1px dashed var(--color-border); background:var(--color-surface); }
16
+ .mesh-path h2 { margin-top:0; }
17
+ .mesh-path strong { color:var(--color-accent); }
18
+ </style>
19
+ <section class="mesh-path">
20
+ <h2>Check the path to a peer</h2>
21
+ <p>Ping a named machine. A response proves the path from this machine at the time of the test.</p>
22
+ <p><strong>Round-trip time</strong> appears when the probe can measure it.</p>
23
+ </section>
@@ -0,0 +1,24 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Pin the mesh leader
4
+ description: Record an explicit mesh address and optional server port as the leader pin.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: pinned-leader
8
+ intents: [pin mesh leader, choose leadership address, set leader server port]
9
+ surfaces: [page]
10
+ operations: [leader-pin]
11
+ data: ["leader-pin:/ok", "leader-pin:/leaderPort"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-pin { padding:var(--spacing-md); border-inline-start:3px solid var(--color-warn); background:var(--color-surface); }
16
+ .mesh-pin h2 { margin-top:0; }
17
+ </style>
18
+ <section class="mesh-pin">
19
+ <h2>Change the leader pin</h2>
20
+ <ol>
21
+ <li>Select the intended mesh address and optional server port.</li>
22
+ <li>Check the write result, then read the elected leader separately.</li>
23
+ </ol>
24
+ </section>
@@ -0,0 +1,17 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: mesh
4
+ id: reachability-evidence-ladder
5
+ title: Trace where a mesh operation failed
6
+ description: Compare control verification, peer latency and recorded login evidence to distinguish control, network and access failures.
7
+ timestamp: "2026-11-08T23:12:00Z"
8
+ intents: [diagnose why mesh execution failed, separate mesh control and login failure, compare peer reachability with SSH access]
9
+ surfaces: [page, right]
10
+ panel: network
11
+ operations: [probe, ping, access, doctor]
12
+ data: ["probe:/control/verified", "ping:/reachable", "ping:/latency_ms", "access:/complete", "doctor:/0/reachable"]
13
+ ---
14
+ <section>
15
+ <h2>Follow the mesh evidence ladder</h2>
16
+ <ol><li>Verify the controller independently.</li><li>Probe the named peer from this machine.</li><li>Review the recorded login and the execution probe before dispatching work.</li></ol>
17
+ </section>
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ title: Recorded mesh login
4
+ description: Inspect whether the selected node has a complete login record and when it was verified.
5
+ timestamp: "2026-11-08T09:10:00Z"
6
+ plugin: mesh
7
+ id: recorded-login
8
+ intents: [inspect mesh login, record node access, verify recorded SSH account, discover working login]
9
+ surfaces: [page]
10
+ operations: [access]
11
+ data: ["access:/complete", "access:/verified_at"]
12
+ ---
13
+
14
+ <style>
15
+ .mesh-login { padding:var(--spacing-md); background:var(--color-surface); border-radius:var(--radius-md); }
16
+ .mesh-login h2 { margin-top:0; }
17
+ .mesh-login b { color:var(--color-accent); }
18
+ </style>
19
+ <section class="mesh-login">
20
+ <h2>Review how the fleet reaches a node</h2>
21
+ <p>Inspect the resolved access record for the selected machine. A complete record gives the fleet a login target.</p>
22
+ <p>Compare the <b>recorded verification time</b> with a new execution probe.</p>
23
+ </section>