@agent-native/core 0.7.80 → 0.7.82

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 (244) hide show
  1. package/dist/action.d.ts +8 -0
  2. package/dist/action.d.ts.map +1 -1
  3. package/dist/action.js +4 -0
  4. package/dist/action.js.map +1 -1
  5. package/dist/agent/production-agent.d.ts +12 -2
  6. package/dist/agent/production-agent.d.ts.map +1 -1
  7. package/dist/agent/production-agent.js +58 -20
  8. package/dist/agent/production-agent.js.map +1 -1
  9. package/dist/agent/run-manager.d.ts +8 -1
  10. package/dist/agent/run-manager.d.ts.map +1 -1
  11. package/dist/agent/run-manager.js +11 -12
  12. package/dist/agent/run-manager.js.map +1 -1
  13. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  14. package/dist/agent/thread-data-builder.js +13 -17
  15. package/dist/agent/thread-data-builder.js.map +1 -1
  16. package/dist/agent/types.d.ts +4 -0
  17. package/dist/agent/types.d.ts.map +1 -1
  18. package/dist/agent/types.js.map +1 -1
  19. package/dist/application-state/handlers.d.ts.map +1 -1
  20. package/dist/application-state/handlers.js +3 -8
  21. package/dist/application-state/handlers.js.map +1 -1
  22. package/dist/application-state/script-helpers.d.ts +2 -4
  23. package/dist/application-state/script-helpers.d.ts.map +1 -1
  24. package/dist/application-state/script-helpers.js +10 -47
  25. package/dist/application-state/script-helpers.js.map +1 -1
  26. package/dist/cli/workspace-dev.js +78 -15
  27. package/dist/cli/workspace-dev.js.map +1 -1
  28. package/dist/client/AgentPanel.d.ts.map +1 -1
  29. package/dist/client/AgentPanel.js +6 -2
  30. package/dist/client/AgentPanel.js.map +1 -1
  31. package/dist/client/AssistantChat.d.ts +0 -15
  32. package/dist/client/AssistantChat.d.ts.map +1 -1
  33. package/dist/client/AssistantChat.js +69 -57
  34. package/dist/client/AssistantChat.js.map +1 -1
  35. package/dist/client/ConnectBuilderCard.d.ts +7 -1
  36. package/dist/client/ConnectBuilderCard.d.ts.map +1 -1
  37. package/dist/client/ConnectBuilderCard.js +46 -5
  38. package/dist/client/ConnectBuilderCard.js.map +1 -1
  39. package/dist/client/ErrorBoundary.d.ts.map +1 -1
  40. package/dist/client/ErrorBoundary.js +20 -5
  41. package/dist/client/ErrorBoundary.js.map +1 -1
  42. package/dist/client/FeedbackButton.d.ts.map +1 -1
  43. package/dist/client/FeedbackButton.js +5 -1
  44. package/dist/client/FeedbackButton.js.map +1 -1
  45. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  46. package/dist/client/agent-chat-adapter.js +303 -169
  47. package/dist/client/agent-chat-adapter.js.map +1 -1
  48. package/dist/client/builder-frame.d.ts +25 -0
  49. package/dist/client/builder-frame.d.ts.map +1 -1
  50. package/dist/client/builder-frame.js +40 -0
  51. package/dist/client/builder-frame.js.map +1 -1
  52. package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
  53. package/dist/client/composer/ComposerPlusMenu.js +7 -2
  54. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  55. package/dist/client/composer/PastedTextChip.d.ts +9 -0
  56. package/dist/client/composer/PastedTextChip.d.ts.map +1 -0
  57. package/dist/client/composer/PastedTextChip.js +47 -0
  58. package/dist/client/composer/PastedTextChip.js.map +1 -0
  59. package/dist/client/composer/PromptComposer.d.ts +2 -2
  60. package/dist/client/composer/PromptComposer.d.ts.map +1 -1
  61. package/dist/client/composer/PromptComposer.js +32 -4
  62. package/dist/client/composer/PromptComposer.js.map +1 -1
  63. package/dist/client/composer/TiptapComposer.d.ts +11 -1
  64. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  65. package/dist/client/composer/TiptapComposer.js +49 -16
  66. package/dist/client/composer/TiptapComposer.js.map +1 -1
  67. package/dist/client/composer/VoiceButton.d.ts.map +1 -1
  68. package/dist/client/composer/VoiceButton.js +5 -1
  69. package/dist/client/composer/VoiceButton.js.map +1 -1
  70. package/dist/client/composer/pasted-text.d.ts +6 -0
  71. package/dist/client/composer/pasted-text.d.ts.map +1 -0
  72. package/dist/client/composer/pasted-text.js +49 -0
  73. package/dist/client/composer/pasted-text.js.map +1 -0
  74. package/dist/client/composer/useVoiceDictation.d.ts +1 -0
  75. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
  76. package/dist/client/composer/useVoiceDictation.js +18 -0
  77. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  78. package/dist/client/index.d.ts +0 -1
  79. package/dist/client/index.d.ts.map +1 -1
  80. package/dist/client/index.js +0 -1
  81. package/dist/client/index.js.map +1 -1
  82. package/dist/client/integrations/IntegrationCard.d.ts.map +1 -1
  83. package/dist/client/integrations/IntegrationCard.js +14 -2
  84. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  85. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
  86. package/dist/client/integrations/IntegrationsPanel.js +19 -3
  87. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  88. package/dist/client/notifications/NotificationsBell.d.ts.map +1 -1
  89. package/dist/client/notifications/NotificationsBell.js +4 -42
  90. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  91. package/dist/client/org/OrgSwitcher.d.ts +4 -6
  92. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  93. package/dist/client/org/OrgSwitcher.js +84 -74
  94. package/dist/client/org/OrgSwitcher.js.map +1 -1
  95. package/dist/client/org/TeamPage.d.ts.map +1 -1
  96. package/dist/client/org/TeamPage.js +3 -154
  97. package/dist/client/org/TeamPage.js.map +1 -1
  98. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  99. package/dist/client/resources/ResourcesPanel.js +13 -35
  100. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  101. package/dist/client/settings/SettingsPanel.js +1 -1
  102. package/dist/client/settings/SettingsPanel.js.map +1 -1
  103. package/dist/client/settings/useBuilderStatus.d.ts +6 -0
  104. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  105. package/dist/client/settings/useBuilderStatus.js +3 -0
  106. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  107. package/dist/client/sse-event-processor.d.ts +15 -1
  108. package/dist/client/sse-event-processor.d.ts.map +1 -1
  109. package/dist/client/sse-event-processor.js +58 -54
  110. package/dist/client/sse-event-processor.js.map +1 -1
  111. package/dist/client/tools/ToolEditor.d.ts.map +1 -1
  112. package/dist/client/tools/ToolEditor.js +34 -4
  113. package/dist/client/tools/ToolEditor.js.map +1 -1
  114. package/dist/client/tools/ToolViewer.d.ts.map +1 -1
  115. package/dist/client/tools/ToolViewer.js +20 -1
  116. package/dist/client/tools/ToolViewer.js.map +1 -1
  117. package/dist/client/tools/ToolsListPage.d.ts.map +1 -1
  118. package/dist/client/tools/ToolsListPage.js +2 -1
  119. package/dist/client/tools/ToolsListPage.js.map +1 -1
  120. package/dist/client/transcription/BuilderTranscriptionCta.js +1 -1
  121. package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -1
  122. package/dist/client/use-chat-threads.d.ts.map +1 -1
  123. package/dist/client/use-chat-threads.js +7 -2
  124. package/dist/client/use-chat-threads.js.map +1 -1
  125. package/dist/collab/client.d.ts.map +1 -1
  126. package/dist/collab/client.js +26 -7
  127. package/dist/collab/client.js.map +1 -1
  128. package/dist/integrations/a2a-continuations-store.d.ts.map +1 -1
  129. package/dist/integrations/a2a-continuations-store.js +20 -19
  130. package/dist/integrations/a2a-continuations-store.js.map +1 -1
  131. package/dist/jobs/scheduler.js +0 -4
  132. package/dist/jobs/scheduler.js.map +1 -1
  133. package/dist/oauth-tokens/store.d.ts +0 -4
  134. package/dist/oauth-tokens/store.d.ts.map +1 -1
  135. package/dist/oauth-tokens/store.js +3 -24
  136. package/dist/oauth-tokens/store.js.map +1 -1
  137. package/dist/observability/routes.d.ts.map +1 -1
  138. package/dist/observability/routes.js +1 -9
  139. package/dist/observability/routes.js.map +1 -1
  140. package/dist/onboarding/default-steps.js +1 -1
  141. package/dist/onboarding/default-steps.js.map +1 -1
  142. package/dist/onboarding/plugin.d.ts.map +1 -1
  143. package/dist/onboarding/plugin.js +1 -8
  144. package/dist/onboarding/plugin.js.map +1 -1
  145. package/dist/org/accept-pending.d.ts.map +1 -1
  146. package/dist/org/accept-pending.js +1 -2
  147. package/dist/org/accept-pending.js.map +1 -1
  148. package/dist/org/context.d.ts +0 -2
  149. package/dist/org/context.d.ts.map +1 -1
  150. package/dist/org/context.js +0 -5
  151. package/dist/org/context.js.map +1 -1
  152. package/dist/resources/script-helpers.d.ts +3 -4
  153. package/dist/resources/script-helpers.d.ts.map +1 -1
  154. package/dist/resources/script-helpers.js +8 -15
  155. package/dist/resources/script-helpers.js.map +1 -1
  156. package/dist/scripts/chat/search-chats.d.ts.map +1 -1
  157. package/dist/scripts/chat/search-chats.js +4 -4
  158. package/dist/scripts/chat/search-chats.js.map +1 -1
  159. package/dist/scripts/manage-agent-loop-settings.js +2 -2
  160. package/dist/scripts/manage-agent-loop-settings.js.map +1 -1
  161. package/dist/scripts/resources/delete-memory.d.ts.map +1 -1
  162. package/dist/scripts/resources/delete-memory.js +4 -2
  163. package/dist/scripts/resources/delete-memory.js.map +1 -1
  164. package/dist/scripts/resources/delete.d.ts.map +1 -1
  165. package/dist/scripts/resources/delete.js +11 -4
  166. package/dist/scripts/resources/delete.js.map +1 -1
  167. package/dist/scripts/resources/list.d.ts.map +1 -1
  168. package/dist/scripts/resources/list.js +5 -3
  169. package/dist/scripts/resources/list.js.map +1 -1
  170. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
  171. package/dist/scripts/resources/migrate-learnings.js +5 -2
  172. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  173. package/dist/scripts/resources/read.d.ts.map +1 -1
  174. package/dist/scripts/resources/read.js +4 -2
  175. package/dist/scripts/resources/read.js.map +1 -1
  176. package/dist/scripts/resources/save-memory.d.ts.map +1 -1
  177. package/dist/scripts/resources/save-memory.js +4 -2
  178. package/dist/scripts/resources/save-memory.js.map +1 -1
  179. package/dist/scripts/resources/write.d.ts.map +1 -1
  180. package/dist/scripts/resources/write.js +11 -4
  181. package/dist/scripts/resources/write.js.map +1 -1
  182. package/dist/secrets/onboarding.d.ts.map +1 -1
  183. package/dist/secrets/onboarding.js +1 -9
  184. package/dist/secrets/onboarding.js.map +1 -1
  185. package/dist/secrets/routes.d.ts.map +1 -1
  186. package/dist/secrets/routes.js +2 -7
  187. package/dist/secrets/routes.js.map +1 -1
  188. package/dist/server/action-discovery.d.ts.map +1 -1
  189. package/dist/server/action-discovery.js +4 -0
  190. package/dist/server/action-discovery.js.map +1 -1
  191. package/dist/server/agent-chat-plugin.d.ts +5 -0
  192. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  193. package/dist/server/agent-chat-plugin.js +81 -20
  194. package/dist/server/agent-chat-plugin.js.map +1 -1
  195. package/dist/server/agent-discovery.d.ts.map +1 -1
  196. package/dist/server/agent-discovery.js +5 -7
  197. package/dist/server/agent-discovery.js.map +1 -1
  198. package/dist/server/auth.d.ts +16 -21
  199. package/dist/server/auth.d.ts.map +1 -1
  200. package/dist/server/auth.js +45 -315
  201. package/dist/server/auth.js.map +1 -1
  202. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  203. package/dist/server/core-routes-plugin.js +22 -13
  204. package/dist/server/core-routes-plugin.js.map +1 -1
  205. package/dist/server/credential-provider.d.ts.map +1 -1
  206. package/dist/server/credential-provider.js +1 -2
  207. package/dist/server/credential-provider.js.map +1 -1
  208. package/dist/server/google-oauth.d.ts +14 -2
  209. package/dist/server/google-oauth.d.ts.map +1 -1
  210. package/dist/server/google-oauth.js +17 -7
  211. package/dist/server/google-oauth.js.map +1 -1
  212. package/dist/server/index.d.ts +1 -1
  213. package/dist/server/index.d.ts.map +1 -1
  214. package/dist/server/index.js +1 -1
  215. package/dist/server/index.js.map +1 -1
  216. package/dist/server/oauth-helpers.d.ts +2 -4
  217. package/dist/server/oauth-helpers.d.ts.map +1 -1
  218. package/dist/server/oauth-helpers.js +2 -4
  219. package/dist/server/oauth-helpers.js.map +1 -1
  220. package/dist/server/transcribe-voice.d.ts.map +1 -1
  221. package/dist/server/transcribe-voice.js +2 -4
  222. package/dist/server/transcribe-voice.js.map +1 -1
  223. package/dist/triggers/dispatcher.d.ts.map +1 -1
  224. package/dist/triggers/dispatcher.js +0 -3
  225. package/dist/triggers/dispatcher.js.map +1 -1
  226. package/dist/vite/client.d.ts.map +1 -1
  227. package/dist/vite/client.js +6 -0
  228. package/dist/vite/client.js.map +1 -1
  229. package/docs/content/actions.md +1 -0
  230. package/docs/content/authentication.md +3 -20
  231. package/docs/content/creating-templates.md +1 -1
  232. package/docs/content/deployment.md +0 -1
  233. package/docs/content/security.md +0 -1
  234. package/docs/content/template-content.md +1 -1
  235. package/docs/content/template-starter.md +1 -1
  236. package/package.json +1 -1
  237. package/dist/client/dev-mode.d.ts +0 -14
  238. package/dist/client/dev-mode.d.ts.map +0 -1
  239. package/dist/client/dev-mode.js +0 -14
  240. package/dist/client/dev-mode.js.map +0 -1
  241. package/dist/server/local-migration.d.ts +0 -41
  242. package/dist/server/local-migration.d.ts.map +0 -1
  243. package/dist/server/local-migration.js +0 -235
  244. package/dist/server/local-migration.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { runWithRequestContext, getRequestOrgId, getRequestUserEmail, getRequestRunContext, ensureRequestRunContext, } from "./request-context.js";
