@agent-native/core 0.44.4 → 0.45.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/dist/action.d.ts +8 -1
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +20 -10
- package/dist/action.js.map +1 -1
- package/dist/cli/app-skill.d.ts +3 -1
- package/dist/cli/app-skill.d.ts.map +1 -1
- package/dist/cli/app-skill.js +50 -8
- package/dist/cli/app-skill.js.map +1 -1
- package/dist/cli/connect.d.ts +2 -1
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +224 -10
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +9 -7
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +69 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp-config-writers.d.ts +10 -0
- package/dist/cli/mcp-config-writers.d.ts.map +1 -1
- package/dist/cli/mcp-config-writers.js +60 -6
- package/dist/cli/mcp-config-writers.js.map +1 -1
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +4 -6
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/plan-local.d.ts +43 -0
- package/dist/cli/plan-local.d.ts.map +1 -0
- package/dist/cli/plan-local.js +490 -0
- package/dist/cli/plan-local.js.map +1 -0
- package/dist/cli/plan-publish-store.d.ts +17 -7
- package/dist/cli/plan-publish-store.d.ts.map +1 -1
- package/dist/cli/plan-publish-store.js +33 -8
- package/dist/cli/plan-publish-store.js.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.d.ts +225 -3
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +1267 -27
- package/dist/cli/recap.js.map +1 -1
- package/dist/cli/skills.d.ts +26 -11
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +810 -1365
- package/dist/cli/skills.js.map +1 -1
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +3 -2
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.js +41 -10
- package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
- package/dist/client/blocks/library/DiffBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/DiffBlock.js +54 -23
- package/dist/client/blocks/library/DiffBlock.js.map +1 -1
- package/dist/client/blocks/library/annotation-rail.d.ts +27 -8
- package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
- package/dist/client/blocks/library/annotation-rail.js +64 -27
- package/dist/client/blocks/library/annotation-rail.js.map +1 -1
- package/dist/client/blocks/library/code-filename-label.d.ts +8 -0
- package/dist/client/blocks/library/code-filename-label.d.ts.map +1 -0
- package/dist/client/blocks/library/code-filename-label.js +15 -0
- package/dist/client/blocks/library/code-filename-label.js.map +1 -0
- package/dist/client/blocks/library/code.d.ts.map +1 -1
- package/dist/client/blocks/library/code.js +3 -2
- package/dist/client/blocks/library/code.js.map +1 -1
- package/dist/client/blocks/library/diff.config.d.ts +1 -1
- package/dist/client/blocks/library/diff.config.js.map +1 -1
- package/dist/client/blocks/library/html.d.ts.map +1 -1
- package/dist/client/blocks/library/html.js +3 -1
- package/dist/client/blocks/library/html.js.map +1 -1
- package/dist/client/blocks/library/narrow-container.d.ts +4 -4
- package/dist/client/blocks/library/narrow-container.d.ts.map +1 -1
- package/dist/client/blocks/library/narrow-container.js +10 -10
- package/dist/client/blocks/library/narrow-container.js.map +1 -1
- package/dist/client/blocks/library/question-form.d.ts.map +1 -1
- package/dist/client/blocks/library/question-form.js +4 -1
- package/dist/client/blocks/library/question-form.js.map +1 -1
- package/dist/client/blocks/library/tabs.d.ts.map +1 -1
- package/dist/client/blocks/library/tabs.js +7 -2
- package/dist/client/blocks/library/tabs.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +4 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/db-admin/TableEditor.d.ts.map +1 -1
- package/dist/client/db-admin/TableEditor.js +3 -1
- package/dist/client/db-admin/TableEditor.js.map +1 -1
- package/dist/db/client.d.ts +8 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +23 -2
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +2 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +8 -0
- package/dist/deploy/build.js.map +1 -1
- package/dist/extensions/html-shell.js +1 -1
- package/dist/extensions/html-shell.js.map +1 -1
- package/dist/extensions/routes.d.ts +18 -0
- package/dist/extensions/routes.d.ts.map +1 -1
- package/dist/extensions/routes.js +30 -8
- package/dist/extensions/routes.js.map +1 -1
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +5 -1
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/mcp/build-server.d.ts +1 -0
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +7 -3
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/oauth-route.d.ts.map +1 -1
- package/dist/mcp/oauth-route.js +56 -19
- package/dist/mcp/oauth-route.js.map +1 -1
- package/dist/mcp/oauth-store.d.ts +1 -0
- package/dist/mcp/oauth-store.d.ts.map +1 -1
- package/dist/mcp/oauth-store.js +9 -0
- package/dist/mcp/oauth-store.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +9 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp-client/errors.js +3 -3
- package/dist/mcp-client/errors.js.map +1 -1
- package/dist/oauth-tokens/store.d.ts.map +1 -1
- package/dist/oauth-tokens/store.js +42 -5
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/scripts/db/index.d.ts.map +1 -1
- package/dist/scripts/db/index.js +1 -0
- package/dist/scripts/db/index.js.map +1 -1
- package/dist/scripts/db/migrate-encrypt-oauth-tokens.d.ts +28 -0
- package/dist/scripts/db/migrate-encrypt-oauth-tokens.d.ts.map +1 -0
- package/dist/scripts/db/migrate-encrypt-oauth-tokens.js +164 -0
- package/dist/scripts/db/migrate-encrypt-oauth-tokens.js.map +1 -0
- package/dist/scripts/db/scoping.d.ts.map +1 -1
- package/dist/scripts/db/scoping.js +7 -5
- package/dist/scripts/db/scoping.js.map +1 -1
- package/dist/secrets/index.d.ts +1 -0
- package/dist/secrets/index.d.ts.map +1 -1
- package/dist/secrets/index.js +4 -0
- package/dist/secrets/index.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +3 -1
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-teams.d.ts.map +1 -1
- package/dist/server/agent-teams.js +10 -2
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +7 -3
- package/dist/server/auth.js.map +1 -1
- package/dist/server/recap-image-route.d.ts.map +1 -1
- package/dist/server/recap-image-route.js +3 -6
- package/dist/server/recap-image-route.js.map +1 -1
- package/dist/server/sentry.d.ts.map +1 -1
- package/dist/server/sentry.js +12 -5
- package/dist/server/sentry.js.map +1 -1
- package/dist/server/social-og-image.d.ts.map +1 -1
- package/dist/server/social-og-image.js +3 -1
- package/dist/server/social-og-image.js.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.js +4 -1
- package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +22 -6
- package/docs/content/plan-plugin.md +39 -7
- package/docs/content/pr-visual-recap.md +89 -13
- package/docs/content/skills-guide.md +13 -0
- package/docs/content/template-plan.md +62 -7
- package/package.json +5 -1
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +22 -6
|
@@ -12,9 +12,26 @@ The Agent-Native **Plan** app ships as one installable bundle. A single install
|
|
|
12
12
|
One install gives you:
|
|
13
13
|
|
|
14
14
|
- **Two skills** — `/visual-plan` (the canonical entry point) and `/visual-recap`.
|
|
15
|
-
- **The Plan MCP connector** — registered against the hosted app at `https://plan.agent-native.com` (MCP endpoint `https://plan.agent-native.com/_agent-native/mcp`, server name `agent-native-plans`).
|
|
15
|
+
- **The Plan MCP connector** — registered against the hosted app at `https://plan.agent-native.com` (MCP endpoint `https://plan.agent-native.com/_agent-native/mcp`, server name `plan`, with legacy alias `agent-native-plans` during migration).
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
By default, both skills publish to the hosted Plan app — they create a plan via
|
|
18
|
+
the MCP connector and hand you a link or inline plan to review. They never dump
|
|
19
|
+
an inline Markdown/ASCII plan into chat as the deliverable. If a Plan tool
|
|
20
|
+
returns `needs auth`, `Unauthorized`, or `Session terminated`, authenticate the
|
|
21
|
+
connector (see each route below) instead of falling back to inline output.
|
|
22
|
+
|
|
23
|
+
The exception is explicit **local-files privacy mode**. When you ask for no DB
|
|
24
|
+
writes or set `AGENT_NATIVE_PLANS_MODE=local-files`, the skills must not call
|
|
25
|
+
the Plan MCP connector. They write `plans/<slug>/plan.mdx` plus optional
|
|
26
|
+
`canvas.mdx`, `prototype.mdx`, and `.plan-state.json`, then preview locally with:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
agent-native plan local preview --dir plans/<slug> --kind plan
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This keeps plan content out of the Agent-Native Plan database. Hosted sharing,
|
|
33
|
+
comments, screenshots, and plan history are unavailable until you explicitly
|
|
34
|
+
publish later.
|
|
18
35
|
|
|
19
36
|
> The plugin (`agent-native-visual-plans`) carries app id `visual-plans`, which is why the Claude Code plugin name and Codex plugin name are both `agent-native-visual-plans`. The Plan app's display name is "Agent-Native Plan".
|
|
20
37
|
|
|
@@ -32,14 +49,27 @@ npx @agent-native/core@latest skills add visual-plan
|
|
|
32
49
|
agent-native skills add visual-plan
|
|
33
50
|
```
|
|
34
51
|
|
|
35
|
-
This installs `visual-plan` plus the companion `visual-recap` skill, then registers the `agent-native-plans`
|
|
52
|
+
This installs `visual-plan` plus the companion `visual-recap` skill, then registers the `plan` connector and its legacy `agent-native-plans` alias, then runs auth (OAuth prompt for hosted/account-backed sharing). Useful flags:
|
|
36
53
|
|
|
37
54
|
- `--client codex|claude-code|claude-code-cli|cowork|all` — which local agents to write the MCP config for (default `codex`).
|
|
38
55
|
- `--no-connect` — register the connector without authenticating; run `agent-native connect https://plan.agent-native.com` later.
|
|
39
56
|
- `--mcp-url <url>` — point the connector at a custom origin (an ngrok tunnel, a local dev server, or a self-hosted deployment) instead of the hosted default.
|
|
40
57
|
- `--with-github-action` — also write the PR Visual Recap GitHub Action (see [PR Visual Recap](/docs/pr-visual-recap)).
|
|
41
58
|
|
|
42
|
-
|
|
59
|
+
Interactive installs also offer the PR Visual Recap Action when no workflow is
|
|
60
|
+
present. Say yes to add it during skill setup, or run the command above later
|
|
61
|
+
with `--with-github-action`. After the workflow is written, run:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
agent-native recap setup
|
|
65
|
+
agent-native recap doctor
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`recap setup` configures the GitHub Action secrets and variables where possible,
|
|
69
|
+
and `recap doctor` verifies the workflow, local publish token, GitHub repo
|
|
70
|
+
access, and required Actions configuration. After install finishes, restart or
|
|
71
|
+
reload the agent client so the new skills and tools load, then run
|
|
72
|
+
`/visual-plan`.
|
|
43
73
|
|
|
44
74
|
> Note: the bare `npx skills add BuilderIO/agent-native --skill visual-plan` (Vercel/open Skills CLI) installs **instructions only** — it does not register the MCP connector. Use the Agent-Native CLI above when you want the connector wired up too.
|
|
45
75
|
|
|
@@ -65,10 +95,12 @@ The same repo is a Codex plugin marketplace. Add it, install the plugin, then au
|
|
|
65
95
|
```bash
|
|
66
96
|
codex plugin marketplace add BuilderIO/agent-native
|
|
67
97
|
codex plugin add agent-native-visual-plans@agent-native-apps
|
|
68
|
-
codex mcp login
|
|
98
|
+
codex mcp login plan # OAuth in the browser
|
|
99
|
+
# Existing installs may already be authenticated as:
|
|
100
|
+
codex mcp login agent-native-plans
|
|
69
101
|
```
|
|
70
102
|
|
|
71
|
-
After install, **start a new Codex thread** so the skills and MCP tools load into the session. The plugin ships
|
|
103
|
+
After install, **start a new Codex thread** so the skills and MCP tools load into the session. The plugin ships URL-only connectors (`[mcp_servers.plan]` and legacy `[mcp_servers.agent-native-plans]` → `https://plan.agent-native.com/_agent-native/mcp`); `codex mcp login` runs the OAuth flow. The universal CLI route above also works for Codex (`agent-native skills add visual-plan --client codex`) if you prefer one command that installs and authenticates together.
|
|
72
104
|
|
|
73
105
|
## Updates {#updates}
|
|
74
106
|
|
|
@@ -76,7 +108,7 @@ The plugin routes auto-update — you do not re-pack or re-add the marketplace f
|
|
|
76
108
|
|
|
77
109
|
- **Claude Code** — the marketplace entry sets `autoUpdate: true` and the plugin uses commit-SHA versioning, so Claude Code pulls new versions from the repo at startup; run `/reload-plugins` to activate. Every push to the repo's default branch reaches installed users automatically.
|
|
78
110
|
- **Codex** — the plugin `version` embeds a content hash of the bundled skills and MCP endpoint (e.g. `1.0.0+codex.<hash>`), so any skill or endpoint change yields a new version. Codex's startup auto-upgrade re-installs configured git marketplaces on its own; just **start a new thread** to pick up the change. No manual `codex plugin marketplace upgrade` is needed for routine updates.
|
|
79
|
-
- **Universal CLI route** —
|
|
111
|
+
- **Universal CLI route** — run `npx @agent-native/core@latest skills status visual-plan` to check copied skill folders, or `npx @agent-native/core@latest skills update visual-plan` to refresh them in place. Re-running `skills add visual-plan` still works when you also want to re-register/authenticate the connector. `@latest` always pulls the current skills from the published `@agent-native/core` package.
|
|
80
112
|
|
|
81
113
|
The connector points at a **hosted** app, so the Plan app's actions and live tool surface always reflect the deployed version regardless of when you installed; only the bundled skill instructions follow the update mechanisms above.
|
|
82
114
|
|
|
@@ -1,38 +1,61 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "PR Visual Recap"
|
|
3
|
-
description: "A GitHub Action that runs your repo's visual-recap skill on every PR. An LLM coding agent reads the diff, publishes an interactive recap plan, and posts
|
|
3
|
+
description: "A GitHub Action that runs your repo's visual-recap skill on every PR. An LLM coding agent reads the diff, publishes an interactive recap plan, shows an informational check, and posts a sticky PR comment with an inline screenshot. Informational and non-blocking."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PR Visual Recap
|
|
7
7
|
|
|
8
|
-
PR Visual Recap is a GitHub Action that turns every pull request into a **visual code review**. On each push, an LLM coding agent runs your repo's [`visual-recap`](/docs/template-plan) skill against the PR diff, publishes a structured recap plan to the hosted Plans app, and upserts **one sticky PR comment** that links to the interactive plan with an **inline screenshot** embedded right in the comment.
|
|
8
|
+
PR Visual Recap is a GitHub Action that turns every pull request into a **visual code review**. On each push, an LLM coding agent runs your repo's [`visual-recap`](/docs/template-plan) skill against the PR diff, publishes a structured recap plan to the hosted Plans app, shows an informational `Visual Recap` check while it runs, and upserts **one sticky PR comment** that links to the interactive plan with an **inline screenshot** embedded right in the comment.
|
|
9
9
|
|
|
10
10
|
This is not a deterministic diff renderer. The action invokes a real coding agent (Claude Code CLI by default, or OpenAI Codex CLI) that reads the change, decides what matters, and authors the recap by calling the Plans MCP tool `create-visual-recap` — the same tool the `/visual-recap` slash command uses. You get a high-altitude, schema/API/before-after view of the change instead of a wall of raw diff.
|
|
11
11
|
|
|
12
|
-
The recap is **informational and non-blocking**. It is not a required check, it never blocks the PR, and it never replaces reading the actual diff. The sticky comment is a review aid, not a sign-off.
|
|
12
|
+
The recap is **informational and non-blocking**. It creates a check row so reviewers can see that generation is in progress, but it is not a required check, it never blocks the PR, and it never replaces reading the actual diff. The sticky comment is a review aid, not a sign-off.
|
|
13
13
|
|
|
14
14
|
## What it does
|
|
15
15
|
|
|
16
16
|
On each PR push, the workflow:
|
|
17
17
|
|
|
18
18
|
1. Collects a bounded diff between the PR base and head.
|
|
19
|
-
2.
|
|
20
|
-
3.
|
|
21
|
-
4.
|
|
22
|
-
5.
|
|
23
|
-
6.
|
|
19
|
+
2. Creates an informational `Visual Recap` GitHub check with `Review in progress`.
|
|
20
|
+
3. Runs the configured coding agent against that diff. The agent reads your repo's `visual-recap` skill and authors a recap, publishing it with `create-visual-recap`.
|
|
21
|
+
4. Reads the published plan URL the agent wrote to `recap-url.txt`.
|
|
22
|
+
5. Opens that URL in headless Chrome and screenshots the rendered plan.
|
|
23
|
+
6. Uploads the PNG to a signed public image route on the Plans app.
|
|
24
|
+
7. Upserts a single sticky PR comment that embeds the screenshot **inline** (served through GitHub's camo image proxy) next to the link to the interactive recap.
|
|
25
|
+
8. Completes the `Visual Recap` check as success, skipped, or neutral.
|
|
24
26
|
|
|
25
27
|
A re-push updates the same plan and the same sticky comment in place — no orphaned plans, no comment spam.
|
|
26
28
|
|
|
27
29
|
## Installing it
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
When you install Plans interactively, the Agent-Native CLI asks whether to add
|
|
32
|
+
automatic PR Visual Recaps. Say yes to write the GitHub Action, or add it
|
|
33
|
+
explicitly at any time:
|
|
30
34
|
|
|
31
35
|
```bash
|
|
32
36
|
agent-native skills add visual-plan --with-github-action
|
|
33
37
|
```
|
|
34
38
|
|
|
35
|
-
This installs the `visual-plan` skill (which includes the `visual-recap` skill the action runs) and writes `.github/workflows/pr-visual-recap.yml` into your repo. The workflow calls **published CLI subcommands** — `agent-native recap scan|build-prompt|shot|comment` — so nothing is copied into your repo as helper scripts.
|
|
39
|
+
This installs the `visual-plan` skill (which includes the `visual-recap` skill the action runs) and writes `.github/workflows/pr-visual-recap.yml` into your repo. The workflow calls **published CLI subcommands** — `agent-native recap scan|build-prompt|shot|comment` — so nothing is copied into your repo as helper scripts.
|
|
40
|
+
|
|
41
|
+
Then run the guided setup helper:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
agent-native recap setup
|
|
45
|
+
agent-native recap doctor
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`recap setup` refreshes the workflow, uses `gh` to set GitHub Actions
|
|
49
|
+
secrets/variables when values are available from env or the local Plans
|
|
50
|
+
publish-token store, and prints exact missing commands for anything it cannot
|
|
51
|
+
set. Secret values are sent to `gh` through stdin, not command arguments. Commit
|
|
52
|
+
the generated workflow file and open a PR to see it run.
|
|
53
|
+
|
|
54
|
+
By default, the workflow builds its agent prompt from the latest bundled
|
|
55
|
+
`visual-recap` guidance in `@agent-native/core@latest`, including any sibling
|
|
56
|
+
reference files the skill ships with. If your repo intentionally customizes and
|
|
57
|
+
pins its committed `visual-recap` folder, set the repository variable
|
|
58
|
+
`VISUAL_RECAP_SKILL_SOURCE=repo`.
|
|
36
59
|
|
|
37
60
|
## Backend selection
|
|
38
61
|
|
|
@@ -51,6 +74,7 @@ Beyond the backend, two repository variables tune _how_ the agent runs:
|
|
|
51
74
|
|
|
52
75
|
- **`VISUAL_RECAP_MODEL`** pins the model passed to the CLI (`--model`) — for example `gpt-5.5` for Codex, or a Claude model id. Leave it unset to use the CLI's own default model.
|
|
53
76
|
- **`VISUAL_RECAP_REASONING`** sets the reasoning depth: `none`, `minimal`, `low`, `medium`, `high`, or `xhigh`. It applies to the Codex backend; Claude's reasoning is model-driven, so this variable is ignored there.
|
|
77
|
+
- **`VISUAL_RECAP_SKILL_SOURCE`** controls prompt freshness: `auto`/unset uses the latest bundled skill guidance, while `repo` pins to the committed repo-local `visual-recap` skill folder.
|
|
54
78
|
|
|
55
79
|
For example, to run the recap on Codex with GPT-5.5 at high reasoning, set the repository variables `VISUAL_RECAP_AGENT=codex`, `VISUAL_RECAP_MODEL=gpt-5.5`, and `VISUAL_RECAP_REASONING=high`.
|
|
56
80
|
|
|
@@ -65,7 +89,18 @@ Set these in your repository's **Settings → Secrets and variables → Actions*
|
|
|
65
89
|
| `PLAN_RECAP_TOKEN` | Per-user, revocable token minted by `agent-native connect`. Authorizes publishing the recap plan and the screenshot upload. |
|
|
66
90
|
| `ANTHROPIC_API_KEY` | The LLM key for the default Claude Code backend. |
|
|
67
91
|
|
|
68
|
-
Mint `PLAN_RECAP_TOKEN` with `agent-native connect` against your Plans app
|
|
92
|
+
Mint `PLAN_RECAP_TOKEN` with `agent-native connect` against your Plans app. For
|
|
93
|
+
the hosted app, this also writes a local publish-token file that
|
|
94
|
+
`agent-native recap setup` can read:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
agent-native connect https://plan.agent-native.com --client codex
|
|
98
|
+
agent-native recap setup
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
If you prefer manual setup, paste the token into the GitHub secret. Use a
|
|
102
|
+
placeholder like `plan_recap_xxxxxxxxxxxxxxxx` only for examples — never commit a
|
|
103
|
+
real token.
|
|
69
104
|
|
|
70
105
|
### Optional (only if you change defaults)
|
|
71
106
|
|
|
@@ -89,12 +124,53 @@ The workflow uses the plain `pull_request` trigger, **not** `pull_request_target
|
|
|
89
124
|
|
|
90
125
|
This also means you can merge the workflow file **before** the secrets exist: with no token configured, every run is a quiet no-op until you set the secrets.
|
|
91
126
|
|
|
127
|
+
## Self-modifying guard (sensitive paths)
|
|
128
|
+
|
|
129
|
+
The workflow's gate job skips the recap entirely if a PR touches any of the following paths, so a PR can never rewrite what the trusted recap job runs and exfiltrate secrets:
|
|
130
|
+
|
|
131
|
+
| Path pattern | Reason |
|
|
132
|
+
| ------------------------------------------ | --------------------------------------------------------- |
|
|
133
|
+
| `.github/workflows/pr-visual-recap.yml` | The workflow itself |
|
|
134
|
+
| `**/skills/visual-(recap\|plan\|plans)/**` | The visual-recap skill the agent follows |
|
|
135
|
+
| `**/.claude/**` | Agent settings the runner loads |
|
|
136
|
+
| `**/CLAUDE.md` | Agent instructions the runner loads |
|
|
137
|
+
| `**/AGENTS.md` | Agent instructions the runner loads |
|
|
138
|
+
| `**/.mcp.json` | MCP server config the runner loads |
|
|
139
|
+
| `packages/core/**` | Recap CLI source _(BuilderIO/agent-native monorepo only)_ |
|
|
140
|
+
|
|
141
|
+
The `packages/core/**` rule applies only in the `BuilderIO/agent-native` monorepo where `packages/core` is the recap CLI source. In consumer repos an unrelated `packages/core/` directory does not trigger the guard.
|
|
142
|
+
|
|
143
|
+
## Local-files privacy mode
|
|
144
|
+
|
|
145
|
+
The GitHub Action is designed for hosted, shareable PR review. If you want a
|
|
146
|
+
recap without sending recap content to the Agent-Native Plan database, run the
|
|
147
|
+
same helper flow locally in local-files mode instead:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
agent-native recap collect-diff --base main --head HEAD --out recap.diff --stat recap.stat
|
|
151
|
+
agent-native recap scan --diff recap.diff
|
|
152
|
+
agent-native recap build-prompt --pr 123 --diff recap.diff --stat recap.stat --local-files --local-dir plans/pr-123-visual-recap
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Give the generated `recap-prompt.md` to your coding agent. In local-files mode
|
|
156
|
+
the prompt instructs the agent to write `plans/pr-123-visual-recap/plan.mdx`
|
|
157
|
+
plus optional visual files and then run:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
agent-native plan local preview --dir plans/pr-123-visual-recap --kind recap
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
The returned `file://` preview, or `/local-plans/pr-123-visual-recap` in a local
|
|
164
|
+
Plan app using the same `PLAN_LOCAL_DIR`, is the review link. This mode disables
|
|
165
|
+
the hosted sticky PR comment, inline screenshot upload, usage attachment, and
|
|
166
|
+
browser comments until you explicitly publish.
|
|
167
|
+
|
|
92
168
|
## It's informational, not a gate
|
|
93
169
|
|
|
94
170
|
The recap is a review aid layered on top of the normal PR flow:
|
|
95
171
|
|
|
96
|
-
- It is **never a required check** and never blocks merging.
|
|
97
|
-
- A generation or publish failure surfaces as an explanatory sticky comment, not a red X on unrelated code.
|
|
172
|
+
- It shows a `Visual Recap` check row for visibility, but it is **never a required check** and never blocks merging.
|
|
173
|
+
- A generation or publish failure completes neutrally and surfaces as an explanatory sticky comment, not a red X on unrelated code.
|
|
98
174
|
- The recap and its screenshot **do not imply the diff has been reviewed**. Reviewers still need to read the actual changed lines.
|
|
99
175
|
|
|
100
176
|
## Related
|
|
@@ -132,6 +132,19 @@ Plan app is published this way as a ready-to-add marketplace at the repo root
|
|
|
132
132
|
see [Plan plugin & marketplace](/docs/plan-plugin) for the end-to-end install
|
|
133
133
|
and auto-update flow.
|
|
134
134
|
|
|
135
|
+
For users who install copied skills through the universal CLI instead of a
|
|
136
|
+
plugin marketplace, use the CLI freshness commands:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npx @agent-native/core@latest skills status visual-plan
|
|
140
|
+
npx @agent-native/core@latest skills update visual-plan
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
`skills update` scans known Codex/Claude project and user skill folders, compares
|
|
144
|
+
the copied folder hash to the latest bundled skill, and rewrites stale folders in
|
|
145
|
+
place. Newly copied Agent Native skills include an `agent-native-skill.json`
|
|
146
|
+
marker so future status output can identify the source and hash.
|
|
147
|
+
|
|
135
148
|
## Creating custom skills {#creating-skills}
|
|
136
149
|
|
|
137
150
|
Create a skill when:
|
|
@@ -7,8 +7,8 @@ description: "Agent-Native Plans turns your coding agent's plan into a structure
|
|
|
7
7
|
|
|
8
8
|
Agent-Native Plans is visual plan mode for coding agents. It turns an ordinary
|
|
9
9
|
Codex, Claude Code, Markdown, or pasted implementation plan into a structured
|
|
10
|
-
review surface with rich text, diagrams, wireframes,
|
|
11
|
-
annotations, comments, and shareable links.
|
|
10
|
+
review surface with rich text, diagrams, wireframes, annotated code walkthroughs
|
|
11
|
+
and file trees, annotations, comments, and shareable links.
|
|
12
12
|
|
|
13
13
|
It comes down to two commands. `/visual-plan` builds a plan **before** the agent
|
|
14
14
|
writes code. `/visual-recap` turns a change that **already** happened — a PR,
|
|
@@ -45,6 +45,10 @@ agent-native skills add visual-plan
|
|
|
45
45
|
|
|
46
46
|
The command installs both commands: `/visual-plan` and `/visual-recap`.
|
|
47
47
|
|
|
48
|
+
If you are using a chat-based host that accepts MCP connector URLs directly
|
|
49
|
+
(rather than a CLI-configured client), connect the hosted Plans connector at
|
|
50
|
+
`https://plan.agent-native.com/_agent-native/mcp` — see [MCP Clients](/docs/mcp-clients) for client-specific setup.
|
|
51
|
+
|
|
48
52
|
Authentication is a one-time browser sign-in at setup — this is intended, and it
|
|
49
53
|
is what lets the agent persist and share the plans it generates. What the auth
|
|
50
54
|
step does depends on your client:
|
|
@@ -79,6 +83,10 @@ see [PR Visual Recap](/docs/pr-visual-recap).
|
|
|
79
83
|
npx @agent-native/core@latest skills add visual-plan --with-github-action
|
|
80
84
|
```
|
|
81
85
|
|
|
86
|
+
After the workflow is written, run `agent-native recap setup` to configure
|
|
87
|
+
GitHub Actions secrets/variables where possible and `agent-native recap doctor`
|
|
88
|
+
to verify the repo is ready.
|
|
89
|
+
|
|
82
90
|
If you only want the portable instruction file through the open Skills CLI, use:
|
|
83
91
|
|
|
84
92
|
```bash
|
|
@@ -99,8 +107,8 @@ After installation, ask your agent for the command that fits the work:
|
|
|
99
107
|
|
|
100
108
|
- `/visual-plan` creates a structured plan **before** implementation — for
|
|
101
109
|
architecture, backend, refactor, UI, or mixed product work — pulling in
|
|
102
|
-
diagrams, wireframes, mockups, clickable prototypes, and
|
|
103
|
-
as the work calls for them.
|
|
110
|
+
diagrams, wireframes, mockups, clickable prototypes, and annotated code
|
|
111
|
+
walkthroughs and file trees as the work calls for them.
|
|
104
112
|
- `/visual-recap` creates a high-altitude **review** of a change that already
|
|
105
113
|
happened — a PR, commit, branch, or git diff — as schema, API, file, and
|
|
106
114
|
before/after blocks instead of a wall of raw diff.
|
|
@@ -121,8 +129,8 @@ it to the agent starts a revision turn against the existing plan.
|
|
|
121
129
|
## What you can do with it
|
|
122
130
|
|
|
123
131
|
- **Review before implementation.** React to diagrams, wireframes, option tabs,
|
|
124
|
-
Open Questions forms, risk notes,
|
|
125
|
-
agent edits files.
|
|
132
|
+
Open Questions forms, risk notes, annotated code walkthroughs, and code
|
|
133
|
+
previews before the agent edits files.
|
|
126
134
|
- **Comment directly on the plan.** Pin feedback to text, images, wireframes, or
|
|
127
135
|
canvas locations; choose whether the comment is for the agent or a human
|
|
128
136
|
reviewer; @mention teammates with inline chips; and resolve comments as the
|
|
@@ -162,6 +170,50 @@ Sharing and commenting are the workflows that need an account:
|
|
|
162
170
|
The hosted Plans connector lives at `https://plan.agent-native.com/_agent-native/mcp`.
|
|
163
171
|
Never put shared secrets in skill files.
|
|
164
172
|
|
|
173
|
+
## Local-files privacy mode {#local-files}
|
|
174
|
+
|
|
175
|
+
For privacy-focused work, ask for local-files mode:
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
Use /visual-plan in local-files mode. Do not write this plan to the Plan DB.
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
or set the convention for your agent environment:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
export AGENT_NATIVE_PLANS_MODE=local-files
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
In this mode the agent writes a local MDX folder under `plans/<slug>/` and must
|
|
188
|
+
not call the hosted Plan MCP tools. The durable files are:
|
|
189
|
+
|
|
190
|
+
- `plan.mdx`
|
|
191
|
+
- optional `canvas.mdx`
|
|
192
|
+
- optional `prototype.mdx`
|
|
193
|
+
- optional `.plan-state.json`
|
|
194
|
+
|
|
195
|
+
After writing the folder, the agent validates and previews it locally:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
agent-native plan local preview --dir plans/<slug> --kind plan
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
If you run the Plan app locally with the same `PLAN_LOCAL_DIR`, you can open the
|
|
202
|
+
read-only app route:
|
|
203
|
+
|
|
204
|
+
```text
|
|
205
|
+
http://localhost:<port>/local-plans/<slug>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Local-files mode prevents plan or recap content from going to the Agent-Native
|
|
209
|
+
Plan database. It also disables hosted sharing, browser comments, plan history,
|
|
210
|
+
and publish/export receipts until you explicitly opt into publishing. To move a
|
|
211
|
+
local plan into the hosted database, call `publish-visual-plan` with the local
|
|
212
|
+
MDX folder path; this uploads the plan, assigns it a hosted ID, enables sharing
|
|
213
|
+
and commenting, and returns the hosted URL. It does
|
|
214
|
+
not automatically make your coding agent's LLM local; choose a local or approved
|
|
215
|
+
model if that privacy boundary matters too.
|
|
216
|
+
|
|
165
217
|
## Useful prompts
|
|
166
218
|
|
|
167
219
|
- "Use `/visual-plan` before changing the auth flow."
|
|
@@ -169,6 +221,7 @@ Never put shared secrets in skill files.
|
|
|
169
221
|
- "Use `/visual-plan` on the Markdown plan below and make it easier to review."
|
|
170
222
|
- "Run `/visual-recap` on this PR so I can review the shape of the change first."
|
|
171
223
|
- "Use `/visual-recap` on the diff between `main` and this branch."
|
|
224
|
+
- "Use `/visual-recap` in local-files mode so no recap content is written to the Plan DB."
|
|
172
225
|
|
|
173
226
|
## Recovering from auth errors {#auth-errors}
|
|
174
227
|
|
|
@@ -205,7 +258,9 @@ persistence, or running a fully self-hosted review surface.
|
|
|
205
258
|
For fully offline, no-account use, you can run the Plans app locally and sync
|
|
206
259
|
your plans to your repo as MDX. This local mode is a separate, advanced path —
|
|
207
260
|
not the default hosted flow — and is best when you need everything to stay on
|
|
208
|
-
your machine and in version control.
|
|
261
|
+
your machine and in version control. For the stricter no-DB path, use
|
|
262
|
+
[local-files privacy mode](#local-files), which reads from MDX folders instead
|
|
263
|
+
of creating local SQL rows.
|
|
209
264
|
|
|
210
265
|
## What's next
|
|
211
266
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22"
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"./resources/metadata": "./dist/resources/metadata.js",
|
|
73
73
|
"./oauth-tokens": "./dist/oauth-tokens/index.js",
|
|
74
74
|
"./secrets": "./dist/secrets/index.js",
|
|
75
|
+
"./secrets/crypto": "./dist/secrets/crypto.js",
|
|
75
76
|
"./org": "./dist/org/index.js",
|
|
76
77
|
"./client/org": "./dist/client/org/index.js",
|
|
77
78
|
"./client/db-admin": "./dist/client/db-admin/index.js",
|
|
@@ -240,6 +241,9 @@
|
|
|
240
241
|
"vite": ">=5",
|
|
241
242
|
"ws": ">=8"
|
|
242
243
|
},
|
|
244
|
+
"optionalDependencies": {
|
|
245
|
+
"playwright": "^1.60.0"
|
|
246
|
+
},
|
|
243
247
|
"peerDependenciesMeta": {
|
|
244
248
|
"ai": {
|
|
245
249
|
"optional": true
|
|
@@ -95,9 +95,9 @@ For local stdio proxying, Codex/Cowork compatibility, or clients without
|
|
|
95
95
|
remote MCP OAuth, use the hosted connect fallback:
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
|
-
npx @agent-native/core connect https://dispatch.agent-native.com
|
|
98
|
+
npx @agent-native/core@latest connect https://dispatch.agent-native.com
|
|
99
99
|
# or, for an isolated app:
|
|
100
|
-
npx @agent-native/core connect https://mail.agent-native.com
|
|
100
|
+
npx @agent-native/core@latest connect https://mail.agent-native.com
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
The command opens the app in the browser, the user clicks **Authorize**, and a
|
|
@@ -111,6 +111,19 @@ Claude bearer-token entry is the migration path: the CLI replaces
|
|
|
111
111
|
`Authorization` headers with URL-only OAuth config and tells the user to
|
|
112
112
|
authenticate from `/mcp`.
|
|
113
113
|
|
|
114
|
+
To re-authenticate an already-installed local/fallback client without
|
|
115
|
+
reinstalling skills or connectors, use:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
npx @agent-native/core@latest reconnect https://dispatch.agent-native.com --client codex
|
|
119
|
+
# or:
|
|
120
|
+
npx @agent-native/core@latest connect reconnect https://dispatch.agent-native.com --client codex
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
With no URL, `reconnect` searches the selected client config for the existing
|
|
124
|
+
Agent Native MCP entry. Pass `--name <serverName>` when the config has multiple
|
|
125
|
+
entries or a custom server name.
|
|
126
|
+
|
|
114
127
|
Under the hood: a logged-in browser session mints an `A2A_SECRET`-signed JWT
|
|
115
128
|
carrying the caller's `sub` + `org_domain` and a unique `jti`, so tool runs
|
|
116
129
|
stay tenant-scoped via `runWithRequestContext`. The existing
|
|
@@ -339,14 +352,17 @@ and mutating actions are filtered out (`filterPublicAgentActions`). The full
|
|
|
339
352
|
surface appears when authenticated as a real caller: a deployed /
|
|
340
353
|
`AGENT_MODE=production` app, or a local app reached through `connect` /
|
|
341
354
|
`agent-native mcp install` (which provisions an identity-bearing token). A
|
|
342
|
-
sparse `tools/list`
|
|
343
|
-
|
|
355
|
+
sparse or empty `tools/list` is diagnostic, not proof of auth failure: check
|
|
356
|
+
OAuth scopes, compact-catalog filtering, and the client/server auth status
|
|
357
|
+
before telling the user they are unauthenticated.
|
|
344
358
|
|
|
345
359
|
## Do
|
|
346
360
|
|
|
347
361
|
- Do connect local/fallback clients to Dispatch with
|
|
348
|
-
`npx @agent-native/core connect https://dispatch.agent-native.com`;
|
|
349
|
-
|
|
362
|
+
`npx @agent-native/core@latest connect https://dispatch.agent-native.com`;
|
|
363
|
+
use `npx @agent-native/core@latest reconnect ...` for reauth without
|
|
364
|
+
reinstalling; use a direct app URL only when the host should be isolated to
|
|
365
|
+
one app.
|
|
350
366
|
- Do add a `link` builder to any action that produces or lists a navigable
|
|
351
367
|
resource (draft, event, dashboard, document).
|
|
352
368
|
- Do add `mcpApp` when a UI-capable MCP host should render an inline review or
|