@standardagents/builder 0.24.7 → 0.25.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.
@@ -892,6 +892,7 @@ interface Env extends ThreadEnv {
892
892
  ANTHROPIC_API_KEY?: string;
893
893
  OPENROUTER_API_KEY?: string;
894
894
  GOOGLE_API_KEY?: string;
895
+ NOVITA_API_KEY?: string;
895
896
  XAI_API_KEY?: string;
896
897
  UI_DEV_SERVER?: string;
897
898
  ASSETS?: {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ModelDefinition, AgentDefinition } from './runtime.js';
2
2
  export { AgentBuilderEnv, AuthContext, AuthUser, BroadcastOptions, CodeExecutionBridge, DurableAgentBuilder, DurableThread, FlowStateSdk, FlowStateWithSdk, ImageContextConfig, InjectMessageOptions, LLMProviderInterface, NamespaceResolutionError, PromptContent, PromptDefinition, PromptIncludePart, PromptPart, PromptToolConfig, Provider, ProviderContentPart, ProviderFilePart, ProviderImagePart, ProviderRegistry, ProviderTextPart, SessionToolBinding, SessionToolConfig, SideConfig, SubagentToolConfig, SubpromptConfig, ThreadRegistryEntry, ToolConfig, UpdateThreadParams, User, authenticate, buildImageDescription, cat, createNamespaceContext, emitThreadEvent, enhanceFlowState, exists, find, forceTurn, generateImageDescription, getFileStats, getMessages, getMessagesToSummarize, getShortName, getThumbnail, getUnsummarizedImageAttachments, getVisibleAgentNames, getVisibleModelNames, getVisiblePromptNames, getVisibleToolNames, grep, hasImageAttachments, head, injectMessage, isQualifiedName, linkFile, mkdir, move, optimizeImageContext, parseQualifiedName, qualifyName, queueTool, readFile, readdir, reloadHistory, rename, replaceImagesWithDescriptions, requireAdmin, requireAuth, resolveAgent, resolveHook, resolveModel, resolvePrompt, resolveTool, rmdir, stat, tail, unlink, updateThread, writeFile, writeImage } from './runtime.js';
3
3
  export { AgentPluginOptions, agentbuilder, builder } from './plugin.js';
4
- export { A as Agent, m as AttachmentRef, f as BuilderThreadEndpointHandler, B as Controller, a as ControllerContext, E as Env, l as FileRecord, n as FileStats, j as FlowResult, F as FlowState, G as GrepResult, p as ImageContentPart, I as ImageMetadata, L as LLMResponse, M as Message, r as MessageContent, q as MultimodalContent, R as RequestContext, S as StorageBackend, k as TelemetryEvent, o as TextContentPart, b as ThreadEndpointContext, e as ThreadEnv, g as ThreadInstance, h as ThreadMetadata, T as ToolCall, i as ToolResult, c as createThreadEndpointHandler, d as defineController } from './index-Bd--_E_1.js';
4
+ export { A as Agent, m as AttachmentRef, f as BuilderThreadEndpointHandler, B as Controller, a as ControllerContext, E as Env, l as FileRecord, n as FileStats, j as FlowResult, F as FlowState, G as GrepResult, p as ImageContentPart, I as ImageMetadata, L as LLMResponse, M as Message, r as MessageContent, q as MultimodalContent, R as RequestContext, S as StorageBackend, k as TelemetryEvent, o as TextContentPart, b as ThreadEndpointContext, e as ThreadEnv, g as ThreadInstance, h as ThreadMetadata, T as ToolCall, i as ToolResult, c as createThreadEndpointHandler, d as defineController } from './index-BsS0cHzL.js';
5
5
  export { AgentType, DefinitionLoader, GlobalNamespaceContext, HookSignatures, ImageContent, ModelCapabilities, ModelProvider, NamespaceContext, PackageSignature, PackedExports, PackedMeta, PackedMetadata, PackedNamespaceContext, PromptInput, PromptTextPart, ProviderAssistantMessage, ProviderConfigSlot, ProviderConfigSlots, ProviderConfigValueSource, ProviderDefinition, ProviderError, ProviderErrorCode, ProviderFactory, ProviderFactoryConfig, ProviderFinishReason, ProviderGeneratedImage, ProviderMessage, ProviderMessageContent, ProviderMethodOverrides, ModelCapabilities as ProviderModelCapabilities, ProviderOverride, ProviderOverrideContext, ProviderReasoningDetail, ProviderRequest, ProviderResponse, ProviderStreamChunk, ProviderSyncOverride, ProviderSystemMessage, ProviderTool, ProviderToolCallPart, ProviderToolMessage, ProviderToolResultContent, ProviderUsage, ProviderUserMessage, ReasoningConfig, StructuredPrompt, TextContent, Tool, ToolArgs, ToolArgsNode, ToolArgsRawShape, ToolContent, belongsToPackage, defineAgent, defineHook, defineModel, definePrompt, defineProvider, defineTool, isPacked, isVisibleInNamespace, mapReasoningLevel, providerConst, providerEnv, providerValue } from '@standardagents/spec';
6
6
  export { C as ConstituentItem, D as DiscoveredPackage, N as NamespacedRegistry, P as PackingAnalysis, a as PackingOptions, b as PackingResult, c as UnpackOptions, d as UnpackResult } from './types-Bpe7IANZ.js';
7
7
  export { D as DiscoveryConfig, P as PackageDiscoveryService, d as discoverPackages } from './discovery-DiMJWisl.js';
package/dist/index.js CHANGED
@@ -1018,6 +1018,7 @@ var init_ProviderRegistry = __esm({
1018
1018
  cerebras: "CEREBRAS_API_KEY",
1019
1019
  google: "GOOGLE_API_KEY",
1020
1020
  groq: "GROQ_API_KEY",
1021
+ novita: "NOVITA_API_KEY",
1021
1022
  openai: "OPENAI_API_KEY",
1022
1023
  openrouter: "OPENROUTER_API_KEY",
1023
1024
  anthropic: "ANTHROPIC_API_KEY",
@@ -14575,6 +14576,12 @@ var FIRST_PARTY_PROVIDERS = [
14575
14576
  label: "Groq",
14576
14577
  envKeys: ["GROQ_API_KEY"]
14577
14578
  },
14579
+ {
14580
+ name: "novita",
14581
+ package: "@standardagents/novita",
14582
+ label: "Novita AI",
14583
+ envKeys: ["NOVITA_API_KEY"]
14584
+ },
14578
14585
  {
14579
14586
  name: "openai",
14580
14587
  package: "@standardagents/openai",
@@ -14607,8 +14614,9 @@ function packageToCustomProvider(pkg) {
14607
14614
  isCustom: true
14608
14615
  };
14609
14616
  }
14610
- function buildInstalledProviderCatalog(customProviderPackages = []) {
14611
- const providers2 = [...FIRST_PARTY_PROVIDERS];
14617
+ function buildInstalledProviderCatalog(customProviderPackages = [], options = {}) {
14618
+ const { isPackageInstalled } = options;
14619
+ const providers2 = isPackageInstalled ? FIRST_PARTY_PROVIDERS.filter((provider) => isPackageInstalled(provider.package)) : [...FIRST_PARTY_PROVIDERS];
14612
14620
  const seen = new Set(providers2.map((provider) => provider.name));
14613
14621
  for (const pkg of customProviderPackages) {
14614
14622
  const provider = packageToCustomProvider(pkg);
@@ -14618,9 +14626,9 @@ function buildInstalledProviderCatalog(customProviderPackages = []) {
14618
14626
  }
14619
14627
  return providers2;
14620
14628
  }
14621
- function buildProviderPackageMap(customProviderPackages = []) {
14629
+ function buildProviderPackageMap(customProviderPackages = [], options = {}) {
14622
14630
  return Object.fromEntries(
14623
- buildInstalledProviderCatalog(customProviderPackages).map((provider) => [
14631
+ buildInstalledProviderCatalog(customProviderPackages, options).map((provider) => [
14624
14632
  provider.name,
14625
14633
  {
14626
14634
  name: provider.name,
@@ -21582,6 +21590,17 @@ var depsToExclude = [
21582
21590
  "fsevents",
21583
21591
  "typescript"
21584
21592
  ];
21593
+ var firstPartyProviderPackages = [
21594
+ "@standardagents/anthropic",
21595
+ "@standardagents/cloudflare",
21596
+ "@standardagents/cerebras",
21597
+ "@standardagents/google",
21598
+ "@standardagents/groq",
21599
+ "@standardagents/novita",
21600
+ "@standardagents/openai",
21601
+ "@standardagents/openrouter",
21602
+ "@standardagents/xai"
21603
+ ];
21585
21604
  var depsToInclude = [
21586
21605
  "zod",
21587
21606
  "zod/v3",
@@ -21598,7 +21617,11 @@ var depsToInclude = [
21598
21617
  "@standardagents/spec",
21599
21618
  // Incremental JSON reader used by the runtime to surface a tool's progress
21600
21619
  // argument from partial streamed tool-call arguments (tool_call_started).
21601
- "@formkit/jsonreader"
21620
+ "@formkit/jsonreader",
21621
+ // Pre-bundle the provider packages themselves so their whole subtree (SDKs,
21622
+ // pricing tables) lands in the initial optimized bundle and nothing is
21623
+ // discovered lazily by workerd.
21624
+ ...firstPartyProviderPackages
21602
21625
  ];
21603
21626
  var packingDeps = [
21604
21627
  "rollup",
@@ -21623,6 +21646,13 @@ function createPluginViteConfig(pluginModuleUrl) {
21623
21646
  }
21624
21647
  },
21625
21648
  optimizeDeps: {
21649
+ // Hold the first optimized-deps result until the static import crawl
21650
+ // finishes on cold start, so a single pre-bundle version is committed
21651
+ // instead of an early partial bundle that a later discovery invalidates.
21652
+ // Combined with a complete `include` list, this eliminates the mid-flight
21653
+ // re-optimize that crashes the workerd environment on the very first
21654
+ // `npm run dev` ("There is a new version of the pre-bundle for X").
21655
+ holdUntilCrawlEnd: true,
21626
21656
  exclude: depsToExclude,
21627
21657
  include: depsToInclude.filter((dep) => dep !== "zod/v3" && dep !== "zod/v4" && dep !== "zod/v4/core")
21628
21658
  },
@@ -21713,6 +21743,7 @@ function createAgentBuilderCloudflarePlugins(options) {
21713
21743
  }
21714
21744
  function applyPluginEnvironmentConfig(config) {
21715
21745
  config.optimizeDeps = config.optimizeDeps || {};
21746
+ config.optimizeDeps.holdUntilCrawlEnd = true;
21716
21747
  config.optimizeDeps.exclude = [
21717
21748
  ...config.optimizeDeps.exclude || [],
21718
21749
  ...depsToExclude.filter((dep) => !config.optimizeDeps?.exclude?.includes(dep))
@@ -21747,8 +21778,20 @@ function agentbuilder(options = {}) {
21747
21778
  const effectsDir = options.effectsDir ? path8__default.resolve(process.cwd(), options.effectsDir) : path8__default.resolve(process.cwd(), "agents/effects");
21748
21779
  const outputDir = path8__default.resolve(process.cwd(), ".agents");
21749
21780
  const generatedWorkerEntry = path8__default.join(outputDir, "worker.ts");
21750
- const installedProviders = buildInstalledProviderCatalog(options.providers || []);
21751
- const installedProviderPackageMap = buildProviderPackageMap(options.providers || []);
21781
+ const isProviderPackageInstalled = (packageName) => {
21782
+ let dir = process.cwd();
21783
+ for (; ; ) {
21784
+ if (fs8__default.existsSync(path8__default.join(dir, "node_modules", packageName, "package.json"))) {
21785
+ return true;
21786
+ }
21787
+ const parent = path8__default.dirname(dir);
21788
+ if (parent === dir) return false;
21789
+ dir = parent;
21790
+ }
21791
+ };
21792
+ const catalogOptions = { isPackageInstalled: isProviderPackageInstalled };
21793
+ const installedProviders = buildInstalledProviderCatalog(options.providers || [], catalogOptions);
21794
+ const installedProviderPackageMap = buildProviderPackageMap(options.providers || [], catalogOptions);
21752
21795
  const typeGenConfig = {
21753
21796
  modelsDir,
21754
21797
  promptsDir,