total-recall-brain 3.46.2 → 3.47.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 (89) hide show
  1. package/bin/total-recall.mjs +5 -0
  2. package/frontend/dist/assets/index-CpsWeV4X.css +1 -0
  3. package/frontend/dist/assets/{index-D1goIPjC.js → index-poecbHSl.js} +100 -100
  4. package/frontend/dist/brand/total-recall-lockup-transparent.png +0 -0
  5. package/frontend/dist/index.html +2 -2
  6. package/frontend/dist/sw.js +1 -1
  7. package/frontend/src/App.tsx +15 -81
  8. package/frontend/src/components/DashboardOverview.tsx +164 -0
  9. package/frontend/src/components/brand/BrandMark.tsx +8 -6
  10. package/frontend/src/components/plugins/PluginWorkspace.tsx +112 -57
  11. package/frontend/src/components/workspace/PluginHome.tsx +3 -3
  12. package/frontend/src/index.css +43 -11
  13. package/package.json +1 -1
  14. package/scaffold/.agent/skills/total-recall/plugins/auth/package-lock.json +4 -4
  15. package/scaffold/.agent/skills/total-recall/plugins/auth/package.json +3 -2
  16. package/scaffold/.agent/skills/total-recall/plugins/auth/plugin.json +30 -5
  17. package/scaffold/.agent/skills/total-recall/plugins/auth/skills/auth/SKILL.md +35 -0
  18. package/scaffold/.agent/skills/total-recall/plugins/auth/ui/home.js +494 -79
  19. package/scaffold/.agent/skills/total-recall/plugins/automations/package-lock.json +4 -4
  20. package/scaffold/.agent/skills/total-recall/plugins/automations/package.json +3 -2
  21. package/scaffold/.agent/skills/total-recall/plugins/automations/plugin.json +33 -8
  22. package/scaffold/.agent/skills/total-recall/plugins/automations/skills/automations/SKILL.md +29 -0
  23. package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/dream-consolidation.md +17 -0
  24. package/scaffold/.agent/skills/total-recall/plugins/code-quality/package-lock.json +4 -4
  25. package/scaffold/.agent/skills/total-recall/plugins/code-quality/package.json +3 -2
  26. package/scaffold/.agent/skills/total-recall/plugins/code-quality/plugin.json +31 -4
  27. package/scaffold/.agent/skills/total-recall/plugins/code-quality/skills/code-quality/SKILL.md +27 -0
  28. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package-lock.json +4 -4
  29. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package.json +1 -1
  30. package/scaffold/.agent/skills/total-recall/plugins/composable-cli/plugin.json +17 -3
  31. package/scaffold/.agent/skills/total-recall/plugins/embeddings/package-lock.json +4 -4
  32. package/scaffold/.agent/skills/total-recall/plugins/embeddings/package.json +3 -2
  33. package/scaffold/.agent/skills/total-recall/plugins/embeddings/plugin.json +24 -4
  34. package/scaffold/.agent/skills/total-recall/plugins/embeddings/skills/embeddings/SKILL.md +25 -0
  35. package/scaffold/.agent/skills/total-recall/plugins/git/package-lock.json +6 -6
  36. package/scaffold/.agent/skills/total-recall/plugins/git/package.json +3 -2
  37. package/scaffold/.agent/skills/total-recall/plugins/git/plugin.json +300 -58
  38. package/scaffold/.agent/skills/total-recall/plugins/git/skills/git/SKILL.md +36 -0
  39. package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/commit-memory.mjs +5 -33
  40. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/git-fleet-ops.md +16 -0
  41. package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/git-publish.md +16 -0
  42. package/scaffold/.agent/skills/total-recall/plugins/mesh/package-lock.json +4 -4
  43. package/scaffold/.agent/skills/total-recall/plugins/mesh/package.json +3 -2
  44. package/scaffold/.agent/skills/total-recall/plugins/mesh/plugin.json +47 -14
  45. package/scaffold/.agent/skills/total-recall/plugins/mesh/skills/mesh/SKILL.md +36 -0
  46. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/cli.mjs +6 -3
  47. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package.json +1 -1
  48. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/plugin.json +5 -2
  49. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/cascade.mjs +4 -2
  50. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/coordinator.mjs +28 -9
  51. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/dispatch.mjs +7 -1
  52. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/model-selection.mjs +59 -0
  53. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/remote-operation.mjs +3 -3
  54. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/router.mjs +9 -3
  55. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/worker.mjs +50 -6
  56. package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/session-controls.md +16 -0
  57. package/scaffold/.agent/skills/total-recall/plugins/openwiki/cli.mjs +175 -17
  58. package/scaffold/.agent/skills/total-recall/plugins/openwiki/package-lock.json +6 -6
  59. package/scaffold/.agent/skills/total-recall/plugins/openwiki/package.json +3 -2
  60. package/scaffold/.agent/skills/total-recall/plugins/openwiki/plugin.json +242 -31
  61. package/scaffold/.agent/skills/total-recall/plugins/openwiki/skills/openwiki/SKILL.md +32 -0
  62. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/config.mjs +41 -15
  63. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/generate.mjs +29 -22
  64. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/graph.mjs +20 -33
  65. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/lint.mjs +42 -49
  66. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/markdown-links.mjs +112 -0
  67. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/mesh-vaults.mjs +3 -2
  68. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/refresh.mjs +219 -65
  69. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/search.mjs +2 -1
  70. package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/upstream-watcher.mjs +21 -3
  71. package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/panel.js +51 -2
  72. package/scaffold/.agent/skills/total-recall/plugins/security/package-lock.json +4 -4
  73. package/scaffold/.agent/skills/total-recall/plugins/security/package.json +1 -1
  74. package/scaffold/.agent/skills/total-recall/plugins/security/plugin.json +22 -5
  75. package/scaffold/.agent/skills/total-recall/plugins/ssss/package.json +3 -2
  76. package/scaffold/.agent/skills/total-recall/plugins/ssss/plugin.json +169 -37
  77. package/scaffold/.agent/skills/total-recall/plugins/ssss/skills/ssss/SKILL.md +30 -0
  78. package/src/cli/context.mjs +6 -2
  79. package/src/cli/plugin/create.mjs +2 -1
  80. package/src/cli/plugin/monetization.mjs +66 -32
  81. package/src/cli/plugin/search.mjs +25 -3
  82. package/src/cli/preflight.mjs +40 -6
  83. package/src/core/context-compactor.mjs +2 -0
  84. package/src/core/gate-mode.mjs +13 -24
  85. package/src/core/plugin-distribution.mjs +35 -1
  86. package/src/core/preflight-gate.mjs +28 -8
  87. package/src/core/preflight-receipt.mjs +11 -0
  88. package/src/server/routes/vault.mjs +1 -0
  89. package/frontend/dist/assets/index-BRYE1jmv.css +0 -1
