@agent-native/core 0.49.21 → 0.49.23
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/agent/production-agent.d.ts +1 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +15 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/tool-search.d.ts.map +1 -1
- package/dist/agent/tool-search.js +32 -7
- package/dist/agent/tool-search.js.map +1 -1
- package/dist/cli/connect.d.ts +2 -3
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +60 -37
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +5 -7
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +5 -7
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.d.ts +44 -52
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +420 -414
- package/dist/cli/recap.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +6 -3
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +1 -1
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +23 -3
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +8 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +24 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.js +4 -1
- 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 +20 -7
- package/dist/client/blocks/library/DiffBlock.js.map +1 -1
- package/dist/client/blocks/library/annotation-rail.js +5 -5
- package/dist/client/blocks/library/annotation-rail.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +15 -2
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/coding-tools/run-code.d.ts.map +1 -1
- package/dist/coding-tools/run-code.js +69 -17
- package/dist/coding-tools/run-code.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +2 -0
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/mcp/build-server.d.ts +12 -10
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +53 -89
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/connect-route.d.ts.map +1 -1
- package/dist/mcp/connect-route.js +5 -4
- package/dist/mcp/connect-route.js.map +1 -1
- package/dist/mcp/oauth-token.d.ts +6 -5
- package/dist/mcp/oauth-token.d.ts.map +1 -1
- package/dist/mcp/oauth-token.js.map +1 -1
- package/dist/mcp/stdio.d.ts.map +1 -1
- package/dist/mcp/stdio.js +9 -2
- package/dist/mcp/stdio.js.map +1 -1
- package/dist/provider-api/staging.d.ts.map +1 -1
- package/dist/provider-api/staging.js +6 -4
- package/dist/provider-api/staging.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +10 -7
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/docs/content/actions.md +1 -1
- package/docs/content/external-agents.md +53 -40
- package/docs/content/mcp-protocol.md +16 -11
- package/docs/content/pr-visual-recap.md +1 -1
- package/docs/content/template-plan.md +1 -1
- package/package.json +1 -1
package/docs/content/actions.md
CHANGED
|
@@ -272,7 +272,7 @@ If your app is an [A2A](/docs/a2a-protocol) peer, other agent-native apps discov
|
|
|
272
272
|
|
|
273
273
|
## Exposing it over MCP {#mcp}
|
|
274
274
|
|
|
275
|
-
With MCP enabled, your actions show up in the framework's MCP server at `/_agent-native/mcp`.
|
|
275
|
+
With MCP enabled, your actions show up in the framework's MCP server at `/_agent-native/mcp`. Every caller gets a compact catalog by default — code/stdio developer clients, the local CLI proxy, and chat-style app hosts (OAuth MCP Apps callers and generic authenticated remote HTTP/static-token callers) alike — containing app-facing builtins (`open_app`, `list_apps`, `ask_app`, and app-only embed helpers) plus the template-declared app actions; action-specific MCP App resources stay out of that catalog unless an action explicitly sets `mcpApp.compactCatalog: true`. `tool-search` is always present (call it with no query for the full tool menu, or with a query for ranked matches), so any tool stays reachable on demand. The full action surface is served only on explicit opt-in (`--full-catalog` token or `AGENT_NATIVE_MCP_FULL_CATALOG=1`). `publicAgent.expose` is still the opt-in for safe read/ingest tools outside that compact app catalog. See [MCP Protocol](/docs/mcp-protocol).
|
|
276
276
|
|
|
277
277
|
For UI-capable MCP hosts, an action can also declare an optional MCP Apps resource via the `mcpApp` field (and a matching `link`) so capable hosts render the result inline. The pattern mirrors the focused link we already return for external agents: the action exposes the operation, `link` points at the route with the right URL or deep-link params, and the embed helper uses that same target as the inline app. When an action's `link` and `mcpApp` should point at the same route, use `embedRoute()` to build both from one pure path builder.
|
|
278
278
|
|
|
@@ -214,43 +214,55 @@ When the client requests no explicit scope, the app grants all three so the conn
|
|
|
214
214
|
|
|
215
215
|
## Catalog tiers {#catalog-tiers}
|
|
216
216
|
|
|
217
|
-
The
|
|
218
|
-
|
|
217
|
+
The MCP server serves a **compact catalog by default to every caller** —
|
|
218
|
+
hosted connectors (ChatGPT, Claude), code clients (Claude Code, Cursor,
|
|
219
|
+
Codex), and the local CLI/stdio proxy alike. The full action surface is served
|
|
220
|
+
only on an explicit opt-in. The catalog is never inferred from the client name
|
|
221
|
+
or user-agent.
|
|
222
|
+
|
|
223
|
+
### Compact / connector tier (default) {#connector-tier}
|
|
224
|
+
|
|
225
|
+
By default every connected agent sees a small, curated catalog: the
|
|
226
|
+
template-declared allow-list of app-level actions (create/get/update plan,
|
|
227
|
+
sharing, upload, navigate, automations, `tool-search`) plus the builtin
|
|
228
|
+
cross-app tools (`list_apps`, `open_app`, `ask_app`, `create_embed_session`).
|
|
229
|
+
Tools outside the list — `db-exec`, `db-patch`, `seed-*`, the extension suite,
|
|
230
|
+
browser-session tools, agent-engine management, and context-xray tools — are
|
|
231
|
+
not advertised, and calls to them are rejected with "Unknown tool" unless the
|
|
232
|
+
caller has opted into the full catalog.
|
|
219
233
|
|
|
220
|
-
|
|
234
|
+
This keeps the context window of every connected external agent small (~20–30
|
|
235
|
+
tools vs. ~105) and removes footguns that are only safe for single-tenant local
|
|
236
|
+
development. The connector tier is active **whenever a template declares a
|
|
237
|
+
`connectorCatalog`** — it is no longer gated behind an environment variable.
|
|
221
238
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
`db-patch`, `seed-*`, the extension suite, browser-session tools, agent-engine
|
|
229
|
-
management, and context-xray tools — are not advertised and calls to them are
|
|
230
|
-
rejected with "Unknown tool".
|
|
239
|
+
`tool-search` is always available (including in the compact catalog), so a
|
|
240
|
+
compacted client can still reach any tool on demand. Call it with **no query**
|
|
241
|
+
to get the full menu of tool names plus one-line descriptions (cheap — no
|
|
242
|
+
schemas), or with a query to get ranked matches with parameter summaries. This
|
|
243
|
+
is how a compacted client discovers and loads any full-surface tool when it
|
|
244
|
+
needs one.
|
|
231
245
|
|
|
232
|
-
|
|
233
|
-
tools vs. ~105) and removes footguns that are only safe for single-tenant
|
|
234
|
-
local development.
|
|
246
|
+
### Full tier (explicit opt-in only) {#full-tier}
|
|
235
247
|
|
|
236
|
-
|
|
248
|
+
The complete ~105-tool action surface is served only when a caller explicitly
|
|
249
|
+
opts in. There are two ways to opt in:
|
|
237
250
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
callers can still opt up by minting their token with `--full-catalog`:
|
|
251
|
+
- Mint a token with `--full-catalog`, which embeds a `catalog_scope: "full"`
|
|
252
|
+
claim in the JWT:
|
|
241
253
|
|
|
242
|
-
```bash
|
|
243
|
-
npx @agent-native/core@latest connect https://plan.agent-native.com --client codex --full-catalog
|
|
244
|
-
```
|
|
254
|
+
```bash
|
|
255
|
+
npx @agent-native/core@latest connect https://plan.agent-native.com --client codex --full-catalog
|
|
256
|
+
```
|
|
245
257
|
|
|
246
|
-
Swap `--client codex` for another target client when needed.
|
|
247
|
-
requests the MCP server bypasses the
|
|
248
|
-
and serves the complete action surface
|
|
258
|
+
Swap `--client codex` for another target client when needed. On subsequent
|
|
259
|
+
requests the MCP server bypasses the compact-catalog filter for that token
|
|
260
|
+
and serves the complete action surface.
|
|
249
261
|
|
|
250
|
-
`AGENT_NATIVE_MCP_FULL_CATALOG=1` (process env on the server)
|
|
251
|
-
deployment-wide override that
|
|
252
|
-
single-tenant hosted instances that
|
|
253
|
-
opt-up.
|
|
262
|
+
- Set `AGENT_NATIVE_MCP_FULL_CATALOG=1` (process env on the server) as a
|
|
263
|
+
deployment-wide override that serves the full surface to all callers. Use it
|
|
264
|
+
for single-tenant hosted instances that want the full surface without
|
|
265
|
+
per-token opt-up.
|
|
254
266
|
|
|
255
267
|
### Template declaration {#catalog-declaration}
|
|
256
268
|
|
|
@@ -283,16 +295,17 @@ included regardless of the declared list.
|
|
|
283
295
|
|
|
284
296
|
## What you can do once connected {#what-you-can-do}
|
|
285
297
|
|
|
286
|
-
Once your agent is connected,
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
298
|
+
Once your agent is connected, every caller gets the compact catalog by default
|
|
299
|
+
(see [Catalog tiers](#catalog-tiers)) — code/stdio developer clients, the local
|
|
300
|
+
CLI proxy, and chat hosts like Claude and ChatGPT alike. That surface is the
|
|
301
|
+
template-declared app actions plus the builtin cross-app verbs (`list_apps`,
|
|
302
|
+
`open_app`, `ask_app`, and the app-only embed helper). Use `ask_app` to route a
|
|
303
|
+
natural-language task through an app agent (the same cross-app entry point
|
|
304
|
+
[A2A](/docs/a2a-protocol) uses). `tool-search` is always present, so any tool
|
|
305
|
+
outside the compact list stays reachable on demand. To get the full ~105-tool
|
|
306
|
+
surface up front, opt in explicitly with `--full-catalog` or
|
|
307
|
+
`AGENT_NATIVE_MCP_FULL_CATALOG=1`. In all cases, ask the agent to do real work
|
|
308
|
+
and it hands back a link straight into the running app:
|
|
296
309
|
|
|
297
310
|
```
|
|
298
311
|
> draft an email to John about the Q3 report
|
|
@@ -508,7 +521,7 @@ This is the unmanaged equivalent of what `connect` writes for you. See [MCP Prot
|
|
|
508
521
|
|
|
509
522
|
### Dev vs production tool surface {#dev-vs-prod}
|
|
510
523
|
|
|
511
|
-
In plain local dev (`NODE_ENV=development` and `AGENT_MODE !== "production"`) the MCP `tools/list` deliberately exposes only the generic builtins plus actions with `publicAgent.requiresAuth === false` — the per-app ingest actions (`requiresAuth: true`) and mutating actions (no `publicAgent`) are filtered out (`filterPublicAgentActions`).
|
|
524
|
+
In plain local dev (`NODE_ENV=development` and `AGENT_MODE !== "production"`) the MCP `tools/list` deliberately exposes only the generic builtins plus actions with `publicAgent.requiresAuth === false` — the per-app ingest actions (`requiresAuth: true`) and mutating actions (no `publicAgent`) are filtered out (`filterPublicAgentActions`). The compact catalog is the default for every caller after auth — stdio/code clients using the `agent-native` proxy, the local CLI, and chat-style remote HTTP callers alike — so ChatGPT/Claude (or any client) cannot dump a huge full action catalog into the conversation. The full developer catalog is served only on explicit opt-in (`--full-catalog` token or `AGENT_NATIVE_MCP_FULL_CATALOG=1`); `tool-search` keeps every tool reachable in the meantime.
|
|
512
525
|
|
|
513
526
|
### Switching first-party apps between prod and dev {#dev-switch}
|
|
514
527
|
|
|
@@ -103,17 +103,22 @@ See [MCP Apps](/docs/mcp-apps#mcp-app-bridge) for the full embed bridge details
|
|
|
103
103
|
|
|
104
104
|
## Tools {#tools}
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
app-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
106
|
+
Every caller gets a compact app-host catalog by default — chat-style app hosts
|
|
107
|
+
(OAuth callers that request `mcp:apps` and generic authenticated remote
|
|
108
|
+
HTTP/static-token callers), code/stdio developer clients, and the local CLI
|
|
109
|
+
proxy alike: app-facing builtins (`list_apps`, `open_app`, `ask_app`, and
|
|
110
|
+
app-only `create_embed_session`), the template-declared app actions, and rare
|
|
111
|
+
actions marked `mcpApp.compactCatalog: true`. Their `resources/list` is compact
|
|
112
|
+
too, normally advertising only the generic `open_app` embed resource. The
|
|
113
|
+
catalog is never inferred from the client name or user-agent. The full action
|
|
114
|
+
surface is served only on explicit opt-in — a token minted with `--full-catalog`
|
|
115
|
+
(`catalog_scope: "full"`) or the deployment-wide `AGENT_NATIVE_MCP_FULL_CATALOG=1`
|
|
116
|
+
override. `tool-search` is always available, including in the compact catalog:
|
|
117
|
+
call it with no query for the full menu of tool names and one-line descriptions,
|
|
118
|
+
or with a query for ranked matches with parameter summaries, to reach any tool
|
|
119
|
+
on demand. `publicAgent.expose` remains the opt-in for safe read/ingest tools
|
|
120
|
+
outside that compact app catalog. This keeps ChatGPT/Claude app-host discovery
|
|
121
|
+
small while keeping every tool reachable.
|
|
117
122
|
|
|
118
123
|
The mapping is direct:
|
|
119
124
|
|
|
@@ -36,7 +36,7 @@ explicitly at any time:
|
|
|
36
36
|
npx @agent-native/core@latest skills add visual-plan --with-github-action
|
|
37
37
|
```
|
|
38
38
|
|
|
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** through `npx @agent-native/core@latest recap <subcommand>` — including `gate`, `collect-diff`, `
|
|
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** through `npx @agent-native/core@latest recap <subcommand>` — including `gate`, `collect-diff`, `block-reference`, `scan`, `build-prompt`, `publish`, `shot`, `comment`, `check`, and `usage` — so nothing is copied into your repo as helper scripts. `setup` and `doctor` are the interactive helpers you run locally; `gate` is the security-gate step the workflow runs before every recap.
|
|
40
40
|
|
|
41
41
|
Then run the guided setup helper:
|
|
42
42
|
|
|
@@ -294,7 +294,7 @@ Actions in `templates/plan/actions/`:
|
|
|
294
294
|
- **Reading & editing** — `get-visual-plan`, `update-visual-plan`, `list-visual-plans`, `import-visual-plan-source`, `patch-visual-plan-source`, `read-visual-plan-source`, `export-visual-plan`
|
|
295
295
|
- **Publishing & sharing** — `publish-visual-plan`
|
|
296
296
|
- **Versions** — `list-plan-versions`, `get-plan-version`, `restore-plan-version`
|
|
297
|
-
- **Comments & feedback** — `get-plan-feedback`, `reply-to-plan-comment`, `resolve-plan-comment`, `consume-plan-feedback`
|
|
297
|
+
- **Comments & feedback** — `get-plan-feedback`, `reply-to-plan-comment`, `resolve-plan-comment`, `consume-plan-feedback`, `delete-plan-comment`
|
|
298
298
|
- **Prototype** — `convert-visual-plan-to-prototype`, `create-prototype-plan`
|
|
299
299
|
- **Context & navigation** — `view-screen`, `navigate`
|
|
300
300
|
|