@agent-native/core 0.155.0 → 0.157.0

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 (95) hide show
  1. package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +3 -1
  2. package/corpus/templates/assets/app/i18n-data.ts +21 -1
  3. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +17 -13
  4. package/corpus/templates/clips/app/components/player/share-dialog.tsx +102 -59
  5. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +15 -1
  6. package/corpus/templates/clips/app/routes/share.$shareId.tsx +16 -2
  7. package/corpus/templates/slides/app/components/editor/AddSlidePopover.tsx +98 -29
  8. package/corpus/templates/slides/app/components/editor/EditorActionCluster.tsx +45 -91
  9. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +94 -2
  10. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +17 -29
  11. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +1 -1
  12. package/corpus/templates/slides/app/context/DeckContext.tsx +42 -2
  13. package/corpus/templates/slides/app/global.css +7 -40
  14. package/corpus/templates/slides/app/i18n/en-US.ts +4 -0
  15. package/corpus/templates/slides/app/pages/DeckEditor.tsx +130 -45
  16. package/dist/agent/index.d.ts +1 -1
  17. package/dist/agent/production-agent.d.ts +30 -0
  18. package/dist/agent/production-agent.js +100 -8
  19. package/dist/agent/types.d.ts +9 -0
  20. package/dist/client/AgentPanel.js +12 -9
  21. package/dist/client/AssistantChat.d.ts +15 -1
  22. package/dist/client/AssistantChat.js +110 -43
  23. package/dist/client/MultiTabAssistantChat.js +44 -27
  24. package/dist/client/chat/markdown-renderer.js +4 -2
  25. package/dist/client/chat/message-components.d.ts +2 -2
  26. package/dist/client/chat/message-components.js +69 -35
  27. package/dist/client/chat/run-recovery.d.ts +4 -1
  28. package/dist/client/chat/run-recovery.js +62 -30
  29. package/dist/client/chat/tool-call-display.d.ts +12 -3
  30. package/dist/client/chat/tool-call-display.js +79 -40
  31. package/dist/client/chat/widgets/DataChartRenderer.js +3 -1
  32. package/dist/client/chat/widgets/DataChartWidget.js +8 -2
  33. package/dist/client/chat/widgets/DataInsightsWidget.js +3 -1
  34. package/dist/client/chat/widgets/DataTableWidget.js +23 -9
  35. package/dist/client/chat/widgets/builtin-tool-renderers.js +3 -1
  36. package/dist/client/components/ui/message-scroller.d.ts +1 -1
  37. package/dist/client/components/ui/message-scroller.js +7 -3
  38. package/dist/client/composer/runtime-adapters.js +3 -2
  39. package/dist/client/context-xray/ContextMeter.js +5 -1
  40. package/dist/client/context-xray/ContextXRayPanel.js +5 -5
  41. package/dist/client/error-format.d.ts +4 -0
  42. package/dist/client/error-format.js +93 -5
  43. package/dist/client/i18n.js +83 -17
  44. package/dist/client/observability/ThumbsFeedback.js +10 -8
  45. package/dist/client/sharing/ShareButton.js +160 -54
  46. package/dist/coding-tools/run-code.js +2 -1
  47. package/dist/coding-tools/sandbox/background.d.ts +1 -0
  48. package/dist/coding-tools/sandbox/background.js +8 -1
  49. package/dist/coding-tools/sandbox/executions-store.d.ts +2 -0
  50. package/dist/coding-tools/sandbox/executions-store.js +41 -3
  51. package/dist/collab/routes.d.ts +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/localization/core-messages/ar-SA.d.ts +3 -0
  54. package/dist/localization/core-messages/ar-SA.js +541 -0
  55. package/dist/localization/core-messages/de-DE.d.ts +3 -0
  56. package/dist/localization/core-messages/de-DE.js +513 -0
  57. package/dist/localization/core-messages/en-US.d.ts +513 -0
  58. package/dist/localization/core-messages/en-US.js +513 -0
  59. package/dist/localization/core-messages/es-ES.d.ts +3 -0
  60. package/dist/localization/core-messages/es-ES.js +520 -0
  61. package/dist/localization/core-messages/fr-FR.d.ts +3 -0
  62. package/dist/localization/core-messages/fr-FR.js +520 -0
  63. package/dist/localization/core-messages/hi-IN.d.ts +3 -0
  64. package/dist/localization/core-messages/hi-IN.js +513 -0
  65. package/dist/localization/core-messages/ja-JP.d.ts +3 -0
  66. package/dist/localization/core-messages/ja-JP.js +506 -0
  67. package/dist/localization/core-messages/ko-KR.d.ts +3 -0
  68. package/dist/localization/core-messages/ko-KR.js +506 -0
  69. package/dist/localization/core-messages/pt-BR.d.ts +3 -0
  70. package/dist/localization/core-messages/pt-BR.js +520 -0
  71. package/dist/localization/core-messages/zh-CN.d.ts +3 -0
  72. package/dist/localization/core-messages/zh-CN.js +506 -0
  73. package/dist/localization/core-messages/zh-TW.d.ts +3 -0
  74. package/dist/localization/core-messages/zh-TW.js +506 -0
  75. package/dist/localization/core-messages.d.ts +524 -0
  76. package/dist/localization/core-messages.js +124 -0
  77. package/dist/localization/default-messages.d.ts +2 -0
  78. package/dist/localization/default-messages.js +2 -0
  79. package/dist/notifications/routes.d.ts +1 -1
  80. package/dist/observability/routes.d.ts +5 -5
  81. package/dist/resources/handlers.d.ts +1 -1
  82. package/dist/secrets/routes.d.ts +9 -9
  83. package/dist/server/agent-chat/plugin-options.d.ts +7 -2
  84. package/dist/server/agent-chat-plugin.d.ts +10 -0
  85. package/dist/server/agent-chat-plugin.js +144 -41
  86. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  87. package/dist/server/agent-run-context.d.ts +7 -1
  88. package/dist/server/agent-run-context.js +9 -2
  89. package/dist/server/agent-teams-run-queue.d.ts +3 -0
  90. package/dist/server/agent-teams.js +38 -9
  91. package/dist/server/index.d.ts +1 -1
  92. package/dist/server/request-context.d.ts +7 -0
  93. package/dist/server/request-context.js +15 -0
  94. package/docs/content/agent-surfaces.mdx +30 -0
  95. package/package.json +2 -2
