@agent-native/core 0.129.0 → 0.129.2

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.
@@ -28,7 +28,7 @@ export declare function createNotificationsHandler(): import("h3").EventHandlerW
28
28
  } | {
29
29
  count?: undefined;
30
30
  updated?: undefined;
31
- error?: undefined;
32
31
  ok: boolean;
32
+ error?: undefined;
33
33
  }>>;
34
34
  //# sourceMappingURL=routes.d.ts.map
@@ -41,16 +41,16 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
41
41
  thumbsUpRate: number;
42
42
  avgEvalScore: number;
43
43
  } | {
44
- error?: undefined;
45
44
  summary: import("./types.js").TraceSummary;
46
45
  spans: import("./types.js").TraceSpan[];
47
46
  id?: undefined;
47
+ error?: undefined;
48
48
  ok?: undefined;
49
49
  } | {
50
- error?: undefined;
51
50
  summary?: undefined;
52
51
  spans?: undefined;
53
52
  id: string;
53
+ error?: undefined;
54
54
  ok?: undefined;
55
55
  } | {
56
56
  summary?: undefined;
@@ -59,10 +59,10 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
59
59
  error: any;
60
60
  ok?: undefined;
61
61
  } | {
62
- error?: undefined;
63
62
  summary?: undefined;
64
63
  spans?: undefined;
65
64
  id?: undefined;
65
+ error?: undefined;
66
66
  ok: boolean;
67
67
  }>>;
68
68
  //# sourceMappingURL=routes.d.ts.map
@@ -34,37 +34,37 @@ export declare function createListSecretsHandler(): import("h3").EventHandlerWit
34
34
  /** POST /_agent-native/secrets/:key — write a secret. */
35
35
  export declare function createWriteSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
36
36
  error: string;
37
- status?: undefined;
38
37
  ok?: undefined;
38
+ status?: undefined;
39
39
  } | {
40
+ error?: undefined;
40
41
  ok: boolean;
41
42
  status: string;
42
- error?: undefined;
43
43
  } | {
44
+ ok?: undefined;
44
45
  error: string;
45
46
  removed?: undefined;
46
- ok?: undefined;
47
47
  } | {
48
+ error?: undefined;
48
49
  ok: boolean;
49
50
  removed: boolean;
50
- error?: undefined;
51
51
  }>>;
52
52
  /**
53
53
  * POST /_agent-native/secrets/:key/test — re-run the validator against the
54
54
  * current stored value without changing anything. Useful for the "Test" button.
55
55
  */
56
56
  export declare function createTestSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
57
+ ok?: undefined;
57
58
  error: string;
58
59
  note?: undefined;
59
- ok?: undefined;
60
60
  } | {
61
+ error?: undefined;
61
62
  ok: boolean;
62
63
  note?: undefined;
63
- error?: undefined;
64
64
  } | {
65
+ error?: undefined;
65
66
  ok: boolean;
66
67
  note: string;
67
- error?: undefined;
68
68
  } | {
69
69
  note?: undefined;
70
70
  ok: boolean;
@@ -95,12 +95,12 @@ export interface AdHocSecretPayload {
95
95
  export declare function createAdHocSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<AdHocSecretPayload[] | {
96
96
  error: string;
97
97
  } | {
98
+ error?: undefined;
98
99
  ok: boolean;
99
100
  key: string;
100
- error?: undefined;
101
101
  } | {
102
+ error?: undefined;
102
103
  ok: boolean;
103
104
  removed: boolean;
104
- error?: undefined;
105
105
  }>>;
106
106
  //# sourceMappingURL=routes.d.ts.map
@@ -26,9 +26,9 @@ export declare function createRealtimeTokenHandler(): import("h3").EventHandlerW
26
26
  expiresAt?: undefined;
27
27
  ttlSeconds?: undefined;
28
28
  } | {
29
- error?: undefined;
30
29
  token: string;
31
30
  expiresAt: string;
32
31
  ttlSeconds: number;
32
+ error?: undefined;
33
33
  }>>;
34
34
  //# sourceMappingURL=realtime-token.d.ts.map
@@ -20,7 +20,7 @@ export declare function createTranscribeVoiceHandler(): import("h3").EventHandle
20
20
  error: string;
21
21
  text?: undefined;
22
22
  } | {
23
- error?: undefined;
24
23
  text: string;
24
+ error?: undefined;
25
25
  }>>;
