@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.
- package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +3 -1
- package/corpus/templates/assets/app/i18n-data.ts +21 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +17 -13
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +102 -59
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +15 -1
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +16 -2
- package/corpus/templates/slides/app/components/editor/AddSlidePopover.tsx +98 -29
- package/corpus/templates/slides/app/components/editor/EditorActionCluster.tsx +45 -91
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +94 -2
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +17 -29
- package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +1 -1
- package/corpus/templates/slides/app/context/DeckContext.tsx +42 -2
- package/corpus/templates/slides/app/global.css +7 -40
- package/corpus/templates/slides/app/i18n/en-US.ts +4 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +130 -45
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/production-agent.d.ts +30 -0
- package/dist/agent/production-agent.js +100 -8
- package/dist/agent/types.d.ts +9 -0
- package/dist/client/AgentPanel.js +12 -9
- package/dist/client/AssistantChat.d.ts +15 -1
- package/dist/client/AssistantChat.js +110 -43
- package/dist/client/MultiTabAssistantChat.js +44 -27
- package/dist/client/chat/markdown-renderer.js +4 -2
- package/dist/client/chat/message-components.d.ts +2 -2
- package/dist/client/chat/message-components.js +69 -35
- package/dist/client/chat/run-recovery.d.ts +4 -1
- package/dist/client/chat/run-recovery.js +62 -30
- package/dist/client/chat/tool-call-display.d.ts +12 -3
- package/dist/client/chat/tool-call-display.js +79 -40
- package/dist/client/chat/widgets/DataChartRenderer.js +3 -1
- package/dist/client/chat/widgets/DataChartWidget.js +8 -2
- package/dist/client/chat/widgets/DataInsightsWidget.js +3 -1
- package/dist/client/chat/widgets/DataTableWidget.js +23 -9
- package/dist/client/chat/widgets/builtin-tool-renderers.js +3 -1
- package/dist/client/components/ui/message-scroller.d.ts +1 -1
- package/dist/client/components/ui/message-scroller.js +7 -3
- package/dist/client/composer/runtime-adapters.js +3 -2
- package/dist/client/context-xray/ContextMeter.js +5 -1
- package/dist/client/context-xray/ContextXRayPanel.js +5 -5
- package/dist/client/error-format.d.ts +4 -0
- package/dist/client/error-format.js +93 -5
- package/dist/client/i18n.js +83 -17
- package/dist/client/observability/ThumbsFeedback.js +10 -8
- package/dist/client/sharing/ShareButton.js +160 -54
- package/dist/coding-tools/run-code.js +2 -1
- package/dist/coding-tools/sandbox/background.d.ts +1 -0
- package/dist/coding-tools/sandbox/background.js +8 -1
- package/dist/coding-tools/sandbox/executions-store.d.ts +2 -0
- package/dist/coding-tools/sandbox/executions-store.js +41 -3
- package/dist/collab/routes.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/localization/core-messages/ar-SA.d.ts +3 -0
- package/dist/localization/core-messages/ar-SA.js +541 -0
- package/dist/localization/core-messages/de-DE.d.ts +3 -0
- package/dist/localization/core-messages/de-DE.js +513 -0
- package/dist/localization/core-messages/en-US.d.ts +513 -0
- package/dist/localization/core-messages/en-US.js +513 -0
- package/dist/localization/core-messages/es-ES.d.ts +3 -0
- package/dist/localization/core-messages/es-ES.js +520 -0
- package/dist/localization/core-messages/fr-FR.d.ts +3 -0
- package/dist/localization/core-messages/fr-FR.js +520 -0
- package/dist/localization/core-messages/hi-IN.d.ts +3 -0
- package/dist/localization/core-messages/hi-IN.js +513 -0
- package/dist/localization/core-messages/ja-JP.d.ts +3 -0
- package/dist/localization/core-messages/ja-JP.js +506 -0
- package/dist/localization/core-messages/ko-KR.d.ts +3 -0
- package/dist/localization/core-messages/ko-KR.js +506 -0
- package/dist/localization/core-messages/pt-BR.d.ts +3 -0
- package/dist/localization/core-messages/pt-BR.js +520 -0
- package/dist/localization/core-messages/zh-CN.d.ts +3 -0
- package/dist/localization/core-messages/zh-CN.js +506 -0
- package/dist/localization/core-messages/zh-TW.d.ts +3 -0
- package/dist/localization/core-messages/zh-TW.js +506 -0
- package/dist/localization/core-messages.d.ts +524 -0
- package/dist/localization/core-messages.js +124 -0
- package/dist/localization/default-messages.d.ts +2 -0
- package/dist/localization/default-messages.js +2 -0
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/plugin-options.d.ts +7 -2
- package/dist/server/agent-chat-plugin.d.ts +10 -0
- package/dist/server/agent-chat-plugin.js +144 -41
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-run-context.d.ts +7 -1
- package/dist/server/agent-run-context.js +9 -2
- package/dist/server/agent-teams-run-queue.d.ts +3 -0
- package/dist/server/agent-teams.js +38 -9
- package/dist/server/index.d.ts +1 -1
- package/dist/server/request-context.d.ts +7 -0
- package/dist/server/request-context.js +15 -0
- package/docs/content/agent-surfaces.mdx +30 -0
- 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.
|
|
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.
|
|
427
|
+
"@agent-native/toolkit": "^0.15.0"
|
|
428
428
|
},
|
|
429
429
|
"devDependencies": {
|
|
430
430
|
"@ai-sdk/anthropic": "^3.0.71",
|