@agent-native/core 0.159.3 → 0.159.5

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.
@@ -0,0 +1,34 @@
1
+ import { type LocaleCode } from "../localization/shared.js";
2
+ /**
3
+ * The native sign-in surfaces use the same copy keys as the hosted onboarding
4
+ * form. Keep this browser-safe subset here so Electron and mobile do not load
5
+ * the server HTML renderer or grow a second auth vocabulary.
6
+ */
7
+ export interface NativeAuthCopy {
8
+ googleButton: string;
9
+ dividerOr: string;
10
+ email: string;
11
+ emailPlaceholder: string;
12
+ password: string;
13
+ confirmPassword: string;
14
+ enterPasswordPlaceholder: string;
15
+ forgotPassword: string;
16
+ sendMagicLink: string;
17
+ magicLinkSent: string;
18
+ magicLinkSentCopy: string;
19
+ magicLinkFailed: string;
20
+ usePasswordInstead: string;
21
+ backToMagicLink: string;
22
+ signIn: string;
23
+ back: string;
24
+ close: string;
25
+ sending: string;
26
+ signingIn: string;
27
+ invalidEmail: string;
28
+ invalidLogin: string;
29
+ failedToConnect: string;
30
+ googleNeverFinished: string;
31
+ checking: string;
32
+ }
33
+ export declare const NATIVE_AUTH_COPY: Record<LocaleCode, NativeAuthCopy>;
34
+ export declare function resolveNativeAuthCopy(locale: unknown): NativeAuthCopy;
@@ -0,0 +1,293 @@
1
+ import { DEFAULT_LOCALE, resolveLocaleFromCandidates, } from "../localization/shared.js";
2
+ export const NATIVE_AUTH_COPY = {
3
+ "en-US": {
4
+ googleButton: "Sign in with Google",
5
+ dividerOr: "or",
6
+ email: "Email",
7
+ emailPlaceholder: "you@example.com",
8
+ password: "Password",
9
+ confirmPassword: "Confirm password",
10
+ enterPasswordPlaceholder: "Enter password",
11
+ forgotPassword: "Forgot password?",
12
+ sendMagicLink: "Continue",
13
+ magicLinkSent: "Check your email",
14
+ magicLinkSentCopy: "We sent a secure sign-in link to",
15
+ magicLinkFailed: "We couldn't send a sign-in link. Check your email and try again.",
16
+ usePasswordInstead: "Use a password instead",
17
+ backToMagicLink: "Use a sign-in link instead",
18
+ signIn: "Sign in",
19
+ back: "Back",
20
+ close: "Close",
21
+ sending: "Sending...",
22
+ signingIn: "Signing in…",
23
+ invalidEmail: "Enter a valid email address, like you@example.com.",
24
+ invalidLogin: "The email or password is incorrect.",
25
+ failedToConnect: "We couldn't connect. Please try again.",
26
+ googleNeverFinished: "Google sign-in did not finish. Check the Google OAuth redirect URI and server logs for [agent-native][google-oauth].",
27
+ checking: "Checking...",
28
+ },
29
+ "zh-CN": {
30
+ googleButton: "使用 Google 登录",
31
+ dividerOr: "或",
32
+ email: "电子邮箱",
33
+ emailPlaceholder: "you@example.com",
34
+ password: "密码",
35
+ confirmPassword: "确认密码",
36
+ enterPasswordPlaceholder: "输入密码",
37
+ forgotPassword: "忘记密码?",
38
+ sendMagicLink: "继续",
39
+ magicLinkSent: "检查你的邮箱",
40
+ magicLinkSentCopy: "我们已向以下邮箱发送安全登录链接:",
41
+ magicLinkFailed: "无法发送登录链接。",
42
+ usePasswordInstead: "改用密码",
43
+ backToMagicLink: "改用登录链接",
44
+ signIn: "登录",
45
+ back: "返回",
46
+ close: "关闭",
47
+ sending: "正在发送...",
48
+ signingIn: "正在登录…",
49
+ invalidEmail: "请输入有效邮箱地址,例如 you@example.com。",
50
+ invalidLogin: "邮箱或密码无效",
51
+ failedToConnect: "连接失败。请重试。",
52
+ googleNeverFinished: "Google 登录未完成。请检查 Google OAuth 重定向 URI 和服务器日志中的 [agent-native][google-oauth]。",
53
+ checking: "正在检查...",
54
+ },
55
+ "zh-TW": {
56
+ googleButton: "使用 Google 登入",
57
+ dividerOr: "或",
58
+ email: "電子郵件",
59
+ emailPlaceholder: "you@example.com",
60
+ password: "密碼",
61
+ confirmPassword: "確認密碼",
62
+ enterPasswordPlaceholder: "輸入密碼",
63
+ forgotPassword: "忘記密碼?",
64
+ sendMagicLink: "繼續",
65
+ magicLinkSent: "檢查你的電子郵件",
66
+ magicLinkSentCopy: "我們已向以下電子郵件寄送安全登入連結:",
67
+ magicLinkFailed: "無法寄送登入連結。",
68
+ usePasswordInstead: "改用密碼",
69
+ backToMagicLink: "改用登入連結",
70
+ signIn: "登入",
71
+ back: "返回",
72
+ close: "關閉",
73
+ sending: "正在寄送...",
74
+ signingIn: "正在登入...",
75
+ invalidEmail: "請輸入有效的電子郵件地址,例如 you@example.com。",
76
+ invalidLogin: "電子郵件或密碼無效",
77
+ failedToConnect: "連線失敗。請重試。",
78
+ googleNeverFinished: "Google 登入未完成。請檢查 Google OAuth 重新導向 URI,以及伺服器記錄中的 [agent-native][google-oauth]。",
79
+ checking: "正在檢查...",
80
+ },
81
+ "es-ES": {
82
+ googleButton: "Iniciar sesión con Google",
83
+ dividerOr: "o",
84
+ email: "Email",
85
+ emailPlaceholder: "you@example.com",
86
+ password: "Contraseña",
87
+ confirmPassword: "Confirmar contraseña",
88
+ enterPasswordPlaceholder: "Introduce la contraseña",
89
+ forgotPassword: "¿Olvidaste tu contraseña?",
90
+ sendMagicLink: "Continuar",
91
+ magicLinkSent: "Revisa tu email",
92
+ magicLinkSentCopy: "Enviamos un enlace seguro a",
93
+ magicLinkFailed: "No se pudo enviar el enlace de inicio de sesión.",
94
+ usePasswordInstead: "Usar una contraseña",
95
+ backToMagicLink: "Usar un enlace de inicio de sesión",
96
+ signIn: "Iniciar sesión",
97
+ back: "Volver",
98
+ close: "Cerrar",
99
+ sending: "Enviando...",
100
+ signingIn: "Iniciando sesión…",
101
+ invalidEmail: "Introduce un email válido, como you@example.com.",
102
+ invalidLogin: "Email o contraseña no válidos",
103
+ failedToConnect: "No se pudo conectar. Inténtalo de nuevo.",
104
+ googleNeverFinished: "El inicio de sesión con Google no terminó. Comprueba el URI de redirección de Google OAuth y los logs del servidor para [agent-native][google-oauth].",
105
+ checking: "Comprobando...",
106
+ },
107
+ "fr-FR": {
108
+ googleButton: "Se connecter avec Google",
109
+ dividerOr: "ou",
110
+ email: "E-mail",
111
+ emailPlaceholder: "you@example.com",
112
+ password: "Mot de passe",
113
+ confirmPassword: "Confirmer le mot de passe",
114
+ enterPasswordPlaceholder: "Saisir le mot de passe",
115
+ forgotPassword: "Mot de passe oublié ?",
116
+ sendMagicLink: "Continuer",
117
+ magicLinkSent: "Vérifiez votre e-mail",
118
+ magicLinkSentCopy: "Nous avons envoyé un lien sécurisé à",
119
+ magicLinkFailed: "Impossible d'envoyer le lien de connexion.",
120
+ usePasswordInstead: "Utiliser un mot de passe",
121
+ backToMagicLink: "Utiliser un lien de connexion",
122
+ signIn: "Connexion",
123
+ back: "Retour",
124
+ close: "Fermer",
125
+ sending: "Envoi...",
126
+ signingIn: "Connexion…",
127
+ invalidEmail: "Saisissez une adresse e-mail valide, comme you@example.com.",
128
+ invalidLogin: "E-mail ou mot de passe invalide",
129
+ failedToConnect: "Connexion impossible. Veuillez réessayer.",
130
+ googleNeverFinished: "La connexion Google n'a pas abouti. Vérifiez l'URI de redirection Google OAuth et les logs serveur pour [agent-native][google-oauth].",
131
+ checking: "Vérification...",
132
+ },
133
+ "de-DE": {
134
+ googleButton: "Mit Google anmelden",
135
+ dividerOr: "oder",
136
+ email: "E-Mail",
137
+ emailPlaceholder: "you@example.com",
138
+ password: "Passwort",
139
+ confirmPassword: "Passwort bestätigen",
140
+ enterPasswordPlaceholder: "Passwort eingeben",
141
+ forgotPassword: "Passwort vergessen?",
142
+ sendMagicLink: "Weiter",
143
+ magicLinkSent: "Prüfe deine E-Mail",
144
+ magicLinkSentCopy: "Wir haben einen sicheren Anmeldelink gesendet an",
145
+ magicLinkFailed: "Anmeldelink konnte nicht gesendet werden.",
146
+ usePasswordInstead: "Stattdessen Passwort verwenden",
147
+ backToMagicLink: "Stattdessen Anmeldelink verwenden",
148
+ signIn: "Anmelden",
149
+ back: "Zurück",
150
+ close: "Schließen",
151
+ sending: "Senden...",
152
+ signingIn: "Anmeldung…",
153
+ invalidEmail: "Gib eine gültige E-Mail-Adresse ein, z. B. you@example.com.",
154
+ invalidLogin: "E-Mail oder Passwort ungültig",
155
+ failedToConnect: "Verbindung fehlgeschlagen. Bitte erneut versuchen.",
156
+ googleNeverFinished: "Die Google-Anmeldung wurde nicht abgeschlossen. Prüfe die Google-OAuth-Redirect-URI und Serverlogs für [agent-native][google-oauth].",
157
+ checking: "Prüfen...",
158
+ },
159
+ "ja-JP": {
160
+ googleButton: "Google でサインイン",
161
+ dividerOr: "または",
162
+ email: "メール",
163
+ emailPlaceholder: "you@example.com",
164
+ password: "パスワード",
165
+ confirmPassword: "パスワードを確認",
166
+ enterPasswordPlaceholder: "パスワードを入力",
167
+ forgotPassword: "パスワードをお忘れですか?",
168
+ sendMagicLink: "続行",
169
+ magicLinkSent: "メールを確認してください",
170
+ magicLinkSentCopy: "安全なサインインリンクを送信しました:",
171
+ magicLinkFailed: "サインインリンクを送信できませんでした。",
172
+ usePasswordInstead: "パスワードを使用する",
173
+ backToMagicLink: "サインインリンクを使用する",
174
+ signIn: "サインイン",
175
+ back: "戻る",
176
+ close: "閉じる",
177
+ sending: "送信中...",
178
+ signingIn: "サインイン中…",
179
+ invalidEmail: "you@example.com のような有効なメールアドレスを入力してください。",
180
+ invalidLogin: "メールまたはパスワードが正しくありません",
181
+ failedToConnect: "接続できませんでした。もう一度お試しください。",
182
+ googleNeverFinished: "Google サインインが完了しませんでした。Google OAuth リダイレクト URI と [agent-native][google-oauth] のサーバーログを確認してください。",
183
+ checking: "確認中...",
184
+ },
185
+ "ko-KR": {
186
+ googleButton: "Google로 로그인",
187
+ dividerOr: "또는",
188
+ email: "이메일",
189
+ emailPlaceholder: "you@example.com",
190
+ password: "비밀번호",
191
+ confirmPassword: "비밀번호 확인",
192
+ enterPasswordPlaceholder: "비밀번호 입력",
193
+ forgotPassword: "비밀번호를 잊으셨나요?",
194
+ sendMagicLink: "계속",
195
+ magicLinkSent: "이메일을 확인하세요",
196
+ magicLinkSentCopy: "안전한 로그인 링크를 보냈습니다:",
197
+ magicLinkFailed: "로그인 링크를 보낼 수 없습니다.",
198
+ usePasswordInstead: "비밀번호 사용",
199
+ backToMagicLink: "로그인 링크 사용",
200
+ signIn: "로그인",
201
+ back: "뒤로",
202
+ close: "닫기",
203
+ sending: "보내는 중...",
204
+ signingIn: "로그인 중…",
205
+ invalidEmail: "you@example.com 같은 올바른 이메일 주소를 입력하세요.",
206
+ invalidLogin: "이메일 또는 비밀번호가 올바르지 않습니다",
207
+ failedToConnect: "연결하지 못했습니다. 다시 시도하세요.",
208
+ googleNeverFinished: "Google 로그인이 완료되지 않았습니다. Google OAuth 리디렉션 URI와 [agent-native][google-oauth] 서버 로그를 확인하세요.",
209
+ checking: "확인 중...",
210
+ },
211
+ "pt-BR": {
212
+ googleButton: "Entrar com Google",
213
+ dividerOr: "ou",
214
+ email: "Email",
215
+ emailPlaceholder: "you@example.com",
216
+ password: "Senha",
217
+ confirmPassword: "Confirmar senha",
218
+ enterPasswordPlaceholder: "Digite a senha",
219
+ forgotPassword: "Esqueceu a senha?",
220
+ sendMagicLink: "Continuar",
221
+ magicLinkSent: "Confira seu email",
222
+ magicLinkSentCopy: "Enviamos um link seguro para",
223
+ magicLinkFailed: "Não foi possível enviar o link de acesso.",
224
+ usePasswordInstead: "Usar uma senha",
225
+ backToMagicLink: "Usar um link de acesso",
226
+ signIn: "Entrar",
227
+ back: "Voltar",
228
+ close: "Fechar",
229
+ sending: "Enviando...",
230
+ signingIn: "Entrando…",
231
+ invalidEmail: "Digite um email válido, como you@example.com.",
232
+ invalidLogin: "Email ou senha inválidos",
233
+ failedToConnect: "Não foi possível conectar. Tente novamente.",
234
+ googleNeverFinished: "O login com Google não terminou. Confira o URI de redirecionamento do Google OAuth e os logs do servidor para [agent-native][google-oauth].",
235
+ checking: "Verificando...",
236
+ },
237
+ "hi-IN": {
238
+ googleButton: "Google से साइन इन करें",
239
+ dividerOr: "या",
240
+ email: "ईमेल",
241
+ emailPlaceholder: "you@example.com",
242
+ password: "पासवर्ड",
243
+ confirmPassword: "पासवर्ड की पुष्टि करें",
244
+ enterPasswordPlaceholder: "पासवर्ड दर्ज करें",
245
+ forgotPassword: "पासवर्ड भूल गए?",
246
+ sendMagicLink: "जारी रखें",
247
+ magicLinkSent: "अपना ईमेल देखें",
248
+ magicLinkSentCopy: "हमने सुरक्षित साइन-इन लिंक यहां भेजा है:",
249
+ magicLinkFailed: "साइन-इन लिंक नहीं भेजा जा सका।",
250
+ usePasswordInstead: "पासवर्ड का उपयोग करें",
251
+ backToMagicLink: "साइन-इन लिंक का उपयोग करें",
252
+ signIn: "साइन इन",
253
+ back: "वापस",
254
+ close: "बंद करें",
255
+ sending: "भेजा जा रहा है...",
256
+ signingIn: "साइन इन हो रहा है…",
257
+ invalidEmail: "एक मान्य ईमेल पता दर्ज करें, जैसे you@example.com.",
258
+ invalidLogin: "ईमेल या पासवर्ड अमान्य है",
259
+ failedToConnect: "कनेक्ट नहीं हो सका। कृपया फिर कोशिश करें।",
260
+ googleNeverFinished: "Google साइन इन पूरा नहीं हुआ। Google OAuth redirect URI और [agent-native][google-oauth] के server logs देखें।",
261
+ checking: "जांच हो रही है...",
262
+ },
263
+ "ar-SA": {
264
+ googleButton: "تسجيل الدخول باستخدام Google",
265
+ dividerOr: "أو",
266
+ email: "البريد الإلكتروني",
267
+ emailPlaceholder: "you@example.com",
268
+ password: "كلمة المرور",
269
+ confirmPassword: "تأكيد كلمة المرور",
270
+ enterPasswordPlaceholder: "أدخل كلمة المرور",
271
+ forgotPassword: "هل نسيت كلمة المرور؟",
272
+ sendMagicLink: "متابعة",
273
+ magicLinkSent: "تحقق من بريدك الإلكتروني",
274
+ magicLinkSentCopy: "أرسلنا رابط تسجيل دخول آمنًا إلى",
275
+ magicLinkFailed: "تعذر إرسال رابط تسجيل الدخول.",
276
+ usePasswordInstead: "استخدام كلمة مرور بدلًا من ذلك",
277
+ backToMagicLink: "استخدام رابط تسجيل الدخول بدلًا من ذلك",
278
+ signIn: "تسجيل الدخول",
279
+ back: "رجوع",
280
+ close: "إغلاق",
281
+ sending: "جارٍ الإرسال...",
282
+ signingIn: "جارٍ تسجيل الدخول…",
283
+ invalidEmail: "أدخل بريدًا إلكترونيًا صالحًا، مثل you@example.com.",
284
+ invalidLogin: "البريد الإلكتروني أو كلمة المرور غير صحيحة",
285
+ failedToConnect: "تعذر الاتصال. حاول مرة أخرى.",
286
+ googleNeverFinished: "لم يكتمل تسجيل الدخول عبر Google. تحقق من URI إعادة التوجيه في Google OAuth وسجلات الخادم لـ [agent-native][google-oauth].",
287
+ checking: "جارٍ التحقق...",
288
+ },
289
+ };
290
+ export function resolveNativeAuthCopy(locale) {
291
+ const resolvedLocale = resolveLocaleFromCandidates([locale]);
292
+ return NATIVE_AUTH_COPY[resolvedLocale] ?? NATIVE_AUTH_COPY[DEFAULT_LOCALE];
293
+ }
@@ -13,6 +13,7 @@ export { DISPATCH_WORKSPACE_ROOT_REDIRECTS, RESERVED_WORKSPACE_APP_IDS, assertVa
13
13
  export { DEFAULT_WORKSPACE_APP_AUDIENCE, WORKSPACE_APP_AUDIENCES, normalizeWorkspaceAppAudience, normalizeWorkspaceAppPathList, workspaceAppAudienceFromEnv, workspaceAppAudienceFromPackageJson, workspaceAppRouteAccessFromEnv, workspaceAppRouteAccessFromPackageJson, type WorkspaceAppRouteAccess, type WorkspaceAppRouteAccessFromConfig, type WorkspaceAppAudience, } from "./workspace-app-audience.js";
14
14
  export { AGENT_NATIVE_OPEN_PATH, AGENT_SIDEBAR_QUERY_PARAM, AGENT_SIDEBAR_QUERY_VALUE_CLOSED, isAgentNativeOpenDeepLink, withCollapsedAgentSidebarParam, } from "./agent-sidebar-url.js";
15
15
  export { buildChatFirstAppCreationPrompt, titleFromChatFirstAppPrompt, type ChatFirstAppCreationPromptInput, type ChatFirstAppCreationResource, type ChatFirstAppCreationVaultAccessMode, } from "./chat-first-app-creation.js";
16
+ export { NATIVE_AUTH_COPY, resolveNativeAuthCopy, type NativeAuthCopy, } from "./auth-copy.js";
16
17
  export { createPollEngine, type PollEngineOptions, type PollEngineHandle, } from "./poll-engine.js";
17
18
  export { AGENT_NATIVE_DEFAULT_SOCIAL_IMAGE, AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER, AGENT_NATIVE_SOCIAL_IMAGE_ALT, AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT, AGENT_NATIVE_SOCIAL_IMAGE_PATH, AGENT_NATIVE_SOCIAL_IMAGE_TYPE, AGENT_NATIVE_SOCIAL_IMAGE_WIDTH, defaultSocialImageMeta, withAgentNativeSocialImageCacheBuster, withDefaultSocialImage, type SocialMetaDescriptor, } from "./social-meta.js";
18
19
  export { EMBED_MODE_QUERY_PARAM, EMBED_SESSION_COOKIE, EMBED_START_PATH, EMBED_TOKEN_QUERY_PARAM, } from "./embed-auth.js";
@@ -13,6 +13,7 @@ export { DISPATCH_WORKSPACE_ROOT_REDIRECTS, RESERVED_WORKSPACE_APP_IDS, assertVa
13
13
  export { DEFAULT_WORKSPACE_APP_AUDIENCE, WORKSPACE_APP_AUDIENCES, normalizeWorkspaceAppAudience, normalizeWorkspaceAppPathList, workspaceAppAudienceFromEnv, workspaceAppAudienceFromPackageJson, workspaceAppRouteAccessFromEnv, workspaceAppRouteAccessFromPackageJson, } from "./workspace-app-audience.js";
14
14
  export { AGENT_NATIVE_OPEN_PATH, AGENT_SIDEBAR_QUERY_PARAM, AGENT_SIDEBAR_QUERY_VALUE_CLOSED, isAgentNativeOpenDeepLink, withCollapsedAgentSidebarParam, } from "./agent-sidebar-url.js";
15
15
  export { buildChatFirstAppCreationPrompt, titleFromChatFirstAppPrompt, } from "./chat-first-app-creation.js";
16
+ export { NATIVE_AUTH_COPY, resolveNativeAuthCopy, } from "./auth-copy.js";
16
17
  export { createPollEngine, } from "./poll-engine.js";
17
18
  export { AGENT_NATIVE_DEFAULT_SOCIAL_IMAGE, AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER, AGENT_NATIVE_SOCIAL_IMAGE_ALT, AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT, AGENT_NATIVE_SOCIAL_IMAGE_PATH, AGENT_NATIVE_SOCIAL_IMAGE_TYPE, AGENT_NATIVE_SOCIAL_IMAGE_WIDTH, defaultSocialImageMeta, withAgentNativeSocialImageCacheBuster, withDefaultSocialImage, } from "./social-meta.js";
18
19
  export { EMBED_MODE_QUERY_PARAM, EMBED_SESSION_COOKIE, EMBED_START_PATH, EMBED_TOKEN_QUERY_PARAM, } from "./embed-auth.js";
@@ -17,7 +17,7 @@ Declare the flag in a module both the server and the client can import, since th
17
17
 
18
18
  ```ts
19
19
  // shared/feature-flags.ts
20
- import { defineFeatureFlag } from "@agent-native/core/feature-flags";
20
+ import { defineFeatureFlag } from "@agent-native/core/feature-flags/registry";
21
21
 
22
22
  export const FULL_APP_BUILDING = defineFeatureFlag({
23
23
  key: "full-app-building",
@@ -47,15 +47,28 @@ the device token was rotated or the workspace moved. If Cloud is unavailable,
47
47
  the run has not started - use Local or Computer instead of retrying a queued
48
48
  cloud request.
49
49
 
50
+ If the connector runs and polls but every request returns `401`, and the queued
51
+ run is never claimed, repairing the pairing will not help. A deployment only
52
+ accepts device tokens minted against its own database, so a device paired
53
+ against one origin polls a second origin forever without ever being recognized.
54
+ Read `deviceId` and `relayUrl` from `~/.agent-native/remote-device.json`, then
55
+ request the authenticated host list from the origin `relayUrl` names. An
56
+ authenticated `200` whose `hosts` array does not contain that `deviceId` is the
57
+ mismatch - pair again from the origin the connector actually polls. Restart the
58
+ connector afterwards: it reads the token and relay URL once at startup and
59
+ caches them for the life of the process, so a running connector keeps using the
60
+ previous pairing.
61
+
50
62
  ## Environment variables
51
63
 
52
64
  Self-hosted deployments can customize the Portal connection with:
53
65
 
54
- | Variable | Purpose |
55
- | ------------------------------------ | -------------------------------------------------------------------- |
56
- | `WORKSPACE_GATEWAY_URL` | Public workspace gateway used for device handoff. |
57
- | `AGENT_NATIVE_REMOTE_DEVICE_PATH` | Override the local device registration file path. |
58
- | `AGENT_NATIVE_COMPUTER_BRIDGE_URL` | Computer bridge URL used by remote execution. |
59
- | `AGENT_NATIVE_COMPUTER_BRIDGE_TOKEN` | Token used to authenticate with that bridge. |
60
- | `AGENT_NATIVE_REMOTE_ENGINES` | Comma-separated remote execution engines available to the workspace. |
61
- | `AGENT_NATIVE_IDENTITY_HUB_URL` | Optional Dispatch identity hub for self-hosted cross-app sign-in. |
66
+ | Variable | Purpose |
67
+ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
68
+ | `WORKSPACE_GATEWAY_URL` | Public workspace gateway used for device handoff. |
69
+ | `AGENT_NATIVE_REMOTE_DEVICE_PATH` | Override the local device registration file path. |
70
+ | `AGENT_NATIVE_COMPUTER_BRIDGE_URL` | Computer bridge URL used by remote execution. |
71
+ | `AGENT_NATIVE_COMPUTER_BRIDGE_TOKEN` | Token used to authenticate with that bridge. |
72
+ | `AGENT_NATIVE_COMPUTER_CAPABILITIES` | Capabilities that bridge exposes. Required with the two above - the bridge stays off unless all three are set. |
73
+ | `AGENT_NATIVE_REMOTE_ENGINES` | Comma-separated remote execution engines available to the workspace. |
74
+ | `AGENT_NATIVE_IDENTITY_HUB_URL` | Optional Dispatch identity hub for self-hosted cross-app sign-in. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.159.3",
3
+ "version": "0.159.5",
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": {
@@ -168,6 +168,7 @@
168
168
  "./embedding/react": "./dist/embedding/react.js",
169
169
  "./onboarding": "./dist/onboarding/index.js",
170
170
  "./shared": "./dist/shared/index.js",
171
+ "./shared/auth-copy": "./dist/shared/auth-copy.js",
171
172
  "./shared/builder-link-tracking": "./dist/shared/builder-link-tracking.js",
172
173
  "./voice": "./dist/voice/index.js",
173
174
  "./scripts": "./dist/scripts/index.js",
@@ -182,6 +183,7 @@
182
183
  "./user-profile/server": "./dist/user-profile/store.js",
183
184
  "./feature-flags": "./dist/feature-flags/index.js",
184
185
  "./feature-flags/registry": "./dist/feature-flags/registry.js",
186
+ "./feature-flags/server": "./dist/feature-flags/server.js",
185
187
  "./feature-flags/actions/get-feature-flags": "./dist/feature-flags/actions/get-feature-flags.js",
186
188
  "./feature-flags/actions/list-feature-flags": "./dist/feature-flags/actions/list-feature-flags.js",
187
189
  "./feature-flags/actions/set-feature-flag": "./dist/feature-flags/actions/set-feature-flag.js",