@agent-native/core 0.12.24 → 0.12.27

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 (76) hide show
  1. package/dist/agent/production-agent.d.ts +9 -2
  2. package/dist/agent/production-agent.d.ts.map +1 -1
  3. package/dist/agent/production-agent.js +56 -37
  4. package/dist/agent/production-agent.js.map +1 -1
  5. package/dist/agent/thread-data-builder.d.ts +16 -1
  6. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  7. package/dist/agent/thread-data-builder.js +132 -0
  8. package/dist/agent/thread-data-builder.js.map +1 -1
  9. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  10. package/dist/client/AgentTaskCard.js +16 -3
  11. package/dist/client/AgentTaskCard.js.map +1 -1
  12. package/dist/client/AssistantChat.d.ts.map +1 -1
  13. package/dist/client/AssistantChat.js +22 -12
  14. package/dist/client/AssistantChat.js.map +1 -1
  15. package/dist/client/IframeEmbed.d.ts.map +1 -1
  16. package/dist/client/IframeEmbed.js +2 -2
  17. package/dist/client/IframeEmbed.js.map +1 -1
  18. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  19. package/dist/client/agent-chat-adapter.js +77 -12
  20. package/dist/client/agent-chat-adapter.js.map +1 -1
  21. package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
  22. package/dist/client/composer/ComposerPlusMenu.js +1 -1
  23. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  24. package/dist/client/composer/PromptComposer.d.ts.map +1 -1
  25. package/dist/client/composer/PromptComposer.js +8 -7
  26. package/dist/client/composer/PromptComposer.js.map +1 -1
  27. package/dist/client/composer/attachment-accept.d.ts +7 -0
  28. package/dist/client/composer/attachment-accept.d.ts.map +1 -0
  29. package/dist/client/composer/attachment-accept.js +36 -0
  30. package/dist/client/composer/attachment-accept.js.map +1 -0
  31. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  32. package/dist/client/progress/RunsTray.js +3 -1
  33. package/dist/client/progress/RunsTray.js.map +1 -1
  34. package/dist/client/sse-event-processor.d.ts.map +1 -1
  35. package/dist/client/sse-event-processor.js +12 -1
  36. package/dist/client/sse-event-processor.js.map +1 -1
  37. package/dist/db/client.d.ts +3 -0
  38. package/dist/db/client.d.ts.map +1 -1
  39. package/dist/db/client.js +70 -34
  40. package/dist/db/client.js.map +1 -1
  41. package/dist/db/create-get-db.d.ts.map +1 -1
  42. package/dist/db/create-get-db.js +30 -7
  43. package/dist/db/create-get-db.js.map +1 -1
  44. package/dist/deploy/build.js +64 -0
  45. package/dist/deploy/build.js.map +1 -1
  46. package/dist/onboarding/default-steps.d.ts.map +1 -1
  47. package/dist/onboarding/default-steps.js +8 -1
  48. package/dist/onboarding/default-steps.js.map +1 -1
  49. package/dist/scripts/db/exec.d.ts.map +1 -1
  50. package/dist/scripts/db/exec.js +3 -6
  51. package/dist/scripts/db/exec.js.map +1 -1
  52. package/dist/scripts/db/patch.d.ts.map +1 -1
  53. package/dist/scripts/db/patch.js +3 -6
  54. package/dist/scripts/db/patch.js.map +1 -1
  55. package/dist/scripts/db/query.d.ts.map +1 -1
  56. package/dist/scripts/db/query.js +3 -6
  57. package/dist/scripts/db/query.js.map +1 -1
  58. package/dist/scripts/db/schema.d.ts.map +1 -1
  59. package/dist/scripts/db/schema.js +3 -6
  60. package/dist/scripts/db/schema.js.map +1 -1
  61. package/dist/scripts/db/sqlite-client.d.ts +15 -0
  62. package/dist/scripts/db/sqlite-client.d.ts.map +1 -0
  63. package/dist/scripts/db/sqlite-client.js +51 -0
  64. package/dist/scripts/db/sqlite-client.js.map +1 -0
  65. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  66. package/dist/server/agent-chat-plugin.js +53 -2
  67. package/dist/server/agent-chat-plugin.js.map +1 -1
  68. package/dist/server/better-auth-instance.js +4 -3
  69. package/dist/server/better-auth-instance.js.map +1 -1
  70. package/dist/server/credential-provider.d.ts +2 -2
  71. package/dist/server/credential-provider.d.ts.map +1 -1
  72. package/dist/server/credential-provider.js +22 -1
  73. package/dist/server/credential-provider.js.map +1 -1
  74. package/dist/server/google-oauth.js +1 -1
  75. package/dist/server/google-oauth.js.map +1 -1
  76. package/package.json +1 -1
