@opengoat/core 2026.2.9 → 2026.2.14

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 (199) 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 +43 -4
  8. package/dist/core/agents/application/agent.service.js +476 -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 +5 -2
  26. package/dist/core/bootstrap/application/bootstrap.service.js +32 -17
  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/domain/opengoat-paths.d.ts +1 -0
  33. package/dist/core/opengoat/application/opengoat.service.d.ts +111 -27
  34. package/dist/core/opengoat/application/opengoat.service.js +1048 -136
  35. package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
  36. package/dist/core/opengoat/index.d.ts +1 -0
  37. package/dist/core/orchestration/application/orchestration.service.d.ts +8 -21
  38. package/dist/core/orchestration/application/orchestration.service.js +59 -871
  39. package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
  40. package/dist/core/orchestration/application/routing.service.js +10 -8
  41. package/dist/core/orchestration/application/routing.service.js.map +1 -1
  42. package/dist/core/orchestration/domain/routing.d.ts +0 -17
  43. package/dist/core/orchestration/domain/run-events.d.ts +1 -1
  44. package/dist/core/orchestration/index.d.ts +0 -2
  45. package/dist/core/orchestration/index.js +0 -1
  46. package/dist/core/orchestration/index.js.map +1 -1
  47. package/dist/core/providers/application/provider.service.d.ts +16 -32
  48. package/dist/core/providers/application/provider.service.js +178 -202
  49. package/dist/core/providers/application/provider.service.js.map +1 -1
  50. package/dist/core/providers/cli-provider.d.ts +1 -0
  51. package/dist/core/providers/cli-provider.js +66 -1
  52. package/dist/core/providers/cli-provider.js.map +1 -1
  53. package/dist/core/providers/image-input.d.ts +16 -0
  54. package/dist/core/providers/image-input.js +158 -0
  55. package/dist/core/providers/image-input.js.map +1 -0
  56. package/dist/core/providers/index.d.ts +1 -7
  57. package/dist/core/providers/index.js +0 -13
  58. package/dist/core/providers/index.js.map +1 -1
  59. package/dist/core/providers/loader.js +1 -95
  60. package/dist/core/providers/loader.js.map +1 -1
  61. package/dist/core/providers/providers/openclaw/provider.js +213 -32
  62. package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
  63. package/dist/core/providers/types.d.ts +8 -3
  64. package/dist/core/scenarios/application/scenario-runner.service.d.ts +0 -1
  65. package/dist/core/scenarios/application/scenario-runner.service.js +30 -87
  66. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
  67. package/dist/core/scenarios/domain/scenario.d.ts +0 -15
  68. package/dist/core/sessions/application/session.service.d.ts +10 -4
  69. package/dist/core/sessions/application/session.service.js +87 -89
  70. package/dist/core/sessions/application/session.service.js.map +1 -1
  71. package/dist/core/sessions/domain/session.d.ts +3 -3
  72. package/dist/core/sessions/domain/transcript.d.ts +1 -1
  73. package/dist/core/sessions/index.d.ts +1 -1
  74. package/dist/core/sessions/index.js.map +1 -1
  75. package/dist/core/skills/application/skill.service.d.ts +2 -3
  76. package/dist/core/skills/application/skill.service.js +153 -56
  77. package/dist/core/skills/application/skill.service.js.map +1 -1
  78. package/dist/core/skills/domain/skill.d.ts +2 -2
  79. package/dist/core/skills/domain/skill.js +4 -2
  80. package/dist/core/skills/domain/skill.js.map +1 -1
  81. package/dist/core/templates/assets/ceo/BOOTSTRAP.md +41 -0
  82. package/dist/core/templates/assets/ceo/ROLE.md +15 -0
  83. package/dist/core/templates/assets/organization/MISSION.md +73 -0
  84. package/dist/core/templates/assets/organization/STRATEGY.md +107 -0
  85. package/dist/core/templates/assets/organization/VISION.md +80 -0
  86. package/dist/core/templates/assets/organization/wiki/index.md +15 -0
  87. package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +148 -0
  88. package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +140 -0
  89. package/dist/core/templates/default-templates.d.ts +17 -14
  90. package/dist/core/templates/default-templates.js +115 -212
  91. package/dist/core/templates/default-templates.js.map +1 -1
  92. package/dist/index.d.ts +1 -4
  93. package/dist/index.js +1 -4
  94. package/dist/index.js.map +1 -1
  95. package/dist/platform/node/node-path.port.js +1 -0
  96. package/dist/platform/node/node-path.port.js.map +1 -1
  97. package/package.json +16 -13
  98. package/dist/core/agents/application/workspace-context.service.d.ts +0 -28
  99. package/dist/core/agents/application/workspace-context.service.js +0 -157
  100. package/dist/core/agents/application/workspace-context.service.js.map +0 -1
  101. package/dist/core/agents/domain/workspace-context.d.ts +0 -13
  102. package/dist/core/agents/domain/workspace-context.js +0 -14
  103. package/dist/core/agents/domain/workspace-context.js.map +0 -1
  104. package/dist/core/gateway/domain/protocol.d.ts +0 -113
  105. package/dist/core/gateway/domain/protocol.js +0 -394
  106. package/dist/core/gateway/domain/protocol.js.map +0 -1
  107. package/dist/core/gateway/index.d.ts +0 -2
  108. package/dist/core/gateway/index.js +0 -2
  109. package/dist/core/gateway/index.js.map +0 -1
  110. package/dist/core/llm/application/vercel-ai-text-runtime.d.ts +0 -26
  111. package/dist/core/llm/application/vercel-ai-text-runtime.js +0 -223
  112. package/dist/core/llm/application/vercel-ai-text-runtime.js.map +0 -1
  113. package/dist/core/llm/domain/text-runtime.d.ts +0 -22
  114. package/dist/core/llm/domain/text-runtime.js +0 -2
  115. package/dist/core/llm/domain/text-runtime.js.map +0 -1
  116. package/dist/core/llm/index.d.ts +0 -2
  117. package/dist/core/llm/index.js +0 -2
  118. package/dist/core/llm/index.js.map +0 -1
  119. package/dist/core/orchestration/application/orchestration-planner.service.d.ts +0 -28
  120. package/dist/core/orchestration/application/orchestration-planner.service.js +0 -279
  121. package/dist/core/orchestration/application/orchestration-planner.service.js.map +0 -1
  122. package/dist/core/orchestration/domain/loop.d.ts +0 -119
  123. package/dist/core/orchestration/domain/loop.js +0 -2
  124. package/dist/core/orchestration/domain/loop.js.map +0 -1
  125. package/dist/core/plugins/application/plugin.service.d.ts +0 -32
  126. package/dist/core/plugins/application/plugin.service.js +0 -236
  127. package/dist/core/plugins/application/plugin.service.js.map +0 -1
  128. package/dist/core/plugins/domain/openclaw-compat.d.ts +0 -60
  129. package/dist/core/plugins/domain/openclaw-compat.js +0 -9
  130. package/dist/core/plugins/domain/openclaw-compat.js.map +0 -1
  131. package/dist/core/plugins/index.d.ts +0 -3
  132. package/dist/core/plugins/index.js +0 -3
  133. package/dist/core/plugins/index.js.map +0 -1
  134. package/dist/core/providers/onboarding.d.ts +0 -13
  135. package/dist/core/providers/onboarding.js +0 -149
  136. package/dist/core/providers/onboarding.js.map +0 -1
  137. package/dist/core/providers/providers/claude/index.d.ts +0 -4
  138. package/dist/core/providers/providers/claude/index.js +0 -19
  139. package/dist/core/providers/providers/claude/index.js.map +0 -1
  140. package/dist/core/providers/providers/claude/provider.d.ts +0 -8
  141. package/dist/core/providers/providers/claude/provider.js +0 -106
  142. package/dist/core/providers/providers/claude/provider.js.map +0 -1
  143. package/dist/core/providers/providers/codex/index.d.ts +0 -4
  144. package/dist/core/providers/providers/codex/index.js +0 -19
  145. package/dist/core/providers/providers/codex/index.js.map +0 -1
  146. package/dist/core/providers/providers/codex/provider.d.ts +0 -7
  147. package/dist/core/providers/providers/codex/provider.js +0 -31
  148. package/dist/core/providers/providers/codex/provider.js.map +0 -1
  149. package/dist/core/providers/providers/cursor/index.d.ts +0 -4
  150. package/dist/core/providers/providers/cursor/index.js +0 -19
  151. package/dist/core/providers/providers/cursor/index.js.map +0 -1
  152. package/dist/core/providers/providers/cursor/provider.d.ts +0 -11
  153. package/dist/core/providers/providers/cursor/provider.js +0 -90
  154. package/dist/core/providers/providers/cursor/provider.js.map +0 -1
  155. package/dist/core/providers/providers/extended-http/catalog.d.ts +0 -40
  156. package/dist/core/providers/providers/extended-http/catalog.js +0 -728
  157. package/dist/core/providers/providers/extended-http/catalog.js.map +0 -1
  158. package/dist/core/providers/providers/extended-http/index.d.ts +0 -5
  159. package/dist/core/providers/providers/extended-http/index.js +0 -13
  160. package/dist/core/providers/providers/extended-http/index.js.map +0 -1
  161. package/dist/core/providers/providers/extended-http/provider.d.ts +0 -31
  162. package/dist/core/providers/providers/extended-http/provider.js +0 -580
  163. package/dist/core/providers/providers/extended-http/provider.js.map +0 -1
  164. package/dist/core/providers/providers/gemini/index.d.ts +0 -4
  165. package/dist/core/providers/providers/gemini/index.js +0 -37
  166. package/dist/core/providers/providers/gemini/index.js.map +0 -1
  167. package/dist/core/providers/providers/gemini/provider.d.ts +0 -7
  168. package/dist/core/providers/providers/gemini/provider.js +0 -59
  169. package/dist/core/providers/providers/gemini/provider.js.map +0 -1
  170. package/dist/core/providers/providers/grok/index.d.ts +0 -4
  171. package/dist/core/providers/providers/grok/index.js +0 -41
  172. package/dist/core/providers/providers/grok/index.js.map +0 -1
  173. package/dist/core/providers/providers/grok/provider.d.ts +0 -13
  174. package/dist/core/providers/providers/grok/provider.js +0 -95
  175. package/dist/core/providers/providers/grok/provider.js.map +0 -1
  176. package/dist/core/providers/providers/openai/index.d.ts +0 -4
  177. package/dist/core/providers/providers/openai/index.js +0 -45
  178. package/dist/core/providers/providers/openai/index.js.map +0 -1
  179. package/dist/core/providers/providers/openai/provider.d.ts +0 -14
  180. package/dist/core/providers/providers/openai/provider.js +0 -203
  181. package/dist/core/providers/providers/openai/provider.js.map +0 -1
  182. package/dist/core/providers/providers/opencode/index.d.ts +0 -4
  183. package/dist/core/providers/providers/opencode/index.js +0 -23
  184. package/dist/core/providers/providers/opencode/index.js.map +0 -1
  185. package/dist/core/providers/providers/opencode/provider.d.ts +0 -11
  186. package/dist/core/providers/providers/opencode/provider.js +0 -215
  187. package/dist/core/providers/providers/opencode/provider.js.map +0 -1
  188. package/dist/core/providers/providers/openrouter/index.d.ts +0 -4
  189. package/dist/core/providers/providers/openrouter/index.js +0 -37
  190. package/dist/core/providers/providers/openrouter/index.js.map +0 -1
  191. package/dist/core/providers/providers/openrouter/provider.d.ts +0 -13
  192. package/dist/core/providers/providers/openrouter/provider.js +0 -80
  193. package/dist/core/providers/providers/openrouter/provider.js.map +0 -1
  194. package/dist/platform/node/opengoat-gateway-client.d.ts +0 -19
  195. package/dist/platform/node/opengoat-gateway-client.js +0 -194
  196. package/dist/platform/node/opengoat-gateway-client.js.map +0 -1
  197. package/dist/platform/node/opengoat-gateway-server.d.ts +0 -53
  198. package/dist/platform/node/opengoat-gateway-server.js +0 -906
  199. package/dist/platform/node/opengoat-gateway-server.js.map +0 -1
