@agent-native/core 0.218.0 → 0.219.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/dist/a2a/server.d.ts +1 -1
- package/dist/a2a/server.js +8 -6
- package/dist/agent/run-manager.js +35 -11
- package/dist/automation/index.d.ts +1 -1
- package/dist/client/route-warmup.js +101 -3
- package/dist/collab/routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/jobs/actions/manage-recurring-job.d.ts +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/secrets/routes.d.ts +10 -10
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-engine-default-model-route.d.ts +2 -2
- package/dist/server/agent-engine-ollama-models-route.d.ts +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/triggers/actions/manage-automation.d.ts +4 -4
- package/package.json +3 -3
package/dist/a2a/server.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare function verifyA2AToken(token: string, event?: any, audienceOptio
|
|
|
50
50
|
allowAnthropicManagedContinuation?: boolean;
|
|
51
51
|
requireAudience?: boolean;
|
|
52
52
|
}): Promise<A2ATokenPayload>;
|
|
53
|
-
export type A2ATokenFailureCause = "malformed" | "secret-missing" | "audience-unresolvable" | "audience" | "issuer" | "expired" | "signature" | "invalid-claims" | "mcp-credential" | "missing-subject" | "org-binding" | "org-lookup-failed" | "undetermined";
|
|
53
|
+
export type A2ATokenFailureCause = "malformed" | "secret-missing" | "audience-unresolvable" | "audience" | "issuer" | "expired" | "signature" | "algorithm" | "invalid-claims" | "mcp-credential" | "missing-subject" | "org-binding" | "org-lookup-failed" | "undetermined";
|
|
54
54
|
/**
|
|
55
55
|
* Names why a token that `verifyA2AToken` resolved no identity for was
|
|
56
56
|
* refused. `verifyA2AToken` collapses a wrong audience, a wrong secret and an
|
package/dist/a2a/server.js
CHANGED
|
@@ -21,6 +21,7 @@ import { hasConfiguredA2ASecret, isA2AProductionRuntime, } from "./auth-policy.j
|
|
|
21
21
|
import { handleJsonRpcH3, processA2ATaskFromQueue } from "./handlers.js";
|
|
22
22
|
import { A2A_ORG_MEMBER_DELEGATION_TYPE, organizationPrincipalClaims, verifyA2AOrganizationIdentity, } from "./organization-identity.js";
|
|
23
23
|
import { claimA2AApproval, a2aTaskLeaseThreadId, getA2AApprovalForOwner, settleA2AApproval, } from "./task-store.js";
|
|
24
|
+
const A2A_TOKEN_ALGORITHMS = ["HS256"];
|
|
24
25
|
let _warnedUnauthA2A = false;
|
|
25
26
|
function warnA2AUnauthOnce() {
|
|
26
27
|
if (_warnedUnauthA2A)
|
|
@@ -196,6 +197,8 @@ async function checkAgainstSecret(token, secret, options) {
|
|
|
196
197
|
}
|
|
197
198
|
catch (error) {
|
|
198
199
|
const { code, claim } = error;
|
|
200
|
+
if (code === "ERR_JOSE_ALG_NOT_ALLOWED")
|
|
201
|
+
return { cause: "algorithm" };
|
|
199
202
|
if (code === "ERR_JWT_EXPIRED")
|
|
200
203
|
return { cause: "expired" };
|
|
201
204
|
if (code === "ERR_JWS_SIGNATURE_VERIFICATION_FAILED") {
|
|
@@ -243,7 +246,7 @@ export async function diagnoseA2ATokenFailure(token, event) {
|
|
|
243
246
|
return "malformed";
|
|
244
247
|
}
|
|
245
248
|
const secret = readDeployCredentialEnv("A2A_SECRET")?.trim();
|
|
246
|
-
const options = {};
|
|
249
|
+
const options = { algorithms: A2A_TOKEN_ALGORITHMS };
|
|
247
250
|
if (typeof claims.aud !== "undefined") {
|
|
248
251
|
const audience = expectedJwtAudience(event);
|
|
249
252
|
if (!audience)
|
|
@@ -331,7 +334,9 @@ async function verifyA2ATokenInternal(token, event, audienceOptions) {
|
|
|
331
334
|
if (audienceOptions?.requireAudience && !hasAudience) {
|
|
332
335
|
return { payload: { email: null, orgDomain: null } };
|
|
333
336
|
}
|
|
334
|
-
const verifyOptions = {
|
|
337
|
+
const verifyOptions = {
|
|
338
|
+
algorithms: A2A_TOKEN_ALGORITHMS,
|
|
339
|
+
};
|
|
335
340
|
if (hasAudience) {
|
|
336
341
|
// Fail closed: the token was minted for a specific audience, but this
|
|
337
342
|
// receiver can't derive its own expected audience (no APP_URL/URL and no
|
|
@@ -424,10 +429,7 @@ async function verifyA2ATokenInternal(token, event, audienceOptions) {
|
|
|
424
429
|
}
|
|
425
430
|
if (!organization)
|
|
426
431
|
return { payload: { email: null, orgDomain: null } };
|
|
427
|
-
const
|
|
428
|
-
? { ...verifyOptions, algorithms: ["HS256"] }
|
|
429
|
-
: verifyOptions;
|
|
430
|
-
const payload = await verifyJwtWithSecret(token, organization.secret, orgVerifyOptions);
|
|
432
|
+
const payload = await verifyJwtWithSecret(token, organization.secret, verifyOptions);
|
|
431
433
|
if (!payload)
|
|
432
434
|
return { payload: { email: null, orgDomain: null } };
|
|
433
435
|
const claims = organizationPrincipalClaims(payload, organization);
|
|
@@ -1205,6 +1205,9 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1205
1205
|
};
|
|
1206
1206
|
let lastAbortCheck = Date.now() - 3000;
|
|
1207
1207
|
let consecutiveAbortCheckFailures = 0;
|
|
1208
|
+
let completionInProgress = false;
|
|
1209
|
+
let ownTerminalStatusEstablished = false;
|
|
1210
|
+
let terminalStatusWrite = null;
|
|
1208
1211
|
const checkSqlAbort = () => {
|
|
1209
1212
|
const now = Date.now();
|
|
1210
1213
|
if (now - lastAbortCheck < 3000)
|
|
@@ -1216,9 +1219,16 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1216
1219
|
abortInMemoryRun(run, state.reason ?? "user");
|
|
1217
1220
|
return;
|
|
1218
1221
|
}
|
|
1219
|
-
if (!abort.signal.aborted) {
|
|
1222
|
+
if (!abort.signal.aborted && !ownTerminalStatusEstablished) {
|
|
1220
1223
|
const status = await getRunStatus(runId);
|
|
1221
1224
|
if (status !== null && status !== "running") {
|
|
1225
|
+
const pendingStatusWrite = terminalStatusWrite;
|
|
1226
|
+
if (pendingStatusWrite)
|
|
1227
|
+
await pendingStatusWrite;
|
|
1228
|
+
}
|
|
1229
|
+
if (status !== null &&
|
|
1230
|
+
status !== "running" &&
|
|
1231
|
+
!ownTerminalStatusEstablished) {
|
|
1222
1232
|
abortInMemoryRun(run, "displaced");
|
|
1223
1233
|
}
|
|
1224
1234
|
}
|
|
@@ -1249,7 +1259,6 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1249
1259
|
};
|
|
1250
1260
|
let consecutiveHeartbeatFailures = 0;
|
|
1251
1261
|
let heartbeatInFlight = false;
|
|
1252
|
-
let completionInProgress = false;
|
|
1253
1262
|
const heartbeatTimer = setInterval(() => {
|
|
1254
1263
|
if (!heartbeatInFlight) {
|
|
1255
1264
|
heartbeatInFlight = true;
|
|
@@ -1748,11 +1757,26 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1748
1757
|
const persistTerminalStatus = () => Object.keys(terminalStatusOptions).length === 0
|
|
1749
1758
|
? updateRunStatusIfRunning(runId, persistedStatus)
|
|
1750
1759
|
: updateRunStatusIfRunning(runId, persistedStatus, terminalStatusOptions);
|
|
1751
|
-
const
|
|
1760
|
+
const persistOwnTerminalState = async (persist) => {
|
|
1761
|
+
const write = withWorkerFence(persist);
|
|
1762
|
+
terminalStatusWrite = write;
|
|
1763
|
+
try {
|
|
1764
|
+
const established = await write;
|
|
1765
|
+
if (established)
|
|
1766
|
+
ownTerminalStatusEstablished = true;
|
|
1767
|
+
return established;
|
|
1768
|
+
}
|
|
1769
|
+
finally {
|
|
1770
|
+
if (terminalStatusWrite === write)
|
|
1771
|
+
terminalStatusWrite = null;
|
|
1772
|
+
}
|
|
1773
|
+
};
|
|
1774
|
+
const persistOwnTerminalStatus = () => persistOwnTerminalState(persistTerminalStatus);
|
|
1775
|
+
const reconcileTerminalRun = () => persistOwnTerminalState(() => threadProjectionPending
|
|
1752
1776
|
? reconcileTerminalRunFromEvents(runId, {
|
|
1753
1777
|
threadProjectionPending: true,
|
|
1754
1778
|
})
|
|
1755
|
-
: reconcileTerminalRunFromEvents(runId);
|
|
1779
|
+
: reconcileTerminalRunFromEvents(runId));
|
|
1756
1780
|
const reportTerminalStatusPersistenceError = (error) => {
|
|
1757
1781
|
captureError(error, {
|
|
1758
1782
|
route: "/_agent-native/agent-chat",
|
|
@@ -1795,9 +1819,10 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1795
1819
|
else {
|
|
1796
1820
|
try {
|
|
1797
1821
|
await insertRunPromise;
|
|
1798
|
-
continuationStatusPersistedBeforeEvent =
|
|
1822
|
+
continuationStatusPersistedBeforeEvent =
|
|
1823
|
+
await persistOwnTerminalStatus();
|
|
1799
1824
|
if (!continuationStatusPersistedBeforeEvent) {
|
|
1800
|
-
await
|
|
1825
|
+
await reconcileTerminalRun();
|
|
1801
1826
|
const persistedRun = await getRunById(runId);
|
|
1802
1827
|
continuationStatusPersistedBeforeEvent =
|
|
1803
1828
|
persistedRun?.status === "truncated" &&
|
|
@@ -1875,7 +1900,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1875
1900
|
: await withWorkerFence(persistAtomicAbort);
|
|
1876
1901
|
terminalPersistenceEstablished = aborted
|
|
1877
1902
|
? true
|
|
1878
|
-
: await
|
|
1903
|
+
: await reconcileTerminalRun();
|
|
1879
1904
|
}
|
|
1880
1905
|
catch (error) {
|
|
1881
1906
|
terminalPersistenceEstablished = false;
|
|
@@ -1893,7 +1918,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1893
1918
|
(!terminalPersistenceError || eventPersistenceError)) {
|
|
1894
1919
|
let statusUpdated = false;
|
|
1895
1920
|
try {
|
|
1896
|
-
statusUpdated = await
|
|
1921
|
+
statusUpdated = await persistOwnTerminalStatus();
|
|
1897
1922
|
}
|
|
1898
1923
|
catch (error) {
|
|
1899
1924
|
reportTerminalStatusPersistenceError(error);
|
|
@@ -1905,8 +1930,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1905
1930
|
terminalPersistenceEstablished = !terminalPersistenceError;
|
|
1906
1931
|
}
|
|
1907
1932
|
else {
|
|
1908
|
-
terminalPersistenceEstablished =
|
|
1909
|
-
await withWorkerFence(reconcileTerminalRun);
|
|
1933
|
+
terminalPersistenceEstablished = await reconcileTerminalRun();
|
|
1910
1934
|
}
|
|
1911
1935
|
}
|
|
1912
1936
|
}
|
|
@@ -1957,7 +1981,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
|
|
|
1957
1981
|
if (terminalPersistenceError) {
|
|
1958
1982
|
const reconciled = eventPersistenceError
|
|
1959
1983
|
? false
|
|
1960
|
-
: await
|
|
1984
|
+
: await reconcileTerminalRun();
|
|
1961
1985
|
if (!reconciled)
|
|
1962
1986
|
throw terminalPersistenceError;
|
|
1963
1987
|
terminalPersistenceEstablished = true;
|
|
@@ -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
|
}>;
|
|
@@ -4,8 +4,28 @@ import { ROUTE_WARMUP_PRELOAD_ATTRIBUTE } from "../shared/route-chunk-recovery-b
|
|
|
4
4
|
import { mergeAgentNativeRouteWarmupConfig, } from "../shared/route-warmup-config.js";
|
|
5
5
|
import { isServerRoutePath } from "./api-path.js";
|
|
6
6
|
const PREFETCH_ATTR = "data-an-prefetch";
|
|
7
|
+
// WebKit checks once, 3 seconds after the window's load event, for link
|
|
8
|
+
// preloads nothing has used yet, and logs "was preloaded using link preload but
|
|
9
|
+
// not used within a few seconds" for each one. Warmed route modules are for
|
|
10
|
+
// later navigations, so their modulepreload links wait until that check has
|
|
11
|
+
// run. Until then the module files are fetched into the HTTP cache instead:
|
|
12
|
+
// built assets are immutable, so an early click still skips the network, and
|
|
13
|
+
// WebKit only reports link preloads. Data warmup is a plain fetch and starts
|
|
14
|
+
// right away.
|
|
15
|
+
// A third-party script that never finishes can hold the load event back
|
|
16
|
+
// indefinitely. The hold lasts as long, since preloads added before a late load
|
|
17
|
+
// event would still be reported; the HTTP cache and intent preloads cover clicks
|
|
18
|
+
// meanwhile.
|
|
19
|
+
const MODULE_WARMUP_DELAY_AFTER_LOAD_MS = 4_000;
|
|
7
20
|
const warmedDataRoutes = new Set();
|
|
8
21
|
const warmedRouteAssets = new Set();
|
|
22
|
+
const fetchedRouteAssets = new Set();
|
|
23
|
+
// A later scan retries a failed fetch, at most twice and no sooner than 5
|
|
24
|
+
// seconds after the last failure, so page updates during an outage don't set
|
|
25
|
+
// the request rate.
|
|
26
|
+
const ROUTE_ASSET_FETCH_ATTEMPTS = 3;
|
|
27
|
+
const ROUTE_ASSET_RETRY_DELAY_MS = 5_000;
|
|
28
|
+
const failedRouteAssetFetches = new Map();
|
|
9
29
|
let cachedManifest;
|
|
10
30
|
let cachedManifestRoutesSignature = "";
|
|
11
31
|
let cachedManifestRouteTree = [];
|
|
@@ -305,6 +325,62 @@ function warmRouteAssetsForHref(href) {
|
|
|
305
325
|
document.head.appendChild(link);
|
|
306
326
|
}
|
|
307
327
|
}
|
|
328
|
+
function fetchRouteAssetsForHref(href) {
|
|
329
|
+
for (const assetUrl of routeAssetUrlsForHref(href)) {
|
|
330
|
+
if (warmedRouteAssets.has(assetUrl) || fetchedRouteAssets.has(assetUrl)) {
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
const failed = failedRouteAssetFetches.get(assetUrl);
|
|
334
|
+
if (failed &&
|
|
335
|
+
(failed.attempts >= ROUTE_ASSET_FETCH_ATTEMPTS ||
|
|
336
|
+
Date.now() < failed.retryAt)) {
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
fetchedRouteAssets.add(assetUrl);
|
|
340
|
+
const onFailure = () => {
|
|
341
|
+
fetchedRouteAssets.delete(assetUrl);
|
|
342
|
+
failedRouteAssetFetches.set(assetUrl, {
|
|
343
|
+
attempts: (failed?.attempts ?? 0) + 1,
|
|
344
|
+
retryAt: Date.now() + ROUTE_ASSET_RETRY_DELAY_MS,
|
|
345
|
+
});
|
|
346
|
+
};
|
|
347
|
+
window
|
|
348
|
+
.fetch(assetUrl, { credentials: "same-origin", priority: "low" })
|
|
349
|
+
.then((response) => {
|
|
350
|
+
if (response.ok) {
|
|
351
|
+
failedRouteAssetFetches.delete(assetUrl);
|
|
352
|
+
return response.arrayBuffer();
|
|
353
|
+
}
|
|
354
|
+
onFailure();
|
|
355
|
+
})
|
|
356
|
+
.catch(onFailure);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
function msSinceLoadEventEnd() {
|
|
360
|
+
const [entry] = performance.getEntriesByType?.("navigation") ?? [];
|
|
361
|
+
const loadEventEnd = entry
|
|
362
|
+
?.loadEventEnd;
|
|
363
|
+
return loadEventEnd ? Math.max(0, performance.now() - loadEventEnd) : 0;
|
|
364
|
+
}
|
|
365
|
+
function afterUnusedPreloadCheck(callback) {
|
|
366
|
+
let timer;
|
|
367
|
+
const startTimer = () => {
|
|
368
|
+
if (timer !== undefined)
|
|
369
|
+
window.clearTimeout(timer);
|
|
370
|
+
timer = window.setTimeout(callback, Math.max(0, MODULE_WARMUP_DELAY_AFTER_LOAD_MS - msSinceLoadEventEnd()));
|
|
371
|
+
};
|
|
372
|
+
if (document.readyState === "complete") {
|
|
373
|
+
startTimer();
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
window.addEventListener("load", startTimer, { once: true });
|
|
377
|
+
}
|
|
378
|
+
return () => {
|
|
379
|
+
window.removeEventListener("load", startTimer);
|
|
380
|
+
if (timer !== undefined)
|
|
381
|
+
window.clearTimeout(timer);
|
|
382
|
+
};
|
|
383
|
+
}
|
|
308
384
|
function linkWarmupMode(link, strategy) {
|
|
309
385
|
const explicit = link.getAttribute(PREFETCH_ATTR)?.trim().toLowerCase();
|
|
310
386
|
if (explicit === "none" || explicit === "off" || explicit === "false") {
|
|
@@ -353,6 +429,8 @@ function resetRouteWarmupCachesForTests() {
|
|
|
353
429
|
cachedManifestRouteTree = [];
|
|
354
430
|
warmedDataRoutes.clear();
|
|
355
431
|
warmedRouteAssets.clear();
|
|
432
|
+
fetchedRouteAssets.clear();
|
|
433
|
+
failedRouteAssetFetches.clear();
|
|
356
434
|
}
|
|
357
435
|
export function AgentNativeRouteWarmup({ config, }) {
|
|
358
436
|
useEffect(() => {
|
|
@@ -376,6 +454,8 @@ export function AgentNativeRouteWarmup({ config, }) {
|
|
|
376
454
|
const dataRetryAttempts = new Map();
|
|
377
455
|
const retryTimers = new Set();
|
|
378
456
|
const observedLinks = new WeakSet();
|
|
457
|
+
const heldModuleHrefs = new Set();
|
|
458
|
+
let modulesHeld = warmModules;
|
|
379
459
|
let active = 0;
|
|
380
460
|
let stopped = false;
|
|
381
461
|
let scheduleTimer;
|
|
@@ -435,9 +515,14 @@ export function AgentNativeRouteWarmup({ config, }) {
|
|
|
435
515
|
});
|
|
436
516
|
}
|
|
437
517
|
};
|
|
438
|
-
function warmHref(href) {
|
|
439
|
-
if (
|
|
518
|
+
function warmHref(href, fromIntent = false) {
|
|
519
|
+
if (modulesHeld && !fromIntent) {
|
|
520
|
+
heldModuleHrefs.add(href);
|
|
521
|
+
fetchRouteAssetsForHref(href);
|
|
522
|
+
}
|
|
523
|
+
else if (warmModules) {
|
|
440
524
|
warmRouteAssetsForHref(href);
|
|
525
|
+
}
|
|
441
526
|
if (!warmData)
|
|
442
527
|
return;
|
|
443
528
|
for (const dataUrl of dataRouteUrlsForHref(href)) {
|
|
@@ -512,8 +597,20 @@ export function AgentNativeRouteWarmup({ config, }) {
|
|
|
512
597
|
const mode = linkWarmupMode(link, resolved.strategy);
|
|
513
598
|
if (mode === "none")
|
|
514
599
|
return;
|
|
515
|
-
|
|
600
|
+
// Hover, touch and focus usually come just before a click, so they
|
|
601
|
+
// preload right away even during the hold: the click uses the preload
|
|
602
|
+
// before WebKit's check, and an early click doesn't wait for the module
|
|
603
|
+
// to compile.
|
|
604
|
+
warmHref(link.href, true);
|
|
516
605
|
};
|
|
606
|
+
const cancelModuleHold = warmModules
|
|
607
|
+
? afterUnusedPreloadCheck(() => {
|
|
608
|
+
modulesHeld = false;
|
|
609
|
+
for (const href of heldModuleHrefs)
|
|
610
|
+
warmRouteAssetsForHref(href);
|
|
611
|
+
heldModuleHrefs.clear();
|
|
612
|
+
})
|
|
613
|
+
: undefined;
|
|
517
614
|
schedule();
|
|
518
615
|
const observer = new MutationObserver(schedule);
|
|
519
616
|
observer.observe(document.documentElement, {
|
|
@@ -533,6 +630,7 @@ export function AgentNativeRouteWarmup({ config, }) {
|
|
|
533
630
|
document.addEventListener("focusin", warmFromIntent, true);
|
|
534
631
|
return () => {
|
|
535
632
|
stopped = true;
|
|
633
|
+
cancelModuleHold?.();
|
|
536
634
|
if (scheduleTimer !== undefined)
|
|
537
635
|
window.clearTimeout(scheduleTimer);
|
|
538
636
|
for (const timer of retryTimers)
|
package/dist/collab/routes.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ export declare const postCollabUpdate: import("h3").EventHandlerWithFetch<import
|
|
|
16
16
|
error: string;
|
|
17
17
|
ok?: undefined;
|
|
18
18
|
} | {
|
|
19
|
-
error?: undefined;
|
|
20
19
|
liveCopy: "derived" | "not_derived" | "unchanged";
|
|
21
20
|
liveCopyReason?: string;
|
|
21
|
+
error?: undefined;
|
|
22
22
|
ok: boolean;
|
|
23
23
|
} | {
|
|
24
24
|
error?: undefined;
|
|
@@ -13,10 +13,10 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
13
13
|
enabled?: undefined;
|
|
14
14
|
nextRun?: undefined;
|
|
15
15
|
} | {
|
|
16
|
-
deleted?: undefined;
|
|
17
16
|
resourceId: string;
|
|
18
17
|
name: string;
|
|
19
18
|
enabled: boolean;
|
|
20
19
|
nextRun: string;
|
|
20
|
+
deleted?: undefined;
|
|
21
21
|
}>;
|
|
22
22
|
export default _default;
|
package/dist/secrets/routes.d.ts
CHANGED
|
@@ -57,39 +57,39 @@ export declare function createWriteSecretHandler(): import("h3").EventHandlerWit
|
|
|
57
57
|
} | {
|
|
58
58
|
error: string;
|
|
59
59
|
errorCode?: undefined;
|
|
60
|
-
ok?: undefined;
|
|
61
60
|
status?: undefined;
|
|
61
|
+
ok?: undefined;
|
|
62
62
|
} | {
|
|
63
63
|
error: string;
|
|
64
64
|
errorCode: string;
|
|
65
|
-
ok?: undefined;
|
|
66
65
|
status?: undefined;
|
|
66
|
+
ok?: undefined;
|
|
67
67
|
} | {
|
|
68
|
-
error?: undefined;
|
|
69
68
|
errorCode?: undefined;
|
|
70
69
|
ok: boolean;
|
|
71
70
|
status: string;
|
|
71
|
+
error?: undefined;
|
|
72
72
|
} | {
|
|
73
|
-
ok?: undefined;
|
|
74
73
|
error: string;
|
|
75
74
|
removed?: undefined;
|
|
75
|
+
ok?: undefined;
|
|
76
76
|
} | {
|
|
77
|
-
error?: undefined;
|
|
78
77
|
ok: boolean;
|
|
79
78
|
removed: boolean;
|
|
79
|
+
error?: undefined;
|
|
80
80
|
}>>;
|
|
81
81
|
export declare function createTestSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
|
|
82
|
-
ok?: undefined;
|
|
83
82
|
error: string;
|
|
84
83
|
note?: undefined;
|
|
84
|
+
ok?: undefined;
|
|
85
85
|
} | {
|
|
86
|
-
error?: undefined;
|
|
87
86
|
ok: boolean;
|
|
88
87
|
note?: undefined;
|
|
89
|
-
} | {
|
|
90
88
|
error?: undefined;
|
|
89
|
+
} | {
|
|
91
90
|
ok: boolean;
|
|
92
91
|
note: string;
|
|
92
|
+
error?: undefined;
|
|
93
93
|
} | {
|
|
94
94
|
note?: undefined;
|
|
95
95
|
ok: boolean;
|
|
@@ -117,11 +117,11 @@ export declare function createAdHocSecretHandler(): import("h3").EventHandlerWit
|
|
|
117
117
|
} | {
|
|
118
118
|
error: string;
|
|
119
119
|
} | {
|
|
120
|
-
error?: undefined;
|
|
121
120
|
ok: boolean;
|
|
122
121
|
key: string;
|
|
123
|
-
} | {
|
|
124
122
|
error?: undefined;
|
|
123
|
+
} | {
|
|
125
124
|
ok: boolean;
|
|
126
125
|
removed: boolean;
|
|
126
|
+
error?: undefined;
|
|
127
127
|
}>>;
|
|
@@ -67,12 +67,12 @@ export declare function createAgentEngineApiKeyHandler(): import("h3").EventHand
|
|
|
67
67
|
code: any;
|
|
68
68
|
} | {
|
|
69
69
|
errorCode?: undefined;
|
|
70
|
-
error?: undefined;
|
|
71
70
|
code?: undefined;
|
|
72
71
|
ok: boolean;
|
|
73
72
|
key: string;
|
|
74
73
|
baseUrlKey?: string;
|
|
75
74
|
scope: AgentEngineApiKeyScope;
|
|
76
75
|
defaultModel?: import("./agent-engine-default-model-route.js").SavedKeyDefaultModelOutcome;
|
|
76
|
+
error?: undefined;
|
|
77
77
|
}>>;
|
|
78
78
|
export {};
|
|
@@ -8,17 +8,17 @@ export declare const AGENT_ENGINE_API_KEY_ACTION_NAME = "agent-engine-api-key";
|
|
|
8
8
|
* resolveEngine's credential detection.
|
|
9
9
|
*/
|
|
10
10
|
export declare function createAgentEngineDisconnectHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
|
|
11
|
-
error: string;
|
|
12
11
|
ok?: undefined;
|
|
12
|
+
error: string;
|
|
13
13
|
scope?: undefined;
|
|
14
14
|
} | {
|
|
15
15
|
ok: boolean;
|
|
16
16
|
error: any;
|
|
17
17
|
scope?: undefined;
|
|
18
18
|
} | {
|
|
19
|
+
error?: undefined;
|
|
19
20
|
ok: boolean;
|
|
20
21
|
scope: "org" | "user";
|
|
21
|
-
error?: undefined;
|
|
22
22
|
}>>;
|
|
23
23
|
export interface DefaultModelSelectionRequest {
|
|
24
24
|
engine: string;
|
|
@@ -54,8 +54,8 @@ export declare function createRealtimeTokenHandler(): import("h3").EventHandlerW
|
|
|
54
54
|
expiresAt?: undefined;
|
|
55
55
|
ttlSeconds?: undefined;
|
|
56
56
|
} | {
|
|
57
|
+
error?: undefined;
|
|
57
58
|
token: string;
|
|
58
59
|
expiresAt: string;
|
|
59
60
|
ttlSeconds: number;
|
|
60
|
-
error?: undefined;
|
|
61
61
|
}>>;
|
|
@@ -67,7 +67,6 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
67
67
|
triggerType: "event" | "manual" | "schedule" | "webhook";
|
|
68
68
|
body: string;
|
|
69
69
|
}, {
|
|
70
|
-
deleted?: undefined;
|
|
71
70
|
created: boolean;
|
|
72
71
|
resourceId: string;
|
|
73
72
|
name: string;
|
|
@@ -88,13 +87,12 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
88
87
|
executionCwd: string;
|
|
89
88
|
mcpTools: string[];
|
|
90
89
|
webhookPath: string;
|
|
90
|
+
deleted?: undefined;
|
|
91
91
|
updated?: undefined;
|
|
92
92
|
changed?: undefined;
|
|
93
93
|
previouslyEnabled?: undefined;
|
|
94
94
|
requestedEnabled?: undefined;
|
|
95
95
|
} | {
|
|
96
|
-
enabled?: undefined;
|
|
97
|
-
nextRun?: undefined;
|
|
98
96
|
created?: undefined;
|
|
99
97
|
deleted: boolean;
|
|
100
98
|
resourceId: string;
|
|
@@ -107,6 +105,8 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
107
105
|
timezone?: undefined;
|
|
108
106
|
condition?: undefined;
|
|
109
107
|
body?: undefined;
|
|
108
|
+
enabled?: undefined;
|
|
109
|
+
nextRun?: undefined;
|
|
110
110
|
createdBy?: undefined;
|
|
111
111
|
model?: undefined;
|
|
112
112
|
reasoningEffort?: undefined;
|
|
@@ -119,8 +119,8 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
119
119
|
requestedEnabled?: undefined;
|
|
120
120
|
webhookPath?: undefined;
|
|
121
121
|
} | {
|
|
122
|
-
deleted?: undefined;
|
|
123
122
|
created?: undefined;
|
|
123
|
+
deleted?: undefined;
|
|
124
124
|
updated: boolean;
|
|
125
125
|
resourceId: string;
|
|
126
126
|
name: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.219.0",
|
|
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": {
|
|
@@ -730,8 +730,8 @@
|
|
|
730
730
|
"yaml": "^2.9.0",
|
|
731
731
|
"yjs": "^13.6.33",
|
|
732
732
|
"zod": "^4.3.6",
|
|
733
|
-
"@agent-native/
|
|
734
|
-
"@agent-native/
|
|
733
|
+
"@agent-native/agentkit": "^0.219.0",
|
|
734
|
+
"@agent-native/recap-cli": "^0.5.88"
|
|
735
735
|
},
|
|
736
736
|
"devDependencies": {
|
|
737
737
|
"@ai-sdk/anthropic": "^3.0.71",
|