@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,394 +0,0 @@
1
- export const OPENGOAT_GATEWAY_PROTOCOL_VERSION = 1;
2
- export const OPENGOAT_GATEWAY_DEFAULTS = {
3
- path: "/gateway",
4
- handshakeTimeoutMs: 10_000,
5
- maxPayloadBytes: 512 * 1024,
6
- maxBufferedBytes: 1.5 * 1024 * 1024,
7
- tickIntervalMs: 30_000,
8
- idempotencyTtlMs: 5 * 60_000,
9
- idempotencyMaxEntries: 1000,
10
- rateLimitPerMinute: 180
11
- };
12
- export const OPENGOAT_GATEWAY_SCOPES = {
13
- read: "operator.read",
14
- write: "operator.write",
15
- admin: "operator.admin"
16
- };
17
- export const OPENGOAT_GATEWAY_METHODS = [
18
- "health",
19
- "agent.list",
20
- "agent.run",
21
- "session.list",
22
- "session.history"
23
- ];
24
- export const OPENGOAT_GATEWAY_EVENTS = ["connect.challenge", "tick", "agent.stream"];
25
- export const OPENGOAT_GATEWAY_ERROR_CODES = {
26
- invalidRequest: "INVALID_REQUEST",
27
- protocolMismatch: "PROTOCOL_MISMATCH",
28
- unauthorized: "UNAUTHORIZED",
29
- forbidden: "FORBIDDEN",
30
- rateLimited: "RATE_LIMITED",
31
- unavailable: "UNAVAILABLE"
32
- };
33
- const CONNECT_PARAMS_KEYS = new Set([
34
- "minProtocol",
35
- "maxProtocol",
36
- "client",
37
- "role",
38
- "scopes",
39
- "auth",
40
- "nonce",
41
- "locale",
42
- "userAgent"
43
- ]);
44
- const CONNECT_CLIENT_KEYS = new Set(["id", "displayName", "version", "platform", "mode", "instanceId"]);
45
- const CONNECT_AUTH_KEYS = new Set(["token"]);
46
- const AGENT_RUN_KEYS = new Set([
47
- "idempotencyKey",
48
- "message",
49
- "agentId",
50
- "sessionRef",
51
- "forceNewSession",
52
- "disableSession",
53
- "cwd",
54
- "model"
55
- ]);
56
- const SESSION_LIST_KEYS = new Set(["agentId", "activeMinutes"]);
57
- const SESSION_HISTORY_KEYS = new Set(["agentId", "sessionRef", "limit", "includeCompaction"]);
58
- export function isOpenGoatGatewayMethod(value) {
59
- return OPENGOAT_GATEWAY_METHODS.includes(value);
60
- }
61
- export function isReadMethod(method) {
62
- return method !== "agent.run";
63
- }
64
- export function parseGatewayRequestFrame(input) {
65
- const record = asRecord(input);
66
- if (!record) {
67
- return { ok: false, error: "frame must be an object" };
68
- }
69
- if (!hasOnlyKeys(record, new Set(["type", "id", "method", "params"]))) {
70
- return { ok: false, error: "frame has unknown fields" };
71
- }
72
- if (record.type !== "req") {
73
- return { ok: false, error: "frame.type must be req" };
74
- }
75
- const id = parseString(record.id, "id", 1, 200);
76
- if (!id.ok) {
77
- return id;
78
- }
79
- const method = parseString(record.method, "method", 1, 120);
80
- if (!method.ok) {
81
- return method;
82
- }
83
- return {
84
- ok: true,
85
- value: {
86
- type: "req",
87
- id: id.value,
88
- method: method.value,
89
- params: record.params
90
- }
91
- };
92
- }
93
- export function parseConnectParams(input) {
94
- const record = asRecord(input);
95
- if (!record) {
96
- return { ok: false, error: "connect params must be an object" };
97
- }
98
- if (!hasOnlyKeys(record, CONNECT_PARAMS_KEYS)) {
99
- return { ok: false, error: "connect params contain unknown fields" };
100
- }
101
- const minProtocol = parseInteger(record.minProtocol, "minProtocol", 1, 1000);
102
- if (!minProtocol.ok) {
103
- return minProtocol;
104
- }
105
- const maxProtocol = parseInteger(record.maxProtocol, "maxProtocol", 1, 1000);
106
- if (!maxProtocol.ok) {
107
- return maxProtocol;
108
- }
109
- const clientRecord = asRecord(record.client);
110
- if (!clientRecord) {
111
- return { ok: false, error: "client must be an object" };
112
- }
113
- if (!hasOnlyKeys(clientRecord, CONNECT_CLIENT_KEYS)) {
114
- return { ok: false, error: "client contains unknown fields" };
115
- }
116
- const clientId = parseString(clientRecord.id, "client.id", 1, 120);
117
- if (!clientId.ok) {
118
- return clientId;
119
- }
120
- const clientVersion = parseString(clientRecord.version, "client.version", 1, 80);
121
- if (!clientVersion.ok) {
122
- return clientVersion;
123
- }
124
- const clientPlatform = parseString(clientRecord.platform, "client.platform", 1, 80);
125
- if (!clientPlatform.ok) {
126
- return clientPlatform;
127
- }
128
- const clientMode = parseString(clientRecord.mode, "client.mode", 1, 80);
129
- if (!clientMode.ok) {
130
- return clientMode;
131
- }
132
- const clientDisplayName = parseOptionalString(clientRecord.displayName, "client.displayName", 1, 120);
133
- if (!clientDisplayName.ok) {
134
- return clientDisplayName;
135
- }
136
- const clientInstanceId = parseOptionalString(clientRecord.instanceId, "client.instanceId", 1, 120);
137
- if (!clientInstanceId.ok) {
138
- return clientInstanceId;
139
- }
140
- let role;
141
- if (record.role !== undefined) {
142
- if (record.role !== "operator") {
143
- return { ok: false, error: "role must be operator" };
144
- }
145
- role = "operator";
146
- }
147
- let scopes;
148
- if (record.scopes !== undefined) {
149
- if (!Array.isArray(record.scopes)) {
150
- return { ok: false, error: "scopes must be an array" };
151
- }
152
- const parsedScopes = [];
153
- for (const scope of record.scopes) {
154
- const parsed = parseString(scope, "scopes[]", 1, 80);
155
- if (!parsed.ok) {
156
- return parsed;
157
- }
158
- if (!isScope(parsed.value)) {
159
- return { ok: false, error: `unsupported scope: ${parsed.value}` };
160
- }
161
- parsedScopes.push(parsed.value);
162
- }
163
- scopes = dedupeScopes(parsedScopes);
164
- }
165
- let auth;
166
- if (record.auth !== undefined) {
167
- const authRecord = asRecord(record.auth);
168
- if (!authRecord) {
169
- return { ok: false, error: "auth must be an object" };
170
- }
171
- if (!hasOnlyKeys(authRecord, CONNECT_AUTH_KEYS)) {
172
- return { ok: false, error: "auth contains unknown fields" };
173
- }
174
- const token = parseOptionalString(authRecord.token, "auth.token", 8, 512);
175
- if (!token.ok) {
176
- return token;
177
- }
178
- auth = token.value ? { token: token.value } : {};
179
- }
180
- const nonce = parseOptionalString(record.nonce, "nonce", 1, 200);
181
- if (!nonce.ok) {
182
- return nonce;
183
- }
184
- const locale = parseOptionalString(record.locale, "locale", 1, 40);
185
- if (!locale.ok) {
186
- return locale;
187
- }
188
- const userAgent = parseOptionalString(record.userAgent, "userAgent", 1, 512);
189
- if (!userAgent.ok) {
190
- return userAgent;
191
- }
192
- return {
193
- ok: true,
194
- value: {
195
- minProtocol: minProtocol.value,
196
- maxProtocol: maxProtocol.value,
197
- client: {
198
- id: clientId.value,
199
- displayName: clientDisplayName.value,
200
- version: clientVersion.value,
201
- platform: clientPlatform.value,
202
- mode: clientMode.value,
203
- instanceId: clientInstanceId.value
204
- },
205
- role,
206
- scopes,
207
- auth,
208
- nonce: nonce.value,
209
- locale: locale.value,
210
- userAgent: userAgent.value
211
- }
212
- };
213
- }
214
- export function parseAgentRunParams(input) {
215
- const record = asRecord(input);
216
- if (!record) {
217
- return { ok: false, error: "agent.run params must be an object" };
218
- }
219
- if (!hasOnlyKeys(record, AGENT_RUN_KEYS)) {
220
- return { ok: false, error: "agent.run params contain unknown fields" };
221
- }
222
- const idempotencyKey = parseString(record.idempotencyKey, "idempotencyKey", 1, 200);
223
- if (!idempotencyKey.ok) {
224
- return idempotencyKey;
225
- }
226
- const message = parseString(record.message, "message", 1, 100_000);
227
- if (!message.ok) {
228
- return message;
229
- }
230
- const agentId = parseOptionalString(record.agentId, "agentId", 1, 120);
231
- if (!agentId.ok) {
232
- return agentId;
233
- }
234
- const sessionRef = parseOptionalString(record.sessionRef, "sessionRef", 1, 200);
235
- if (!sessionRef.ok) {
236
- return sessionRef;
237
- }
238
- const forceNewSession = parseOptionalBoolean(record.forceNewSession, "forceNewSession");
239
- if (!forceNewSession.ok) {
240
- return forceNewSession;
241
- }
242
- const disableSession = parseOptionalBoolean(record.disableSession, "disableSession");
243
- if (!disableSession.ok) {
244
- return disableSession;
245
- }
246
- const cwd = parseOptionalString(record.cwd, "cwd", 1, 4096);
247
- if (!cwd.ok) {
248
- return cwd;
249
- }
250
- const model = parseOptionalString(record.model, "model", 1, 160);
251
- if (!model.ok) {
252
- return model;
253
- }
254
- return {
255
- ok: true,
256
- value: {
257
- idempotencyKey: idempotencyKey.value,
258
- message: message.value,
259
- agentId: agentId.value,
260
- sessionRef: sessionRef.value,
261
- forceNewSession: forceNewSession.value,
262
- disableSession: disableSession.value,
263
- cwd: cwd.value,
264
- model: model.value
265
- }
266
- };
267
- }
268
- export function parseSessionListParams(input) {
269
- if (input === undefined || input === null) {
270
- return { ok: true, value: {} };
271
- }
272
- const record = asRecord(input);
273
- if (!record) {
274
- return { ok: false, error: "session.list params must be an object" };
275
- }
276
- if (!hasOnlyKeys(record, SESSION_LIST_KEYS)) {
277
- return { ok: false, error: "session.list params contain unknown fields" };
278
- }
279
- const agentId = parseOptionalString(record.agentId, "agentId", 1, 120);
280
- if (!agentId.ok) {
281
- return agentId;
282
- }
283
- let activeMinutes;
284
- if (record.activeMinutes !== undefined) {
285
- const value = parseInteger(record.activeMinutes, "activeMinutes", 1, 60 * 24 * 365);
286
- if (!value.ok) {
287
- return value;
288
- }
289
- activeMinutes = value.value;
290
- }
291
- return {
292
- ok: true,
293
- value: {
294
- agentId: agentId.value,
295
- activeMinutes
296
- }
297
- };
298
- }
299
- export function parseSessionHistoryParams(input) {
300
- if (input === undefined || input === null) {
301
- return { ok: true, value: {} };
302
- }
303
- const record = asRecord(input);
304
- if (!record) {
305
- return { ok: false, error: "session.history params must be an object" };
306
- }
307
- if (!hasOnlyKeys(record, SESSION_HISTORY_KEYS)) {
308
- return { ok: false, error: "session.history params contain unknown fields" };
309
- }
310
- const agentId = parseOptionalString(record.agentId, "agentId", 1, 120);
311
- if (!agentId.ok) {
312
- return agentId;
313
- }
314
- const sessionRef = parseOptionalString(record.sessionRef, "sessionRef", 1, 200);
315
- if (!sessionRef.ok) {
316
- return sessionRef;
317
- }
318
- let limit;
319
- if (record.limit !== undefined) {
320
- const parsedLimit = parseInteger(record.limit, "limit", 1, 5000);
321
- if (!parsedLimit.ok) {
322
- return parsedLimit;
323
- }
324
- limit = parsedLimit.value;
325
- }
326
- const includeCompaction = parseOptionalBoolean(record.includeCompaction, "includeCompaction");
327
- if (!includeCompaction.ok) {
328
- return includeCompaction;
329
- }
330
- return {
331
- ok: true,
332
- value: {
333
- agentId: agentId.value,
334
- sessionRef: sessionRef.value,
335
- limit,
336
- includeCompaction: includeCompaction.value
337
- }
338
- };
339
- }
340
- function parseString(value, field, minLength, maxLength) {
341
- if (typeof value !== "string") {
342
- return { ok: false, error: `${field} must be a string` };
343
- }
344
- const trimmed = value.trim();
345
- if (trimmed.length < minLength) {
346
- return { ok: false, error: `${field} must be at least ${minLength} character(s)` };
347
- }
348
- if (trimmed.length > maxLength) {
349
- return { ok: false, error: `${field} must be at most ${maxLength} character(s)` };
350
- }
351
- return { ok: true, value: trimmed };
352
- }
353
- function parseOptionalString(value, field, minLength, maxLength) {
354
- if (value === undefined || value === null) {
355
- return { ok: true, value: undefined };
356
- }
357
- return parseString(value, field, minLength, maxLength);
358
- }
359
- function parseInteger(value, field, min, max) {
360
- if (typeof value !== "number" || !Number.isFinite(value) || !Number.isInteger(value)) {
361
- return { ok: false, error: `${field} must be an integer` };
362
- }
363
- if (value < min || value > max) {
364
- return { ok: false, error: `${field} must be between ${min} and ${max}` };
365
- }
366
- return { ok: true, value };
367
- }
368
- function parseOptionalBoolean(value, field) {
369
- if (value === undefined || value === null) {
370
- return { ok: true, value: undefined };
371
- }
372
- if (typeof value !== "boolean") {
373
- return { ok: false, error: `${field} must be a boolean` };
374
- }
375
- return { ok: true, value };
376
- }
377
- function asRecord(value) {
378
- if (!value || typeof value !== "object" || Array.isArray(value)) {
379
- return null;
380
- }
381
- return value;
382
- }
383
- function hasOnlyKeys(value, allowed) {
384
- return Object.keys(value).every((key) => allowed.has(key));
385
- }
386
- function isScope(value) {
387
- return (value === OPENGOAT_GATEWAY_SCOPES.read ||
388
- value === OPENGOAT_GATEWAY_SCOPES.write ||
389
- value === OPENGOAT_GATEWAY_SCOPES.admin);
390
- }
391
- function dedupeScopes(scopes) {
392
- return [...new Set(scopes)];
393
- }
394
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../src/core/gateway/domain/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { OPENGOAT_GATEWAY_PROTOCOL_VERSION, OPENGOAT_GATEWAY_DEFAULTS, OPENGOAT_GATEWAY_SCOPES, OPENGOAT_GATEWAY_METHODS, OPENGOAT_GATEWAY_EVENTS, OPENGOAT_GATEWAY_ERROR_CODES, isOpenGoatGatewayMethod, isReadMethod, parseGatewayRequestFrame, parseConnectParams, parseAgentRunParams, parseSessionListParams, parseSessionHistoryParams } from "./domain/protocol.js";
2
- export type { OpenGoatGatewayScope, OpenGoatGatewayMethod, OpenGoatGatewayEvent, OpenGoatGatewayErrorShape, OpenGoatGatewayRequestFrame, OpenGoatGatewayResponseFrame, OpenGoatGatewayEventFrame, OpenGoatGatewayClientInfo, OpenGoatGatewayConnectParams, OpenGoatGatewayAgentRunParams, OpenGoatGatewaySessionListParams, OpenGoatGatewaySessionHistoryParams, ParseResult } from "./domain/protocol.js";
@@ -1,2 +0,0 @@
1
- export { OPENGOAT_GATEWAY_PROTOCOL_VERSION, OPENGOAT_GATEWAY_DEFAULTS, OPENGOAT_GATEWAY_SCOPES, OPENGOAT_GATEWAY_METHODS, OPENGOAT_GATEWAY_EVENTS, OPENGOAT_GATEWAY_ERROR_CODES, isOpenGoatGatewayMethod, isReadMethod, parseGatewayRequestFrame, parseConnectParams, parseAgentRunParams, parseSessionListParams, parseSessionHistoryParams } from "./domain/protocol.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,YAAY,EACZ,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC"}
@@ -1,26 +0,0 @@
1
- import { generateText } from "ai";
2
- import { createOpenAI } from "@ai-sdk/openai";
3
- import type { OpenAiCompatibleTextRequest, OpenAiCompatibleTextResult, OpenAiCompatibleTextRuntime } from "../domain/text-runtime.js";
4
- interface VercelAiTextRuntimeDeps {
5
- generateTextFn?: typeof generateText;
6
- createOpenAIProvider?: typeof createOpenAI;
7
- fetchFn?: typeof fetch;
8
- requestTimeoutMs?: number;
9
- maxRetries?: number;
10
- }
11
- export interface LlmRuntimeErrorDetails {
12
- statusCode?: number;
13
- message: string;
14
- }
15
- export declare class VercelAiTextRuntime implements OpenAiCompatibleTextRuntime {
16
- private readonly generateTextFn;
17
- private readonly createOpenAIProvider;
18
- private readonly fetchFn;
19
- private readonly requestTimeoutMs;
20
- private readonly maxRetries;
21
- constructor(deps?: VercelAiTextRuntimeDeps);
22
- generateText(request: OpenAiCompatibleTextRequest): Promise<OpenAiCompatibleTextResult>;
23
- private createFetchMiddleware;
24
- }
25
- export declare function parseLlmRuntimeError(error: unknown): LlmRuntimeErrorDetails;
26
- export {};
@@ -1,223 +0,0 @@
1
- import { generateText } from "ai";
2
- import { createOpenAI, } from "@ai-sdk/openai";
3
- import { ProviderRuntimeError } from "../../providers/errors.js";
4
- const DEFAULT_REQUEST_TIMEOUT_MS = 120_000;
5
- const DEFAULT_MAX_RETRIES = 0;
6
- export class VercelAiTextRuntime {
7
- generateTextFn;
8
- createOpenAIProvider;
9
- fetchFn;
10
- requestTimeoutMs;
11
- maxRetries;
12
- constructor(deps = {}) {
13
- this.generateTextFn = deps.generateTextFn ?? generateText;
14
- this.createOpenAIProvider = deps.createOpenAIProvider ?? createOpenAI;
15
- this.fetchFn = deps.fetchFn ?? fetch;
16
- this.requestTimeoutMs = normalizePositiveInt(deps.requestTimeoutMs, DEFAULT_REQUEST_TIMEOUT_MS);
17
- this.maxRetries = normalizeNonNegativeInt(deps.maxRetries, DEFAULT_MAX_RETRIES);
18
- }
19
- async generateText(request) {
20
- const provider = this.createOpenAIProvider({
21
- apiKey: request.apiKey,
22
- baseURL: request.baseURL,
23
- name: request.providerName,
24
- headers: request.headers,
25
- fetch: this.createFetchMiddleware(request, this.fetchFn),
26
- });
27
- const model = resolveModel(provider, request.style, request.model);
28
- const result = await this.generateTextFn({
29
- model,
30
- prompt: request.message,
31
- system: request.systemPrompt?.trim() || undefined,
32
- maxRetries: this.maxRetries,
33
- abortSignal: request.abortSignal,
34
- });
35
- const text = result.text?.trim();
36
- if (!text) {
37
- throw new ProviderRuntimeError(request.providerName, "no textual output found in response");
38
- }
39
- return {
40
- text: ensureTrailingNewline(text),
41
- providerSessionId: resolveResponseId(result.providerMetadata),
42
- };
43
- }
44
- createFetchMiddleware(request, fetchFn) {
45
- const endpointOverride = request.endpointOverride?.trim();
46
- const endpointPathOverride = request.endpointPathOverride?.trim();
47
- const requestTimeoutMs = normalizePositiveInt(request.requestTimeoutMs, this.requestTimeoutMs);
48
- return async (input, init) => {
49
- const nextUrl = endpointOverride
50
- ? endpointOverride
51
- : endpointPathOverride
52
- ? rewriteEndpointPath(input, endpointPathOverride, request.baseURL)
53
- : toUrlString(input);
54
- return fetchWithTimeout(fetchFn, nextUrl, init, requestTimeoutMs);
55
- };
56
- }
57
- }
58
- async function fetchWithTimeout(fetchFn, input, init, timeoutMs) {
59
- const upstreamSignal = init?.signal;
60
- const timeoutController = new AbortController();
61
- let upstreamAbortListener;
62
- let timeoutHandle;
63
- if (upstreamSignal?.aborted) {
64
- timeoutController.abort(upstreamSignal.reason);
65
- }
66
- else if (upstreamSignal) {
67
- upstreamAbortListener = () => timeoutController.abort(upstreamSignal.reason);
68
- upstreamSignal.addEventListener("abort", upstreamAbortListener, {
69
- once: true,
70
- });
71
- }
72
- try {
73
- const timeoutPromise = new Promise((_, reject) => {
74
- timeoutHandle = setTimeout(() => {
75
- timeoutController.abort();
76
- reject(new Error(`Request timed out after ${timeoutMs}ms`));
77
- }, timeoutMs);
78
- timeoutController.signal.addEventListener("abort", () => {
79
- if (timeoutHandle) {
80
- clearTimeout(timeoutHandle);
81
- }
82
- }, { once: true });
83
- });
84
- return await Promise.race([
85
- fetchFn(input, {
86
- ...init,
87
- signal: timeoutController.signal,
88
- }),
89
- timeoutPromise,
90
- ]);
91
- }
92
- catch (error) {
93
- if (!upstreamSignal?.aborted && isAbortError(error)) {
94
- throw new Error(`Request timed out after ${timeoutMs}ms`);
95
- }
96
- throw error;
97
- }
98
- finally {
99
- if (timeoutHandle) {
100
- clearTimeout(timeoutHandle);
101
- }
102
- if (upstreamSignal && upstreamAbortListener) {
103
- upstreamSignal.removeEventListener("abort", upstreamAbortListener);
104
- }
105
- }
106
- }
107
- function isAbortError(error) {
108
- if (!error || typeof error !== "object") {
109
- return false;
110
- }
111
- const name = error.name;
112
- return typeof name === "string" && name.toLowerCase() === "aborterror";
113
- }
114
- function normalizePositiveInt(value, fallback) {
115
- if (!Number.isFinite(value) || (value ?? 0) <= 0) {
116
- return fallback;
117
- }
118
- return Math.floor(value ?? fallback);
119
- }
120
- function normalizeNonNegativeInt(value, fallback) {
121
- if (!Number.isFinite(value) || (value ?? 0) < 0) {
122
- return fallback;
123
- }
124
- return Math.floor(value ?? fallback);
125
- }
126
- function resolveModel(provider, style, model) {
127
- if (style === "chat") {
128
- return provider.chat(model);
129
- }
130
- return provider.responses(model);
131
- }
132
- function rewriteEndpointPath(input, pathValue, baseURL) {
133
- const normalizedPath = normalizePath(pathValue);
134
- const originalUrl = toUrlString(input);
135
- const url = new URL(originalUrl);
136
- url.pathname = joinEndpointPath(resolveBasePathPrefix(baseURL), normalizedPath);
137
- return url.toString();
138
- }
139
- function normalizePath(value) {
140
- const trimmed = value.trim();
141
- if (!trimmed) {
142
- return "/";
143
- }
144
- return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
145
- }
146
- function resolveBasePathPrefix(baseURL) {
147
- const pathname = new URL(baseURL).pathname.trim();
148
- if (!pathname || pathname === "/") {
149
- return "";
150
- }
151
- return pathname.replace(/\/+$/, "");
152
- }
153
- function joinEndpointPath(basePathPrefix, endpointPath) {
154
- if (!basePathPrefix) {
155
- return endpointPath;
156
- }
157
- if (endpointPath === basePathPrefix ||
158
- endpointPath.startsWith(`${basePathPrefix}/`)) {
159
- return endpointPath;
160
- }
161
- return `${basePathPrefix}${endpointPath}`;
162
- }
163
- function toUrlString(value) {
164
- if (typeof value === "string") {
165
- return value;
166
- }
167
- if (value instanceof URL) {
168
- return value.toString();
169
- }
170
- return value.url;
171
- }
172
- function resolveResponseId(value) {
173
- if (!value || typeof value !== "object") {
174
- return undefined;
175
- }
176
- const record = value;
177
- const openai = record.openai;
178
- if (!openai || typeof openai !== "object") {
179
- return undefined;
180
- }
181
- const responseId = openai.responseId;
182
- return typeof responseId === "string" && responseId.trim().length > 0
183
- ? responseId
184
- : undefined;
185
- }
186
- function ensureTrailingNewline(value) {
187
- return value.endsWith("\n") ? value : `${value}\n`;
188
- }
189
- export function parseLlmRuntimeError(error) {
190
- if (error && typeof error === "object") {
191
- const record = error;
192
- const statusCode = typeof record.statusCode === "number" ? record.statusCode : undefined;
193
- const responseBody = typeof record.responseBody === "string" ? record.responseBody.trim() : "";
194
- const message = typeof record.message === "string" ? record.message.trim() : "";
195
- if (statusCode !== undefined) {
196
- if (responseBody) {
197
- return {
198
- statusCode,
199
- message: `HTTP ${statusCode}: ${responseBody}`,
200
- };
201
- }
202
- if (message) {
203
- return {
204
- statusCode,
205
- message: `HTTP ${statusCode}: ${message}`,
206
- };
207
- }
208
- return {
209
- statusCode,
210
- message: `HTTP ${statusCode}`,
211
- };
212
- }
213
- if (message) {
214
- return {
215
- message,
216
- };
217
- }
218
- }
219
- return {
220
- message: "LLM runtime request failed",
221
- };
222
- }
223
- //# sourceMappingURL=vercel-ai-text-runtime.js.map