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
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: Embeddings
3
+ description: Local embedding provider, model roster and vault vector coverage for a Total Recall brain.
4
+ colors:
5
+ primary: "#06b6d4"
6
+ primary-hover: "#22d3ee"
7
+ background: "#07171d"
8
+ surface: "#0e2a35"
9
+ line: "#164e63"
10
+ text: "#ecfeff"
11
+ muted: "#67e8f9"
12
+ on-primary: "#07171d"
13
+ ok: "#10b981"
14
+ warn: "#f59e0b"
15
+ danger: "#ef4444"
16
+ typography:
17
+ body:
18
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
19
+ fontSize: 13px
20
+ fontWeight: 400
21
+ label:
22
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
23
+ fontSize: 11px
24
+ fontWeight: 700
25
+ mono:
26
+ fontFamily: "'JetBrains Mono', 'Fira Code', monospace"
27
+ fontSize: 12px
28
+ fontWeight: 600
29
+ figure:
30
+ fontFamily: "'JetBrains Mono', 'Fira Code', monospace"
31
+ fontSize: 28px
32
+ fontWeight: 800
33
+ rounded:
34
+ sm: 4px
35
+ md: 6px
36
+ lg: 8px
37
+ spacing:
38
+ xs: 4px
39
+ sm: 8px
40
+ md: 12px
41
+ lg: 16px
42
+ components:
43
+ section:
44
+ backgroundColor: "{colors.surface}"
45
+ textColor: "{colors.text}"
46
+ rounded: "{rounded.md}"
47
+ padding: "{spacing.md}"
48
+ locality-chip:
49
+ textColor: "{colors.ok}"
50
+ typography: "{typography.label}"
51
+ rounded: "{rounded.md}"
52
+ padding: "{spacing.xs}"
53
+ coverage-figure:
54
+ textColor: "{colors.text}"
55
+ typography: "{typography.figure}"
56
+ count-row:
57
+ textColor: "{colors.muted}"
58
+ typography: "{typography.mono}"
59
+ model-row:
60
+ backgroundColor: "{colors.background}"
61
+ textColor: "{colors.text}"
62
+ typography: "{typography.mono}"
63
+ rounded: "{rounded.sm}"
64
+ padding: "{spacing.sm}"
65
+ button-primary:
66
+ backgroundColor: "{colors.primary}"
67
+ textColor: "{colors.on-primary}"
68
+ typography: "{typography.label}"
69
+ rounded: "{rounded.sm}"
70
+ padding: "{spacing.sm}"
71
+ button-primary-hover:
72
+ backgroundColor: "{colors.primary-hover}"
73
+ notice:
74
+ backgroundColor: "{colors.background}"
75
+ textColor: "{colors.muted}"
76
+ rounded: "{rounded.sm}"
77
+ padding: "{spacing.sm}"
78
+ ---
79
+
80
+ # Embeddings
81
+
82
+ ## Overview
83
+
84
+ An operator console for the vectors behind Total Recall search. It answers four questions, in this order: which provider serves vectors and whether text stays on this machine, how much of the vault has a usable vector, which models the endpoint offers, and how fast the selected model embeds. Every figure comes from the plugin's own JSON operations. Anything not reported renders as a dash, never as a guess.
85
+
86
+ ## Colors
87
+
88
+ Deep teal surfaces with a cyan primary. Locality and health use the state colors: `ok` for local and current, `warn` for remote, unknown or partial, and `danger` for unreachable or failed. Text uses `text` on `surface`, with `muted` for labels and secondary counts.
89
+
90
+ ## Typography
91
+
92
+ Sans-serif for prose and labels. Monospace for anything an operator might copy: endpoints, model names, counts and timings. A single large monospace `figure` carries the usable-coverage percentage.
93
+
94
+ ## Components
95
+
96
+ - `section`: a bordered surface panel per question (provider, coverage, models, benchmark, pull).
97
+ - `locality-chip`: the local, remote, unknown or disabled verdict, colored by state.
98
+ - `coverage-figure`: the usable-vector percentage.
99
+ - `count-row`: one labelled count (usable, stale, wrong width, missing, orphaned).
100
+ - `model-row`: one model with its width, capability and selection.
101
+ - `button-primary`: an operator-triggered action. Touch targets are at least 44px.
102
+ - `notice`: unavailable, failed or explanatory text.
103
+
104
+ ## Do's and Don'ts
105
+
106
+ - Do show a non-`ok` index state by name. Don't render it as 0%.
107
+ - Do keep provider state separate from credentials. Hosted fallback keys belong to the Auth owner and are never displayed.
108
+ - Don't claim "on-device" unless `locality` is `local`.
109
+ - Don't run benchmark or pull on load.
110
+ - Respect `prefers-reduced-motion`.
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "tr-plugin-embeddings",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "tr-plugin-embeddings",
9
- "version": "0.1.4",
9
+ "version": "0.2.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": {
@@ -5539,9 +5539,9 @@
5539
5539
  }
