@agent-native/core 0.70.3 → 0.72.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/README.md +2 -2
- package/corpus/core/CHANGELOG.md +51 -0
- package/corpus/core/docs/content/actions.md +23 -0
- package/corpus/core/docs/content/audit-log.md +111 -0
- package/corpus/core/docs/content/multi-app-workspace.md +2 -2
- package/corpus/core/docs/design/durable-agent-runs.md +458 -4
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/action.ts +80 -1
- package/corpus/core/src/agent/durable-background.ts +192 -0
- package/corpus/core/src/agent/production-agent.ts +357 -13
- package/corpus/core/src/agent/run-manager.ts +66 -3
- package/corpus/core/src/agent/run-store.ts +143 -23
- package/corpus/core/src/agent/types.ts +20 -0
- package/corpus/core/src/application-state/store.ts +5 -0
- package/corpus/core/src/audit/actions/get-audit-event.ts +23 -0
- package/corpus/core/src/audit/actions/list-audit-events.ts +65 -0
- package/corpus/core/src/audit/cleanup-job.ts +100 -0
- package/corpus/core/src/audit/config.ts +91 -0
- package/corpus/core/src/audit/index.ts +43 -0
- package/corpus/core/src/audit/record.ts +143 -0
- package/corpus/core/src/audit/redact.ts +109 -0
- package/corpus/core/src/audit/store.ts +244 -0
- package/corpus/core/src/audit/types.ts +125 -0
- package/corpus/core/src/chat-threads/store.ts +10 -0
- package/corpus/core/src/client/AgentPanel.tsx +12 -9
- package/corpus/core/src/client/AssistantChat.tsx +6 -0
- package/corpus/core/src/client/blocks/library/FileTreeBlock.tsx +72 -14
- package/corpus/core/src/client/chat/repo-helpers.ts +38 -0
- package/corpus/core/src/db/client.ts +4 -0
- package/corpus/core/src/db/widen-columns.ts +75 -0
- package/corpus/core/src/deploy/build.ts +96 -0
- package/corpus/core/src/deploy/workspace-deploy.ts +121 -0
- package/corpus/core/src/mcp/build-server.ts +23 -13
- package/corpus/core/src/oauth-tokens/store.ts +6 -0
- package/corpus/core/src/provider-api/custom-registry.ts +8 -0
- package/corpus/core/src/resources/store.ts +10 -0
- package/corpus/core/src/scripts/runner.ts +6 -3
- package/corpus/core/src/server/action-discovery.ts +6 -0
- package/corpus/core/src/server/action-routes.ts +1 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +133 -66
- package/corpus/core/src/server/auth.ts +5 -0
- package/corpus/core/src/server/core-routes-plugin.ts +14 -0
- package/corpus/core/src/server/security-headers.ts +9 -6
- package/corpus/core/src/settings/store.ts +6 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +93 -0
- package/corpus/core/src/usage/store.ts +6 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +19 -0
- package/corpus/templates/analytics/AGENTS.md +8 -0
- package/corpus/templates/analytics/actions/compose-dashboard.ts +317 -0
- package/corpus/templates/analytics/changelog/2026-06-23-build-large-first-party-analytics-dashboards-in-one-fast-cal.md +6 -0
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +574 -0
- package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +60 -6
- package/corpus/templates/calendar/changelog/2026-06-23-added-a-heads-up-explaining-google-s-app-not-verified-screen.md +6 -0
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +20 -43
- package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +5 -1
- package/corpus/templates/clips/app/lib/countdown-audio-cue.ts +3 -51
- package/corpus/templates/clips/changelog/2026-06-23-dragging-the-desktop-camera-bubble-now-glides-to-a-stop-at-t.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-23-public-clips-now-play-inline-in-slack-connect-a-workspac.md +6 -0
- package/corpus/templates/clips/chrome-extension/PERMISSIONS.md +72 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -10
- package/corpus/templates/clips/chrome-extension/src/background.ts +163 -32
- package/corpus/templates/clips/chrome-extension/src/content-script.ts +301 -24
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +245 -67
- package/corpus/templates/clips/chrome-extension/src/overlay.css +77 -43
- package/corpus/templates/clips/chrome-extension/src/overlay.html +7 -1
- package/corpus/templates/clips/chrome-extension/src/overlay.ts +102 -38
- package/corpus/templates/clips/chrome-extension/src/popup.html +62 -5
- package/corpus/templates/clips/chrome-extension/src/popup.ts +275 -4
- package/corpus/templates/clips/chrome-extension/src/styles.css +34 -0
- package/corpus/templates/clips/chrome-extension/vite.config.ts +5 -0
- package/corpus/templates/clips/desktop/src/lib/audio-cue.ts +21 -16
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +10 -17
- package/corpus/templates/clips/desktop/src/overlays/bubble.tsx +73 -23
- package/corpus/templates/clips/desktop/src/overlays/countdown.tsx +0 -6
- package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +56 -46
- package/corpus/templates/clips/desktop/src/styles.css +33 -5
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +113 -0
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +3 -0
- package/corpus/templates/clips/server/lib/media-permissions.ts +5 -1
- package/corpus/templates/clips/shared/recording-audio.ts +62 -0
- package/corpus/templates/clips/shared/recording-core.ts +94 -0
- package/dist/action.d.ts +31 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +45 -1
- package/dist/action.js.map +1 -1
- package/dist/agent/context-xray/schema.d.ts +1 -1
- package/dist/agent/durable-background.d.ts +60 -0
- package/dist/agent/durable-background.d.ts.map +1 -0
- package/dist/agent/durable-background.js +144 -0
- package/dist/agent/durable-background.js.map +1 -0
- package/dist/agent/observational-memory/schema.d.ts +1 -1
- package/dist/agent/production-agent.d.ts +20 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +320 -14
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +48 -0
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +45 -3
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +30 -1
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +138 -24
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/types.d.ts +20 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/application-state/store.d.ts.map +1 -1
- package/dist/application-state/store.js +5 -0
- package/dist/application-state/store.js.map +1 -1
- package/dist/audit/actions/get-audit-event.d.ts +11 -0
- package/dist/audit/actions/get-audit-event.d.ts.map +1 -0
- package/dist/audit/actions/get-audit-event.js +22 -0
- package/dist/audit/actions/get-audit-event.js.map +1 -0
- package/dist/audit/actions/list-audit-events.d.ts +22 -0
- package/dist/audit/actions/list-audit-events.d.ts.map +1 -0
- package/dist/audit/actions/list-audit-events.js +61 -0
- package/dist/audit/actions/list-audit-events.js.map +1 -0
- package/dist/audit/cleanup-job.d.ts +12 -0
- package/dist/audit/cleanup-job.d.ts.map +1 -0
- package/dist/audit/cleanup-job.js +93 -0
- package/dist/audit/cleanup-job.js.map +1 -0
- package/dist/audit/config.d.ts +30 -0
- package/dist/audit/config.d.ts.map +1 -0
- package/dist/audit/config.js +65 -0
- package/dist/audit/config.js.map +1 -0
- package/dist/audit/index.d.ts +13 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +6 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/record.d.ts +24 -0
- package/dist/audit/record.d.ts.map +1 -0
- package/dist/audit/record.js +106 -0
- package/dist/audit/record.js.map +1 -0
- package/dist/audit/redact.d.ts +28 -0
- package/dist/audit/redact.d.ts.map +1 -0
- package/dist/audit/redact.js +109 -0
- package/dist/audit/redact.js.map +1 -0
- package/dist/audit/store.d.ts +14 -0
- package/dist/audit/store.d.ts.map +1 -0
- package/dist/audit/store.js +219 -0
- package/dist/audit/store.js.map +1 -0
- package/dist/audit/types.d.ts +114 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +15 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +10 -0
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +2 -2
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +6 -1
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/blocks/library/FileTreeBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/FileTreeBlock.js +37 -4
- package/dist/client/blocks/library/FileTreeBlock.js.map +1 -1
- package/dist/client/chat/repo-helpers.d.ts +16 -0
- package/dist/client/chat/repo-helpers.d.ts.map +1 -1
- package/dist/client/chat/repo-helpers.js +40 -0
- package/dist/client/chat/repo-helpers.js.map +1 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +3 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/widen-columns.d.ts +39 -0
- package/dist/db/widen-columns.d.ts.map +1 -0
- package/dist/db/widen-columns.js +73 -0
- package/dist/db/widen-columns.js.map +1 -0
- package/dist/deploy/build.d.ts +29 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +85 -0
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/workspace-deploy.d.ts.map +1 -1
- package/dist/deploy/workspace-deploy.js +108 -0
- package/dist/deploy/workspace-deploy.js.map +1 -1
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +24 -9
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/oauth-tokens/store.d.ts.map +1 -1
- package/dist/oauth-tokens/store.js +6 -0
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/provider-api/custom-registry.d.ts.map +1 -1
- package/dist/provider-api/custom-registry.js +8 -0
- package/dist/provider-api/custom-registry.js.map +1 -1
- package/dist/resources/store.d.ts.map +1 -1
- package/dist/resources/store.js +9 -0
- package/dist/resources/store.js.map +1 -1
- package/dist/scripts/runner.js +4 -3
- package/dist/scripts/runner.js.map +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +6 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.d.ts.map +1 -1
- package/dist/server/action-routes.js +1 -0
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +68 -13
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +5 -0
- package/dist/server/auth.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +13 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/security-headers.d.ts +8 -5
- package/dist/server/security-headers.d.ts.map +1 -1
- package/dist/server/security-headers.js +9 -6
- package/dist/server/security-headers.js.map +1 -1
- package/dist/settings/store.d.ts.map +1 -1
- package/dist/settings/store.js +6 -0
- package/dist/settings/store.js.map +1 -1
- package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +93 -0
- package/dist/usage/store.d.ts.map +1 -1
- package/dist/usage/store.js +5 -0
- package/dist/usage/store.js.map +1 -1
- package/docs/content/actions.md +23 -0
- package/docs/content/audit-log.md +111 -0
- package/docs/content/multi-app-workspace.md +2 -2
- package/docs/design/durable-agent-runs.md +458 -4
- package/package.json +2 -1
- package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +93 -0
package/dist/deploy/build.js
CHANGED
|
@@ -21,6 +21,7 @@ import { discoverApiRoutes, discoverPlugins, discoverActionFiles, getMissingDefa
|
|
|
21
21
|
import { getWorkspaceCoreExports, } from "./workspace-core.js";
|
|
22
22
|
import { generateActionRegistryForProject } from "../vite/action-types-plugin.js";
|
|
23
23
|
import { mcpEmbedStaticAssetRouteRules } from "../shared/mcp-embed-headers.js";
|
|
24
|
+
import { AGENT_CHAT_PROCESS_RUN_PATH } from "../agent/durable-background.js";
|
|
24
25
|
import { AGENT_NATIVE_SOCIAL_IMAGE_ALT, AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER, AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT, AGENT_NATIVE_SOCIAL_IMAGE_PATH, AGENT_NATIVE_SOCIAL_IMAGE_TYPE, AGENT_NATIVE_SOCIAL_IMAGE_WIDTH, } from "../shared/social-meta.js";
|
|
25
26
|
import { DEFAULT_SSR_CDN_CACHE_CONTROL, DEFAULT_SSR_NETLIFY_CDN_CACHE_CONTROL, DEFAULT_SPECULATION_RULES_PATH, DEFAULT_SSR_CACHE_CONTROL, } from "../shared/cache-control.js";
|
|
26
27
|
import { collectImmutableAssetPaths, IMMUTABLE_ASSET_CACHE_CONTROL, IMMUTABLE_ASSET_CACHE_HEADERS, prefixAssetPath, } from "./immutable-assets.js";
|
|
@@ -1226,6 +1227,77 @@ export function findInstalledResvgPackages(nodeModulesRoots) {
|
|
|
1226
1227
|
.sort(([a], [b]) => a.localeCompare(b))
|
|
1227
1228
|
.map(([packageName, packageDir]) => ({ packageName, packageDir }));
|
|
1228
1229
|
}
|
|
1230
|
+
/**
|
|
1231
|
+
* Deploy-time gate for emitting the second `-background` Netlify function.
|
|
1232
|
+
* Reads the same env flag the runtime gate uses
|
|
1233
|
+
* (`AGENT_CHAT_DURABLE_BACKGROUND`). Off by default — when off, the deploy
|
|
1234
|
+
* emits exactly one function (today's behavior, byte-for-byte).
|
|
1235
|
+
*/
|
|
1236
|
+
export function isDurableBackgroundDeployEnabled() {
|
|
1237
|
+
const raw = process.env.AGENT_CHAT_DURABLE_BACKGROUND;
|
|
1238
|
+
if (raw == null)
|
|
1239
|
+
return false;
|
|
1240
|
+
const v = raw.trim().toLowerCase();
|
|
1241
|
+
return v === "1" || v === "true" || v === "yes" || v === "on";
|
|
1242
|
+
}
|
|
1243
|
+
/**
|
|
1244
|
+
* Single-template Netlify build: emit a SECOND function whose name ends in
|
|
1245
|
+
* `-background`, re-exporting the same `main.mjs` handler bundle, so the chat
|
|
1246
|
+
* `_process-run` POST lands on Netlify's async (15-min) function instead of the
|
|
1247
|
+
* synchronous one. Additive + flag-gated (see `isDurableBackgroundDeployEnabled`).
|
|
1248
|
+
*
|
|
1249
|
+
* Nitro's `netlify` preset emits a single function at
|
|
1250
|
+
* `.netlify/functions-internal/server` (`server.mjs` → `main.mjs`). We copy
|
|
1251
|
+
* that directory to a sibling `<...>-background` function and write an entry
|
|
1252
|
+
* with a `config.path` of the process-run route.
|
|
1253
|
+
*
|
|
1254
|
+
* ⚠️ REAL-DEPLOY VERIFICATION REQUIRED. Whether Netlify routes
|
|
1255
|
+
* `/_agent-native/agent-chat/_process-run` to this `-background` function (and
|
|
1256
|
+
* invokes it asynchronously with the 15-min budget) vs the synchronous Nitro
|
|
1257
|
+
* function cannot be verified in this environment — Nitro owns the primary
|
|
1258
|
+
* function's routing manifest, and the precedence between the two functions for
|
|
1259
|
+
* that path is a Netlify runtime behavior. If routing resolves to the
|
|
1260
|
+
* synchronous function, the run still completes via the existing 40s
|
|
1261
|
+
* soft-timeout path (no durable win, no regression). See
|
|
1262
|
+
* docs/design/durable-agent-runs.md (Open risks #1).
|
|
1263
|
+
*/
|
|
1264
|
+
export function emitSingleTemplateNetlifyBackgroundFunction(projectCwd) {
|
|
1265
|
+
const functionsDir = path.join(projectCwd, ".netlify", "functions-internal");
|
|
1266
|
+
const serverDir = path.join(functionsDir, "server");
|
|
1267
|
+
if (!fs.existsSync(path.join(serverDir, "main.mjs"))) {
|
|
1268
|
+
// Nitro output layout differs from what we expected — skip rather than
|
|
1269
|
+
// guess. The single-function deploy is unaffected.
|
|
1270
|
+
console.warn("[build] Durable-background emit skipped: expected Nitro Netlify function " +
|
|
1271
|
+
"at .netlify/functions-internal/server/main.mjs was not found.");
|
|
1272
|
+
return;
|
|
1273
|
+
}
|
|
1274
|
+
const backgroundName = "server-agent-background";
|
|
1275
|
+
const dest = path.join(functionsDir, backgroundName);
|
|
1276
|
+
fs.rmSync(dest, { recursive: true, force: true });
|
|
1277
|
+
copyDir(serverDir, dest);
|
|
1278
|
+
// Drop the original Nitro entry so our background entry is the entrypoint.
|
|
1279
|
+
fs.rmSync(path.join(dest, "server.mjs"), { force: true });
|
|
1280
|
+
const entry = `let cachedHandler;
|
|
1281
|
+
|
|
1282
|
+
export default async function handler(...args) {
|
|
1283
|
+
cachedHandler ??= (await import("./main.mjs")).default;
|
|
1284
|
+
return cachedHandler(...args);
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
export const config = {
|
|
1288
|
+
name: "agent background handler",
|
|
1289
|
+
generator: "agent-native build",
|
|
1290
|
+
path: ${JSON.stringify([AGENT_CHAT_PROCESS_RUN_PATH])},
|
|
1291
|
+
nodeBundler: "none",
|
|
1292
|
+
includedFiles: ["**"],
|
|
1293
|
+
preferStatic: false,
|
|
1294
|
+
};
|
|
1295
|
+
`;
|
|
1296
|
+
fs.writeFileSync(path.join(dest, `${backgroundName}.mjs`), entry);
|
|
1297
|
+
console.log(`[build] Emitted durable-background function "${backgroundName}" ` +
|
|
1298
|
+
`(path ${AGENT_CHAT_PROCESS_RUN_PATH}). REQUIRES real-deploy verification ` +
|
|
1299
|
+
`of Netlify async routing — see docs/design/durable-agent-runs.md.`);
|
|
1300
|
+
}
|
|
1229
1301
|
function copyInstalledLibsqlNativePackages(serverDir) {
|
|
1230
1302
|
if (!serverDir || !fs.existsSync(serverDir))
|
|
1231
1303
|
return;
|
|
@@ -1614,6 +1686,19 @@ export default bundle;
|
|
|
1614
1686
|
copyInstalledResvgPackages(nitro.options.output.serverDir);
|
|
1615
1687
|
copyInstalledFfmpegStaticPackage(nitro.options.output.serverDir);
|
|
1616
1688
|
}
|
|
1689
|
+
// Durable background agent runs (off by default). Additive ONLY: emits a
|
|
1690
|
+
// SECOND Netlify function whose name ends in `-background` re-exporting the
|
|
1691
|
+
// same handler bundle, so the chat `_process-run` POST lands on Netlify's
|
|
1692
|
+
// async (15-min) function. When the flag is off this is a no-op and the
|
|
1693
|
+
// single-function deploy is byte-for-byte unchanged.
|
|
1694
|
+
if (preset === "netlify" && isDurableBackgroundDeployEnabled()) {
|
|
1695
|
+
try {
|
|
1696
|
+
emitSingleTemplateNetlifyBackgroundFunction(cwd);
|
|
1697
|
+
}
|
|
1698
|
+
catch (err) {
|
|
1699
|
+
console.warn("[build] Failed to emit durable-background Netlify function (non-fatal):", err instanceof Error ? err.message : err);
|
|
1700
|
+
}
|
|
1701
|
+
}
|
|
1617
1702
|
// Resolve remaining bare npm imports by bundling them into _libs/.
|
|
1618
1703
|
// Nitro sometimes leaves small packages as externals even with noExternals.
|
|
1619
1704
|
if (preset.startsWith("cloudflare") || preset.startsWith("deno")) {
|