2
2
  import { getSetting, putSetting } from "../settings/store.js";
3
3
  import { getH3App, markDefaultPluginProvided, trackPluginInit, } from "./framework-request-handler.js";
4
- import { createProductionAgentHandler, runAgentLoop, actionsToEngineTools, getActiveRunForThreadAsync, abortRun, subscribeToRun, } from "../agent/production-agent.js";
4
+ import { createProductionAgentHandler, runAgentLoop, actionsToEngineTools, getActiveRunForThreadAsync, abortRun, subscribeToRun, appendAgentLoopContinuation, } from "../agent/production-agent.js";
5
+ import { resolveRunSoftTimeoutMs } from "../agent/run-manager.js";
5
6
  import { resolveEngine, createAnthropicEngine } from "../agent/engine/index.js";
6
7
  import { DEFAULT_MODEL } from "../agent/default-model.js";
7
8
  import { attachToolSearch } from "../agent/tool-search.js";
@@ -10,13 +11,13 @@ import { discoverAgents } from "./agent-discovery.js";
10
11
  import { loadSchemaPromptBlock } from "./schema-prompt.js";
11
12
  import { buildAssistantMessage, extractThreadMeta, } from "../agent/thread-data-builder.js";
12
13
  import { defineEventHandler, setResponseStatus, setResponseHeader, getMethod, getQuery, getHeader, } from "h3";