@@ -1,6 +1,10 @@
1
+ import { mkdtemp, rm, writeFile } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
1
4
  import { executeCommand } from "./command-executor.js";
2
5
  import { ProviderCommandNotFoundError, UnsupportedProviderActionError } from "./errors.js";
3
6
  import { BaseProvider } from "./base-provider.js";
7
+ import { imageExtensionForMediaType, renderImagePathContext, resolveProviderImageInputs } from "./image-input.js";
4
8
  export class BaseCliProvider extends BaseProvider {
5
9
  command;
6
10
  commandEnvVar;
@@ -51,7 +55,8 @@ export class BaseCliProvider extends BaseProvider {
51
55
  }
52
56
  async invoke(options) {
53
57
  const env = this.prepareExecutionEnv(options.env ?? process.env);
54
- const invocation = this.buildInvocation(options, env);
58
+ const prepared = await this.prepareImageInvocationOptions(options);
59
+ const invocation = this.buildInvocation(prepared.options, env);
55
60
  try {
56
61
  return await executeCommand({
57
62
  command: invocation.command,
@@ -69,6 +74,9 @@ export class BaseCliProvider extends BaseProvider {
69
74
  }
70
75
  throw error;
71
76
  }
77
+ finally {
78
+ await cleanupTempDirs(prepared.tempDirs);
79
+ }
72
80
  }
73
81
  async invokeAuth(options = {}) {
74
82
  const env = this.prepareExecutionEnv(options.env ?? process.env);
@@ -140,6 +148,49 @@ export class BaseCliProvider extends BaseProvider {
140
148
  message: `${systemPrompt}\n\n# User Message\n${options.message}`
141
149
  };
142
150
  }
151
+ async prepareImageInvocationOptions(options) {
152
+ const resolvedImages = await resolveProviderImageInputs({
153
+ providerId: this.id,
154
+ images: options.images,
155
+ cwd: options.cwd
156
+ });
157
+ if (resolvedImages.length === 0) {
158
+ return { options, tempDirs: [] };
159
+ }
160
+ const imagePaths = [];
161
+ const tempDirs = [];
162
+ let tempDir;
163
+ for (let index = 0; index < resolvedImages.length; index += 1) {
164
+ const image = resolvedImages[index];
165
+ if (!image) {
166
+ continue;
167
+ }
168
+ if (image.sourcePath) {
169
+ imagePaths.push(image.sourcePath);
170
+ continue;
171
+ }
172
+ if (!tempDir) {
173
+ tempDir = await mkdtemp(path.join(os.tmpdir(), "opengoat-cli-image-"));
174
+ tempDirs.push(tempDir);
175
+ }
176
+ const extension = imageExtensionForMediaType(image.mediaType);
177
+ const baseName = sanitizeFileStem(image.name || `image-${index + 1}`);
178
+ const targetPath = path.join(tempDir, `${baseName}.${extension}`);
179
+ await writeFile(targetPath, Buffer.from(image.base64Data, "base64"));
180
+ imagePaths.push(targetPath);
181
+ }
182
+ const imageContext = renderImagePathContext(imagePaths);
183
+ if (!imageContext) {
184
+ return { options, tempDirs };
185
+ }
186
+ return {
187
+ options: {
188
+ ...options,
189
+ message: `${options.message.trim()}\n\n${imageContext}`
190
+ },
191
+ tempDirs
192
+ };
193
+ }
143
194
  }
144
195
  function isSpawnPermissionOrMissing(error) {
145
196
  return (typeof error === "object" &&
@@ -148,4 +199,18 @@ function isSpawnPermissionOrMissing(error) {
148
199
  ((error.code ?? "") === "ENOENT" ||
149
200
  (error.code ?? "") === "EACCES"));
150
201
  }
202
+ async function cleanupTempDirs(tempDirs) {
203
+ await Promise.all(tempDirs.map((tempDir) => rm(tempDir, {
204
+ recursive: true,
205
+ force: true
206
+ }).catch(() => undefined)));
207
+ }
208
+ function sanitizeFileStem(value) {
209
+ const compact = value
210
+ .trim()
211
+ .toLowerCase()
212
+ .replace(/[^a-z0-9._-]+/g, "-")
213
+ .replace(/^-+|-+$/g, "");
214
+ return compact || "image";
215
+ }
151
216
  //# sourceMappingURL=cli-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../../src/core/providers/cli-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../../src/core/providers/cli-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ProviderImageInput } from "./types.js";
2
+ export interface ResolvedProviderImageInput {
3
+ name?: string;
4
+ mediaType: string;
5
+ base64Data: string;
6
+ sourcePath?: string;
7
+ }
8
+ export declare function resolveProviderImageInputs(params: {
9
+ providerId: string;
10
+ images?: ProviderImageInput[];
11
+ cwd?: string;
12
+ maxCount?: number;
13
+ maxBytesPerImage?: number;
14
+ }): Promise<ResolvedProviderImageInput[]>;
15
+ export declare function imageExtensionForMediaType(mediaType: string): string;
16
+ export declare function renderImagePathContext(imagePaths: string[]): string;
@@ -0,0 +1,158 @@
1
+ import { readFile, stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { ProviderRuntimeError } from "./errors.js";
4
+ const DEFAULT_MAX_IMAGE_COUNT = 8;
5
+ const DEFAULT_MAX_IMAGE_BYTES = 10 * 1024 * 1024;
6
+ const IMAGE_EXTENSION_TO_MEDIA_TYPE = {
7
+ ".avif": "image/avif",
8
+ ".bmp": "image/bmp",
9
+ ".gif": "image/gif",
10
+ ".heic": "image/heic",
11
+ ".heif": "image/heif",
12
+ ".jpeg": "image/jpeg",
13
+ ".jpg": "image/jpeg",
14
+ ".png": "image/png",
15
+ ".svg": "image/svg+xml",
16
+ ".tif": "image/tiff",
17
+ ".tiff": "image/tiff",
18
+ ".webp": "image/webp"
19
+ };
20
+ const IMAGE_MEDIA_TYPE_TO_EXTENSION = {
21
+ "image/avif": "avif",
22
+ "image/bmp": "bmp",
23
+ "image/gif": "gif",
24
+ "image/heic": "heic",
25
+ "image/heif": "heif",
26
+ "image/jpeg": "jpg",
27
+ "image/png": "png",
28
+ "image/svg+xml": "svg",
29
+ "image/tiff": "tiff",
30
+ "image/webp": "webp"
31
+ };
32
+ export async function resolveProviderImageInputs(params) {
33
+ const images = params.images ?? [];
34
+ if (images.length === 0) {
35
+ return [];
36
+ }
37
+ const maxCount = params.maxCount ?? DEFAULT_MAX_IMAGE_COUNT;
38
+ if (images.length > maxCount) {
39
+ throw new ProviderRuntimeError(params.providerId, `too many images provided (${images.length}); the maximum is ${maxCount}`);
40
+ }
41
+ const resolved = [];
42
+ for (let index = 0; index < images.length; index += 1) {
43
+ const image = images[index];
44
+ if (!image || typeof image !== "object") {
45
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} is invalid`);
46
+ }
47
+ const name = image.name?.trim() || undefined;
48
+ const explicitMediaType = normalizeMediaType(image.mediaType);
49
+ const inputPath = image.path?.trim();
50
+ const dataUrl = image.dataUrl?.trim();
51
+ if (!inputPath && !dataUrl) {
52
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} must include either "path" or "dataUrl"`);
53
+ }
54
+ if (inputPath) {
55
+ const absolutePath = path.isAbsolute(inputPath)
56
+ ? inputPath
57
+ : path.resolve(params.cwd ?? process.cwd(), inputPath);
58
+ const fileStat = await stat(absolutePath).catch(() => null);
59
+ if (!fileStat || !fileStat.isFile()) {
60
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} could not be found at ${absolutePath}`);
61
+ }
62
+ const maxBytesPerImage = params.maxBytesPerImage ?? DEFAULT_MAX_IMAGE_BYTES;
63
+ if (fileStat.size > maxBytesPerImage) {
64
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} is too large (${fileStat.size} bytes); max allowed is ${maxBytesPerImage} bytes`);
65
+ }
66
+ const mediaType = explicitMediaType || inferMediaTypeFromPath(absolutePath);
67
+ if (!mediaType || !isImageMediaType(mediaType)) {
68
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} has unsupported media type (${mediaType ?? "unknown"})`);
69
+ }
70
+ const fileBuffer = await readFile(absolutePath);
71
+ resolved.push({
72
+ name,
73
+ mediaType,
74
+ base64Data: fileBuffer.toString("base64"),
75
+ sourcePath: absolutePath
76
+ });
77
+ continue;
78
+ }
79
+ const parsedDataUrl = parseDataUrl(dataUrl);
80
+ if (!parsedDataUrl) {
81
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} contains an invalid data URL`);
82
+ }
83
+ const mediaType = explicitMediaType || parsedDataUrl.mediaType;
84
+ if (!mediaType || !isImageMediaType(mediaType)) {
85
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} has unsupported media type (${mediaType ?? "unknown"})`);
86
+ }
87
+ const imageBytes = Buffer.from(parsedDataUrl.base64Data, "base64");
88
+ const maxBytesPerImage = params.maxBytesPerImage ?? DEFAULT_MAX_IMAGE_BYTES;
89
+ if (imageBytes.byteLength > maxBytesPerImage) {
90
+ throw new ProviderRuntimeError(params.providerId, `image #${index + 1} is too large (${imageBytes.byteLength} bytes); max allowed is ${maxBytesPerImage} bytes`);
91
+ }
92
+ resolved.push({
93
+ name,
94
+ mediaType,
95
+ base64Data: imageBytes.toString("base64")
96
+ });
97
+ }
98
+ return resolved;
99
+ }
100
+ export function imageExtensionForMediaType(mediaType) {
101
+ return IMAGE_MEDIA_TYPE_TO_EXTENSION[mediaType.toLowerCase()] ?? "bin";
102
+ }
103
+ export function renderImagePathContext(imagePaths) {
104
+ if (imagePaths.length === 0) {
105
+ return "";
106
+ }
107
+ return [
108
+ "## Attached Images",
109
+ "The user attached image files you can inspect locally:",
110
+ ...imagePaths.map((imagePath, index) => `${index + 1}. ${imagePath}`)
111
+ ].join("\n");
112
+ }
113
+ function normalizeMediaType(value) {
114
+ const trimmed = value?.trim().toLowerCase();
115
+ return trimmed ? trimmed : undefined;
116
+ }
117
+ function inferMediaTypeFromPath(filePath) {
118
+ const extension = path.extname(filePath).toLowerCase();
119
+ return IMAGE_EXTENSION_TO_MEDIA_TYPE[extension];
120
+ }
121
+ function isImageMediaType(mediaType) {
122
+ return mediaType.toLowerCase().startsWith("image/");
123
+ }
124
+ function parseDataUrl(value) {
125
+ if (!value.startsWith("data:")) {
126
+ return null;
127
+ }
128
+ const commaIndex = value.indexOf(",");
129
+ if (commaIndex < 0) {
130
+ return null;
131
+ }
132
+ const header = value.slice(5, commaIndex).trim();
133
+ const payload = value.slice(commaIndex + 1).trim();
134
+ if (!payload) {
135
+ return null;
136
+ }
137
+ const headerParts = header.split(";").map((part) => part.trim()).filter(Boolean);
138
+ const mediaType = normalizeMediaType(headerParts[0]);
139
+ const isBase64 = headerParts.some((part) => part.toLowerCase() === "base64");
140
+ if (!isBase64) {
141
+ return null;
142
+ }
143
+ const compactPayload = payload.replace(/\s+/g, "");
144
+ if (!isLikelyBase64(compactPayload)) {
145
+ return null;
146
+ }
147
+ return {
148
+ mediaType,
149
+ base64Data: compactPayload
150
+ };
151
+ }
152
+ function isLikelyBase64(value) {
153
+ if (!value) {
154
+ return false;
155
+ }
156
+ return /^[a-zA-Z0-9+/]+=*$/.test(value);
157
+ }
158
+ //# sourceMappingURL=image-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-input.js","sourceRoot":"","sources":["../../../src/core/providers/image-input.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,10 @@
1
- import type { ProviderSummary } from "./types.js";
2
1
  import { ProviderRegistry } from "./registry.js";
