@opengoat/core 2026.2.9 → 2026.2.13

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 (193) hide show
  1. package/README.md +3 -3
  2. package/dist/core/acp/application/acp-agent.js +4 -8
  3. package/dist/core/acp/application/acp-agent.js.map +1 -1
  4. package/dist/core/agents/application/agent-manifest.service.d.ts +1 -4
  5. package/dist/core/agents/application/agent-manifest.service.js +39 -52
  6. package/dist/core/agents/application/agent-manifest.service.js.map +1 -1
  7. package/dist/core/agents/application/agent.service.d.ts +42 -4
  8. package/dist/core/agents/application/agent.service.js +439 -55
  9. package/dist/core/agents/application/agent.service.js.map +1 -1
  10. package/dist/core/agents/domain/agent-manifest.d.ts +10 -4
  11. package/dist/core/agents/domain/agent-manifest.js +118 -25
  12. package/dist/core/agents/domain/agent-manifest.js.map +1 -1
  13. package/dist/core/agents/index.d.ts +1 -3
  14. package/dist/core/agents/index.js +1 -3
  15. package/dist/core/agents/index.js.map +1 -1
  16. package/dist/core/boards/application/board.service.d.ts +64 -0
  17. package/dist/core/boards/application/board.service.js +590 -0
  18. package/dist/core/boards/application/board.service.js.map +1 -0
  19. package/dist/core/boards/domain/board.d.ts +30 -0
  20. package/dist/core/boards/domain/board.js +2 -0
  21. package/dist/core/boards/domain/board.js.map +1 -0
  22. package/dist/core/boards/index.d.ts +2 -0
  23. package/dist/core/boards/index.js +2 -0
  24. package/dist/core/boards/index.js.map +1 -0
  25. package/dist/core/bootstrap/application/bootstrap.service.d.ts +1 -2
  26. package/dist/core/bootstrap/application/bootstrap.service.js +14 -19
  27. package/dist/core/bootstrap/application/bootstrap.service.js.map +1 -1
  28. package/dist/core/domain/agent-id.d.ts +1 -1
  29. package/dist/core/domain/agent-id.js +1 -1
  30. package/dist/core/domain/agent-id.js.map +1 -1
  31. package/dist/core/domain/agent.d.ts +31 -8
  32. package/dist/core/opengoat/application/opengoat.service.d.ts +106 -27
  33. package/dist/core/opengoat/application/opengoat.service.js +1006 -136
  34. package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
  35. package/dist/core/opengoat/index.d.ts +1 -0
  36. package/dist/core/orchestration/application/orchestration.service.d.ts +8 -21
  37. package/dist/core/orchestration/application/orchestration.service.js +59 -871
  38. package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
  39. package/dist/core/orchestration/application/routing.service.js +10 -8
  40. package/dist/core/orchestration/application/routing.service.js.map +1 -1
  41. package/dist/core/orchestration/domain/routing.d.ts +0 -17
  42. package/dist/core/orchestration/domain/run-events.d.ts +1 -1
  43. package/dist/core/orchestration/index.d.ts +0 -2
  44. package/dist/core/orchestration/index.js +0 -1
  45. package/dist/core/orchestration/index.js.map +1 -1
  46. package/dist/core/providers/application/provider.service.d.ts +15 -32
  47. package/dist/core/providers/application/provider.service.js +115 -201
  48. package/dist/core/providers/application/provider.service.js.map +1 -1
  49. package/dist/core/providers/cli-provider.d.ts +1 -0
  50. package/dist/core/providers/cli-provider.js +66 -1
  51. package/dist/core/providers/cli-provider.js.map +1 -1
  52. package/dist/core/providers/image-input.d.ts +16 -0
  53. package/dist/core/providers/image-input.js +158 -0
  54. package/dist/core/providers/image-input.js.map +1 -0
  55. package/dist/core/providers/index.d.ts +1 -7
  56. package/dist/core/providers/index.js +0 -13
  57. package/dist/core/providers/index.js.map +1 -1
  58. package/dist/core/providers/loader.js +1 -95
  59. package/dist/core/providers/loader.js.map +1 -1
  60. package/dist/core/providers/providers/openclaw/provider.js +213 -32
  61. package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
  62. package/dist/core/providers/types.d.ts +8 -3
  63. package/dist/core/scenarios/application/scenario-runner.service.d.ts +0 -1
  64. package/dist/core/scenarios/application/scenario-runner.service.js +30 -87
  65. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
  66. package/dist/core/scenarios/domain/scenario.d.ts +0 -15
  67. package/dist/core/sessions/application/session.service.d.ts +10 -4
  68. package/dist/core/sessions/application/session.service.js +87 -89
  69. package/dist/core/sessions/application/session.service.js.map +1 -1
  70. package/dist/core/sessions/domain/session.d.ts +3 -3
  71. package/dist/core/sessions/domain/transcript.d.ts +1 -1
  72. package/dist/core/sessions/index.d.ts +1 -1
  73. package/dist/core/sessions/index.js.map +1 -1
  74. package/dist/core/skills/application/skill.service.d.ts +2 -3
  75. package/dist/core/skills/application/skill.service.js +153 -56
  76. package/dist/core/skills/application/skill.service.js.map +1 -1
  77. package/dist/core/skills/domain/skill.d.ts +2 -2
  78. package/dist/core/skills/domain/skill.js +4 -2
  79. package/dist/core/skills/domain/skill.js.map +1 -1
  80. package/dist/core/templates/assets/ceo/AGENTS.md +20 -0
  81. package/dist/core/templates/assets/ceo/ROLE.md +13 -0
  82. package/dist/core/templates/assets/ceo/SOUL.md +15 -0
  83. package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +148 -0
  84. package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +140 -0
  85. package/dist/core/templates/default-templates.d.ts +12 -14
  86. package/dist/core/templates/default-templates.js +81 -213
  87. package/dist/core/templates/default-templates.js.map +1 -1
  88. package/dist/index.d.ts +1 -4
  89. package/dist/index.js +1 -4
  90. package/dist/index.js.map +1 -1
  91. package/package.json +16 -13
  92. package/dist/core/agents/application/workspace-context.service.d.ts +0 -28
  93. package/dist/core/agents/application/workspace-context.service.js +0 -157
  94. package/dist/core/agents/application/workspace-context.service.js.map +0 -1
  95. package/dist/core/agents/domain/workspace-context.d.ts +0 -13
  96. package/dist/core/agents/domain/workspace-context.js +0 -14
  97. package/dist/core/agents/domain/workspace-context.js.map +0 -1
  98. package/dist/core/gateway/domain/protocol.d.ts +0 -113
  99. package/dist/core/gateway/domain/protocol.js +0 -394
  100. package/dist/core/gateway/domain/protocol.js.map +0 -1
  101. package/dist/core/gateway/index.d.ts +0 -2
  102. package/dist/core/gateway/index.js +0 -2
  103. package/dist/core/gateway/index.js.map +0 -1
  104. package/dist/core/llm/application/vercel-ai-text-runtime.d.ts +0 -26
  105. package/dist/core/llm/application/vercel-ai-text-runtime.js +0 -223
  106. package/dist/core/llm/application/vercel-ai-text-runtime.js.map +0 -1
  107. package/dist/core/llm/domain/text-runtime.d.ts +0 -22
  108. package/dist/core/llm/domain/text-runtime.js +0 -2
  109. package/dist/core/llm/domain/text-runtime.js.map +0 -1
  110. package/dist/core/llm/index.d.ts +0 -2
  111. package/dist/core/llm/index.js +0 -2
  112. package/dist/core/llm/index.js.map +0 -1
  113. package/dist/core/orchestration/application/orchestration-planner.service.d.ts +0 -28
  114. package/dist/core/orchestration/application/orchestration-planner.service.js +0 -279
  115. package/dist/core/orchestration/application/orchestration-planner.service.js.map +0 -1
  116. package/dist/core/orchestration/domain/loop.d.ts +0 -119
  117. package/dist/core/orchestration/domain/loop.js +0 -2
  118. package/dist/core/orchestration/domain/loop.js.map +0 -1
  119. package/dist/core/plugins/application/plugin.service.d.ts +0 -32
  120. package/dist/core/plugins/application/plugin.service.js +0 -236
  121. package/dist/core/plugins/application/plugin.service.js.map +0 -1
  122. package/dist/core/plugins/domain/openclaw-compat.d.ts +0 -60
  123. package/dist/core/plugins/domain/openclaw-compat.js +0 -9
  124. package/dist/core/plugins/domain/openclaw-compat.js.map +0 -1
  125. package/dist/core/plugins/index.d.ts +0 -3
  126. package/dist/core/plugins/index.js +0 -3
  127. package/dist/core/plugins/index.js.map +0 -1
  128. package/dist/core/providers/onboarding.d.ts +0 -13
  129. package/dist/core/providers/onboarding.js +0 -149
  130. package/dist/core/providers/onboarding.js.map +0 -1
  131. package/dist/core/providers/providers/claude/index.d.ts +0 -4
  132. package/dist/core/providers/providers/claude/index.js +0 -19
  133. package/dist/core/providers/providers/claude/index.js.map +0 -1
  134. package/dist/core/providers/providers/claude/provider.d.ts +0 -8
  135. package/dist/core/providers/providers/claude/provider.js +0 -106
  136. package/dist/core/providers/providers/claude/provider.js.map +0 -1
  137. package/dist/core/providers/providers/codex/index.d.ts +0 -4
  138. package/dist/core/providers/providers/codex/index.js +0 -19
  139. package/dist/core/providers/providers/codex/index.js.map +0 -1
  140. package/dist/core/providers/providers/codex/provider.d.ts +0 -7
  141. package/dist/core/providers/providers/codex/provider.js +0 -31
  142. package/dist/core/providers/providers/codex/provider.js.map +0 -1
  143. package/dist/core/providers/providers/cursor/index.d.ts +0 -4
  144. package/dist/core/providers/providers/cursor/index.js +0 -19
  145. package/dist/core/providers/providers/cursor/index.js.map +0 -1
  146. package/dist/core/providers/providers/cursor/provider.d.ts +0 -11
  147. package/dist/core/providers/providers/cursor/provider.js +0 -90
  148. package/dist/core/providers/providers/cursor/provider.js.map +0 -1
  149. package/dist/core/providers/providers/extended-http/catalog.d.ts +0 -40
  150. package/dist/core/providers/providers/extended-http/catalog.js +0 -728
  151. package/dist/core/providers/providers/extended-http/catalog.js.map +0 -1
  152. package/dist/core/providers/providers/extended-http/index.d.ts +0 -5
  153. package/dist/core/providers/providers/extended-http/index.js +0 -13
  154. package/dist/core/providers/providers/extended-http/index.js.map +0 -1
  155. package/dist/core/providers/providers/extended-http/provider.d.ts +0 -31
  156. package/dist/core/providers/providers/extended-http/provider.js +0 -580
  157. package/dist/core/providers/providers/extended-http/provider.js.map +0 -1
  158. package/dist/core/providers/providers/gemini/index.d.ts +0 -4
  159. package/dist/core/providers/providers/gemini/index.js +0 -37
  160. package/dist/core/providers/providers/gemini/index.js.map +0 -1
  161. package/dist/core/providers/providers/gemini/provider.d.ts +0 -7
  162. package/dist/core/providers/providers/gemini/provider.js +0 -59
  163. package/dist/core/providers/providers/gemini/provider.js.map +0 -1
  164. package/dist/core/providers/providers/grok/index.d.ts +0 -4
  165. package/dist/core/providers/providers/grok/index.js +0 -41
  166. package/dist/core/providers/providers/grok/index.js.map +0 -1
  167. package/dist/core/providers/providers/grok/provider.d.ts +0 -13
  168. package/dist/core/providers/providers/grok/provider.js +0 -95
  169. package/dist/core/providers/providers/grok/provider.js.map +0 -1
  170. package/dist/core/providers/providers/openai/index.d.ts +0 -4
  171. package/dist/core/providers/providers/openai/index.js +0 -45
  172. package/dist/core/providers/providers/openai/index.js.map +0 -1
  173. package/dist/core/providers/providers/openai/provider.d.ts +0 -14
  174. package/dist/core/providers/providers/openai/provider.js +0 -203
  175. package/dist/core/providers/providers/openai/provider.js.map +0 -1
  176. package/dist/core/providers/providers/opencode/index.d.ts +0 -4
  177. package/dist/core/providers/providers/opencode/index.js +0 -23
  178. package/dist/core/providers/providers/opencode/index.js.map +0 -1
  179. package/dist/core/providers/providers/opencode/provider.d.ts +0 -11
  180. package/dist/core/providers/providers/opencode/provider.js +0 -215
  181. package/dist/core/providers/providers/opencode/provider.js.map +0 -1
  182. package/dist/core/providers/providers/openrouter/index.d.ts +0 -4
  183. package/dist/core/providers/providers/openrouter/index.js +0 -37
  184. package/dist/core/providers/providers/openrouter/index.js.map +0 -1
  185. package/dist/core/providers/providers/openrouter/provider.d.ts +0 -13
  186. package/dist/core/providers/providers/openrouter/provider.js +0 -80
  187. package/dist/core/providers/providers/openrouter/provider.js.map +0 -1
  188. package/dist/platform/node/opengoat-gateway-client.d.ts +0 -19
  189. package/dist/platform/node/opengoat-gateway-client.js +0 -194
  190. package/dist/platform/node/opengoat-gateway-client.js.map +0 -1
  191. package/dist/platform/node/opengoat-gateway-server.d.ts +0 -53
  192. package/dist/platform/node/opengoat-gateway-server.js +0 -906
  193. package/dist/platform/node/opengoat-gateway-server.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/extended-http/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { ProviderModule } from "../../provider-module.js";
