@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.
- package/.github/workflows/ci.yml +46 -0
- package/.github/workflows/release.yml +79 -0
- package/README.md +71 -0
- package/config/examples/memory.yaml +39 -0
- package/config/examples/model.yaml +21 -0
- package/config/examples/runtime.yaml +44 -0
- package/config/examples/skills.yaml +8 -0
- package/config/examples/tool.yaml +16 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +41 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +140 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/resolveRuntimeConfig.d.ts +83 -0
- package/dist/config/resolveRuntimeConfig.d.ts.map +1 -0
- package/dist/config/resolveRuntimeConfig.js +85 -0
- package/dist/config/resolveRuntimeConfig.js.map +1 -0
- package/dist/config/resources.d.ts +112 -0
- package/dist/config/resources.d.ts.map +1 -0
- package/dist/config/resources.js +20 -0
- package/dist/config/resources.js.map +1 -0
- package/dist/config/runtimeConfigLoader.d.ts +28 -0
- package/dist/config/runtimeConfigLoader.d.ts.map +1 -0
- package/dist/config/runtimeConfigLoader.js +38 -0
- package/dist/config/runtimeConfigLoader.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/agentMiddleware.d.ts +3 -0
- package/dist/runtime/agentMiddleware.d.ts.map +1 -0
- package/dist/runtime/agentMiddleware.js +2 -0
- package/dist/runtime/agentMiddleware.js.map +1 -0
- package/dist/runtime/bootstrap/runtimeFactory.d.ts +7 -0
- package/dist/runtime/bootstrap/runtimeFactory.d.ts.map +1 -0
- package/dist/runtime/bootstrap/runtimeFactory.js +139 -0
- package/dist/runtime/bootstrap/runtimeFactory.js.map +1 -0
- package/dist/runtime/bootstrap/runtimeModuleInitializer.d.ts +5 -0
- package/dist/runtime/bootstrap/runtimeModuleInitializer.d.ts.map +1 -0
- package/dist/runtime/bootstrap/runtimeModuleInitializer.js +32 -0
- package/dist/runtime/bootstrap/runtimeModuleInitializer.js.map +1 -0
- package/dist/runtime/context/agentContext.d.ts +5 -0
- package/dist/runtime/context/agentContext.d.ts.map +1 -0
- package/dist/runtime/context/agentContext.js +19 -0
- package/dist/runtime/context/agentContext.js.map +1 -0
- package/dist/runtime/context/globalContext.d.ts +19 -0
- package/dist/runtime/context/globalContext.d.ts.map +1 -0
- package/dist/runtime/context/globalContext.js +47 -0
- package/dist/runtime/context/globalContext.js.map +1 -0
- package/dist/runtime/events/eventPublisher.d.ts +15 -0
- package/dist/runtime/events/eventPublisher.d.ts.map +1 -0
- package/dist/runtime/events/eventPublisher.js +23 -0
- package/dist/runtime/events/eventPublisher.js.map +1 -0
- package/dist/runtime/execution/agentRunExecutor.d.ts +38 -0
- package/dist/runtime/execution/agentRunExecutor.d.ts.map +1 -0
- package/dist/runtime/execution/agentRunExecutor.js +378 -0
- package/dist/runtime/execution/agentRunExecutor.js.map +1 -0
- package/dist/runtime/execution/agentRunExecutor.types.d.ts +37 -0
- package/dist/runtime/execution/agentRunExecutor.types.d.ts.map +1 -0
- package/dist/runtime/execution/agentRunExecutor.types.js +2 -0
- package/dist/runtime/execution/agentRunExecutor.types.js.map +1 -0
- package/dist/runtime/execution/agentRunProgress.d.ts +8 -0
- package/dist/runtime/execution/agentRunProgress.d.ts.map +1 -0
- package/dist/runtime/execution/agentRunProgress.js +46 -0
- package/dist/runtime/execution/agentRunProgress.js.map +1 -0
- package/dist/runtime/execution/agentRunState.d.ts +44 -0
- package/dist/runtime/execution/agentRunState.d.ts.map +1 -0
- package/dist/runtime/execution/agentRunState.js +17 -0
- package/dist/runtime/execution/agentRunState.js.map +1 -0
- package/dist/runtime/execution/policies/runCompletionPolicy.d.ts +5 -0
- package/dist/runtime/execution/policies/runCompletionPolicy.d.ts.map +1 -0
- package/dist/runtime/execution/policies/runCompletionPolicy.js +30 -0
- package/dist/runtime/execution/policies/runCompletionPolicy.js.map +1 -0
- package/dist/runtime/execution/policies/runErrorPolicy.d.ts +7 -0
- package/dist/runtime/execution/policies/runErrorPolicy.d.ts.map +1 -0
- package/dist/runtime/execution/policies/runErrorPolicy.js +40 -0
- package/dist/runtime/execution/policies/runErrorPolicy.js.map +1 -0
- package/dist/runtime/execution/policies/runPromptBuilder.d.ts +10 -0
- package/dist/runtime/execution/policies/runPromptBuilder.d.ts.map +1 -0
- package/dist/runtime/execution/policies/runPromptBuilder.js +34 -0
- package/dist/runtime/execution/policies/runPromptBuilder.js.map +1 -0
- package/dist/runtime/execution/policies/runSummaryFormatter.d.ts +6 -0
- package/dist/runtime/execution/policies/runSummaryFormatter.d.ts.map +1 -0
- package/dist/runtime/execution/policies/runSummaryFormatter.js +47 -0
- package/dist/runtime/execution/policies/runSummaryFormatter.js.map +1 -0
- package/dist/runtime/execution/policies/runtimeDelay.d.ts +4 -0
- package/dist/runtime/execution/policies/runtimeDelay.d.ts.map +1 -0
- package/dist/runtime/execution/policies/runtimeDelay.js +6 -0
- package/dist/runtime/execution/policies/runtimeDelay.js.map +1 -0
- package/dist/runtime/execution/policies/toolConfigReader.d.ts +8 -0
- package/dist/runtime/execution/policies/toolConfigReader.d.ts.map +1 -0
- package/dist/runtime/execution/policies/toolConfigReader.js +91 -0
- package/dist/runtime/execution/policies/toolConfigReader.js.map +1 -0
- package/dist/runtime/human-loop/consoleHumanLoop.d.ts +21 -0
- package/dist/runtime/human-loop/consoleHumanLoop.d.ts.map +1 -0
- package/dist/runtime/human-loop/consoleHumanLoop.js +102 -0
- package/dist/runtime/human-loop/consoleHumanLoop.js.map +1 -0
- package/dist/runtime/human-loop/humanLoop.d.ts +44 -0
- package/dist/runtime/human-loop/humanLoop.d.ts.map +1 -0
- package/dist/runtime/human-loop/humanLoop.js +36 -0
- package/dist/runtime/human-loop/humanLoop.js.map +1 -0
- package/dist/runtime/index.d.ts +10 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +6 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/middleware/agentToolMiddleware.d.ts +30 -0
- package/dist/runtime/middleware/agentToolMiddleware.d.ts.map +1 -0
- package/dist/runtime/middleware/agentToolMiddleware.js +259 -0
- package/dist/runtime/middleware/agentToolMiddleware.js.map +1 -0
- package/dist/runtime/middleware/commandPolicy.d.ts +8 -0
- package/dist/runtime/middleware/commandPolicy.d.ts.map +1 -0
- package/dist/runtime/middleware/commandPolicy.js +55 -0
- package/dist/runtime/middleware/commandPolicy.js.map +1 -0
- package/dist/runtime/middleware/frameworkPrompt.d.ts +4 -0
- package/dist/runtime/middleware/frameworkPrompt.d.ts.map +1 -0
- package/dist/runtime/middleware/frameworkPrompt.js +44 -0
- package/dist/runtime/middleware/frameworkPrompt.js.map +1 -0
- package/dist/runtime/middleware/index.d.ts +4 -0
- package/dist/runtime/middleware/index.d.ts.map +1 -0
- package/dist/runtime/middleware/index.js +3 -0
- package/dist/runtime/middleware/index.js.map +1 -0
- package/dist/runtime/middleware/skillPathMap.d.ts +3 -0
- package/dist/runtime/middleware/skillPathMap.d.ts.map +1 -0
- package/dist/runtime/middleware/skillPathMap.js +44 -0
- package/dist/runtime/middleware/skillPathMap.js.map +1 -0
- package/dist/runtime/middleware/toolArgsNormalizer.d.ts +21 -0
- package/dist/runtime/middleware/toolArgsNormalizer.d.ts.map +1 -0
- package/dist/runtime/middleware/toolArgsNormalizer.js +227 -0
- package/dist/runtime/middleware/toolArgsNormalizer.js.map +1 -0
- package/dist/runtime/middleware/toolCallGuard.d.ts +8 -0
- package/dist/runtime/middleware/toolCallGuard.d.ts.map +1 -0
- package/dist/runtime/middleware/toolCallGuard.js +60 -0
- package/dist/runtime/middleware/toolCallGuard.js.map +1 -0
- package/dist/runtime/middleware/toolFsHandlers.d.ts +12 -0
- package/dist/runtime/middleware/toolFsHandlers.d.ts.map +1 -0
- package/dist/runtime/middleware/toolFsHandlers.js +79 -0
- package/dist/runtime/middleware/toolFsHandlers.js.map +1 -0
- package/dist/runtime/middleware/toolRequestParser.d.ts +14 -0
- package/dist/runtime/middleware/toolRequestParser.d.ts.map +1 -0
- package/dist/runtime/middleware/toolRequestParser.js +72 -0
- package/dist/runtime/middleware/toolRequestParser.js.map +1 -0
- package/dist/runtime/middleware/types.d.ts +87 -0
- package/dist/runtime/middleware/types.d.ts.map +1 -0
- package/dist/runtime/middleware/types.js +3 -0
- package/dist/runtime/middleware/types.js.map +1 -0
- package/dist/runtime/providers/backendResolver.d.ts +26 -0
- package/dist/runtime/providers/backendResolver.d.ts.map +1 -0
- package/dist/runtime/providers/backendResolver.js +73 -0
- package/dist/runtime/providers/backendResolver.js.map +1 -0
- package/dist/runtime/providers/index.d.ts +14 -0
- package/dist/runtime/providers/index.d.ts.map +1 -0
- package/dist/runtime/providers/index.js +10 -0
- package/dist/runtime/providers/index.js.map +1 -0
- package/dist/runtime/providers/langchainRuntime.d.ts +11 -0
- package/dist/runtime/providers/langchainRuntime.d.ts.map +1 -0
- package/dist/runtime/providers/langchainRuntime.js +45 -0
- package/dist/runtime/providers/langchainRuntime.js.map +1 -0
- package/dist/runtime/providers/localShellBackend.d.ts +10 -0
- package/dist/runtime/providers/localShellBackend.d.ts.map +1 -0
- package/dist/runtime/providers/localShellBackend.js +23 -0
- package/dist/runtime/providers/localShellBackend.js.map +1 -0
- package/dist/runtime/providers/openaiDeepAgent.d.ts +9 -0
- package/dist/runtime/providers/openaiDeepAgent.d.ts.map +1 -0
- package/dist/runtime/providers/openaiDeepAgent.js +7 -0
- package/dist/runtime/providers/openaiDeepAgent.js.map +1 -0
- package/dist/runtime/providers/openaiLocalAgent.d.ts +17 -0
- package/dist/runtime/providers/openaiLocalAgent.d.ts.map +1 -0
- package/dist/runtime/providers/openaiLocalAgent.js +26 -0
- package/dist/runtime/providers/openaiLocalAgent.js.map +1 -0
- package/dist/runtime/providers/openaiLocalAgentFactory.d.ts +36 -0
- package/dist/runtime/providers/openaiLocalAgentFactory.d.ts.map +1 -0
- package/dist/runtime/providers/openaiLocalAgentFactory.js +139 -0
- package/dist/runtime/providers/openaiLocalAgentFactory.js.map +1 -0
- package/dist/runtime/providers/shared/agentProbe.d.ts +4 -0
- package/dist/runtime/providers/shared/agentProbe.d.ts.map +1 -0
- package/dist/runtime/providers/shared/agentProbe.js +17 -0
- package/dist/runtime/providers/shared/agentProbe.js.map +1 -0
- package/dist/runtime/providers/shared/moduleFallback.d.ts +2 -0
- package/dist/runtime/providers/shared/moduleFallback.d.ts.map +1 -0
- package/dist/runtime/providers/shared/moduleFallback.js +34 -0
- package/dist/runtime/providers/shared/moduleFallback.js.map +1 -0
- package/dist/runtime/providers/shared/resourceCloser.d.ts +6 -0
- package/dist/runtime/providers/shared/resourceCloser.d.ts.map +1 -0
- package/dist/runtime/providers/shared/resourceCloser.js +30 -0
- package/dist/runtime/providers/shared/resourceCloser.js.map +1 -0
- package/dist/runtime/runtimeService.d.ts +109 -0
- package/dist/runtime/runtimeService.d.ts.map +1 -0
- package/dist/runtime/runtimeService.js +90 -0
- package/dist/runtime/runtimeService.js.map +1 -0
- package/dist/runtime/stream/agentMessages.d.ts +40 -0
- package/dist/runtime/stream/agentMessages.d.ts.map +1 -0
- package/dist/runtime/stream/agentMessages.js +44 -0
- package/dist/runtime/stream/agentMessages.js.map +1 -0
- package/dist/runtime/stream/agentStream.d.ts +31 -0
- package/dist/runtime/stream/agentStream.d.ts.map +1 -0
- package/dist/runtime/stream/agentStream.js +106 -0
- package/dist/runtime/stream/agentStream.js.map +1 -0
- package/dist/runtime/stream/messageSummary.d.ts +20 -0
- package/dist/runtime/stream/messageSummary.d.ts.map +1 -0
- package/dist/runtime/stream/messageSummary.js +150 -0
- package/dist/runtime/stream/messageSummary.js.map +1 -0
- package/dist/runtime/stream/runArtifacts.d.ts +9 -0
- package/dist/runtime/stream/runArtifacts.d.ts.map +1 -0
- package/dist/runtime/stream/runArtifacts.js +48 -0
- package/dist/runtime/stream/runArtifacts.js.map +1 -0
- package/dist/state/index.d.ts +7 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +4 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/runState.d.ts +36 -0
- package/dist/state/runState.d.ts.map +1 -0
- package/dist/state/runState.js +51 -0
- package/dist/state/runState.js.map +1 -0
- package/dist/state/todos.d.ts +19 -0
- package/dist/state/todos.d.ts.map +1 -0
- package/dist/state/todos.js +45 -0
- package/dist/state/todos.js.map +1 -0
- package/dist/state/workspaceRunSession.d.ts +32 -0
- package/dist/state/workspaceRunSession.d.ts.map +1 -0
- package/dist/state/workspaceRunSession.js +67 -0
- package/dist/state/workspaceRunSession.js.map +1 -0
- package/dist/state/workspaceState.d.ts +94 -0
- package/dist/state/workspaceState.d.ts.map +1 -0
- package/dist/state/workspaceState.js +119 -0
- package/dist/state/workspaceState.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/example/.tsbuildinfo +1 -0
- package/example/build/.tsbuildinfo +1 -0
- package/example/config/memory.yaml +35 -0
- package/example/config/model.yaml +14 -0
- package/example/config/runtime.yaml +46 -0
- package/example/config/tool.yaml +24 -0
- package/example/index.ts +159 -0
- package/example/package-lock.json +1396 -0
- package/example/package.json +26 -0
- package/example/serve-output.mjs +52 -0
- package/example/tsconfig.json +19 -0
- package/package.json +73 -0
- package/scripts/resolve-deps.js +40 -0
- package/src/config/index.ts +29 -0
- package/src/config/loader.ts +174 -0
- package/src/config/resolveRuntimeConfig.ts +160 -0
- package/src/config/resources.ts +152 -0
- package/src/config/runtimeConfigLoader.ts +68 -0
- package/src/external-modules.d.ts +20 -0
- package/src/index.ts +36 -0
- package/src/runtime/agentMiddleware.ts +6 -0
- package/src/runtime/bootstrap/runtimeFactory.ts +212 -0
- package/src/runtime/bootstrap/runtimeModuleInitializer.ts +34 -0
- package/src/runtime/context/agentContext.ts +24 -0
- package/src/runtime/context/globalContext.ts +70 -0
- package/src/runtime/events/eventPublisher.ts +45 -0
- package/src/runtime/execution/agentRunExecutor.ts +499 -0
- package/src/runtime/execution/agentRunExecutor.types.ts +39 -0
- package/src/runtime/execution/agentRunProgress.ts +67 -0
- package/src/runtime/execution/agentRunState.ts +66 -0
- package/src/runtime/execution/policies/runCompletionPolicy.ts +30 -0
- package/src/runtime/execution/policies/runErrorPolicy.ts +50 -0
- package/src/runtime/execution/policies/runPromptBuilder.ts +39 -0
- package/src/runtime/execution/policies/runSummaryFormatter.ts +57 -0
- package/src/runtime/execution/policies/runtimeDelay.ts +5 -0
- package/src/runtime/execution/policies/toolConfigReader.ts +107 -0
- package/src/runtime/human-loop/consoleHumanLoop.ts +113 -0
- package/src/runtime/human-loop/humanLoop.ts +90 -0
- package/src/runtime/index.ts +36 -0
- package/src/runtime/middleware/agentToolMiddleware.ts +329 -0
- package/src/runtime/middleware/commandPolicy.ts +65 -0
- package/src/runtime/middleware/frameworkPrompt.ts +51 -0
- package/src/runtime/middleware/index.ts +7 -0
- package/src/runtime/middleware/skillPathMap.ts +49 -0
- package/src/runtime/middleware/toolArgsNormalizer.ts +277 -0
- package/src/runtime/middleware/toolCallGuard.ts +73 -0
- package/src/runtime/middleware/toolFsHandlers.ts +94 -0
- package/src/runtime/middleware/toolRequestParser.ts +84 -0
- package/src/runtime/middleware/types.ts +91 -0
- package/src/runtime/providers/backendResolver.ts +127 -0
- package/src/runtime/providers/index.ts +19 -0
- package/src/runtime/providers/langchainRuntime.ts +67 -0
- package/src/runtime/providers/localShellBackend.ts +54 -0
- package/src/runtime/providers/openaiDeepAgent.ts +17 -0
- package/src/runtime/providers/openaiLocalAgent.ts +35 -0
- package/src/runtime/providers/openaiLocalAgentFactory.ts +185 -0
- package/src/runtime/providers/shared/agentProbe.ts +24 -0
- package/src/runtime/providers/shared/moduleFallback.ts +41 -0
- package/src/runtime/providers/shared/resourceCloser.ts +30 -0
- package/src/runtime/runtimeService.ts +205 -0
- package/src/runtime/stream/agentMessages.ts +72 -0
- package/src/runtime/stream/agentStream.ts +168 -0
- package/src/runtime/stream/messageSummary.ts +164 -0
- package/src/runtime/stream/runArtifacts.ts +72 -0
- package/src/state/index.ts +19 -0
- package/src/state/runState.ts +84 -0
- package/src/state/todos.ts +59 -0
- package/src/state/workspaceRunSession.ts +96 -0
- package/src/state/workspaceState.ts +199 -0
- package/src/types/easynet-agent-common.d.ts +62 -0
- package/src/types.ts +1 -0
- package/test/integration/runtime-live.integration.test.ts +30 -0
- package/test/unit/config/loader.test.ts +429 -0
- package/test/unit/runtime/agentContext.test.ts +23 -0
- package/test/unit/runtime/agentRuntime.test.ts +99 -0
- package/test/unit/runtime/consoleHumanLoop.test.ts +52 -0
- package/test/unit/runtime/events.test.ts +11 -0
- package/test/unit/runtime/globalContext.test.ts +34 -0
- package/test/unit/runtime/humanLoop.test.ts +104 -0
- package/test/unit/runtime/toolArgsNormalizer.test.ts +136 -0
- 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,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"}
|