3
- export declare const DEFAULT_PROVIDER_ID = "codex";
4
2
  export declare function createDefaultProviderRegistry(): Promise<ProviderRegistry>;
5
- export declare function registerBuiltinProviders(registry: ProviderRegistry): Promise<void>;
6
- export declare function listProviderSummaries(registry: ProviderRegistry): ProviderSummary[];
7
3
  export { ProviderRegistry, type ProviderFactory } from "./registry.js";
8
4
  export { BaseProvider } from "./base-provider.js";
9
5
  export { BaseCliProvider, type BaseCliProviderConfig } from "./cli-provider.js";
10
6
  export { ProviderService } from "./application/provider.service.js";
11
- export type { AgentRuntimeProfile, ProviderStoredConfig } from "./application/provider.service.js";
12
- export { buildProviderFamilies, filterProvidersForOnboarding, isDefaultOnboardingAgent, resolveOnboardingProviderSetupUrl, selectProvidersForOnboarding, sortProvidersForOnboarding } from "./onboarding.js";
13
- export type { ProviderOnboardingFamily } from "./onboarding.js";
7
+ export type { AgentRuntimeProfile, OpenClawGatewayConfig, ProviderStoredConfig } from "./application/provider.service.js";
14
8
  export { loadProviderModules } from "./loader.js";