@@ -25,8 +25,8 @@ export declare function engineToProvider(engineName: string): string;
25
25
  /**
26
26
  * Resolve the active engine's provider and look up the user's API key for it.
27
27
  *
28
- * In multi-tenant deploys we deliberately refuse the deploy-level
29
- * deploy-level fallback for authenticated users. Without that gate any
28
+ * In shared hosted deploys we deliberately refuse the deploy-level fallback
29
+ * for authenticated users. Without that gate any
30
30
  * signed-in user who hasn't configured their own provider key would silently
31
31
  * inherit the deployment's key (uncapped billing on the owner's account,
32
32
  * prompt logging tied to the deployment owner) — exactly the prior-incident
@@ -94,6 +94,13 @@ export interface ProductionAgentOptions {
94
94
  providerOptions?: EngineMessage extends never ? never : any;
95
95
  /** Called when a run completes (for server-side thread persistence) */
96
96
  onRunComplete?: (run: ActiveRun, threadId: string | undefined) => void;
97
+ /** Called after request validation but before a run is started. */
98
+ onRunPrepared?: (details: {
99
+ runId: string;
100
+ threadId: string | undefined;
101
+ message: string;
102
+ attachments?: AgentChatAttachment[];
103
+ }) => void | Promise<void>;
97
104
  /** Optional per-app agent run chunk budget in milliseconds. Defaults to
98
105
  * AGENT_RUN_SOFT_TIMEOUT_MS when set, otherwise no framework-imposed
99
106
  * timeout. When reached, the client receives an internal auto-continuation
@@ -1 +1 @@
1
- {"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { defineEventHandler, setResponseHeader, setResponseStatus, getMethod, } from "h3";
2
- import { isLocalDatabase } from "../db/client.js";
3
- import { readDeployCredentialEnv } from "../server/credential-provider.js";
2
+ import { isDeployCredentialFallbackAllowed, readDeployCredentialEnv, } from "../server/credential-provider.js";
4
3
  import { EngineError } from "./engine/types.js";
5
4
  import { resolveEngine, registerBuiltinEngines, getStoredModelForEngine, } from "./engine/index.js";
6
5
  import { userFacingLlmCredentialError } from "./engine/credential-errors.js";
@@ -79,31 +78,20 @@ export function engineToProvider(engineName) {
79
78
  return engineName.startsWith("ai-sdk:") ? engineName.slice(7) : engineName;
80
79
  }
81
80
  /**
82
- * Returns true when this process is acting as a multi-tenant deployment —
83
- * i.e. a hosted shared-DB environment where one user's identity must NOT be
84
- * silently substituted with the deploy-level API key.
81
+ * Returns true when this process should block generic deploy-level provider
82
+ * credentials for signed-in chat requests.
85
83
  *
86
- * Mirrors the gate in `resolveBuilderCredential` (server/credential-provider.ts).
87
- *
88
- * Heuristic:
89
- * - `NODE_ENV === "production"`, AND
90
- * - The DB is not a local file (i.e. it's Neon/Postgres/Turso/D1 — any
91
- * backend that could be shared across multiple users).
92
- *
93
- * Self-hosted single-tenant deployments (a local sqlite file, or NODE_ENV
94
- * unset/development) keep the env-var fallback so the original BYO-server
95
- * UX continues to work without a per-user key.
84
+ * Self-hosted single-tenant deployments keep the env-var fallback so the
85
+ * original BYO-server UX continues to work without a per-user key.
96
86
  */
