total-recall-brain 3.40.7 → 3.41.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.
- package/bin/total-recall-memory.mjs +0 -0
- package/bin/total-recall.mjs +9 -40
- package/docs/reference/cli-reference.md +65 -1
- package/frontend/dist/assets/{index-AGUes-VG.css → index-BG9NkVUy.css} +1 -1
- package/frontend/dist/assets/{index-Bt5iVPZj.js → index-BtuiZqwP.js} +20 -7
- package/frontend/dist/index.html +2 -2
- package/frontend/src/components/plugins/PluginPanel.tsx +31 -5
- package/frontend/src/components/plugins/card/CardEngine.tsx +15 -23
- package/frontend/src/components/plugins/card/CardScenes.tsx +52 -23
- package/frontend/src/components/plugins/card/card.css +2 -5
- package/frontend/src/components/plugins/card/contract.ts +13 -19
- package/frontend/src/components/plugins/card/format.ts +8 -1
- package/frontend/src/components/plugins/card/widgets.tsx +4 -35
- package/frontend/src/components/plugins/plugin-frame.ts +30 -3
- package/frontend/src/pages/PluginsPage.tsx +3 -2
- package/package.json +1 -1
- package/scaffold/.agent/skills/meta-harness/references/optimized/original.md +1 -1
- package/scaffold/.agent/skills/plugin/SKILL.md +110 -0
- package/scaffold/.agent/skills/plugin/evals/README.md +53 -0
- package/scaffold/.agent/skills/plugin/evals/cases/01-fabricated-seed.mjs +42 -0
- package/scaffold/.agent/skills/plugin/evals/cases/02-reassuring-default.mjs +39 -0
- package/scaffold/.agent/skills/plugin/evals/cases/03-declared-template.mjs +32 -0
- package/scaffold/.agent/skills/plugin/evals/cases/04-card-collects-credential.mjs +46 -0
- package/scaffold/.agent/skills/plugin/evals/cases/05-host-leak-in-scaffold.mjs +55 -0
- package/scaffold/.agent/skills/plugin/evals/cases/06-correct-plugin.mjs +92 -0
- package/scaffold/.agent/skills/plugin/evals/run.mjs +118 -0
- package/scaffold/.agent/skills/plugin/prompts/01-function.md +29 -0
- package/scaffold/.agent/skills/plugin/prompts/02-surfaces.md +43 -0
- package/scaffold/.agent/skills/plugin/prompts/03-scaffold.md +31 -0
- package/scaffold/.agent/skills/plugin/prompts/04-cli.md +49 -0
- package/scaffold/.agent/skills/plugin/prompts/05-credentials.md +41 -0
- package/scaffold/.agent/skills/plugin/prompts/06-card.md +46 -0
- package/scaffold/.agent/skills/plugin/prompts/07-scaffold.md +52 -0
- package/scaffold/.agent/skills/plugin/prompts/08-verify.md +43 -0
- package/scaffold/.agent/skills/plugin/references/anti-patterns.md +123 -0
- package/scaffold/.agent/skills/plugin/references/card.md +90 -0
- package/scaffold/.agent/skills/plugin/references/scaffold.md +120 -0
- package/scaffold/.agent/skills/plugin/references/surfaces.md +206 -0
- package/scaffold/.agent/skills/plugin/scripts/record.mjs +360 -0
- package/scaffold/.agent/skills/plugin/subagents/card-designer.md +60 -0
- package/scaffold/.agent/skills/plugin/subagents/plugin-reviewer.md +55 -0
- package/scaffold/.agent/skills/plugin/subagents/scaffold-extractor.md +71 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/package-lock.json +71 -1441
- package/scaffold/.agent/skills/total-recall/plugins/auth/package.json +7 -5
- package/scaffold/.agent/skills/total-recall/plugins/auth/plugin.json +3 -44
- package/scaffold/.agent/skills/total-recall/plugins/auth/scripts/agent-login-pty.py +185 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/src/cli-secret.mjs +20 -1
- package/scaffold/.agent/skills/total-recall/plugins/auth/src/host-secrets-store.mjs +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/src/secrets-env-export.mjs +6 -4
- package/scaffold/.agent/skills/total-recall/plugins/auth/src/secrets-remote-deploy.mjs +1 -0
- package/scaffold/.agent/skills/total-recall/plugins/cli-agents/plugin.json +0 -24
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/package-lock.json +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/plugin.json +0 -21
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package-lock.json +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/plugin.json +0 -32
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/package-lock.json +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/plugin.json +11 -0
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/README.md +5 -2
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/package-lock.json +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/plugin.json +1 -28
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/ui/DESIGN.md +95 -13
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/ui/card.js +553 -340
- package/scaffold/.agent/skills/total-recall/plugins/mesh/plugin.json +0 -36
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/card.js +383 -400
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/package-lock.json +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/package.json +0 -1
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/plugin.json +0 -28
- package/scaffold/.agent/skills/total-recall/plugins/security/package-lock.json +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/security/plugin.json +0 -32
- package/scaffold/.agent/skills/total-recall/references/auth.md +3 -1
- package/scaffold/.agent/skills/total-recall/references/memory.md +4 -0
- package/scaffold/.agent/skills/total-recall/references/openwiki.md +2 -0
- package/scaffold/.agent/skills/total-recall/references/operations.md +12 -0
- package/src/cli/brain.mjs +72 -2
- package/src/cli/connect.mjs +10 -39
- package/src/cli/context-stats.mjs +104 -0
- package/src/cli/context.mjs +8 -0
- package/src/cli/daemon.mjs +10 -1
- package/src/cli/export.mjs +3 -2
- package/src/cli/ingest-okf.mjs +12 -15
- package/src/cli/init.mjs +0 -85
- package/src/cli/lint.mjs +3 -2
- package/src/cli/plugin/copies.mjs +68 -0
- package/src/cli/plugin/create.mjs +22 -24
- package/src/cli/plugin/index.mjs +49 -3
- package/src/cli/plugin/search.mjs +19 -2
- package/src/cli/rebuild.mjs +2 -0
- package/src/cli/remember.mjs +23 -0
- package/src/cli/status.mjs +10 -3
- package/src/cli/update.mjs +3 -2
- package/src/core/action-predictor.mjs +161 -0
- package/src/core/app-deploy/runtime-cli/node.mjs.tmpl +20 -3
- package/src/core/app-deploy/source.mjs +16 -9
- package/src/core/automatic-brain-updates.mjs +6 -3
- package/src/core/brain-registry.mjs +19 -2
- package/src/core/brain-state.mjs +23 -0
- package/src/core/cli-commands.mjs +1 -0
- package/src/core/cli-maintenance.mjs +1 -1
- package/src/core/cli-semantic-index.mjs +1 -1
- package/src/core/command-surface.mjs +3 -3
- package/src/core/composed-command-resolution.mjs +21 -0
- package/src/core/config.mjs +84 -0
- package/src/core/confined-memory.mjs +93 -0
- package/src/core/context-telemetry.mjs +214 -0
- package/src/core/daemon-control.mjs +14 -43
- package/src/core/fast-recall.mjs +1 -1
- package/src/core/memory-brain.mjs +2 -0
- package/src/core/plugin-activation.mjs +38 -6
- package/src/core/plugin-bundle.mjs +54 -0
- package/src/core/plugin-catalog.mjs +1 -1
- package/src/core/plugin-context.mjs +1 -1
- package/src/core/plugin-contracts/card.mjs +69 -37
- package/src/core/plugin-loader.mjs +5 -6
- package/src/core/plugin-runner.mjs +13 -6
- package/src/core/plugin-runtime.mjs +5 -4
- package/src/core/plugin-setup.mjs +5 -3
- package/src/core/plugin-state-store.mjs +12 -1
- package/src/core/plugin-state.mjs +46 -5
- package/src/core/plugin-store.mjs +78 -3
- package/src/core/plugin-tasks.mjs +3 -1
- package/src/core/plugin-updates.mjs +117 -0
- package/src/core/plugin-vendor.mjs +10 -4
- package/src/core/project-brain.mjs +14 -41
- package/src/core/project-id.mjs +4 -1
- package/src/core/required-plugins.mjs +151 -13
- package/src/core/skills-registry.mjs +27 -3
- package/src/core/ssss-kernel-bridge.mjs +3 -1
- package/src/core/startup-health.mjs +66 -16
- package/src/core/surface.mjs +53 -46
- package/src/core/testing/plugin-fixture.mjs +69 -0
- package/src/core/vault-files.mjs +13 -0
- package/src/core/vault.mjs +4 -30
- package/src/server/index.mjs +13 -1
- package/src/server/invoke-decision-child.mjs +49 -0
- package/src/server/invoke-execution.mjs +87 -0
- package/src/server/invoke-policy.mjs +64 -0
- package/src/server/invoke-read-child.mjs +26 -0
- package/src/server/invoke-targets.mjs +49 -0
- package/src/server/invoke-write-child.mjs +19 -0
- package/src/server/routes/invoke.mjs +314 -0
- package/src/server/routes/plugins.mjs +1 -1
- package/scaffold/.agent/skills/plugins/SKILL.md +0 -57
- package/scaffold/.agent/skills/plugins/references/card-design.md +0 -55
- package/scaffold/.agent/skills/plugins/references/distribution.md +0 -23
- package/scaffold/.agent/skills/plugins/references/manifest-contract.md +0 -90
- package/scaffold/.agent/skills/plugins/references/optimized/index.md +0 -9
- package/scaffold/.agent/skills/plugins/references/optimized/manifest.json +0 -35
- package/scaffold/.agent/skills/plugins/references/optimized/original.md +0 -58
- package/scaffold/.agent/skills/plugins/references/optimized/section-01.md +0 -5
- package/scaffold/.agent/skills/plugins/references/optimized/section-02.md +0 -25
- package/scaffold/.agent/skills/plugins/references/optimized/section-03.md +0 -12
- package/scaffold/.agent/skills/plugins/references/optimized/section-04.md +0 -7
- package/scaffold/.agent/skills/plugins/references/optimized/section-05.md +0 -5
- package/scaffold/.agent/skills/total-recall/openwiki/README.md +0 -10
- package/scaffold/.agent/skills/total-recall/openwiki/architecture.md +0 -5
- package/scaffold/.agent/skills/total-recall/openwiki/ide.md +0 -10
- package/scaffold/.agent/skills/total-recall/openwiki/memory.md +0 -11
- package/scaffold/.agent/skills/total-recall/openwiki/secrets.md +0 -7
- package/scaffold/.agent/skills/total-recall/openwiki/skills.md +0 -7
- package/scaffold/openwiki/README.md +0 -10
- package/scaffold/openwiki/architecture.md +0 -5
- package/scaffold/openwiki/ide.md +0 -10
- package/scaffold/openwiki/memory.md +0 -11
- package/scaffold/openwiki/secrets.md +0 -7
- package/scaffold/openwiki/skills.md +0 -7
- package/src/core/okf-adapter.mjs +0 -559
- package/templates/openwiki/README.md +0 -10
- package/templates/openwiki/architecture.md +0 -5
- package/templates/openwiki/ide.md +0 -10
- package/templates/openwiki/memory.md +0 -11
- package/templates/openwiki/secrets.md +0 -7
- package/templates/openwiki/skills.md +0 -7
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
]
|
|
47
47
|
},
|
|
48
48
|
"ui": {
|
|
49
|
+
"design_tokens": "ui/DESIGN.md",
|
|
49
50
|
"elements": [
|
|
50
51
|
{
|
|
51
52
|
"id": "card",
|
|
@@ -93,33 +94,5 @@
|
|
|
93
94
|
"distribution": {
|
|
94
95
|
"tier": "official",
|
|
95
96
|
"license": "open"
|
|
96
|
-
},
|
|
97
|
-
"card_layout": {
|
|
98
|
-
"template": "dashboard",
|
|
99
|
-
"regions": [
|
|
100
|
-
{
|
|
101
|
-
"widget": "status",
|
|
102
|
-
"title": "Status"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"widget": "live",
|
|
106
|
-
"title": "Live view"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"widget": "list",
|
|
110
|
-
"title": "Details",
|
|
111
|
-
"source": {
|
|
112
|
-
"command": "diff"
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"widget": "actions",
|
|
117
|
-
"title": "Commands"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"widget": "activity",
|
|
121
|
-
"title": "Recent activity"
|
|
122
|
-
}
|
|
123
|
-
]
|
|
124
97
|
}
|
|
125
98
|
}
|
|
@@ -1,18 +1,100 @@
|
|
|
1
|
-
# DESIGN.md —
|
|
1
|
+
# DESIGN.md — Git Hygiene
|
|
2
2
|
|
|
3
3
|
```yaml
|
|
4
4
|
tokens:
|
|
5
|
-
brand-name: "
|
|
6
|
-
wordmark: "
|
|
7
|
-
color-primary: "#
|
|
8
|
-
color-
|
|
9
|
-
color-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
brand-name: "Git Hygiene"
|
|
6
|
+
wordmark: "REPO HYGIENE"
|
|
7
|
+
color-primary: "#b45309"
|
|
8
|
+
color-accent: "#f59e0b"
|
|
9
|
+
color-ok: "#047857"
|
|
10
|
+
color-warn: "#b45309"
|
|
11
|
+
color-danger: "#b91c1c"
|
|
12
|
+
badge: "Repository Hygiene"
|
|
13
|
+
font-body: "Space Grotesk, system-ui, sans-serif"
|
|
14
|
+
font-mono: "'JetBrains Mono', ui-monospace, monospace"
|
|
15
|
+
border-radius: "6px"
|
|
16
|
+
density: "compact"
|
|
17
|
+
motion: "140ms ease-out"
|
|
13
18
|
```
|
|
14
19
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
## Who this card is for
|
|
21
|
+
|
|
22
|
+
An operator or agent who has committed to a rule: **nothing is left unpushed, and no worktree is left dirty.** This card is how they check that they kept it.
|
|
23
|
+
|
|
24
|
+
So it is not a statistics dashboard. It answers one question with a deadline attached — *is this repository safe to walk away from?* — and its elements are ordered by the consequence of ignoring them.
|
|
25
|
+
|
|
26
|
+
## The three tasks
|
|
27
|
+
|
|
28
|
+
1. **Check whether it is safe to leave** — the common one, answered in about a second.
|
|
29
|
+
2. **Find out what is uncommitted** — and what changed.
|
|
30
|
+
3. **Confirm a cleanup worked.**
|
|
31
|
+
|
|
32
|
+
## What must be visible without a click
|
|
33
|
+
|
|
34
|
+
- Whether any commit is **unpushed**, as a count. It is the only figure that can lose work on another machine, so it stands alone at the top.
|
|
35
|
+
- Whether the repository is **mid-conflict**, because that is not a normal state at all.
|
|
36
|
+
- The four dirty categories **separately**: staged, unstaged, untracked, conflicted — each needs a different action.
|
|
37
|
+
- The branch and its upstream relationship, including when the upstream is **gone** or **errored**.
|
|
38
|
+
- **A verdict** the operator can act on.
|
|
39
|
+
|
|
40
|
+
## Why the layout is this layout
|
|
41
|
+
|
|
42
|
+
A **wide surface**, never a narrow column, with figures ordered by consequence rather than by category.
|
|
43
|
+
|
|
44
|
+
- **A verdict line, because the operator came for a decision.** "Safe to leave", or the specific violations. Numbers alone leave them to do the reasoning the card exists to do.
|
|
45
|
+
- **Unpushed first and largest.** The standing rule is that commits are never left behind.
|
|
46
|
+
- **Conflicts beside it, outranking everything when non-zero.** A repository mid-merge is not in a normal state; `staged`/`unstaged` counts mean little until it is resolved.
|
|
47
|
+
- **Dirty as one figure with the four-way split shown** — one number for "how dirty", four for "what to do about it".
|
|
48
|
+
- **Each worktree row carries its action** ("stage and commit", "resolve before anything else"), because that is why the four categories exist.
|
|
49
|
+
- **Stashes fourth.** Parked work is easy to forget and cheap to check.
|
|
50
|
+
- **Unknown is an em dash with a reason.** `gone`, `none`, `detached`, `unborn`, `error` are named; only `tracking` yields a real ahead/behind count.
|
|
51
|
+
|
|
52
|
+
## Screens
|
|
53
|
+
|
|
54
|
+
| Screen | Contents | Why it exists for this plugin |
|
|
55
|
+
| --- | --- | --- |
|
|
56
|
+
| **Hygiene** | Verdict, unpushed, conflicts, dirty split, stashes, last commit. | The one-second check before leaving. |
|
|
57
|
+
| **Changes** | The real diffstat of unstaged work. | Knowing the tree is dirty is useless without knowing what changed. |
|
|
58
|
+
| **Upstream** | Branch, HEAD state, upstream name and state, ahead/behind, last commit, errors. | Facts (`none`, `detached`) and problems (`gone`, `error`) belong together, off the glance screen. |
|
|
59
|
+
| **Provenance** | The exact `audit --json` payload. | Every figure is traceable to one command. |
|
|
60
|
+
|
|
61
|
+
## Brand and colour
|
|
62
|
+
|
|
63
|
+
A first-party hygiene plugin, so it uses a plain descriptive name and its own mark: `#b45309` primary, `#f59e0b` accent, Space Grotesk for prose and JetBrains Mono for counts. The previous invented "Blame Game" / `[BLAME//GAME]` wordmark is removed, and the token values now match the manifest.
|
|
64
|
+
|
|
65
|
+
Colour comes from two places:
|
|
66
|
+
|
|
67
|
+
1. **Host tokens** injected into the frame — `--text-primary`, `--text-secondary`, `--bg-primary`, `--bg-secondary`, `--border`, `--accent` — so the face works in light and dark.
|
|
68
|
+
2. **A single `:host` token block** declaring consequence colours.
|
|
69
|
+
|
|
70
|
+
Consequence drives colour, and colour is never the only channel:
|
|
71
|
+
|
|
72
|
+
| Figure | Colour | Why |
|
|
73
|
+
| --- | --- | --- |
|
|
74
|
+
| Unpushed commits above zero | danger | violates the standing rule, can lose work |
|
|
75
|
+
| Conflicts above zero | danger | repository is mid-operation |
|
|
76
|
+
| Stashes above zero | warn | parked work, easily forgotten |
|
|
77
|
+
| Dirty counts | neutral | expected during work |
|
|
78
|
+
| Clean and pushed | ok | the goal state |
|
|
79
|
+
|
|
80
|
+
Counts are tabular monospace so digits do not shift between reads.
|
|
81
|
+
|
|
82
|
+
## Motion
|
|
83
|
+
|
|
84
|
+
Functional only, at `140ms ease-out`: a value transition when a reading changes. No ambient animation, no pulsing, no spinner as decoration. Removed — not slowed — under `prefers-reduced-motion: reduce`.
|
|
85
|
+
|
|
86
|
+
## States
|
|
87
|
+
|
|
88
|
+
`loading` (first read in flight, figures show an em dash), `ok`, `partial` (`errors[]` non-empty; figures render with a warning naming the failed checks), `error` (call rejected or payload unparseable — every figure clears and the error is shown with its attempt time).
|
|
89
|
+
|
|
90
|
+
There is no state in which the card asserts a clean repository it has not verified.
|
|
91
|
+
|
|
92
|
+
## What this face must never do
|
|
93
|
+
|
|
94
|
+
- Never seed a branch name, a count, or a status word.
|
|
95
|
+
- Never render "Up to date", "Synced" or "Repository Active" as a stand-in for an unknown value.
|
|
96
|
+
- Never read a field the command does not return.
|
|
97
|
+
- Never present a repository with unpushed commits as safe to leave.
|
|
98
|
+
- Never collapse `gone` or `error` upstream states into a reassuring word.
|
|
99
|
+
- Never perform a git write operation. Every command is `read`.
|
|
100
|
+
- Never render as a narrow column when width is available.
|