@agent-native/core 0.94.3 → 0.95.1

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.
Files changed (181) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +16 -0
  3. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +13 -0
  4. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +18 -0
  5. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +16 -0
  6. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +17 -0
  7. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +16 -0
  8. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +17 -0
  9. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +15 -0
  10. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +16 -0
  11. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +11 -0
  12. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +12 -0
  13. package/corpus/core/docs/content/pr-visual-recap.mdx +20 -12
  14. package/corpus/core/docs/content/template-design.mdx +16 -0
  15. package/corpus/core/package.json +2 -2
  16. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +3 -0
  17. package/corpus/core/src/agent/engine/registry.ts +6 -1
  18. package/corpus/core/src/agent/engine/types.ts +2 -0
  19. package/corpus/core/src/agent/production-agent.ts +20 -0
  20. package/corpus/core/src/agent/thread-data-builder.ts +41 -17
  21. package/corpus/core/src/cli/code-agent-executor.ts +61 -1
  22. package/corpus/core/src/cli/pr-visual-recap-workflow.ts +1 -1
  23. package/corpus/core/src/cli/recap.ts +262 -25
  24. package/corpus/core/src/client/AssistantChat.tsx +250 -25
  25. package/corpus/core/src/client/chat/tool-call-display.tsx +1 -1
  26. package/corpus/core/src/client/chat/use-reconnect-reader-owner.ts +28 -0
  27. package/corpus/core/src/client/guided-questions.tsx +9 -1
  28. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +6 -7
  29. package/corpus/core/src/client/settings/UsageSection.tsx +26 -5
  30. package/corpus/core/src/client/sse-event-processor.ts +90 -21
  31. package/corpus/core/src/connections/catalog.ts +2 -2
  32. package/corpus/core/src/deploy/build.ts +3 -0
  33. package/corpus/core/src/index.ts +2 -0
  34. package/corpus/core/src/integrations/catalog.ts +2 -2
  35. package/corpus/core/src/server/auth.ts +1 -1
  36. package/corpus/core/src/server/credential-provider.ts +7 -3
  37. package/corpus/core/src/shared/cache-control.ts +10 -4
  38. package/corpus/core/src/usage/store.ts +82 -20
  39. package/corpus/templates/analytics/app/lib/data-sources.ts +5 -4
  40. package/corpus/templates/analytics/changelog/2026-07-10-slack-token-setup-marked-legacy.md +6 -0
  41. package/corpus/templates/analytics/server/lib/credential-keys.ts +6 -2
  42. package/corpus/templates/brain/changelog/2026-07-10-slack-backfill-token-marked-legacy.md +6 -0
  43. package/corpus/templates/brain/server/register-secrets.ts +2 -2
  44. package/corpus/templates/clips/app/components/library/library-layout.tsx +7 -1
  45. package/corpus/templates/clips/app/components/library/page-header.tsx +19 -3
  46. package/corpus/templates/clips/app/routes/_app.library._index.tsx +16 -12
  47. package/corpus/templates/clips/changelog/2026-07-10-new-recording-appears-once-when-the-library-sidebar-is-open.md +6 -0
  48. package/corpus/templates/clips/changelog/2026-07-10-slack-token-fallback-guidance.md +6 -0
  49. package/corpus/templates/clips/server/register-secrets.ts +1 -1
  50. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +0 -66
  51. package/corpus/templates/content/app/routes/_app.local-files.tsx +7 -47
  52. package/corpus/templates/content/changelog/2026-07-10-local-folders-now-wait-for-an-explicit-pull-before-content-r.md +6 -0
  53. package/corpus/templates/content/package.json +1 -1
  54. package/corpus/templates/design/actions/generate-design.ts +128 -31
  55. package/corpus/templates/design/actions/present-design-variants.ts +37 -9
  56. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +9 -3
  57. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +32 -10
  58. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +2 -2
  59. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -1
  60. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +7 -5
  61. package/corpus/templates/design/app/components/design/multi-screen/types.ts +3 -0
  62. package/corpus/templates/design/app/global.css +10 -0
  63. package/corpus/templates/design/app/hooks/use-question-flow.ts +9 -2
  64. package/corpus/templates/design/app/i18n/zh-TW.ts +1 -0
  65. package/corpus/templates/design/app/i18n-data.ts +21 -11
  66. package/corpus/templates/design/changelog/2026-07-10-editor-panels-are-easier-to-distinguish-and-design-intake-qu.md +6 -0
  67. package/corpus/templates/design/changelog/2026-07-10-interact-mode-now-stays-on-the-full-canvas-matches-edit-visu.md +6 -0
  68. package/corpus/templates/design/changelog/2026-07-10-new-web-designs-open-at-desktop-size-and-adapt-across-mobile.md +6 -0
  69. package/corpus/templates/design/changelog/2026-07-10-tweaks-now-link-to-full-documentation.md +6 -0
  70. package/corpus/templates/design/server/plugins/agent-chat.ts +2 -0
  71. package/corpus/templates/mail/app/i18n/ar-SA.ts +3 -3
  72. package/corpus/templates/mail/app/i18n/de-DE.ts +3 -3
  73. package/corpus/templates/mail/app/i18n/en-US.ts +4 -3
  74. package/corpus/templates/mail/app/i18n/es-ES.ts +3 -3
  75. package/corpus/templates/mail/app/i18n/fr-FR.ts +3 -3
  76. package/corpus/templates/mail/app/i18n/hi-IN.ts +3 -3
  77. package/corpus/templates/mail/app/i18n/ja-JP.ts +3 -3
  78. package/corpus/templates/mail/app/i18n/ko-KR.ts +3 -3
  79. package/corpus/templates/mail/app/i18n/pt-BR.ts +3 -3
  80. package/corpus/templates/mail/app/i18n/zh-CN.ts +3 -3
  81. package/corpus/templates/mail/app/i18n/zh-TW.ts +3 -3
  82. package/corpus/templates/mail/changelog/2026-07-10-slack-intake-marked-legacy.md +6 -0
  83. package/corpus/templates/mail/server/lib/env-config.ts +5 -4
  84. package/corpus/templates/plan/actions/record-recap-usage-cost.ts +49 -0
  85. package/corpus/templates/plan/actions/record-recap-usage.ts +15 -22
  86. package/corpus/templates/plan/package.json +1 -1
  87. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  88. package/dist/agent/engine/ai-sdk-engine.js +3 -0
  89. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  90. package/dist/agent/engine/registry.d.ts +1 -1
  91. package/dist/agent/engine/registry.d.ts.map +1 -1
  92. package/dist/agent/engine/registry.js +2 -0
  93. package/dist/agent/engine/registry.js.map +1 -1
  94. package/dist/agent/engine/types.d.ts +2 -0
  95. package/dist/agent/engine/types.d.ts.map +1 -1
  96. package/dist/agent/engine/types.js.map +1 -1
  97. package/dist/agent/production-agent.d.ts.map +1 -1
  98. package/dist/agent/production-agent.js +20 -0
  99. package/dist/agent/production-agent.js.map +1 -1
  100. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  101. package/dist/agent/thread-data-builder.js +36 -18
  102. package/dist/agent/thread-data-builder.js.map +1 -1
  103. package/dist/cli/code-agent-executor.d.ts +2 -0
  104. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  105. package/dist/cli/code-agent-executor.js +52 -3
  106. package/dist/cli/code-agent-executor.js.map +1 -1
  107. package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
  108. package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
  109. package/dist/cli/pr-visual-recap-workflow.js +1 -1
  110. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  111. package/dist/cli/recap.d.ts +22 -2
  112. package/dist/cli/recap.d.ts.map +1 -1
  113. package/dist/cli/recap.js +199 -22
  114. package/dist/cli/recap.js.map +1 -1
  115. package/dist/client/AssistantChat.d.ts +3 -1
  116. package/dist/client/AssistantChat.d.ts.map +1 -1
  117. package/dist/client/AssistantChat.js +200 -28
  118. package/dist/client/AssistantChat.js.map +1 -1
  119. package/dist/client/chat/tool-call-display.js +1 -1
  120. package/dist/client/chat/tool-call-display.js.map +1 -1
  121. package/dist/client/chat/use-reconnect-reader-owner.d.ts +11 -0
  122. package/dist/client/chat/use-reconnect-reader-owner.d.ts.map +1 -0
  123. package/dist/client/chat/use-reconnect-reader-owner.js +21 -0
  124. package/dist/client/chat/use-reconnect-reader-owner.js.map +1 -0
  125. package/dist/client/guided-questions.d.ts.map +1 -1
  126. package/dist/client/guided-questions.js +5 -1
  127. package/dist/client/guided-questions.js.map +1 -1
  128. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
  129. package/dist/client/integrations/IntegrationsPanel.js +5 -7
  130. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  131. package/dist/client/settings/UsageSection.d.ts.map +1 -1
  132. package/dist/client/settings/UsageSection.js +12 -3
  133. package/dist/client/settings/UsageSection.js.map +1 -1
  134. package/dist/client/sse-event-processor.d.ts.map +1 -1
  135. package/dist/client/sse-event-processor.js +67 -20
  136. package/dist/client/sse-event-processor.js.map +1 -1
  137. package/dist/collab/routes.d.ts +1 -1
  138. package/dist/collab/struct-routes.d.ts +1 -1
  139. package/dist/connections/catalog.d.ts +2 -2
  140. package/dist/connections/catalog.js +2 -2
  141. package/dist/connections/catalog.js.map +1 -1
  142. package/dist/deploy/build.d.ts.map +1 -1
  143. package/dist/deploy/build.js +3 -1
  144. package/dist/deploy/build.js.map +1 -1
  145. package/dist/index.d.ts +1 -1
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js.map +1 -1
  148. package/dist/integrations/catalog.js +2 -2
  149. package/dist/integrations/catalog.js.map +1 -1
  150. package/dist/notifications/routes.d.ts +2 -2
  151. package/dist/observability/routes.d.ts +1 -1
  152. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  153. package/dist/resources/handlers.d.ts +1 -1
  154. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  155. package/dist/server/auth.js +1 -1
  156. package/dist/server/auth.js.map +1 -1
  157. package/dist/server/credential-provider.d.ts +5 -3
  158. package/dist/server/credential-provider.d.ts.map +1 -1
  159. package/dist/server/credential-provider.js +7 -3
  160. package/dist/server/credential-provider.js.map +1 -1
  161. package/dist/shared/cache-control.d.ts +8 -6
  162. package/dist/shared/cache-control.d.ts.map +1 -1
  163. package/dist/shared/cache-control.js +8 -3
  164. package/dist/shared/cache-control.js.map +1 -1
  165. package/dist/usage/store.d.ts +21 -0
  166. package/dist/usage/store.d.ts.map +1 -1
  167. package/dist/usage/store.js +54 -19
  168. package/dist/usage/store.js.map +1 -1
  169. package/docs/content/locales/ar-SA/template-design.mdx +13 -0
  170. package/docs/content/locales/de-DE/template-design.mdx +18 -0
  171. package/docs/content/locales/es-ES/template-design.mdx +16 -0
  172. package/docs/content/locales/fr-FR/template-design.mdx +17 -0
  173. package/docs/content/locales/hi-IN/template-design.mdx +16 -0
  174. package/docs/content/locales/ja-JP/template-design.mdx +17 -0
  175. package/docs/content/locales/ko-KR/template-design.mdx +15 -0
  176. package/docs/content/locales/pt-BR/template-design.mdx +16 -0
  177. package/docs/content/locales/zh-CN/template-design.mdx +11 -0
  178. package/docs/content/locales/zh-TW/template-design.mdx +12 -0
  179. package/docs/content/pr-visual-recap.mdx +20 -12
  180. package/docs/content/template-design.mdx +16 -0
  181. package/package.json +2 -2
