@agent-native/core 0.49.22 → 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.
Files changed (71) hide show
  1. package/dist/agent/production-agent.d.ts +1 -0
  2. package/dist/agent/production-agent.d.ts.map +1 -1
  3. package/dist/agent/production-agent.js +15 -0
  4. package/dist/agent/production-agent.js.map +1 -1
  5. package/dist/agent/tool-search.d.ts.map +1 -1
  6. package/dist/agent/tool-search.js +32 -7
  7. package/dist/agent/tool-search.js.map +1 -1
  8. package/dist/cli/connect.d.ts +2 -3
  9. package/dist/cli/connect.d.ts.map +1 -1
  10. package/dist/cli/connect.js +60 -37
  11. package/dist/cli/connect.js.map +1 -1
  12. package/dist/cli/pr-visual-recap-workflow.d.ts +5 -7
  13. package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
  14. package/dist/cli/pr-visual-recap-workflow.js +5 -7
  15. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  16. package/dist/cli/recap.d.ts +44 -52
  17. package/dist/cli/recap.d.ts.map +1 -1
  18. package/dist/cli/recap.js +420 -414
  19. package/dist/cli/recap.js.map +1 -1
  20. package/dist/client/AssistantChat.d.ts +6 -3
  21. package/dist/client/AssistantChat.d.ts.map +1 -1
  22. package/dist/client/AssistantChat.js +1 -1
  23. package/dist/client/AssistantChat.js.map +1 -1
  24. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  25. package/dist/client/MultiTabAssistantChat.js +23 -3
  26. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  27. package/dist/client/agent-chat.d.ts +8 -0
  28. package/dist/client/agent-chat.d.ts.map +1 -1
  29. package/dist/client/agent-chat.js +24 -1
  30. package/dist/client/agent-chat.js.map +1 -1
  31. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
  32. package/dist/client/blocks/library/AnnotatedCodeBlock.js +4 -1
  33. package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
  34. package/dist/client/blocks/library/DiffBlock.d.ts.map +1 -1
  35. package/dist/client/blocks/library/DiffBlock.js +20 -7
  36. package/dist/client/blocks/library/DiffBlock.js.map +1 -1
  37. package/dist/client/blocks/library/annotation-rail.js +5 -5
  38. package/dist/client/blocks/library/annotation-rail.js.map +1 -1
  39. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  40. package/dist/client/composer/TiptapComposer.js +15 -2
  41. package/dist/client/composer/TiptapComposer.js.map +1 -1
  42. package/dist/coding-tools/run-code.d.ts.map +1 -1
  43. package/dist/coding-tools/run-code.js +69 -17
  44. package/dist/coding-tools/run-code.js.map +1 -1
  45. package/dist/integrations/plugin.d.ts.map +1 -1
  46. package/dist/integrations/plugin.js +2 -0
  47. package/dist/integrations/plugin.js.map +1 -1
  48. package/dist/mcp/build-server.d.ts +12 -10
  49. package/dist/mcp/build-server.d.ts.map +1 -1
  50. package/dist/mcp/build-server.js +53 -89
  51. package/dist/mcp/build-server.js.map +1 -1
  52. package/dist/mcp/connect-route.d.ts.map +1 -1
  53. package/dist/mcp/connect-route.js +5 -4
  54. package/dist/mcp/connect-route.js.map +1 -1
  55. package/dist/mcp/oauth-token.d.ts +6 -5
  56. package/dist/mcp/oauth-token.d.ts.map +1 -1
  57. package/dist/mcp/oauth-token.js.map +1 -1
  58. package/dist/mcp/stdio.d.ts.map +1 -1
  59. package/dist/mcp/stdio.js +9 -2
  60. package/dist/mcp/stdio.js.map +1 -1
  61. package/dist/provider-api/staging.d.ts.map +1 -1
  62. package/dist/provider-api/staging.js +6 -4
  63. package/dist/provider-api/staging.js.map +1 -1
  64. package/dist/server/agent-chat-plugin.d.ts +10 -7
  65. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  66. package/dist/server/agent-chat-plugin.js.map +1 -1
  67. package/docs/content/actions.md +1 -1
  68. package/docs/content/external-agents.md +53 -40
  69. package/docs/content/mcp-protocol.md +16 -11
  70. package/docs/content/pr-visual-recap.md +1 -1
  71. package/package.json +1 -1