@@ -18,7 +18,7 @@ export function PluginHome({ plugin, plugins, brainId, onCommand }: {
18
18
  const home = (plugin.manifest?.ui as { home?: string } | undefined)?.home || plugin.ui?.home
19
19
  const panel = panels.find(element => element.id === home) || panels[0]
20
20
  const operations = scopedPluginOperations(plugin)
21
- const chunks = published?.chunks.length ? published.chunks : defaults
21
+ const chunks = published?.chunks.length ? published.chunks : (panel ? [] : defaults)
22
22
 
23
23
  useEffect(() => {
24
24
  const controller = new AbortController()
@@ -62,8 +62,8 @@ export function PluginHome({ plugin, plugins, brainId, onCommand }: {
62
62
  )}
63
63
  {!loading && !published?.chunks.length && panel && !chunks.some(chunk => chunk.panel === panel.id) &&
64
64
  <PluginPanel plugin={plugin} elementId={panel.id} designCss={designCss} brainId={brainId} />}
65
- {!published?.chunks.length && !chunks.some(chunk => chunk.operations?.length) && operations.length > 0 && <section aria-label="Plugin operations">
66
- <h2>Start a workflow</h2>
65
+ {!loading && !panel && !chunks.length && operations.length > 0 && <section aria-label="Plugin operations">
66
+ <h2>Quick actions</h2>
67
67
  <ul className="plugin-home-operations">
68
68
  {operations.slice(0, 6).map(command => <li key={command.name}>
69
69
  <button type="button" className="btn btn-ghost" onClick={() => onCommand(command.name)}>{command.name}</button>
@@ -132,17 +132,15 @@ code, pre { font-family: var(--font-mono); }
132
132
  inset: 0 auto 0 0;
133
133
  width: var(--sidebar-width);
134
134
  min-width: var(--sidebar-width);
135
- background: var(--glass);
136
- backdrop-filter: blur(20px) saturate(1.4);
137
- -webkit-backdrop-filter: blur(20px) saturate(1.4);
138
- border-right: 1px solid var(--glass-border);
135
+ background: var(--bg-secondary);
136
+ border-right: 1px solid var(--border);
139
137
  display: flex;
140
138
  flex-direction: column;
141
139
  padding: 14px 0 12px;
142
140
  transform: translateX(-100%);
143
141
  transition: transform var(--transition-normal);
144
142
  z-index: 100;
145
- box-shadow: 4px 0 40px rgba(0, 0, 0, 0.25);
143
+ box-shadow: 4px 0 40px rgba(0, 0, 0, 0.45);
146
144
  }
147
145
 
148
146
  .sidebar-nav {
@@ -211,24 +209,56 @@ code, pre { font-family: var(--font-mono); }
211
209
  flex-direction: column;
212
210
  min-width: 0;
213
211
  min-height: 0;
212
+ max-width: 100%;
213
+ overflow-x: hidden;
214
214
  }
215
215
 
216
216
  .workspace-toolbar {
217
- display: flex;
217
+ display: grid;
218
+ grid-template-columns: 1fr auto 1fr;
218
219
  align-items: center;
219
- justify-content: space-between;
220
- gap: 12px;
221
- padding: 8px clamp(12px, 3vw, 24px);
220
+ gap: 8px 12px;
221
+ width: 100%;
222
+ max-width: 100%;
223
+ box-sizing: border-box;
224
+ padding: 10px clamp(12px, 3vw, 24px);
222
225
  border-bottom: 1px solid var(--border);
223
226
  }
224
227
 
225
228
  .workspace-logo {
229
+ grid-column: 2;
230
+ justify-self: center;
226
231
  border-radius: var(--radius-sm);
227
232
  }
228
233
 
234
+ .workspace-toolbar-actions {
235
+ grid-column: 3;
236
+ justify-self: end;
237
+ display: flex;
238
+ align-items: center;
239
+ gap: 8px;
240
+ }
241
+
242
+ @media (max-width: 680px) {
243
+ .workspace-toolbar {
244
+ grid-template-columns: minmax(0, 1fr);
245
+ justify-items: center;
246
+ }
247
+ .workspace-toolbar-spacer {
248
+ display: none;
249
+ }
250
+ .workspace-logo,
251
+ .workspace-toolbar-actions {
252
+ grid-column: 1;
253
+ justify-self: center;
254
+ }
255
+ }
256
+
229
257
  .workspace-body {
230
258
  flex: 1;
259
+ min-width: 0;
231
260
  min-height: 0;
261
+ max-width: 100%;
232
262
  }
233
263
 
234
264
  .workspace-body[hidden] {
@@ -399,14 +429,16 @@ code, pre { font-family: var(--font-mono); }
399
429
  .drawer-shortcut-edit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; gap: 8px; }
400
430
  .drawer-code, .drawer-context { font-family: var(--font-mono), monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
401
431
  .drawer-code { width: 100%; resize: vertical; }
402
- .drawer-html { display: block; width: 100%; height: clamp(160px, 35vh, 340px); border: 1px solid var(--border); border-radius: var(--radius-sm); }
432
+ .drawer-html { display: block; width: 100%; height: 110px; border: 1px solid var(--border); border-radius: var(--radius-sm); }
403
433
  .help-content { display: grid; gap: 10px; min-width: 0; }
404
434
  .help-topic-picker { display: grid; gap: 4px; font-size: 13px; color: var(--text-secondary); }
405
435
  .help-topic-description { font-size: 12px; color: var(--text-secondary); }
406
436
  .help-article { min-width: 0; overflow-wrap: anywhere; }
407
437
 
408
438
  @media (max-width: 540px) {
409
- .app-layout { --workspace-right-width: calc(100vw - 48px); --workspace-bottom-height: min(72dvh, 600px); }
439
+ .app-layout { --workspace-right-width: calc(100vw - 48px); --workspace-bottom-height: min(72dvh, 600px); overflow-x: clip; }
440
+ .workspace-toolbar { gap: 6px 8px; padding: 6px 10px; }
441
+ .workspace-toolbar .btn { padding-inline: 10px; font-size: 13px; }
410
442
  .workspace-edge-handle--right { font-size: 11px; padding-inline: 5px; }
411
443
  .workspace-edge-handle--right[aria-expanded="true"] { font-size: 0; }
412
444
  .drawer-shortcut-edit { grid-template-columns: minmax(0, 1fr); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "total-recall-brain",
3
- "version": "3.46.2",
3
+ "version": "3.47.1",
4
4
  "description": "The Vibe Coding Brain & Autonomous Software Factory: memory, rules, secrets, and 33 visual plugins automatically managed across all your devices.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "supertest": "^7.3.1",
22
- "total-recall-brain": "3.45.0",
22
+ "total-recall-brain": "3.47.0",
23
23
  "vitest": "^4.1.12"
24
24
  }
25
25
  },
@@ -6704,9 +6704,9 @@
6704
6704
  }
6705
6705
  },
6706
6706
  "node_modules/total-recall-brain": {
6707
- "version": "3.45.0",
6708
- "resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.45.0.tgz",
6709
- "integrity": "sha512-HDYfROazZbsLHQsFPnlBcSpe1HL1QEi7JG8x/eNRUI06RxVQsZWl8LwBo2lTWjWRDrKmCy7BUmSXQDuWF3lrEw==",
6707
+ "version": "3.47.0",
6708
+ "resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.47.0.tgz",
6709
+ "integrity": "sha512-S4UIdbbTyxw7C4+rix+7oHMm/6gYkcxwNBcP6kRDySX40p5IgqVTKgHk1n8rmaKiyYFoIX/HZHlHSjNrHgn0Gw==",
6710
6710
  "dev": true,
6711
6711
  "license": "MIT",
6712
6712
  "workspaces": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tr-plugin-auth",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "White-label Total Recall auth plugin: Passkey biometric FIDO2 and Google OAuth2 authentication.",
5
5
  "type": "module",
6
6
  "main": "cli.mjs",
@@ -34,7 +34,8 @@
34
34
  "scripts/",
35
35
  "!src/**/*.spec.mjs",
36
36
  "ui/",
37
- "!src/**/*.test.mjs"
37
+ "!src/**/*.test.mjs",
38
+ "skills/"
38
39
  ],
39
40
  "publishConfig": {
40
41
  "access": "public"
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://github.com/gregiteen/total-recall/blob/main/metadata.plugin.schema.json",
3
3
  "id": "auth",
4
4
  "name": "Auth & Secrets",
5
- "version": "1.3.0",
5
+ "version": "1.3.1",
6
6
  "description": "Encrypted credentials, repository bindings, dashboard sign-in and access across brains and machines.",
7
7
  "author": "Total Recall contributors",
8
8
  "license": "MIT",
@@ -49,9 +49,17 @@
49
49
  }
50
50
  ],
51
51
  "gate": {
52
- "tasks": ["Read, store or rotate a credential", "Issue or revoke API keys", "Passkeys, passwords and sign-in sessions", "Audit where secrets are used"],
52
+ "tasks": [
53
+ "Read, store or rotate a credential",
54
+ "Issue or revoke API keys",
55
+ "Passkeys, passwords and sign-in sessions",
56
+ "Audit where secrets are used"
57
+ ],
53
58
  "owned_commands": [
54
- { "pattern": "security\\s+find-generic-password\\b", "use": "total-recall auth secret get <KEY>" }
59
+ {
60
+ "pattern": "security\\s+find-generic-password\\b",
61
+ "use": "total-recall auth secret get <KEY>"
62
+ }
55
63
  ]
56
64
  },
57
65
  "cli": {
@@ -129,10 +137,20 @@
129
137
  "tag": "tr-auth-home",
130
138
  "module": "ui/home.js",
131
139
  "description": "Credential inventory, brains, machines and sign-in checks",
132
- "events": ["auth-inventory", "auth-credential-mutate"]
140
+ "events": [
141
+ "auth-inventory",
142
+ "auth-credential-mutate"
143
+ ]
133
144
  }
134
145
  ]
135
146
  },
147
+ "reuse": {
148
+ "commands": [
149
+ "total-recall ssss status",
150
+ "total-recall decision status"
151
+ ],
152
+ "owned": "Encrypted credential store, OAuth/passkey sign-in, session tokens, scoped keys, and auth secrets across Total Recall plugins."
153
+ },
136
154
  "configuration": {
137
155
  "fields": [
138
156
  {
@@ -237,5 +255,12 @@
237
255
  "distribution": {
238
256
  "tier": "official",
239
257
  "license": "open"
240
- }
258
+ },
259
+ "skills": [
260
+ {
261
+ "id": "auth",
262
+ "path": "./skills/auth/SKILL.md",
263
+ "description": "Encrypted credentials, repository bindings, dashboard sign-in and access across brains and machines."
264
+ }
265
+ ]
241
266
  }
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: auth
3
+ description: "Encrypted credentials, repository bindings, dashboard sign-in and access across brains and machines."
4
+ version: 1.3.0
5
+ repo_scoped: false
6
+ ---
7
+
8
+ # Auth & Secrets
9
+
10
+ Encrypted credentials, repository bindings, dashboard sign-in and access across brains and machines.
11
+
12
+ ## When to Use
13
+
14
+ Use the `auth` Total Recall plugin (`total-recall auth`) instead of ad-hoc scripts or raw commands whenever working on auth & secrets tasks.
15
+
16
+ ## Commands
17
+
18
+ ```bash
19
+ total-recall auth --help
20
+ total-recall auth status # Display auth system status and active providers
21
+ total-recall auth audit # Audit permissions, session secrets, and credential integrity
22
+ total-recall auth rotate # Generate and securely rotate SESSION_SECRET in store
23
+ total-recall auth passkey # Manage FIDO2 WebAuthn passkeys
24
+ total-recall auth google # Google OAuth status, connect, accounts, refresh and verified disconnect
25
+ total-recall auth probe # Run HTTP 200 health verification probe
26
+ total-recall auth session # Inspect active session tokens
27
+ total-recall auth agent # Sign in an agent CLI that authenticates on its own terminal
28
+ total-recall auth secret # Manage and inspect auth secrets in the Total Recall store
29
+ total-recall auth password # Set dashboard password through encrypted auth store: set --stdin [--force-reset]
30
+ total-recall auth key # Issue, list, revoke and audit scoped tokens; inspect and update role policy
31
+ ```
32
+
33
+ ## Owned Raw Commands
34
+
35
+ This plugin owns: `security\s+find-generic-password\b`.