13
- import { getSession, DEV_MODE_USER_EMAIL } from "./auth.js";
14
+ import { getSession } from "./auth.js";
14
15
  import { getOrigin } from "./google-oauth.js";
15
16
  import { createThread, forkThread, getThread, listThreads, searchThreads, updateThreadData, withThreadDataLock, deleteThread, setThreadQueuedMessages, } from "../chat-threads/store.js";
16
- import { resourceListAccessible, resourceList, resourceGet, resourceGetByPath, ensurePersonalDefaults, SHARED_OWNER, } from "../resources/store.js";
17
+ import { resourceList, resourceGet, resourceGetByPath, ensurePersonalDefaults, SHARED_OWNER, } from "../resources/store.js";
17
18
  import nodePath from "node:path";
18
19
  import { readBody } from "./h3-helpers.js";
19
- import { getBuilderBrowserConnectUrl } from "./builder-browser.js";
20
+ import { getBuilderBrowserConnectUrl, isBuilderBranchingEnabled, } from "./builder-browser.js";
20
21
  import { captureCliOutput } from "./cli-capture.js";
21
22
  import { withConfiguredAppBasePath } from "./app-base-path.js";
22
23
  import { appendA2AArtifactLinks, buildA2ARecoverableArtifactMessage, } from "../a2a/artifact-response.js";