@@ -19,6 +19,8 @@ const DEFAULT_COMMAND_TIMEOUT_MS = 120_000;
19
19
  const MAX_TOOL_OUTPUT_CHARS = 50_000;
20
20
  const MAX_FILE_READ_CHARS = 120_000;
21
21
  const CODEX_CLI_ENGINE_NAME = "codex-cli";
22
+ const RECAP_SOURCE_TOOL_PROFILE = "recap-source";
23
+ const RECAP_SOURCE_OUTPUT_FILE = "recap-source.json";
22
24
  /**
23
25
  * Number of most-recent transcript events reconstructed as native
24
26
  * EngineMessage objects (with proper tool-call / tool-result pairing).
@@ -134,6 +136,7 @@ export async function executeCodeAgentRun(options) {
134
136
  const reasoningEffort = options.reasoningEffort ?? metadataReasoningEffort(existing);
135
137
  const cwd = existing.cwd || process.cwd();
136
138
  const permissionMode = existing.permissionMode ?? "full-auto";
139
+ const toolProfile = resolveCodeAgentToolProfile(process.env.AGENT_NATIVE_CODE_TOOL_PROFILE);
137
140
  // Holds structured metadata emitted by the coding tools side-channel.
138
141
  // Keyed by tool name; consumed when the matching tool_start / tool_done fires.
139
142
  const pendingToolMeta = new Map();
@@ -143,8 +146,10 @@ export async function executeCodeAgentRun(options) {
143
146
  }, (chunk) => {
144
147
  // Stream incremental bash output to stdout for the terminal smoother
145
148
  options.stdout?.write(chunk);
146
- });
147
- const mcpManager = await startCodeAgentMcpManager(existing.id);
149
+ }, toolProfile);
150
+ const mcpManager = toolProfile
151
+ ? null
152
+ : await startCodeAgentMcpManager(existing.id);
148
153
  if (mcpManager) {
149
154
  Object.assign(actions, mcpToolsToActionEntries(mcpManager, {
150
155
  invocationPolicy: codeAgentMcpInvocationPolicy(permissionMode),
@@ -267,6 +272,7 @@ export async function executeCodeAgentRun(options) {
267
272
  reasoningEffort,
268
273
  }));
269
274
  loopUsage = usageResult ?? null;
275
+ writeCodeAgentUsageSnapshot(cwd, loopUsage);
270
276
  // Persist cumulative token totals from this turn into the run record so
271
277
  // the UI can display per-run usage statistics.
272
278
  if (loopUsage) {
@@ -1334,7 +1340,7 @@ Current run mode: ${mode} mode (${permissionMode}).
1334
1340
  - No emojis or em dashes unless the user used them first.
1335
1341
  - AGENTS.md files take precedence over these defaults on conflict. More deeply nested AGENTS.md files take precedence over shallower ones — check for them in directories you work in.${repoSection}${skillsSection}`;
1336
1342
  }
1337
- function createLocalCodeAgentActions(cwd, permissionMode, runId, onToolMetadata, onBashOutputChunk) {
1343
+ function createLocalCodeAgentActions(cwd, permissionMode, runId, onToolMetadata, onBashOutputChunk, toolProfile) {
1338
1344
  const actions = createCodingToolRegistry({
1339
1345
  cwd,
1340
1346
  restrictToCwd: true,
@@ -1374,6 +1380,23 @@ function createLocalCodeAgentActions(cwd, permissionMode, runId, onToolMetadata,
1374
1380
  return null;
1375
1381
  },
1376
1382
  });
1383
+ if (toolProfile === RECAP_SOURCE_TOOL_PROFILE) {
1384
+ const allowedOutput = path.resolve(cwd, RECAP_SOURCE_OUTPUT_FILE);
1385
+ const writeAction = actions.write;
1386
+ return {
1387
+ read: actions.read,
1388
+ write: {
1389
+ ...writeAction,
1390
+ run: async (args, context) => {
1391
+ const requestedPath = args && typeof args.path === "string" ? args.path : "";
1392
+ if (path.resolve(cwd, requestedPath) !== allowedOutput) {
1393
+ return `Error: only ${RECAP_SOURCE_OUTPUT_FILE} may be written in the recap-source tool profile.`;
1394
+ }
1395
+ return writeAction.run(args, context);
1396
+ },
1397
+ },
1398
+ };
1399
+ }
1377
1400
  if (permissionMode === "read-only") {
1378
1401
  return {
1379
1402
  bash: actions.bash,
@@ -1382,6 +1405,14 @@ function createLocalCodeAgentActions(cwd, permissionMode, runId, onToolMetadata,
1382
1405
  }
1383
1406
  return actions;
1384
1407
  }
1408
+ function resolveCodeAgentToolProfile(value) {
1409
+ const normalized = value?.trim();
1410
+ if (!normalized)
1411
+ return undefined;
1412
+ if (normalized === RECAP_SOURCE_TOOL_PROFILE)
1413
+ return normalized;
1414
+ throw new Error(`Unsupported Agent-Native Code tool profile: ${normalized}`);
1415
+ }
1385
1416
  export function classifyCodeAgentCommandPermission(command) {
1386
1417
  const normalized = command.trim().toLowerCase();
1387
1418
  if (!normalized)
@@ -1509,6 +1540,24 @@ function getPendingApproval(runId) {
1509
1540
  : "full-auto",
1510
1541
  };
1511
1542
  }
1543
+ export function writeCodeAgentUsageSnapshot(cwd, usage) {
1544
+ const configuredPath = process.env.AGENT_NATIVE_CODE_USAGE_FILE?.trim();
1545
+ if (!configuredPath || !usage)
1546
+ return;
1547
+ const outputPath = path.isAbsolute(configuredPath)
1548
+ ? configuredPath
1549
+ : path.resolve(cwd, configuredPath);
1550
+ try {
1551
+ fs.writeFileSync(outputPath, `${JSON.stringify(usage)}\n`, {
1552
+ encoding: "utf8",
1553
+ mode: 0o600,
1554
+ });
1555
+ }
1556
+ catch {
1557
+ // Usage reporting is best-effort and must not turn a completed agent run
1558
+ // into a failed recap when the optional sidecar cannot be written.
1559
+ }
1560
+ }
1512
1561
  function accumulateTokenUsage(existing, next) {
1513
1562
  const prev = existing && typeof existing === "object" && !Array.isArray(existing)
1514
1563
  ? existing