@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.
Files changed (88) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/LICENSE +16 -0
  3. package/README.md +842 -0
  4. package/dist/browser/index.d.ts +8 -0
  5. package/dist/browser/index.d.ts.map +1 -0
  6. package/dist/browser/index.js +4493 -0
  7. package/dist/browser/index.js.map +1 -0
  8. package/dist/index.d.ts +17 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +14 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/providers/openai-compatible.d.ts +44 -0
  13. package/dist/providers/openai-compatible.d.ts.map +1 -0
  14. package/dist/providers/openai-compatible.js +305 -0
  15. package/dist/providers/openai-compatible.js.map +1 -0
  16. package/dist/runtime/broadcast.d.ts +18 -0
  17. package/dist/runtime/broadcast.d.ts.map +1 -0
  18. package/dist/runtime/broadcast.js +335 -0
  19. package/dist/runtime/broadcast.js.map +1 -0
  20. package/dist/runtime/cancellation.d.ts +6 -0
  21. package/dist/runtime/cancellation.d.ts.map +1 -0
  22. package/dist/runtime/cancellation.js +35 -0
  23. package/dist/runtime/cancellation.js.map +1 -0
  24. package/dist/runtime/coordinator.d.ts +18 -0
  25. package/dist/runtime/coordinator.d.ts.map +1 -0
  26. package/dist/runtime/coordinator.js +434 -0
  27. package/dist/runtime/coordinator.js.map +1 -0
  28. package/dist/runtime/decisions.d.ts +5 -0
  29. package/dist/runtime/decisions.d.ts.map +1 -0
  30. package/dist/runtime/decisions.js +31 -0
  31. package/dist/runtime/decisions.js.map +1 -0
  32. package/dist/runtime/defaults.d.ts +63 -0
  33. package/dist/runtime/defaults.d.ts.map +1 -0
  34. package/dist/runtime/defaults.js +426 -0
  35. package/dist/runtime/defaults.js.map +1 -0
  36. package/dist/runtime/engine.d.ts +79 -0
  37. package/dist/runtime/engine.d.ts.map +1 -0
  38. package/dist/runtime/engine.js +723 -0
  39. package/dist/runtime/engine.js.map +1 -0
  40. package/dist/runtime/model.d.ts +14 -0
  41. package/dist/runtime/model.d.ts.map +1 -0
  42. package/dist/runtime/model.js +82 -0
  43. package/dist/runtime/model.js.map +1 -0
  44. package/dist/runtime/sequential.d.ts +18 -0
  45. package/dist/runtime/sequential.d.ts.map +1 -0
  46. package/dist/runtime/sequential.js +277 -0
  47. package/dist/runtime/sequential.js.map +1 -0
  48. package/dist/runtime/shared.d.ts +18 -0
  49. package/dist/runtime/shared.d.ts.map +1 -0
  50. package/dist/runtime/shared.js +288 -0
  51. package/dist/runtime/shared.js.map +1 -0
  52. package/dist/runtime/termination.d.ts +77 -0
  53. package/dist/runtime/termination.d.ts.map +1 -0
  54. package/dist/runtime/termination.js +355 -0
  55. package/dist/runtime/termination.js.map +1 -0
  56. package/dist/runtime/tools.d.ts +314 -0
  57. package/dist/runtime/tools.d.ts.map +1 -0
  58. package/dist/runtime/tools.js +969 -0
  59. package/dist/runtime/tools.js.map +1 -0
  60. package/dist/runtime/validation.d.ts +23 -0
  61. package/dist/runtime/validation.d.ts.map +1 -0
  62. package/dist/runtime/validation.js +656 -0
  63. package/dist/runtime/validation.js.map +1 -0
  64. package/dist/types.d.ts +2434 -0
  65. package/dist/types.d.ts.map +1 -0
  66. package/dist/types.js +81 -0
  67. package/dist/types.js.map +1 -0
  68. package/package.json +157 -0
  69. package/src/browser/index.ts +7 -0
  70. package/src/index.ts +195 -0
  71. package/src/providers/openai-compatible.ts +406 -0
  72. package/src/runtime/broadcast.test.ts +355 -0
  73. package/src/runtime/broadcast.ts +428 -0
  74. package/src/runtime/cancellation.ts +40 -0
  75. package/src/runtime/coordinator.test.ts +468 -0
  76. package/src/runtime/coordinator.ts +581 -0
  77. package/src/runtime/decisions.ts +38 -0
  78. package/src/runtime/defaults.ts +547 -0
  79. package/src/runtime/engine.ts +880 -0
  80. package/src/runtime/model.ts +117 -0
  81. package/src/runtime/sequential.test.ts +262 -0
  82. package/src/runtime/sequential.ts +357 -0
  83. package/src/runtime/shared.test.ts +265 -0
  84. package/src/runtime/shared.ts +367 -0
  85. package/src/runtime/termination.ts +463 -0
  86. package/src/runtime/tools.ts +1518 -0
  87. package/src/runtime/validation.ts +771 -0
  88. package/src/types.ts +2729 -0
@@ -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"}