2
- import { ExtendedHttpProvider } from "./provider.js";
3
- export declare const providerModules: ProviderModule[];
4
- export { ExtendedHttpProvider };
5
- export { extendedHttpProviderCatalog, resolveExtendedHttpProviderModelEnvVar, resolveExtendedHttpProviderOnboarding } from "./catalog.js";
@@ -1,13 +0,0 @@
1
- import { extendedHttpProviderCatalog, resolveExtendedHttpProviderOnboarding } from "./catalog.js";
2
- import { ExtendedHttpProvider } from "./provider.js";
3
- export const providerModules = extendedHttpProviderCatalog.map((spec) => createProviderModule(spec));
4
- function createProviderModule(spec) {
5
- return {
6
- id: spec.id,
7
- create: () => new ExtendedHttpProvider(spec),
8
- onboarding: resolveExtendedHttpProviderOnboarding(spec)
9
- };
10
- }
11
- export { ExtendedHttpProvider };
12
- export { extendedHttpProviderCatalog, resolveExtendedHttpProviderModelEnvVar, resolveExtendedHttpProviderOnboarding } from "./catalog.js";
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/extended-http/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAE3B,qCAAqC,EAEtC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,CAAC,MAAM,eAAe,GAAqB,2BAA2B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxF,oBAAoB,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,SAAS,oBAAoB,CAAC,IAA8B;IAC1D,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC;QAC5C,UAAU,EAAE,qCAAqC,CAAC,IAAI,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,sCAAsC,EACtC,qCAAqC,EACtC,MAAM,cAAc,CAAC"}
@@ -1,31 +0,0 @@
1
- import { ConverseCommand, type ConverseCommandOutput } from "@aws-sdk/client-bedrock-runtime";
2
- import { BaseProvider } from "../../base-provider.js";
3
- import type { ProviderExecutionResult, ProviderInvokeOptions } from "../../types.js";
4
- import type { ExtendedHttpProviderSpec } from "./catalog.js";
5
- interface ExtendedHttpProviderDeps {
6
- fetchFn?: typeof fetch;
7
- createBedrockClient?: (region: string) => {
8
- send: (command: ConverseCommand) => Promise<ConverseCommandOutput>;
9
- };
10
- }
11
- export declare class ExtendedHttpProvider extends BaseProvider {
12
- private readonly spec;
13
- private readonly fetchFn;
14
- private readonly createBedrockClient;
15
- constructor(spec: ExtendedHttpProviderSpec, deps?: ExtendedHttpProviderDeps);
16
- invoke(options: ProviderInvokeOptions): Promise<ProviderExecutionResult>;
17
- invokeAuth(): Promise<ProviderExecutionResult>;
18
- private invokeOpenAiChat;
19
- private invokeAnthropic;
20
- private invokeBedrock;
21
- private resolveModel;
22
- private resolveEndpoint;
23
- private resolveCredential;
24
- private buildHeaders;
25
- private resolveAuthHeaderType;
26
- private describeEndpointEnvHints;
27
- private invokeJsonEndpoint;
28
- private resolveGitHubCopilotAccessToken;
29
- private refreshQwenOauthIfNeeded;
30
- }
31
- export {};
@@ -1,580 +0,0 @@
1
- import { BedrockRuntimeClient, ConverseCommand } from "@aws-sdk/client-bedrock-runtime";
2
- import { BaseProvider } from "../../base-provider.js";
3
- import { ProviderAuthenticationError, ProviderRuntimeError, UnsupportedProviderActionError } from "../../errors.js";
4
- export class ExtendedHttpProvider extends BaseProvider {
5
- spec;
6
- fetchFn;
7
- createBedrockClient;
8
- constructor(spec, deps = {}) {
9
- super({
10
- id: spec.id,
11
- displayName: spec.displayName,
12
- kind: "http",
13
- capabilities: {
14
- agent: false,
15
- model: true,
16
- auth: false,
17
- passthrough: false
18
- }
19
- });
20
- this.spec = spec;
21
- this.fetchFn = deps.fetchFn ?? fetch;
22
- this.createBedrockClient =
23
- deps.createBedrockClient ??
24
- ((region) => new BedrockRuntimeClient({
25
- region
26
- }));
27
- }
28
- async invoke(options) {
29
- this.validateInvokeOptions(options);
30
- const env = options.env ?? process.env;
31
- if (this.spec.protocol === "bedrock-converse") {
32
- return this.invokeBedrock(options, env);
33
- }
34
- if (this.spec.protocol === "anthropic-messages") {
35
- return this.invokeAnthropic(options, env);
36
- }
37
- return this.invokeOpenAiChat(options, env);
38
- }
39
- invokeAuth() {
40
- throw new UnsupportedProviderActionError(this.id, "auth");
41
- }
42
- async invokeOpenAiChat(options, env) {
43
- const model = this.resolveModel(options, env);
44
- if (!model) {
45
- return {
46
- code: 1,
47
- stdout: "",
48
- stderr: `Missing model for ${this.id}. Set ${this.spec.modelEnvVar} or pass --model.\n`
49
- };
50
- }
51
- let credential = this.resolveCredential(env);
52
- let baseUrlOverride;
53
- if (this.spec.id === "github-copilot" && credential) {
54
- const access = await this.resolveGitHubCopilotAccessToken(credential.value);
55
- credential = {
56
- ...credential,
57
- value: access.token
58
- };
59
- baseUrlOverride = access.baseUrl ?? undefined;
60
- }
61
- if (this.spec.id === "qwen-portal" && credential) {
62
- credential = await this.refreshQwenOauthIfNeeded(env, credential);
63
- }
64
- const endpoint = this.resolveEndpoint(env, "/chat/completions", baseUrlOverride);
65
- if (!endpoint) {
66
- return {
67
- code: 1,
68
- stdout: "",
69
- stderr: `Missing endpoint for ${this.id}. Configure ${this.describeEndpointEnvHints()}\n`
70
- };
71
- }
72
- const headers = this.buildHeaders(env, credential, "application/json");
73
- const payload = {
74
- model,
75
- messages: buildChatMessages(options),
76
- stream: false
77
- };
78
- return this.invokeJsonEndpoint({
79
- endpoint,
80
- payload,
81
- options,
82
- parseText: extractOpenAiLikeText,
83
- parseSessionId: (value) => extractStringValue(value.id),
84
- headers,
85
- abortSignal: options.abortSignal
86
- });
87
- }
88
- async invokeAnthropic(options, env) {
89
- const endpoint = this.resolveEndpoint(env, "/v1/messages");
90
- if (!endpoint) {
91
- return {
92
- code: 1,
93
- stdout: "",
94
- stderr: `Missing endpoint for ${this.id}. Configure ${this.describeEndpointEnvHints()}\n`
95
- };
96
- }
97
- const model = this.resolveModel(options, env);
98
- if (!model) {
99
- return {
100
- code: 1,
101
- stdout: "",
102
- stderr: `Missing model for ${this.id}. Set ${this.spec.modelEnvVar} or pass --model.\n`
103
- };
104
- }
105
- const credential = this.resolveCredential(env);
106
- const headers = this.buildHeaders(env, credential, "application/json");
107
- const maxTokens = resolvePositiveInteger(env[this.spec.maxTokensEnvVar ?? ""]?.trim()) ?? this.spec.defaultMaxTokens ?? 4096;
108
- const payload = {
109
- model,
110
- max_tokens: maxTokens,
111
- messages: [
112
- {
113
- role: "user",
114
- content: [
115
- {
116
- type: "text",
117
- text: options.message
118
- }
119
- ]
120
- }
121
- ],
122
- ...(options.systemPrompt?.trim() ? { system: options.systemPrompt.trim() } : {})
123
- };
124
- return this.invokeJsonEndpoint({
125
- endpoint,
126
- payload,
127
- options,
128
- parseText: extractAnthropicText,
129
- parseSessionId: (value) => extractStringValue(value.id),
130
- headers,
131
- abortSignal: options.abortSignal
132
- });
133
- }
134
- async invokeBedrock(options, env) {
135
- const model = this.resolveModel(options, env);
136
- if (!model) {
137
- return {
138
- code: 1,
139
- stdout: "",
140
- stderr: `Missing model for ${this.id}. Set ${this.spec.modelEnvVar} or pass --model.\n`
141
- };
142
- }
143
- const region = env.AWS_REGION?.trim() || env.AWS_DEFAULT_REGION?.trim() || "us-east-1";
144
- const client = this.createBedrockClient(region);
145
- const messages = [
146
- {
147
- role: "user",
148
- content: [{ text: options.message }]
149
- }
150
- ];
151
- const command = new ConverseCommand({
152
- modelId: model,
153
- messages,
154
- ...(options.systemPrompt?.trim()
155
- ? {
156
- system: [
157
- {
158
- text: options.systemPrompt.trim()
159
- }
160
- ]
161
- }
162
- : {})
163
- });
164
- try {
165
- const response = await client.send(command);
166
- const text = extractBedrockText(response);
167
- if (!text) {
168
- throw new ProviderRuntimeError(this.id, "no textual output found in Bedrock response");
169
- }
170
- const normalized = ensureTrailingNewline(text);
171
- options.onStdout?.(normalized);
172
- return {
173
- code: 0,
174
- stdout: normalized,
175
- stderr: "",
176
- providerSessionId: extractStringValue(response.$metadata?.requestId) ?? undefined
177
- };
178
- }
179
- catch (error) {
180
- const message = error instanceof Error ? error.message : String(error);
181
- return {
182
- code: 1,
183
- stdout: "",
184
- stderr: ensureTrailingNewline(`Bedrock request failed: ${message}`)
185
- };
186
- }
187
- }
188
- resolveModel(options, env) {
189
- const raw = options.model?.trim() || env[this.spec.modelEnvVar]?.trim() || this.spec.defaultModel?.trim();
190
- if (!raw) {
191
- return null;
192
- }
193
- if (!this.spec.stripProviderPrefix) {
194
- return raw;
195
- }
196
- const normalizedProvider = `${this.spec.id.toLowerCase()}/`;
197
- if (raw.toLowerCase().startsWith(normalizedProvider)) {
198
- return raw.slice(normalizedProvider.length).trim();
199
- }
200
- return raw;
201
- }
202
- resolveEndpoint(env, fallbackPath, baseUrlOverride) {
203
- const endpointOverride = this.spec.endpoint.endpointEnvVar
204
- ? env[this.spec.endpoint.endpointEnvVar]?.trim()
205
- : undefined;
206
- if (endpointOverride) {
207
- return endpointOverride;
208
- }
209
- const resolvedBaseUrl = baseUrlOverride?.trim() ||
210
- this.spec.endpoint.resolveBaseUrl?.(env)?.trim() ||
211
- (this.spec.endpoint.baseUrlEnvVar ? env[this.spec.endpoint.baseUrlEnvVar]?.trim() : undefined) ||
212
- this.spec.endpoint.baseUrl?.trim();
213
- if (!resolvedBaseUrl) {
214
- return null;
215
- }
216
- const endpointPath = (this.spec.endpoint.endpointPathEnvVar
217
- ? env[this.spec.endpoint.endpointPathEnvVar]?.trim()
218
- : undefined) ||
219
- this.spec.endpoint.endpointPath ||
220
- fallbackPath;
221
- const normalizedBaseUrl = resolvedBaseUrl.replace(/\/+$/, "");
222
- const normalizedPath = endpointPath.startsWith("/") ? endpointPath : `/${endpointPath}`;
223
- return `${normalizedBaseUrl}${normalizedPath}`;
224
- }
225
- resolveCredential(env) {
226
- const auth = this.spec.auth;
227
- if (!auth?.envVars || auth.envVars.length === 0) {
228
- return null;
229
- }
230
- for (const envVar of auth.envVars) {
231
- const value = env[envVar]?.trim();
232
- if (value) {
233
- return {
234
- envVar,
235
- value
236
- };
237
- }
238
- }
239
- if (auth.optional) {
240
- return null;
241
- }
242
- throw new ProviderAuthenticationError(this.id, `set one of: ${auth.envVars.join(", ")}`);
243
- }
244
- buildHeaders(env, credential, contentType) {
245
- const headers = {
246
- "content-type": contentType
247
- };
248
- for (const [key, value] of Object.entries(this.spec.fixedHeaders ?? {})) {
249
- if (value.trim()) {
250
- headers[key] = value;
251
- }
252
- }
253
- for (const entry of this.spec.headersFromEnv ?? []) {
254
- const value = env[entry.envVar]?.trim();
255
- if (value) {
256
- headers[entry.name] = value;
257
- }
258
- }
259
- if (!credential) {
260
- return headers;
261
- }
262
- const headerType = this.resolveAuthHeaderType(credential.envVar);
263
- if (headerType === "bearer") {
264
- const normalized = credential.value.replace(/^Bearer\s+/i, "").trim();
265
- headers.Authorization = `Bearer ${normalized}`;
266
- return headers;
267
- }
268
- if (headerType === "x-api-key") {
269
- headers["x-api-key"] = credential.value;
270
- return headers;
271
- }
272
- if (headerType === "api-key") {
273
- headers["api-key"] = credential.value;
274
- return headers;
275
- }
276
- return headers;
277
- }
278
- resolveAuthHeaderType(sourceEnvVar) {
279
- const auth = this.spec.auth;
280
- if (!auth) {
281
- return "bearer";
282
- }
283
- if (auth.oauthTokenHeader && sourceEnvVar.toUpperCase().includes("OAUTH_TOKEN")) {
284
- return auth.oauthTokenHeader;
285
- }
286
- return auth.header ?? "bearer";
287
- }
288
- describeEndpointEnvHints() {
289
- const hints = [
290
- this.spec.endpoint.endpointEnvVar,
291
- this.spec.endpoint.baseUrlEnvVar
292
- ].filter((value) => Boolean(value));
293
- if (hints.length === 0) {
294
- return "provider endpoint settings";
295
- }
296
- return hints.join(" or ");
297
- }
298
- async invokeJsonEndpoint(params) {
299
- let response;
300
- try {
301
- response = await this.fetchFn(params.endpoint, {
302
- method: "POST",
303
- headers: params.headers,
304
- body: JSON.stringify(params.payload),
305
- signal: params.abortSignal
306
- });
307
- }
308
- catch (error) {
309
- const message = error instanceof Error ? error.message : String(error);
310
- return {
311
- code: 1,
312
- stdout: "",
313
- stderr: ensureTrailingNewline(`Request failed: ${message}`)
314
- };
315
- }
316
- const raw = await response.text();
317
- const parsed = safeParseJson(raw);
318
- if (!response.ok) {
319
- const detail = extractErrorDetail(parsed) || raw || `HTTP ${response.status}`;
320
- return {
321
- code: 1,
322
- stdout: "",
323
- stderr: ensureTrailingNewline(`HTTP ${response.status}: ${detail}`)
324
- };
325
- }
326
- if (!parsed.ok) {
327
- return {
328
- code: 1,
329
- stdout: "",
330
- stderr: ensureTrailingNewline("Provider response was not valid JSON")
331
- };
332
- }
333
- const text = params.parseText(parsed.value);
334
- if (!text) {
335
- return {
336
- code: 1,
337
- stdout: "",
338
- stderr: ensureTrailingNewline("Provider response did not include text output")
339
- };
340
- }
341
- const normalized = ensureTrailingNewline(text);
342
- params.options.onStdout?.(normalized);
343
- return {
344
- code: 0,
345
- stdout: normalized,
346
- stderr: "",
347
- providerSessionId: params.parseSessionId(parsed.value) ?? undefined
348
- };
349
- }
350
- async resolveGitHubCopilotAccessToken(githubToken) {
351
- const response = await this.fetchFn("https://api.github.com/copilot_internal/v2/token", {
352
- method: "GET",
353
- headers: {
354
- accept: "application/json",
355
- authorization: `Bearer ${githubToken}`
356
- }
357
- });
358
- if (!response.ok) {
359
- const body = await response.text();
360
- throw new ProviderAuthenticationError(this.id, `GitHub token exchange failed (HTTP ${response.status}): ${body || response.statusText}`);
361
- }
362
- const parsed = safeParseJson(await response.text());
363
- if (!parsed.ok || !parsed.value || typeof parsed.value !== "object") {
364
- throw new ProviderAuthenticationError(this.id, "invalid Copilot token exchange response");
365
- }
366
- const token = extractStringValue(parsed.value.token);
367
- if (!token) {
368
- throw new ProviderAuthenticationError(this.id, "missing token in Copilot response");
369
- }
370
- return {
371
- token,
372
- baseUrl: deriveCopilotBaseUrl(token)
373
- };
374
- }
375
- async refreshQwenOauthIfNeeded(env, credential) {
376
- const rawExpiresAt = env.QWEN_OAUTH_EXPIRES_AT?.trim();
377
- const refreshToken = env.QWEN_OAUTH_REFRESH_TOKEN?.trim();
378
- const needsRefresh = !credential.value ||
379
- (rawExpiresAt ? Number.parseInt(rawExpiresAt, 10) <= Date.now() + 60_000 : false);
380
- if (!needsRefresh || !refreshToken) {
381
- return credential;
382
- }
383
- const response = await this.fetchFn("https://chat.qwen.ai/api/v1/oauth2/token", {
384
- method: "POST",
385
- headers: {
386
- "content-type": "application/x-www-form-urlencoded",
387
- accept: "application/json"
388
- },
389
- body: new URLSearchParams({
390
- grant_type: "refresh_token",
391
- refresh_token: refreshToken,
392
- client_id: "f0304373b74a44d2b584a3fb70ca9e56"
393
- })
394
- });
395
- if (!response.ok) {
396
- const body = await response.text();
397
- throw new ProviderAuthenticationError(this.id, `Qwen OAuth refresh failed (HTTP ${response.status}): ${body || response.statusText}`);
398
- }
399
- const parsed = safeParseJson(await response.text());
400
- if (!parsed.ok || !parsed.value || typeof parsed.value !== "object") {
401
- throw new ProviderAuthenticationError(this.id, "invalid Qwen OAuth refresh response");
402
- }
403
- const accessToken = extractStringValue(parsed.value.access_token);
404
- if (!accessToken) {
405
- throw new ProviderAuthenticationError(this.id, "Qwen OAuth refresh did not return access token");
406
- }
407
- return {
408
- ...credential,
409
- value: accessToken
410
- };
411
- }
412
- }
413
- function buildChatMessages(options) {
414
- const messages = [];
415
- const systemPrompt = options.systemPrompt?.trim();
416
- if (systemPrompt) {
417
- messages.push({
418
- role: "system",
419
- content: systemPrompt
420
- });
421
- }
422
- messages.push({
423
- role: "user",
424
- content: options.message
425
- });
426
- return messages;
427
- }
428
- function extractOpenAiLikeText(payload) {
429
- if (!payload || typeof payload !== "object") {
430
- return null;
431
- }
432
- const record = payload;
433
- const outputText = extractStringValue(record.output_text);
434
- if (outputText) {
435
- return outputText;
436
- }
437
- const choices = Array.isArray(record.choices) ? record.choices : [];
438
- const firstChoice = choices[0];
439
- const message = firstChoice && typeof firstChoice.message === "object" ? firstChoice.message : undefined;
440
- const messageText = extractOpenAiContent(message?.content);
441
- if (messageText) {
442
- return messageText;
443
- }
444
- const output = Array.isArray(record.output) ? record.output : [];
445
- for (const entry of output) {
446
- if (!entry || typeof entry !== "object") {
447
- continue;
448
- }
449
- const outputEntry = entry;
450
- const content = Array.isArray(outputEntry.content) ? outputEntry.content : [];
451
- const contentText = extractOpenAiContent(content);
452
- if (contentText) {
453
- return contentText;
454
- }
455
- }
456
- return null;
457
- }
458
- function extractAnthropicText(payload) {
459
- if (!payload || typeof payload !== "object") {
460
- return null;
461
- }
462
- const record = payload;
463
- const content = Array.isArray(record.content) ? record.content : [];
464
- const chunks = [];
465
- for (const entry of content) {
466
- if (!entry || typeof entry !== "object") {
467
- continue;
468
- }
469
- const text = extractStringValue(entry.text);
470
- if (text) {
471
- chunks.push(text);
472
- }
473
- }
474
- if (chunks.length > 0) {
475
- return chunks.join("\n");
476
- }
477
- return extractStringValue(record.output_text);
478
- }
479
- function extractBedrockText(output) {
480
- const content = output.output?.message?.content ?? [];
481
- const chunks = [];
482
- for (const part of content) {
483
- const text = extractStringValue(part.text);
484
- if (text) {
485
- chunks.push(text);
486
- }
487
- }
488
- if (chunks.length === 0) {
489
- return null;
490
- }
491
- return chunks.join("\n");
492
- }
493
- function extractOpenAiContent(content) {
494
- if (typeof content === "string") {
495
- return content.trim() || null;
496
- }
497
- if (!Array.isArray(content)) {
498
- return null;
499
- }
500
- const chunks = [];
501
- for (const entry of content) {
502
- if (typeof entry === "string") {
503
- const normalized = entry.trim();
504
- if (normalized) {
505
- chunks.push(normalized);
506
- }
507
- continue;
508
- }
509
- if (!entry || typeof entry !== "object") {
510
- continue;
511
- }
512
- const text = extractStringValue(entry.text);
513
- if (text) {
514
- chunks.push(text);
515
- }
516
- }
517
- if (chunks.length === 0) {
518
- return null;
519
- }
520
- return chunks.join("\n");
521
- }
522
- function extractErrorDetail(payload) {
523
- if (!payload.ok || !payload.value || typeof payload.value !== "object") {
524
- return null;
525
- }
526
- const record = payload.value;
527
- const directMessage = extractStringValue(record.message);
528
- if (directMessage) {
529
- return directMessage;
530
- }
531
- const errorEntry = record.error;
532
- if (!errorEntry || typeof errorEntry !== "object") {
533
- return null;
534
- }
535
- return extractStringValue(errorEntry.message);
536
- }
537
- function safeParseJson(raw) {
538
- try {
539
- return {
540
- ok: true,
541
- value: JSON.parse(raw)
542
- };
543
- }
544
- catch {
545
- return { ok: false };
546
- }
547
- }
548
- function ensureTrailingNewline(value) {
549
- return value.endsWith("\n") ? value : `${value}\n`;
550
- }
551
- function extractStringValue(value) {
552
- if (typeof value !== "string") {
553
- return null;
554
- }
555
- const trimmed = value.trim();
556
- return trimmed.length > 0 ? trimmed : null;
557
- }
558
- function resolvePositiveInteger(value) {
559
- if (!value) {
560
- return null;
561
- }
562
- const parsed = Number.parseInt(value, 10);
563
- if (!Number.isFinite(parsed) || parsed <= 0) {
564
- return null;
565
- }
566
- return parsed;
567
- }
568
- function deriveCopilotBaseUrl(token) {
569
- const match = token.match(/(?:^|;)\s*proxy-ep=([^;\s]+)/i);
570
- const proxyEp = match?.[1]?.trim();
571
- if (!proxyEp) {
572
- return null;
573
- }
574
- const host = proxyEp.replace(/^https?:\/\//, "").replace(/^proxy\./i, "api.");
575
- if (!host) {
576
- return null;
577
- }
578
- return `https://${host}`;
579
- }
580
- //# sourceMappingURL=provider.js.map