@@ -72,6 +73,69 @@ function resolveArtifactBaseUrl(event) {
72
73
  catch { }
73
74
  return undefined;
74
75
  }
76
+ async function runAgentLoopDirectWithSoftTimeout(opts, softTimeoutMs) {
77
+ const timeoutMs = resolveRunSoftTimeoutMs(softTimeoutMs);
78
+ if (timeoutMs <= 0)
79
+ return runAgentLoop(opts);
80
+ const upstreamSignal = opts.signal;
81
+ const usage = {
82
+ inputTokens: 0,
83
+ outputTokens: 0,
84
+ cacheReadTokens: 0,
85
+ cacheWriteTokens: 0,
86
+ model: opts.model,
87
+ };
88
+ const addUsage = (next) => {
89
+ usage.inputTokens += next.inputTokens;
90
+ usage.outputTokens += next.outputTokens;
91
+ usage.cacheReadTokens += next.cacheReadTokens;
92
+ usage.cacheWriteTokens += next.cacheWriteTokens;
93
+ usage.model = next.model;
94
+ };
95
+ while (!upstreamSignal.aborted) {
96
+ const controller = new AbortController();
97
+ const abortFromUpstream = () => controller.abort();
98
+ if (upstreamSignal.aborted) {
99
+ controller.abort();
100
+ }
101
+ else {
102
+ upstreamSignal.addEventListener("abort", abortFromUpstream, {
103
+ once: true,
104
+ });
105
+ }
106
+ let softTimedOut = false;
107
+ const timer = setTimeout(() => {
108
+ if (controller.signal.aborted)
109
+ return;
110
+ softTimedOut = true;
111
+ controller.abort();
112
+ }, timeoutMs);
113
+ try {
114
+ const nextUsage = await runAgentLoop({
115
+ ...opts,
116
+ signal: controller.signal,
117
+ });
118
+ addUsage(nextUsage);
119
+ if (softTimedOut && !upstreamSignal.aborted) {
120
+ appendAgentLoopContinuation(opts.messages, "run_timeout");
121
+ continue;
122
+ }
123
+ return usage;
124
+ }
125
+ catch (err) {
126
+ if (softTimedOut && !upstreamSignal.aborted) {
127
+ appendAgentLoopContinuation(opts.messages, "run_timeout");
128
+ continue;
129
+ }
130
+ throw err;
131
+ }
132
+ finally {
133
+ clearTimeout(timer);
134
+ upstreamSignal.removeEventListener("abort", abortFromUpstream);
135
+ }
136
+ }
137
+ return usage;
138
+ }
75
139
  export function assembleA2AFinalResponse(events, toolResults, options = {}) {
76
140
  const responseText = collectFinalResponseTextFromAgentEvents(events);
77
141
  const finalText = appendA2AArtifactLinks(responseText, [...toolResults], {
@@ -723,6 +787,7 @@ function createBuilderBrowserTool(deps) {
723
787
  return JSON.stringify({
724
788
  kind: "connect-builder-card",
725
789
  configured,
790
+ builderEnabled: isBuilderBranchingEnabled(),
726
791
  connectUrl: getBuilderBrowserConnectUrl(deps.getOrigin()),
727
792
  orgName: creds.orgName || null,
728
793
  prompt,
@@ -2281,7 +2346,7 @@ export function createAgentChatPlugin(options) {
2281
2346
  let lastRecoverableArtifactText = "";
2282
2347
  const controller = new AbortController();
2283
2348
  console.log(`[A2A] Starting agent loop: ${a2aTools.length} tools, prompt ${systemPrompt.length} chars`);
2284
- await runAgentLoop({
2349
+ await runAgentLoopDirectWithSoftTimeout({
2285
2350
  engine: a2aEngine,
2286
2351
  model,
2287
2352
  systemPrompt,
@@ -2326,7 +2391,7 @@ export function createAgentChatPlugin(options) {
2326
2391
  }
2327
2392
  },
2328
2393
  signal: controller.signal,
2329
- });
2394
+ }, options?.runSoftTimeoutMs);
2330
2395
  const { responseText, finalText } = assembleA2AFinalResponse(a2aEvents, a2aToolResults, { event: context.event });
2331
2396
  console.log(`[A2A] Loop complete. Text: ${responseText.slice(0, 100)}...`);
2332
2397
  // Yield the final accumulated text
@@ -2415,10 +2480,10 @@ export function createAgentChatPlugin(options) {
2415
2480
  ...toolActions,
2416
2481
  });
2417
2482
  const mcpTools = actionsToEngineTools(mcpActions);
2418
- const resources = await loadResourcesForPrompt(DEV_MODE_USER_EMAIL, lazyContext);
2483
+ const resources = await loadResourcesForPrompt(SHARED_OWNER, lazyContext);
2419
2484
  const schemaBlock = lazyContext
2420
2485
  ? ""
2421
- : await buildSchemaBlock(DEV_MODE_USER_EMAIL, devActiveMcp);
2486
+ : await buildSchemaBlock(SHARED_OWNER, devActiveMcp);
2422
2487
  // Build the MCP handler's own prompt — always use the shell-based
2423
2488
  // dev prompt in dev mode because mcpActions routes template actions
2424
2489
  // through shell (`devScriptsForA2A`), regardless of `nativeActionsInDev`.
@@ -2442,7 +2507,7 @@ export function createAgentChatPlugin(options) {
2442
2507
  schemaBlock;
2443
2508
  let accumulatedText = "";
2444
2509
  const controller = new AbortController();
2445
- await runAgentLoop({
2510
+ await runAgentLoopDirectWithSoftTimeout({
2446
2511
  engine: mcpEngine,
2447
2512
  model,
2448
2513
  systemPrompt,
@@ -2456,7 +2521,7 @@ export function createAgentChatPlugin(options) {
2456
2521
  accumulatedText += event.text;
2457
2522
  },
2458
2523
  signal: controller.signal,
2459
- });
2524
+ }, options?.runSoftTimeoutMs);
2460
2525
  return accumulatedText || "(no response)";
2461
2526
  },
2462
2527
  });
@@ -2818,6 +2883,7 @@ export function createAgentChatPlugin(options) {
2818
2883
  },
2819
2884
  model: options?.model ?? DEFAULT_MODEL,
2820
2885
  apiKey: options?.apiKey,
2886
+ runSoftTimeoutMs: options?.runSoftTimeoutMs,
2821
2887
  skipFilesContext: leanPrompt,
2822
2888
  onEngineResolved: (engine, model) => {
2823
2889
  const runCtx = ensureRequestRunContext();
@@ -2899,6 +2965,7 @@ export function createAgentChatPlugin(options) {
2899
2965
  },
2900
2966
  model: options?.model,
2901
2967
  apiKey: options?.apiKey,
2968
+ runSoftTimeoutMs: options?.runSoftTimeoutMs,
2902
2969
  skipFilesContext: leanPrompt,
2903
2970
  onEngineResolved: (engine, model) => {
2904
2971
  const runCtx = ensureRequestRunContext();
@@ -2978,7 +3045,7 @@ export function createAgentChatPlugin(options) {
2978
3045
  }
2979
3046
  const trimmedKey = key.trim();
2980
3047
  const ownerEmail = await getOwnerFromEvent(event);
2981
- if (!ownerEmail || ownerEmail === DEV_MODE_USER_EMAIL) {
3048
+ if (!ownerEmail) {
2982
3049
  setResponseStatus(event, 401);
2983
3050
  return { error: "Authentication required" };
2984
3051
  }
@@ -3042,9 +3109,7 @@ export function createAgentChatPlugin(options) {
3042
3109
  }
3043
3110
  // Query resources
3044
3111
  try {
3045
- const resources = currentDevMode
3046
- ? await resourceListAccessible(DEV_MODE_USER_EMAIL)
3047
- : await resourceList(SHARED_OWNER);
3112
+ const resources = await resourceList(SHARED_OWNER);
3048
3113
  for (const r of resources) {
3049
3114
  if (!seen.has(r.path)) {
3050
3115
  seen.add(r.path);
@@ -3127,9 +3192,7 @@ export function createAgentChatPlugin(options) {
3127
3192
  }
3128
3193
  // Query resources with skills/ prefix
3129
3194
  try {
3130
- const resourceSkills = currentDevMode
3131
- ? await resourceListAccessible(DEV_MODE_USER_EMAIL, "skills/")
3132
- : await resourceList(SHARED_OWNER, "skills/");
3195
+ const resourceSkills = await resourceList(SHARED_OWNER, "skills/");
3133
3196
  for (const r of resourceSkills) {
3134
3197
  // Try to get content to parse frontmatter
3135
3198
  let skillName = r.path.split("/").pop()?.replace(/\.md$/, "") || r.path;
@@ -3238,9 +3301,7 @@ export function createAgentChatPlugin(options) {
3238
3301
  // 1. Resources from SQL (fast — flush first)
3239
3302
  sources.push((async () => {
3240
3303
  try {
3241
- const resources = currentDevMode
3242
- ? await resourceListAccessible(DEV_MODE_USER_EMAIL)
3243
- : await resourceList(SHARED_OWNER);
3304
+ const resources = await resourceList(SHARED_OWNER);
3244
3305
  flush(resources.map((r) => {
3245
3306
  const isShared = r.owner === SHARED_OWNER;
3246
3307
  return {