15
9
  export type { ProviderModule } from "./provider-module.js";
16
10
  export type { ProviderOnboardingEnvField, ProviderOnboardingSpec } from "./provider-module.js";
@@ -1,27 +1,14 @@
1
1
  import { loadProviderModules } from "./loader.js";
2
2
  import { ProviderRegistry } from "./registry.js";
3
- export const DEFAULT_PROVIDER_ID = "codex";
4
3
  export async function createDefaultProviderRegistry() {
5
4
  const registry = new ProviderRegistry();
6
5
  await loadProviderModules(registry);
7
6
  return registry;
8
7
  }
9
- export async function registerBuiltinProviders(registry) {
10
- await loadProviderModules(registry);
11
- }
12
- export function listProviderSummaries(registry) {
13
- return registry.listProviders().map((provider) => ({
14
- id: provider.id,
15
- displayName: provider.displayName,
16
- kind: provider.kind,
17
- capabilities: provider.capabilities
18
- }));
19
- }
20
8
  export { ProviderRegistry } from "./registry.js";
21
9
  export { BaseProvider } from "./base-provider.js";
22
10
  export { BaseCliProvider } from "./cli-provider.js";
23
11
  export { ProviderService } from "./application/provider.service.js";
24
- export { buildProviderFamilies, filterProvidersForOnboarding, isDefaultOnboardingAgent, resolveOnboardingProviderSetupUrl, selectProvidersForOnboarding, sortProvidersForOnboarding } from "./onboarding.js";
25
12
  export { loadProviderModules } from "./loader.js";
