@action-llama/action-llama 0.15.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 +2 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +128 -14
- 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/commands/webhook.d.ts +11 -0
- package/dist/cli/commands/webhook.d.ts.map +1 -0
- package/dist/cli/commands/webhook.js +271 -0
- package/dist/cli/commands/webhook.js.map +1 -0
- package/dist/cli/main.js +22 -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/local-runtime.d.ts.map +1 -1
- package/dist/docker/local-runtime.js +36 -7
- package/dist/docker/local-runtime.js.map +1 -1
- 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/docker/runtime.d.ts +4 -0
- package/dist/docker/runtime.d.ts.map +1 -1
- 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 +50 -0
- package/dist/events/event-queue-unified.d.ts.map +1 -0
- package/dist/events/event-queue-unified.js +280 -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 +3 -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 +9 -6
- package/dist/events/webhook-setup.d.ts.map +1 -0
- package/dist/{scheduler → events}/webhook-setup.js +16 -26
- 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 +6 -4
- package/dist/execution/execution.d.ts.map +1 -0
- package/dist/{scheduler → execution}/execution.js +49 -8
- 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/execution/lifecycle/agent-lifecycle.d.ts +114 -0
- package/dist/execution/lifecycle/agent-lifecycle.d.ts.map +1 -0
- package/dist/execution/lifecycle/agent-lifecycle.js +236 -0
- package/dist/execution/lifecycle/agent-lifecycle.js.map +1 -0
- package/dist/execution/lifecycle/index.d.ts +60 -0
- package/dist/execution/lifecycle/index.d.ts.map +1 -0
- package/dist/execution/lifecycle/index.js +103 -0
- package/dist/execution/lifecycle/index.js.map +1 -0
- package/dist/execution/lifecycle/instance-lifecycle.d.ts +88 -0
- package/dist/execution/lifecycle/instance-lifecycle.d.ts.map +1 -0
- package/dist/execution/lifecycle/instance-lifecycle.js +142 -0
- package/dist/execution/lifecycle/instance-lifecycle.js.map +1 -0
- 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 +10 -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 +35 -5
- package/dist/remote/push.js.map +1 -1
- package/dist/scheduler/gateway-setup.d.ts +2 -1
- package/dist/scheduler/gateway-setup.d.ts.map +1 -1
- package/dist/scheduler/gateway-setup.js +7 -6
- 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 +62 -92
- 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 +2 -0
- 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 +12 -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 +8 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +8 -0
- 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/persistence/adapters/state-store.d.ts +24 -0
- package/dist/shared/persistence/adapters/state-store.d.ts.map +1 -0
- package/dist/shared/persistence/adapters/state-store.js +32 -0
- package/dist/shared/persistence/adapters/state-store.js.map +1 -0
- package/dist/shared/persistence/adapters/stats-store.d.ts +49 -0
- package/dist/shared/persistence/adapters/stats-store.d.ts.map +1 -0
- package/dist/shared/persistence/adapters/stats-store.js +213 -0
- package/dist/shared/persistence/adapters/stats-store.js.map +1 -0
- package/dist/shared/persistence/backends/memory.d.ts +39 -0
- package/dist/shared/persistence/backends/memory.d.ts.map +1 -0
- package/dist/shared/persistence/backends/memory.js +214 -0
- package/dist/shared/persistence/backends/memory.js.map +1 -0
- package/dist/shared/persistence/backends/sqlite.d.ts +38 -0
- package/dist/shared/persistence/backends/sqlite.d.ts.map +1 -0
- package/dist/shared/persistence/backends/sqlite.js +250 -0
- package/dist/shared/persistence/backends/sqlite.js.map +1 -0
- package/dist/shared/persistence/event-store.d.ts +77 -0
- package/dist/shared/persistence/event-store.d.ts.map +1 -0
- package/dist/shared/persistence/event-store.js +139 -0
- package/dist/shared/persistence/event-store.js.map +1 -0
- package/dist/shared/persistence/index.d.ts +119 -0
- package/dist/shared/persistence/index.d.ts.map +1 -0
- package/dist/shared/persistence/index.js +93 -0
- package/dist/shared/persistence/index.js.map +1 -0
- package/dist/shared/persistence/migration.d.ts +47 -0
- package/dist/shared/persistence/migration.d.ts.map +1 -0
- package/dist/shared/persistence/migration.js +297 -0
- package/dist/shared/persistence/migration.js.map +1 -0
- package/dist/shared/validation.d.ts +54 -0
- package/dist/shared/validation.d.ts.map +1 -0
- package/dist/shared/validation.js +231 -0
- package/dist/shared/validation.js.map +1 -0
- 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/event-store.d.ts +37 -0
- package/dist/stats/event-store.d.ts.map +1 -0
- package/dist/stats/event-store.js +366 -0
- package/dist/stats/event-store.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 +19 -0
- package/dist/tui/status-tracker.d.ts.map +1 -1
- package/dist/tui/status-tracker.js +96 -1
- package/dist/tui/status-tracker.js.map +1 -1
- package/dist/webhooks/providers/github.d.ts +2 -1
- package/dist/webhooks/providers/github.d.ts.map +1 -1
- package/dist/webhooks/providers/github.js +5 -2
- 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/providers/linear.d.ts +1 -1
- package/dist/webhooks/providers/linear.d.ts.map +1 -1
- package/dist/webhooks/providers/linear.js +2 -2
- package/dist/webhooks/providers/linear.js.map +1 -1
- package/dist/webhooks/providers/mintlify.d.ts +1 -1
- package/dist/webhooks/providers/mintlify.d.ts.map +1 -1
- package/dist/webhooks/providers/mintlify.js +2 -2
- package/dist/webhooks/providers/mintlify.js.map +1 -1
- package/dist/webhooks/providers/sentry.d.ts +1 -1
- package/dist/webhooks/providers/sentry.d.ts.map +1 -1
- package/dist/webhooks/providers/sentry.js +2 -2
- package/dist/webhooks/providers/sentry.js.map +1 -1
- package/dist/webhooks/providers/test.d.ts +1 -1
- package/dist/webhooks/providers/test.d.ts.map +1 -1
- package/dist/webhooks/providers/test.js +1 -1
- package/dist/webhooks/providers/test.js.map +1 -1
- package/dist/webhooks/registry.d.ts +8 -2
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/registry.js +159 -3
- package/dist/webhooks/registry.js.map +1 -1
- package/dist/webhooks/types.d.ts +30 -1
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/webhooks/validation.d.ts +7 -6
- package/dist/webhooks/validation.d.ts.map +1 -1
- package/dist/webhooks/validation.js +11 -9
- package/dist/webhooks/validation.js.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 -64
- 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.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.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/{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":"registry.d.ts","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,cAAc,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AACrI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAKjD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIxD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMjD,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;KAAE,EACjF,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc;IA6GjB,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,YAAY;IAqHf,OAAO,CAAC,gBAAgB;CA2DzB"}
|
|
@@ -21,16 +21,18 @@ export class WebhookRegistry {
|
|
|
21
21
|
this.bindings = this.bindings.filter(b => b.agentName !== agentName);
|
|
22
22
|
return before - this.bindings.length;
|
|
23
23
|
}
|
|
24
|
-
dispatch(source, headers, rawBody,
|
|
24
|
+
dispatch(source, headers, rawBody, webhookConfig, receiptId) {
|
|
25
25
|
const provider = this.providers.get(source);
|
|
26
26
|
if (!provider) {
|
|
27
27
|
this.logger.warn({ source }, "dispatch: no provider for source");
|
|
28
28
|
return { ok: false, matched: 0, skipped: 0, errors: [`unknown source: ${source}`] };
|
|
29
29
|
}
|
|
30
|
+
const { secrets } = webhookConfig;
|
|
31
|
+
const allowUnsigned = webhookConfig.config?.allowUnsigned ?? false;
|
|
30
32
|
// Validate request signature — returns the matched instance name or null
|
|
31
|
-
const matchedSource = provider.validateRequest(headers, rawBody, secrets);
|
|
33
|
+
const matchedSource = provider.validateRequest(headers, rawBody, secrets, allowUnsigned);
|
|
32
34
|
if (matchedSource === null) {
|
|
33
|
-
this.logger.warn({ source, secretCount: secrets ? Object.keys(secrets).length : 0 }, "webhook signature validation failed");
|
|
35
|
+
this.logger.warn({ source, secretCount: secrets ? Object.keys(secrets).length : 0, allowUnsigned }, "webhook signature validation failed");
|
|
34
36
|
return { ok: false, matched: 0, skipped: 0, errors: ["signature validation failed"] };
|
|
35
37
|
}
|
|
36
38
|
// Parse the event — handle both JSON and form-encoded payloads
|
|
@@ -59,6 +61,10 @@ export class WebhookRegistry {
|
|
|
59
61
|
this.logger.warn({ source }, "webhook event could not be parsed (parseEvent returned null)");
|
|
60
62
|
return { ok: true, matched: 0, skipped: 0, matchedSource };
|
|
61
63
|
}
|
|
64
|
+
// Attach receiptId to context so downstream consumers can link runs to receipts
|
|
65
|
+
if (receiptId) {
|
|
66
|
+
context.receiptId = receiptId;
|
|
67
|
+
}
|
|
62
68
|
this.logger.debug({ source, event: context.event, action: context.action, repo: context.repo, sender: context.sender, matchedSource }, "webhook event parsed");
|
|
63
69
|
// Match against bindings and trigger
|
|
64
70
|
let matched = 0;
|
|
@@ -96,5 +102,155 @@ export class WebhookRegistry {
|
|
|
96
102
|
}
|
|
97
103
|
return { ok: true, matched, skipped, matchedSource };
|
|
98
104
|
}
|
|
105
|
+
dryRunDispatch(source, headers, rawBody, secrets) {
|
|
106
|
+
const provider = this.providers.get(source);
|
|
107
|
+
if (!provider) {
|
|
108
|
+
return {
|
|
109
|
+
ok: false,
|
|
110
|
+
context: null,
|
|
111
|
+
validationResult: null,
|
|
112
|
+
parseError: `unknown source: ${source}`,
|
|
113
|
+
bindings: []
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// Validate request signature — returns the matched instance name or null
|
|
117
|
+
const matchedSource = provider.validateRequest(headers, rawBody, secrets);
|
|
118
|
+
if (matchedSource === null) {
|
|
119
|
+
return {
|
|
120
|
+
ok: false,
|
|
121
|
+
context: null,
|
|
122
|
+
validationResult: "signature validation failed",
|
|
123
|
+
bindings: []
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
// Parse the event — handle both JSON and form-encoded payloads
|
|
127
|
+
let body;
|
|
128
|
+
const contentType = headers["content-type"] || "";
|
|
129
|
+
try {
|
|
130
|
+
if (contentType.includes("application/x-www-form-urlencoded")) {
|
|
131
|
+
const params = new URLSearchParams(rawBody);
|
|
132
|
+
const payload = params.get("payload");
|
|
133
|
+
if (!payload) {
|
|
134
|
+
return {
|
|
135
|
+
ok: false,
|
|
136
|
+
context: null,
|
|
137
|
+
validationResult: matchedSource,
|
|
138
|
+
parseError: "missing payload in form body",
|
|
139
|
+
bindings: []
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
body = JSON.parse(payload);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
body = JSON.parse(rawBody);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
return {
|
|
150
|
+
ok: false,
|
|
151
|
+
context: null,
|
|
152
|
+
validationResult: matchedSource,
|
|
153
|
+
parseError: `invalid JSON body: ${err.message}`,
|
|
154
|
+
bindings: []
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
const context = provider.parseEvent(headers, body);
|
|
158
|
+
if (!context) {
|
|
159
|
+
return {
|
|
160
|
+
ok: true,
|
|
161
|
+
context: null,
|
|
162
|
+
validationResult: matchedSource,
|
|
163
|
+
parseError: "webhook event could not be parsed (parseEvent returned null)",
|
|
164
|
+
bindings: []
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
// Check all bindings and collect detailed match information
|
|
168
|
+
const bindings = [];
|
|
169
|
+
for (const binding of this.bindings) {
|
|
170
|
+
const result = {
|
|
171
|
+
agentName: binding.agentName,
|
|
172
|
+
matched: false,
|
|
173
|
+
reasons: []
|
|
174
|
+
};
|
|
175
|
+
// Check if binding is for this provider type
|
|
176
|
+
if (binding.type !== source) {
|
|
177
|
+
result.reasons.push(`Type mismatch: binding expects '${binding.type}', webhook is '${source}'`);
|
|
178
|
+
bindings.push(result);
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
// Check if binding source matches the validated credential instance
|
|
182
|
+
if (binding.source && binding.source !== matchedSource) {
|
|
183
|
+
result.reasons.push(`Source mismatch: binding expects '${binding.source}', webhook matched '${matchedSource}'`);
|
|
184
|
+
bindings.push(result);
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
// Check filter match with detailed breakdown
|
|
188
|
+
if (binding.filter) {
|
|
189
|
+
const filterMatches = provider.matchesFilter(context, binding.filter);
|
|
190
|
+
// Create detailed filter breakdown
|
|
191
|
+
result.filterDetails = this.getFilterDetails(context, binding.filter, provider);
|
|
192
|
+
if (!filterMatches) {
|
|
193
|
+
result.reasons.push("Filter conditions not met");
|
|
194
|
+
bindings.push(result);
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// If we get here, the binding matches
|
|
199
|
+
result.matched = true;
|
|
200
|
+
result.reasons.push("All conditions satisfied");
|
|
201
|
+
bindings.push(result);
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
ok: true,
|
|
205
|
+
context,
|
|
206
|
+
validationResult: matchedSource,
|
|
207
|
+
bindings,
|
|
208
|
+
matchedSource
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
getFilterDetails(context, filter, provider) {
|
|
212
|
+
const details = {
|
|
213
|
+
type: true, // Provider type already matched at this point
|
|
214
|
+
source: true // Source already matched at this point
|
|
215
|
+
};
|
|
216
|
+
// Check specific filter conditions based on the filter properties
|
|
217
|
+
if ('events' in filter && filter.events) {
|
|
218
|
+
details.event = filter.events.includes(context.event);
|
|
219
|
+
}
|
|
220
|
+
if ('actions' in filter && filter.actions) {
|
|
221
|
+
details.action = context.action ? filter.actions.includes(context.action) : false;
|
|
222
|
+
}
|
|
223
|
+
if ('repos' in filter && filter.repos) {
|
|
224
|
+
details.repo = filter.repos.includes(context.repo);
|
|
225
|
+
}
|
|
226
|
+
if ('org' in filter && filter.org) {
|
|
227
|
+
details.org = context.repo.startsWith(`${filter.org}/`);
|
|
228
|
+
}
|
|
229
|
+
if ('orgs' in filter && filter.orgs) {
|
|
230
|
+
details.org = filter.orgs.some((org) => context.repo.startsWith(`${org}/`));
|
|
231
|
+
}
|
|
232
|
+
if ('organizations' in filter && filter.organizations) {
|
|
233
|
+
details.org = filter.organizations.some((org) => context.repo.startsWith(`${org}/`));
|
|
234
|
+
}
|
|
235
|
+
if ('labels' in filter && filter.labels && context.labels) {
|
|
236
|
+
details.label = filter.labels.some((label) => context.labels?.includes(label));
|
|
237
|
+
}
|
|
238
|
+
if ('assignee' in filter && filter.assignee) {
|
|
239
|
+
details.assignee = context.assignee === filter.assignee;
|
|
240
|
+
}
|
|
241
|
+
if ('author' in filter && filter.author) {
|
|
242
|
+
details.author = context.author === filter.author;
|
|
243
|
+
}
|
|
244
|
+
if ('branches' in filter && filter.branches) {
|
|
245
|
+
details.branch = context.branch ? filter.branches.includes(context.branch) : false;
|
|
246
|
+
}
|
|
247
|
+
if ('conclusions' in filter && filter.conclusions) {
|
|
248
|
+
details.conclusion = context.conclusion ? filter.conclusions.includes(context.conclusion) : false;
|
|
249
|
+
}
|
|
250
|
+
if ('resources' in filter && filter.resources) {
|
|
251
|
+
details.resource = filter.resources.some((resource) => context.event?.includes(resource) || context.action?.includes(resource));
|
|
252
|
+
}
|
|
253
|
+
return details;
|
|
254
|
+
}
|
|
99
255
|
}
|
|
100
256
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,eAAe;IAClB,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,QAAQ,GAAqB,EAAE,CAAC;IAChC,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,gBAAgB,CAAC,QAAyB;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;IAC/E,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EACxE,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB,CAAC,SAAiB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACrE,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,QAAQ,CACN,MAAc,EACd,OAA2C,EAC3C,OAAe,EACf,OAAgC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,kCAAkC,CAAC,CAAC;YACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,mBAAmB,MAAM,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC;QAED,yEAAyE;QACzE,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAClE,qCAAqC,CACtC,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,6BAA6B,CAAC,EAAE,CAAC;QACxF,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAS,CAAC;QACd,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,IAAI,WAAW,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBAC9D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8CAA8C,CAAC,CAAC;oBAC7E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBACzF,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;YAC7H,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,MAAM,EAAE,EACV,8DAA8D,CAC/D,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,EACnH,sBAAsB,CACvB,CAAC;QAEF,qCAAqC;QACrC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAEzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAExF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,yCAAyC;YACzC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACtC,iFAAiF;YACjF,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa;gBAAE,SAAS;YAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM;gBAC5B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;gBACjD,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EACrF,uBAAuB,CACxB,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,EAAE,CAAC;wBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAC1E,yBAAyB,CAC1B,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;wBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAClD,sDAAsD,CACvD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,EAAE,CAAC;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,EACjC,iCAAiC,CAClC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACvD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/webhooks/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/webhooks/types.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface WebhookContext {
|
|
|
15
15
|
comment?: string;
|
|
16
16
|
sender: string;
|
|
17
17
|
timestamp: string;
|
|
18
|
+
receiptId?: string;
|
|
18
19
|
}
|
|
19
20
|
export interface GitHubWebhookFilter {
|
|
20
21
|
repos?: string[];
|
|
@@ -62,9 +63,10 @@ export interface WebhookTrigger {
|
|
|
62
63
|
}
|
|
63
64
|
export interface WebhookProvider {
|
|
64
65
|
source: string;
|
|
65
|
-
validateRequest(headers: Record<string, string | undefined>, rawBody: string, secrets?: Record<string, string
|
|
66
|
+
validateRequest(headers: Record<string, string | undefined>, rawBody: string, secrets?: Record<string, string>, allowUnsigned?: boolean): string | null;
|
|
66
67
|
parseEvent(headers: Record<string, string | undefined>, body: any): WebhookContext | null;
|
|
67
68
|
matchesFilter(context: WebhookContext, filter: WebhookFilter): boolean;
|
|
69
|
+
getDeliveryId?(headers: Record<string, string | undefined>): string | null;
|
|
68
70
|
}
|
|
69
71
|
export interface WebhookBinding {
|
|
70
72
|
agentName: string;
|
|
@@ -80,4 +82,31 @@ export interface DispatchResult {
|
|
|
80
82
|
errors?: string[];
|
|
81
83
|
matchedSource?: string;
|
|
82
84
|
}
|
|
85
|
+
export interface DryRunBindingResult {
|
|
86
|
+
agentName: string;
|
|
87
|
+
matched: boolean;
|
|
88
|
+
reasons: string[];
|
|
89
|
+
filterDetails?: {
|
|
90
|
+
type: boolean;
|
|
91
|
+
source: boolean;
|
|
92
|
+
event?: boolean;
|
|
93
|
+
action?: boolean;
|
|
94
|
+
repo?: boolean;
|
|
95
|
+
org?: boolean;
|
|
96
|
+
label?: boolean;
|
|
97
|
+
assignee?: boolean;
|
|
98
|
+
author?: boolean;
|
|
99
|
+
branch?: boolean;
|
|
100
|
+
conclusion?: boolean;
|
|
101
|
+
resource?: boolean;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export interface DryRunResult {
|
|
105
|
+
ok: boolean;
|
|
106
|
+
context: WebhookContext | null;
|
|
107
|
+
validationResult: string | null;
|
|
108
|
+
parseError?: string;
|
|
109
|
+
bindings: DryRunBindingResult[];
|
|
110
|
+
matchedSource?: string;
|
|
111
|
+
}
|
|
83
112
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webhooks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,13 @@ export declare function truncateEventText(text: string | undefined | null, max?:
|
|
|
6
6
|
* Validate an HMAC-SHA256 webhook signature against one or more secrets.
|
|
7
7
|
*
|
|
8
8
|
* Returns the instance name of the matching secret, "_unsigned" if no secrets
|
|
9
|
-
* are configured
|
|
9
|
+
* are configured and allowUnsigned is true, or null if validation fails.
|
|
10
10
|
*
|
|
11
|
-
* @param rawBody
|
|
12
|
-
* @param signature
|
|
13
|
-
* @param secrets
|
|
14
|
-
* @param prefix
|
|
11
|
+
* @param rawBody - The raw request body string
|
|
12
|
+
* @param signature - The signature header value (e.g. "sha256=abc123" or just "abc123")
|
|
13
|
+
* @param secrets - Map of instance name → secret value
|
|
14
|
+
* @param prefix - Optional prefix the provider prepends to the HMAC hex (e.g. "sha256=" for GitHub)
|
|
15
|
+
* @param allowUnsigned - Allow unsigned webhooks when no secrets configured (default: false)
|
|
15
16
|
*/
|
|
16
|
-
export declare function validateHmacSignature(rawBody: string, signature: string | undefined, secrets: Record<string, string> | undefined, prefix?: string): string | null;
|
|
17
|
+
export declare function validateHmacSignature(rawBody: string, signature: string | undefined, secrets: Record<string, string> | undefined, prefix?: string, allowUnsigned?: boolean): string | null;
|
|
17
18
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,SAAkB,GAAG,MAAM,GAAG,SAAS,CAG5G;AAED
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,SAAkB,GAAG,MAAM,GAAG,SAAS,CAG5G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,MAAM,SAAK,EACX,aAAa,UAAQ,GACpB,MAAM,GAAG,IAAI,CAiBf"}
|
|
@@ -12,17 +12,19 @@ export function truncateEventText(text, max = MAX_TEXT_LENGTH) {
|
|
|
12
12
|
* Validate an HMAC-SHA256 webhook signature against one or more secrets.
|
|
13
13
|
*
|
|
14
14
|
* Returns the instance name of the matching secret, "_unsigned" if no secrets
|
|
15
|
-
* are configured
|
|
15
|
+
* are configured and allowUnsigned is true, or null if validation fails.
|
|
16
16
|
*
|
|
17
|
-
* @param rawBody
|
|
18
|
-
* @param signature
|
|
19
|
-
* @param secrets
|
|
20
|
-
* @param prefix
|
|
17
|
+
* @param rawBody - The raw request body string
|
|
18
|
+
* @param signature - The signature header value (e.g. "sha256=abc123" or just "abc123")
|
|
19
|
+
* @param secrets - Map of instance name → secret value
|
|
20
|
+
* @param prefix - Optional prefix the provider prepends to the HMAC hex (e.g. "sha256=" for GitHub)
|
|
21
|
+
* @param allowUnsigned - Allow unsigned webhooks when no secrets configured (default: false)
|
|
21
22
|
*/
|
|
22
|
-
export function validateHmacSignature(rawBody, signature, secrets, prefix = "") {
|
|
23
|
-
// If no secrets configured,
|
|
24
|
-
if (!secrets || Object.keys(secrets).length === 0)
|
|
25
|
-
return "_unsigned";
|
|
23
|
+
export function validateHmacSignature(rawBody, signature, secrets, prefix = "", allowUnsigned = false) {
|
|
24
|
+
// If no secrets configured, check allowUnsigned policy
|
|
25
|
+
if (!secrets || Object.keys(secrets).length === 0) {
|
|
26
|
+
return allowUnsigned ? "_unsigned" : null;
|
|
27
|
+
}
|
|
26
28
|
if (!signature)
|
|
27
29
|
return null;
|
|
28
30
|
// Try each configured secret — different orgs/repos may use different secrets
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAErD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA+B,EAAE,GAAG,GAAG,eAAe;IACtF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/webhooks/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAErD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA+B,EAAE,GAAG,GAAG,eAAe;IACtF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,SAA6B,EAC7B,OAA2C,EAC3C,MAAM,GAAG,EAAE,EACX,aAAa,GAAG,KAAK;IAErB,uDAAuD;IACvD,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,8EAA8E;IAC9E,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3G,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "events";
|
|
2
|
-
import type { GlobalConfig } from "../shared/config.js";
|
|
3
|
-
import type { Logger } from "../shared/logger.js";
|
|
4
|
-
import type { StatusTracker } from "../tui/status-tracker.js";
|
|
5
|
-
export interface FeedbackTriggerEvent {
|
|
6
|
-
agentName: string;
|
|
7
|
-
error: string;
|
|
8
|
-
context: string[];
|
|
9
|
-
timestamp: Date;
|
|
10
|
-
}
|
|
11
|
-
export declare class FeedbackMonitor extends EventEmitter {
|
|
12
|
-
private globalConfig;
|
|
13
|
-
private logger;
|
|
14
|
-
private statusTracker?;
|
|
15
|
-
private watchedAgents;
|
|
16
|
-
private intervalId?;
|
|
17
|
-
private readonly pollInterval;
|
|
18
|
-
constructor(globalConfig: GlobalConfig, logger: Logger, statusTracker?: StatusTracker);
|
|
19
|
-
/**
|
|
20
|
-
* Start monitoring all agents' log files for errors
|
|
21
|
-
*/
|
|
22
|
-
start(projectPath: string): void;
|
|
23
|
-
/**
|
|
24
|
-
* Stop monitoring
|
|
25
|
-
*/
|
|
26
|
-
stop(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Watch a specific agent's logs for errors
|
|
29
|
-
*/
|
|
30
|
-
watchAgent(agentName: string): void;
|
|
31
|
-
/**
|
|
32
|
-
* Stop watching a specific agent
|
|
33
|
-
*/
|
|
34
|
-
unwatchAgent(agentName: string): void;
|
|
35
|
-
/**
|
|
36
|
-
* Check if feedback is enabled for the given agent
|
|
37
|
-
*/
|
|
38
|
-
private isFeedbackEnabled;
|
|
39
|
-
/**
|
|
40
|
-
* Get the error patterns to search for
|
|
41
|
-
*/
|
|
42
|
-
private getErrorPatterns;
|
|
43
|
-
/**
|
|
44
|
-
* Get the number of context lines to include
|
|
45
|
-
*/
|
|
46
|
-
private getContextLines;
|
|
47
|
-
/**
|
|
48
|
-
* Poll log files for new content and check for errors
|
|
49
|
-
*/
|
|
50
|
-
private pollLogFiles;
|
|
51
|
-
/**
|
|
52
|
-
* Process log lines looking for error patterns
|
|
53
|
-
*/
|
|
54
|
-
private processLogLines;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=feedback-monitor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-monitor.d.ts","sourceRoot":"","sources":["../../src/agents/feedback-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAiE;IACtF,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;gBAEzB,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa;IAOrF;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAYhC;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOnC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmDpB;;OAEG;IACH,OAAO,CAAC,eAAe;CA+CxB"}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync, statSync } from "fs";
|
|
2
|
-
import { resolve } from "path";
|
|
3
|
-
import { EventEmitter } from "events";
|
|
4
|
-
import { logsDir } from "../shared/paths.js";
|
|
5
|
-
export class FeedbackMonitor extends EventEmitter {
|
|
6
|
-
globalConfig;
|
|
7
|
-
logger;
|
|
8
|
-
statusTracker;
|
|
9
|
-
watchedAgents = new Map();
|
|
10
|
-
intervalId;
|
|
11
|
-
pollInterval = 5000; // 5 seconds
|
|
12
|
-
constructor(globalConfig, logger, statusTracker) {
|
|
13
|
-
super();
|
|
14
|
-
this.globalConfig = globalConfig;
|
|
15
|
-
this.logger = logger;
|
|
16
|
-
this.statusTracker = statusTracker;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Start monitoring all agents' log files for errors
|
|
20
|
-
*/
|
|
21
|
-
start(projectPath) {
|
|
22
|
-
if (this.intervalId) {
|
|
23
|
-
this.logger.warn("FeedbackMonitor is already running");
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
this.logger.info("Starting feedback monitor");
|
|
27
|
-
this.intervalId = setInterval(() => {
|
|
28
|
-
this.pollLogFiles(projectPath);
|
|
29
|
-
}, this.pollInterval);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Stop monitoring
|
|
33
|
-
*/
|
|
34
|
-
stop() {
|
|
35
|
-
if (this.intervalId) {
|
|
36
|
-
clearInterval(this.intervalId);
|
|
37
|
-
this.intervalId = undefined;
|
|
38
|
-
this.logger.info("Stopped feedback monitor");
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Watch a specific agent's logs for errors
|
|
43
|
-
*/
|
|
44
|
-
watchAgent(agentName) {
|
|
45
|
-
if (!this.watchedAgents.has(agentName)) {
|
|
46
|
-
this.watchedAgents.set(agentName, { lastPosition: 0, lastSize: 0 });
|
|
47
|
-
this.logger.debug(`Now watching agent: ${agentName}`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Stop watching a specific agent
|
|
52
|
-
*/
|
|
53
|
-
unwatchAgent(agentName) {
|
|
54
|
-
if (this.watchedAgents.delete(agentName)) {
|
|
55
|
-
this.logger.debug(`Stopped watching agent: ${agentName}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Check if feedback is enabled for the given agent
|
|
60
|
-
*/
|
|
61
|
-
isFeedbackEnabled(agentConfig) {
|
|
62
|
-
// Check global feedback setting
|
|
63
|
-
if (!this.globalConfig.feedback?.enabled) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
// Check per-agent override
|
|
67
|
-
if (agentConfig.feedback?.enabled !== undefined) {
|
|
68
|
-
return agentConfig.feedback.enabled;
|
|
69
|
-
}
|
|
70
|
-
// Default to enabled if global feedback is enabled and no agent override
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Get the error patterns to search for
|
|
75
|
-
*/
|
|
76
|
-
getErrorPatterns() {
|
|
77
|
-
return this.globalConfig.feedback?.errorPatterns || ["error", "fail"];
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Get the number of context lines to include
|
|
81
|
-
*/
|
|
82
|
-
getContextLines() {
|
|
83
|
-
return this.globalConfig.feedback?.contextLines || 2;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Poll log files for new content and check for errors
|
|
87
|
-
*/
|
|
88
|
-
pollLogFiles(projectPath) {
|
|
89
|
-
const today = new Date().toISOString().slice(0, 10);
|
|
90
|
-
const logsDirPath = logsDir(projectPath);
|
|
91
|
-
for (const [agentName, watchState] of this.watchedAgents) {
|
|
92
|
-
const logFile = resolve(logsDirPath, `${agentName}-${today}.log`);
|
|
93
|
-
if (!existsSync(logFile)) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
try {
|
|
97
|
-
const stats = statSync(logFile);
|
|
98
|
-
const currentSize = stats.size;
|
|
99
|
-
// Only process if file has grown
|
|
100
|
-
if (currentSize <= watchState.lastSize) {
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
// Read new content
|
|
104
|
-
const content = readFileSync(logFile, "utf-8");
|
|
105
|
-
const lines = content.split("\n");
|
|
106
|
-
// Find starting line based on last position
|
|
107
|
-
let startLine = 0;
|
|
108
|
-
if (watchState.lastPosition > 0) {
|
|
109
|
-
// Find the line that contains data after our last position
|
|
110
|
-
let bytesRead = 0;
|
|
111
|
-
for (let i = 0; i < lines.length; i++) {
|
|
112
|
-
bytesRead += Buffer.byteLength(lines[i] + "\n", "utf-8");
|
|
113
|
-
if (bytesRead > watchState.lastPosition) {
|
|
114
|
-
startLine = i;
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
// Process new lines for errors
|
|
120
|
-
this.processLogLines(agentName, lines, startLine, projectPath);
|
|
121
|
-
// Update tracking state
|
|
122
|
-
watchState.lastPosition = currentSize;
|
|
123
|
-
watchState.lastSize = currentSize;
|
|
124
|
-
}
|
|
125
|
-
catch (err) {
|
|
126
|
-
this.logger.error({ err, agentName, logFile }, "Error reading log file for feedback monitoring");
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Process log lines looking for error patterns
|
|
132
|
-
*/
|
|
133
|
-
processLogLines(agentName, lines, startLine, projectPath) {
|
|
134
|
-
const errorPatterns = this.getErrorPatterns();
|
|
135
|
-
const contextLines = this.getContextLines();
|
|
136
|
-
for (let i = startLine; i < lines.length; i++) {
|
|
137
|
-
const line = lines[i];
|
|
138
|
-
if (!line.trim())
|
|
139
|
-
continue;
|
|
140
|
-
// Check if line matches any error pattern
|
|
141
|
-
const matchesError = errorPatterns.some(pattern => {
|
|
142
|
-
try {
|
|
143
|
-
const regex = new RegExp(pattern, "i");
|
|
144
|
-
return regex.test(line);
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
this.logger.warn({ pattern, err }, "Invalid error pattern regex");
|
|
148
|
-
return line.toLowerCase().includes(pattern.toLowerCase());
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
if (matchesError) {
|
|
152
|
-
// Extract context lines around the error
|
|
153
|
-
const startContext = Math.max(0, i - contextLines);
|
|
154
|
-
const endContext = Math.min(lines.length - 1, i + contextLines);
|
|
155
|
-
const context = lines.slice(startContext, endContext + 1);
|
|
156
|
-
// Check if feedback is enabled for this agent
|
|
157
|
-
try {
|
|
158
|
-
// This is a simplified check - in a real implementation we'd need
|
|
159
|
-
// to load the agent config to check per-agent settings
|
|
160
|
-
this.logger.info({ agentName, error: line.substring(0, 200) }, "Error detected, triggering feedback");
|
|
161
|
-
const event = {
|
|
162
|
-
agentName,
|
|
163
|
-
error: line,
|
|
164
|
-
context,
|
|
165
|
-
timestamp: new Date(),
|
|
166
|
-
};
|
|
167
|
-
this.emit("feedback-trigger", event);
|
|
168
|
-
}
|
|
169
|
-
catch (err) {
|
|
170
|
-
this.logger.error({ err, agentName }, "Error checking feedback configuration");
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=feedback-monitor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-monitor.js","sourceRoot":"","sources":["../../src/agents/feedback-monitor.ts"],"names":[],"mappings":"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"}
|