97
- function isMultiTenantDeploy() {
98
- if (process.env.NODE_ENV !== "production")
99
- return false;
100
- return !isLocalDatabase();
87
+ function shouldBlockDeployCredentialFallback() {
88
+ return !isDeployCredentialFallbackAllowed();
101
89
  }
102
90
  /**
103
91
  * Resolve the active engine's provider and look up the user's API key for it.
104
92
  *
105
- * In multi-tenant deploys we deliberately refuse the deploy-level
106
- * deploy-level fallback for authenticated users. Without that gate any
93
+ * In shared hosted deploys we deliberately refuse the deploy-level fallback
94
+ * for authenticated users. Without that gate any
107
95
  * signed-in user who hasn't configured their own provider key would silently
108
96
  * inherit the deployment's key (uncapped billing on the owner's account,
109
97
  * prompt logging tied to the deployment owner) — exactly the prior-incident
@@ -124,11 +112,12 @@ export async function getOwnerActiveApiKey(ownerEmail) {
124
112
  const userKey = await getOwnerApiKey(provider, ownerEmail);
125
113
  if (userKey)
126
114
  return userKey;
127
- if (isMultiTenantDeploy()) {
128
- // Multi-tenant: refuse the env fallback. A null user (unauthenticated /
129
- // background context with no owner) gets undefined here too — there's
130
- // no user to bill, and the call site must surface a "configure a key"
131
- // error to the requester rather than silently using the deploy key.
115
+ if (shouldBlockDeployCredentialFallback()) {
116
+ // Shared hosted default: refuse the env fallback. A null user
117
+ // (unauthenticated / background context with no owner) gets undefined
118
+ // here too — there's no user to bill, and the call site must surface a
119
+ // "configure a key" error to the requester rather than silently using
120
+ // the deploy key.
132
121
  return undefined;
133
122
  }
134
123
  const envVar = PROVIDER_TO_ENV[provider];
@@ -722,6 +711,7 @@ export async function runAgentLoop(opts) {
722
711
  }
723
712
  const readOnlyToolResultCache = seedReadOnlyToolResultsFromHistory(messages, actions);
724
713
  const duplicateReadOnlyToolCalls = new Map();
714
+ const bufferTextUntilFinalGuard = Boolean(opts.finalResponseGuard);
725
715
  let finalGuardRetries = 0;
726
716
  let iterations = 0;
727
717
  while (true) {
@@ -732,9 +722,11 @@ export async function runAgentLoop(opts) {
732
722
  iterations = 1;
733
723
  }
734
724
  let assistantContent;
725
+ let bufferedAssistantText = "";
735
726
  const toolCallErrors = new Map();
736
727
  for (let retry = 0;; retry++) {
737
728
  assistantContent = undefined;
729
+ bufferedAssistantText = "";
738
730
  toolCallErrors.clear();
739
731
  try {
740
732
  const streamOpts = {
@@ -765,7 +757,12 @@ export async function runAgentLoop(opts) {
765
757
  };
766
758
  for await (const event of eventStream) {
767
759
  if (event.type === "text-delta") {
768
- send({ type: "text", text: event.text });
760
+ if (bufferTextUntilFinalGuard) {
761
+ bufferedAssistantText += event.text;
762
+ }
763
+ else {
764
+ send({ type: "text", text: event.text });
765
+ }
769
766
  }
770
767
  else if (event.type === "thinking-delta") {
771
768
  thinkingBuffer += event.text;
@@ -860,6 +857,13 @@ export async function runAgentLoop(opts) {
860
857
  : part);
861
858
  messages.push({ role: "assistant", content: assistantContentForHistory });
862
859
  const toolCallParts = assistantContent.filter((p) => p.type === "tool-call");
860
+ const flushBufferedAssistantText = () => {
861
+ if (!bufferTextUntilFinalGuard)
862
+ return;
863
+ const text = bufferedAssistantText || collectTextParts(assistantContentForHistory);
864
+ if (text)
865
+ send({ type: "text", text });
866
+ };
863
867
  if (toolCallParts.length === 0) {
864
868
  const guard = opts.finalResponseGuard
865
869
  ? await opts.finalResponseGuard({
@@ -874,7 +878,6 @@ export async function runAgentLoop(opts) {
874
878
  if (guard) {
875
879
  const retryMessage = typeof guard === "string" ? guard : guard.retryMessage;
876
880
  const fallbackMessage = typeof guard === "string" ? guard : guard.fallbackMessage;
877
- send({ type: "clear" });
878
881
  if (finalGuardRetries < 1) {
879
882
  finalGuardRetries += 1;
880
883
  messages.push({
@@ -885,8 +888,12 @@ export async function runAgentLoop(opts) {
885
888
  }
886
889
  send({ type: "text", text: fallbackMessage ?? retryMessage });
887
890
  }
891
+ else {
892
+ flushBufferedAssistantText();
893
+ }
888
894
  break;
889
895
  }
896
+ flushBufferedAssistantText();
890
897
  let requestedActionStop = null;
891
898
  const runToolCall = async (toolCall) => {
892
899
  toolCallHistory.push({
@@ -1136,7 +1143,7 @@ export function createProductionAgentHandler(options) {
1136
1143
  setResponseStatus(event, 400);
1137
1144
  return { error: "Invalid request body" };
1138
1145
  }
1139
- const { message, history = [], structuredHistory, references = [], threadId, attachments, model: requestModel, engine: requestEngine, effort: requestEffort, } = body;
1146
+ const { message, history = [], structuredHistory, references = [], threadId, attachments, displayMessage, internalContinuation, model: requestModel, engine: requestEngine, effort: requestEffort, } = body;
1140
1147
  const requestMode = body.mode === "plan" ? "plan" : "act";
1141
1148
  const hasMessageText = typeof message === "string" && message.trim().length > 0;
1142
1149
  const hasAttachments = Array.isArray(attachments) && attachments.length > 0;
@@ -1157,11 +1164,11 @@ export function createProductionAgentHandler(options) {
1157
1164
  if (requestEngine) {
1158
1165
  const provider = engineToProvider(requestEngine);
1159
1166
  userApiKey = await getOwnerApiKey(provider, ownerEmail);
1160
- if (!userApiKey && !isMultiTenantDeploy()) {
1161
- // Single-tenant only: env fallback for the requested provider.
1162
- // Multi-tenant deploys never silently substitute the deploy-level
1163
- // key for an authenticated user (see getOwnerActiveApiKey for the
1164
- // full rationale).
1167
+ if (!userApiKey && !shouldBlockDeployCredentialFallback()) {
1168
+ // Single-tenant only: env fallback for the requested provider. Shared
1169
+ // hosted deploys never silently substitute the deploy-level key for
1170
+ // an authenticated user (see getOwnerActiveApiKey for the full
1171
+ // rationale).
1165
1172
  const envVar = PROVIDER_TO_ENV[provider];
1166
1173
  userApiKey = envVar ? readDeployCredentialEnv(envVar) : undefined;
1167
1174
  }
@@ -1170,11 +1177,12 @@ export function createProductionAgentHandler(options) {
1170
1177
  userApiKey = await getOwnerActiveApiKey(ownerEmail);
1171
1178
  }
1172
1179
  // `options.apiKey` is the value the template constructed the plugin with
1173
- // (e.g. wired from a deployment env var). On a multi-tenant deploy this
1180
+ // (e.g. wired from a deployment env var). On a shared hosted deploy this
1174
1181
  // is the same cross-tenant hazard as any deploy-level provider key:
1175
1182
  // accepting it as the final fallback would silently bill every key-less
1176
- // user to the deployment's account. Only honour it in single-tenant mode.
1177
- const effectiveApiKey = isMultiTenantDeploy()
1183
+ // user to the deployment's account. Honour it only when the generic
1184
+ // deploy fallback policy allows it.
1185
+ const effectiveApiKey = shouldBlockDeployCredentialFallback()
1178
1186
  ? userApiKey
1179
1187
  : (userApiKey ??
1180
1188
  options.apiKey ??
@@ -1453,6 +1461,17 @@ export function createProductionAgentHandler(options) {
1453
1461
  }
1454
1462
  // Start agent loop in background via run-manager
1455
1463
  const runId = generateRunId();
1464
+ if (options.onRunPrepared && !internalContinuation) {
1465
+ const messageToPersist = typeof displayMessage === "string" && displayMessage.trim().length > 0
1466
+ ? displayMessage
1467
+ : requestMessage;
1468
+ await options.onRunPrepared({
1469
+ runId,
1470
+ threadId,
1471
+ message: messageToPersist,
1472
+ attachments: Array.isArray(attachments) ? attachments : [],
1473
+ });
1474
+ }
1456
1475
  startRun(runId, threadId ?? runId, async (send, signal) => {
1457
1476
  // Notify listeners that a run has started (used by agent teams)
1458
1477
  if (options.onRunStart) {