26
13
  export { AgentConfigNotFoundError, InvalidAgentConfigError, InvalidProviderConfigError, OpenGoatProviderError, ProviderAuthenticationError, ProviderCommandNotFoundError, ProviderNotFoundError, ProviderRuntimeError, UnsupportedProviderActionError, UnsupportedProviderOptionError } from "./errors.js";
27
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,eAAe,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,6BAA6B;IACjD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAA0B;IACvE,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAA0B;IAC9D,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;KACpC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAwB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,iCAAiC,EACjC,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAkBlD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,eAAe,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,6BAA6B;IACjD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAwB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAkBlD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,aAAa,CAAC"}
@@ -1,99 +1,5 @@
1
- import { access, readdir } from "node:fs/promises";
2
- import path from "node:path";
3
- import { fileURLToPath, pathToFileURL } from "node:url";
4
- import { providerModule as claudeProviderModule } from "./providers/claude/index.js";
5
- import { providerModule as codexProviderModule } from "./providers/codex/index.js";
6
- import { providerModule as cursorProviderModule } from "./providers/cursor/index.js";
7
- import { providerModule as geminiProviderModule } from "./providers/gemini/index.js";
8
- import { providerModule as grokProviderModule } from "./providers/grok/index.js";
9
- import { providerModule as openaiProviderModule } from "./providers/openai/index.js";
10
1
  import { providerModule as openclawProviderModule } from "./providers/openclaw/index.js";
