@agent-native/core 0.195.0 → 0.195.1-nightly-20260927200151

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/README.md CHANGED
@@ -31,4 +31,4 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
31
31
 
32
32
  ## Generated Counts
33
33
 
34
- - template files: 10366
34
+ - template files: 10368
@@ -4,7 +4,18 @@ import {
4
4
  IconPlugConnectedX,
5
5
  IconX,
6
6
  } from "@tabler/icons-react";
7
+ import { useState } from "react";
7
8
 
9
+ import {
10
+ AlertDialog,
11
+ AlertDialogAction,
12
+ AlertDialogCancel,
13
+ AlertDialogContent,
14
+ AlertDialogDescription,
15
+ AlertDialogFooter,
16
+ AlertDialogHeader,
17
+ AlertDialogTitle,
18
+ } from "@/components/ui/alert-dialog";
8
19
  import { Button } from "@/components/ui/button";
9
20
  import {
10
21
  Dialog,
@@ -30,6 +41,7 @@ export function LocalNetworkAccessPrompt({
30
41
  proactive?: boolean;
31
42
  }) {
32
43
  const t = useT();
44
+ const [confirmClose, setConfirmClose] = useState(false);
33
45
  // "unreachable" is the one confident case (permission is confirmed
34
46
  // granted, so it's confirmed NOT the cause) — every other kind is
35
47
  // deliberately hedged copy, never a diagnosed permission claim. See
@@ -69,35 +81,87 @@ export function LocalNetworkAccessPrompt({
69
81
  "designCanvas.localBridge.permissionPromptSettingsInstructions",
70
82
  {
71
83
  defaultValue:
72
- "Click the site information icon to the left of the address bar, open Site settings, then set Local network access to Allow.",
84
+ "Click the site controls icon to the left of the address bar, open Site settings, then allow access to apps on your device.",
73
85
  },
74
86
  );
75
87
  const permissionHelp = showPermissionHelp ? (
76
88
  <details className="text-xs text-muted-foreground">
77
89
  <summary className="cursor-pointer">{noPromptLabel}</summary>
78
90
  <p className="mt-2 leading-relaxed">{permissionSettingsInstructions}</p>
91
+ <img
92
+ src="/local-network-access-settings.jpg"
93
+ alt={permissionSettingsInstructions}
94
+ className="mt-3 block w-full rounded-md border border-border"
95
+ width={200}
96
+ height={140}
97
+ loading="lazy"
98
+ />
79
99
  </details>
80
100
  ) : null;
81
101
 
82
102
  if (proactive) {
83
103
  return (
84
- <Dialog
85
- open
86
- onOpenChange={(open) => {
87
- if (!open) onDismiss();
88
- }}
89
- >
90
- <DialogContent className="sm:max-w-md">
91
- <DialogHeader>
92
- <DialogTitle className="flex items-center gap-2">
93
- <IconPlugConnected className="size-4" />
94
- {title}
95
- </DialogTitle>
96
- <DialogDescription>{description}</DialogDescription>
97
- </DialogHeader>
98
- {permissionHelp}
99
- </DialogContent>
100
- </Dialog>
104
+ <>
105
+ <Dialog
106
+ open
107
+ onOpenChange={(open) => {
108
+ if (!open) setConfirmClose(true);
109
+ }}
110
+ >
111
+ <DialogContent
112
+ className="sm:max-w-md"
113
+ overlayClassName="bg-[color-mix(in_srgb,var(--design-editor-accent-color)_22%,transparent)] backdrop-blur-[2px]"
114
+ >
115
+ <DialogHeader>
116
+ <DialogTitle className="flex items-center gap-2">
117
+ <IconPlugConnected className="size-4" />
118
+ {title}
119
+ </DialogTitle>
120
+ <DialogDescription>{description}</DialogDescription>
121
+ </DialogHeader>
122
+ <img
123
+ src="/local-network-access-permission.jpg"
124
+ alt={description}
125
+ className="block w-full rounded-md border border-border"
126
+ width={240}
127
+ height={150}
128
+ />
129
+ {permissionHelp}
130
+ </DialogContent>
131
+ </Dialog>
132
+ <AlertDialog open={confirmClose} onOpenChange={setConfirmClose}>
133
+ <AlertDialogContent>
134
+ <AlertDialogHeader>
135
+ <AlertDialogTitle>
136
+ {t("designCanvas.localBridge.permissionCloseTitle", {
137
+ defaultValue: "Close setup?",
138
+ })}
139
+ </AlertDialogTitle>
140
+ <AlertDialogDescription>
141
+ {t("designCanvas.localBridge.permissionCloseDescription", {
142
+ defaultValue:
143
+ "Live editing won't work until you allow access in Chrome.",
144
+ })}
145
+ </AlertDialogDescription>
146
+ </AlertDialogHeader>
147
+ <AlertDialogFooter>
148
+ <AlertDialogCancel>
149
+ {t("designCanvas.localBridge.permissionCloseStay", {
150
+ defaultValue: "Keep setup open",
151
+ })}
152
+ </AlertDialogCancel>
153
+ <AlertDialogAction
154
+ className="bg-destructive text-destructive-foreground hover:bg-destructive/90"
155
+ onClick={onDismiss}
156
+ >
157
+ {t("designCanvas.localBridge.permissionCloseAnyway", {
158
+ defaultValue: "Close anyway",
159
+ })}
160
+ </AlertDialogAction>
161
+ </AlertDialogFooter>
162
+ </AlertDialogContent>
163
+ </AlertDialog>
164
+ </>
101
165
  );
102
166
  }
103
167
 
@@ -1478,7 +1478,12 @@ export default {
1478
1478
  "Choose Allow in Chrome's prompt to enable live editing.",
1479
1479
  permissionPromptNoPrompt: "No Chrome prompt?",
1480
1480
  permissionPromptSettingsInstructions:
1481
- "Click the site information icon to the left of the address bar, open Site settings, then set Local network access to Allow.",
1481
+ "Click the site controls icon to the left of the address bar, open Site settings, then allow access to apps on your device.",
1482
+ permissionCloseTitle: "Close setup?",
1483
+ permissionCloseDescription:
1484
+ "Live editing won't work until you allow access in Chrome.",
1485
+ permissionCloseStay: "Keep setup open",
1486
+ permissionCloseAnyway: "Close anyway",
1482
1487
  permissionPromptRetry: "Retry connection",
1483
1488
  confirmationRetryExhausted:
1484
1489
  "Live editor bridge did not confirm after several attempts.",
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-09-27
4
+ ---
5
+
6
+ Local access setup shows Chrome permission screenshots and confirms before closing
@@ -1,6 +1,7 @@
1
1
  import { sendToAgentChat } from "@agent-native/core/client/agent-chat";
2
2
  import { useActionQuery } from "@agent-native/core/client/hooks";
3
3
  import { useT } from "@agent-native/core/client/i18n";
4
+ import { useFirstRunOnboardingGateOwnsSurface } from "@agent-native/core/client/onboarding";
4
5
  import { AI_FILTER_LABEL } from "@shared/ai-filter";
5
6
  import type { AiFilterBackfillStatus } from "@shared/ai-filter-backfill";
6
7
  import {
@@ -402,6 +403,7 @@ export function AiInboxSetup({
402
403
  onSkipSetup?: () => void;
403
404
  }) {
404
405
  const t = useT();
406
+ const firstRunOnboardingOwnsSurface = useFirstRunOnboardingGateOwnsSurface();
405
407
  const { data: settings } = useSettings();
406
408
  const { data: rules = [], isLoading: rulesLoading } = useAutomations();
407
409
  const googleStatus = useGoogleAuthStatus();
@@ -467,6 +469,7 @@ export function AiInboxSetup({
467
469
  [rules],
468
470
  );
469
471
  const visible =
472
+ !firstRunOnboardingOwnsSurface &&
470
473
  connected &&
471
474
  !googleStatus.isLoading &&
472
475
  !jevAvailability.isLoading &&
@@ -960,6 +963,7 @@ export function AiInboxSetup({
960
963
  step < 3 &&
961
964
  (saving ||
962
965
  customTagIncomplete ||
966
+ (step === 1 && !importantPrompt.trim()) ||
963
967
  (step === 2 && (!jevConfigured || rulesLoading)))
964
968
  }
965
969
  aria-busy={saving || (step === 2 && rulesLoading)}
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-09-27
4
+ ---
5
+
6
+ Mail setup waits for first-run onboarding, and empty importance prompts require an explicit skip.
@@ -139,8 +139,8 @@ export declare function createAutomationCallbackHandler(runtime: AutomationRunti
139
139
  duplicate?: undefined;
140
140
  eventId?: undefined;
141
141
  } | {
142
- error?: undefined;
143
142
  accepted: boolean;
144
143
  duplicate: boolean;
145
144
  eventId: string;
145
+ error?: undefined;
146
146
  }>;
@@ -71,12 +71,13 @@ export function FirstRunOnboardingStartupGate({ children, fallback = _jsx(AppShe
71
71
  };
72
72
  }, [shouldResolve]);
73
73
  const ownsSurface = decision === "eligible";
74
- const hideApp = decision !== "ineligible";
74
+ const gateOwnsSurface = decision !== "ineligible";
75
+ const hideApp = gateOwnsSurface;
75
76
  const app = shouldResolve ? (_jsx("div", { "aria-hidden": hideApp ? "true" : undefined, "data-first-run-app-hidden": hideApp ? "true" : undefined, style: {
76
77
  display: "contents",
77
78
  ...(hideApp ? { visibility: "hidden" } : {}),
78
79
  }, children: children })) : (children);
79
- return (_jsxs(FirstRunOnboardingGateContext.Provider, { value: ownsSurface, children: [app, decision === "pending" && (_jsx(FirstRunOnboardingStartupLoading, { fallback: fallback })), ownsSurface && (_jsx(Suspense, { fallback: _jsx(FirstRunOnboardingStartupLoading, { fallback: fallback }), children: _jsx(FirstRunOnboarding, { initialFirstRun: true }) }))] }));
80
+ return (_jsxs(FirstRunOnboardingGateContext.Provider, { value: gateOwnsSurface, children: [app, decision === "pending" && (_jsx(FirstRunOnboardingStartupLoading, { fallback: fallback })), ownsSurface && (_jsx(Suspense, { fallback: _jsx(FirstRunOnboardingStartupLoading, { fallback: fallback }), children: _jsx(FirstRunOnboarding, { initialFirstRun: true }) }))] }));
80
81
  }
81
82
  function FirstRunOnboardingStartupLoading({ fallback, }) {
82
83
  return (_jsx("div", { role: "status", "aria-label": "Loading application", "data-first-run-startup-loading": "true", className: "fixed inset-0 z-[110] bg-background", children: _jsx("div", { inert: true, children: fallback }) }));
@@ -1,6 +1,6 @@
1
1
  export declare const postCollabJson: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
2
- ok?: undefined;
3
2
  error: string;
3
+ ok?: undefined;
4
4
  } | {
5
5
  error?: undefined;
6
6
  ok: boolean;
@@ -35,9 +35,9 @@ declare const _default: import("../../action.js").ActionDefinition<{
35
35
  } | {
36
36
  error: string;
37
37
  url?: undefined;
38
+ id?: undefined;
38
39
  provider?: undefined;
39
40
  configured?: undefined;
40
- id?: undefined;
41
41
  } | {
42
42
  url: string;
43
43
  id: string;
@@ -46,9 +46,9 @@ declare const _default: import("../../action.js").ActionDefinition<{
46
46
  error?: undefined;
47
47
  } | {
48
48
  url?: undefined;
49
+ id?: undefined;
49
50
  provider?: undefined;
50
51
  error: string;
51
52
  configured: boolean;
52
- id?: undefined;
53
53
  }>;
54
54
  export default _default;
@@ -1,13 +1,13 @@
1
1
  export declare function createNotificationsHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<"" | import("./types.js").Notification[] | {
2
2
  count: number;
3
3
  updated?: undefined;
4
- error?: undefined;
5
4
  ok?: undefined;
5
+ error?: undefined;
6
6
  } | {
7
7
  count?: undefined;
8
8
  updated: number;
9
- error?: undefined;
10
9
  ok?: undefined;
10
+ error?: undefined;
11
11
  } | {
12
12
  count?: undefined;
13
13
  updated?: undefined;
@@ -16,6 +16,6 @@ export declare function createNotificationsHandler(): import("h3").EventHandlerW
16
16
  } | {
17
17
  count?: undefined;
18
18
  updated?: undefined;
19
- error?: undefined;
20
19
  ok: boolean;
20
+ error?: undefined;
21
21
  }>>;
@@ -20,9 +20,9 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
20
20
  thumbsUpRate: number;
21
21
  avgEvalScore: number;
22
22
  } | {
23
+ id?: undefined;
23
24
  summary: import("./types.js").TraceSummary;
24
25
  spans: import("./types.js").TraceSpan[];
25
- id?: undefined;
26
26
  error?: undefined;
27
27
  ok?: undefined;
28
28
  } | {
@@ -32,15 +32,15 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
32
32
  error?: undefined;
33
33
  ok?: undefined;
34
34
  } | {
35
+ id?: undefined;
35
36
  summary?: undefined;
36
37
  spans?: undefined;
37
- id?: undefined;
38
38
  error: any;
39
39
  ok?: undefined;
40
40
  } | {
41
+ id?: undefined;
41
42
  summary?: undefined;
42
43
  spans?: undefined;
43
- id?: undefined;
44
- error?: undefined;
45
44
  ok: boolean;
45
+ error?: undefined;
46
46
  }>>;
@@ -32,33 +32,33 @@ export declare function createListSecretsHandler(): import("h3").EventHandlerWit
32
32
  }>>;
33
33
  export declare function createWriteSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
34
34
  error: string;
35
- ok?: undefined;
36
35
  status?: undefined;
36
+ ok?: undefined;
37
37
  } | {
38
- error?: undefined;
39
38
  ok: boolean;
40
39
  status: string;
40
+ error?: undefined;
41
41
  } | {
42
- ok?: undefined;
43
42
  error: string;
44
43
  removed?: undefined;
44
+ ok?: undefined;
45
45
  } | {
46
- error?: undefined;
47
46
  ok: boolean;
48
47
  removed: boolean;
48
+ error?: undefined;
49
49
  }>>;
50
50
  export declare function createTestSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
51
- ok?: undefined;
52
51
  error: string;
53
52
  note?: undefined;
53
+ ok?: undefined;
54
54
  } | {
55
- error?: undefined;
56
55
  ok: boolean;
57
56
  note?: undefined;
58
- } | {
59
57
  error?: undefined;
58
+ } | {
60
59
  ok: boolean;
61
60
  note: string;
61
+ error?: undefined;
62
62
  } | {
63
63
  note?: undefined;
64
64
  ok: boolean;
@@ -78,11 +78,11 @@ export interface AdHocSecretPayload {
78
78
  export declare function createAdHocSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<AdHocSecretPayload[] | {
79
79
  error: string;
80
80
  } | {
81
- error?: undefined;
82
81
  ok: boolean;
83
82
  key: string;
84
- } | {
85
83
  error?: undefined;
84
+ } | {
86
85
  ok: boolean;
87
86
  removed: boolean;
87
+ error?: undefined;
88
88
  }>>;
@@ -1,6 +1,6 @@
1
1
  export declare function createAgentEngineOllamaModelsHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
2
- ok?: undefined;
3
2
  error: string;
3
+ ok?: undefined;
4
4
  models?: undefined;
5
5
  } | {
6
6
  error?: undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.195.0",
3
+ "version": "0.195.1-nightly-20260927200151",
4
4
  "description": "The agentic application framework for building autonomous agents with intuitive UIs",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -517,9 +517,9 @@
517
517
  "yaml": "^2.9.0",
518
518
  "yjs": "^13.6.32",
519
519
  "zod": "^4.3.6",
520
- "@agent-native/recap-cli": "0.5.47",
521
520
  "@agent-native/agentkit": "^0.4.1",
522
- "@agent-native/toolkit": "^0.22.3"
521
+ "@agent-native/toolkit": "^0.22.3",
522
+ "@agent-native/recap-cli": "0.5.47"
523
523
  },
524
524
  "devDependencies": {
525
525
  "@ai-sdk/anthropic": "^3.0.71",