@agent-native/core 0.12.27 → 0.12.30

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 (69) hide show
  1. package/dist/agent/engine/builder-engine.d.ts +1 -1
  2. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  3. package/dist/agent/index.d.ts +1 -1
  4. package/dist/agent/index.d.ts.map +1 -1
  5. package/dist/agent/index.js.map +1 -1
  6. package/dist/agent/model-config.d.ts +3 -3
  7. package/dist/agent/model-config.d.ts.map +1 -1
  8. package/dist/agent/model-config.js +5 -4
  9. package/dist/agent/model-config.js.map +1 -1
  10. package/dist/agent/production-agent.d.ts +25 -1
  11. package/dist/agent/production-agent.d.ts.map +1 -1
  12. package/dist/agent/production-agent.js +47 -7
  13. package/dist/agent/production-agent.js.map +1 -1
  14. package/dist/application-state/emitter.d.ts +3 -2
  15. package/dist/application-state/emitter.d.ts.map +1 -1
  16. package/dist/application-state/emitter.js +4 -2
  17. package/dist/application-state/emitter.js.map +1 -1
  18. package/dist/application-state/store.js +3 -3
  19. package/dist/application-state/store.js.map +1 -1
  20. package/dist/client/AgentPanel.d.ts.map +1 -1
  21. package/dist/client/AgentPanel.js +0 -1
  22. package/dist/client/AgentPanel.js.map +1 -1
  23. package/dist/client/AssistantChat.d.ts.map +1 -1
  24. package/dist/client/AssistantChat.js +45 -7
  25. package/dist/client/AssistantChat.js.map +1 -1
  26. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  27. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  28. package/dist/client/agent-chat-adapter.js +12 -5
  29. package/dist/client/agent-chat-adapter.js.map +1 -1
  30. package/dist/client/use-chat-models.js.map +1 -1
  31. package/dist/client/use-db-sync.d.ts +4 -0
  32. package/dist/client/use-db-sync.d.ts.map +1 -1
  33. package/dist/client/use-db-sync.js +38 -13
  34. package/dist/client/use-db-sync.js.map +1 -1
  35. package/dist/client/use-pausing-interval.d.ts.map +1 -1
  36. package/dist/client/use-pausing-interval.js +5 -2
  37. package/dist/client/use-pausing-interval.js.map +1 -1
  38. package/dist/collab/client.d.ts +2 -0
  39. package/dist/collab/client.d.ts.map +1 -1
  40. package/dist/collab/client.js +37 -4
  41. package/dist/collab/client.js.map +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/server/agent-chat-plugin.d.ts +25 -1
  46. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  47. package/dist/server/agent-chat-plugin.js +3 -0
  48. package/dist/server/agent-chat-plugin.js.map +1 -1
  49. package/dist/server/auth.d.ts.map +1 -1
  50. package/dist/server/auth.js +83 -2
  51. package/dist/server/auth.js.map +1 -1
  52. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  53. package/dist/server/google-auth-plugin.js +50 -3
  54. package/dist/server/google-auth-plugin.js.map +1 -1
  55. package/dist/server/google-oauth.d.ts.map +1 -1
  56. package/dist/server/google-oauth.js +10 -4
  57. package/dist/server/google-oauth.js.map +1 -1
  58. package/dist/server/index.d.ts +1 -1
  59. package/dist/server/index.d.ts.map +1 -1
  60. package/dist/server/index.js.map +1 -1
  61. package/dist/server/onboarding-html.d.ts.map +1 -1
  62. package/dist/server/onboarding-html.js +50 -3
  63. package/dist/server/onboarding-html.js.map +1 -1
  64. package/dist/server/poll.d.ts.map +1 -1
  65. package/dist/server/poll.js +15 -0
  66. package/dist/server/poll.js.map +1 -1
  67. package/dist/templates/default/app/hooks/use-navigation-state.ts +0 -1
  68. package/package.json +1 -1
  69. package/src/templates/default/app/hooks/use-navigation-state.ts +0 -1
@@ -15,6 +15,6 @@
15
15
  import type { AgentEngine, EngineCapabilities } from "./types.js";
16
16
  export declare const BUILDER_CAPABILITIES: EngineCapabilities;
