@standardagents/builder 0.16.0 → 0.16.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.
- package/dist/built-in-routes.js +189 -142
- package/dist/built-in-routes.js.map +1 -1
- package/dist/client/UsersView.js +1 -1
- package/dist/{index-EaxysUHv.d.ts → index-BnrKzXpJ.d.ts} +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +63 -22
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +10 -7
- package/dist/runtime.js +63 -22
- package/dist/runtime.js.map +1 -1
- package/dist/test.d.ts +1 -1
- package/package.json +4 -4
package/dist/runtime.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as ThreadEnv, h as ThreadMetadata, M as Message, l as FileRecord, F as FlowState, n as FileStats, G as GrepResult, m as AttachmentRef, r as MessageContent, E as Env, g as ThreadInstance } from './index-
|
|
2
|
-
export { A as Agent, f as BuilderThreadEndpointHandler, B as Controller, a as ControllerContext, j as FlowResult, p as ImageContentPart, I as ImageMetadata, L as LLMResponse, q as MultimodalContent, R as RequestContext, S as StorageBackend, k as TelemetryEvent, o as TextContentPart, b as ThreadEndpointContext, T as ToolCall, i as ToolResult, c as createThreadEndpointHandler, d as defineController } from './index-
|
|
1
|
+
import { e as ThreadEnv, h as ThreadMetadata, M as Message, l as FileRecord, F as FlowState, n as FileStats, G as GrepResult, m as AttachmentRef, r as MessageContent, E as Env, g as ThreadInstance } from './index-BnrKzXpJ.js';
|
|
2
|
+
export { A as Agent, f as BuilderThreadEndpointHandler, B as Controller, a as ControllerContext, j as FlowResult, p as ImageContentPart, I as ImageMetadata, L as LLMResponse, q as MultimodalContent, R as RequestContext, S as StorageBackend, k as TelemetryEvent, o as TextContentPart, b as ThreadEndpointContext, T as ToolCall, i as ToolResult, c as createThreadEndpointHandler, d as defineController } from './index-BnrKzXpJ.js';
|
|
3
3
|
import { CodeExecutionOptions, CodeExecutionResult, SubagentRegistryEntry, InjectMessageInput, QueueMessageInput, ModelDefinition as ModelDefinition$1, ToolArgs, PromptTextPart, PromptEnvPart, VariableDefinition, SubpromptConfig as SubpromptConfig$1, PromptToolConfig as PromptToolConfig$1, SubagentToolConfig as SubagentToolConfig$1, ReasoningConfig, SideConfig as SideConfig$1, LLMProviderInterface, ContentPart, TextPart, ImagePart, FilePart, NamespaceContext, DefinitionLoader } from '@standardagents/spec';
|
|
4
4
|
export { AgentType, DefinitionLoader, GlobalNamespaceContext, HookSignatures, ImageContent, ModelCapabilities, ModelProvider, NamespaceContext, PackageSignature, PackedExports, PackedMeta, PackedMetadata, PackedNamespaceContext, PromptInput, PromptTextPart, ProviderAssistantMessage, ProviderError, ProviderErrorCode, ProviderFactory, ProviderFactoryConfig, ProviderFinishReason, ProviderGeneratedImage, ProviderMessage, ProviderMessageContent, ModelCapabilities as ProviderModelCapabilities, ProviderReasoningDetail, ProviderRequest, ProviderResponse, ProviderStreamChunk, ProviderSystemMessage, ProviderTool, ProviderToolCallPart, ProviderToolMessage, ProviderToolResultContent, ProviderUsage, ProviderUserMessage, ReasoningConfig, StructuredPrompt, TextContent, Tool, ToolArgs, ToolArgsNode, ToolArgsRawShape, ToolContent, belongsToPackage, defineAgent, defineHook, defineModel, definePrompt, defineTool, isPacked, isVisibleInNamespace, mapReasoningLevel } from '@standardagents/spec';
|
|
5
5
|
import { DurableObject, WorkerEntrypoint } from 'cloudflare:workers';
|
|
@@ -2930,6 +2930,13 @@ type ProviderFilePart = FilePart;
|
|
|
2930
2930
|
* Returns a provider to override the default, or null to fall through.
|
|
2931
2931
|
*/
|
|
2932
2932
|
type ProviderOverrideFn = (modelName: string, modelDef: ModelDefinition$1<string>, env: Env) => LLMProviderInterface | null;
|
|
2933
|
+
interface ProviderLookupResult {
|
|
2934
|
+
provider: LLMProviderInterface;
|
|
2935
|
+
modelName: string;
|
|
2936
|
+
modelDef: ModelDefinition$1<string>;
|
|
2937
|
+
/** True when requests route through the Standard Agents platform (hosted routing or a registered override). */
|
|
2938
|
+
viaPlatform: boolean;
|
|
2939
|
+
}
|
|
2933
2940
|
/**
|
|
2934
2941
|
* Provider registry implementation
|
|
2935
2942
|
*
|
|
@@ -2954,11 +2961,7 @@ declare class ProviderRegistryImpl {
|
|
|
2954
2961
|
* @param thread - Thread instance for loading model from virtual modules
|
|
2955
2962
|
* @returns Provider and model definition
|
|
2956
2963
|
*/
|
|
2957
|
-
getProvider(modelName: string, env: Env, thread?: ThreadInstance): Promise<
|
|
2958
|
-
provider: LLMProviderInterface;
|
|
2959
|
-
modelName: string;
|
|
2960
|
-
modelDef: ModelDefinition$1<string>;
|
|
2961
|
-
}>;
|
|
2964
|
+
getProvider(modelName: string, env: Env, thread?: ThreadInstance): Promise<ProviderLookupResult>;
|
|
2962
2965
|
private buildResult;
|
|
2963
2966
|
private cacheAndReturn;
|
|
2964
2967
|
private getProviderFingerprint;
|
package/dist/runtime.js
CHANGED
|
@@ -857,11 +857,38 @@ var init_TestProvider = __esm({
|
|
|
857
857
|
}
|
|
858
858
|
});
|
|
859
859
|
|
|
860
|
+
// src/agents/providers/platform-routing.ts
|
|
861
|
+
function stringEnv(value) {
|
|
862
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
863
|
+
}
|
|
864
|
+
function resolvePlatformRouting(providerName, env) {
|
|
865
|
+
const apiKey = stringEnv(env.STANDARD_AGENTS_API_KEY) ?? stringEnv(env.PLATFORM_API_KEY);
|
|
866
|
+
if (!apiKey) return null;
|
|
867
|
+
const origin = (stringEnv(env.STANDARD_AGENTS_PROXY_URL) ?? stringEnv(env.PLATFORM_ENDPOINT) ?? stringEnv(env.STANDARD_AGENTS_API_URL) ?? DEFAULT_PLATFORM_PROXY_ORIGIN).replace(/\/+$/, "");
|
|
868
|
+
const provider = providerName.toLowerCase();
|
|
869
|
+
const basePath = PROVIDER_BASE_PATHS[provider] ?? "";
|
|
870
|
+
return {
|
|
871
|
+
apiKey,
|
|
872
|
+
origin,
|
|
873
|
+
baseUrl: `${origin}/v1/proxy/${encodeURIComponent(provider)}${basePath}`
|
|
874
|
+
};
|
|
875
|
+
}
|
|
876
|
+
var DEFAULT_PLATFORM_PROXY_ORIGIN, PROVIDER_BASE_PATHS;
|
|
877
|
+
var init_platform_routing = __esm({
|
|
878
|
+
"src/agents/providers/platform-routing.ts"() {
|
|
879
|
+
DEFAULT_PLATFORM_PROXY_ORIGIN = "https://proxy.standardagents.ai";
|
|
880
|
+
PROVIDER_BASE_PATHS = {
|
|
881
|
+
cloudflare: "/ai/v1"
|
|
882
|
+
};
|
|
883
|
+
}
|
|
884
|
+
});
|
|
885
|
+
|
|
860
886
|
// src/agents/providers/ProviderRegistry.ts
|
|
861
887
|
var ProviderRegistryImpl, ProviderRegistry;
|
|
862
888
|
var init_ProviderRegistry = __esm({
|
|
863
889
|
"src/agents/providers/ProviderRegistry.ts"() {
|
|
864
890
|
init_TestProvider();
|
|
891
|
+
init_platform_routing();
|
|
865
892
|
ProviderRegistryImpl = class {
|
|
866
893
|
providerCache = /* @__PURE__ */ new Map();
|
|
867
894
|
providerOverrideFn = null;
|
|
@@ -899,9 +926,9 @@ var init_ProviderRegistry = __esm({
|
|
|
899
926
|
const fingerprint = this.getProviderFingerprint(providerName, modelDef);
|
|
900
927
|
const cached = this.providerCache.get(modelName);
|
|
901
928
|
if (cached?.fingerprint === fingerprint) {
|
|
902
|
-
return this.buildResult(cached.provider, modelDef);
|
|
929
|
+
return this.buildResult(cached.provider, modelDef, false);
|
|
903
930
|
}
|
|
904
|
-
return this.cacheAndReturn(modelName, createTestProvider(), modelDef, fingerprint);
|
|
931
|
+
return this.cacheAndReturn(modelName, createTestProvider(), modelDef, fingerprint, false);
|
|
905
932
|
}
|
|
906
933
|
const apiKey = this.getApiKeyForProvider(providerName, env);
|
|
907
934
|
if (apiKey) {
|
|
@@ -918,34 +945,47 @@ var init_ProviderRegistry = __esm({
|
|
|
918
945
|
const fingerprint = this.getProviderFingerprint(providerName, modelDef, config);
|
|
919
946
|
const cached = this.providerCache.get(modelName);
|
|
920
947
|
if (cached?.fingerprint === fingerprint) {
|
|
921
|
-
return this.buildResult(cached.provider, modelDef);
|
|
948
|
+
return this.buildResult(cached.provider, modelDef, false);
|
|
922
949
|
}
|
|
923
|
-
return this.cacheAndReturn(modelName, providerFactory(config), modelDef, fingerprint);
|
|
950
|
+
return this.cacheAndReturn(modelName, providerFactory(config), modelDef, fingerprint, false);
|
|
924
951
|
}
|
|
925
952
|
if (this.providerOverrideFn) {
|
|
926
953
|
const overrideFingerprint = this.getProviderFingerprint(`override:${this.providerOverrideRevision}`, modelDef);
|
|
927
954
|
const overrideCached = this.providerCache.get(modelName);
|
|
928
955
|
if (overrideCached?.fingerprint === overrideFingerprint) {
|
|
929
|
-
return this.buildResult(overrideCached.provider, modelDef);
|
|
956
|
+
return this.buildResult(overrideCached.provider, modelDef, true);
|
|
930
957
|
}
|
|
931
958
|
const overrideProvider = this.providerOverrideFn(modelName, modelDef, env);
|
|
932
959
|
if (overrideProvider) {
|
|
933
|
-
return this.cacheAndReturn(modelName, overrideProvider, modelDef, overrideFingerprint);
|
|
960
|
+
return this.cacheAndReturn(modelName, overrideProvider, modelDef, overrideFingerprint, true);
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
const routing = resolvePlatformRouting(providerName, env);
|
|
964
|
+
if (routing) {
|
|
965
|
+
const config = {
|
|
966
|
+
apiKey: routing.apiKey,
|
|
967
|
+
baseUrl: routing.baseUrl
|
|
968
|
+
};
|
|
969
|
+
const fingerprint = this.getProviderFingerprint(`platform:${providerName}`, modelDef, config);
|
|
970
|
+
const cached = this.providerCache.get(modelName);
|
|
971
|
+
if (cached?.fingerprint === fingerprint) {
|
|
972
|
+
return this.buildResult(cached.provider, modelDef, true);
|
|
934
973
|
}
|
|
974
|
+
return this.cacheAndReturn(modelName, providerFactory(config), modelDef, fingerprint, true);
|
|
935
975
|
}
|
|
936
976
|
throw new Error(`No API key found for provider: ${providerName}. Set the provider key or STANDARD_AGENTS_API_KEY.`);
|
|
937
977
|
}
|
|
938
|
-
buildResult(provider, modelDef) {
|
|
939
|
-
return { provider, modelName: modelDef.model, modelDef };
|
|
978
|
+
buildResult(provider, modelDef, viaPlatform) {
|
|
979
|
+
return { provider, modelName: modelDef.model, modelDef, viaPlatform };
|
|
940
980
|
}
|
|
941
|
-
cacheAndReturn(modelName, provider, modelDef, fingerprint) {
|
|
942
|
-
this.providerCache.set(modelName, { provider, fingerprint });
|
|
943
|
-
return this.buildResult(provider, modelDef);
|
|
981
|
+
cacheAndReturn(modelName, provider, modelDef, fingerprint, viaPlatform) {
|
|
982
|
+
this.providerCache.set(modelName, { provider, fingerprint, viaPlatform });
|
|
983
|
+
return this.buildResult(provider, modelDef, viaPlatform);
|
|
944
984
|
}
|
|
945
985
|
getProviderFingerprint(providerName, modelDef, config) {
|
|
946
986
|
return JSON.stringify({
|
|
947
987
|
providerName,
|
|
948
|
-
baseUrl: modelDef.providerOptions?.baseUrl ?? null,
|
|
988
|
+
baseUrl: config?.baseUrl ?? modelDef.providerOptions?.baseUrl ?? null,
|
|
949
989
|
apiKey: config?.apiKey ?? null,
|
|
950
990
|
accountId: config?.accountId ?? null
|
|
951
991
|
});
|
|
@@ -1621,7 +1661,7 @@ var init_LLMRequest = __esm({
|
|
|
1621
1661
|
*/
|
|
1622
1662
|
static async callModel(modelId, context, state, logId) {
|
|
1623
1663
|
const { ProviderRegistry: ProviderRegistry2 } = await Promise.resolve().then(() => (init_providers(), providers_exports));
|
|
1624
|
-
const { provider, modelName, modelDef } = await ProviderRegistry2.getProvider(
|
|
1664
|
+
const { provider, modelName, modelDef, viaPlatform } = await ProviderRegistry2.getProvider(
|
|
1625
1665
|
modelId,
|
|
1626
1666
|
state.env,
|
|
1627
1667
|
state.thread.instance
|
|
@@ -1755,6 +1795,7 @@ var init_LLMRequest = __esm({
|
|
|
1755
1795
|
}
|
|
1756
1796
|
};
|
|
1757
1797
|
response._provider = provider;
|
|
1798
|
+
response._viaPlatform = viaPlatform;
|
|
1758
1799
|
response._providerResponseId = providerResponseId;
|
|
1759
1800
|
response._aggregate_response = {
|
|
1760
1801
|
id: responseId,
|
|
@@ -1832,7 +1873,7 @@ var init_LLMRequest = __esm({
|
|
|
1832
1873
|
try {
|
|
1833
1874
|
const toolsCalled = response.tool_calls ? JSON.stringify(response.tool_calls.map((tc) => tc.function.name)) : null;
|
|
1834
1875
|
const providerName = response._provider?.name;
|
|
1835
|
-
const standardAgentsRouterUsed = providerName === "platform";
|
|
1876
|
+
const standardAgentsRouterUsed = response._viaPlatform === true || providerName === "platform";
|
|
1836
1877
|
const resolvedPricing = resolveModelPricing(modelDef, providerName);
|
|
1837
1878
|
const calculatedCost = calculateUsageCost(response.usage, resolvedPricing);
|
|
1838
1879
|
const providerReportedCost = typeof response.usage.cost === "number" ? response.usage.cost : typeof response.usage.cost === "string" ? parseFloat(response.usage.cost) : null;
|
|
@@ -5937,7 +5978,7 @@ var init_FlowEngine = __esm({
|
|
|
5937
5978
|
max_session_turns: newAgentDef.maxSessionTurns ?? null,
|
|
5938
5979
|
side_a_label: newAgentDef.sideA?.label ?? null,
|
|
5939
5980
|
side_a_agent_prompt: newAgentDef.sideA?.prompt ?? null,
|
|
5940
|
-
side_a_stop_on_response: newAgentDef.sideA?.stopOnResponse ??
|
|
5981
|
+
side_a_stop_on_response: newAgentDef.sideA?.stopOnResponse ?? true,
|
|
5941
5982
|
side_a_stop_tool: newAgentDef.sideA?.stopTool ?? null,
|
|
5942
5983
|
side_a_stop_tool_response_property: newAgentDef.sideA?.stopToolResponseProperty ?? null,
|
|
5943
5984
|
side_a_max_steps: newAgentDef.sideA?.maxSteps ?? null,
|
|
@@ -5952,7 +5993,7 @@ var init_FlowEngine = __esm({
|
|
|
5952
5993
|
side_a_session_status_attachments_property: sideASession.status.attachmentsProperty,
|
|
5953
5994
|
side_b_label: newAgentDef.sideB?.label ?? null,
|
|
5954
5995
|
side_b_agent_prompt: newAgentDef.sideB?.prompt ?? null,
|
|
5955
|
-
side_b_stop_on_response: newAgentDef.sideB?.stopOnResponse ??
|
|
5996
|
+
side_b_stop_on_response: newAgentDef.sideB?.stopOnResponse ?? true,
|
|
5956
5997
|
side_b_stop_tool: newAgentDef.sideB?.stopTool ?? null,
|
|
5957
5998
|
side_b_stop_tool_response_property: newAgentDef.sideB?.stopToolResponseProperty ?? null,
|
|
5958
5999
|
side_b_max_steps: newAgentDef.sideB?.maxSteps ?? null,
|
|
@@ -17433,7 +17474,7 @@ ${resultContent}${attachmentSummary}`;
|
|
|
17433
17474
|
max_session_turns: agentDef.maxSessionTurns,
|
|
17434
17475
|
side_a_label: agentDef.sideA?.label,
|
|
17435
17476
|
side_a_agent_prompt: qualifyPromptName(agentDef.sideA?.prompt),
|
|
17436
|
-
side_a_stop_on_response: agentDef.sideA?.stopOnResponse ??
|
|
17477
|
+
side_a_stop_on_response: agentDef.sideA?.stopOnResponse ?? true,
|
|
17437
17478
|
side_a_stop_tool: agentDef.sideA?.stopTool,
|
|
17438
17479
|
side_a_stop_tool_response_property: agentDef.sideA?.stopToolResponseProperty,
|
|
17439
17480
|
side_a_max_steps: agentDef.sideA?.maxSteps,
|
|
@@ -17448,7 +17489,7 @@ ${resultContent}${attachmentSummary}`;
|
|
|
17448
17489
|
side_a_session_status_attachments_property: sideASession.status.attachmentsProperty,
|
|
17449
17490
|
side_b_label: agentDef.sideB?.label,
|
|
17450
17491
|
side_b_agent_prompt: qualifyPromptName(agentDef.sideB?.prompt),
|
|
17451
|
-
side_b_stop_on_response: agentDef.sideB?.stopOnResponse ??
|
|
17492
|
+
side_b_stop_on_response: agentDef.sideB?.stopOnResponse ?? true,
|
|
17452
17493
|
side_b_stop_tool: agentDef.sideB?.stopTool,
|
|
17453
17494
|
side_b_stop_tool_response_property: agentDef.sideB?.stopToolResponseProperty,
|
|
17454
17495
|
side_b_max_steps: agentDef.sideB?.maxSteps,
|
|
@@ -17626,7 +17667,7 @@ ${resultContent}${attachmentSummary}`;
|
|
|
17626
17667
|
max_session_turns: agentDef.maxSessionTurns,
|
|
17627
17668
|
side_a_label: agentDef.sideA?.label,
|
|
17628
17669
|
side_a_agent_prompt: qualifyPromptName(agentDef.sideA?.prompt),
|
|
17629
|
-
side_a_stop_on_response: agentDef.sideA?.stopOnResponse ??
|
|
17670
|
+
side_a_stop_on_response: agentDef.sideA?.stopOnResponse ?? true,
|
|
17630
17671
|
side_a_stop_tool: agentDef.sideA?.stopTool,
|
|
17631
17672
|
side_a_stop_tool_response_property: agentDef.sideA?.stopToolResponseProperty,
|
|
17632
17673
|
side_a_max_steps: agentDef.sideA?.maxSteps,
|
|
@@ -17641,7 +17682,7 @@ ${resultContent}${attachmentSummary}`;
|
|
|
17641
17682
|
side_a_session_status_attachments_property: sideASession.status.attachmentsProperty,
|
|
17642
17683
|
side_b_label: agentDef.sideB?.label,
|
|
17643
17684
|
side_b_agent_prompt: qualifyPromptName(agentDef.sideB?.prompt),
|
|
17644
|
-
side_b_stop_on_response: agentDef.sideB?.stopOnResponse ??
|
|
17685
|
+
side_b_stop_on_response: agentDef.sideB?.stopOnResponse ?? true,
|
|
17645
17686
|
side_b_stop_tool: agentDef.sideB?.stopTool,
|
|
17646
17687
|
side_b_stop_tool_response_property: agentDef.sideB?.stopToolResponseProperty,
|
|
17647
17688
|
side_b_max_steps: agentDef.sideB?.maxSteps,
|
|
@@ -17772,7 +17813,7 @@ ${resultContent}${attachmentSummary}`;
|
|
|
17772
17813
|
max_session_turns: agentDef.maxSessionTurns,
|
|
17773
17814
|
side_a_label: agentDef.sideA?.label,
|
|
17774
17815
|
side_a_agent_prompt: qualifyPromptName(agentDef.sideA?.prompt),
|
|
17775
|
-
side_a_stop_on_response: agentDef.sideA?.stopOnResponse ??
|
|
17816
|
+
side_a_stop_on_response: agentDef.sideA?.stopOnResponse ?? true,
|
|
17776
17817
|
side_a_stop_tool: agentDef.sideA?.stopTool,
|
|
17777
17818
|
side_a_stop_tool_response_property: agentDef.sideA?.stopToolResponseProperty,
|
|
17778
17819
|
side_a_max_steps: agentDef.sideA?.maxSteps,
|
|
@@ -17787,7 +17828,7 @@ ${resultContent}${attachmentSummary}`;
|
|
|
17787
17828
|
side_a_session_status_attachments_property: sideASession.status.attachmentsProperty,
|
|
17788
17829
|
side_b_label: agentDef.sideB?.label,
|
|
17789
17830
|
side_b_agent_prompt: qualifyPromptName(agentDef.sideB?.prompt),
|
|
17790
|
-
side_b_stop_on_response: agentDef.sideB?.stopOnResponse ??
|
|
17831
|
+
side_b_stop_on_response: agentDef.sideB?.stopOnResponse ?? true,
|
|
17791
17832
|
side_b_stop_tool: agentDef.sideB?.stopTool,
|
|
17792
17833
|
side_b_stop_tool_response_property: agentDef.sideB?.stopToolResponseProperty,
|
|
17793
17834
|
side_b_max_steps: agentDef.sideB?.maxSteps,
|