5540
5540
  },
5541
5541
  "node_modules/total-recall-brain": {
5542
- "version": "3.44.0",
5543
- "resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.44.0.tgz",
5544
- "integrity": "sha512-VNPaIO9zsSwoxAsJ5ByIQBP9zPpLq4RiQO7Vrex4rBOHFQJT50P7utcZiLMSZTyZJU4C/m5uB8qTCSBMp6+l6Q==",
5542
+ "version": "3.45.0",
5543
+ "resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.45.0.tgz",
5544
+ "integrity": "sha512-HDYfROazZbsLHQsFPnlBcSpe1HL1QEi7JG8x/eNRUI06RxVQsZWl8LwBo2lTWjWRDrKmCy7BUmSXQDuWF3lrEw==",
5545
5545
  "dev": true,
5546
5546
  "license": "MIT",
5547
5547
  "workspaces": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tr-plugin-embeddings",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "Local embedding model management: provider/model status, benchmark, index build and coverage",
6
6
  "scripts": {
@@ -13,6 +13,7 @@
13
13
  "plugin.json",
14
14
  "README.md",
15
15
  "LICENSE",
16
+ "DESIGN.md",
16
17
  "ui/"
17
18
  ],
18
19
  "dependencies": {
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://github.com/gregiteen/total-recall/blob/main/metadata.plugin.schema.json",
3
3
  "id": "embeddings",
4
4
  "name": "Embeddings",
5
- "version": "0.1.4",
5
+ "version": "0.2.0",
6
6
  "description": "Local embedding model management: provider/model status, benchmark, index build and coverage",
7
7
  "license": "MIT",
8
8
  "branding": {
@@ -58,21 +58,24 @@
58
58
  }
59
59
  ]
60
60
  },
61
- "card": {
62
- "handler": "./ui/card.js",
63
- "element": "tr-embeddings-card"
64
- },
65
61
  "ui": {
62
+ "home": "home",
63
+ "design_tokens": "DESIGN.md",
66
64
  "elements": [
67
65
  {
68
- "id": "card",
69
- "kind": "card",
70
- "tag": "tr-embeddings-card",
71
- "module": "ui/card.js",
72
- "description": "Embeddings card face"
66
+ "id": "home",
67
+ "kind": "panel",
68
+ "tag": "tr-embeddings-home",
69
+ "module": "ui/home.js",
70
+ "description": "Embeddings page: provider and locality, vault coverage, model roster, credentials ownership, benchmark and pull"
73
71
  }
74
72
  ]
75
73
  },
