@botbotgo/runtime 1.0.0

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 (313) hide show
  1. package/.github/workflows/ci.yml +46 -0
  2. package/.github/workflows/release.yml +79 -0
  3. package/README.md +71 -0
  4. package/config/examples/memory.yaml +39 -0
  5. package/config/examples/model.yaml +21 -0
  6. package/config/examples/runtime.yaml +44 -0
  7. package/config/examples/skills.yaml +8 -0
  8. package/config/examples/tool.yaml +16 -0
  9. package/dist/config/index.d.ts +7 -0
  10. package/dist/config/index.d.ts.map +1 -0
  11. package/dist/config/index.js +4 -0
  12. package/dist/config/index.js.map +1 -0
  13. package/dist/config/loader.d.ts +41 -0
  14. package/dist/config/loader.d.ts.map +1 -0
  15. package/dist/config/loader.js +140 -0
  16. package/dist/config/loader.js.map +1 -0
  17. package/dist/config/resolveRuntimeConfig.d.ts +83 -0
  18. package/dist/config/resolveRuntimeConfig.d.ts.map +1 -0
  19. package/dist/config/resolveRuntimeConfig.js +85 -0
  20. package/dist/config/resolveRuntimeConfig.js.map +1 -0
  21. package/dist/config/resources.d.ts +112 -0
  22. package/dist/config/resources.d.ts.map +1 -0
  23. package/dist/config/resources.js +20 -0
  24. package/dist/config/resources.js.map +1 -0
  25. package/dist/config/runtimeConfigLoader.d.ts +28 -0
  26. package/dist/config/runtimeConfigLoader.d.ts.map +1 -0
  27. package/dist/config/runtimeConfigLoader.js +38 -0
  28. package/dist/config/runtimeConfigLoader.js.map +1 -0
  29. package/dist/index.d.ts +9 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +5 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/runtime/agentMiddleware.d.ts +3 -0
  34. package/dist/runtime/agentMiddleware.d.ts.map +1 -0
  35. package/dist/runtime/agentMiddleware.js +2 -0
  36. package/dist/runtime/agentMiddleware.js.map +1 -0
  37. package/dist/runtime/bootstrap/runtimeFactory.d.ts +7 -0
  38. package/dist/runtime/bootstrap/runtimeFactory.d.ts.map +1 -0
  39. package/dist/runtime/bootstrap/runtimeFactory.js +139 -0
  40. package/dist/runtime/bootstrap/runtimeFactory.js.map +1 -0
  41. package/dist/runtime/bootstrap/runtimeModuleInitializer.d.ts +5 -0
  42. package/dist/runtime/bootstrap/runtimeModuleInitializer.d.ts.map +1 -0
  43. package/dist/runtime/bootstrap/runtimeModuleInitializer.js +32 -0
  44. package/dist/runtime/bootstrap/runtimeModuleInitializer.js.map +1 -0
  45. package/dist/runtime/context/agentContext.d.ts +5 -0
  46. package/dist/runtime/context/agentContext.d.ts.map +1 -0
  47. package/dist/runtime/context/agentContext.js +19 -0
  48. package/dist/runtime/context/agentContext.js.map +1 -0
  49. package/dist/runtime/context/globalContext.d.ts +19 -0
  50. package/dist/runtime/context/globalContext.d.ts.map +1 -0
  51. package/dist/runtime/context/globalContext.js +47 -0
  52. package/dist/runtime/context/globalContext.js.map +1 -0
  53. package/dist/runtime/events/eventPublisher.d.ts +15 -0
  54. package/dist/runtime/events/eventPublisher.d.ts.map +1 -0
  55. package/dist/runtime/events/eventPublisher.js +23 -0
  56. package/dist/runtime/events/eventPublisher.js.map +1 -0
  57. package/dist/runtime/execution/agentRunExecutor.d.ts +38 -0
  58. package/dist/runtime/execution/agentRunExecutor.d.ts.map +1 -0
  59. package/dist/runtime/execution/agentRunExecutor.js +378 -0
  60. package/dist/runtime/execution/agentRunExecutor.js.map +1 -0
  61. package/dist/runtime/execution/agentRunExecutor.types.d.ts +37 -0
  62. package/dist/runtime/execution/agentRunExecutor.types.d.ts.map +1 -0
  63. package/dist/runtime/execution/agentRunExecutor.types.js +2 -0
  64. package/dist/runtime/execution/agentRunExecutor.types.js.map +1 -0
  65. package/dist/runtime/execution/agentRunProgress.d.ts +8 -0
  66. package/dist/runtime/execution/agentRunProgress.d.ts.map +1 -0
  67. package/dist/runtime/execution/agentRunProgress.js +46 -0
  68. package/dist/runtime/execution/agentRunProgress.js.map +1 -0
  69. package/dist/runtime/execution/agentRunState.d.ts +44 -0
  70. package/dist/runtime/execution/agentRunState.d.ts.map +1 -0
  71. package/dist/runtime/execution/agentRunState.js +17 -0
  72. package/dist/runtime/execution/agentRunState.js.map +1 -0
  73. package/dist/runtime/execution/policies/runCompletionPolicy.d.ts +5 -0
  74. package/dist/runtime/execution/policies/runCompletionPolicy.d.ts.map +1 -0
  75. package/dist/runtime/execution/policies/runCompletionPolicy.js +30 -0
  76. package/dist/runtime/execution/policies/runCompletionPolicy.js.map +1 -0
  77. package/dist/runtime/execution/policies/runErrorPolicy.d.ts +7 -0
  78. package/dist/runtime/execution/policies/runErrorPolicy.d.ts.map +1 -0
  79. package/dist/runtime/execution/policies/runErrorPolicy.js +40 -0
  80. package/dist/runtime/execution/policies/runErrorPolicy.js.map +1 -0
  81. package/dist/runtime/execution/policies/runPromptBuilder.d.ts +10 -0
  82. package/dist/runtime/execution/policies/runPromptBuilder.d.ts.map +1 -0
  83. package/dist/runtime/execution/policies/runPromptBuilder.js +34 -0
  84. package/dist/runtime/execution/policies/runPromptBuilder.js.map +1 -0
  85. package/dist/runtime/execution/policies/runSummaryFormatter.d.ts +6 -0
  86. package/dist/runtime/execution/policies/runSummaryFormatter.d.ts.map +1 -0
  87. package/dist/runtime/execution/policies/runSummaryFormatter.js +47 -0
  88. package/dist/runtime/execution/policies/runSummaryFormatter.js.map +1 -0
  89. package/dist/runtime/execution/policies/runtimeDelay.d.ts +4 -0
  90. package/dist/runtime/execution/policies/runtimeDelay.d.ts.map +1 -0
  91. package/dist/runtime/execution/policies/runtimeDelay.js +6 -0
  92. package/dist/runtime/execution/policies/runtimeDelay.js.map +1 -0
  93. package/dist/runtime/execution/policies/toolConfigReader.d.ts +8 -0
  94. package/dist/runtime/execution/policies/toolConfigReader.d.ts.map +1 -0
  95. package/dist/runtime/execution/policies/toolConfigReader.js +91 -0
  96. package/dist/runtime/execution/policies/toolConfigReader.js.map +1 -0
  97. package/dist/runtime/human-loop/consoleHumanLoop.d.ts +21 -0
  98. package/dist/runtime/human-loop/consoleHumanLoop.d.ts.map +1 -0
  99. package/dist/runtime/human-loop/consoleHumanLoop.js +102 -0
  100. package/dist/runtime/human-loop/consoleHumanLoop.js.map +1 -0
  101. package/dist/runtime/human-loop/humanLoop.d.ts +44 -0
  102. package/dist/runtime/human-loop/humanLoop.d.ts.map +1 -0
  103. package/dist/runtime/human-loop/humanLoop.js +36 -0
  104. package/dist/runtime/human-loop/humanLoop.js.map +1 -0
  105. package/dist/runtime/index.d.ts +10 -0
  106. package/dist/runtime/index.d.ts.map +1 -0
  107. package/dist/runtime/index.js +6 -0
  108. package/dist/runtime/index.js.map +1 -0
  109. package/dist/runtime/middleware/agentToolMiddleware.d.ts +30 -0
  110. package/dist/runtime/middleware/agentToolMiddleware.d.ts.map +1 -0
  111. package/dist/runtime/middleware/agentToolMiddleware.js +259 -0
  112. package/dist/runtime/middleware/agentToolMiddleware.js.map +1 -0
  113. package/dist/runtime/middleware/commandPolicy.d.ts +8 -0
  114. package/dist/runtime/middleware/commandPolicy.d.ts.map +1 -0
  115. package/dist/runtime/middleware/commandPolicy.js +55 -0
  116. package/dist/runtime/middleware/commandPolicy.js.map +1 -0
  117. package/dist/runtime/middleware/frameworkPrompt.d.ts +4 -0
  118. package/dist/runtime/middleware/frameworkPrompt.d.ts.map +1 -0
  119. package/dist/runtime/middleware/frameworkPrompt.js +44 -0
  120. package/dist/runtime/middleware/frameworkPrompt.js.map +1 -0
  121. package/dist/runtime/middleware/index.d.ts +4 -0
  122. package/dist/runtime/middleware/index.d.ts.map +1 -0
  123. package/dist/runtime/middleware/index.js +3 -0
  124. package/dist/runtime/middleware/index.js.map +1 -0
  125. package/dist/runtime/middleware/skillPathMap.d.ts +3 -0
  126. package/dist/runtime/middleware/skillPathMap.d.ts.map +1 -0
  127. package/dist/runtime/middleware/skillPathMap.js +44 -0
  128. package/dist/runtime/middleware/skillPathMap.js.map +1 -0
  129. package/dist/runtime/middleware/toolArgsNormalizer.d.ts +21 -0
  130. package/dist/runtime/middleware/toolArgsNormalizer.d.ts.map +1 -0
  131. package/dist/runtime/middleware/toolArgsNormalizer.js +227 -0
  132. package/dist/runtime/middleware/toolArgsNormalizer.js.map +1 -0
  133. package/dist/runtime/middleware/toolCallGuard.d.ts +8 -0
  134. package/dist/runtime/middleware/toolCallGuard.d.ts.map +1 -0
  135. package/dist/runtime/middleware/toolCallGuard.js +60 -0
  136. package/dist/runtime/middleware/toolCallGuard.js.map +1 -0
  137. package/dist/runtime/middleware/toolFsHandlers.d.ts +12 -0
  138. package/dist/runtime/middleware/toolFsHandlers.d.ts.map +1 -0
  139. package/dist/runtime/middleware/toolFsHandlers.js +79 -0
  140. package/dist/runtime/middleware/toolFsHandlers.js.map +1 -0
  141. package/dist/runtime/middleware/toolRequestParser.d.ts +14 -0
  142. package/dist/runtime/middleware/toolRequestParser.d.ts.map +1 -0
  143. package/dist/runtime/middleware/toolRequestParser.js +72 -0
  144. package/dist/runtime/middleware/toolRequestParser.js.map +1 -0
  145. package/dist/runtime/middleware/types.d.ts +87 -0
  146. package/dist/runtime/middleware/types.d.ts.map +1 -0
  147. package/dist/runtime/middleware/types.js +3 -0
  148. package/dist/runtime/middleware/types.js.map +1 -0
  149. package/dist/runtime/providers/backendResolver.d.ts +26 -0
  150. package/dist/runtime/providers/backendResolver.d.ts.map +1 -0
  151. package/dist/runtime/providers/backendResolver.js +73 -0
  152. package/dist/runtime/providers/backendResolver.js.map +1 -0
  153. package/dist/runtime/providers/index.d.ts +14 -0
  154. package/dist/runtime/providers/index.d.ts.map +1 -0
  155. package/dist/runtime/providers/index.js +10 -0
  156. package/dist/runtime/providers/index.js.map +1 -0
  157. package/dist/runtime/providers/langchainRuntime.d.ts +11 -0
  158. package/dist/runtime/providers/langchainRuntime.d.ts.map +1 -0
  159. package/dist/runtime/providers/langchainRuntime.js +45 -0
  160. package/dist/runtime/providers/langchainRuntime.js.map +1 -0
  161. package/dist/runtime/providers/localShellBackend.d.ts +10 -0
  162. package/dist/runtime/providers/localShellBackend.d.ts.map +1 -0
  163. package/dist/runtime/providers/localShellBackend.js +23 -0
  164. package/dist/runtime/providers/localShellBackend.js.map +1 -0
  165. package/dist/runtime/providers/openaiDeepAgent.d.ts +9 -0
  166. package/dist/runtime/providers/openaiDeepAgent.d.ts.map +1 -0
  167. package/dist/runtime/providers/openaiDeepAgent.js +7 -0
  168. package/dist/runtime/providers/openaiDeepAgent.js.map +1 -0
  169. package/dist/runtime/providers/openaiLocalAgent.d.ts +17 -0
  170. package/dist/runtime/providers/openaiLocalAgent.d.ts.map +1 -0
  171. package/dist/runtime/providers/openaiLocalAgent.js +26 -0
  172. package/dist/runtime/providers/openaiLocalAgent.js.map +1 -0
  173. package/dist/runtime/providers/openaiLocalAgentFactory.d.ts +36 -0
  174. package/dist/runtime/providers/openaiLocalAgentFactory.d.ts.map +1 -0
  175. package/dist/runtime/providers/openaiLocalAgentFactory.js +139 -0
  176. package/dist/runtime/providers/openaiLocalAgentFactory.js.map +1 -0
  177. package/dist/runtime/providers/shared/agentProbe.d.ts +4 -0
  178. package/dist/runtime/providers/shared/agentProbe.d.ts.map +1 -0
  179. package/dist/runtime/providers/shared/agentProbe.js +17 -0
  180. package/dist/runtime/providers/shared/agentProbe.js.map +1 -0
  181. package/dist/runtime/providers/shared/moduleFallback.d.ts +2 -0
  182. package/dist/runtime/providers/shared/moduleFallback.d.ts.map +1 -0
  183. package/dist/runtime/providers/shared/moduleFallback.js +34 -0
  184. package/dist/runtime/providers/shared/moduleFallback.js.map +1 -0
  185. package/dist/runtime/providers/shared/resourceCloser.d.ts +6 -0
  186. package/dist/runtime/providers/shared/resourceCloser.d.ts.map +1 -0
  187. package/dist/runtime/providers/shared/resourceCloser.js +30 -0
  188. package/dist/runtime/providers/shared/resourceCloser.js.map +1 -0
  189. package/dist/runtime/runtimeService.d.ts +109 -0
  190. package/dist/runtime/runtimeService.d.ts.map +1 -0
  191. package/dist/runtime/runtimeService.js +90 -0
  192. package/dist/runtime/runtimeService.js.map +1 -0
  193. package/dist/runtime/stream/agentMessages.d.ts +40 -0
  194. package/dist/runtime/stream/agentMessages.d.ts.map +1 -0
  195. package/dist/runtime/stream/agentMessages.js +44 -0
  196. package/dist/runtime/stream/agentMessages.js.map +1 -0
  197. package/dist/runtime/stream/agentStream.d.ts +31 -0
  198. package/dist/runtime/stream/agentStream.d.ts.map +1 -0
  199. package/dist/runtime/stream/agentStream.js +106 -0
  200. package/dist/runtime/stream/agentStream.js.map +1 -0
  201. package/dist/runtime/stream/messageSummary.d.ts +20 -0
  202. package/dist/runtime/stream/messageSummary.d.ts.map +1 -0
  203. package/dist/runtime/stream/messageSummary.js +150 -0
  204. package/dist/runtime/stream/messageSummary.js.map +1 -0
  205. package/dist/runtime/stream/runArtifacts.d.ts +9 -0
  206. package/dist/runtime/stream/runArtifacts.d.ts.map +1 -0
  207. package/dist/runtime/stream/runArtifacts.js +48 -0
  208. package/dist/runtime/stream/runArtifacts.js.map +1 -0
  209. package/dist/state/index.d.ts +7 -0
  210. package/dist/state/index.d.ts.map +1 -0
  211. package/dist/state/index.js +4 -0
  212. package/dist/state/index.js.map +1 -0
  213. package/dist/state/runState.d.ts +36 -0
  214. package/dist/state/runState.d.ts.map +1 -0
  215. package/dist/state/runState.js +51 -0
  216. package/dist/state/runState.js.map +1 -0
  217. package/dist/state/todos.d.ts +19 -0
  218. package/dist/state/todos.d.ts.map +1 -0
  219. package/dist/state/todos.js +45 -0
  220. package/dist/state/todos.js.map +1 -0
  221. package/dist/state/workspaceRunSession.d.ts +32 -0
  222. package/dist/state/workspaceRunSession.d.ts.map +1 -0
  223. package/dist/state/workspaceRunSession.js +67 -0
  224. package/dist/state/workspaceRunSession.js.map +1 -0
  225. package/dist/state/workspaceState.d.ts +94 -0
  226. package/dist/state/workspaceState.d.ts.map +1 -0
  227. package/dist/state/workspaceState.js +119 -0
  228. package/dist/state/workspaceState.js.map +1 -0
  229. package/dist/types.d.ts +2 -0
  230. package/dist/types.d.ts.map +1 -0
  231. package/dist/types.js +2 -0
  232. package/dist/types.js.map +1 -0
  233. package/example/.tsbuildinfo +1 -0
  234. package/example/build/.tsbuildinfo +1 -0
  235. package/example/config/memory.yaml +35 -0
  236. package/example/config/model.yaml +14 -0
  237. package/example/config/runtime.yaml +46 -0
  238. package/example/config/tool.yaml +24 -0
  239. package/example/index.ts +159 -0
  240. package/example/package-lock.json +1396 -0
  241. package/example/package.json +26 -0
  242. package/example/serve-output.mjs +52 -0
  243. package/example/tsconfig.json +19 -0
  244. package/package.json +73 -0
  245. package/scripts/resolve-deps.js +40 -0
  246. package/src/config/index.ts +29 -0
  247. package/src/config/loader.ts +174 -0
  248. package/src/config/resolveRuntimeConfig.ts +160 -0
  249. package/src/config/resources.ts +152 -0
  250. package/src/config/runtimeConfigLoader.ts +68 -0
  251. package/src/external-modules.d.ts +20 -0
  252. package/src/index.ts +36 -0
  253. package/src/runtime/agentMiddleware.ts +6 -0
  254. package/src/runtime/bootstrap/runtimeFactory.ts +212 -0
  255. package/src/runtime/bootstrap/runtimeModuleInitializer.ts +34 -0
  256. package/src/runtime/context/agentContext.ts +24 -0
  257. package/src/runtime/context/globalContext.ts +70 -0
  258. package/src/runtime/events/eventPublisher.ts +45 -0
  259. package/src/runtime/execution/agentRunExecutor.ts +499 -0
  260. package/src/runtime/execution/agentRunExecutor.types.ts +39 -0
  261. package/src/runtime/execution/agentRunProgress.ts +67 -0
  262. package/src/runtime/execution/agentRunState.ts +66 -0
  263. package/src/runtime/execution/policies/runCompletionPolicy.ts +30 -0
  264. package/src/runtime/execution/policies/runErrorPolicy.ts +50 -0
  265. package/src/runtime/execution/policies/runPromptBuilder.ts +39 -0
  266. package/src/runtime/execution/policies/runSummaryFormatter.ts +57 -0
  267. package/src/runtime/execution/policies/runtimeDelay.ts +5 -0
  268. package/src/runtime/execution/policies/toolConfigReader.ts +107 -0
  269. package/src/runtime/human-loop/consoleHumanLoop.ts +113 -0
  270. package/src/runtime/human-loop/humanLoop.ts +90 -0
  271. package/src/runtime/index.ts +36 -0
  272. package/src/runtime/middleware/agentToolMiddleware.ts +329 -0
  273. package/src/runtime/middleware/commandPolicy.ts +65 -0
  274. package/src/runtime/middleware/frameworkPrompt.ts +51 -0
  275. package/src/runtime/middleware/index.ts +7 -0
  276. package/src/runtime/middleware/skillPathMap.ts +49 -0
  277. package/src/runtime/middleware/toolArgsNormalizer.ts +277 -0
  278. package/src/runtime/middleware/toolCallGuard.ts +73 -0
  279. package/src/runtime/middleware/toolFsHandlers.ts +94 -0
  280. package/src/runtime/middleware/toolRequestParser.ts +84 -0
  281. package/src/runtime/middleware/types.ts +91 -0
  282. package/src/runtime/providers/backendResolver.ts +127 -0
  283. package/src/runtime/providers/index.ts +19 -0
  284. package/src/runtime/providers/langchainRuntime.ts +67 -0
  285. package/src/runtime/providers/localShellBackend.ts +54 -0
  286. package/src/runtime/providers/openaiDeepAgent.ts +17 -0
  287. package/src/runtime/providers/openaiLocalAgent.ts +35 -0
  288. package/src/runtime/providers/openaiLocalAgentFactory.ts +185 -0
  289. package/src/runtime/providers/shared/agentProbe.ts +24 -0
  290. package/src/runtime/providers/shared/moduleFallback.ts +41 -0
  291. package/src/runtime/providers/shared/resourceCloser.ts +30 -0
  292. package/src/runtime/runtimeService.ts +205 -0
  293. package/src/runtime/stream/agentMessages.ts +72 -0
  294. package/src/runtime/stream/agentStream.ts +168 -0
  295. package/src/runtime/stream/messageSummary.ts +164 -0
  296. package/src/runtime/stream/runArtifacts.ts +72 -0
  297. package/src/state/index.ts +19 -0
  298. package/src/state/runState.ts +84 -0
  299. package/src/state/todos.ts +59 -0
  300. package/src/state/workspaceRunSession.ts +96 -0
  301. package/src/state/workspaceState.ts +199 -0
  302. package/src/types/easynet-agent-common.d.ts +62 -0
  303. package/src/types.ts +1 -0
  304. package/test/integration/runtime-live.integration.test.ts +30 -0
  305. package/test/unit/config/loader.test.ts +429 -0
  306. package/test/unit/runtime/agentContext.test.ts +23 -0
  307. package/test/unit/runtime/agentRuntime.test.ts +99 -0
  308. package/test/unit/runtime/consoleHumanLoop.test.ts +52 -0
  309. package/test/unit/runtime/events.test.ts +11 -0
  310. package/test/unit/runtime/globalContext.test.ts +34 -0
  311. package/test/unit/runtime/humanLoop.test.ts +104 -0
  312. package/test/unit/runtime/toolArgsNormalizer.test.ts +136 -0
  313. package/tsconfig.json +18 -0
