@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,259 @@
1
+ import { DEFAULT_AGENT_ID, isDefaultAgentId } from "../domain/agent-id.js";
2
+ import { DEFAULT_PROVIDER_ID } from "../providers/index.js";
3
+ export { DEFAULT_AGENT_ID } from "../domain/agent-id.js";
4
+ export function renderGlobalConfig(nowIso) {
5
+ return {
6
+ schemaVersion: 1,
7
+ defaultAgent: DEFAULT_AGENT_ID,
8
+ createdAt: nowIso,
9
+ updatedAt: nowIso
10
+ };
11
+ }
12
+ export function renderAgentsIndex(nowIso, agents) {
13
+ return {
14
+ schemaVersion: 1,
15
+ agents,
16
+ updatedAt: nowIso
17
+ };
18
+ }
19
+ export function renderGlobalConfigMarkdown() {
20
+ return [
21
+ "# OpenGoat Home",
22
+ "",
23
+ "This directory is OpenGoat runtime state.",
24
+ "",
25
+ "- `config.json`: global orchestrator settings",
26
+ "- `agents.json`: registered agent ids",
27
+ "- `workspaces/`: user-visible agent workspaces",
28
+ "- `agents/`: internal per-agent configuration",
29
+ "- `skills/`: managed shared skills (optional source for agent installs)",
30
+ "- `providers/`: provider credentials and endpoint settings",
31
+ "- `sessions/`: transient per-run orchestration working files",
32
+ "- `runs/`: run traces (routing + execution history)",
33
+ "",
34
+ "Only Markdown and JSON files are used for OpenGoat configuration and state."
35
+ ].join("\n");
36
+ }
37
+ export function renderWorkspaceAgentsMarkdown(agent, providerId = DEFAULT_PROVIDER_ID) {
38
+ const description = isDefaultAgentId(agent.id)
39
+ ? "Primary orchestration agent that routes work to specialized agents."
40
+ : `Specialized agent for ${agent.displayName}.`;
41
+ const tags = isDefaultAgentId(agent.id) ? "orchestration, routing" : "specialized, delegated";
42
+ const canDelegate = isDefaultAgentId(agent.id) ? "true" : "false";
43
+ const priority = isDefaultAgentId(agent.id) ? "100" : "50";
44
+ return [
45
+ "---",
46
+ `id: ${agent.id}`,
47
+ `name: ${agent.displayName}`,
48
+ `description: ${description}`,
49
+ `provider: ${providerId}`,
50
+ "discoverable: true",
51
+ `tags: [${tags}]`,
52
+ "delegation:",
53
+ " canReceive: true",
54
+ ` canDelegate: ${canDelegate}`,
55
+ `priority: ${priority}`,
56
+ "---",
57
+ "",
58
+ `# ${agent.displayName} (OpenGoat Agent)`,
59
+ "",
60
+ "## Role",
61
+ "You are an autonomous agent managed by OpenGoat.",
62
+ "",
63
+ "## Workspace Contract",
64
+ "- The workspace is your writable environment.",
65
+ "- Keep durable user-facing guidance in Markdown files.",
66
+ "- Keep structured settings in JSON files.",
67
+ "",
68
+ "## Operational Rules",
69
+ "- Prefer explicit planning before major actions.",
70
+ "- Keep logs concise and actionable.",
71
+ "- Record important decisions in `CONTEXT.md`.",
72
+ "",
73
+ "## Memory",
74
+ "Use `CONTEXT.md` for rolling context and handoff notes."
75
+ ].join("\n");
76
+ }
77
+ export function renderWorkspaceContextMarkdown(agent) {
78
+ return [
79
+ `# Context (${agent.displayName})`,
80
+ "",
81
+ "- Created by OpenGoat during workspace bootstrap.",
82
+ "- Use this file to capture current goals, constraints, and pending work."
83
+ ].join("\n");
84
+ }
85
+ export function renderWorkspaceSoulMarkdown(agent) {
86
+ return [
87
+ `# Soul (${agent.displayName})`,
88
+ "",
89
+ "- Define tone, style, and non-negotiable guardrails here.",
90
+ "- Keep this file concise and stable across runs."
91
+ ].join("\n");
92
+ }
93
+ export function renderWorkspaceToolsMarkdown() {
94
+ return [
95
+ "# Tools",
96
+ "",
97
+ "- Document local tool conventions and execution preferences.",
98
+ "- This file is guidance only; it does not grant tool permissions."
99
+ ].join("\n");
100
+ }
101
+ export function renderWorkspaceIdentityMarkdown(agent) {
102
+ return [
103
+ "# Identity",
104
+ "",
105
+ `- id: ${agent.id}`,
106
+ `- displayName: ${agent.displayName}`,
107
+ "- role: OpenGoat agent"
108
+ ].join("\n");
109
+ }
110
+ export function renderWorkspaceUserMarkdown() {
111
+ return [
112
+ "# User",
113
+ "",
114
+ "- Capture durable user preferences here.",
115
+ "- Avoid secrets; reference secure storage instead."
116
+ ].join("\n");
117
+ }
118
+ export function renderWorkspaceHeartbeatMarkdown() {
119
+ return [
120
+ "# Heartbeat",
121
+ "",
122
+ "Read this file when asked to perform heartbeat checks.",
123
+ "If nothing needs attention, return HEARTBEAT_OK."
124
+ ].join("\n");
125
+ }
126
+ export function renderWorkspaceBootstrapMarkdown(agent) {
127
+ return [
128
+ `# Bootstrap (${agent.displayName})`,
129
+ "",
130
+ "First-run checklist:",
131
+ "- Review AGENTS.md, SOUL.md, and IDENTITY.md.",
132
+ "- Confirm USER.md and CONTEXT.md reflect current goals.",
133
+ "- Delete this file after the bootstrap ritual is complete."
134
+ ].join("\n");
135
+ }
136
+ export function renderDefaultOrchestratorSkillMarkdown() {
137
+ return [
138
+ "---",
139
+ "name: OpenGoat Skill",
140
+ "description: Use the OpenGoat CLI to orchestrate agents, providers, sessions, skills, and plugins.",
141
+ "user-invocable: true",
142
+ "---",
143
+ "",
144
+ "# OpenGoat Skill",
145
+ "",
146
+ "## When to Use",
147
+ "- Use this skill when the task requires OpenGoat platform operations.",
148
+ "- Use it for agent lifecycle, provider setup, routing checks, and session inspection.",
149
+ "",
150
+ "## Command Playbook",
151
+ "- Send message to default orchestrator: `opengoat agent --message \"<text>\"`",
152
+ "- Send message to specific agent: `opengoat agent <agent-id> --message \"<text>\"`",
153
+ "- Create agent: `opengoat agent create --name \"<name>\"`",
154
+ "- List agents: `opengoat agent list`",
155
+ "- Inspect/set provider: `opengoat agent provider get --agent <agent-id>` / `opengoat agent provider set --agent <agent-id> --provider <provider-id>`",
156
+ "- List providers: `opengoat provider list`",
157
+ "- Configure providers and credentials: `opengoat onboard`",
158
+ "- Inspect routing: `opengoat route --message \"<text>\"`",
159
+ "- Manage sessions: `opengoat session list|history|reset|compact ...`",
160
+ "- Manage skills: `opengoat skill list|install ...`",
161
+ "- Manage plugins: `opengoat plugin list|install|enable|disable|doctor ...`",
162
+ "",
163
+ "## Rules",
164
+ "- Treat `orchestrator` as the default entry agent unless explicitly overridden.",
165
+ "- Prefer non-destructive inspection commands before changing provider or plugin state.",
166
+ "- After CLI actions, report what changed and where."
167
+ ].join("\n");
168
+ }
169
+ export function renderWorkspaceMetadata(agent) {
170
+ return {
171
+ schemaVersion: 1,
172
+ id: agent.id,
173
+ displayName: agent.displayName,
174
+ kind: "workspace",
175
+ createdBy: "opengoat"
176
+ };
177
+ }
178
+ export function renderInternalAgentConfig(agent) {
179
+ const workspaceAccess = isDefaultAgentId(agent.id) ? "internal" : "auto";
180
+ return {
181
+ schemaVersion: 1,
182
+ id: agent.id,
183
+ displayName: agent.displayName,
184
+ provider: {
185
+ id: DEFAULT_PROVIDER_ID
186
+ },
187
+ runtime: {
188
+ mode: "orchestrated",
189
+ workspaceAccess,
190
+ contextBudgetTokens: 128_000,
191
+ bootstrapMaxChars: 20_000,
192
+ sessions: {
193
+ mainKey: "main",
194
+ contextMaxChars: 12_000,
195
+ reset: {
196
+ mode: "daily",
197
+ atHour: 4
198
+ },
199
+ pruning: {
200
+ enabled: true,
201
+ maxMessages: 40,
202
+ maxChars: 16_000,
203
+ keepRecentMessages: 12
204
+ },
205
+ compaction: {
206
+ enabled: true,
207
+ triggerMessageCount: 80,
208
+ triggerChars: 32_000,
209
+ keepRecentMessages: 20,
210
+ summaryMaxChars: 4_000
211
+ },
212
+ skills: {
213
+ enabled: true,
214
+ includeWorkspace: true,
215
+ includeManaged: true,
216
+ load: {
217
+ extraDirs: []
218
+ },
219
+ prompt: {
220
+ maxSkills: 12,
221
+ maxCharsPerSkill: 6_000,
222
+ maxTotalChars: 36_000,
223
+ includeContent: true
224
+ }
225
+ }
226
+ }
227
+ },
228
+ prompt: {
229
+ bootstrapFiles: [
230
+ "AGENTS.md",
231
+ "SOUL.md",
232
+ "TOOLS.md",
233
+ "IDENTITY.md",
234
+ "USER.md",
235
+ "HEARTBEAT.md",
236
+ "CONTEXT.md",
237
+ "BOOTSTRAP.md",
238
+ "MEMORY.md",
239
+ "memory.md"
240
+ ]
241
+ }
242
+ };
243
+ }
244
+ export function renderInternalAgentMemoryMarkdown(agent) {
245
+ return [
246
+ `# Internal Memory (${agent.displayName})`,
247
+ "",
248
+ "This file is for OpenGoat internal memory and diagnostic notes.",
249
+ "It should remain machine-writable and human-readable."
250
+ ].join("\n");
251
+ }
252
+ export function renderInternalAgentState() {
253
+ return {
254
+ schemaVersion: 1,
255
+ status: "idle",
256
+ lastRunAt: null
257
+ };
258
+ }
259
+ //# sourceMappingURL=default-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-templates.js","sourceRoot":"","sources":["../../../src/core/templates/default-templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export * from "./core/domain/agent.js";
2
+ export * from "./core/domain/agent-id.js";
3
+ export * from "./core/domain/opengoat-paths.js";
4
+ export * from "./core/ports/file-system.port.js";
5
+ export * from "./core/ports/path.port.js";
6
+ export * from "./core/ports/paths-provider.port.js";
7
+ export * from "./core/agents/index.js";
8
+ export * from "./core/bootstrap/index.js";
9
+ export * from "./core/providers/index.js";
10
+ export * from "./core/providers/providers/extended-http/index.js";
11
+ export * from "./core/opengoat/index.js";
12
+ export * from "./core/orchestration/index.js";
13
+ export * from "./core/sessions/index.js";
14
+ export * from "./core/scenarios/index.js";
15
+ export * from "./core/skills/index.js";
16
+ export * from "./core/acp/index.js";
17
+ export * from "./core/gateway/index.js";
18
+ export * from "./core/logging/index.js";
19
+ export * from "./apps/runtime/create-opengoat-runtime.js";
20
+ export * from "./platform/node/node-file-system.js";
21
+ export * from "./platform/node/node-logger.js";
22
+ export * from "./platform/node/node-path.port.js";
23
+ export * from "./platform/node/node-command-runner.js";
24
+ export * from "./platform/node/dotenv.js";
25
+ export * from "./platform/node/acp-server.js";
26
+ export * from "./platform/node/opengoat-gateway-client.js";
27
+ export * from "./platform/node/opengoat-gateway-server.js";
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ export * from "./core/domain/agent.js";
2
+ export * from "./core/domain/agent-id.js";
3
+ export * from "./core/domain/opengoat-paths.js";
4
+ export * from "./core/ports/file-system.port.js";
5
+ export * from "./core/ports/path.port.js";
6
+ export * from "./core/ports/paths-provider.port.js";
7
+ export * from "./core/agents/index.js";
8
+ export * from "./core/bootstrap/index.js";
9
+ export * from "./core/providers/index.js";
10
+ export * from "./core/providers/providers/extended-http/index.js";
11
+ export * from "./core/opengoat/index.js";
12
+ export * from "./core/orchestration/index.js";
13
+ export * from "./core/sessions/index.js";
14
+ export * from "./core/scenarios/index.js";
15
+ export * from "./core/skills/index.js";
16
+ export * from "./core/acp/index.js";
17
+ export * from "./core/gateway/index.js";
18
+ export * from "./core/logging/index.js";
19
+ export * from "./apps/runtime/create-opengoat-runtime.js";
20
+ export * from "./platform/node/node-file-system.js";
21
+ export * from "./platform/node/node-logger.js";
22
+ export * from "./platform/node/node-path.port.js";
23
+ export * from "./platform/node/node-command-runner.js";
24
+ export * from "./platform/node/dotenv.js";
25
+ export * from "./platform/node/acp-server.js";
26
+ export * from "./platform/node/opengoat-gateway-client.js";
27
+ export * from "./platform/node/opengoat-gateway-server.js";
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mDAAmD,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { OpenGoatService } from "../../core/opengoat/index.js";
2
+ export interface OpenGoatAcpServerOptions {
3
+ defaultAgentId?: string;
4
+ defaultSessionKeyPrefix?: string;
5
+ replayHistoryLimit?: number;
6
+ verbose?: boolean;
7
+ }
8
+ export interface OpenGoatAcpServerHandle {
9
+ closed: Promise<void>;
10
+ signal: AbortSignal;
11
+ }
12
+ export declare function startOpenGoatAcpServer(service: OpenGoatService, options?: OpenGoatAcpServerOptions): OpenGoatAcpServerHandle;
@@ -0,0 +1,18 @@
1
+ import { AgentSideConnection, ndJsonStream } from "@agentclientprotocol/sdk";
2
+ import { Readable, Writable } from "node:stream";
3
+ import { OpenGoatAcpAgent } from "../../core/acp/index.js";
4
+ export function startOpenGoatAcpServer(service, options = {}) {
5
+ const input = Writable.toWeb(process.stdout);
6
+ const output = Readable.toWeb(process.stdin);
7
+ const stream = ndJsonStream(input, output);
8
+ const connection = new AgentSideConnection((agentConnection) => new OpenGoatAcpAgent({
9
+ connection: agentConnection,
10
+ service,
11
+ options
12
+ }), stream);
13
+ return {
14
+ closed: connection.closed,
15
+ signal: connection.signal
16
+ };
17
+ }
18
+ //# sourceMappingURL=acp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-server.js","sourceRoot":"","sources":["../../../src/platform/node/acp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAe3D,MAAM,UAAU,sBAAsB,CACpC,OAAwB,EACxB,UAAoC,EAAE;IAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAA0C,CAAC;IACtF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,IAAI,mBAAmB,CACxC,CAAC,eAAe,EAAE,EAAE,CAClB,IAAI,gBAAgB,CAAC;QACnB,UAAU,EAAE,eAAe;QAC3B,OAAO;QACP,OAAO;KACR,CAAC,EACJ,MAAM,CACP,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function loadDotEnv(params?: {
2
+ cwd?: string;
3
+ filename?: string;
4
+ env?: NodeJS.ProcessEnv;
5
+ }): Promise<void>;
6
+ export declare function parseDotEnv(content: string): Record<string, string>;
@@ -0,0 +1,67 @@
1
+ import { access, readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ export async function loadDotEnv(params = {}) {
4
+ const cwd = params.cwd ?? process.cwd();
5
+ const filename = params.filename ?? ".env";
6
+ const env = params.env ?? process.env;
7
+ const envPath = path.join(cwd, filename);
8
+ if (!(await exists(envPath))) {
9
+ return;
10
+ }
11
+ const content = await readFile(envPath, "utf8");
12
+ const parsed = parseDotEnv(content);
13
+ for (const [key, value] of Object.entries(parsed)) {
14
+ if (env[key] === undefined) {
15
+ env[key] = value;
16
+ }
17
+ }
18
+ }
19
+ export function parseDotEnv(content) {
20
+ const env = {};
21
+ const lines = content.split(/\r?\n/);
22
+ for (const line of lines) {
23
+ const trimmed = line.trim();
24
+ if (!trimmed || trimmed.startsWith("#")) {
25
+ continue;
26
+ }
27
+ const normalized = trimmed.startsWith("export ") ? trimmed.slice("export ".length).trim() : trimmed;
28
+ const separator = normalized.indexOf("=");
29
+ if (separator <= 0) {
30
+ continue;
31
+ }
32
+ const key = normalized.slice(0, separator).trim();
33
+ if (!key) {
34
+ continue;
35
+ }
36
+ const rawValue = normalized.slice(separator + 1).trim();
37
+ env[key] = parseDotEnvValue(rawValue);
38
+ }
39
+ return env;
40
+ }
41
+ function parseDotEnvValue(raw) {
42
+ if ((raw.startsWith('"') && raw.endsWith('"') && raw.length >= 2) ||
43
+ (raw.startsWith("'") && raw.endsWith("'") && raw.length >= 2)) {
44
+ const quote = raw[0];
45
+ const inner = raw.slice(1, -1);
46
+ if (quote === "'") {
47
+ return inner;
48
+ }
49
+ return inner
50
+ .replace(/\\n/g, "\n")
51
+ .replace(/\\r/g, "\r")
52
+ .replace(/\\t/g, "\t")
53
+ .replace(/\\"/g, '"')
54
+ .replace(/\\\\/g, "\\");
55
+ }
56
+ return raw;
57
+ }
58
+ async function exists(filePath) {
59
+ try {
60
+ await access(filePath);
61
+ return true;
62
+ }
63
+ catch {
64
+ return false;
65
+ }
66
+ }
67
+ //# sourceMappingURL=dotenv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotenv.js","sourceRoot":"","sources":["../../../src/platform/node/dotenv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CommandRunRequest, CommandRunResult, CommandRunnerPort } from "../../core/ports/command-runner.port.js";
2
+ export declare class NodeCommandRunner implements CommandRunnerPort {
3
+ run(request: CommandRunRequest): Promise<CommandRunResult>;
4
+ }
@@ -0,0 +1,29 @@
1
+ import { spawn } from "node:child_process";
2
+ export class NodeCommandRunner {
3
+ run(request) {
4
+ return new Promise((resolve, reject) => {
5
+ const child = spawn(request.command, request.args, {
6
+ cwd: request.cwd,
7
+ env: request.env,
8
+ stdio: ["ignore", "pipe", "pipe"]
9
+ });
10
+ let stdout = "";
11
+ let stderr = "";
12
+ child.stdout.on("data", (chunk) => {
13
+ stdout += chunk.toString();
14
+ });
15
+ child.stderr.on("data", (chunk) => {
16
+ stderr += chunk.toString();
17
+ });
18
+ child.on("error", reject);
19
+ child.on("close", (code) => {
20
+ resolve({
21
+ code: code ?? 1,
22
+ stdout,
23
+ stderr
24
+ });
25
+ });
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=node-command-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-command-runner.js","sourceRoot":"","sources":["../../../src/platform/node/node-command-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,MAAM,OAAO,iBAAiB;IACrB,GAAG,CAAC,OAA0B;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;gBACjD,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,CAAC;oBACN,IAAI,EAAE,IAAI,IAAI,CAAC;oBACf,MAAM;oBACN,MAAM;iBACP,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { FileSystemPort } from "../../core/ports/file-system.port.js";
2
+ export declare class NodeFileSystem implements FileSystemPort {
3
+ ensureDir(path: string): Promise<void>;
4
+ removeDir(path: string): Promise<void>;
5
+ copyDir(sourcePath: string, targetPath: string): Promise<void>;
6
+ exists(path: string): Promise<boolean>;
7
+ readFile(path: string): Promise<string>;
8
+ writeFile(path: string, content: string): Promise<void>;
9
+ listDirectories(path: string): Promise<string[]>;
10
+ }
@@ -0,0 +1,47 @@
1
+ import { access, cp, mkdir, readdir, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { constants } from "node:fs";
3
+ export class NodeFileSystem {
4
+ async ensureDir(path) {
5
+ await mkdir(path, { recursive: true });
6
+ }
7
+ async removeDir(path) {
8
+ await rm(path, { recursive: true, force: true });
9
+ }
10
+ async copyDir(sourcePath, targetPath) {
11
+ await cp(sourcePath, targetPath, { recursive: true, force: true });
12
+ }
13
+ async exists(path) {
14
+ try {
15
+ await access(path, constants.F_OK);
16
+ return true;
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ readFile(path) {
23
+ return readFile(path, "utf-8");
24
+ }
25
+ writeFile(path, content) {
26
+ return writeFile(path, content, "utf-8");
27
+ }
28
+ async listDirectories(path) {
29
+ try {
30
+ const entries = await readdir(path, { withFileTypes: true });
31
+ return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
32
+ }
33
+ catch (error) {
34
+ if (isNotFound(error)) {
35
+ return [];
36
+ }
37
+ throw error;
38
+ }
39
+ }
40
+ }
41
+ function isNotFound(error) {
42
+ if (typeof error !== "object" || error === null) {
43
+ return false;
44
+ }
45
+ return error.code === "ENOENT";
46
+ }
47
+ //# sourceMappingURL=node-file-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-file-system.js","sourceRoot":"","sources":["../../../src/platform/node/node-file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,OAAO,cAAc;IAClB,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,UAAkB;QACzD,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,IAAY;QAC1B,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAEM,SAAS,CAAC,IAAY,EAAE,OAAe;QAC5C,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,IAAY;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAQ,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { LogLevel, Logger } from "../../core/logging/index.js";
2
+ type NodeLogFormat = "pretty" | "json";
3
+ export interface NodeLoggerConfig {
4
+ level?: LogLevel;
5
+ format?: NodeLogFormat;
6
+ stream?: NodeJS.WritableStream;
7
+ }
8
+ export declare function createNodeLogger(config?: NodeLoggerConfig): Logger;
9
+ export {};