26
26
  //# sourceMappingURL=transcribe-voice.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.129.0",
3
+ "version": "0.129.2",
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": {
@@ -418,7 +418,7 @@ export function OrgSwitcher({
418
418
  align="start"
419
419
  sideOffset={6}
420
420
  collisionPadding={12}
421
- className={POPOVER_CONTENT_CLASS}
421
+ className={`${POPOVER_CONTENT_CLASS} ${mode === "list" ? "" : "w-64"}`}
422
422
  onOpenAutoFocus={(e) => {
423
423
  // Don't auto-focus the first item — feels heavy on a switcher.
424
424
  if (mode === "list") e.preventDefault();
@@ -692,9 +692,9 @@ export function OrgSwitcher({
692
692
  <div className="px-0.5 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground">
693
693
  New organization
694
694
  </div>
695
- <p className="flex items-start gap-1.5 px-0.5 pb-1.5 text-[11px] leading-snug text-muted-foreground">
696
- <IconKey className="mt-0.5 h-3 w-3 shrink-0" />
697
- <span>{t("org.createOrgVaultNotice")}</span>
695
+ <p className="pe-0.5 pb-1.5 ps-2 text-[11px] leading-snug text-muted-foreground">
696
+ <IconKey className="me-1.5 inline-block h-3 w-3 align-text-top" />
697
+ {t("org.createOrgVaultNotice")}
698
698
  </p>
699
699
  <input
700
700
  autoFocus
@@ -70,6 +70,12 @@ import {
70
70
  verifyMcpOAuthAccessToken,
71
71
  } from "./oauth-token.js";
72
72
 
73
+ const PRESERVE_MCP_OBJECT_RESULT = Symbol("preserveMcpObjectResult");
74
+
75
+ type MCPActionEntry = ActionEntry & {
76
+ [PRESERVE_MCP_OBJECT_RESULT]?: true;
77
+ };
78
+
73
79
  export interface MCPConfig {
74
80
  /** App name shown in MCP server info */
75
81
  name: string;
@@ -965,7 +971,16 @@ function mergeBuiltinTools(
965
971
  requestMeta?: MCPRequestMeta,
966
972
  ): Record<string, ActionEntry> {
967
973
  if (config.builtinCrossAppTools === false) return baseActions;
968
- const builtins = getBuiltinCrossAppTools(config, requestMeta);
974
+ const builtins = getBuiltinCrossAppTools(config, requestMeta) as Record<
975
+ string,
976
+ MCPActionEntry
977
+ >;
978
+ // Async ask_app responses contain the opaque handle needed to poll the same
979
+ // task. Mark the actual framework builtin rather than matching by name: an
980
+ // app-defined ask_app overrides this entry and keeps normal concise output.
981
+ if (builtins.ask_app) {
982
+ builtins.ask_app[PRESERVE_MCP_OBJECT_RESULT] = true;
983
+ }
969
984
  const merged: Record<string, ActionEntry> = { ...builtins };
970
985
  // Template / app actions overwrite same-named builtins.
971
986
  for (const [name, entry] of Object.entries(baseActions)) {
@@ -2127,7 +2142,10 @@ export async function createMCPServerForRequest(
2127
2142
  const text = mcpAppResource
2128
2143
  ? conciseMcpAppToolText(name, resultForClient, structuredContent!)
2129
2144
  : conciseToolResultText(name, resultForClient, {
2130
- preserveObjectResult: entry.readOnly === true,
2145
+ preserveObjectResult:
2146
+ entry.readOnly === true ||
2147
+ (entry as MCPActionEntry)[PRESERVE_MCP_OBJECT_RESULT] ===
2148
+ true,
2131
2149
  });
2132
2150
  const content: any[] = [{ type: "text", text }];
2133
2151
  if (block) content.push(block);