@@ -0,0 +1,46 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["**"]
6
+ pull_request:
7
+ branches: ["**"]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ build-and-test:
15
+ name: Build & Test
16
+ runs-on: ubuntu-latest
17
+ timeout-minutes: 20
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Setup Node.js
23
+ uses: actions/setup-node@v4
24
+ with:
25
+ node-version: "22"
26
+ cache: npm
27
+
28
+ - name: Resolve internal package refs
29
+ run: node scripts/resolve-deps.js
30
+
31
+ - name: Install dependencies (root)
32
+ run: npm install --legacy-peer-deps
33
+
34
+ - name: Build (root)
35
+ run: npm run build --if-present
36
+
37
+ - name: Test (root)
38
+ run: npm test --if-present
39
+
40
+ - name: Install dependencies (example)
41
+ run: npm install --legacy-peer-deps
42
+ working-directory: example
43
+
44
+ - name: Build (example)
45
+ run: npm run build --if-present
46
+ working-directory: example
@@ -0,0 +1,79 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+ repository_dispatch:
9
+ types:
10
+ - botbotgo-package-updated
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ permissions:
17
+ contents: write
18
+
19
+ jobs:
20
+ release:
21
+ name: Release
22
+ runs-on: ubuntu-latest
23
+ timeout-minutes: 30
24
+ steps:
25
+ - name: Checkout
26
+ uses: actions/checkout@v4
27
+ with:
28
+ fetch-depth: 0
29
+ token: ${{ secrets.GITHUB_TOKEN }}
30
+
31
+ - name: Setup Node.js
32
+ uses: actions/setup-node@v4
33
+ with:
34
+ node-version: "22"
35
+ cache: npm
36
+ registry-url: "https://registry.npmjs.org"
37
+
38
+ - name: Resolve internal package refs
39
+ run: node scripts/resolve-deps.js
40
+
41
+ - name: Install dependencies (root)
42
+ run: npm install --legacy-peer-deps
43
+
44
+ - name: Build (root)
45
+ run: npm run build --if-present
46
+
47
+ - name: Test (root)
48
+ run: npm test --if-present
49
+
50
+ - name: Install dependencies (example)
51
+ run: npm install --legacy-peer-deps
52
+ working-directory: example
53
+
54
+ - name: Build (example)
55
+ run: npm run build --if-present
56
+ working-directory: example
57
+
58
+ - name: Detect npm token
59
+ id: release_gate
60
+ env:
61
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
62
+ run: |
63
+ if [ -n "${NPM_TOKEN}" ]; then
64
+ echo "has_npm_token=true" >> "$GITHUB_OUTPUT"
65
+ else
66
+ echo "has_npm_token=false" >> "$GITHUB_OUTPUT"
67
+ fi
68
+
69
+ - name: Skip release (missing NPM_TOKEN)
70
+ if: ${{ steps.release_gate.outputs.has_npm_token == 'false' }}
71
+ run: echo "NPM_TOKEN is not configured. Skipping semantic-release."
72
+
73
+ - name: Release
74
+ if: ${{ steps.release_gate.outputs.has_npm_token == 'true' }}
75
+ env:
76
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
78
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
79
+ run: npx semantic-release
package/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # @botbotgo/runtime
2
+
3
+ ## Introduction
4
+
5
+ `@botbotgo/runtime` is the runtime layer for deepagents-based applications in this workspace. It loads runtime config, wires model and tool dependencies, manages workspace state, and executes agent runs with retry and artifact tracking.
6
+
7
+ ## Exposed Interfaces
8
+
9
+ | Export | Type | Purpose |
10
+ | --- | --- | --- |
11
+ | `createAgentRuntime2` | function | Create the runtime with framework-managed dependencies. |
12
+ | `AgentRuntimeService` | class | Main runtime service. |
13
+ | `ConsoleHumanLoopService` | class | Console-based human approval flow. |
14
+ | `createRuntime2TreeEventListener` | function | Tree-style runtime event listener. |
15
+ | `loadAgentRuntimeConfig` | function | Load runtime config from `config/`. |
16
+ | `registerAgentRuntimeGlobal` | function | Register runtime global state. |
17
+ | `getAgentRuntimeGlobal` | function | Read runtime global state. |
18
+
19
+ ## Configuration
20
+
21
+ Typical files:
22
+
23
+ - `config/runtime.yaml`
24
+ - `config/model.yaml`
25
+ - `config/tool.yaml`
26
+ - `config/memory.yaml`
27
+
28
+ Minimal runtime config:
29
+
30
+ ```yaml
31
+ apiVersion: botbotgo.world/v1
32
+ kind: AgentRuntimeConfig
33
+ metadata:
34
+ name: default-runtime
35
+ spec:
36
+ artifacts:
37
+ - key: report
38
+ path: output/report.html
39
+ stateDirName: .agent
40
+ systemPrompt: |
41
+ You are a precise runtime agent.
42
+ ```
43
+
44
+ Main runtime options:
45
+
46
+ - `rootDir`: workspace root
47
+ - `configDir`: config directory
48
+ - `toolConfigPath`: tool config path
49
+ - `modelConfigPath`: model config path
50
+ - `memoryConfigPath`: memory config path
51
+ - `humanLoop`: human approval service
52
+
53
+ ## Usage
54
+
55
+ ```bash
56
+ npm i @botbotgo/runtime
57
+ ```
58
+
59
+ ```ts
60
+ import { createAgentRuntime2 } from "@botbotgo/runtime";
61
+
62
+ const runtime = await createAgentRuntime2({
63
+ rootDir: process.cwd(),
64
+ modelConfigPath: "config/model.yaml",
65
+ toolConfigPath: "config/tool.yaml",
66
+ memoryConfigPath: "config/memory.yaml",
67
+ });
68
+
69
+ await runtime.run("Generate the required report.");
70
+ await runtime.close();
71
+ ```
@@ -0,0 +1,39 @@
1
+ apiVersion: botbotgo.world/v1
2
+ kind: MemoryConfig
3
+ metadata:
4
+ name: agent-memory-default
5
+ spec:
6
+ memory:
7
+ thread:
8
+ store:
9
+ type: in_memory
10
+ allowWrite: true
11
+ maxItems: 20
12
+ sessionCompaction:
13
+ enabled: true
14
+ maxTokens: 3000
15
+ keepRecentTurns: 12
16
+ summaryKey: __session_summary__
17
+ checkEveryTurns: 3
18
+
19
+ cross_thread:
20
+ store:
21
+ type: in_memory
22
+ allowWrite: true
23
+ maxItems: 20
24
+
25
+ knowledge:
26
+ store:
27
+ type: in_memory
28
+ allowWrite: true
29
+ maxItems: 20
30
+
31
+ observability:
32
+ trace: false
33
+
34
+ privacy:
35
+ forbiddenMetadataKeys:
36
+ - password
37
+ - api_key
38
+ - secret
39
+ - token
@@ -0,0 +1,21 @@
1
+ apiVersion: botbotgo.world/v1
2
+ kind: ModelConfig
3
+ metadata:
4
+ name: runtime2-default-model
5
+ spec:
6
+ llm:
7
+ default: gpt_oss
8
+ gpt_oss:
9
+ provider: openai
10
+ base_url: http://localhost:11434/v1
11
+ model: gpt-oss:latest
12
+ apiKey: ollama
13
+ options:
14
+ timeoutMs: 60000
15
+ lfm2:
16
+ provider: openai
17
+ base_url: http://localhost:11434/v1
18
+ model: lfm2:latest
19
+ apiKey: ollama
20
+ options:
21
+ timeoutMs: 60000
@@ -0,0 +1,44 @@
1
+ apiVersion: botbotgo.world/v1
2
+ kind: AgentRuntimeConfig
3
+ metadata:
4
+ name: default-runtime
5
+ spec:
6
+ # Artifacts the run must produce before it is considered complete.
7
+ artifacts:
8
+ - key: report
9
+ path: output/report.html
10
+
11
+ # Workspace state persisted under the runtime root directory.
12
+ stateDirName: .agent
13
+ legacyOutputState: true
14
+
15
+ # Default system guidance passed to the runtime agent.
16
+ systemPrompt: |
17
+ You are a precise automation runtime agent.
18
+ Follow skills and produce only the required artifacts.
19
+ # Allow the built-in task tool unless the skill should fully own planning.
20
+ blockTaskTool: false
21
+
22
+ # Execution limits.
23
+ executeTimeoutMs: 60000
24
+ llmIdleTimeoutMs: 300000
25
+ heartbeatIntervalMs: 10000
26
+ backend:
27
+ type: local_shell
28
+ timeoutMs: 15000
29
+ maxOutputBytes: 1048576
30
+
31
+ # Retry policy for incomplete or malformed model/tool output.
32
+ incompleteRunMaxRetries: 2
33
+ emptyRunMaxRetries: 2
34
+ malformedToolCallMaxRetries: 2
35
+ idleTimeoutMaxRetries: 1
36
+
37
+ # Fine-grained event toggles. Prefer this over eventLogLevel when you need
38
+ # explicit control over which runtime events are printed.
39
+ debug:
40
+ run: true
41
+ workspace: true
42
+ toolCall: true
43
+ stream: false
44
+ close: true
@@ -0,0 +1,8 @@
1
+ apiVersion: botbotgo.world/v1
2
+ kind: SkillsConfig
3
+ metadata:
4
+ name: default-skills
5
+ spec:
6
+ cacheDir: ~/.agent/cache/skills
7
+ skills:
8
+ github-release:https://github.com/botbotgo/skill-builtin: {}
@@ -0,0 +1,16 @@
1
+ apiVersion: botbotgo.world/v1
2
+ kind: ToolConfig
3
+ metadata:
4
+ name: runtime2-default-tools
5
+ spec:
6
+ sandboxedPath: .
7
+ cacheDir: ~/.agent/cache
8
+ toolPath: dist/src
9
+ skillPath: skills
10
+ paths:
11
+ npm:@botbotgo/kit-builtin: {}
12
+ allowedHosts:
13
+ - "*"
14
+ blockedHosts: []
15
+ tools:
16
+ customized: {}
@@ -0,0 +1,7 @@
1
+ export { loadFromFile, loadFromDirectory, loadFromString, parseResource, parseAllResources, ConfigError, } from "./loader.js";
2
+ export type { LoadOptions } from "./loader.js";
3
+ export { resolveAgentConfig, buildDeepAgentOptions, } from "./resolveRuntimeConfig.js";
4
+ export type { ResolvedAgentConfig, ResolvedMemoryConfig, ResolvedAgentRuntimeConfig, MemoryStoreResolved, } from "./resolveRuntimeConfig.js";
5
+ export { loadAgentRuntimeConfig, AgentRuntimeConfigService, } from "./runtimeConfigLoader.js";
6
+ export type { LoadAgentRuntimeConfigOptions, AgentRuntimeConfigResult, } from "./runtimeConfigLoader.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { loadFromFile, loadFromDirectory, loadFromString, parseResource, parseAllResources, ConfigError, } from "./loader.js";
2
+ export { resolveAgentConfig, buildDeepAgentOptions, } from "./resolveRuntimeConfig.js";
3
+ export { loadAgentRuntimeConfig, AgentRuntimeConfigService, } from "./runtimeConfigLoader.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Load K8s-style YAML config from file, directory, or string.
3
+ */
4
+ import type { Resource } from "./resources.js";
5
+ export interface LoadOptions {
6
+ /** If true, skip invalid documents and continue; default false */
7
+ ignoreInvalid?: boolean;
8
+ /** Optional base directory for resolving relative paths in config (e.g. skill paths) */
9
+ baseDir?: string;
10
+ }
11
+ export declare class ConfigError extends Error {
12
+ readonly path?: string | undefined;
13
+ readonly cause?: unknown | undefined;
14
+ constructor(message: string, path?: string | undefined, cause?: unknown | undefined);
15
+ }
16
+ /**
17
+ * Parse a single YAML document into a typed Resource.
18
+ * Does not validate spec shape per kind; use validators if needed.
19
+ */
20
+ export declare function parseResource(yamlContent: string): Resource<string, unknown>;
21
+ /**
22
+ * Parse YAML that may contain multiple documents (--- separated).
23
+ * Returns the first valid resource; throws if none valid.
24
+ */
25
+ export declare function parseAllResources(yamlContent: string, options?: LoadOptions): Resource<string, unknown>[];
26
+ /**
27
+ * Load a single resource from a file path.
28
+ */
29
+ export declare function loadFromFile(filePath: string, options?: LoadOptions): Promise<Resource<string, unknown>>;
30
+ /**
31
+ * Load all K8s-style resources from a directory.
32
+ * Scans for .yaml/.yml files (non-recursive by default).
33
+ */
34
+ export declare function loadFromDirectory(dirPath: string, options?: LoadOptions & {
35
+ recursive?: boolean;
36
+ }): Promise<Resource<string, unknown>[]>;
37
+ /**
38
+ * Parse a single resource from a YAML string.
39
+ */
40
+ export declare function loadFromString(content: string, options?: LoadOptions): Resource<string, unknown>;
41
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM/C,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAY,SAAQ,KAAK;aAGlB,IAAI,CAAC,EAAE,MAAM;aACb,KAAK,CAAC,EAAE,OAAO;gBAF/B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAyCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAE5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,WAAgB,GACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAY7B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAgBpC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAuBtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3B"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Load K8s-style YAML config from file, directory, or string.
3
+ */
4
+ import { loadYamlFile, parseYamlContent, } from "@botbotgo/common/config";
5
+ import { readFile, readdir } from "node:fs/promises";
6
+ import { join, extname } from "node:path";
7
+ const YAML_EXTS = [".yaml", ".yml"];
8
+ const SUPPORTED_API = "botbotgo.world/v1";
9
+ const SUPPORTED_KINDS = ["MemoryConfig", "SkillsConfig", "AgentRuntimeConfig"];
10
+ export class ConfigError extends Error {
11
+ path;
12
+ cause;
13
+ constructor(message, path, cause) {
14
+ super(message);
15
+ this.path = path;
16
+ this.cause = cause;
17
+ this.name = "ConfigError";
18
+ }
19
+ }
20
+ function splitYamlDocuments(yamlContent) {
21
+ return yamlContent
22
+ .split(/^---(?:\s+#.*)?\s*$/m)
23
+ .map((part) => part.trim())
24
+ .filter((part) => part.length > 0);
25
+ }
26
+ function isRecord(v) {
27
+ return typeof v === "object" && v !== null && !Array.isArray(v);
28
+ }
29
+ function hasRequiredFields(doc) {
30
+ if (!isRecord(doc))
31
+ return false;
32
+ if (typeof doc.apiVersion !== "string" || typeof doc.kind !== "string")
33
+ return false;
34
+ if (!isRecord(doc.metadata) || typeof doc.metadata.name !== "string")
35
+ return false;
36
+ if (!(typeof doc.spec === "object" && doc.spec !== null))
37
+ return false;
38
+ return true;
39
+ }
40
+ function validateResource(doc) {
41
+ if (doc === undefined || doc === null)
42
+ throw new ConfigError("YAML document is empty");
43
+ if (!hasRequiredFields(doc))
44
+ throw new ConfigError("Invalid resource: missing or invalid apiVersion, kind, metadata.name, or spec");
45
+ if (doc.apiVersion !== SUPPORTED_API)
46
+ throw new ConfigError(`Unsupported apiVersion: ${doc.apiVersion}. Expected ${SUPPORTED_API}`);
47
+ if (!SUPPORTED_KINDS.includes(doc.kind))
48
+ throw new ConfigError(`Unsupported kind: ${doc.kind}. Supported: ${SUPPORTED_KINDS.join(", ")}`);
49
+ return doc;
50
+ }
51
+ /**
52
+ * Parse a single YAML document into a typed Resource.
53
+ * Does not validate spec shape per kind; use validators if needed.
54
+ */
55
+ export function parseResource(yamlContent) {
56
+ return validateResource(parseYamlContent(yamlContent));
57
+ }
58
+ /**
59
+ * Parse YAML that may contain multiple documents (--- separated).
60
+ * Returns the first valid resource; throws if none valid.
61
+ */
62
+ export function parseAllResources(yamlContent, options = {}) {
63
+ const out = [];
64
+ const docs = splitYamlDocuments(yamlContent);
65
+ for (let i = 0; i < docs.length; i++) {
66
+ try {
67
+ out.push(validateResource(parseYamlContent(docs[i])));
68
+ }
69
+ catch (e) {
70
+ if (!options.ignoreInvalid)
71
+ throw e;
72
+ }
73
+ }
74
+ return out;
75
+ }
76
+ /**
77
+ * Load a single resource from a file path.
78
+ */
79
+ export async function loadFromFile(filePath, options = {}) {
80
+ try {
81
+ const doc = await loadYamlFile(filePath);
82
+ if (doc === undefined) {
83
+ throw new ConfigError(`Failed to read file: ${filePath}`, filePath);
84
+ }
85
+ return validateResource(doc);
86
+ }
87
+ catch (e) {
88
+ if (e instanceof ConfigError) {
89
+ throw new ConfigError(e.message, filePath, e.cause);
90
+ }
91
+ if (e?.code === "ENOENT") {
92
+ throw new ConfigError(`Failed to read file: ${filePath}`, filePath, e);
93
+ }
94
+ throw new ConfigError(String(e), filePath, e);
95
+ }
96
+ }
97
+ /**
98
+ * Load all K8s-style resources from a directory.
99
+ * Scans for .yaml/.yml files (non-recursive by default).
100
+ */
101
+ export async function loadFromDirectory(dirPath, options = {}) {
102
+ const { recursive = false, ...loadOpts } = options;
103
+ const entries = await readdir(dirPath, { withFileTypes: true }).catch((e) => {
104
+ throw new ConfigError(`Failed to read directory: ${dirPath}`, dirPath, e);
105
+ });
106
+ const results = [];
107
+ for (const ent of entries) {
108
+ const full = join(dirPath, ent.name);
109
+ if (ent.isDirectory() && recursive) {
110
+ const sub = await loadFromDirectory(full, options);
111
+ results.push(...sub);
112
+ }
113
+ if (!ent.isFile() || !YAML_EXTS.includes(extname(ent.name)))
114
+ continue;
115
+ try {
116
+ const content = await readFile(full, "utf-8");
117
+ const resources = parseAllResources(content, loadOpts);
118
+ results.push(...resources);
119
+ }
120
+ catch (e) {
121
+ if (!loadOpts.ignoreInvalid)
122
+ throw new ConfigError(String(e), full, e);
123
+ }
124
+ }
125
+ return results;
126
+ }
127
+ /**
128
+ * Parse a single resource from a YAML string.
129
+ */
130
+ export function loadFromString(content, options = {}) {
131
+ const multi = content.includes("---");
132
+ if (multi) {
133
+ const list = parseAllResources(content, options);
134
+ if (list.length === 0)
135
+ throw new ConfigError("No valid resource found in multi-document YAML");
136
+ return list[0];
137
+ }
138
+ return parseResource(content);
139
+ }
140
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Map loaded K8s-style configs to options suitable for deepagents (createDeepAgent).
3
+ * Supports MemoryConfig, SkillsConfig, and AgentRuntimeConfig; memory shape is exposed for app use
4
+ * until deepagents exposes a matching memory API.
5
+ */
6
+ import type { AgentBackendConfigSpec, KnownResource } from "./resources.js";
7
+ export interface ResolvedAgentConfig {
8
+ /** Skill source paths to pass to createDeepAgent({ skills }) */
9
+ skills: string[];
10
+ /** Resolved memory config (thread/cross_thread/knowledge). Use for your own store/checkpointer or when deepagents supports it. */
11
+ memory: ResolvedMemoryConfig | null;
12
+ /** Observability and privacy from MemoryConfig, if present */
13
+ observability: {
14
+ trace: boolean;
15
+ };
16
+ privacy: {
17
+ forbiddenMetadataKeys: string[];
18
+ };
19
+ /** Runtime defaults from AgentRuntimeConfig, if present */
20
+ runtime: ResolvedAgentRuntimeConfig;
21
+ }
22
+ export interface ResolvedMemoryConfig {
23
+ thread: MemoryStoreResolved;
24
+ cross_thread: MemoryStoreResolved;
25
+ knowledge: MemoryStoreResolved;
26
+ }
27
+ export interface MemoryStoreResolved {
28
+ store: {
29
+ type: string;
30
+ options?: Record<string, unknown>;
31
+ };
32
+ allowWrite: boolean;
33
+ maxItems: number;
34
+ sessionCompaction?: {
35
+ enabled: boolean;
36
+ maxTokens: number;
37
+ keepRecentTurns: number;
38
+ summaryKey: string;
39
+ checkEveryTurns: number;
40
+ };
41
+ }
42
+ export interface ResolvedAgentRuntimeConfig {
43
+ artifacts?: Array<{
44
+ key: string;
45
+ path: string;
46
+ }>;
47
+ stateDirName?: string;
48
+ legacyOutputState?: boolean;
49
+ executeTimeoutMs?: number;
50
+ blockTaskTool?: boolean;
51
+ systemPrompt?: string;
52
+ llmIdleTimeoutMs?: number;
53
+ backend?: AgentBackendConfigSpec;
54
+ incompleteRunMaxRetries?: number;
55
+ emptyRunMaxRetries?: number;
56
+ malformedToolCallMaxRetries?: number;
57
+ idleTimeoutMaxRetries?: number;
58
+ heartbeatIntervalMs?: number;
59
+ debug?: {
60
+ run?: boolean;
61
+ workspace?: boolean;
62
+ toolCall?: boolean;
63
+ stream?: boolean;
64
+ close?: boolean;
65
+ };
66
+ eventLogLevel?: "silent" | "lifecycle" | "tools" | "verbose";
67
+ }
68
+ /**
69
+ * Reduce an array of loaded resources into a single ResolvedAgentConfig.
70
+ * - SkillsConfig: parsed for compatibility, but skill roots are resolved outside this module.
71
+ * - MemoryConfig: first one wins (by name order or array order); optional merge strategy could be added.
72
+ */
73
+ export declare function resolveAgentConfig(resources: KnownResource[]): ResolvedAgentConfig;
74
+ /**
75
+ * Build options object for createDeepAgent from resolved config.
76
+ * Pass skills; use resolvedAgentConfig.memory / observability / privacy in your app as needed.
77
+ */
78
+ export declare function buildDeepAgentOptions(resolved: ResolvedAgentConfig): {
79
+ skills: string[];
80
+ /** Optional: attach to run/config for observability and privacy (app-specific) */
81
+ _resolved: ResolvedAgentConfig;
82
+ };
83
+ //# sourceMappingURL=resolveRuntimeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRuntimeConfig.d.ts","sourceRoot":"","sources":["../../src/config/resolveRuntimeConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,sBAAsB,EAEtB,aAAa,EAEd,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kIAAkI;IAClI,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,8DAA8D;IAC9D,aAAa,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAClC,OAAO,EAAE;QAAE,qBAAqB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7C,2DAA2D;IAC3D,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC3D,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,aAAa,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;CAC9D;AAKD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAmClF;AA+BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG;IACpE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kFAAkF;IAClF,SAAS,EAAE,mBAAmB,CAAC;CAChC,CAKA"}