@dogpile/sdk 0.1.0
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/CHANGELOG.md +37 -0
- package/LICENSE +16 -0
- package/README.md +842 -0
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +4493 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +44 -0
- package/dist/providers/openai-compatible.d.ts.map +1 -0
- package/dist/providers/openai-compatible.js +305 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/runtime/broadcast.d.ts +18 -0
- package/dist/runtime/broadcast.d.ts.map +1 -0
- package/dist/runtime/broadcast.js +335 -0
- package/dist/runtime/broadcast.js.map +1 -0
- package/dist/runtime/cancellation.d.ts +6 -0
- package/dist/runtime/cancellation.d.ts.map +1 -0
- package/dist/runtime/cancellation.js +35 -0
- package/dist/runtime/cancellation.js.map +1 -0
- package/dist/runtime/coordinator.d.ts +18 -0
- package/dist/runtime/coordinator.d.ts.map +1 -0
- package/dist/runtime/coordinator.js +434 -0
- package/dist/runtime/coordinator.js.map +1 -0
- package/dist/runtime/decisions.d.ts +5 -0
- package/dist/runtime/decisions.d.ts.map +1 -0
- package/dist/runtime/decisions.js +31 -0
- package/dist/runtime/decisions.js.map +1 -0
- package/dist/runtime/defaults.d.ts +63 -0
- package/dist/runtime/defaults.d.ts.map +1 -0
- package/dist/runtime/defaults.js +426 -0
- package/dist/runtime/defaults.js.map +1 -0
- package/dist/runtime/engine.d.ts +79 -0
- package/dist/runtime/engine.d.ts.map +1 -0
- package/dist/runtime/engine.js +723 -0
- package/dist/runtime/engine.js.map +1 -0
- package/dist/runtime/model.d.ts +14 -0
- package/dist/runtime/model.d.ts.map +1 -0
- package/dist/runtime/model.js +82 -0
- package/dist/runtime/model.js.map +1 -0
- package/dist/runtime/sequential.d.ts +18 -0
- package/dist/runtime/sequential.d.ts.map +1 -0
- package/dist/runtime/sequential.js +277 -0
- package/dist/runtime/sequential.js.map +1 -0
- package/dist/runtime/shared.d.ts +18 -0
- package/dist/runtime/shared.d.ts.map +1 -0
- package/dist/runtime/shared.js +288 -0
- package/dist/runtime/shared.js.map +1 -0
- package/dist/runtime/termination.d.ts +77 -0
- package/dist/runtime/termination.d.ts.map +1 -0
- package/dist/runtime/termination.js +355 -0
- package/dist/runtime/termination.js.map +1 -0
- package/dist/runtime/tools.d.ts +314 -0
- package/dist/runtime/tools.d.ts.map +1 -0
- package/dist/runtime/tools.js +969 -0
- package/dist/runtime/tools.js.map +1 -0
- package/dist/runtime/validation.d.ts +23 -0
- package/dist/runtime/validation.d.ts.map +1 -0
- package/dist/runtime/validation.js +656 -0
- package/dist/runtime/validation.js.map +1 -0
- package/dist/types.d.ts +2434 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +81 -0
- package/dist/types.js.map +1 -0
- package/package.json +157 -0
- package/src/browser/index.ts +7 -0
- package/src/index.ts +195 -0
- package/src/providers/openai-compatible.ts +406 -0
- package/src/runtime/broadcast.test.ts +355 -0
- package/src/runtime/broadcast.ts +428 -0
- package/src/runtime/cancellation.ts +40 -0
- package/src/runtime/coordinator.test.ts +468 -0
- package/src/runtime/coordinator.ts +581 -0
- package/src/runtime/decisions.ts +38 -0
- package/src/runtime/defaults.ts +547 -0
- package/src/runtime/engine.ts +880 -0
- package/src/runtime/model.ts +117 -0
- package/src/runtime/sequential.test.ts +262 -0
- package/src/runtime/sequential.ts +357 -0
- package/src/runtime/shared.test.ts +265 -0
- package/src/runtime/shared.ts +367 -0
- package/src/runtime/termination.ts +463 -0
- package/src/runtime/tools.ts +1518 -0
- package/src/runtime/validation.ts +771 -0
- package/src/types.ts +2729 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public Dogpile SDK exports.
|
|
3
|
+
*
|
|
4
|
+
* The primary high-level entrypoints are `run()`, `stream()`, and
|
|
5
|
+
* `Dogpile.pile()`. Types exported from this module describe the single-call
|
|
6
|
+
* result shape, streaming events, serializable traces, transcripts, and the
|
|
7
|
+
* low-level engine escape hatch.
|
|
8
|
+
*/
|
|
9
|
+
export { Dogpile, createEngine, replay, replayStream, run, stream } from "./runtime/engine.js";
|
|
10
|
+
export { createOpenAICompatibleProvider } from "./providers/openai-compatible.js";
|
|
11
|
+
export { DogpileError } from "./types.js";
|
|
12
|
+
export type { OpenAICompatibleChatCompletionChoice, OpenAICompatibleChatCompletionResponse, OpenAICompatibleFetch, OpenAICompatibleProviderCostContext, OpenAICompatibleProviderCostEstimator, OpenAICompatibleProviderOptions, OpenAICompatibleUsage } from "./providers/openai-compatible.js";
|
|
13
|
+
export { builtInDogpileToolIdentity, builtInDogpileToolInputSchema, builtInDogpileToolPermissions, createCodeExecToolAdapter, createRuntimeToolExecutor, createWebSearchToolAdapter, normalizeBuiltInDogpileTool, normalizeBuiltInDogpileTools, normalizeRuntimeToolAdapterError, runtimeToolAvailability, runtimeToolManifest, validateBuiltInDogpileToolInput } from "./runtime/tools.js";
|
|
14
|
+
export type { BuiltInDogpileRuntimeTool, BuiltInDogpileToolDefinition, BuiltInDogpileToolExecutors, BuiltInDogpileToolIdentityOptions, CodeExecDogpileToolDefinition, CodeExecSandboxExecutor, CodeExecToolAdapterOptions, CodeExecToolExecutor, CodeExecToolInput, CodeExecToolLanguage, CodeExecToolOutput, DogpileBuiltInToolName, RuntimeToolExecutorOptions, WebSearchDogpileToolDefinition, WebSearchFetch, WebSearchFetchRequest, WebSearchFetchRequestBuilder, WebSearchFetchResponseParser, WebSearchToolAdapterOptions, WebSearchToolExecutor, WebSearchToolInput, WebSearchToolOutput, WebSearchToolResult } from "./runtime/tools.js";
|
|
15
|
+
export { budget, combineTerminationDecisions, convergence, evaluateBudget, evaluateConvergence, evaluateFirstOf, evaluateJudge, evaluateTermination, evaluateTerminationStop, firstOf, judge } from "./runtime/termination.js";
|
|
16
|
+
export type { AgentSpec, AgentDecision, AgentParticipation, BroadcastContribution, BroadcastEvent, BroadcastProtocolConfig, Budget, BudgetCaps, BudgetCostTierOptions, BudgetTier, BudgetStopEvent, BudgetStopReason, BudgetTerminationCondition, ConfiguredModelProvider, ConvergenceTerminationCondition, CoordinationProtocolSelection, CostSummary, CoordinatorProtocolConfig, DogpileErrorCode, DogpileErrorOptions, DogpileOptions, Engine, EngineOptions, FinalEvent, FirstOfTerminationCondition, FirstOfTerminationConditions, FirstOfTerminationInput, FirstOfTerminationOutput, FirstOfTerminationStopRecord, JudgeAcceptDecision, JudgeEvaluationDecision, JudgeRejectDecision, JudgeScoreDecision, JudgeStopReason, JudgeTerminationCondition, JsonObject, JsonPrimitive, JsonValue, ModelMessage, ModelActivityEvent, ModelFinishReason, ModelOutputChunk, ModelOutputChunkEvent, ModelRequestEvent, ModelRequest, ModelResponse, ModelResponseEvent, MissionIntent, NormalizedStopReason, NormalizedQualityScore, ContinueTerminationDecision, Protocol, ProtocolConfig, ProtocolName, ProtocolSelection, PrimitiveTerminationCondition, ReplayTraceBudget, ReplayTraceBudgetStateChange, ReplayTraceFinalOutput, ReplayTraceProtocolDecision, ReplayTraceProtocolDecisionType, ReplayTraceProviderCall, ReplayTraceRunInputs, ReplayTraceSchemaVersion, ReplayTraceSeed, RoleAssignmentEvent, RunAccounting, RunEvaluation, RunEvaluator, RunEventLog, RunEvent, RunMetadata, RunResult, RunUsage, RuntimeTool, RuntimeToolAdapterContract, RuntimeToolAdapterError, RuntimeToolAdapterErrorCode, RuntimeToolCodeExecutionPermission, RuntimeToolCustomPermission, RuntimeToolError, RuntimeToolErrorResult, RuntimeToolExecutionContext, RuntimeToolExecutionRequest, RuntimeToolExecutor, RuntimeToolIdentity, RuntimeToolInputSchema, RuntimeToolNetworkPermission, RuntimeToolPermission, RuntimeToolResult, RuntimeToolSuccessResult, RuntimeToolTraceContext, RuntimeToolValidationInvalidResult, RuntimeToolValidationIssue, RuntimeToolValidationResult, RuntimeToolValidationValidResult, SharedProtocolConfig, SequentialProtocolConfig, StreamCompletionEvent, StreamErrorEvent, StreamEvent, StreamEventSubscriber, StreamHandle, StreamHandleStatus, StreamLifecycleEvent, StreamOutputEvent, StreamSubscription, StopTerminationDecision, TerminationCondition, TerminationDecision, TerminationEvaluationContext, TerminationStopRecord, Tier, ToolActivityEvent, ToolCallEvent, ToolResultEvent, Trace, Transcript, TranscriptEntry, TranscriptLink, TurnEvent } from "./types.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public Dogpile SDK exports.
|
|
3
|
+
*
|
|
4
|
+
* The primary high-level entrypoints are `run()`, `stream()`, and
|
|
5
|
+
* `Dogpile.pile()`. Types exported from this module describe the single-call
|
|
6
|
+
* result shape, streaming events, serializable traces, transcripts, and the
|
|
7
|
+
* low-level engine escape hatch.
|
|
8
|
+
*/
|
|
9
|
+
export { Dogpile, createEngine, replay, replayStream, run, stream } from "./runtime/engine.js";
|
|
10
|
+
export { createOpenAICompatibleProvider } from "./providers/openai-compatible.js";
|
|
11
|
+
export { DogpileError } from "./types.js";
|
|
12
|
+
export { builtInDogpileToolIdentity, builtInDogpileToolInputSchema, builtInDogpileToolPermissions, createCodeExecToolAdapter, createRuntimeToolExecutor, createWebSearchToolAdapter, normalizeBuiltInDogpileTool, normalizeBuiltInDogpileTools, normalizeRuntimeToolAdapterError, runtimeToolAvailability, runtimeToolManifest, validateBuiltInDogpileToolInput } from "./runtime/tools.js";
|
|
13
|
+
export { budget, combineTerminationDecisions, convergence, evaluateBudget, evaluateConvergence, evaluateFirstOf, evaluateJudge, evaluateTermination, evaluateTerminationStop, firstOf, judge } from "./runtime/termination.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU1C,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,uBAAuB,EACvB,mBAAmB,EACnB,+BAA+B,EAChC,MAAM,oBAAoB,CAAC;AA0B5B,OAAO,EACL,MAAM,EACN,2BAA2B,EAC3B,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,OAAO,EACP,KAAK,EACN,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ConfiguredModelProvider, JsonObject, ModelRequest, ModelResponse } from "../types.js";
|
|
2
|
+
export type OpenAICompatibleFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
3
|
+
export interface OpenAICompatibleProviderCostContext {
|
|
4
|
+
readonly providerId: string;
|
|
5
|
+
readonly request: ModelRequest;
|
|
6
|
+
readonly response: OpenAICompatibleChatCompletionResponse;
|
|
7
|
+
readonly usage?: ModelResponse["usage"];
|
|
8
|
+
}
|
|
9
|
+
export type OpenAICompatibleProviderCostEstimator = (context: OpenAICompatibleProviderCostContext) => number | undefined;
|
|
10
|
+
export interface OpenAICompatibleProviderOptions {
|
|
11
|
+
readonly model: string;
|
|
12
|
+
readonly apiKey?: string;
|
|
13
|
+
readonly baseURL?: string | URL;
|
|
14
|
+
readonly path?: string;
|
|
15
|
+
readonly id?: string;
|
|
16
|
+
readonly headers?: Readonly<Record<string, string | undefined>>;
|
|
17
|
+
readonly fetch?: OpenAICompatibleFetch;
|
|
18
|
+
readonly maxOutputTokens?: number;
|
|
19
|
+
readonly extraBody?: JsonObject;
|
|
20
|
+
readonly costEstimator?: OpenAICompatibleProviderCostEstimator;
|
|
21
|
+
}
|
|
22
|
+
export interface OpenAICompatibleChatCompletionResponse {
|
|
23
|
+
readonly id?: string;
|
|
24
|
+
readonly object?: string;
|
|
25
|
+
readonly created?: number;
|
|
26
|
+
readonly model?: string;
|
|
27
|
+
readonly choices?: readonly OpenAICompatibleChatCompletionChoice[];
|
|
28
|
+
readonly usage?: OpenAICompatibleUsage;
|
|
29
|
+
}
|
|
30
|
+
export interface OpenAICompatibleChatCompletionChoice {
|
|
31
|
+
readonly finish_reason?: string | null;
|
|
32
|
+
readonly message?: {
|
|
33
|
+
readonly content?: unknown;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface OpenAICompatibleUsage extends JsonObject {
|
|
37
|
+
readonly prompt_tokens?: number;
|
|
38
|
+
readonly completion_tokens?: number;
|
|
39
|
+
readonly total_tokens?: number;
|
|
40
|
+
readonly input_tokens?: number;
|
|
41
|
+
readonly output_tokens?: number;
|
|
42
|
+
}
|
|
43
|
+
export declare function createOpenAICompatibleProvider(options: OpenAICompatibleProviderOptions): ConfiguredModelProvider;
|
|
44
|
+
//# sourceMappingURL=openai-compatible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EAEvB,UAAU,EAIV,YAAY,EACZ,aAAa,EACd,MAAM,aAAa,CAAC;AAKrB,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAExG,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,CAAC;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,qCAAqC,GAAG,CAClD,OAAO,EAAE,mCAAmC,KACzC,MAAM,GAAG,SAAS,CAAC;AAExB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,qCAAqC,CAAC;CAChE;AAED,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,oCAAoC,EAAE,CAAC;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,+BAA+B,GAAG,uBAAuB,CA0DhH"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { DogpileError } from "../types.js";
|
|
2
|
+
const defaultBaseURL = "https://api.openai.com/v1";
|
|
3
|
+
const defaultPath = "/chat/completions";
|
|
4
|
+
export function createOpenAICompatibleProvider(options) {
|
|
5
|
+
validateOptions(options);
|
|
6
|
+
const providerId = options.id ?? `openai-compatible:${options.model}`;
|
|
7
|
+
const fetchImplementation = options.fetch ?? globalThis.fetch?.bind(globalThis);
|
|
8
|
+
if (!fetchImplementation) {
|
|
9
|
+
throw new DogpileError({
|
|
10
|
+
code: "invalid-configuration",
|
|
11
|
+
message: "createOpenAICompatibleProvider() requires a fetch implementation in this runtime.",
|
|
12
|
+
retryable: false,
|
|
13
|
+
providerId,
|
|
14
|
+
detail: {
|
|
15
|
+
kind: "configuration-validation",
|
|
16
|
+
path: "fetch",
|
|
17
|
+
expected: "a fetch-compatible function"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
id: providerId,
|
|
23
|
+
async generate(request) {
|
|
24
|
+
const response = await fetchImplementation(createURL(options), {
|
|
25
|
+
method: "POST",
|
|
26
|
+
headers: createHeaders(options),
|
|
27
|
+
body: JSON.stringify(createBody(options, request)),
|
|
28
|
+
...(request.signal !== undefined ? { signal: request.signal } : {})
|
|
29
|
+
});
|
|
30
|
+
const payload = await readJson(response, providerId);
|
|
31
|
+
if (!response.ok) {
|
|
32
|
+
throw createProviderError(response, payload, providerId);
|
|
33
|
+
}
|
|
34
|
+
const completion = asChatCompletionResponse(payload, providerId);
|
|
35
|
+
const text = readAssistantText(completion, providerId);
|
|
36
|
+
const usage = normalizeUsage(completion.usage);
|
|
37
|
+
const finishReason = normalizeFinishReason(completion.choices?.[0]?.finish_reason);
|
|
38
|
+
const costUsd = options.costEstimator?.({
|
|
39
|
+
providerId,
|
|
40
|
+
request,
|
|
41
|
+
response: completion,
|
|
42
|
+
...(usage ? { usage } : {})
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
text,
|
|
46
|
+
...(finishReason !== undefined ? { finishReason } : {}),
|
|
47
|
+
...(usage ? { usage } : {}),
|
|
48
|
+
...(costUsd !== undefined ? { costUsd } : {}),
|
|
49
|
+
metadata: {
|
|
50
|
+
openAICompatible: responseMetadata(completion)
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function validateOptions(options) {
|
|
57
|
+
if (!isRecord(options)) {
|
|
58
|
+
throwInvalid("options", "an options object");
|
|
59
|
+
}
|
|
60
|
+
if (!isNonEmptyString(options.model)) {
|
|
61
|
+
throwInvalid("model", "a non-empty model id");
|
|
62
|
+
}
|
|
63
|
+
if (options.apiKey !== undefined && !isNonEmptyString(options.apiKey)) {
|
|
64
|
+
throwInvalid("apiKey", "a non-empty API key when provided");
|
|
65
|
+
}
|
|
66
|
+
if (options.id !== undefined && !isNonEmptyString(options.id)) {
|
|
67
|
+
throwInvalid("id", "a non-empty provider id when provided");
|
|
68
|
+
}
|
|
69
|
+
if (options.path !== undefined && !isNonEmptyString(options.path)) {
|
|
70
|
+
throwInvalid("path", "a non-empty request path when provided");
|
|
71
|
+
}
|
|
72
|
+
if (options.fetch !== undefined && typeof options.fetch !== "function") {
|
|
73
|
+
throwInvalid("fetch", "a fetch-compatible function when provided");
|
|
74
|
+
}
|
|
75
|
+
if (options.maxOutputTokens !== undefined && (!Number.isInteger(options.maxOutputTokens) || options.maxOutputTokens <= 0)) {
|
|
76
|
+
throwInvalid("maxOutputTokens", "a positive integer when provided");
|
|
77
|
+
}
|
|
78
|
+
if (options.costEstimator !== undefined && typeof options.costEstimator !== "function") {
|
|
79
|
+
throwInvalid("costEstimator", "a function when provided");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function throwInvalid(path, expected) {
|
|
83
|
+
throw new DogpileError({
|
|
84
|
+
code: "invalid-configuration",
|
|
85
|
+
message: `Invalid OpenAI-compatible provider option at ${path}.`,
|
|
86
|
+
retryable: false,
|
|
87
|
+
detail: {
|
|
88
|
+
kind: "configuration-validation",
|
|
89
|
+
path,
|
|
90
|
+
expected
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function createURL(options) {
|
|
95
|
+
const baseURL = new URL(String(options.baseURL ?? defaultBaseURL));
|
|
96
|
+
const path = options.path ?? defaultPath;
|
|
97
|
+
return new URL(path.startsWith("/") ? path.slice(1) : path, ensureTrailingSlash(baseURL));
|
|
98
|
+
}
|
|
99
|
+
function ensureTrailingSlash(url) {
|
|
100
|
+
const next = new URL(url);
|
|
101
|
+
if (!next.pathname.endsWith("/")) {
|
|
102
|
+
next.pathname = `${next.pathname}/`;
|
|
103
|
+
}
|
|
104
|
+
return next;
|
|
105
|
+
}
|
|
106
|
+
function createHeaders(options) {
|
|
107
|
+
const headers = new Headers();
|
|
108
|
+
for (const [key, value] of Object.entries(options.headers ?? {})) {
|
|
109
|
+
if (value !== undefined) {
|
|
110
|
+
headers.set(key, value);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
headers.set("content-type", "application/json");
|
|
114
|
+
if (options.apiKey !== undefined && !headers.has("authorization")) {
|
|
115
|
+
headers.set("authorization", `Bearer ${options.apiKey}`);
|
|
116
|
+
}
|
|
117
|
+
return headers;
|
|
118
|
+
}
|
|
119
|
+
function createBody(options, request) {
|
|
120
|
+
return {
|
|
121
|
+
...(options.extraBody ?? {}),
|
|
122
|
+
model: options.model,
|
|
123
|
+
messages: request.messages.map(toChatMessage),
|
|
124
|
+
temperature: request.temperature,
|
|
125
|
+
...(options.maxOutputTokens !== undefined ? { max_tokens: options.maxOutputTokens } : {})
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function toChatMessage(message) {
|
|
129
|
+
return {
|
|
130
|
+
role: message.role,
|
|
131
|
+
content: message.content
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
async function readJson(response, providerId) {
|
|
135
|
+
try {
|
|
136
|
+
return await response.json();
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
throw new DogpileError({
|
|
140
|
+
code: "provider-invalid-response",
|
|
141
|
+
message: "OpenAI-compatible provider returned a non-JSON response.",
|
|
142
|
+
cause: error,
|
|
143
|
+
retryable: response.status >= 500,
|
|
144
|
+
providerId,
|
|
145
|
+
detail: {
|
|
146
|
+
statusCode: response.status,
|
|
147
|
+
statusText: response.statusText
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function asChatCompletionResponse(payload, providerId) {
|
|
153
|
+
if (!isRecord(payload)) {
|
|
154
|
+
throw new DogpileError({
|
|
155
|
+
code: "provider-invalid-response",
|
|
156
|
+
message: "OpenAI-compatible provider response must be a JSON object.",
|
|
157
|
+
retryable: true,
|
|
158
|
+
providerId
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return payload;
|
|
162
|
+
}
|
|
163
|
+
function readAssistantText(response, providerId) {
|
|
164
|
+
const content = response.choices?.[0]?.message?.content;
|
|
165
|
+
const text = normalizeContent(content);
|
|
166
|
+
if (!text) {
|
|
167
|
+
throw new DogpileError({
|
|
168
|
+
code: "provider-invalid-response",
|
|
169
|
+
message: "OpenAI-compatible provider response did not include assistant text.",
|
|
170
|
+
retryable: true,
|
|
171
|
+
providerId
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return text;
|
|
175
|
+
}
|
|
176
|
+
function normalizeContent(content) {
|
|
177
|
+
if (typeof content === "string") {
|
|
178
|
+
return content;
|
|
179
|
+
}
|
|
180
|
+
if (!Array.isArray(content)) {
|
|
181
|
+
return "";
|
|
182
|
+
}
|
|
183
|
+
return content
|
|
184
|
+
.map((part) => {
|
|
185
|
+
if (!isRecord(part)) {
|
|
186
|
+
return "";
|
|
187
|
+
}
|
|
188
|
+
const text = part.text;
|
|
189
|
+
return typeof text === "string" ? text : "";
|
|
190
|
+
})
|
|
191
|
+
.filter(Boolean)
|
|
192
|
+
.join("");
|
|
193
|
+
}
|
|
194
|
+
function normalizeUsage(usage) {
|
|
195
|
+
if (!usage) {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
const inputTokens = readTokenCount(usage.prompt_tokens ?? usage.input_tokens);
|
|
199
|
+
const outputTokens = readTokenCount(usage.completion_tokens ?? usage.output_tokens);
|
|
200
|
+
const totalTokens = readTokenCount(usage.total_tokens) ?? sumIfPresent(inputTokens, outputTokens);
|
|
201
|
+
if (inputTokens === undefined || outputTokens === undefined || totalTokens === undefined) {
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
inputTokens,
|
|
206
|
+
outputTokens,
|
|
207
|
+
totalTokens
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function readTokenCount(value) {
|
|
211
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
|
212
|
+
}
|
|
213
|
+
function sumIfPresent(left, right) {
|
|
214
|
+
return left === undefined || right === undefined ? undefined : left + right;
|
|
215
|
+
}
|
|
216
|
+
function normalizeFinishReason(reason) {
|
|
217
|
+
switch (reason) {
|
|
218
|
+
case "stop":
|
|
219
|
+
return "stop";
|
|
220
|
+
case "length":
|
|
221
|
+
return "length";
|
|
222
|
+
case "content_filter":
|
|
223
|
+
case "content-filter":
|
|
224
|
+
return "content-filter";
|
|
225
|
+
case "tool_calls":
|
|
226
|
+
case "tool-calls":
|
|
227
|
+
return "tool-calls";
|
|
228
|
+
case undefined:
|
|
229
|
+
case null:
|
|
230
|
+
return undefined;
|
|
231
|
+
default:
|
|
232
|
+
return "other";
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function responseMetadata(response) {
|
|
236
|
+
return removeUndefined({
|
|
237
|
+
id: response.id,
|
|
238
|
+
object: response.object,
|
|
239
|
+
created: response.created,
|
|
240
|
+
model: response.model,
|
|
241
|
+
usage: isJsonValue(response.usage) ? response.usage : undefined
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
function createProviderError(response, payload, providerId) {
|
|
245
|
+
return new DogpileError({
|
|
246
|
+
code: codeForStatus(response.status),
|
|
247
|
+
message: errorMessage(response, payload),
|
|
248
|
+
retryable: response.status === 408 || response.status === 429 || response.status >= 500,
|
|
249
|
+
providerId,
|
|
250
|
+
detail: removeUndefined({
|
|
251
|
+
statusCode: response.status,
|
|
252
|
+
statusText: response.statusText,
|
|
253
|
+
response: isJsonValue(payload) ? payload : undefined
|
|
254
|
+
})
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
function codeForStatus(status) {
|
|
258
|
+
if (status === 401 || status === 403) {
|
|
259
|
+
return "provider-authentication";
|
|
260
|
+
}
|
|
261
|
+
if (status === 404) {
|
|
262
|
+
return "provider-not-found";
|
|
263
|
+
}
|
|
264
|
+
if (status === 408 || status === 504) {
|
|
265
|
+
return "provider-timeout";
|
|
266
|
+
}
|
|
267
|
+
if (status === 429) {
|
|
268
|
+
return "provider-rate-limited";
|
|
269
|
+
}
|
|
270
|
+
if (status >= 500) {
|
|
271
|
+
return "provider-unavailable";
|
|
272
|
+
}
|
|
273
|
+
if (status >= 400) {
|
|
274
|
+
return "provider-invalid-request";
|
|
275
|
+
}
|
|
276
|
+
return "provider-error";
|
|
277
|
+
}
|
|
278
|
+
function errorMessage(response, payload) {
|
|
279
|
+
const providerMessage = isRecord(payload) && isRecord(payload.error) && typeof payload.error.message === "string"
|
|
280
|
+
? payload.error.message
|
|
281
|
+
: undefined;
|
|
282
|
+
return providerMessage ?? `OpenAI-compatible provider request failed with HTTP ${response.status}.`;
|
|
283
|
+
}
|
|
284
|
+
function removeUndefined(values) {
|
|
285
|
+
return Object.fromEntries(Object.entries(values).filter(([, value]) => value !== undefined));
|
|
286
|
+
}
|
|
287
|
+
function isRecord(value) {
|
|
288
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
289
|
+
}
|
|
290
|
+
function isNonEmptyString(value) {
|
|
291
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
292
|
+
}
|
|
293
|
+
function isJsonValue(value) {
|
|
294
|
+
if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
295
|
+
return typeof value !== "number" || Number.isFinite(value);
|
|
296
|
+
}
|
|
297
|
+
if (Array.isArray(value)) {
|
|
298
|
+
return value.every(isJsonValue);
|
|
299
|
+
}
|
|
300
|
+
if (isRecord(value)) {
|
|
301
|
+
return Object.values(value).every(isJsonValue);
|
|
302
|
+
}
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=openai-compatible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AgentSpec, BroadcastProtocolConfig, ConfiguredModelProvider, DogpileOptions, JsonObject, JsonValue, RuntimeTool, RunEvent, RunResult, TerminationCondition, Tier } from "../types.js";
|
|
2
|
+
interface BroadcastRunOptions {
|
|
3
|
+
readonly intent: string;
|
|
4
|
+
readonly protocol: BroadcastProtocolConfig;
|
|
5
|
+
readonly tier: Tier;
|
|
6
|
+
readonly model: ConfiguredModelProvider;
|
|
7
|
+
readonly agents: readonly AgentSpec[];
|
|
8
|
+
readonly tools: readonly RuntimeTool<JsonObject, JsonValue>[];
|
|
9
|
+
readonly temperature: number;
|
|
10
|
+
readonly budget?: DogpileOptions["budget"];
|
|
11
|
+
readonly seed?: string | number;
|
|
12
|
+
readonly signal?: AbortSignal;
|
|
13
|
+
readonly terminate?: TerminationCondition;
|
|
14
|
+
readonly emit?: (event: RunEvent) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function runBroadcast(options: BroadcastRunOptions): Promise<RunResult>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=broadcast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/runtime/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,uBAAuB,EACvB,uBAAuB,EAEvB,cAAc,EACd,UAAU,EACV,SAAS,EAKT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,oBAAoB,EAEpB,IAAI,EAEL,MAAM,aAAa,CAAC;AAsBrB,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CA4TnF"}
|