17
17
  export declare const BUILDER_SUPPORTED_MODELS: readonly ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gpt-5-1-codex-mini", "gemini-3-1-pro", "gemini-3-0-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder", "kimi-k2-5", "deepseek-v3-1", "z-ai-glm-4-5", "z-ai-glm-5-1"];
18
- export declare const BUILDER_DEFAULT_MODEL: string;
18
+ export declare const BUILDER_DEFAULT_MODEL: "claude-sonnet-4-6";
19
19
  export declare function createBuilderEngine(_config?: Record<string, unknown>): AgentEngine;
20
20
  //# sourceMappingURL=builder-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/builder-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAqBpB,eAAO,MAAM,oBAAoB,EAAE,kBAUlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,8RAAuC,CAAC;AAM7E,eAAO,MAAM,qBAAqB,QAAoC,CAAC;AA2iBvE,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
1
+ {"version":3,"file":"builder-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/builder-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAqBpB,eAAO,MAAM,oBAAoB,EAAE,kBAUlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,8RAAuC,CAAC;AAM7E,eAAO,MAAM,qBAAqB,qBAAoC,CAAC;AA2iBvE,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
@@ -1,4 +1,4 @@
1
1
  export { createProductionAgentHandler, type ActionEntry, type ScriptEntry, type ProductionAgentOptions, type AgentLoopFinalResponseGuard, type AgentLoopFinalResponseGuardContext, type AgentLoopFinalResponseGuardResult, type AgentLoopToolCallSummary, type AgentLoopToolResultSummary, } from "./production-agent.js";
2
- export { type ActionTool, type ScriptTool, type AgentMessage, type AgentChatRequest, type AgentChatEvent, type AgentChatReference, type MentionProvider, type MentionProviderItem, } from "./types.js";
2
+ export { type ActionTool, type ScriptTool, type AgentMessage, type AgentChatRequest, type AgentChatEvent, type AgentChatAttachment, type AgentChatReference, type MentionProvider, type MentionProviderItem, } from "./types.js";
3
3
  export { DEFAULT_MODEL } from "./default-model.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAS7B,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["export {\n createProductionAgentHandler,\n type ActionEntry,\n type ScriptEntry,\n type ProductionAgentOptions,\n type AgentLoopFinalResponseGuard,\n type AgentLoopFinalResponseGuardContext,\n type AgentLoopFinalResponseGuardResult,\n type AgentLoopToolCallSummary,\n type AgentLoopToolResultSummary,\n} from \"./production-agent.js\";\nexport {\n type ActionTool,\n type ScriptTool,\n type AgentMessage,\n type AgentChatRequest,\n type AgentChatEvent,\n type AgentChatReference,\n type MentionProvider,\n type MentionProviderItem,\n} from \"./types.js\";\nexport { DEFAULT_MODEL } from \"./default-model.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAS7B,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["export {\n createProductionAgentHandler,\n type ActionEntry,\n type ScriptEntry,\n type ProductionAgentOptions,\n type AgentLoopFinalResponseGuard,\n type AgentLoopFinalResponseGuardContext,\n type AgentLoopFinalResponseGuardResult,\n type AgentLoopToolCallSummary,\n type AgentLoopToolResultSummary,\n} from \"./production-agent.js\";\nexport {\n type ActionTool,\n type ScriptTool,\n type AgentMessage,\n type AgentChatRequest,\n type AgentChatEvent,\n type AgentChatAttachment,\n type AgentChatReference,\n type MentionProvider,\n type MentionProviderItem,\n} from \"./types.js\";\nexport { DEFAULT_MODEL } from \"./default-model.js\";\n"]}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export declare const AGENT_MODEL_CONFIG: {
10
10
  readonly builder: {
11
- readonly defaultModel: string;
11
+ readonly defaultModel: "claude-sonnet-4-6";
12
12
  readonly supportedModels: readonly ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gpt-5-1-codex-mini", "gemini-3-1-pro", "gemini-3-0-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder", "kimi-k2-5", "deepseek-v3-1", "z-ai-glm-4-5", "z-ai-glm-5-1"];
13
13
  };
14
14
  readonly anthropic: {
@@ -51,7 +51,7 @@ export declare const AGENT_MODEL_CONFIG: {
51
51
  };
52
52
  };
53
53
  export declare const BUILDER_MODEL_CONFIG: {
54
- readonly defaultModel: string;
54
+ readonly defaultModel: "claude-sonnet-4-6";
55
55
  readonly supportedModels: readonly ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gpt-5-1-codex-mini", "gemini-3-1-pro", "gemini-3-0-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder", "kimi-k2-5", "deepseek-v3-1", "z-ai-glm-4-5", "z-ai-glm-5-1"];
56
56
  };
57
57
  export declare const ANTHROPIC_MODEL_CONFIG: {
@@ -93,7 +93,7 @@ export declare const AI_SDK_MODEL_CONFIG: {
93
93
  };
94
94
  };
95
95
  export type AISDKProvider = keyof typeof AI_SDK_MODEL_CONFIG;
96
- export declare const DEFAULT_MODEL: string;
96
+ export declare const DEFAULT_MODEL: "claude-sonnet-4-6";
97
97
  export declare const DEFAULT_OPENAI_MODEL: "gpt-5.5";
98
98
  export declare const DEFAULT_ANTHROPIC_MODEL: "claude-sonnet-4-6";
99
99
  //# sourceMappingURL=model-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFrB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;CAA6B,CAAC;AAC/D,eAAO,MAAM,sBAAsB;;;CAA+B,CAAC;AACnE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAE7D,eAAO,MAAM,aAAa,QAAoC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,WAA0C,CAAC;AAC5E,eAAO,MAAM,uBAAuB,qBAAsC,CAAC"}
1
+ {"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFrB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;CAA6B,CAAC;AAC/D,eAAO,MAAM,sBAAsB;;;CAA+B,CAAC;AACnE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAE7D,eAAO,MAAM,aAAa,qBAAoC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,WAA0C,CAAC;AAC5E,eAAO,MAAM,uBAAuB,qBAAsC,CAAC"}
@@ -6,7 +6,6 @@
6
6
  * derived from that provider-native OpenAI ID so the usual default bump stays
7
7
  * in this one file.
8
8
  */
9
- const FRAMEWORK_DEFAULT_OPENAI_MODEL = "gpt-5.5";
10
9
  const ANTHROPIC_DEFAULT_MODEL_ID = "claude-sonnet-4-6";
11
10
  function builderGatewayModelId(model) {
12
11
  return model.replace(/\./g, "-");
@@ -14,16 +13,18 @@ function builderGatewayModelId(model) {
14
13
  function openRouterModelId(provider, model) {
15
14
  return `${provider}/${model}`;
16
15
  }
17
- const FRAMEWORK_DEFAULT_BUILDER_MODEL = builderGatewayModelId(FRAMEWORK_DEFAULT_OPENAI_MODEL);
16
+ const FRAMEWORK_DEFAULT_OPENAI_MODEL = "gpt-5.5";
17
+ const FRAMEWORK_DEFAULT_BUILDER_MODEL = ANTHROPIC_DEFAULT_MODEL_ID;
18
+ const FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL = builderGatewayModelId(FRAMEWORK_DEFAULT_OPENAI_MODEL);
18
19
  const FRAMEWORK_DEFAULT_OPENROUTER_MODEL = openRouterModelId("openai", FRAMEWORK_DEFAULT_OPENAI_MODEL);
19
20
  export const AGENT_MODEL_CONFIG = {
20
21
  builder: {
21
22
  defaultModel: FRAMEWORK_DEFAULT_BUILDER_MODEL,
22
23
  supportedModels: [
23
24
  "claude-opus-4-7",
24
- "claude-sonnet-4-6",
25
- "claude-haiku-4-5",
26
25
  FRAMEWORK_DEFAULT_BUILDER_MODEL,
26
+ "claude-haiku-4-5",
27
+ FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL,
27
28
  "gpt-5-4",
28
29
  "gpt-5-4-mini",
29
30
  "gpt-5-1-codex-mini",
@@ -1 +1 @@
1
- {"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,8BAA8B,GAAG,SAAS,CAAC;AACjD,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AAEvD,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAAa;IACxD,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,+BAA+B,GAAG,qBAAqB,CAC3D,8BAA8B,CAC/B,CAAC;AACF,MAAM,kCAAkC,GAAG,iBAAiB,CAC1D,QAAQ,EACR,8BAA8B,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE;QACP,YAAY,EAAE,+BAA+B;QAC7C,eAAe,EAAE;YACf,iBAAiB;YACjB,mBAAmB;YACnB,kBAAkB;YAClB,+BAA+B;YAC/B,SAAS;YACT,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,gBAAgB;YAChB,aAAa;YACb,WAAW;YACX,eAAe;YACf,cAAc;YACd,cAAc;SACf;KACF;IACD,SAAS,EAAE;QACT,YAAY,EAAE,0BAA0B;QACxC,eAAe,EAAE;YACf,iBAAiB;YACjB,0BAA0B;YAC1B,2BAA2B;SAC5B;KACF;IACD,KAAK,EAAE;QACL,SAAS,EAAE;YACT,YAAY,EAAE,0BAA0B;YACxC,eAAe,EAAE;gBACf,iBAAiB;gBACjB,0BAA0B;gBAC1B,2BAA2B;aAC5B;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,8BAA8B;YAC5C,eAAe,EAAE;gBACf,8BAA8B;gBAC9B,SAAS;gBACT,cAAc;aACf;SACF;QACD,UAAU,EAAE;YACV,YAAY,EAAE,kCAAkC;YAChD,eAAe,EAAE;gBACf,2BAA2B;gBAC3B,6BAA6B;gBAC7B,kCAAkC;gBAClC,gBAAgB;gBAChB,yBAAyB;aAC1B;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,wBAAwB;YACtC,eAAe,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;SACtE;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,yBAAyB;YACvC,eAAe,EAAE;gBACf,yBAAyB;gBACzB,yBAAyB;gBACzB,oBAAoB;aACrB;SACF;QACD,OAAO,EAAE;YACP,YAAY,EAAE,sBAAsB;YACpC,eAAe,EAAE;gBACf,sBAAsB;gBACtB,uBAAuB;gBACvB,sBAAsB;aACvB;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,gBAAgB;YAC9B,eAAe,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACjD;QACD,MAAM,EAAE;YACN,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC;SAClE;KACF;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,SAAS,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAI5D,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,YAAY,CAAC","sourcesContent":["/**\n * Central model catalog for built-in agent engines.\n *\n * To bump the framework's managed default, update\n * FRAMEWORK_DEFAULT_OPENAI_MODEL. Builder gateway and OpenRouter IDs are\n * derived from that provider-native OpenAI ID so the usual default bump stays\n * in this one file.\n */\n\nconst FRAMEWORK_DEFAULT_OPENAI_MODEL = \"gpt-5.5\";\nconst ANTHROPIC_DEFAULT_MODEL_ID = \"claude-sonnet-4-6\";\n\nfunction builderGatewayModelId(model: string): string {\n return model.replace(/\\./g, \"-\");\n}\n\nfunction openRouterModelId(provider: string, model: string): string {\n return `${provider}/${model}`;\n}\n\nconst FRAMEWORK_DEFAULT_BUILDER_MODEL = builderGatewayModelId(\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n);\nconst FRAMEWORK_DEFAULT_OPENROUTER_MODEL = openRouterModelId(\n \"openai\",\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n);\n\nexport const AGENT_MODEL_CONFIG = {\n builder: {\n defaultModel: FRAMEWORK_DEFAULT_BUILDER_MODEL,\n supportedModels: [\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"claude-haiku-4-5\",\n FRAMEWORK_DEFAULT_BUILDER_MODEL,\n \"gpt-5-4\",\n \"gpt-5-4-mini\",\n \"gpt-5-1-codex-mini\",\n \"gemini-3-1-pro\",\n \"gemini-3-0-flash\",\n \"gemini-3-1-flash-lite\",\n \"grok-code-fast\",\n \"qwen3-coder\",\n \"kimi-k2-5\",\n \"deepseek-v3-1\",\n \"z-ai-glm-4-5\",\n \"z-ai-glm-5-1\",\n ],\n },\n anthropic: {\n defaultModel: ANTHROPIC_DEFAULT_MODEL_ID,\n supportedModels: [\n \"claude-opus-4-7\",\n ANTHROPIC_DEFAULT_MODEL_ID,\n \"claude-haiku-4-5-20251001\",\n ],\n },\n aiSdk: {\n anthropic: {\n defaultModel: ANTHROPIC_DEFAULT_MODEL_ID,\n supportedModels: [\n \"claude-opus-4-7\",\n ANTHROPIC_DEFAULT_MODEL_ID,\n \"claude-haiku-4-5-20251001\",\n ],\n },\n openai: {\n defaultModel: FRAMEWORK_DEFAULT_OPENAI_MODEL,\n supportedModels: [\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n \"gpt-5.4\",\n \"gpt-5.4-mini\",\n ],\n },\n openrouter: {\n defaultModel: FRAMEWORK_DEFAULT_OPENROUTER_MODEL,\n supportedModels: [\n \"anthropic/claude-opus-4.7\",\n \"anthropic/claude-sonnet-4.6\",\n FRAMEWORK_DEFAULT_OPENROUTER_MODEL,\n \"openai/gpt-5.4\",\n \"google/gemini-2.5-flash\",\n ],\n },\n google: {\n defaultModel: \"gemini-3-flash-preview\",\n supportedModels: [\"gemini-3-flash-preview\", \"gemini-3.1-pro-preview\"],\n },\n groq: {\n defaultModel: \"llama-3.3-70b-versatile\",\n supportedModels: [\n \"llama-3.3-70b-versatile\",\n \"llama-3.1-70b-versatile\",\n \"mixtral-8x7b-32768\",\n ],\n },\n mistral: {\n defaultModel: \"mistral-large-latest\",\n supportedModels: [\n \"mistral-large-latest\",\n \"mistral-medium-latest\",\n \"mistral-small-latest\",\n ],\n },\n cohere: {\n defaultModel: \"command-r-plus\",\n supportedModels: [\"command-r-plus\", \"command-r\"],\n },\n ollama: {\n defaultModel: \"llama3.1\",\n supportedModels: [\"llama3.1\", \"llama3.2\", \"mistral\", \"codestral\"],\n },\n },\n} as const;\n\nexport const BUILDER_MODEL_CONFIG = AGENT_MODEL_CONFIG.builder;\nexport const ANTHROPIC_MODEL_CONFIG = AGENT_MODEL_CONFIG.anthropic;\nexport const AI_SDK_MODEL_CONFIG = AGENT_MODEL_CONFIG.aiSdk;\n\nexport type AISDKProvider = keyof typeof AI_SDK_MODEL_CONFIG;\n\nexport const DEFAULT_MODEL = BUILDER_MODEL_CONFIG.defaultModel;\nexport const DEFAULT_OPENAI_MODEL = AI_SDK_MODEL_CONFIG.openai.defaultModel;\nexport const DEFAULT_ANTHROPIC_MODEL = ANTHROPIC_MODEL_CONFIG.defaultModel;\n"]}
1
+ {"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AAEvD,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAAa;IACxD,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,8BAA8B,GAAG,SAAS,CAAC;AACjD,MAAM,+BAA+B,GAAG,0BAA0B,CAAC;AACnE,MAAM,sCAAsC,GAAG,qBAAqB,CAClE,8BAA8B,CAC/B,CAAC;AACF,MAAM,kCAAkC,GAAG,iBAAiB,CAC1D,QAAQ,EACR,8BAA8B,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE;QACP,YAAY,EAAE,+BAA+B;QAC7C,eAAe,EAAE;YACf,iBAAiB;YACjB,+BAA+B;YAC/B,kBAAkB;YAClB,sCAAsC;YACtC,SAAS;YACT,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,gBAAgB;YAChB,aAAa;YACb,WAAW;YACX,eAAe;YACf,cAAc;YACd,cAAc;SACf;KACF;IACD,SAAS,EAAE;QACT,YAAY,EAAE,0BAA0B;QACxC,eAAe,EAAE;YACf,iBAAiB;YACjB,0BAA0B;YAC1B,2BAA2B;SAC5B;KACF;IACD,KAAK,EAAE;QACL,SAAS,EAAE;YACT,YAAY,EAAE,0BAA0B;YACxC,eAAe,EAAE;gBACf,iBAAiB;gBACjB,0BAA0B;gBAC1B,2BAA2B;aAC5B;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,8BAA8B;YAC5C,eAAe,EAAE;gBACf,8BAA8B;gBAC9B,SAAS;gBACT,cAAc;aACf;SACF;QACD,UAAU,EAAE;YACV,YAAY,EAAE,kCAAkC;YAChD,eAAe,EAAE;gBACf,2BAA2B;gBAC3B,6BAA6B;gBAC7B,kCAAkC;gBAClC,gBAAgB;gBAChB,yBAAyB;aAC1B;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,wBAAwB;YACtC,eAAe,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;SACtE;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,yBAAyB;YACvC,eAAe,EAAE;gBACf,yBAAyB;gBACzB,yBAAyB;gBACzB,oBAAoB;aACrB;SACF;QACD,OAAO,EAAE;YACP,YAAY,EAAE,sBAAsB;YACpC,eAAe,EAAE;gBACf,sBAAsB;gBACtB,uBAAuB;gBACvB,sBAAsB;aACvB;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,gBAAgB;YAC9B,eAAe,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACjD;QACD,MAAM,EAAE;YACN,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC;SAClE;KACF;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,SAAS,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAI5D,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,YAAY,CAAC","sourcesContent":["/**\n * Central model catalog for built-in agent engines.\n *\n * To bump the framework's managed default, update\n * FRAMEWORK_DEFAULT_OPENAI_MODEL. Builder gateway and OpenRouter IDs are\n * derived from that provider-native OpenAI ID so the usual default bump stays\n * in this one file.\n */\n\nconst ANTHROPIC_DEFAULT_MODEL_ID = \"claude-sonnet-4-6\";\n\nfunction builderGatewayModelId(model: string): string {\n return model.replace(/\\./g, \"-\");\n}\n\nfunction openRouterModelId(provider: string, model: string): string {\n return `${provider}/${model}`;\n}\n\nconst FRAMEWORK_DEFAULT_OPENAI_MODEL = \"gpt-5.5\";\nconst FRAMEWORK_DEFAULT_BUILDER_MODEL = ANTHROPIC_DEFAULT_MODEL_ID;\nconst FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL = builderGatewayModelId(\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n);\nconst FRAMEWORK_DEFAULT_OPENROUTER_MODEL = openRouterModelId(\n \"openai\",\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n);\n\nexport const AGENT_MODEL_CONFIG = {\n builder: {\n defaultModel: FRAMEWORK_DEFAULT_BUILDER_MODEL,\n supportedModels: [\n \"claude-opus-4-7\",\n FRAMEWORK_DEFAULT_BUILDER_MODEL,\n \"claude-haiku-4-5\",\n FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL,\n \"gpt-5-4\",\n \"gpt-5-4-mini\",\n \"gpt-5-1-codex-mini\",\n \"gemini-3-1-pro\",\n \"gemini-3-0-flash\",\n \"gemini-3-1-flash-lite\",\n \"grok-code-fast\",\n \"qwen3-coder\",\n \"kimi-k2-5\",\n \"deepseek-v3-1\",\n \"z-ai-glm-4-5\",\n \"z-ai-glm-5-1\",\n ],\n },\n anthropic: {\n defaultModel: ANTHROPIC_DEFAULT_MODEL_ID,\n supportedModels: [\n \"claude-opus-4-7\",\n ANTHROPIC_DEFAULT_MODEL_ID,\n \"claude-haiku-4-5-20251001\",\n ],\n },\n aiSdk: {\n anthropic: {\n defaultModel: ANTHROPIC_DEFAULT_MODEL_ID,\n supportedModels: [\n \"claude-opus-4-7\",\n ANTHROPIC_DEFAULT_MODEL_ID,\n \"claude-haiku-4-5-20251001\",\n ],\n },\n openai: {\n defaultModel: FRAMEWORK_DEFAULT_OPENAI_MODEL,\n supportedModels: [\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n \"gpt-5.4\",\n \"gpt-5.4-mini\",\n ],\n },\n openrouter: {\n defaultModel: FRAMEWORK_DEFAULT_OPENROUTER_MODEL,\n supportedModels: [\n \"anthropic/claude-opus-4.7\",\n \"anthropic/claude-sonnet-4.6\",\n FRAMEWORK_DEFAULT_OPENROUTER_MODEL,\n \"openai/gpt-5.4\",\n \"google/gemini-2.5-flash\",\n ],\n },\n google: {\n defaultModel: \"gemini-3-flash-preview\",\n supportedModels: [\"gemini-3-flash-preview\", \"gemini-3.1-pro-preview\"],\n },\n groq: {\n defaultModel: \"llama-3.3-70b-versatile\",\n supportedModels: [\n \"llama-3.3-70b-versatile\",\n \"llama-3.1-70b-versatile\",\n \"mixtral-8x7b-32768\",\n ],\n },\n mistral: {\n defaultModel: \"mistral-large-latest\",\n supportedModels: [\n \"mistral-large-latest\",\n \"mistral-medium-latest\",\n \"mistral-small-latest\",\n ],\n },\n cohere: {\n defaultModel: \"command-r-plus\",\n supportedModels: [\"command-r-plus\", \"command-r\"],\n },\n ollama: {\n defaultModel: \"llama3.1\",\n supportedModels: [\"llama3.1\", \"llama3.2\", \"mistral\", \"codestral\"],\n },\n },\n} as const;\n\nexport const BUILDER_MODEL_CONFIG = AGENT_MODEL_CONFIG.builder;\nexport const ANTHROPIC_MODEL_CONFIG = AGENT_MODEL_CONFIG.anthropic;\nexport const AI_SDK_MODEL_CONFIG = AGENT_MODEL_CONFIG.aiSdk;\n\nexport type AISDKProvider = keyof typeof AI_SDK_MODEL_CONFIG;\n\nexport const DEFAULT_MODEL = BUILDER_MODEL_CONFIG.defaultModel;\nexport const DEFAULT_OPENAI_MODEL = AI_SDK_MODEL_CONFIG.openai.defaultModel;\nexport const DEFAULT_ANTHROPIC_MODEL = ANTHROPIC_MODEL_CONFIG.defaultModel;\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { EventHandler as H3EventHandler } from "h3";
2
- import type { ActionTool, AgentChatAttachment, AgentChatEvent, AgentChatStructuredMessage } from "./types.js";
2
+ import type { ActionTool, AgentChatAttachment, AgentChatEvent, AgentChatReference, AgentChatStructuredMessage } from "./types.js";
3
3
  import type { AgentEngine, EngineTool, EngineMessage, EngineContentPart } from "./engine/types.js";
4
4
  import { PROVIDER_TO_ENV } from "./engine/provider-env-vars.js";
5
5
  import { subscribeToRun, getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun } from "./run-manager.js";
@@ -101,6 +101,30 @@ export interface ProductionAgentOptions {
101
101
  message: string;
102
102
  attachments?: AgentChatAttachment[];
103
103
  }) => void | Promise<void>;
104
+ /**
105
+ * Optional per-template request normalizer. Runs after owner resolution and
106
+ * before system/context assembly so templates can materialize uploaded chat
107
+ * attachments or append app-specific, non-visible instructions.
108
+ */
109
+ prepareRequest?: (details: {
110
+ event: any;
111
+ ownerEmail: string | null;
112
+ message: string;
113
+ displayMessage?: string;
114
+ attachments: AgentChatAttachment[];
115
+ references: AgentChatReference[];
116
+ threadId?: string;
117
+ internalContinuation?: boolean;
118
+ mode: AgentExecutionMode;
119
+ }) => void | {
120
+ message?: string;
121
+ displayMessage?: string;
122
+ attachments?: AgentChatAttachment[];
123
+ } | Promise<void | {
124
+ message?: string;
125
+ displayMessage?: string;
126
+ attachments?: AgentChatAttachment[];
127
+ }>;
104
128
  /** Optional per-app agent run chunk budget in milliseconds. Defaults to
105
129
  * AGENT_RUN_SOFT_TIMEOUT_MS when set, otherwise no framework-imposed
106
130
  * 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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"}
@@ -875,6 +875,7 @@ export async function runAgentLoop(opts) {
875
875
  retryCount: finalGuardRetries,
876
876
  })
877
877
  : null;
878
+ let guardEmittedFallback = false;
878
879
  if (guard) {
879
880
  const retryMessage = typeof guard === "string" ? guard : guard.retryMessage;
880
881
  const fallbackMessage = typeof guard === "string" ? guard : guard.fallbackMessage;
@@ -887,10 +888,25 @@ export async function runAgentLoop(opts) {
887
888
  continue;
888
889
  }
889
890
  send({ type: "text", text: fallbackMessage ?? retryMessage });
891
+ guardEmittedFallback = true;
890
892
  }
891
893
  else {
892
894
  flushBufferedAssistantText();
893
895
  }
896
+ // Some providers (notably OpenAI Responses for gpt-5+) can stream a
897
+ // successful turn that contains only reasoning content and zero output
898
+ // text — typically when reasoning consumes the entire output-token
899
+ // budget. Without a final text part the SSE stream still ends with a
900
+ // clean `done`, which renders as a totally empty assistant bubble.
901
+ // Surface a plain-language error so the user knows what happened.
902
+ if (!guardEmittedFallback &&
903
+ collectTextParts(assistantContentForHistory).trim().length === 0 &&
904
+ bufferedAssistantText.trim().length === 0) {
905
+ send({
906
+ type: "text",
907
+ text: "The model returned an empty response. This usually means reasoning used the full output-token budget. Try again, or pick a different model from the model menu.",
908
+ });
909
+ }
894
910
  break;
895
911
  }
896
912
  flushBufferedAssistantText();
@@ -1151,13 +1167,36 @@ export function createProductionAgentHandler(options) {
1151
1167
  setResponseStatus(event, 400);
1152
1168
  return { error: "message is required" };
1153
1169
  }
1154
- const requestMessage = hasMessageText
1155
- ? message
1156
- : "Use the attached context.";
1170
+ let requestMessage = hasMessageText ? message : "Use the attached context.";
1171
+ let requestAttachments = Array.isArray(attachments) ? attachments : [];
1172
+ let requestDisplayMessage = displayMessage;
1157
1173
  // Resolve owner first so we can look up a per-owner API key. Users
1158
1174
  // who bring their own key use their key for this request (durable
1159
1175
  // across serverless cold starts via the settings table).
1160
1176
  const ownerEmail = await resolveAgentOwnerEmail(options, event);
1177
+ const preparedRequest = await options.prepareRequest?.({
1178
+ event,
1179
+ ownerEmail,
1180
+ message: requestMessage,
1181
+ displayMessage: requestDisplayMessage,
1182
+ attachments: requestAttachments,
1183
+ references,
1184
+ threadId,
1185
+ internalContinuation: Boolean(internalContinuation),
1186
+ mode: requestMode,
1187
+ });
1188
+ if (preparedRequest) {
1189
+ if (typeof preparedRequest.message === "string" &&
1190
+ preparedRequest.message.trim().length > 0) {
1191
+ requestMessage = preparedRequest.message;
1192
+ }
1193
+ if (typeof preparedRequest.displayMessage === "string") {
1194
+ requestDisplayMessage = preparedRequest.displayMessage;
1195
+ }
1196
+ if (Array.isArray(preparedRequest.attachments)) {
1197
+ requestAttachments = preparedRequest.attachments;
1198
+ }
1199
+ }
1161
1200
  // When a per-request engine override is specified, resolve the API key
1162
1201
  // for that provider instead of the global active engine's provider.
1163
1202
  let userApiKey;
@@ -1434,7 +1473,7 @@ export function createProductionAgentHandler(options) {
1434
1473
  : "";
1435
1474
  const userContent = buildUserContentWithAttachments({
1436
1475
  text: enrichedMessage + screenContext + filesContext + planModeAgentNote,
1437
- attachments,
1476
+ attachments: requestAttachments,
1438
1477
  });
1439
1478
  const historyMessages = structuredHistoryToEngineMessages(structuredHistory) ??
1440
1479
  history
@@ -1462,14 +1501,15 @@ export function createProductionAgentHandler(options) {
1462
1501
  // Start agent loop in background via run-manager
1463
1502
  const runId = generateRunId();
1464
1503
  if (options.onRunPrepared && !internalContinuation) {
1465
- const messageToPersist = typeof displayMessage === "string" && displayMessage.trim().length > 0
1466
- ? displayMessage
1504
+ const messageToPersist = typeof requestDisplayMessage === "string" &&
1505
+ requestDisplayMessage.trim().length > 0
1506
+ ? requestDisplayMessage
1467
1507
  : requestMessage;
1468
1508
  await options.onRunPrepared({
1469
1509
  runId,
1470
1510
  threadId,
1471
1511
  message: messageToPersist,
1472
- attachments: Array.isArray(attachments) ? attachments : [],
1512
+ attachments: requestAttachments,
1473
1513
  });
1474
1514
  }
1475
1515
  startRun(runId, threadId ?? runId, async (send, signal) => {