@@ -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`. Stdio/code developer clients can see the full connected action surface. Chat-style app hosts, including OAuth MCP Apps callers and generic authenticated remote HTTP/static-token callers, get a compact catalog containing app-facing builtins (`open_app`, `list_apps`, `ask_app`, and app-only embed helpers); action-specific MCP App resources stay out of that catalog unless an action explicitly sets `mcpApp.compactCatalog: true`. `publicAgent.expose` is still the opt-in for safe read/ingest tools outside that compact app catalog. See [MCP Protocol](/docs/mcp-protocol).
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 tool catalog your agent sees depends on both the deployment context and how
218
- you connected.
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
- ### Connector tier (hosted multi-tenant, default) {#connector-tier}
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
- On hosted multi-tenant deployments (e.g. `plan.agent-native.com`) the server
223
- activates a curated **connector catalog** when `AGENT_NATIVE_CONNECTOR_CATALOG=1`
224
- is set. External MCP clients see only the template-declared allow-list of
225
- app-level actions (create/get/update plan, sharing, upload, navigate, automations,
226
- tool-search) plus the four builtin cross-app tools (`list_apps`, `open_app`,
227
- `ask_app`, `create_embed_session`). Tools outside the list — `db-exec`,
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
- This keeps the context window of every connected external agent small (~20–30
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
- ### Full tier (local / dev, or per-token opt-up) {#full-tier}
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
- Local and dev deployments that do not have `AGENT_NATIVE_CONNECTOR_CATALOG=1`
239
- always serve the full action surface. When the env flag is set, individual
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. This embeds a `catalog_scope: "full"` claim in the minted JWT. On subsequent
247
- requests the MCP server bypasses the connector-catalog filter for that token
248
- and serves the complete action surface — identical to the local/dev experience.
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) is a
251
- deployment-wide override that disables the filter for all callers. Use it for
252
- single-tenant hosted instances that need the full surface without per-token
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, the available MCP tool surface depends on the
287
- host and the deployment. Code/stdio developer clients on local deployments get
288
- the app's full action surface plus the `ask-agent` meta-tool that runs the full
289
- agent loop (the same entry point [A2A](/docs/a2a-protocol) uses). On hosted
290
- multi-tenant deployments the connector tier is active by default (see above).
291
- Chat hosts, including Claude and ChatGPT, get a compact app-facing catalog by
292
- default even when they authenticate through a generic bearer/static-token path:
293
- cross-app verbs such as `list_apps`, `open_app`, and `ask_app`, plus the
294
- app-only embed helper. In all cases, ask the agent to do real work and it hands
295
- back a link straight into the running app:
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`). Stdio/code clients that use the `agent-native` proxy identify themselves and get the full developer catalog after auth. Chat-style remote HTTP callers stay on the compact app-facing catalog by default, even when authenticated, so ChatGPT/Claude cannot dump a huge full action catalog into the conversation.
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
- Stdio/code developer clients can see all connected app actions as MCP tools
107
- when they explicitly request the full catalog. Chat-style app hosts, including
108
- OAuth callers that request `mcp:apps` and generic authenticated remote
109
- HTTP/static-token callers, get a compact app-host catalog by default:
110
- app-facing builtins (`list_apps`, `open_app`, `ask_app`, and app-only
111
- `create_embed_session`) plus rare actions marked `mcpApp.compactCatalog: true`.
112
- Their `resources/list` is compact too, normally advertising only the generic
113
- `open_app` embed resource. `publicAgent.expose` remains the opt-in for safe
114
- read/ingest tools outside that compact app catalog. This keeps ChatGPT/Claude
115
- app-host discovery small while preserving the full developer surface for local
116
- agents.
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`, `mcp-config`, `scan`, `build-prompt`, `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.
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.49.22",
3
+ "version": "0.49.23",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"