@action-llama/action-llama 0.16.0 → 0.17.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/dist/agents/container-runner.d.ts +1 -1
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/runner.d.ts +0 -4
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +0 -10
- package/dist/agents/runner.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +0 -46
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +33 -16
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/new.d.ts +7 -1
- package/dist/cli/commands/new.d.ts.map +1 -1
- package/dist/cli/commands/new.js +54 -23
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +1 -0
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/main.js +5 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/{gateway → control}/api-key.d.ts.map +1 -1
- package/dist/{gateway → control}/api-key.js.map +1 -1
- package/dist/{gateway → control}/auth.d.ts.map +1 -1
- package/dist/{gateway → control}/auth.js.map +1 -1
- package/dist/control/index.d.ts +11 -0
- package/dist/control/index.d.ts.map +1 -0
- package/dist/control/index.js +8 -0
- package/dist/control/index.js.map +1 -0
- package/dist/{gateway → control}/routes/control.d.ts.map +1 -1
- package/dist/{gateway → control}/routes/control.js.map +1 -1
- package/dist/{gateway → control}/routes/dashboard.d.ts.map +1 -1
- package/dist/{gateway → control}/routes/dashboard.js +68 -35
- package/dist/control/routes/dashboard.js.map +1 -0
- package/dist/{gateway → control}/routes/logs.d.ts.map +1 -1
- package/dist/{gateway → control}/routes/logs.js.map +1 -1
- package/dist/{gateway → control}/routes/stats.d.ts.map +1 -1
- package/dist/{gateway → control}/routes/stats.js +13 -0
- package/dist/control/routes/stats.js.map +1 -0
- package/dist/{gateway → control}/session-store.d.ts.map +1 -1
- package/dist/{gateway → control}/session-store.js.map +1 -1
- package/dist/control/types.d.ts +6 -0
- package/dist/control/types.d.ts.map +1 -0
- package/dist/{gateway → control}/types.js.map +1 -1
- package/dist/{gateway → control}/views/agent-detail-page.d.ts +2 -2
- package/dist/control/views/agent-detail-page.d.ts.map +1 -0
- package/dist/{gateway → control}/views/agent-detail-page.js +137 -52
- package/dist/control/views/agent-detail-page.js.map +1 -0
- package/dist/control/views/agent-skill-page.d.ts +2 -0
- package/dist/control/views/agent-skill-page.d.ts.map +1 -0
- package/dist/control/views/agent-skill-page.js +32 -0
- package/dist/control/views/agent-skill-page.js.map +1 -0
- package/dist/control/views/dashboard-page.d.ts +4 -0
- package/dist/control/views/dashboard-page.d.ts.map +1 -0
- package/dist/{gateway → control}/views/dashboard-page.js +65 -1
- package/dist/{gateway → control}/views/dashboard-page.js.map +1 -1
- package/dist/{gateway → control}/views/instance-detail-page.d.ts +9 -0
- package/dist/{gateway → control}/views/instance-detail-page.d.ts.map +1 -1
- package/dist/{gateway → control}/views/instance-detail-page.js +28 -1
- package/dist/control/views/instance-detail-page.js.map +1 -0
- package/dist/{gateway → control}/views/layout.d.ts.map +1 -1
- package/dist/{gateway → control}/views/layout.js.map +1 -1
- package/dist/{gateway → control}/views/login-page.d.ts.map +1 -1
- package/dist/{gateway → control}/views/login-page.js.map +1 -1
- package/dist/control/views/markdown.d.ts +6 -0
- package/dist/control/views/markdown.d.ts.map +1 -0
- package/dist/control/views/markdown.js +119 -0
- package/dist/control/views/markdown.js.map +1 -0
- package/dist/{gateway → control}/views/project-config-page.d.ts +0 -4
- package/dist/control/views/project-config-page.d.ts.map +1 -0
- package/dist/{gateway → control}/views/project-config-page.js +0 -82
- package/dist/control/views/project-config-page.js.map +1 -0
- package/dist/control/views/trigger-history-page.d.ts +10 -0
- package/dist/control/views/trigger-history-page.d.ts.map +1 -0
- package/dist/control/views/trigger-history-page.js +89 -0
- package/dist/control/views/trigger-history-page.js.map +1 -0
- package/dist/credentials/providers/file.d.ts +13 -0
- package/dist/credentials/providers/file.d.ts.map +1 -0
- package/dist/credentials/providers/file.js +34 -0
- package/dist/credentials/providers/file.js.map +1 -0
- package/dist/credentials/providers/index.d.ts +13 -0
- package/dist/credentials/providers/index.d.ts.map +1 -0
- package/dist/credentials/providers/index.js +70 -0
- package/dist/credentials/providers/index.js.map +1 -0
- package/dist/credentials/providers/vault.d.ts +19 -0
- package/dist/credentials/providers/vault.d.ts.map +1 -0
- package/dist/credentials/providers/vault.js +94 -0
- package/dist/credentials/providers/vault.js.map +1 -0
- package/dist/docker/providers/index.d.ts +13 -0
- package/dist/docker/providers/index.d.ts.map +1 -0
- package/dist/docker/providers/index.js +74 -0
- package/dist/docker/providers/index.js.map +1 -0
- package/dist/{scheduler → events}/cron-setup.d.ts +7 -12
- package/dist/events/cron-setup.d.ts.map +1 -0
- package/dist/{scheduler → events}/cron-setup.js +4 -33
- package/dist/events/cron-setup.js.map +1 -0
- package/dist/events/event-queue-sqlite.d.ts.map +1 -0
- package/dist/events/event-queue-sqlite.js.map +1 -0
- package/dist/events/event-queue-unified.d.ts.map +1 -0
- package/dist/events/event-queue-unified.js.map +1 -0
- package/dist/{scheduler → events}/event-queue.d.ts +2 -16
- package/dist/events/event-queue.d.ts.map +1 -0
- package/dist/events/event-queue.js.map +1 -0
- package/dist/events/index.d.ts +9 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -0
- package/dist/{gateway → events}/routes/webhooks.d.ts +2 -1
- package/dist/events/routes/webhooks.d.ts.map +1 -0
- package/dist/events/routes/webhooks.js +201 -0
- package/dist/events/routes/webhooks.js.map +1 -0
- package/dist/{scheduler → events}/webhook-setup.d.ts +8 -6
- package/dist/events/webhook-setup.d.ts.map +1 -0
- package/dist/{scheduler → events}/webhook-setup.js +2 -24
- package/dist/events/webhook-setup.js.map +1 -0
- package/dist/{scheduler → execution}/call-dispatcher.d.ts.map +1 -1
- package/dist/{scheduler → execution}/call-dispatcher.js.map +1 -1
- package/dist/execution/call-store.d.ts.map +1 -0
- package/dist/execution/call-store.js.map +1 -0
- package/dist/execution/container-registry.d.ts.map +1 -0
- package/dist/execution/container-registry.js.map +1 -0
- package/dist/{scheduler → execution}/execution.d.ts +4 -3
- package/dist/execution/execution.d.ts.map +1 -0
- package/dist/{scheduler → execution}/execution.js +2 -1
- package/dist/execution/execution.js.map +1 -0
- package/dist/{scheduler → execution}/image-builder.d.ts +1 -1
- package/dist/execution/image-builder.d.ts.map +1 -0
- package/dist/{scheduler → execution}/image-builder.js +2 -0
- package/dist/execution/image-builder.js.map +1 -0
- package/dist/execution/index.d.ts +21 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +14 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/{scheduler → execution}/lifecycle/agent-lifecycle.d.ts.map +1 -1
- package/dist/{scheduler → execution}/lifecycle/agent-lifecycle.js.map +1 -1
- package/dist/{scheduler → execution}/lifecycle/index.d.ts.map +1 -1
- package/dist/{scheduler → execution}/lifecycle/index.js.map +1 -1
- package/dist/{scheduler → execution}/lifecycle/instance-lifecycle.d.ts.map +1 -1
- package/dist/{scheduler → execution}/lifecycle/instance-lifecycle.js.map +1 -1
- package/dist/execution/lock-store.d.ts.map +1 -0
- package/dist/execution/lock-store.js.map +1 -0
- package/dist/execution/routes/calls.d.ts.map +1 -0
- package/dist/execution/routes/calls.js.map +1 -0
- package/dist/execution/routes/locks.d.ts.map +1 -0
- package/dist/execution/routes/locks.js.map +1 -0
- package/dist/execution/routes/shutdown.d.ts.map +1 -0
- package/dist/execution/routes/shutdown.js.map +1 -0
- package/dist/execution/routes/signals.d.ts.map +1 -0
- package/dist/execution/routes/signals.js.map +1 -0
- package/dist/{scheduler → execution}/runner-pool.d.ts.map +1 -1
- package/dist/{scheduler → execution}/runner-pool.js.map +1 -1
- package/dist/{scheduler → execution}/runner-setup.d.ts +1 -1
- package/dist/execution/runner-setup.d.ts.map +1 -0
- package/dist/{scheduler → execution}/runner-setup.js.map +1 -1
- package/dist/{scheduler → execution}/runtime-factory.d.ts +1 -1
- package/dist/{scheduler → execution}/runtime-factory.d.ts.map +1 -1
- package/dist/execution/runtime-factory.js +46 -0
- package/dist/execution/runtime-factory.js.map +1 -0
- package/dist/{gateway → execution}/types.d.ts +0 -5
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +2 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/extensions/index.d.ts +4 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +5 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +15 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +116 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/registry.d.ts +32 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +123 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +74 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +2 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/gateway/index.d.ts +8 -8
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +16 -15
- package/dist/gateway/index.js.map +1 -1
- package/dist/models/providers/anthropic.d.ts +17 -0
- package/dist/models/providers/anthropic.d.ts.map +1 -0
- package/dist/models/providers/anthropic.js +74 -0
- package/dist/models/providers/anthropic.js.map +1 -0
- package/dist/models/providers/custom.d.ts +18 -0
- package/dist/models/providers/custom.d.ts.map +1 -0
- package/dist/models/providers/custom.js +104 -0
- package/dist/models/providers/custom.js.map +1 -0
- package/dist/models/providers/index.d.ts +17 -0
- package/dist/models/providers/index.d.ts.map +1 -0
- package/dist/models/providers/index.js +107 -0
- package/dist/models/providers/index.js.map +1 -0
- package/dist/models/providers/openai.d.ts +18 -0
- package/dist/models/providers/openai.d.ts.map +1 -0
- package/dist/models/providers/openai.js +94 -0
- package/dist/models/providers/openai.js.map +1 -0
- package/dist/models/types.d.ts +51 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +5 -0
- package/dist/models/types.js.map +1 -0
- package/dist/remote/push.d.ts.map +1 -1
- package/dist/remote/push.js +24 -3
- package/dist/remote/push.js.map +1 -1
- package/dist/scheduler/gateway-setup.js +5 -5
- package/dist/scheduler/gateway-setup.js.map +1 -1
- package/dist/scheduler/index.d.ts +3 -3
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +61 -91
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/shutdown.d.ts +1 -1
- package/dist/scheduler/shutdown.d.ts.map +1 -1
- package/dist/scheduler/state.d.ts +2 -2
- package/dist/scheduler/state.d.ts.map +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/scheduler/validation.js +2 -2
- package/dist/scheduler/validation.js.map +1 -1
- package/dist/scheduler/watcher.d.ts +2 -2
- package/dist/scheduler/watcher.d.ts.map +1 -1
- package/dist/scheduler/watcher.js +36 -10
- package/dist/scheduler/watcher.js.map +1 -1
- package/dist/shared/config.d.ts +11 -13
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +59 -25
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/constants.d.ts +0 -8
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +0 -46
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/environment.d.ts +7 -0
- package/dist/shared/environment.d.ts.map +1 -1
- package/dist/shared/environment.js +29 -0
- package/dist/shared/environment.js.map +1 -1
- package/dist/shared/validation.d.ts +0 -7
- package/dist/shared/validation.d.ts.map +1 -1
- package/dist/shared/validation.js +28 -77
- package/dist/shared/validation.js.map +1 -1
- package/dist/shared/work-queue.d.ts +17 -0
- package/dist/shared/work-queue.d.ts.map +1 -0
- package/dist/shared/work-queue.js +2 -0
- package/dist/shared/work-queue.js.map +1 -0
- package/dist/stats/index.d.ts +1 -1
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/store.d.ts +45 -0
- package/dist/stats/store.d.ts.map +1 -1
- package/dist/stats/store.js +118 -2
- package/dist/stats/store.js.map +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +7 -9
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/providers/index.d.ts +5 -0
- package/dist/telemetry/providers/index.d.ts.map +1 -0
- package/dist/telemetry/providers/index.js +5 -0
- package/dist/telemetry/providers/index.js.map +1 -0
- package/dist/telemetry/providers/otel.d.ts +5 -0
- package/dist/telemetry/providers/otel.d.ts.map +1 -1
- package/dist/telemetry/providers/otel.js +45 -0
- package/dist/telemetry/providers/otel.js.map +1 -1
- package/dist/tui/App.js +2 -2
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/status-tracker.d.ts +2 -2
- package/dist/tui/status-tracker.js +2 -2
- package/dist/webhooks/providers/github.d.ts +1 -0
- package/dist/webhooks/providers/github.d.ts.map +1 -1
- package/dist/webhooks/providers/github.js +3 -0
- package/dist/webhooks/providers/github.js.map +1 -1
- package/dist/webhooks/providers/index.d.ts +25 -0
- package/dist/webhooks/providers/index.d.ts.map +1 -0
- package/dist/webhooks/providers/index.js +144 -0
- package/dist/webhooks/providers/index.js.map +1 -0
- package/dist/webhooks/registry.d.ts +1 -1
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/registry.js +5 -1
- package/dist/webhooks/registry.js.map +1 -1
- package/dist/webhooks/types.d.ts +2 -0
- package/dist/webhooks/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/agents/feedback-monitor.d.ts +0 -56
- package/dist/agents/feedback-monitor.d.ts.map +0 -1
- package/dist/agents/feedback-monitor.js +0 -176
- package/dist/agents/feedback-monitor.js.map +0 -1
- package/dist/agents/feedback-runner.d.ts +0 -28
- package/dist/agents/feedback-runner.d.ts.map +0 -1
- package/dist/agents/feedback-runner.js +0 -138
- package/dist/agents/feedback-runner.js.map +0 -1
- package/dist/gateway/call-store.d.ts.map +0 -1
- package/dist/gateway/call-store.js.map +0 -1
- package/dist/gateway/container-registry.d.ts.map +0 -1
- package/dist/gateway/container-registry.js.map +0 -1
- package/dist/gateway/lock-store.d.ts.map +0 -1
- package/dist/gateway/lock-store.js.map +0 -1
- package/dist/gateway/routes/calls.d.ts.map +0 -1
- package/dist/gateway/routes/calls.js.map +0 -1
- package/dist/gateway/routes/dashboard.js.map +0 -1
- package/dist/gateway/routes/locks.d.ts.map +0 -1
- package/dist/gateway/routes/locks.js.map +0 -1
- package/dist/gateway/routes/shutdown.d.ts.map +0 -1
- package/dist/gateway/routes/shutdown.js.map +0 -1
- package/dist/gateway/routes/signals.d.ts.map +0 -1
- package/dist/gateway/routes/signals.js.map +0 -1
- package/dist/gateway/routes/stats.js.map +0 -1
- package/dist/gateway/routes/webhooks.d.ts.map +0 -1
- package/dist/gateway/routes/webhooks.js +0 -65
- package/dist/gateway/routes/webhooks.js.map +0 -1
- package/dist/gateway/types.d.ts.map +0 -1
- package/dist/gateway/views/agent-detail-page.d.ts.map +0 -1
- package/dist/gateway/views/agent-detail-page.js.map +0 -1
- package/dist/gateway/views/dashboard-page.d.ts +0 -3
- package/dist/gateway/views/dashboard-page.d.ts.map +0 -1
- package/dist/gateway/views/instance-detail-page.js.map +0 -1
- package/dist/gateway/views/project-config-page.d.ts.map +0 -1
- package/dist/gateway/views/project-config-page.js.map +0 -1
- package/dist/scheduler/cron-setup.d.ts.map +0 -1
- package/dist/scheduler/cron-setup.js.map +0 -1
- package/dist/scheduler/event-queue-sqlite.d.ts.map +0 -1
- package/dist/scheduler/event-queue-sqlite.js.map +0 -1
- package/dist/scheduler/event-queue-unified.d.ts.map +0 -1
- package/dist/scheduler/event-queue-unified.js.map +0 -1
- package/dist/scheduler/event-queue.d.ts.map +0 -1
- package/dist/scheduler/event-queue.js.map +0 -1
- package/dist/scheduler/execution.d.ts.map +0 -1
- package/dist/scheduler/execution.js.map +0 -1
- package/dist/scheduler/image-builder.d.ts.map +0 -1
- package/dist/scheduler/image-builder.js.map +0 -1
- package/dist/scheduler/runner-setup.d.ts.map +0 -1
- package/dist/scheduler/runtime-factory.js +0 -37
- package/dist/scheduler/runtime-factory.js.map +0 -1
- package/dist/scheduler/webhook-setup.d.ts.map +0 -1
- package/dist/scheduler/webhook-setup.js.map +0 -1
- package/dist/shared/default-feedback-agent.d.ts +0 -10
- package/dist/shared/default-feedback-agent.d.ts.map +0 -1
- package/dist/shared/default-feedback-agent.js +0 -114
- package/dist/shared/default-feedback-agent.js.map +0 -1
- /package/dist/{gateway → control}/api-key.d.ts +0 -0
- /package/dist/{gateway → control}/api-key.js +0 -0
- /package/dist/{gateway → control}/auth.d.ts +0 -0
- /package/dist/{gateway → control}/auth.js +0 -0
- /package/dist/{gateway → control}/routes/control.d.ts +0 -0
- /package/dist/{gateway → control}/routes/control.js +0 -0
- /package/dist/{gateway → control}/routes/dashboard.d.ts +0 -0
- /package/dist/{gateway → control}/routes/logs.d.ts +0 -0
- /package/dist/{gateway → control}/routes/logs.js +0 -0
- /package/dist/{gateway → control}/routes/stats.d.ts +0 -0
- /package/dist/{gateway → control}/session-store.d.ts +0 -0
- /package/dist/{gateway → control}/session-store.js +0 -0
- /package/dist/{gateway → control}/types.js +0 -0
- /package/dist/{gateway → control}/views/layout.d.ts +0 -0
- /package/dist/{gateway → control}/views/layout.js +0 -0
- /package/dist/{gateway → control}/views/login-page.d.ts +0 -0
- /package/dist/{gateway → control}/views/login-page.js +0 -0
- /package/dist/{scheduler → events}/event-queue-sqlite.d.ts +0 -0
- /package/dist/{scheduler → events}/event-queue-sqlite.js +0 -0
- /package/dist/{scheduler → events}/event-queue-unified.d.ts +0 -0
- /package/dist/{scheduler → events}/event-queue-unified.js +0 -0
- /package/dist/{scheduler → events}/event-queue.js +0 -0
- /package/dist/{scheduler → execution}/call-dispatcher.d.ts +0 -0
- /package/dist/{scheduler → execution}/call-dispatcher.js +0 -0
- /package/dist/{gateway → execution}/call-store.d.ts +0 -0
- /package/dist/{gateway → execution}/call-store.js +0 -0
- /package/dist/{gateway → execution}/container-registry.d.ts +0 -0
- /package/dist/{gateway → execution}/container-registry.js +0 -0
- /package/dist/{scheduler → execution}/lifecycle/agent-lifecycle.d.ts +0 -0
- /package/dist/{scheduler → execution}/lifecycle/agent-lifecycle.js +0 -0
- /package/dist/{scheduler → execution}/lifecycle/index.d.ts +0 -0
- /package/dist/{scheduler → execution}/lifecycle/index.js +0 -0
- /package/dist/{scheduler → execution}/lifecycle/instance-lifecycle.d.ts +0 -0
- /package/dist/{scheduler → execution}/lifecycle/instance-lifecycle.js +0 -0
- /package/dist/{gateway → execution}/lock-store.d.ts +0 -0
- /package/dist/{gateway → execution}/lock-store.js +0 -0
- /package/dist/{gateway → execution}/routes/calls.d.ts +0 -0
- /package/dist/{gateway → execution}/routes/calls.js +0 -0
- /package/dist/{gateway → execution}/routes/locks.d.ts +0 -0
- /package/dist/{gateway → execution}/routes/locks.js +0 -0
- /package/dist/{gateway → execution}/routes/shutdown.d.ts +0 -0
- /package/dist/{gateway → execution}/routes/shutdown.js +0 -0
- /package/dist/{gateway → execution}/routes/signals.d.ts +0 -0
- /package/dist/{gateway → execution}/routes/signals.js +0 -0
- /package/dist/{scheduler → execution}/runner-pool.d.ts +0 -0
- /package/dist/{scheduler → execution}/runner-pool.js +0 -0
- /package/dist/{scheduler → execution}/runner-setup.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-factory.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"runtime-factory.d.ts","sourceRoot":"","sources":["../../src/execution/runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACzD;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,WAAW,EAAE,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAgCxB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAYtE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container runtime factory.
|
|
3
|
+
*
|
|
4
|
+
* Creates a ContainerRuntime using the extension system and builds agent images.
|
|
5
|
+
*/
|
|
6
|
+
import { AgentError } from "../shared/errors.js";
|
|
7
|
+
import { buildAllImages } from "./image-builder.js";
|
|
8
|
+
import { globalRegistry } from "../extensions/registry.js";
|
|
9
|
+
export async function createContainerRuntime(globalConfig, activeAgentConfigs, logger) {
|
|
10
|
+
// Determine runtime type from configuration (default to local for now)
|
|
11
|
+
const runtimeType = "local";
|
|
12
|
+
// Get the runtime extension from registry
|
|
13
|
+
const runtimeExtension = globalRegistry.getRuntimeExtension(runtimeType);
|
|
14
|
+
if (!runtimeExtension) {
|
|
15
|
+
throw new AgentError(`Unknown runtime type: ${runtimeType}. Available runtimes: ${globalRegistry.getAllRuntimeExtensions().map(r => r.metadata.name).join(", ")}`);
|
|
16
|
+
}
|
|
17
|
+
const runtime = runtimeExtension.provider;
|
|
18
|
+
// For local Docker runtime, ensure Docker is running
|
|
19
|
+
if (runtimeType === "local") {
|
|
20
|
+
const { execFileSync } = await import("child_process");
|
|
21
|
+
try {
|
|
22
|
+
execFileSync("docker", ["info"], { stdio: "pipe", timeout: 10000 });
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
throw new AgentError("Docker is not running. Start Docker Desktop (or the Docker daemon) and try again.");
|
|
26
|
+
}
|
|
27
|
+
// Ensure Docker network
|
|
28
|
+
logger.info("Ensuring Docker network...");
|
|
29
|
+
const { ensureNetwork } = await import("../docker/network.js");
|
|
30
|
+
ensureNetwork();
|
|
31
|
+
}
|
|
32
|
+
return { runtime, agentRuntimeOverrides: {} };
|
|
33
|
+
}
|
|
34
|
+
export async function buildAgentImages(opts) {
|
|
35
|
+
const buildResult = await buildAllImages({
|
|
36
|
+
projectPath: opts.projectPath,
|
|
37
|
+
globalConfig: opts.globalConfig,
|
|
38
|
+
activeAgentConfigs: opts.activeAgentConfigs,
|
|
39
|
+
runtime: opts.runtime,
|
|
40
|
+
statusTracker: opts.statusTracker,
|
|
41
|
+
logger: opts.logger,
|
|
42
|
+
skills: opts.skills,
|
|
43
|
+
});
|
|
44
|
+
return { baseImage: buildResult.baseImage, agentImages: buildResult.agentImages };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=runtime-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-factory.js","sourceRoot":"","sources":["../../src/execution/runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAA0B,EAC1B,kBAAiC,EACjC,MAAc;IAEd,uEAAuE;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC;IAE5B,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAClB,yBAAyB,WAAW,yBAAyB,cAAc,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAE1C,qDAAqD;IACrD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,UAAU,CAClB,mFAAmF,CACpF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC/D,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAQtC;IACC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;QACvC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { Extension, ExtensionType, ExtensionMetadata, ExtensionConfig, WebhookExtension, TelemetryExtension, RuntimeExtension, ModelExtension, CredentialExtension, CredentialRequirement, CredentialTypeDefinition, ModelProvider, CredentialProvider } from "./types.js";
|
|
2
|
+
export { ExtensionRegistry, globalRegistry } from "./registry.js";
|
|
3
|
+
export { loadBuiltinExtensions, getGlobalRegistry, isExtension } from "./loader.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAiBA,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElE,mBAAmB;AACnB,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Extension } from "./types.js";
|
|
2
|
+
import { ExtensionRegistry } from "./registry.js";
|
|
3
|
+
/**
|
|
4
|
+
* Load all built-in extensions into the global registry
|
|
5
|
+
*/
|
|
6
|
+
export declare function loadBuiltinExtensions(credentialChecker?: (type: string, instance?: string) => Promise<boolean>): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Check if an object is a valid extension
|
|
9
|
+
*/
|
|
10
|
+
export declare function isExtension(obj: any): obj is Extension;
|
|
11
|
+
/**
|
|
12
|
+
* Get the global extension registry
|
|
13
|
+
*/
|
|
14
|
+
export declare function getGlobalRegistry(): ExtensionRegistry;
|
|
15
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAkB,MAAM,eAAe,CAAC;AAElE;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GACxE,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAoFD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,SAAS,CActD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ExtensionRegistry, globalRegistry } from "./registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* Load all built-in extensions into the global registry
|
|
4
|
+
*/
|
|
5
|
+
export async function loadBuiltinExtensions(credentialChecker) {
|
|
6
|
+
// Create a new registry with credential checking
|
|
7
|
+
const registry = new ExtensionRegistry(credentialChecker);
|
|
8
|
+
try {
|
|
9
|
+
// Load webhook provider extensions
|
|
10
|
+
await loadWebhookExtensions(registry);
|
|
11
|
+
// Load telemetry provider extensions
|
|
12
|
+
await loadTelemetryExtensions(registry);
|
|
13
|
+
// Load runtime provider extensions
|
|
14
|
+
await loadRuntimeExtensions(registry);
|
|
15
|
+
// Load model provider extensions
|
|
16
|
+
await loadModelExtensions(registry);
|
|
17
|
+
// Load credential provider extensions
|
|
18
|
+
await loadCredentialExtensions(registry);
|
|
19
|
+
console.log("Built-in extensions loaded successfully");
|
|
20
|
+
// Replace the global registry's internals with the new one
|
|
21
|
+
// This is a temporary approach until we refactor the singleton pattern
|
|
22
|
+
Object.assign(globalRegistry, registry);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.error("Failed to load built-in extensions:", error);
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function loadWebhookExtensions(registry) {
|
|
30
|
+
try {
|
|
31
|
+
const { githubWebhookExtension, linearWebhookExtension, mintlifyWebhookExtension, sentryWebhookExtension, testWebhookExtension } = await import("../webhooks/providers/index.js");
|
|
32
|
+
await registry.register(githubWebhookExtension);
|
|
33
|
+
await registry.register(linearWebhookExtension);
|
|
34
|
+
await registry.register(mintlifyWebhookExtension);
|
|
35
|
+
await registry.register(sentryWebhookExtension);
|
|
36
|
+
await registry.register(testWebhookExtension);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.warn("Failed to load webhook extensions:", error);
|
|
40
|
+
// Don't fail the entire loading process for webhook extensions
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function loadTelemetryExtensions(registry) {
|
|
44
|
+
try {
|
|
45
|
+
// Load OTel extension (will be implemented next)
|
|
46
|
+
const { otelExtension } = await import("../telemetry/providers/otel.js");
|
|
47
|
+
await registry.register(otelExtension);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
console.warn("Failed to load telemetry extensions:", error);
|
|
51
|
+
// Don't fail the entire loading process for optional telemetry
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function loadRuntimeExtensions(registry) {
|
|
55
|
+
try {
|
|
56
|
+
const { localDockerExtension, sshDockerExtension } = await import("../docker/providers/index.js");
|
|
57
|
+
await registry.register(localDockerExtension);
|
|
58
|
+
await registry.register(sshDockerExtension);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.warn("Failed to load runtime extensions:", error);
|
|
62
|
+
// Don't fail for runtime extensions since local docker is the default
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function loadModelExtensions(registry) {
|
|
66
|
+
try {
|
|
67
|
+
const { openAIModelExtension, anthropicModelExtension, customModelExtension } = await import("../models/providers/index.js");
|
|
68
|
+
await registry.register(openAIModelExtension);
|
|
69
|
+
await registry.register(anthropicModelExtension);
|
|
70
|
+
await registry.register(customModelExtension);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.warn("Failed to load model extensions:", error);
|
|
74
|
+
// Don't fail the entire loading process for model extensions
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function loadCredentialExtensions(registry) {
|
|
78
|
+
try {
|
|
79
|
+
const { fileCredentialExtension, vaultCredentialExtension } = await import("../credentials/providers/index.js");
|
|
80
|
+
await registry.register(fileCredentialExtension);
|
|
81
|
+
// Only register Vault extension if credentials are available
|
|
82
|
+
try {
|
|
83
|
+
await registry.register(vaultCredentialExtension);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.warn("Vault credential provider not available:", error.message);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.warn("Failed to load credential extensions:", error);
|
|
91
|
+
// Don't fail the entire loading process for credential extensions
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if an object is a valid extension
|
|
96
|
+
*/
|
|
97
|
+
export function isExtension(obj) {
|
|
98
|
+
return (obj !== null &&
|
|
99
|
+
obj !== undefined &&
|
|
100
|
+
typeof obj === "object" &&
|
|
101
|
+
"metadata" in obj &&
|
|
102
|
+
"init" in obj &&
|
|
103
|
+
"shutdown" in obj &&
|
|
104
|
+
typeof obj.init === "function" &&
|
|
105
|
+
typeof obj.shutdown === "function" &&
|
|
106
|
+
obj.metadata &&
|
|
107
|
+
typeof obj.metadata.name === "string" &&
|
|
108
|
+
typeof obj.metadata.type === "string");
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get the global extension registry
|
|
112
|
+
*/
|
|
113
|
+
export function getGlobalRegistry() {
|
|
114
|
+
return globalRegistry;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Extension, ExtensionType, CredentialTypeDefinition, WebhookExtension, TelemetryExtension, RuntimeExtension, ModelExtension, CredentialExtension } from "./types.js";
|
|
2
|
+
export declare class ExtensionRegistry {
|
|
3
|
+
private extensions;
|
|
4
|
+
private credentialTypes;
|
|
5
|
+
private credentialChecker?;
|
|
6
|
+
constructor(credentialChecker?: (type: string, instance?: string) => Promise<boolean>);
|
|
7
|
+
register(extension: Extension): Promise<void>;
|
|
8
|
+
get<T extends Extension>(type: ExtensionType, name: string): T | undefined;
|
|
9
|
+
getAll<T extends Extension>(type: ExtensionType): T[];
|
|
10
|
+
getWebhookExtension(name: string): WebhookExtension | undefined;
|
|
11
|
+
getTelemetryExtension(name: string): TelemetryExtension | undefined;
|
|
12
|
+
getRuntimeExtension(name: string): RuntimeExtension | undefined;
|
|
13
|
+
getModelExtension(name: string): ModelExtension | undefined;
|
|
14
|
+
getCredentialExtension(name: string): CredentialExtension | undefined;
|
|
15
|
+
getAllWebhookExtensions(): WebhookExtension[];
|
|
16
|
+
getAllTelemetryExtensions(): TelemetryExtension[];
|
|
17
|
+
getAllRuntimeExtensions(): RuntimeExtension[];
|
|
18
|
+
getAllModelExtensions(): ModelExtension[];
|
|
19
|
+
getAllCredentialExtensions(): CredentialExtension[];
|
|
20
|
+
getCredentialType(type: string): CredentialTypeDefinition | undefined;
|
|
21
|
+
getAllCredentialTypes(): CredentialTypeDefinition[];
|
|
22
|
+
unregister(type: ExtensionType, name: string): Promise<void>;
|
|
23
|
+
shutdown(): Promise<void>;
|
|
24
|
+
list(): Array<{
|
|
25
|
+
type: ExtensionType;
|
|
26
|
+
name: string;
|
|
27
|
+
version: string;
|
|
28
|
+
description: string;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export declare const globalRegistry: ExtensionRegistry;
|
|
32
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/extensions/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,iBAAiB,CAAC,CAAwD;gBAEtE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;IAQ/E,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCnD,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI1E,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,EAAE;IAIrD,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAInE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIrE,uBAAuB,IAAI,gBAAgB,EAAE;IAI7C,yBAAyB,IAAI,kBAAkB,EAAE;IAIjD,uBAAuB,IAAI,gBAAgB,EAAE;IAI7C,qBAAqB,IAAI,cAAc,EAAE;IAIzC,0BAA0B,IAAI,mBAAmB,EAAE;IAInD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAIrE,qBAAqB,IAAI,wBAAwB,EAAE;IAI7C,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAe/B,IAAI,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAgB3F;AAGD,eAAO,MAAM,cAAc,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export class ExtensionRegistry {
|
|
2
|
+
extensions = new Map();
|
|
3
|
+
credentialTypes = new Map();
|
|
4
|
+
credentialChecker;
|
|
5
|
+
constructor(credentialChecker) {
|
|
6
|
+
this.credentialChecker = credentialChecker;
|
|
7
|
+
// Initialize maps for each extension type
|
|
8
|
+
for (const type of ["webhook", "telemetry", "runtime", "model", "credential"]) {
|
|
9
|
+
this.extensions.set(type, new Map());
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async register(extension) {
|
|
13
|
+
const { type, name } = extension.metadata;
|
|
14
|
+
// Validate required credentials if checker provided
|
|
15
|
+
if (this.credentialChecker && extension.metadata.requiredCredentials) {
|
|
16
|
+
for (const cred of extension.metadata.requiredCredentials) {
|
|
17
|
+
if (!cred.optional && !(await this.credentialChecker(cred.type, cred.instance))) {
|
|
18
|
+
throw new Error(`Missing required credential: ${cred.type}${cred.instance ? `:${cred.instance}` : ""}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Register any credential types this extension provides
|
|
23
|
+
if (extension.metadata.providesCredentialTypes) {
|
|
24
|
+
for (const credType of extension.metadata.providesCredentialTypes) {
|
|
25
|
+
this.credentialTypes.set(credType.type, credType);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Check for duplicate registrations
|
|
29
|
+
const typeMap = this.extensions.get(type);
|
|
30
|
+
if (!typeMap) {
|
|
31
|
+
throw new Error(`Invalid extension type: ${type}`);
|
|
32
|
+
}
|
|
33
|
+
if (typeMap.has(name)) {
|
|
34
|
+
throw new Error(`Extension ${type}/${name} already registered`);
|
|
35
|
+
}
|
|
36
|
+
// Register the extension
|
|
37
|
+
typeMap.set(name, extension);
|
|
38
|
+
// Initialize the extension
|
|
39
|
+
await extension.init();
|
|
40
|
+
}
|
|
41
|
+
get(type, name) {
|
|
42
|
+
return this.extensions.get(type)?.get(name);
|
|
43
|
+
}
|
|
44
|
+
getAll(type) {
|
|
45
|
+
return Array.from(this.extensions.get(type)?.values() || []);
|
|
46
|
+
}
|
|
47
|
+
getWebhookExtension(name) {
|
|
48
|
+
return this.get("webhook", name);
|
|
49
|
+
}
|
|
50
|
+
getTelemetryExtension(name) {
|
|
51
|
+
return this.get("telemetry", name);
|
|
52
|
+
}
|
|
53
|
+
getRuntimeExtension(name) {
|
|
54
|
+
return this.get("runtime", name);
|
|
55
|
+
}
|
|
56
|
+
getModelExtension(name) {
|
|
57
|
+
return this.get("model", name);
|
|
58
|
+
}
|
|
59
|
+
getCredentialExtension(name) {
|
|
60
|
+
return this.get("credential", name);
|
|
61
|
+
}
|
|
62
|
+
getAllWebhookExtensions() {
|
|
63
|
+
return this.getAll("webhook");
|
|
64
|
+
}
|
|
65
|
+
getAllTelemetryExtensions() {
|
|
66
|
+
return this.getAll("telemetry");
|
|
67
|
+
}
|
|
68
|
+
getAllRuntimeExtensions() {
|
|
69
|
+
return this.getAll("runtime");
|
|
70
|
+
}
|
|
71
|
+
getAllModelExtensions() {
|
|
72
|
+
return this.getAll("model");
|
|
73
|
+
}
|
|
74
|
+
getAllCredentialExtensions() {
|
|
75
|
+
return this.getAll("credential");
|
|
76
|
+
}
|
|
77
|
+
getCredentialType(type) {
|
|
78
|
+
return this.credentialTypes.get(type);
|
|
79
|
+
}
|
|
80
|
+
getAllCredentialTypes() {
|
|
81
|
+
return Array.from(this.credentialTypes.values());
|
|
82
|
+
}
|
|
83
|
+
async unregister(type, name) {
|
|
84
|
+
const typeMap = this.extensions.get(type);
|
|
85
|
+
if (!typeMap) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const extension = typeMap.get(name);
|
|
89
|
+
if (extension) {
|
|
90
|
+
await extension.shutdown();
|
|
91
|
+
typeMap.delete(name);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async shutdown() {
|
|
95
|
+
const shutdownPromises = [];
|
|
96
|
+
for (const typeMap of this.extensions.values()) {
|
|
97
|
+
for (const extension of typeMap.values()) {
|
|
98
|
+
shutdownPromises.push(extension.shutdown().catch(error => {
|
|
99
|
+
console.warn(`Error shutting down extension ${extension.metadata.name}:`, error);
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
await Promise.all(shutdownPromises);
|
|
104
|
+
}
|
|
105
|
+
// List all registered extensions
|
|
106
|
+
list() {
|
|
107
|
+
const result = [];
|
|
108
|
+
for (const [type, typeMap] of this.extensions.entries()) {
|
|
109
|
+
for (const extension of typeMap.values()) {
|
|
110
|
+
result.push({
|
|
111
|
+
type: type,
|
|
112
|
+
name: extension.metadata.name,
|
|
113
|
+
version: extension.metadata.version,
|
|
114
|
+
description: extension.metadata.description
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Global extension registry instance
|
|
122
|
+
export const globalRegistry = new ExtensionRegistry();
|
|
123
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/extensions/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { WebhookProvider } from "../webhooks/types.js";
|
|
2
|
+
import type { TelemetryProvider } from "../telemetry/types.js";
|
|
3
|
+
import type { ContainerRuntime } from "../docker/runtime.js";
|
|
4
|
+
export type ExtensionType = "webhook" | "telemetry" | "runtime" | "model" | "credential";
|
|
5
|
+
export interface CredentialRequirement {
|
|
6
|
+
type: string;
|
|
7
|
+
instance?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
optional?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface CredentialTypeDefinition {
|
|
12
|
+
type: string;
|
|
13
|
+
fields: string[];
|
|
14
|
+
validation?: (values: Record<string, string>) => Promise<void>;
|
|
15
|
+
envMapping?: Record<string, string>;
|
|
16
|
+
description?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ExtensionMetadata {
|
|
19
|
+
name: string;
|
|
20
|
+
version: string;
|
|
21
|
+
description: string;
|
|
22
|
+
type: ExtensionType;
|
|
23
|
+
requiredCredentials?: CredentialRequirement[];
|
|
24
|
+
providesCredentialTypes?: CredentialTypeDefinition[];
|
|
25
|
+
}
|
|
26
|
+
export interface Extension {
|
|
27
|
+
metadata: ExtensionMetadata;
|
|
28
|
+
init(config?: ExtensionConfig): Promise<void>;
|
|
29
|
+
shutdown(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
export interface ExtensionConfig {
|
|
32
|
+
[key: string]: any;
|
|
33
|
+
}
|
|
34
|
+
export interface WebhookExtension extends Extension {
|
|
35
|
+
metadata: ExtensionMetadata & {
|
|
36
|
+
type: "webhook";
|
|
37
|
+
};
|
|
38
|
+
provider: WebhookProvider;
|
|
39
|
+
}
|
|
40
|
+
export interface TelemetryExtension extends Extension {
|
|
41
|
+
metadata: ExtensionMetadata & {
|
|
42
|
+
type: "telemetry";
|
|
43
|
+
};
|
|
44
|
+
provider: TelemetryProvider;
|
|
45
|
+
}
|
|
46
|
+
export interface RuntimeExtension extends Extension {
|
|
47
|
+
metadata: ExtensionMetadata & {
|
|
48
|
+
type: "runtime";
|
|
49
|
+
};
|
|
50
|
+
provider: ContainerRuntime;
|
|
51
|
+
}
|
|
52
|
+
import type { ModelProvider } from "../models/types.js";
|
|
53
|
+
export type { ModelProvider } from "../models/types.js";
|
|
54
|
+
export interface ModelExtension extends Extension {
|
|
55
|
+
metadata: ExtensionMetadata & {
|
|
56
|
+
type: "model";
|
|
57
|
+
};
|
|
58
|
+
provider: ModelProvider;
|
|
59
|
+
}
|
|
60
|
+
export interface CredentialProvider {
|
|
61
|
+
name: string;
|
|
62
|
+
list(type: string): Promise<string[]>;
|
|
63
|
+
get(type: string, instance?: string): Promise<Record<string, string> | null>;
|
|
64
|
+
store(type: string, instance: string, values: Record<string, string>): Promise<void>;
|
|
65
|
+
remove(type: string, instance: string): Promise<void>;
|
|
66
|
+
isAvailable(): Promise<boolean>;
|
|
67
|
+
}
|
|
68
|
+
export interface CredentialExtension extends Extension {
|
|
69
|
+
metadata: ExtensionMetadata & {
|
|
70
|
+
type: "credential";
|
|
71
|
+
};
|
|
72
|
+
provider: CredentialProvider;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":""}
|
package/dist/gateway/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { Server } from "http";
|
|
2
|
-
import { type CallDispatcher } from "
|
|
3
|
-
import { type SignalContext } from "
|
|
4
|
-
import { LockStore } from "
|
|
5
|
-
import { CallStore } from "
|
|
6
|
-
import { ContainerRegistry } from "
|
|
7
|
-
import type { ContainerRegistration } from "
|
|
2
|
+
import { type CallDispatcher } from "../execution/routes/calls.js";
|
|
3
|
+
import { type SignalContext } from "../execution/routes/signals.js";
|
|
4
|
+
import { LockStore } from "../execution/lock-store.js";
|
|
5
|
+
import { CallStore } from "../execution/call-store.js";
|
|
6
|
+
import { ContainerRegistry } from "../execution/container-registry.js";
|
|
7
|
+
import type { ContainerRegistration } from "../execution/types.js";
|
|
8
8
|
import type { StateStore } from "../shared/state-store.js";
|
|
9
9
|
import type { WebhookRegistry } from "../webhooks/registry.js";
|
|
10
10
|
import type { Logger } from "../shared/logger.js";
|
|
11
11
|
import type { StatusTracker } from "../tui/status-tracker.js";
|
|
12
12
|
import type { WebhookSourceConfig } from "../shared/config.js";
|
|
13
|
-
import type { ControlRoutesDeps } from "
|
|
13
|
+
import type { ControlRoutesDeps } from "../control/routes/control.js";
|
|
14
14
|
import type { SchedulerEventBus } from "../scheduler/events.js";
|
|
15
15
|
import type { StatsStore } from "../stats/store.js";
|
|
16
|
-
export type { ContainerRegistration } from "
|
|
16
|
+
export type { ContainerRegistration } from "../execution/types.js";
|
|
17
17
|
export interface GatewayOptions {
|
|
18
18
|
port: number;
|
|
19
19
|
hostname?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGvF,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wDAAwD;IACxD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA0K/E"}
|
package/dist/gateway/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
2
|
import { serve } from "@hono/node-server";
|
|
3
|
-
import { registerShutdownRoute } from "
|
|
4
|
-
import { registerLockRoutes } from "
|
|
5
|
-
import { registerCallRoutes } from "
|
|
6
|
-
import { registerWebhookRoutes } from "
|
|
7
|
-
import { registerDashboardRoutes, registerLoginRoutes } from "
|
|
8
|
-
import { registerSignalRoutes } from "
|
|
9
|
-
import { LockStore } from "
|
|
10
|
-
import { CallStore } from "
|
|
11
|
-
import { ContainerRegistry } from "
|
|
12
|
-
import { SessionStore } from "
|
|
3
|
+
import { registerShutdownRoute } from "../execution/routes/shutdown.js";
|
|
4
|
+
import { registerLockRoutes } from "../execution/routes/locks.js";
|
|
5
|
+
import { registerCallRoutes } from "../execution/routes/calls.js";
|
|
6
|
+
import { registerWebhookRoutes } from "../events/routes/webhooks.js";
|
|
7
|
+
import { registerDashboardRoutes, registerLoginRoutes } from "../control/routes/dashboard.js";
|
|
8
|
+
import { registerSignalRoutes } from "../execution/routes/signals.js";
|
|
9
|
+
import { LockStore } from "../execution/lock-store.js";
|
|
10
|
+
import { CallStore } from "../execution/call-store.js";
|
|
11
|
+
import { ContainerRegistry } from "../execution/container-registry.js";
|
|
12
|
+
import { SessionStore } from "../control/session-store.js";
|
|
13
13
|
import { withSpan, getTelemetry } from "../telemetry/index.js";
|
|
14
14
|
import { SpanKind } from "@opentelemetry/api";
|
|
15
|
-
import { authMiddleware } from "
|
|
15
|
+
import { authMiddleware } from "../control/auth.js";
|
|
16
16
|
export async function startGateway(opts) {
|
|
17
17
|
const { port, logger, killContainer, webhookRegistry, webhookSecrets, statusTracker, projectPath, webUI, lockTimeout, signalContext, stateStore } = opts;
|
|
18
18
|
const app = new Hono();
|
|
@@ -80,6 +80,7 @@ export async function startGateway(opts) {
|
|
|
80
80
|
app.use("/locks/status", auth);
|
|
81
81
|
app.use("/api/logs/*", auth);
|
|
82
82
|
app.use("/api/stats/*", auth);
|
|
83
|
+
app.use("/api/webhooks/*", auth);
|
|
83
84
|
// Always register login/logout so the auth redirect has a target
|
|
84
85
|
registerLoginRoutes(app, opts.apiKey, sessionStore, opts.hostname);
|
|
85
86
|
}
|
|
@@ -89,7 +90,7 @@ export async function startGateway(opts) {
|
|
|
89
90
|
registerSignalRoutes(app, containerRegistry, logger, statusTracker, signalContext, opts.events);
|
|
90
91
|
// Webhook routes
|
|
91
92
|
if (webhookRegistry) {
|
|
92
|
-
registerWebhookRoutes(app, webhookRegistry, webhookSecrets || {}, opts.webhookConfigs || {}, logger, statusTracker);
|
|
93
|
+
registerWebhookRoutes(app, webhookRegistry, webhookSecrets || {}, opts.webhookConfigs || {}, logger, statusTracker, opts.statsStore);
|
|
93
94
|
}
|
|
94
95
|
// Dashboard routes (login/logout are unprotected; dashboard pages are behind authMiddleware above)
|
|
95
96
|
if (webUI && statusTracker) {
|
|
@@ -103,7 +104,7 @@ export async function startGateway(opts) {
|
|
|
103
104
|
}
|
|
104
105
|
// Log API routes — only register if auth is configured for security
|
|
105
106
|
if (projectPath && opts.apiKey) {
|
|
106
|
-
const { registerLogRoutes } = await import("
|
|
107
|
+
const { registerLogRoutes } = await import("../control/routes/logs.js");
|
|
107
108
|
registerLogRoutes(app, projectPath);
|
|
108
109
|
}
|
|
109
110
|
else if (projectPath && !opts.apiKey) {
|
|
@@ -111,12 +112,12 @@ export async function startGateway(opts) {
|
|
|
111
112
|
}
|
|
112
113
|
// Stats API routes — only register if auth is configured for security
|
|
113
114
|
if (opts.apiKey) {
|
|
114
|
-
const { registerStatsRoutes } = await import("
|
|
115
|
+
const { registerStatsRoutes } = await import("../control/routes/stats.js");
|
|
115
116
|
registerStatsRoutes(app, opts.statsStore);
|
|
116
117
|
}
|
|
117
118
|
// Control routes (for kill, pause, resume commands)
|
|
118
119
|
if (opts.controlDeps) {
|
|
119
|
-
const { registerControlRoutes } = await import("
|
|
120
|
+
const { registerControlRoutes } = await import("../control/routes/control.js");
|
|
120
121
|
registerControlRoutes(app, opts.controlDeps);
|
|
121
122
|
}
|
|
122
123
|
const server = serve({
|