@jungjaehoon/mama-os 0.28.6 → 0.29.1
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/agent/agent-loop.d.ts +0 -4
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +33 -10
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +53 -3
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/tool-policy.d.ts.map +1 -1
- package/dist/agent/code-act/tool-policy.js +5 -0
- package/dist/agent/code-act/tool-policy.js.map +1 -1
- package/dist/agent/codex-auth.d.ts +0 -1
- package/dist/agent/codex-auth.d.ts.map +1 -1
- package/dist/agent/codex-auth.js +0 -4
- package/dist/agent/codex-auth.js.map +1 -1
- package/dist/agent/codex-home.d.ts +0 -2
- package/dist/agent/codex-home.d.ts.map +1 -1
- package/dist/agent/codex-home.js +0 -66
- package/dist/agent/codex-home.js.map +1 -1
- package/dist/agent/context-compile-service.d.ts +9 -0
- package/dist/agent/context-compile-service.d.ts.map +1 -1
- package/dist/agent/context-compile-service.js +6 -0
- package/dist/agent/context-compile-service.js.map +1 -1
- package/dist/agent/context-prompt-builder.d.ts +0 -6
- package/dist/agent/context-prompt-builder.d.ts.map +1 -1
- package/dist/agent/context-prompt-builder.js +0 -131
- package/dist/agent/context-prompt-builder.js.map +1 -1
- package/dist/agent/contract-extractor.d.ts +0 -4
- package/dist/agent/contract-extractor.d.ts.map +1 -1
- package/dist/agent/contract-extractor.js +0 -68
- package/dist/agent/contract-extractor.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +20 -15
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +236 -90
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +7 -4
- package/dist/agent/skill-loader.d.ts +0 -7
- package/dist/agent/skill-loader.d.ts.map +1 -1
- package/dist/agent/skill-loader.js +0 -86
- package/dist/agent/skill-loader.js.map +1 -1
- package/dist/agent/token-estimator.d.ts +0 -8
- package/dist/agent/token-estimator.d.ts.map +1 -1
- package/dist/agent/token-estimator.js +0 -14
- package/dist/agent/token-estimator.js.map +1 -1
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +23 -5
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +27 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/agent-graph-handler.d.ts +9 -0
- package/dist/api/agent-graph-handler.d.ts.map +1 -1
- package/dist/api/agent-graph-handler.js +27 -1
- package/dist/api/agent-graph-handler.js.map +1 -1
- package/dist/api/entity-audit-handler.d.ts +1 -2
- package/dist/api/entity-audit-handler.d.ts.map +1 -1
- package/dist/api/entity-audit-handler.js +0 -5
- package/dist/api/entity-audit-handler.js.map +1 -1
- package/dist/api/index.d.ts +1 -9
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -17
- package/dist/api/index.js.map +1 -1
- package/dist/api/intelligence-handler.d.ts +0 -5
- package/dist/api/intelligence-handler.d.ts.map +1 -1
- package/dist/api/intelligence-handler.js +0 -15
- package/dist/api/intelligence-handler.js.map +1 -1
- package/dist/api/types.d.ts +1 -5
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +0 -14
- package/dist/api/types.js.map +1 -1
- package/dist/cli/commands/start.d.ts +117 -3
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +223 -62
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/config-manager.d.ts +0 -5
- package/dist/cli/config/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +0 -29
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +3 -0
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +32 -5
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-server-init.js +2 -0
- package/dist/cli/runtime/api-server-init.js.map +1 -1
- package/dist/cli/runtime/gateway-init.d.ts +1 -1
- package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-init.js +11 -38
- package/dist/cli/runtime/gateway-init.js.map +1 -1
- package/dist/cli/runtime/gateway-wiring.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-wiring.js +6 -120
- package/dist/cli/runtime/gateway-wiring.js.map +1 -1
- package/dist/cli/utils/pid-manager.d.ts +0 -10
- package/dist/cli/utils/pid-manager.d.ts.map +1 -1
- package/dist/cli/utils/pid-manager.js +0 -26
- package/dist/cli/utils/pid-manager.js.map +1 -1
- package/dist/connectors/framework/polling-scheduler.d.ts +33 -1
- package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
- package/dist/connectors/framework/polling-scheduler.js +46 -40
- package/dist/connectors/framework/polling-scheduler.js.map +1 -1
- package/dist/connectors/trello/query-tools.d.ts +32 -5
- package/dist/connectors/trello/query-tools.d.ts.map +1 -1
- package/dist/connectors/trello/query-tools.js +56 -17
- package/dist/connectors/trello/query-tools.js.map +1 -1
- package/dist/db/agent-store.d.ts +0 -4
- package/dist/db/agent-store.d.ts.map +1 -1
- package/dist/db/agent-store.js +0 -65
- package/dist/db/agent-store.js.map +1 -1
- package/dist/envelope/enforcer.d.ts.map +1 -1
- package/dist/envelope/enforcer.js +10 -1
- package/dist/envelope/enforcer.js.map +1 -1
- package/dist/envelope/index.d.ts +0 -1
- package/dist/envelope/index.d.ts.map +1 -1
- package/dist/envelope/index.js +0 -1
- package/dist/envelope/index.js.map +1 -1
- package/dist/envelope/signature.d.ts +0 -1
- package/dist/envelope/signature.d.ts.map +1 -1
- package/dist/envelope/signature.js +0 -7
- package/dist/envelope/signature.js.map +1 -1
- package/dist/envelope/tool-connector-scope.d.ts +35 -0
- package/dist/envelope/tool-connector-scope.d.ts.map +1 -0
- package/dist/envelope/tool-connector-scope.js +57 -0
- package/dist/envelope/tool-connector-scope.js.map +1 -0
- package/dist/evidence/effects.d.ts +107 -0
- package/dist/evidence/effects.d.ts.map +1 -0
- package/dist/evidence/effects.js +281 -0
- package/dist/evidence/effects.js.map +1 -0
- package/dist/evidence/read.d.ts +75 -0
- package/dist/evidence/read.d.ts.map +1 -0
- package/dist/evidence/read.js +105 -0
- package/dist/evidence/read.js.map +1 -0
- package/dist/gateways/base-gateway.d.ts +23 -3
- package/dist/gateways/base-gateway.d.ts.map +1 -1
- package/dist/gateways/base-gateway.js +15 -2
- package/dist/gateways/base-gateway.js.map +1 -1
- package/dist/gateways/discord.d.ts +4 -16
- package/dist/gateways/discord.d.ts.map +1 -1
- package/dist/gateways/discord.js +22 -189
- package/dist/gateways/discord.js.map +1 -1
- package/dist/gateways/index.d.ts +2 -1
- package/dist/gateways/index.d.ts.map +1 -1
- package/dist/gateways/message-router.d.ts +13 -20
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +32 -3
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/slack.d.ts +2 -12
- package/dist/gateways/slack.d.ts.map +1 -1
- package/dist/gateways/slack.js +6 -220
- package/dist/gateways/slack.js.map +1 -1
- package/dist/gateways/telegram.d.ts +2 -2
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +3 -2
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/gateways/turn-contract.d.ts +104 -0
- package/dist/gateways/turn-contract.d.ts.map +1 -0
- package/dist/{memory/consult-contract.js → gateways/turn-contract.js} +1 -1
- package/dist/gateways/turn-contract.js.map +1 -0
- package/dist/memory/provenance-live.d.ts +111 -0
- package/dist/memory/provenance-live.d.ts.map +1 -0
- package/dist/memory/provenance-live.js +381 -0
- package/dist/memory/provenance-live.js.map +1 -0
- package/dist/memory/provenance-resolver.d.ts +184 -0
- package/dist/memory/provenance-resolver.d.ts.map +1 -0
- package/dist/memory/provenance-resolver.js +152 -0
- package/dist/memory/provenance-resolver.js.map +1 -0
- package/dist/multi-agent/agent-event-bus.d.ts +1 -0
- package/dist/multi-agent/agent-event-bus.d.ts.map +1 -1
- package/dist/multi-agent/bmad-templates.d.ts +0 -18
- package/dist/multi-agent/bmad-templates.d.ts.map +1 -1
- package/dist/multi-agent/bmad-templates.js +0 -127
- package/dist/multi-agent/bmad-templates.js.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.js +3 -3
- package/dist/operator/board-reconcile.d.ts +2 -3
- package/dist/operator/board-reconcile.d.ts.map +1 -1
- package/dist/operator/board-reconcile.js +18 -32
- package/dist/operator/board-reconcile.js.map +1 -1
- package/dist/operator/changes-projection.d.ts +70 -0
- package/dist/operator/changes-projection.d.ts.map +1 -0
- package/dist/operator/changes-projection.js +109 -0
- package/dist/operator/changes-projection.js.map +1 -0
- package/dist/operator/external-correlation.d.ts +94 -0
- package/dist/operator/external-correlation.d.ts.map +1 -0
- package/dist/operator/external-correlation.js +177 -0
- package/dist/operator/external-correlation.js.map +1 -0
- package/dist/operator/operator-trigger-loop.d.ts +9 -1
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +8 -4
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/provenance-lookup.d.ts +18 -0
- package/dist/operator/provenance-lookup.d.ts.map +1 -0
- package/dist/operator/provenance-lookup.js +54 -0
- package/dist/operator/provenance-lookup.js.map +1 -0
- package/dist/operator/report-carry.d.ts +18 -1
- package/dist/operator/report-carry.d.ts.map +1 -1
- package/dist/operator/report-carry.js +22 -3
- package/dist/operator/report-carry.js.map +1 -1
- package/dist/operator/report-run.d.ts +31 -0
- package/dist/operator/report-run.d.ts.map +1 -1
- package/dist/operator/report-run.js +140 -22
- package/dist/operator/report-run.js.map +1 -1
- package/dist/operator/task-ledger.d.ts +84 -2
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +274 -31
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/trigger-author.d.ts +7 -0
- package/dist/operator/trigger-author.d.ts.map +1 -1
- package/dist/operator/trigger-author.js +78 -7
- package/dist/operator/trigger-author.js.map +1 -1
- package/dist/operator/worker-run.js +1 -1
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/operator/workorder-hooks.d.ts +79 -4
- package/dist/operator/workorder-hooks.d.ts.map +1 -1
- package/dist/operator/workorder-hooks.js +152 -20
- package/dist/operator/workorder-hooks.js.map +1 -1
- package/dist/operator/workorder-publishers.d.ts +2 -0
- package/dist/operator/workorder-publishers.d.ts.map +1 -1
- package/dist/operator/workorder-publishers.js +8 -1
- package/dist/operator/workorder-publishers.js.map +1 -1
- package/dist/utils/untrusted-content.d.ts +11 -0
- package/dist/utils/untrusted-content.d.ts.map +1 -1
- package/dist/utils/untrusted-content.js +20 -0
- package/dist/utils/untrusted-content.js.map +1 -1
- package/package.json +4 -3
- package/scripts/backfill-channel-keys.ts +451 -0
- package/dist/agent/auto-recall.d.ts +0 -48
- package/dist/agent/auto-recall.d.ts.map +0 -1
- package/dist/agent/auto-recall.js +0 -192
- package/dist/agent/auto-recall.js.map +0 -1
- package/dist/agent/claude-client.d.ts +0 -50
- package/dist/agent/claude-client.d.ts.map +0 -1
- package/dist/agent/claude-client.js +0 -219
- package/dist/agent/claude-client.js.map +0 -1
- package/dist/agent/delegation-executor.d.ts +0 -49
- package/dist/agent/delegation-executor.d.ts.map +0 -1
- package/dist/agent/delegation-executor.js +0 -692
- package/dist/agent/delegation-executor.js.map +0 -1
- package/dist/agent/mcp-executor.d.ts +0 -60
- package/dist/agent/mcp-executor.d.ts.map +0 -1
- package/dist/agent/mcp-executor.js +0 -190
- package/dist/agent/mcp-executor.js.map +0 -1
- package/dist/agent/process-tree.d.ts +0 -6
- package/dist/agent/process-tree.d.ts.map +0 -1
- package/dist/agent/process-tree.js +0 -21
- package/dist/agent/process-tree.js.map +0 -1
- package/dist/agent/streaming-callback-manager.d.ts +0 -85
- package/dist/agent/streaming-callback-manager.d.ts.map +0 -1
- package/dist/agent/streaming-callback-manager.js +0 -103
- package/dist/agent/streaming-callback-manager.js.map +0 -1
- package/dist/agent/token-budget.d.ts +0 -49
- package/dist/agent/token-budget.d.ts.map +0 -1
- package/dist/agent/token-budget.js +0 -92
- package/dist/agent/token-budget.js.map +0 -1
- package/dist/connectors/kagemusha/history-compiler.d.ts +0 -18
- package/dist/connectors/kagemusha/history-compiler.d.ts.map +0 -1
- package/dist/connectors/kagemusha/history-compiler.js +0 -35
- package/dist/connectors/kagemusha/history-compiler.js.map +0 -1
- package/dist/db/migrations/wiki-artifacts.d.ts +0 -3
- package/dist/db/migrations/wiki-artifacts.d.ts.map +0 -1
- package/dist/db/migrations/wiki-artifacts.js +0 -24
- package/dist/db/migrations/wiki-artifacts.js.map +0 -1
- package/dist/envelope/subset.d.ts +0 -9
- package/dist/envelope/subset.d.ts.map +0 -1
- package/dist/envelope/subset.js +0 -67
- package/dist/envelope/subset.js.map +0 -1
- package/dist/memory/consult-contract.d.ts +0 -8
- package/dist/memory/consult-contract.d.ts.map +0 -1
- package/dist/memory/consult-contract.js.map +0 -1
- package/dist/multi-agent/agent-message-queue.d.ts +0 -104
- package/dist/multi-agent/agent-message-queue.d.ts.map +0 -1
- package/dist/multi-agent/agent-message-queue.js +0 -227
- package/dist/multi-agent/agent-message-queue.js.map +0 -1
- package/dist/multi-agent/background-task-manager.d.ts +0 -248
- package/dist/multi-agent/background-task-manager.d.ts.map +0 -1
- package/dist/multi-agent/background-task-manager.js +0 -415
- package/dist/multi-agent/background-task-manager.js.map +0 -1
- package/dist/multi-agent/category-router.d.ts +0 -56
- package/dist/multi-agent/category-router.d.ts.map +0 -1
- package/dist/multi-agent/category-router.js +0 -99
- package/dist/multi-agent/category-router.js.map +0 -1
- package/dist/multi-agent/council-engine.d.ts +0 -60
- package/dist/multi-agent/council-engine.d.ts.map +0 -1
- package/dist/multi-agent/council-engine.js +0 -284
- package/dist/multi-agent/council-engine.js.map +0 -1
- package/dist/multi-agent/delegation-format-validator.d.ts +0 -22
- package/dist/multi-agent/delegation-format-validator.d.ts.map +0 -1
- package/dist/multi-agent/delegation-format-validator.js +0 -31
- package/dist/multi-agent/delegation-format-validator.js.map +0 -1
- package/dist/multi-agent/delegation-manager.d.ts +0 -128
- package/dist/multi-agent/delegation-manager.d.ts.map +0 -1
- package/dist/multi-agent/delegation-manager.js +0 -276
- package/dist/multi-agent/delegation-manager.js.map +0 -1
- package/dist/multi-agent/i18n-messages.d.ts +0 -35
- package/dist/multi-agent/i18n-messages.d.ts.map +0 -1
- package/dist/multi-agent/i18n-messages.js +0 -54
- package/dist/multi-agent/i18n-messages.js.map +0 -1
- package/dist/multi-agent/index.d.ts +0 -31
- package/dist/multi-agent/index.d.ts.map +0 -1
- package/dist/multi-agent/index.js +0 -46
- package/dist/multi-agent/index.js.map +0 -1
- package/dist/multi-agent/multi-agent-base.d.ts +0 -223
- package/dist/multi-agent/multi-agent-base.d.ts.map +0 -1
- package/dist/multi-agent/multi-agent-base.js +0 -592
- package/dist/multi-agent/multi-agent-base.js.map +0 -1
- package/dist/multi-agent/multi-agent-discord.d.ts +0 -142
- package/dist/multi-agent/multi-agent-discord.d.ts.map +0 -1
- package/dist/multi-agent/multi-agent-discord.js +0 -1235
- package/dist/multi-agent/multi-agent-discord.js.map +0 -1
- package/dist/multi-agent/multi-agent-slack.d.ts +0 -146
- package/dist/multi-agent/multi-agent-slack.d.ts.map +0 -1
- package/dist/multi-agent/multi-agent-slack.js +0 -953
- package/dist/multi-agent/multi-agent-slack.js.map +0 -1
- package/dist/multi-agent/multi-bot-manager.d.ts +0 -119
- package/dist/multi-agent/multi-bot-manager.d.ts.map +0 -1
- package/dist/multi-agent/multi-bot-manager.js +0 -449
- package/dist/multi-agent/multi-bot-manager.js.map +0 -1
- package/dist/multi-agent/orchestrator.d.ts +0 -110
- package/dist/multi-agent/orchestrator.d.ts.map +0 -1
- package/dist/multi-agent/orchestrator.js +0 -436
- package/dist/multi-agent/orchestrator.js.map +0 -1
- package/dist/multi-agent/rate-limiter.d.ts +0 -76
- package/dist/multi-agent/rate-limiter.d.ts.map +0 -1
- package/dist/multi-agent/rate-limiter.js +0 -128
- package/dist/multi-agent/rate-limiter.js.map +0 -1
- package/dist/multi-agent/shared-context.d.ts +0 -127
- package/dist/multi-agent/shared-context.d.ts.map +0 -1
- package/dist/multi-agent/shared-context.js +0 -239
- package/dist/multi-agent/shared-context.js.map +0 -1
- package/dist/multi-agent/slack-config-validator.d.ts +0 -42
- package/dist/multi-agent/slack-config-validator.d.ts.map +0 -1
- package/dist/multi-agent/slack-config-validator.js +0 -194
- package/dist/multi-agent/slack-config-validator.js.map +0 -1
- package/dist/multi-agent/slack-multi-bot-manager.d.ts +0 -143
- package/dist/multi-agent/slack-multi-bot-manager.d.ts.map +0 -1
- package/dist/multi-agent/slack-multi-bot-manager.js +0 -413
- package/dist/multi-agent/slack-multi-bot-manager.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-anti-pattern-detector.d.ts +0 -98
- package/dist/multi-agent/swarm/swarm-anti-pattern-detector.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-anti-pattern-detector.js +0 -225
- package/dist/multi-agent/swarm/swarm-anti-pattern-detector.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-db.d.ts +0 -175
- package/dist/multi-agent/swarm/swarm-db.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-db.js +0 -313
- package/dist/multi-agent/swarm/swarm-db.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-event-reporter.d.ts +0 -116
- package/dist/multi-agent/swarm/swarm-event-reporter.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-event-reporter.js +0 -243
- package/dist/multi-agent/swarm/swarm-event-reporter.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-mama-adapter.d.ts +0 -57
- package/dist/multi-agent/swarm/swarm-mama-adapter.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-mama-adapter.js +0 -87
- package/dist/multi-agent/swarm/swarm-mama-adapter.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-manager.d.ts +0 -122
- package/dist/multi-agent/swarm/swarm-manager.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-manager.js +0 -199
- package/dist/multi-agent/swarm/swarm-manager.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-task-learner.d.ts +0 -104
- package/dist/multi-agent/swarm/swarm-task-learner.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-task-learner.js +0 -211
- package/dist/multi-agent/swarm/swarm-task-learner.js.map +0 -1
- package/dist/multi-agent/swarm/swarm-task-runner.d.ts +0 -155
- package/dist/multi-agent/swarm/swarm-task-runner.d.ts.map +0 -1
- package/dist/multi-agent/swarm/swarm-task-runner.js +0 -615
- package/dist/multi-agent/swarm/swarm-task-runner.js.map +0 -1
- package/dist/multi-agent/swarm/wave-engine.d.ts +0 -96
- package/dist/multi-agent/swarm/wave-engine.d.ts.map +0 -1
- package/dist/multi-agent/swarm/wave-engine.js +0 -123
- package/dist/multi-agent/swarm/wave-engine.js.map +0 -1
- package/dist/multi-agent/system-reminder.d.ts +0 -206
- package/dist/multi-agent/system-reminder.d.ts.map +0 -1
- package/dist/multi-agent/system-reminder.js +0 -455
- package/dist/multi-agent/system-reminder.js.map +0 -1
- package/dist/multi-agent/task-continuation.d.ts +0 -74
- package/dist/multi-agent/task-continuation.d.ts.map +0 -1
- package/dist/multi-agent/task-continuation.js +0 -172
- package/dist/multi-agent/task-continuation.js.map +0 -1
- package/dist/multi-agent/ultrawork-state.d.ts +0 -57
- package/dist/multi-agent/ultrawork-state.d.ts.map +0 -1
- package/dist/multi-agent/ultrawork-state.js +0 -191
- package/dist/multi-agent/ultrawork-state.js.map +0 -1
- package/dist/multi-agent/ultrawork.d.ts +0 -152
- package/dist/multi-agent/ultrawork.d.ts.map +0 -1
- package/dist/multi-agent/ultrawork.js +0 -879
- package/dist/multi-agent/ultrawork.js.map +0 -1
- package/dist/multi-agent/work-tracker.d.ts +0 -22
- package/dist/multi-agent/work-tracker.d.ts.map +0 -1
- package/dist/multi-agent/work-tracker.js +0 -45
- package/dist/multi-agent/work-tracker.js.map +0 -1
- package/dist/multi-agent/workflow-engine.d.ts +0 -87
- package/dist/multi-agent/workflow-engine.d.ts.map +0 -1
- package/dist/multi-agent/workflow-engine.js +0 -604
- package/dist/multi-agent/workflow-engine.js.map +0 -1
- package/dist/onboarding/all-tools.d.ts +0 -18
- package/dist/onboarding/all-tools.d.ts.map +0 -1
- package/dist/onboarding/all-tools.js +0 -149
- package/dist/onboarding/all-tools.js.map +0 -1
- package/dist/onboarding/autonomous-discovery-tools.d.ts +0 -23
- package/dist/onboarding/autonomous-discovery-tools.d.ts.map +0 -1
- package/dist/onboarding/autonomous-discovery-tools.js +0 -268
- package/dist/onboarding/autonomous-discovery-tools.js.map +0 -1
- package/dist/onboarding/onboarding-state.d.ts +0 -70
- package/dist/onboarding/onboarding-state.d.ts.map +0 -1
- package/dist/onboarding/onboarding-state.js +0 -183
- package/dist/onboarding/onboarding-state.js.map +0 -1
- package/dist/onboarding/personality-quiz.d.ts +0 -35
- package/dist/onboarding/personality-quiz.d.ts.map +0 -1
- package/dist/onboarding/personality-quiz.js +0 -219
- package/dist/onboarding/personality-quiz.js.map +0 -1
- package/dist/onboarding/phase-5-summary.d.ts +0 -26
- package/dist/onboarding/phase-5-summary.d.ts.map +0 -1
- package/dist/onboarding/phase-5-summary.js +0 -153
- package/dist/onboarding/phase-5-summary.js.map +0 -1
- package/dist/onboarding/phase-6-security.d.ts +0 -33
- package/dist/onboarding/phase-6-security.d.ts.map +0 -1
- package/dist/onboarding/phase-6-security.js +0 -473
- package/dist/onboarding/phase-6-security.js.map +0 -1
- package/dist/onboarding/phase-7-integrations.d.ts +0 -91
- package/dist/onboarding/phase-7-integrations.d.ts.map +0 -1
- package/dist/onboarding/phase-7-integrations.js +0 -725
- package/dist/onboarding/phase-7-integrations.js.map +0 -1
- package/dist/onboarding/phase-8-demo.d.ts +0 -43
- package/dist/onboarding/phase-8-demo.d.ts.map +0 -1
- package/dist/onboarding/phase-8-demo.js +0 -346
- package/dist/onboarding/phase-8-demo.js.map +0 -1
- package/dist/onboarding/phase-9-finalization.d.ts +0 -27
- package/dist/onboarding/phase-9-finalization.d.ts.map +0 -1
- package/dist/onboarding/phase-9-finalization.js +0 -417
- package/dist/onboarding/phase-9-finalization.js.map +0 -1
- package/dist/onboarding/ritual-prompt.d.ts +0 -2
- package/dist/onboarding/ritual-prompt.d.ts.map +0 -1
- package/dist/onboarding/ritual-prompt.js +0 -285
- package/dist/onboarding/ritual-prompt.js.map +0 -1
- package/dist/onboarding/ritual-tools.d.ts +0 -17
- package/dist/onboarding/ritual-tools.d.ts.map +0 -1
- package/dist/onboarding/ritual-tools.js +0 -93
- package/dist/onboarding/ritual-tools.js.map +0 -1
- package/dist/setup/setup-tools.d.ts +0 -13
- package/dist/setup/setup-tools.d.ts.map +0 -1
- package/dist/setup/setup-tools.js +0 -106
- package/dist/setup/setup-tools.js.map +0 -1
- package/dist/utils/slack-input-validator.d.ts +0 -74
- package/dist/utils/slack-input-validator.d.ts.map +0 -1
- package/dist/utils/slack-input-validator.js +0 -275
- package/dist/utils/slack-input-validator.js.map +0 -1
- package/dist/utils/slack-rate-limiter.d.ts +0 -139
- package/dist/utils/slack-rate-limiter.d.ts.map +0 -1
- package/dist/utils/slack-rate-limiter.js +0 -324
- package/dist/utils/slack-rate-limiter.js.map +0 -1
- package/dist/wiki/wiki-compiler.d.ts +0 -13
- package/dist/wiki/wiki-compiler.d.ts.map +0 -1
- package/dist/wiki/wiki-compiler.js +0 -82
- package/dist/wiki/wiki-compiler.js.map +0 -1
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-Agent Orchestrator
|
|
3
|
-
*
|
|
4
|
-
* Manages agent selection, trigger matching, and loop prevention
|
|
5
|
-
* for multi-agent Discord conversations.
|
|
6
|
-
*/
|
|
7
|
-
import type { MultiAgentConfig, AgentPersonaConfig, ChainState, AgentSelectionResult, MessageContext, AgentResponseRecord } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Multi-Agent Orchestrator
|
|
10
|
-
*
|
|
11
|
-
* Responsibilities:
|
|
12
|
-
* 1. Select which agent(s) should respond to a message
|
|
13
|
-
* 2. Track response chains to prevent infinite loops
|
|
14
|
-
* 3. Manage per-agent cooldowns
|
|
15
|
-
* 4. Reset chain state on human messages
|
|
16
|
-
*/
|
|
17
|
-
export declare class MultiAgentOrchestrator {
|
|
18
|
-
private logger;
|
|
19
|
-
private config;
|
|
20
|
-
private categoryRouter;
|
|
21
|
-
/** Chain state per channel: Map<channelId, ChainState> */
|
|
22
|
-
private chainStates;
|
|
23
|
-
/** Per-channel chain length overrides */
|
|
24
|
-
private chainLimitOverrides;
|
|
25
|
-
/** Last response time per agent: Map<agentId, timestamp> */
|
|
26
|
-
private agentCooldowns;
|
|
27
|
-
/** Response history for debugging: limited to last 100 entries */
|
|
28
|
-
private responseHistory;
|
|
29
|
-
private readonly MAX_HISTORY;
|
|
30
|
-
constructor(config: MultiAgentConfig);
|
|
31
|
-
/**
|
|
32
|
-
* Update configuration (for hot reload)
|
|
33
|
-
*/
|
|
34
|
-
updateConfig(config: MultiAgentConfig): void;
|
|
35
|
-
/**
|
|
36
|
-
* Get agent configuration by ID
|
|
37
|
-
*/
|
|
38
|
-
getAgent(agentId: string): AgentPersonaConfig | undefined;
|
|
39
|
-
/**
|
|
40
|
-
* Get all enabled agents
|
|
41
|
-
*/
|
|
42
|
-
getEnabledAgents(): AgentPersonaConfig[];
|
|
43
|
-
/**
|
|
44
|
-
* Select which agents should respond to a message
|
|
45
|
-
*/
|
|
46
|
-
selectRespondingAgents(context: MessageContext): AgentSelectionResult;
|
|
47
|
-
/**
|
|
48
|
-
* Select limited responders for non-bot messages unless free-chat is explicitly enabled.
|
|
49
|
-
* This protects the pool from burst fan-out and queue overflow while preserving explicit mentions.
|
|
50
|
-
*/
|
|
51
|
-
private limitAutoResponderSelection;
|
|
52
|
-
/**
|
|
53
|
-
* Determine whether a message should be auto-responded by a single agent.
|
|
54
|
-
*/
|
|
55
|
-
private shouldLimitAutoSelection;
|
|
56
|
-
/**
|
|
57
|
-
* Record an agent response (updates chain state and cooldowns)
|
|
58
|
-
*/
|
|
59
|
-
recordAgentResponse(agentId: string, channelId: string, messageId?: string): void;
|
|
60
|
-
/**
|
|
61
|
-
* Reset chain state for a channel (called on human message)
|
|
62
|
-
*/
|
|
63
|
-
resetChain(channelId: string): void;
|
|
64
|
-
/**
|
|
65
|
-
* Override max chain length for a channel (runtime).
|
|
66
|
-
*/
|
|
67
|
-
setChannelChainLimit(channelId: string, maxChainLength: number): void;
|
|
68
|
-
/**
|
|
69
|
-
* Clear max chain length override for a channel.
|
|
70
|
-
*/
|
|
71
|
-
clearChannelChainLimit(channelId: string): void;
|
|
72
|
-
/**
|
|
73
|
-
* Get effective max chain length for a channel.
|
|
74
|
-
*/
|
|
75
|
-
private getMaxChainLength;
|
|
76
|
-
/**
|
|
77
|
-
* Get chain state for a channel
|
|
78
|
-
*/
|
|
79
|
-
getChainState(channelId: string): ChainState;
|
|
80
|
-
/**
|
|
81
|
-
* Check if an agent is ready (not on cooldown)
|
|
82
|
-
*/
|
|
83
|
-
isAgentReady(agentId: string): boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Find explicit trigger prefix match
|
|
86
|
-
*/
|
|
87
|
-
private findExplicitTrigger;
|
|
88
|
-
/**
|
|
89
|
-
* Find agents that match keywords in the message
|
|
90
|
-
*/
|
|
91
|
-
private findKeywordMatches;
|
|
92
|
-
/**
|
|
93
|
-
* Extract agent ID from a bot message's display name
|
|
94
|
-
* @example "**🔧 DevBot**: Hello" -> "developer"
|
|
95
|
-
*/
|
|
96
|
-
extractAgentIdFromMessage(messageContent: string): string | null;
|
|
97
|
-
/**
|
|
98
|
-
* Strip trigger prefix from message content
|
|
99
|
-
*/
|
|
100
|
-
stripTriggerPrefix(content: string, agentId: string): string;
|
|
101
|
-
/**
|
|
102
|
-
* Get response history for debugging
|
|
103
|
-
*/
|
|
104
|
-
getResponseHistory(): AgentResponseRecord[];
|
|
105
|
-
/**
|
|
106
|
-
* Clear all state (for testing)
|
|
107
|
-
*/
|
|
108
|
-
clearState(): void;
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/multi-agent/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAKpB;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,0DAA0D;IAC1D,OAAO,CAAC,WAAW,CAAsC;IACzD,yCAAyC;IACzC,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,4DAA4D;IAC5D,OAAO,CAAC,cAAc,CAAkC;IAExD,kEAAkE;IAClE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;gBAEvB,MAAM,EAAE,gBAAgB;IAKpC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAK5C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAUzD;;OAEG;IACH,gBAAgB,IAAI,kBAAkB,EAAE;IASxC;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB;IA4LrE;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAQnC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAmDjF;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgBnC;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAOrE;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAc5C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAUtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;IACH,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBhE;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAc5D;;OAEG;IACH,kBAAkB,IAAI,mBAAmB,EAAE;IAI3C;;OAEG;IACH,UAAU,IAAI,IAAI;CAKnB"}
|
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Multi-Agent Orchestrator
|
|
4
|
-
*
|
|
5
|
-
* Manages agent selection, trigger matching, and loop prevention
|
|
6
|
-
* for multi-agent Discord conversations.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.MultiAgentOrchestrator = void 0;
|
|
10
|
-
const types_js_1 = require("./types.js");
|
|
11
|
-
const category_router_js_1 = require("./category-router.js");
|
|
12
|
-
const log_sanitizer_js_1 = require("../utils/log-sanitizer.js");
|
|
13
|
-
/**
|
|
14
|
-
* Multi-Agent Orchestrator
|
|
15
|
-
*
|
|
16
|
-
* Responsibilities:
|
|
17
|
-
* 1. Select which agent(s) should respond to a message
|
|
18
|
-
* 2. Track response chains to prevent infinite loops
|
|
19
|
-
* 3. Manage per-agent cooldowns
|
|
20
|
-
* 4. Reset chain state on human messages
|
|
21
|
-
*/
|
|
22
|
-
class MultiAgentOrchestrator {
|
|
23
|
-
logger = (0, log_sanitizer_js_1.createSafeLogger)('Orchestrator');
|
|
24
|
-
config;
|
|
25
|
-
categoryRouter;
|
|
26
|
-
/** Chain state per channel: Map<channelId, ChainState> */
|
|
27
|
-
chainStates = new Map();
|
|
28
|
-
/** Per-channel chain length overrides */
|
|
29
|
-
chainLimitOverrides = new Map();
|
|
30
|
-
/** Last response time per agent: Map<agentId, timestamp> */
|
|
31
|
-
agentCooldowns = new Map();
|
|
32
|
-
/** Response history for debugging: limited to last 100 entries */
|
|
33
|
-
responseHistory = [];
|
|
34
|
-
MAX_HISTORY = 100;
|
|
35
|
-
constructor(config) {
|
|
36
|
-
this.config = config;
|
|
37
|
-
this.categoryRouter = new category_router_js_1.CategoryRouter(config.categories);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Update configuration (for hot reload)
|
|
41
|
-
*/
|
|
42
|
-
updateConfig(config) {
|
|
43
|
-
this.config = config;
|
|
44
|
-
this.categoryRouter.updateCategories(config.categories ?? []);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get agent configuration by ID
|
|
48
|
-
*/
|
|
49
|
-
getAgent(agentId) {
|
|
50
|
-
const agentConfig = this.config.agents[agentId];
|
|
51
|
-
if (!agentConfig)
|
|
52
|
-
return undefined;
|
|
53
|
-
return {
|
|
54
|
-
id: agentId,
|
|
55
|
-
...agentConfig,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get all enabled agents
|
|
60
|
-
*/
|
|
61
|
-
getEnabledAgents() {
|
|
62
|
-
return Object.entries(this.config.agents)
|
|
63
|
-
.filter(([, config]) => config.enabled !== false)
|
|
64
|
-
.map(([id, config]) => ({
|
|
65
|
-
id,
|
|
66
|
-
...config,
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Select which agents should respond to a message
|
|
71
|
-
*/
|
|
72
|
-
selectRespondingAgents(context) {
|
|
73
|
-
// If multi-agent is disabled, return empty
|
|
74
|
-
if (!this.config.enabled) {
|
|
75
|
-
return {
|
|
76
|
-
selectedAgents: [],
|
|
77
|
-
reason: 'none',
|
|
78
|
-
blocked: false,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
// Check channel-specific overrides
|
|
82
|
-
const channelOverride = this.config.channel_overrides?.[context.channelId];
|
|
83
|
-
const allowedAgents = channelOverride?.allowed_agents;
|
|
84
|
-
const disabledAgents = channelOverride?.disabled_agents || [];
|
|
85
|
-
// Filter agents based on channel config
|
|
86
|
-
const availableAgents = this.getEnabledAgents().filter((agent) => {
|
|
87
|
-
if (disabledAgents.includes(agent.id))
|
|
88
|
-
return false;
|
|
89
|
-
if (allowedAgents && !allowedAgents.includes(agent.id))
|
|
90
|
-
return false;
|
|
91
|
-
return true;
|
|
92
|
-
});
|
|
93
|
-
// 0b. Human mentions: route mentioned agents directly.
|
|
94
|
-
// Useful when free_chat is disabled but users still explicitly ping agents.
|
|
95
|
-
if (!context.isBot && context.mentionedAgentIds && context.mentionedAgentIds.length > 0) {
|
|
96
|
-
const mentionedAvailable = availableAgents.filter((a) => context.mentionedAgentIds.includes(a.id));
|
|
97
|
-
if (mentionedAvailable.length > 0) {
|
|
98
|
-
// Filter out agents on cooldown and preserve mention order for predictability.
|
|
99
|
-
const readyMentions = mentionedAvailable.filter((agent) => this.isAgentReady(agent.id));
|
|
100
|
-
if (readyMentions.length > 0) {
|
|
101
|
-
// If at least one mentioned agent is ready, only return those.
|
|
102
|
-
return {
|
|
103
|
-
selectedAgents: readyMentions.map((a) => a.id),
|
|
104
|
-
reason: 'keyword_match',
|
|
105
|
-
blocked: false,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// If sender is human, reset chain and process selection
|
|
111
|
-
if (!context.isBot) {
|
|
112
|
-
this.resetChain(context.channelId);
|
|
113
|
-
}
|
|
114
|
-
// Check if chain is blocked
|
|
115
|
-
const chainState = this.getChainState(context.channelId);
|
|
116
|
-
const maxChainLength = this.getMaxChainLength(context.channelId);
|
|
117
|
-
if (chainState.blocked) {
|
|
118
|
-
return {
|
|
119
|
-
selectedAgents: [],
|
|
120
|
-
reason: 'none',
|
|
121
|
-
blocked: true,
|
|
122
|
-
blockReason: `Chain limit reached (${chainState.length}/${maxChainLength}). Waiting for human input.`,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
// Check global cooldown (skip for agent-to-agent in free_chat mode)
|
|
126
|
-
const now = Date.now();
|
|
127
|
-
const timeSinceLastResponse = now - chainState.lastResponseTime;
|
|
128
|
-
const isAgentToAgent = context.isBot && context.senderAgentId && this.config.free_chat;
|
|
129
|
-
if (!isAgentToAgent && timeSinceLastResponse < this.config.loop_prevention.global_cooldown_ms) {
|
|
130
|
-
return {
|
|
131
|
-
selectedAgents: [],
|
|
132
|
-
reason: 'none',
|
|
133
|
-
blocked: true,
|
|
134
|
-
blockReason: `Global cooldown active (${this.config.loop_prevention.global_cooldown_ms - timeSinceLastResponse}ms remaining)`,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
// 0. Free chat mode
|
|
138
|
-
if (this.config.free_chat) {
|
|
139
|
-
if (!context.isBot) {
|
|
140
|
-
// If specific agents are @mentioned, only those respond
|
|
141
|
-
if (context.mentionedAgentIds && context.mentionedAgentIds.length > 0) {
|
|
142
|
-
const mentionedAvailable = availableAgents.filter((a) => context.mentionedAgentIds.includes(a.id));
|
|
143
|
-
if (mentionedAvailable.length > 0) {
|
|
144
|
-
this.agentCooldowns.clear();
|
|
145
|
-
return {
|
|
146
|
-
selectedAgents: mentionedAvailable.map((a) => a.id),
|
|
147
|
-
reason: 'free_chat',
|
|
148
|
-
blocked: false,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
// No specific mention: all agents respond (reset cooldowns for fresh start)
|
|
153
|
-
this.agentCooldowns.clear();
|
|
154
|
-
return {
|
|
155
|
-
selectedAgents: availableAgents.map((a) => a.id),
|
|
156
|
-
reason: 'free_chat',
|
|
157
|
-
blocked: false,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
else if (context.senderAgentId) {
|
|
161
|
-
// Agent message: other agents respond (agent-to-agent)
|
|
162
|
-
// Skip per-agent cooldown - chain limit handles loop prevention
|
|
163
|
-
const otherAgents = availableAgents.filter((a) => a.id !== context.senderAgentId);
|
|
164
|
-
if (otherAgents.length > 0) {
|
|
165
|
-
return {
|
|
166
|
-
selectedAgents: otherAgents.map((a) => a.id),
|
|
167
|
-
reason: 'free_chat',
|
|
168
|
-
blocked: false,
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
// 1. Check for explicit trigger prefix
|
|
174
|
-
const explicitAgent = this.findExplicitTrigger(context.content, availableAgents);
|
|
175
|
-
if (explicitAgent) {
|
|
176
|
-
// Check agent cooldown
|
|
177
|
-
if (!this.isAgentReady(explicitAgent.id)) {
|
|
178
|
-
return {
|
|
179
|
-
selectedAgents: [],
|
|
180
|
-
reason: 'explicit_trigger',
|
|
181
|
-
blocked: true,
|
|
182
|
-
blockReason: `Agent ${explicitAgent.id} is on cooldown`,
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
return {
|
|
186
|
-
selectedAgents: [explicitAgent.id],
|
|
187
|
-
reason: 'explicit_trigger',
|
|
188
|
-
blocked: false,
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
// 1.5 Category-based routing
|
|
192
|
-
const categoryMatch = this.categoryRouter.route(context.content, availableAgents);
|
|
193
|
-
if (categoryMatch) {
|
|
194
|
-
// Filter out agents on cooldown
|
|
195
|
-
const readyAgents = categoryMatch.agentIds.filter((id) => this.isAgentReady(id));
|
|
196
|
-
if (readyAgents.length > 0) {
|
|
197
|
-
return {
|
|
198
|
-
selectedAgents: this.limitAutoResponderSelection(readyAgents, context),
|
|
199
|
-
reason: 'category_match',
|
|
200
|
-
blocked: false,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// 2. Check for keyword matches (only for human messages or agent-to-agent)
|
|
205
|
-
const keywordMatches = this.findKeywordMatches(context.content, availableAgents);
|
|
206
|
-
// Filter out agents on cooldown and exclude the sender agent
|
|
207
|
-
const readyAgents = keywordMatches.filter((agent) => this.isAgentReady(agent.id) && agent.id !== context.senderAgentId);
|
|
208
|
-
if (readyAgents.length > 0) {
|
|
209
|
-
// If message is from another agent, only allow one response to prevent cross-talk spam
|
|
210
|
-
const selectedCount = this.shouldLimitAutoSelection(context) ? 1 : readyAgents.length;
|
|
211
|
-
const selectedAgents = readyAgents.slice(0, selectedCount).map((a) => a.id);
|
|
212
|
-
return {
|
|
213
|
-
selectedAgents,
|
|
214
|
-
reason: 'keyword_match',
|
|
215
|
-
blocked: false,
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
// 3. Check for default agent (only for human messages)
|
|
219
|
-
if (!context.isBot) {
|
|
220
|
-
const defaultAgentId = channelOverride?.default_agent || this.config.default_agent;
|
|
221
|
-
if (defaultAgentId) {
|
|
222
|
-
const defaultAgent = availableAgents.find((a) => a.id === defaultAgentId);
|
|
223
|
-
if (defaultAgent && this.isAgentReady(defaultAgent.id)) {
|
|
224
|
-
return {
|
|
225
|
-
selectedAgents: [defaultAgent.id],
|
|
226
|
-
reason: 'default_agent',
|
|
227
|
-
blocked: false,
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
selectedAgents: [],
|
|
234
|
-
reason: 'none',
|
|
235
|
-
blocked: false,
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Select limited responders for non-bot messages unless free-chat is explicitly enabled.
|
|
240
|
-
* This protects the pool from burst fan-out and queue overflow while preserving explicit mentions.
|
|
241
|
-
*/
|
|
242
|
-
limitAutoResponderSelection(agentIds, context) {
|
|
243
|
-
if (!this.shouldLimitAutoSelection(context)) {
|
|
244
|
-
return agentIds;
|
|
245
|
-
}
|
|
246
|
-
return agentIds.slice(0, 1);
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Determine whether a message should be auto-responded by a single agent.
|
|
250
|
-
*/
|
|
251
|
-
shouldLimitAutoSelection(context) {
|
|
252
|
-
return !context.isBot && !this.config.free_chat;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Record an agent response (updates chain state and cooldowns)
|
|
256
|
-
*/
|
|
257
|
-
recordAgentResponse(agentId, channelId, messageId) {
|
|
258
|
-
const now = Date.now();
|
|
259
|
-
// Update agent cooldown
|
|
260
|
-
this.agentCooldowns.set(agentId, now);
|
|
261
|
-
// Update chain state
|
|
262
|
-
const chainState = this.getChainState(channelId);
|
|
263
|
-
const loopPrevention = this.config.loop_prevention || types_js_1.DEFAULT_LOOP_PREVENTION;
|
|
264
|
-
// Check if chain window has expired
|
|
265
|
-
if (now - chainState.lastResponseTime > loopPrevention.chain_window_ms) {
|
|
266
|
-
// Start new chain
|
|
267
|
-
chainState.length = 1;
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
// Continue chain
|
|
271
|
-
chainState.length++;
|
|
272
|
-
}
|
|
273
|
-
chainState.lastResponseTime = now;
|
|
274
|
-
chainState.lastAgentId = agentId;
|
|
275
|
-
// Check if chain limit reached
|
|
276
|
-
const maxChainLength = this.getMaxChainLength(channelId);
|
|
277
|
-
if (chainState.length >= maxChainLength) {
|
|
278
|
-
chainState.blocked = true;
|
|
279
|
-
this.logger.debug(`[Orchestrator] Chain limit reached for channel ${channelId} (${chainState.length}/${maxChainLength})`);
|
|
280
|
-
}
|
|
281
|
-
this.chainStates.set(channelId, chainState);
|
|
282
|
-
// Record to history
|
|
283
|
-
this.responseHistory.push({
|
|
284
|
-
agentId,
|
|
285
|
-
channelId,
|
|
286
|
-
timestamp: now,
|
|
287
|
-
messageId,
|
|
288
|
-
});
|
|
289
|
-
// Trim history if needed
|
|
290
|
-
if (this.responseHistory.length > this.MAX_HISTORY) {
|
|
291
|
-
this.responseHistory = this.responseHistory.slice(-this.MAX_HISTORY);
|
|
292
|
-
}
|
|
293
|
-
this.logger.info(`[Orchestrator] Recorded response: agent=${agentId}, channel=${channelId}, chain=${chainState.length}`);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Reset chain state for a channel (called on human message)
|
|
297
|
-
*/
|
|
298
|
-
resetChain(channelId) {
|
|
299
|
-
const chainState = this.chainStates.get(channelId);
|
|
300
|
-
if (chainState) {
|
|
301
|
-
this.logger.info(`[Orchestrator] Resetting chain for channel ${channelId} (was: ${chainState.length}, blocked: ${chainState.blocked})`);
|
|
302
|
-
}
|
|
303
|
-
this.chainStates.set(channelId, {
|
|
304
|
-
length: 0,
|
|
305
|
-
lastResponseTime: 0,
|
|
306
|
-
lastAgentId: null,
|
|
307
|
-
blocked: false,
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Override max chain length for a channel (runtime).
|
|
312
|
-
*/
|
|
313
|
-
setChannelChainLimit(channelId, maxChainLength) {
|
|
314
|
-
if (maxChainLength <= 0) {
|
|
315
|
-
throw new Error('maxChainLength must be greater than 0');
|
|
316
|
-
}
|
|
317
|
-
this.chainLimitOverrides.set(channelId, maxChainLength);
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Clear max chain length override for a channel.
|
|
321
|
-
*/
|
|
322
|
-
clearChannelChainLimit(channelId) {
|
|
323
|
-
this.chainLimitOverrides.delete(channelId);
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Get effective max chain length for a channel.
|
|
327
|
-
*/
|
|
328
|
-
getMaxChainLength(channelId) {
|
|
329
|
-
return this.chainLimitOverrides.get(channelId) ?? this.config.loop_prevention.max_chain_length;
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Get chain state for a channel
|
|
333
|
-
*/
|
|
334
|
-
getChainState(channelId) {
|
|
335
|
-
let state = this.chainStates.get(channelId);
|
|
336
|
-
if (!state) {
|
|
337
|
-
state = {
|
|
338
|
-
length: 0,
|
|
339
|
-
lastResponseTime: 0,
|
|
340
|
-
lastAgentId: null,
|
|
341
|
-
blocked: false,
|
|
342
|
-
};
|
|
343
|
-
this.chainStates.set(channelId, state);
|
|
344
|
-
}
|
|
345
|
-
return state;
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Check if an agent is ready (not on cooldown)
|
|
349
|
-
*/
|
|
350
|
-
isAgentReady(agentId) {
|
|
351
|
-
const lastResponse = this.agentCooldowns.get(agentId);
|
|
352
|
-
if (!lastResponse)
|
|
353
|
-
return true;
|
|
354
|
-
const agent = this.getAgent(agentId);
|
|
355
|
-
const cooldownMs = agent?.cooldown_ms || 1000;
|
|
356
|
-
return Date.now() - lastResponse >= cooldownMs;
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Find explicit trigger prefix match
|
|
360
|
-
*/
|
|
361
|
-
findExplicitTrigger(content, agents) {
|
|
362
|
-
const trimmedContent = content.trim().toLowerCase();
|
|
363
|
-
for (const agent of agents) {
|
|
364
|
-
const prefix = agent.trigger_prefix.toLowerCase();
|
|
365
|
-
if (trimmedContent.startsWith(prefix)) {
|
|
366
|
-
return agent;
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
return null;
|
|
370
|
-
}
|
|
371
|
-
/**
|
|
372
|
-
* Find agents that match keywords in the message
|
|
373
|
-
*/
|
|
374
|
-
findKeywordMatches(content, agents) {
|
|
375
|
-
const lowerContent = content.toLowerCase();
|
|
376
|
-
const matches = [];
|
|
377
|
-
for (const agent of agents) {
|
|
378
|
-
const keywords = agent.auto_respond_keywords || [];
|
|
379
|
-
for (const keyword of keywords) {
|
|
380
|
-
if (lowerContent.includes(keyword.toLowerCase())) {
|
|
381
|
-
matches.push(agent);
|
|
382
|
-
break; // One match per agent is enough
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
return matches;
|
|
387
|
-
}
|
|
388
|
-
/**
|
|
389
|
-
* Extract agent ID from a bot message's display name
|
|
390
|
-
* @example "**🔧 DevBot**: Hello" -> "developer"
|
|
391
|
-
*/
|
|
392
|
-
extractAgentIdFromMessage(messageContent) {
|
|
393
|
-
// Pattern: **<emoji> <name>**: or **<name>**:
|
|
394
|
-
const match = messageContent.match(/^\*\*([^*]+)\*\*:/);
|
|
395
|
-
if (!match)
|
|
396
|
-
return null;
|
|
397
|
-
const displayName = match[1].trim();
|
|
398
|
-
// Find agent by display_name or name
|
|
399
|
-
for (const [agentId, config] of Object.entries(this.config.agents)) {
|
|
400
|
-
if (config.display_name === displayName || config.name === displayName) {
|
|
401
|
-
return agentId;
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
return null;
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Strip trigger prefix from message content
|
|
408
|
-
*/
|
|
409
|
-
stripTriggerPrefix(content, agentId) {
|
|
410
|
-
const agent = this.getAgent(agentId);
|
|
411
|
-
if (!agent)
|
|
412
|
-
return content;
|
|
413
|
-
const prefix = agent.trigger_prefix.toLowerCase();
|
|
414
|
-
const trimmedContent = content.trim();
|
|
415
|
-
if (trimmedContent.toLowerCase().startsWith(prefix)) {
|
|
416
|
-
return trimmedContent.slice(prefix.length).trim();
|
|
417
|
-
}
|
|
418
|
-
return content;
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Get response history for debugging
|
|
422
|
-
*/
|
|
423
|
-
getResponseHistory() {
|
|
424
|
-
return [...this.responseHistory];
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* Clear all state (for testing)
|
|
428
|
-
*/
|
|
429
|
-
clearState() {
|
|
430
|
-
this.chainStates.clear();
|
|
431
|
-
this.agentCooldowns.clear();
|
|
432
|
-
this.responseHistory = [];
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
exports.MultiAgentOrchestrator = MultiAgentOrchestrator;
|
|
436
|
-
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/multi-agent/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rate Limiter for Multi-Agent Operations
|
|
3
|
-
*
|
|
4
|
-
* Provides sliding window rate limiting to prevent API abuse
|
|
5
|
-
* and ensure stable performance across different platforms.
|
|
6
|
-
*/
|
|
7
|
-
export interface RateLimitConfig {
|
|
8
|
-
/** Maximum requests per window */
|
|
9
|
-
maxRequests: number;
|
|
10
|
-
/** Window duration in milliseconds */
|
|
11
|
-
windowMs: number;
|
|
12
|
-
/** Grace period for burst requests */
|
|
13
|
-
burstAllowance?: number;
|
|
14
|
-
}
|
|
15
|
-
export interface RateLimitResult {
|
|
16
|
-
allowed: boolean;
|
|
17
|
-
remaining: number;
|
|
18
|
-
resetTime: number;
|
|
19
|
-
retryAfter?: number;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Sliding Window Rate Limiter
|
|
23
|
-
*
|
|
24
|
-
* Uses a sliding window approach for accurate rate limiting.
|
|
25
|
-
* Automatically cleans up old entries to prevent memory leaks.
|
|
26
|
-
*/
|
|
27
|
-
export declare class RateLimiter {
|
|
28
|
-
private requests;
|
|
29
|
-
private config;
|
|
30
|
-
private cleanupInterval;
|
|
31
|
-
constructor(config: RateLimitConfig);
|
|
32
|
-
/**
|
|
33
|
-
* Check if request is allowed for the given key
|
|
34
|
-
*/
|
|
35
|
-
checkLimit(key: string): RateLimitResult;
|
|
36
|
-
/**
|
|
37
|
-
* Clean up old request records to prevent memory leaks
|
|
38
|
-
*/
|
|
39
|
-
private cleanup;
|
|
40
|
-
/**
|
|
41
|
-
* Get current stats for debugging
|
|
42
|
-
*/
|
|
43
|
-
getStats(): {
|
|
44
|
-
totalKeys: number;
|
|
45
|
-
totalRequests: number;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Reset all rate limiting data
|
|
49
|
-
*/
|
|
50
|
-
reset(): void;
|
|
51
|
-
/**
|
|
52
|
-
* Clean up resources
|
|
53
|
-
*/
|
|
54
|
-
destroy(): void;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Platform-specific rate limit configurations
|
|
58
|
-
*/
|
|
59
|
-
export declare const RATE_LIMITS: {
|
|
60
|
-
readonly SLACK_MENTION: {
|
|
61
|
-
readonly maxRequests: 50;
|
|
62
|
-
readonly windowMs: 60000;
|
|
63
|
-
readonly burstAllowance: 5;
|
|
64
|
-
};
|
|
65
|
-
readonly DISCORD_MENTION: {
|
|
66
|
-
readonly maxRequests: 100;
|
|
67
|
-
readonly windowMs: 60000;
|
|
68
|
-
readonly burstAllowance: 10;
|
|
69
|
-
};
|
|
70
|
-
readonly AGENT_OPERATIONS: {
|
|
71
|
-
readonly maxRequests: 30;
|
|
72
|
-
readonly windowMs: 60000;
|
|
73
|
-
readonly burstAllowance: 3;
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/multi-agent/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,eAAe,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAYnC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe;IAoCxC;;OAEG;IACH,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACH,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IAaxD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAqBd,CAAC"}
|