11
- import { providerModules as extendedHttpProviderModules } from "./providers/extended-http/index.js";
12
- import { providerModule as opencodeProviderModule } from "./providers/opencode/index.js";
13
- import { providerModule as openrouterProviderModule } from "./providers/openrouter/index.js";
14
- const providersRootDir = path.join(path.dirname(fileURLToPath(import.meta.url)), "providers");
15
- const staticProviderModules = [
16
- claudeProviderModule,
17
- codexProviderModule,
18
- cursorProviderModule,
19
- geminiProviderModule,
20
- grokProviderModule,
21
- openaiProviderModule,
22
- openclawProviderModule,
23
- opencodeProviderModule,
24
- openrouterProviderModule,
25
- ...extendedHttpProviderModules
26
- ];
27
2
  export async function loadProviderModules(registry) {
28
- let loadedCount = 0;
29
- let providersDirMissing = false;
30
- try {
31
- const entries = await readdir(providersRootDir, { withFileTypes: true });
32
- for (const entry of entries) {
33
- if (!entry.isDirectory()) {
34
- continue;
35
- }
36
- const providerDir = path.join(providersRootDir, entry.name);
37
- const modulePath = await resolveModulePath(providerDir);
38
- if (!modulePath) {
39
- continue;
40
- }
41
- const imported = (await import(pathToFileURL(modulePath).href));
42
- loadedCount += registerProviderModules(registry, resolveProviderModules(imported));
43
- }
44
- }
45
- catch (error) {
46
- if (!isMissingProvidersDirError(error)) {
47
- throw error;
48
- }
49
- providersDirMissing = true;
50
- }
51
- if (providersDirMissing || loadedCount === 0) {
52
- registerProviderModules(registry, staticProviderModules);
53
- }
54
- }
55
- function resolveProviderModules(imported) {
56
- if (Array.isArray(imported.providerModules) && imported.providerModules.length > 0) {
57
- return imported.providerModules;
58
- }
59
- if (imported.providerModule) {
60
- return [imported.providerModule];
61
- }
62
- return [];
63
- }
64
- function registerProviderModules(registry, providerModules) {
65
- if (providerModules.length === 0) {
66
- return 0;
67
- }
68
- for (const providerModule of providerModules) {
69
- registry.register(providerModule.id, providerModule.create, providerModule);
70
- }
71
- return providerModules.length;
72
- }
73
- async function resolveModulePath(providerDir) {
74
- const candidates = ["index.js", "index.ts"];
75
- for (const candidate of candidates) {
76
- const fullPath = path.join(providerDir, candidate);
77
- if (await exists(fullPath)) {
78
- return fullPath;
79
- }
80
- }
81
- return null;
82
- }
83
- async function exists(filePath) {
84
- try {
85
- await access(filePath);
86
- return true;
87
- }
88
- catch {
89
- return false;
90
- }
91
- }
92
- function isMissingProvidersDirError(error) {
93
- if (!(error instanceof Error)) {
94
- return false;
95
- }
96
- const withCode = error;
97
- return withCode.code === "ENOENT";
3
+ registry.register(openclawProviderModule.id, openclawProviderModule.create, openclawProviderModule);
98
4
  }
99
5
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/providers/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/providers/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAA0B;IAClE,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,EAAE,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AACtG,CAAC"}