@opengoat/core 2026.2.9

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 (288) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -0
  3. package/dist/apps/runtime/create-opengoat-runtime.d.ts +14 -0
  4. package/dist/apps/runtime/create-opengoat-runtime.js +23 -0
  5. package/dist/apps/runtime/create-opengoat-runtime.js.map +1 -0
  6. package/dist/core/acp/application/acp-agent.d.ts +60 -0
  7. package/dist/core/acp/application/acp-agent.js +424 -0
  8. package/dist/core/acp/application/acp-agent.js.map +1 -0
  9. package/dist/core/acp/application/session-store.d.ts +13 -0
  10. package/dist/core/acp/application/session-store.js +40 -0
  11. package/dist/core/acp/application/session-store.js.map +1 -0
  12. package/dist/core/acp/domain/meta.d.ts +7 -0
  13. package/dist/core/acp/domain/meta.js +31 -0
  14. package/dist/core/acp/domain/meta.js.map +1 -0
  15. package/dist/core/acp/domain/session.d.ts +23 -0
  16. package/dist/core/acp/domain/session.js +2 -0
  17. package/dist/core/acp/domain/session.js.map +1 -0
  18. package/dist/core/acp/index.d.ts +5 -0
  19. package/dist/core/acp/index.js +4 -0
  20. package/dist/core/acp/index.js.map +1 -0
  21. package/dist/core/agents/application/agent-manifest.service.d.ts +20 -0
  22. package/dist/core/agents/application/agent-manifest.service.js +89 -0
  23. package/dist/core/agents/application/agent-manifest.service.js.map +1 -0
  24. package/dist/core/agents/application/agent.service.d.ts +25 -0
  25. package/dist/core/agents/application/agent.service.js +191 -0
  26. package/dist/core/agents/application/agent.service.js.map +1 -0
  27. package/dist/core/agents/application/workspace-context.service.d.ts +28 -0
  28. package/dist/core/agents/application/workspace-context.service.js +157 -0
  29. package/dist/core/agents/application/workspace-context.service.js.map +1 -0
  30. package/dist/core/agents/domain/agent-manifest.d.ts +37 -0
  31. package/dist/core/agents/domain/agent-manifest.js +228 -0
  32. package/dist/core/agents/domain/agent-manifest.js.map +1 -0
  33. package/dist/core/agents/domain/workspace-context.d.ts +13 -0
  34. package/dist/core/agents/domain/workspace-context.js +14 -0
  35. package/dist/core/agents/domain/workspace-context.js.map +1 -0
  36. package/dist/core/agents/index.d.ts +6 -0
  37. package/dist/core/agents/index.js +6 -0
  38. package/dist/core/agents/index.js.map +1 -0
  39. package/dist/core/bootstrap/application/bootstrap.service.d.ts +24 -0
  40. package/dist/core/bootstrap/application/bootstrap.service.js +108 -0
  41. package/dist/core/bootstrap/application/bootstrap.service.js.map +1 -0
  42. package/dist/core/bootstrap/index.d.ts +1 -0
  43. package/dist/core/bootstrap/index.js +2 -0
  44. package/dist/core/bootstrap/index.js.map +1 -0
  45. package/dist/core/domain/agent-id.d.ts +3 -0
  46. package/dist/core/domain/agent-id.js +12 -0
  47. package/dist/core/domain/agent-id.js.map +1 -0
  48. package/dist/core/domain/agent.d.ts +39 -0
  49. package/dist/core/domain/agent.js +2 -0
  50. package/dist/core/domain/agent.js.map +1 -0
  51. package/dist/core/domain/opengoat-paths.d.ts +29 -0
  52. package/dist/core/domain/opengoat-paths.js +2 -0
  53. package/dist/core/domain/opengoat-paths.js.map +1 -0
  54. package/dist/core/gateway/domain/protocol.d.ts +113 -0
  55. package/dist/core/gateway/domain/protocol.js +394 -0
  56. package/dist/core/gateway/domain/protocol.js.map +1 -0
  57. package/dist/core/gateway/index.d.ts +2 -0
  58. package/dist/core/gateway/index.js +2 -0
  59. package/dist/core/gateway/index.js.map +1 -0
  60. package/dist/core/llm/application/vercel-ai-text-runtime.d.ts +26 -0
  61. package/dist/core/llm/application/vercel-ai-text-runtime.js +223 -0
  62. package/dist/core/llm/application/vercel-ai-text-runtime.js.map +1 -0
  63. package/dist/core/llm/domain/text-runtime.d.ts +22 -0
  64. package/dist/core/llm/domain/text-runtime.js +2 -0
  65. package/dist/core/llm/domain/text-runtime.js.map +1 -0
  66. package/dist/core/llm/index.d.ts +2 -0
  67. package/dist/core/llm/index.js +2 -0
  68. package/dist/core/llm/index.js.map +1 -0
  69. package/dist/core/logging/application/structured-logger.d.ts +29 -0
  70. package/dist/core/logging/application/structured-logger.js +86 -0
  71. package/dist/core/logging/application/structured-logger.js.map +1 -0
  72. package/dist/core/logging/domain/logger.d.ts +16 -0
  73. package/dist/core/logging/domain/logger.js +18 -0
  74. package/dist/core/logging/domain/logger.js.map +1 -0
  75. package/dist/core/logging/index.d.ts +3 -0
  76. package/dist/core/logging/index.js +3 -0
  77. package/dist/core/logging/index.js.map +1 -0
  78. package/dist/core/opengoat/application/opengoat.service.d.ts +84 -0
  79. package/dist/core/opengoat/application/opengoat.service.js +308 -0
  80. package/dist/core/opengoat/application/opengoat.service.js.map +1 -0
  81. package/dist/core/opengoat/index.d.ts +1 -0
  82. package/dist/core/opengoat/index.js +2 -0
  83. package/dist/core/opengoat/index.js.map +1 -0
  84. package/dist/core/orchestration/application/orchestration-planner.service.d.ts +28 -0
  85. package/dist/core/orchestration/application/orchestration-planner.service.js +279 -0
  86. package/dist/core/orchestration/application/orchestration-planner.service.js.map +1 -0
  87. package/dist/core/orchestration/application/orchestration.service.d.ts +52 -0
  88. package/dist/core/orchestration/application/orchestration.service.js +1044 -0
  89. package/dist/core/orchestration/application/orchestration.service.js.map +1 -0
  90. package/dist/core/orchestration/application/routing.service.d.ts +11 -0
  91. package/dist/core/orchestration/application/routing.service.js +108 -0
  92. package/dist/core/orchestration/application/routing.service.js.map +1 -0
  93. package/dist/core/orchestration/domain/loop.d.ts +119 -0
  94. package/dist/core/orchestration/domain/loop.js +2 -0
  95. package/dist/core/orchestration/domain/loop.js.map +1 -0
  96. package/dist/core/orchestration/domain/routing.d.ts +58 -0
  97. package/dist/core/orchestration/domain/routing.js +2 -0
  98. package/dist/core/orchestration/domain/routing.js.map +1 -0
  99. package/dist/core/orchestration/domain/run-events.d.ts +21 -0
  100. package/dist/core/orchestration/domain/run-events.js +2 -0
  101. package/dist/core/orchestration/domain/run-events.js.map +1 -0
  102. package/dist/core/orchestration/index.d.ts +6 -0
  103. package/dist/core/orchestration/index.js +4 -0
  104. package/dist/core/orchestration/index.js.map +1 -0
  105. package/dist/core/plugins/application/plugin.service.d.ts +32 -0
  106. package/dist/core/plugins/application/plugin.service.js +236 -0
  107. package/dist/core/plugins/application/plugin.service.js.map +1 -0
  108. package/dist/core/plugins/domain/openclaw-compat.d.ts +60 -0
  109. package/dist/core/plugins/domain/openclaw-compat.js +9 -0
  110. package/dist/core/plugins/domain/openclaw-compat.js.map +1 -0
  111. package/dist/core/plugins/index.d.ts +3 -0
  112. package/dist/core/plugins/index.js +3 -0
  113. package/dist/core/plugins/index.js.map +1 -0
  114. package/dist/core/ports/command-runner.port.d.ts +14 -0
  115. package/dist/core/ports/command-runner.port.js +2 -0
  116. package/dist/core/ports/command-runner.port.js.map +1 -0
  117. package/dist/core/ports/file-system.port.d.ts +9 -0
  118. package/dist/core/ports/file-system.port.js +2 -0
  119. package/dist/core/ports/file-system.port.js.map +1 -0
  120. package/dist/core/ports/path.port.d.ts +3 -0
  121. package/dist/core/ports/path.port.js +2 -0
  122. package/dist/core/ports/path.port.js.map +1 -0
  123. package/dist/core/ports/paths-provider.port.d.ts +4 -0
  124. package/dist/core/ports/paths-provider.port.js +2 -0
  125. package/dist/core/ports/paths-provider.port.js.map +1 -0
  126. package/dist/core/providers/application/provider.service.d.ts +80 -0
  127. package/dist/core/providers/application/provider.service.js +391 -0
  128. package/dist/core/providers/application/provider.service.js.map +1 -0
  129. package/dist/core/providers/base-provider.d.ts +20 -0
  130. package/dist/core/providers/base-provider.js +44 -0
  131. package/dist/core/providers/base-provider.js.map +1 -0
  132. package/dist/core/providers/cli-provider.d.ts +26 -0
  133. package/dist/core/providers/cli-provider.js +151 -0
  134. package/dist/core/providers/cli-provider.js.map +1 -0
  135. package/dist/core/providers/command-executor.d.ts +12 -0
  136. package/dist/core/providers/command-executor.js +76 -0
  137. package/dist/core/providers/command-executor.js.map +1 -0
  138. package/dist/core/providers/errors.d.ts +30 -0
  139. package/dist/core/providers/errors.js +52 -0
  140. package/dist/core/providers/errors.js.map +1 -0
  141. package/dist/core/providers/index.d.ts +18 -0
  142. package/dist/core/providers/index.js +27 -0
  143. package/dist/core/providers/index.js.map +1 -0
  144. package/dist/core/providers/loader.d.ts +2 -0
  145. package/dist/core/providers/loader.js +99 -0
  146. package/dist/core/providers/loader.js.map +1 -0
  147. package/dist/core/providers/onboarding.d.ts +13 -0
  148. package/dist/core/providers/onboarding.js +149 -0
  149. package/dist/core/providers/onboarding.js.map +1 -0
  150. package/dist/core/providers/provider-module.d.ts +19 -0
  151. package/dist/core/providers/provider-module.js +2 -0
  152. package/dist/core/providers/provider-module.js.map +1 -0
  153. package/dist/core/providers/provider-session.d.ts +3 -0
  154. package/dist/core/providers/provider-session.js +44 -0
  155. package/dist/core/providers/provider-session.js.map +1 -0
  156. package/dist/core/providers/providers/claude/index.d.ts +4 -0
  157. package/dist/core/providers/providers/claude/index.js +19 -0
  158. package/dist/core/providers/providers/claude/index.js.map +1 -0
  159. package/dist/core/providers/providers/claude/provider.d.ts +8 -0
  160. package/dist/core/providers/providers/claude/provider.js +106 -0
  161. package/dist/core/providers/providers/claude/provider.js.map +1 -0
  162. package/dist/core/providers/providers/codex/index.d.ts +4 -0
  163. package/dist/core/providers/providers/codex/index.js +19 -0
  164. package/dist/core/providers/providers/codex/index.js.map +1 -0
  165. package/dist/core/providers/providers/codex/provider.d.ts +7 -0
  166. package/dist/core/providers/providers/codex/provider.js +31 -0
  167. package/dist/core/providers/providers/codex/provider.js.map +1 -0
  168. package/dist/core/providers/providers/cursor/index.d.ts +4 -0
  169. package/dist/core/providers/providers/cursor/index.js +19 -0
  170. package/dist/core/providers/providers/cursor/index.js.map +1 -0
  171. package/dist/core/providers/providers/cursor/provider.d.ts +11 -0
  172. package/dist/core/providers/providers/cursor/provider.js +90 -0
  173. package/dist/core/providers/providers/cursor/provider.js.map +1 -0
  174. package/dist/core/providers/providers/extended-http/catalog.d.ts +40 -0
  175. package/dist/core/providers/providers/extended-http/catalog.js +728 -0
  176. package/dist/core/providers/providers/extended-http/catalog.js.map +1 -0
  177. package/dist/core/providers/providers/extended-http/index.d.ts +5 -0
  178. package/dist/core/providers/providers/extended-http/index.js +13 -0
  179. package/dist/core/providers/providers/extended-http/index.js.map +1 -0
  180. package/dist/core/providers/providers/extended-http/provider.d.ts +31 -0
  181. package/dist/core/providers/providers/extended-http/provider.js +580 -0
  182. package/dist/core/providers/providers/extended-http/provider.js.map +1 -0
  183. package/dist/core/providers/providers/gemini/index.d.ts +4 -0
  184. package/dist/core/providers/providers/gemini/index.js +37 -0
  185. package/dist/core/providers/providers/gemini/index.js.map +1 -0
  186. package/dist/core/providers/providers/gemini/provider.d.ts +7 -0
  187. package/dist/core/providers/providers/gemini/provider.js +59 -0
  188. package/dist/core/providers/providers/gemini/provider.js.map +1 -0
  189. package/dist/core/providers/providers/grok/index.d.ts +4 -0
  190. package/dist/core/providers/providers/grok/index.js +41 -0
  191. package/dist/core/providers/providers/grok/index.js.map +1 -0
  192. package/dist/core/providers/providers/grok/provider.d.ts +13 -0
  193. package/dist/core/providers/providers/grok/provider.js +95 -0
  194. package/dist/core/providers/providers/grok/provider.js.map +1 -0
  195. package/dist/core/providers/providers/openai/index.d.ts +4 -0
  196. package/dist/core/providers/providers/openai/index.js +45 -0
  197. package/dist/core/providers/providers/openai/index.js.map +1 -0
  198. package/dist/core/providers/providers/openai/provider.d.ts +14 -0
  199. package/dist/core/providers/providers/openai/provider.js +203 -0
  200. package/dist/core/providers/providers/openai/provider.js.map +1 -0
  201. package/dist/core/providers/providers/openclaw/index.d.ts +4 -0
  202. package/dist/core/providers/providers/openclaw/index.js +31 -0
  203. package/dist/core/providers/providers/openclaw/index.js.map +1 -0
  204. package/dist/core/providers/providers/openclaw/provider.d.ts +11 -0
  205. package/dist/core/providers/providers/openclaw/provider.js +108 -0
  206. package/dist/core/providers/providers/openclaw/provider.js.map +1 -0
  207. package/dist/core/providers/providers/opencode/index.d.ts +4 -0
  208. package/dist/core/providers/providers/opencode/index.js +23 -0
  209. package/dist/core/providers/providers/opencode/index.js.map +1 -0
  210. package/dist/core/providers/providers/opencode/provider.d.ts +11 -0
  211. package/dist/core/providers/providers/opencode/provider.js +215 -0
  212. package/dist/core/providers/providers/opencode/provider.js.map +1 -0
  213. package/dist/core/providers/providers/openrouter/index.d.ts +4 -0
  214. package/dist/core/providers/providers/openrouter/index.js +37 -0
  215. package/dist/core/providers/providers/openrouter/index.js.map +1 -0
  216. package/dist/core/providers/providers/openrouter/provider.d.ts +13 -0
  217. package/dist/core/providers/providers/openrouter/provider.js +80 -0
  218. package/dist/core/providers/providers/openrouter/provider.js.map +1 -0
  219. package/dist/core/providers/registry.d.ts +13 -0
  220. package/dist/core/providers/registry.js +36 -0
  221. package/dist/core/providers/registry.js.map +1 -0
  222. package/dist/core/providers/types.d.ts +101 -0
  223. package/dist/core/providers/types.js +2 -0
  224. package/dist/core/providers/types.js.map +1 -0
  225. package/dist/core/scenarios/application/scenario-runner.service.d.ts +23 -0
  226. package/dist/core/scenarios/application/scenario-runner.service.js +172 -0
  227. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -0
  228. package/dist/core/scenarios/domain/scenario.d.ts +43 -0
  229. package/dist/core/scenarios/domain/scenario.js +2 -0
  230. package/dist/core/scenarios/domain/scenario.js.map +1 -0
  231. package/dist/core/scenarios/index.d.ts +2 -0
  232. package/dist/core/scenarios/index.js +2 -0
  233. package/dist/core/scenarios/index.js.map +1 -0
  234. package/dist/core/sessions/application/session.service.d.ts +74 -0
  235. package/dist/core/sessions/application/session.service.js +895 -0
  236. package/dist/core/sessions/application/session.service.js.map +1 -0
  237. package/dist/core/sessions/domain/session.d.ts +80 -0
  238. package/dist/core/sessions/domain/session.js +24 -0
  239. package/dist/core/sessions/domain/session.js.map +1 -0
  240. package/dist/core/sessions/domain/transcript.d.ts +28 -0
  241. package/dist/core/sessions/domain/transcript.js +10 -0
  242. package/dist/core/sessions/domain/transcript.js.map +1 -0
  243. package/dist/core/sessions/errors.d.ts +12 -0
  244. package/dist/core/sessions/errors.js +22 -0
  245. package/dist/core/sessions/errors.js.map +1 -0
  246. package/dist/core/sessions/index.d.ts +6 -0
  247. package/dist/core/sessions/index.js +4 -0
  248. package/dist/core/sessions/index.js.map +1 -0
  249. package/dist/core/skills/application/skill.service.d.ts +24 -0
  250. package/dist/core/skills/application/skill.service.js +375 -0
  251. package/dist/core/skills/application/skill.service.js.map +1 -0
  252. package/dist/core/skills/domain/skill.d.ts +62 -0
  253. package/dist/core/skills/domain/skill.js +46 -0
  254. package/dist/core/skills/domain/skill.js.map +1 -0
  255. package/dist/core/skills/index.d.ts +3 -0
  256. package/dist/core/skills/index.js +3 -0
  257. package/dist/core/skills/index.js.map +1 -0
  258. package/dist/core/templates/default-templates.d.ts +19 -0
  259. package/dist/core/templates/default-templates.js +259 -0
  260. package/dist/core/templates/default-templates.js.map +1 -0
  261. package/dist/index.d.ts +27 -0
  262. package/dist/index.js +28 -0
  263. package/dist/index.js.map +1 -0
  264. package/dist/platform/node/acp-server.d.ts +12 -0
  265. package/dist/platform/node/acp-server.js +18 -0
  266. package/dist/platform/node/acp-server.js.map +1 -0
  267. package/dist/platform/node/dotenv.d.ts +6 -0
  268. package/dist/platform/node/dotenv.js +67 -0
  269. package/dist/platform/node/dotenv.js.map +1 -0
  270. package/dist/platform/node/node-command-runner.d.ts +4 -0
  271. package/dist/platform/node/node-command-runner.js +29 -0
  272. package/dist/platform/node/node-command-runner.js.map +1 -0
  273. package/dist/platform/node/node-file-system.d.ts +10 -0
  274. package/dist/platform/node/node-file-system.js +47 -0
  275. package/dist/platform/node/node-file-system.js.map +1 -0
  276. package/dist/platform/node/node-logger.d.ts +9 -0
  277. package/dist/platform/node/node-logger.js +124 -0
  278. package/dist/platform/node/node-logger.js.map +1 -0
  279. package/dist/platform/node/node-path.port.d.ts +9 -0
  280. package/dist/platform/node/node-path.port.js +41 -0
  281. package/dist/platform/node/node-path.port.js.map +1 -0
  282. package/dist/platform/node/opengoat-gateway-client.d.ts +19 -0
  283. package/dist/platform/node/opengoat-gateway-client.js +194 -0
  284. package/dist/platform/node/opengoat-gateway-client.js.map +1 -0
  285. package/dist/platform/node/opengoat-gateway-server.d.ts +53 -0
  286. package/dist/platform/node/opengoat-gateway-server.js +906 -0
  287. package/dist/platform/node/opengoat-gateway-server.js.map +1 -0
  288. package/package.json +37 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/extended-http/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
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";
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,31 @@
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 {};
@@ -0,0 +1,580 @@
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