@@ -57,8 +57,10 @@ function processEnv(name) {
57
57
  const GLOBAL_KEY = "__agentNativeRequestContextAls";
58
58
  const OBSERVERS_KEY = "__agentNativeRequestContextObservers";
59
59
  const BOUNDARY_KEY = "__agentNativeRequestBoundaryInstalled";
60
+ const CONTINUATION_LOCAL_KEY = "__agentNativeRequestContextContinuationLocal";
60
61
  const globalRef = globalThis;
61
62
  if (!globalRef[GLOBAL_KEY]) {
63
+ globalRef[CONTINUATION_LOCAL_KEY] = Boolean(AsyncLocalStorageCtor);
62
64
  globalRef[GLOBAL_KEY] = AsyncLocalStorageCtor
63
65
  ? new AsyncLocalStorageCtor()
64
66
  : new StackAsyncLocalStorage();
@@ -68,6 +70,16 @@ if (!globalRef[OBSERVERS_KEY]) {
68
70
  }
69
71
  const als = globalRef[GLOBAL_KEY];
70
72
  const observers = globalRef[OBSERVERS_KEY];
73
+ /**
74
+ * Authorization state must never use the shared-stack compatibility fallback:
75
+ * overlapping async requests are only isolated by native AsyncLocalStorage.
76
+ */
77
+ export function assertRequestActionSurfaceIsolation() {
78
+ if (globalRef[CONTINUATION_LOCAL_KEY] === true)
79
+ return;
80
+ throw new Error("Request-scoped action surfaces require continuation-local request context storage; " +
81
+ "this runtime only provides the non-isolated fallback.");
82
+ }
71
83
  /**
72
84
  * Register a callback fired every time `runWithRequestContext` enters a new
73
85
  * scope. The hook runs INSIDE the AsyncLocalStorage scope, so observability
@@ -95,6 +107,9 @@ export function addRequestContextObserver(observer) {
95
107
  * isolation-scoped backends (Sentry, OpenTelemetry, etc.).
96
108
  */
97
109
  export function runWithRequestContext(ctx, fn) {
110
+ if (ctx.run?.allowedActionNames !== undefined) {
111
+ assertRequestActionSurfaceIsolation();
112
+ }
98
113
  return als.run(ctx, () => {
99
114
  if (observers.length > 0) {
100
115
  for (const obs of observers) {
@@ -167,6 +167,36 @@ React widget, use [Generative UI](/docs/generative-ui): it renders sandboxed
167
167
  Alpine/Tailwind UI inline, can read app state and slot context, and can send
168
168
  selected values back to chat.
169
169
 
170
+ ### Request-scoped action surfaces
171
+
172
+ Use `resolveActionSurface` when the selected agent or thread must expose only a
173
+ server-authorized subset of native actions. The callback runs for every
174
+ interactive chat request after `prepareRequest`. Returned names form a hard
175
+ allowlist for that request: omitted actions are absent from provider schemas,
176
+ the execution registry, plan-mode preloading, and `tool-search` discovery.
177
+
178
+ ```ts
179
+ createAgentChatPlugin({
180
+ actions,
181
+ nativeActionsInDev: true,
182
+ resolveActionSurface: async ({ threadId, availableActionNames }) => ({
183
+ allowedActionNames: await loadAllowedActions(
184
+ threadId,
185
+ availableActionNames,
186
+ ),
187
+ }),
188
+ });
189
+ ```
190
+
191
+ An empty list exposes no native actions. Unknown names fail the request instead
192
+ of widening access. Every allowed action is loaded directly on the first model
193
+ request; include `tool-search` explicitly only when discovery inside the
194
+ already-authorized catalog is wanted. The callback scopes interactive agent
195
+ chat only—it does not change HTTP, MCP, A2A, job, or trigger exposure. Default
196
+ framework guidance and spawned sub-agents inherit the same surface. Trusted
197
+ shell tools are automatically reduced to the request-filtered sandbox because
198
+ an unrestricted shell cannot enforce a hard action boundary.
199
+
170
200
  ## Native inline UI {#native-inline-ui}
171
201
 
172
202
  Use this when your actions return structured data — a list of records, a chart dataset, a status summary — that should render as a real UI component inside the chat thread rather than a plain text description. You define a `chatUI` renderer on the action, and Agent-Native renders it as a first-party React component: no iframes, no separate rendering path.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.155.0",
3
+ "version": "0.157.0",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -424,7 +424,7 @@
424
424
  "yjs": "^13.6.31",
425
425
  "zod": "^4.3.6",
426
426
  "@agent-native/recap-cli": "0.5.4",
427
- "@agent-native/toolkit": "^0.14.3"
427
+ "@agent-native/toolkit": "^0.15.0"
428
428
  },
429
429
  "devDependencies": {
430
430
  "@ai-sdk/anthropic": "^3.0.71",