74
+ "auth": {
75
+ "plugin": "auth",
76
+ "methods": ["passkey", "google-oauth2"],
77
+ "session_verification": true
78
+ },
76
79
  "status": {
77
80
  "command": "status",
78
81
  "refresh_seconds": 60
@@ -0,0 +1,49 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: embeddings
4
+ id: benchmark
5
+ title: Embedding benchmark
6
+ description: Measures milliseconds per embedding for the selected local model using a neutral sentence, verifies each vector is 768 wide, and projects the time to embed the whole vault.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - benchmark embedding speed
10
+ - estimate time to embed the vault
11
+ surfaces:
12
+ - page
13
+ operations:
14
+ - benchmark
15
+ data:
16
+ - benchmark:/ok
17
+ - benchmark:/reason
18
+ - benchmark:/url
19
+ - benchmark:/locality
20
+ - benchmark:/model
21
+ - benchmark:/dims
22
+ - benchmark:/samples
23
+ - benchmark:/ms_per_embedding
24
+ - benchmark:/min_ms
25
+ - benchmark:/max_ms
26
+ - benchmark:/vault_nodes
27
+ - benchmark:/projected_minutes
28
+ - benchmark:/completed
29
+ panel: home
30
+ ---
31
+ <style>
32
+ .emb-benchmark { color: var(--colors-text, #ecfeff); background: var(--colors-surface, #0e2a35); border: 1px solid var(--colors-line, #164e63); border-radius: var(--rounded-md, 6px); padding: var(--spacing-md, 12px); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 13px; }
33
+ .emb-benchmark h3 { margin: 0 0 var(--spacing-sm, 8px); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--colors-muted, #67e8f9); }
34
+ .emb-benchmark dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--spacing-xs, 4px) var(--spacing-md, 12px); margin: 0; }
35
+ .emb-benchmark dt { color: var(--colors-muted, #67e8f9); }
36
+ .emb-benchmark dd { margin: 0; }
37
+ .emb-benchmark code { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; }
38
+ .emb-benchmark p { margin: var(--spacing-sm, 8px) 0 0; color: var(--colors-muted, #67e8f9); }
39
+ </style>
40
+ <section class="emb-benchmark" data-design-component="section">
41
+ <h3>Embedding benchmark</h3>
42
+ <dl>
43
+ <dt>Reports</dt><dd>Average, minimum and maximum milliseconds per embedding, the sample count, and the model and endpoint measured.</dd>
44
+ <dt>Projection</dt><dd>Average time multiplied by the vault node count, in minutes.</dd>
45
+ <dt>Bounds</dt><dd>1 to 20 samples (default 10), within a 280-second deadline.</dd>
46
+ <dt>Refuses</dt><dd>A remote, upstream or missing model. No vault text is sent.</dd>
47
+ </dl>
48
+ <p>Run it from the Embeddings page. It never runs on its own.</p>
49
+ </section>
@@ -0,0 +1,53 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: embeddings
4
+ id: coverage
5
+ title: Vault vector coverage
6
+ description: How many vault nodes have a current, correct-width vector in the index, and why the rest are not usable. Reads the index without modifying it.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - check vault vector coverage
10
+ - find stale or missing embeddings
11
+ surfaces:
12
+ - page
13
+ operations:
14
+ - coverage
15
+ data:
16
+ - coverage:/ok
17
+ - coverage:/brain
18
+ - coverage:/state
19
+ - coverage:/reason
20
+ - coverage:/vault_nodes
21
+ - coverage:/parse_errors
22
+ - coverage:/rows
23
+ - coverage:/embedded
24
+ - coverage:/stale
25
+ - coverage:/mismatched
26
+ - coverage:/orphaned
27
+ - coverage:/missing
28
+ - coverage:/percent
29
+ - coverage:/model
30
+ - coverage:/models
31
+ - coverage:/db_bytes
32
+ panel: home
33
+ ---
34
+ <style>
35
+ .emb-coverage { color: var(--colors-text, #ecfeff); background: var(--colors-surface, #0e2a35); border: 1px solid var(--colors-line, #164e63); border-radius: var(--rounded-md, 6px); padding: var(--spacing-md, 12px); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 13px; }
36
+ .emb-coverage h3 { margin: 0 0 var(--spacing-sm, 8px); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--colors-muted, #67e8f9); }
37
+ .emb-coverage ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spacing-xs, 4px); }
38
+ .emb-coverage li { display: flex; justify-content: space-between; gap: var(--spacing-md, 12px); font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; color: var(--colors-muted, #67e8f9); }
39
+ .emb-coverage li span:first-child { color: var(--colors-text, #ecfeff); }
40
+ .emb-coverage code { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; }
41
+ .emb-coverage p { margin: var(--spacing-sm, 8px) 0 0; color: var(--colors-muted, #67e8f9); }
42
+ </style>
43
+ <section class="emb-coverage" data-design-component="section">
44
+ <h3>Vault vector coverage</h3>
45
+ <ul>
46
+ <li data-design-component="count-row"><span>usable</span><span>current text hash, 768 finite numbers</span></li>
47
+ <li data-design-component="count-row"><span>stale</span><span>the node changed after it was embedded</span></li>
48
+ <li data-design-component="count-row"><span>wrong width</span><span>the vector is not 768 numbers</span></li>
49
+ <li data-design-component="count-row"><span>missing</span><span>the node has no row</span></li>
50
+ <li data-design-component="count-row"><span>orphaned</span><span>the row has no active node</span></li>
51
+ </ul>
52
+ <p>The percentage counts usable vectors out of all <code>memory</code> and <code>plugin_record</code> nodes. A missing or unreadable index is reported by its state, not as 0%. Rebuild with <code>total-recall compile</code>.</p>
53
+ </section>
@@ -0,0 +1,43 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: embeddings
4
+ id: models
5
+ title: Embedding models
6
+ description: Every model on the resolved Ollama endpoint, with its declared embedding capability, vector width, vault compatibility, upstream flag and which one is selected.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - list embedding models
10
+ - see which model can embed the vault
11
+ surfaces:
12
+ - page
13
+ operations:
14
+ - models
15
+ data:
16
+ - models:/url
17
+ - models:/reachable
18
+ - models:/locality
19
+ - models:/vault_dims
20
+ - models:/selected
21
+ - models:/models
22
+ - models:/attempts
23
+ panel: home
24
+ ---
25
+ <style>
26
+ .emb-models { color: var(--colors-text, #ecfeff); background: var(--colors-surface, #0e2a35); border: 1px solid var(--colors-line, #164e63); border-radius: var(--rounded-md, 6px); padding: var(--spacing-md, 12px); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 13px; }
27
+ .emb-models h3 { margin: 0 0 var(--spacing-sm, 8px); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--colors-muted, #67e8f9); }
28
+ .emb-models ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spacing-xs, 4px); }
29
+ .emb-models li { background: var(--colors-background, #07171d); border: 1px solid var(--colors-line, #164e63); border-radius: var(--rounded-sm, 4px); padding: var(--spacing-sm, 8px); }
30
+ .emb-models code { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; }
31
+ .emb-models .ok { color: var(--colors-ok, #10b981); }
32
+ .emb-models .warn { color: var(--colors-warn, #f59e0b); }
33
+ .emb-models p { margin: var(--spacing-sm, 8px) 0 0; color: var(--colors-muted, #67e8f9); }
34
+ </style>
35
+ <section class="emb-models" data-design-component="section">
36
+ <h3>Embedding models</h3>
37
+ <ul>
38
+ <li data-design-component="model-row"><span class="ok">vault-compatible</span>: the model declares the <code>embedding</code> capability, and its family width is 768.</li>
39
+ <li data-design-component="model-row"><span class="ok">selected</span>: the pinned <code>TR_OLLAMA_EMBED_MODEL</code> when compatible, otherwise the smallest compatible model.</li>
40
+ <li data-design-component="model-row"><span class="warn">upstream</span>: the service relays the model from another machine, so it does not count as local.</li>
41
+ </ul>
42
+ <p>When no endpoint answers, the endpoints tried are reported instead of a model list. The Embeddings page shows the live roster.</p>
43
+ </section>
@@ -0,0 +1,41 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: embeddings
4
+ id: pull
5
+ title: Pull an embedding model
6
+ description: Downloads an explicitly named local model onto the configured loopback Ollama endpoint. Refuses non-loopback endpoints and cloud or upstream models.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - install a local embedding model
10
+ - pull an embedding model
11
+ surfaces:
12
+ - page
13
+ operations:
14
+ - pull
15
+ data:
16
+ - pull:/ok
17
+ - pull:/model
18
+ - pull:/url
19
+ - pull:/locality
20
+ - pull:/reason
21
+ - pull:/status
22
+ panel: home
23
+ ---
24
+ <style>
25
+ .emb-pull { color: var(--colors-text, #ecfeff); background: var(--colors-surface, #0e2a35); border: 1px solid var(--colors-line, #164e63); border-radius: var(--rounded-md, 6px); padding: var(--spacing-md, 12px); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 13px; }
26
+ .emb-pull h3 { margin: 0 0 var(--spacing-sm, 8px); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--colors-muted, #67e8f9); }
27
+ .emb-pull ol { margin: 0; padding-left: 1.25em; display: grid; gap: var(--spacing-xs, 4px); }
28
+ .emb-pull code { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; }
29
+ .emb-pull .warn { color: var(--colors-warn, #f59e0b); }
30
+ .emb-pull p { margin: var(--spacing-sm, 8px) 0 0; color: var(--colors-muted, #67e8f9); }
31
+ </style>
32
+ <section class="emb-pull" data-design-component="section">
33
+ <h3>Pull an embedding model</h3>
34
+ <ol>
35
+ <li>Name the model exactly. Nothing is pulled by default.</li>
36
+ <li>The target is <code>TR_OLLAMA_URL</code>, <code>OLLAMA_HOST</code> or <code>127.0.0.1:11434</code>, and it must be loopback.</li>
37
+ <li><span class="warn">Refused:</span> models that are cloud-hosted or relayed from another machine.</li>
38
+ <li>The download may take up to ten minutes. The result names the model and endpoint, or the reason for failure.</li>
39
+ </ol>
40
+ <p>This changes the endpoint's model store. Start it from the Embeddings page.</p>
41
+ </section>
@@ -0,0 +1,59 @@
1
+ ---
2
+ type: ui-chunk:chunk
3
+ plugin: embeddings
4
+ id: status
5
+ title: Embedding provider status
6
+ description: Which provider and model serve vectors for this brain, whether text sent for embedding stays on this machine, and how much of the vault has a usable vector.
7
+ timestamp: '2026-11-08T08:12:00Z'
8
+ intents:
9
+ - check which embedding model is active
10
+ - check whether embeddings run locally
11
+ - check vault vector coverage
12
+ surfaces:
13
+ - page
14
+ operations:
15
+ - status
16
+ data:
17
+ - status:/provider
18
+ - status:/endpoint
19
+ - status:/locality
20
+ - status:/local
21
+ - status:/selected_model
22
+ - status:/embedding_dims
23
+ - status:/hosted_fallback
24
+ - status:/reason
25
+ - status:/attempts
26
+ - status:/brain/state
27
+ - status:/brain/reason
28
+ - status:/brain/vault_nodes
29
+ - status:/brain/embedded
30
+ - status:/brain/percent
31
+ - status:/brain/stale
32
+ - status:/brain/mismatched
33
+ - status:/brain/missing
34
+ - status:/brain/orphaned
35
+ - status:/brain/model
36
+ panel: home
37
+ ---
38
+ <style>
39
+ .emb-status { color: var(--colors-text, #ecfeff); background: var(--colors-surface, #0e2a35); border: 1px solid var(--colors-line, #164e63); border-radius: var(--rounded-md, 6px); padding: var(--spacing-md, 12px); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 13px; }
40
+ .emb-status h3 { margin: 0 0 var(--spacing-sm, 8px); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--colors-muted, #67e8f9); }
41
+ .emb-status dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--spacing-xs, 4px) var(--spacing-md, 12px); margin: 0; }
42
+ .emb-status dt { color: var(--colors-muted, #67e8f9); }
43
+ .emb-status dd { margin: 0; }
44
+ .emb-status code { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; }
45
+ .emb-status .local { color: var(--colors-ok, #10b981); }
46
+ .emb-status .away { color: var(--colors-warn, #f59e0b); }
47
+ .emb-status p { margin: var(--spacing-sm, 8px) 0 0; color: var(--colors-muted, #67e8f9); }
48
+ </style>
49
+ <section class="emb-status" data-design-component="section">
50
+ <h3>Embedding provider status</h3>
51
+ <dl>
52
+ <dt>Provider</dt><dd><code>ollama</code>, <code>hosted-fallback</code> or <code>disabled</code></dd>
53
+ <dt>Locality</dt><dd><span class="local" data-design-component="locality-chip">local</span> only when a loopback endpoint serves a non-upstream model. Otherwise <span class="away">remote</span>, <span class="away">unknown</span> or <code>disabled</code>.</dd>
54
+ <dt>Model</dt><dd>The selected model and its vector width. The vault requires 768 dimensions.</dd>
55
+ <dt>Coverage</dt><dd>Usable vectors out of vault nodes, with stale, wrong-width, missing and orphaned counts.</dd>
56
+ <dt>Credentials</dt><dd>Hosted fallback keys stay with the Auth owner and are reported as <code>unknown</code>, never read here.</dd>
57
+ </dl>
58
+ <p>Open the Embeddings page for the live reading, the endpoints that were tried, and refresh.</p>
59
+ </section>