@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,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Token Budget Enforcement (STORY-008)
|
|
4
|
-
*
|
|
5
|
-
* Provides fail-closed enforcement of per-model context window limits.
|
|
6
|
-
* When total tokens exceed the model's hard limit, a structured error
|
|
7
|
-
* is thrown instead of silently truncating.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.TokenBudgetExceededError = void 0;
|
|
11
|
-
exports.getModelLimit = getModelLimit;
|
|
12
|
-
exports.calculateBudget = calculateBudget;
|
|
13
|
-
exports.enforceBudget = enforceBudget;
|
|
14
|
-
const config_manager_js_1 = require("../cli/config/config-manager.js");
|
|
15
|
-
const token_estimator_js_1 = require("./token-estimator.js");
|
|
16
|
-
/** Default per-model-prefix context window limits */
|
|
17
|
-
const DEFAULT_MODEL_LIMITS = {
|
|
18
|
-
claude: 180_000,
|
|
19
|
-
codex: 120_000,
|
|
20
|
-
gpt: 120_000,
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Structured error thrown when token budget is exceeded.
|
|
24
|
-
*/
|
|
25
|
-
class TokenBudgetExceededError extends Error {
|
|
26
|
-
code = 'TOKEN_BUDGET_EXCEEDED';
|
|
27
|
-
budget;
|
|
28
|
-
constructor(budget) {
|
|
29
|
-
super(`Token budget exceeded for model "${budget.model}": ` +
|
|
30
|
-
`${budget.totalTokens} tokens > ${budget.limitTokens} limit ` +
|
|
31
|
-
`(system=${budget.systemTokens}, tools=${budget.toolsTokens}, history=${budget.historyTokens})`);
|
|
32
|
-
this.name = 'TokenBudgetExceededError';
|
|
33
|
-
this.budget = budget;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.TokenBudgetExceededError = TokenBudgetExceededError;
|
|
37
|
-
/**
|
|
38
|
-
* Resolve the context window limit for a given model name.
|
|
39
|
-
* Matches by prefix: "claude-sonnet-4-6" matches "claude" key.
|
|
40
|
-
*/
|
|
41
|
-
function getModelLimit(model) {
|
|
42
|
-
const configLimits = (0, config_manager_js_1.getConfig)().prompt?.model_limits;
|
|
43
|
-
const limits = { ...DEFAULT_MODEL_LIMITS, ...configLimits };
|
|
44
|
-
const lowerModel = model.toLowerCase();
|
|
45
|
-
// Sort by prefix length descending so more specific prefixes match first
|
|
46
|
-
const sorted = Object.entries(limits).sort((a, b) => b[0].length - a[0].length);
|
|
47
|
-
for (const [prefix, limit] of sorted) {
|
|
48
|
-
if (lowerModel.startsWith(prefix.toLowerCase())) {
|
|
49
|
-
return limit;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Fail-closed: unknown model gets conservative 120K limit
|
|
53
|
-
return 120_000;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Calculate token budget breakdown for a prompt.
|
|
57
|
-
*
|
|
58
|
-
* @param model - Model name (e.g., "claude-sonnet-4-6")
|
|
59
|
-
* @param systemPrompt - System prompt text
|
|
60
|
-
* @param toolsPrompt - Gateway tools prompt text
|
|
61
|
-
* @param historyText - Conversation history text
|
|
62
|
-
* @returns Token budget breakdown
|
|
63
|
-
*/
|
|
64
|
-
function calculateBudget(model, systemPrompt, toolsPrompt = '', historyText = '') {
|
|
65
|
-
const limitTokens = getModelLimit(model);
|
|
66
|
-
const systemTokens = (0, token_estimator_js_1.countTokens)(systemPrompt);
|
|
67
|
-
const toolsTokens = (0, token_estimator_js_1.countTokens)(toolsPrompt);
|
|
68
|
-
const historyTokens = (0, token_estimator_js_1.countTokens)(historyText);
|
|
69
|
-
const totalTokens = systemTokens + toolsTokens + historyTokens;
|
|
70
|
-
return {
|
|
71
|
-
model,
|
|
72
|
-
limitTokens,
|
|
73
|
-
systemTokens,
|
|
74
|
-
toolsTokens,
|
|
75
|
-
historyTokens,
|
|
76
|
-
totalTokens,
|
|
77
|
-
withinBudget: totalTokens <= limitTokens,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Enforce token budget. Throws TokenBudgetExceededError if over limit.
|
|
82
|
-
*
|
|
83
|
-
* @throws {TokenBudgetExceededError} When total tokens exceed model limit
|
|
84
|
-
*/
|
|
85
|
-
function enforceBudget(model, systemPrompt, toolsPrompt = '', historyText = '') {
|
|
86
|
-
const budget = calculateBudget(model, systemPrompt, toolsPrompt, historyText);
|
|
87
|
-
if (!budget.withinBudget) {
|
|
88
|
-
throw new TokenBudgetExceededError(budget);
|
|
89
|
-
}
|
|
90
|
-
return budget;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=token-budget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../src/agent/token-budget.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA+CH,sCAeC;AAWD,0CAqBC;AAOD,sCAWC;AA9GD,uEAA4D;AAC5D,6DAAmD;AAEnD,qDAAqD;AACrD,MAAM,oBAAoB,GAA2B;IACnD,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,OAAO;CACb,CAAC;AAEF;;GAEG;AACH,MAAa,wBAAyB,SAAQ,KAAK;IACxC,IAAI,GAAG,uBAAgC,CAAC;IACxC,MAAM,CAAc;IAE7B,YAAY,MAAmB;QAC7B,KAAK,CACH,oCAAoC,MAAM,CAAC,KAAK,KAAK;YACnD,GAAG,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,WAAW,SAAS;YAC7D,WAAW,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,aAAa,GAAG,CAClG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAbD,4DAaC;AAeD;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,YAAY,GAAG,IAAA,6BAAS,GAAE,CAAC,MAAM,EAAE,YAAY,CAAC;IACtD,MAAM,MAAM,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,YAAY,EAAE,CAAC;IAE5D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,yEAAyE;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAC7B,KAAa,EACb,YAAoB,EACpB,cAAsB,EAAE,EACxB,cAAsB,EAAE;IAExB,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,IAAA,gCAAW,EAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAA,gCAAW,EAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAA,gCAAW,EAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;IAE/D,OAAO;QACL,KAAK;QACL,WAAW;QACX,YAAY;QACZ,WAAW;QACX,aAAa;QACb,WAAW;QACX,YAAY,EAAE,WAAW,IAAI,WAAW;KACzC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,KAAa,EACb,YAAoB,EACpB,cAAsB,EAAE,EACxB,cAAsB,EAAE;IAExB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Kagemusha History Compiler
|
|
3
|
-
* Groups messages by month for batch compilation via LLM extraction.
|
|
4
|
-
*/
|
|
5
|
-
import type { NormalizedItem } from '../framework/types.js';
|
|
6
|
-
/**
|
|
7
|
-
* Group NormalizedItems by year-month (YYYY-MM).
|
|
8
|
-
*/
|
|
9
|
-
export declare function groupByMonth(items: NormalizedItem[]): Map<string, NormalizedItem[]>;
|
|
10
|
-
/**
|
|
11
|
-
* Get compilation stats for a set of items grouped by month.
|
|
12
|
-
*/
|
|
13
|
-
export declare function getCompilationStats(grouped: Map<string, NormalizedItem[]>): {
|
|
14
|
-
months: string[];
|
|
15
|
-
totalItems: number;
|
|
16
|
-
perMonth: Record<string, number>;
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=history-compiler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history-compiler.d.ts","sourceRoot":"","sources":["../../../src/connectors/kagemusha/history-compiler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CASA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Kagemusha History Compiler
|
|
4
|
-
* Groups messages by month for batch compilation via LLM extraction.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.groupByMonth = groupByMonth;
|
|
8
|
-
exports.getCompilationStats = getCompilationStats;
|
|
9
|
-
/**
|
|
10
|
-
* Group NormalizedItems by year-month (YYYY-MM).
|
|
11
|
-
*/
|
|
12
|
-
function groupByMonth(items) {
|
|
13
|
-
const map = new Map();
|
|
14
|
-
for (const item of items) {
|
|
15
|
-
const key = item.timestamp.toISOString().substring(0, 7);
|
|
16
|
-
if (!map.has(key))
|
|
17
|
-
map.set(key, []);
|
|
18
|
-
map.get(key).push(item);
|
|
19
|
-
}
|
|
20
|
-
return map;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get compilation stats for a set of items grouped by month.
|
|
24
|
-
*/
|
|
25
|
-
function getCompilationStats(grouped) {
|
|
26
|
-
const months = Array.from(grouped.keys()).sort();
|
|
27
|
-
const perMonth = {};
|
|
28
|
-
let totalItems = 0;
|
|
29
|
-
for (const [month, items] of grouped) {
|
|
30
|
-
perMonth[month] = items.length;
|
|
31
|
-
totalItems += items.length;
|
|
32
|
-
}
|
|
33
|
-
return { months, totalItems, perMonth };
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=history-compiler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history-compiler.js","sourceRoot":"","sources":["../../../src/connectors/kagemusha/history-compiler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,oCAQC;AAKD,kDAaC;AA7BD;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAuB;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,OAAsC;IAKxE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-artifacts.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/wiki-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAmBpE"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyWikiArtifactsMigration = applyWikiArtifactsMigration;
|
|
4
|
-
function applyWikiArtifactsMigration(db) {
|
|
5
|
-
db.exec(`
|
|
6
|
-
CREATE TABLE IF NOT EXISTS wiki_artifacts (
|
|
7
|
-
artifact_id TEXT PRIMARY KEY,
|
|
8
|
-
path TEXT NOT NULL UNIQUE,
|
|
9
|
-
title TEXT NOT NULL,
|
|
10
|
-
type TEXT NOT NULL,
|
|
11
|
-
content TEXT NOT NULL,
|
|
12
|
-
confidence TEXT NOT NULL CHECK (confidence IN ('high', 'medium', 'low')),
|
|
13
|
-
compiled_at TEXT NOT NULL,
|
|
14
|
-
source_refs_json TEXT NOT NULL CHECK (json_valid(source_refs_json)),
|
|
15
|
-
source_ids_json TEXT NOT NULL CHECK (json_valid(source_ids_json)),
|
|
16
|
-
created_at_ms INTEGER NOT NULL CHECK (created_at_ms >= 0),
|
|
17
|
-
updated_at_ms INTEGER NOT NULL CHECK (updated_at_ms >= 0)
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
CREATE INDEX IF NOT EXISTS idx_wiki_artifacts_updated_at
|
|
21
|
-
ON wiki_artifacts(updated_at_ms DESC);
|
|
22
|
-
`);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=wiki-artifacts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wiki-artifacts.js","sourceRoot":"","sources":["../../../src/db/migrations/wiki-artifacts.ts"],"names":[],"mappings":";;AAEA,kEAmBC;AAnBD,SAAgB,2BAA2B,CAAC,EAAkB;IAC5D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;GAiBP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Envelope } from './types.js';
|
|
2
|
-
export type EnvelopeSubsetResult = {
|
|
3
|
-
ok: true;
|
|
4
|
-
} | {
|
|
5
|
-
ok: false;
|
|
6
|
-
reason: 'raw_connectors_not_subset' | 'project_refs_not_subset' | 'memory_scopes_not_subset' | 'destinations_not_subset' | 'destination_id_empty' | 'tier_widened' | 'expiry_extended' | 'eval_privileged_escalation' | 'as_of_exceeds_parent' | 'budget_exceeds_parent' | 'token_budget_undefined_but_parent_bounded' | 'token_budget_exceeds_parent' | 'cost_cap_undefined_but_parent_bounded' | 'cost_cap_exceeds_parent';
|
|
7
|
-
};
|
|
8
|
-
export declare function isEnvelopeSubset(child: Envelope, parent: Envelope): EnvelopeSubsetResult;
|
|
9
|
-
//# sourceMappingURL=subset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subset.d.ts","sourceRoot":"","sources":["../../src/envelope/subset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EACF,2BAA2B,GAC3B,yBAAyB,GACzB,0BAA0B,GAC1B,yBAAyB,GACzB,sBAAsB,GACtB,cAAc,GACd,iBAAiB,GACjB,4BAA4B,GAC5B,sBAAsB,GACtB,uBAAuB,GACvB,2CAA2C,GAC3C,6BAA6B,GAC7B,uCAAuC,GACvC,yBAAyB,CAAC;CAC/B,CAAC;AAEN,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,oBAAoB,CAwExF"}
|
package/dist/envelope/subset.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isEnvelopeSubset = isEnvelopeSubset;
|
|
4
|
-
function isEnvelopeSubset(child, parent) {
|
|
5
|
-
const childScope = child.scope;
|
|
6
|
-
const parentScope = parent.scope;
|
|
7
|
-
if (childScope.allowed_destinations.some((destination) => destination.id.trim() === '')) {
|
|
8
|
-
return { ok: false, reason: 'destination_id_empty' };
|
|
9
|
-
}
|
|
10
|
-
if (!allIn(childScope.raw_connectors, new Set(parentScope.raw_connectors))) {
|
|
11
|
-
return { ok: false, reason: 'raw_connectors_not_subset' };
|
|
12
|
-
}
|
|
13
|
-
if (!allIn(childScope.project_refs.map((ref) => ref.id), new Set(parentScope.project_refs.map((ref) => ref.id)))) {
|
|
14
|
-
return { ok: false, reason: 'project_refs_not_subset' };
|
|
15
|
-
}
|
|
16
|
-
if (!allIn(childScope.memory_scopes.map((scope) => `${scope.kind}:${scope.id}`), new Set(parentScope.memory_scopes.map((scope) => `${scope.kind}:${scope.id}`)))) {
|
|
17
|
-
return { ok: false, reason: 'memory_scopes_not_subset' };
|
|
18
|
-
}
|
|
19
|
-
if (!allIn(childScope.allowed_destinations.map(destinationKey), new Set(parentScope.allowed_destinations.map(destinationKey)))) {
|
|
20
|
-
return { ok: false, reason: 'destinations_not_subset' };
|
|
21
|
-
}
|
|
22
|
-
if (child.tier < parent.tier) {
|
|
23
|
-
return { ok: false, reason: 'tier_widened' };
|
|
24
|
-
}
|
|
25
|
-
if (!isNoLaterThan(child.expires_at, parent.expires_at)) {
|
|
26
|
-
return { ok: false, reason: 'expiry_extended' };
|
|
27
|
-
}
|
|
28
|
-
if (childScope.eval_privileged === true && parentScope.eval_privileged !== true) {
|
|
29
|
-
return { ok: false, reason: 'eval_privileged_escalation' };
|
|
30
|
-
}
|
|
31
|
-
if (parentScope.as_of !== undefined &&
|
|
32
|
-
(childScope.as_of === undefined || !isNoLaterThan(childScope.as_of, parentScope.as_of))) {
|
|
33
|
-
return { ok: false, reason: 'as_of_exceeds_parent' };
|
|
34
|
-
}
|
|
35
|
-
if (child.budget.wall_seconds > parent.budget.wall_seconds) {
|
|
36
|
-
return { ok: false, reason: 'budget_exceeds_parent' };
|
|
37
|
-
}
|
|
38
|
-
if (parent.budget.token_limit !== undefined) {
|
|
39
|
-
if (child.budget.token_limit === undefined) {
|
|
40
|
-
return { ok: false, reason: 'token_budget_undefined_but_parent_bounded' };
|
|
41
|
-
}
|
|
42
|
-
if (child.budget.token_limit > parent.budget.token_limit) {
|
|
43
|
-
return { ok: false, reason: 'token_budget_exceeds_parent' };
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (parent.budget.cost_cap !== undefined) {
|
|
47
|
-
if (child.budget.cost_cap === undefined) {
|
|
48
|
-
return { ok: false, reason: 'cost_cap_undefined_but_parent_bounded' };
|
|
49
|
-
}
|
|
50
|
-
if (child.budget.cost_cap > parent.budget.cost_cap) {
|
|
51
|
-
return { ok: false, reason: 'cost_cap_exceeds_parent' };
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return { ok: true };
|
|
55
|
-
}
|
|
56
|
-
function allIn(childValues, parentValues) {
|
|
57
|
-
return childValues.every((value) => parentValues.has(value));
|
|
58
|
-
}
|
|
59
|
-
function destinationKey(destination) {
|
|
60
|
-
return `${destination.kind}:${destination.id}`;
|
|
61
|
-
}
|
|
62
|
-
function isNoLaterThan(childIso, parentIso) {
|
|
63
|
-
const childTime = Date.parse(childIso);
|
|
64
|
-
const parentTime = Date.parse(parentIso);
|
|
65
|
-
return Number.isFinite(childTime) && Number.isFinite(parentTime) && childTime <= parentTime;
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=subset.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subset.js","sourceRoot":"","sources":["../../src/envelope/subset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { MemoryConsultIntent } from '@jungjaehoon/mama-core/memory/types';
|
|
2
|
-
import type { MemoryScopeRef } from './scope-context.js';
|
|
3
|
-
export interface MemoryConsultRequest {
|
|
4
|
-
intent: MemoryConsultIntent;
|
|
5
|
-
query?: string;
|
|
6
|
-
scopeIds?: MemoryScopeRef[];
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=consult-contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consult-contract.d.ts","sourceRoot":"","sources":["../../src/memory/consult-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consult-contract.js","sourceRoot":"","sources":["../../src/memory/consult-contract.ts"],"names":[],"mappings":""}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Message Queue - Handles message queuing for busy agents
|
|
3
|
-
*
|
|
4
|
-
* Problem: When an agent process is busy, incoming @mentions are silently dropped.
|
|
5
|
-
* Solution: Queue messages per agent, automatically drain when agent becomes idle.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Per-agent FIFO queue
|
|
9
|
-
* - Max 5 messages per agent (oldest dropped when full)
|
|
10
|
-
* - 20-minute TTL (expired messages skipped)
|
|
11
|
-
* - Auto-drain on agent 'idle' event
|
|
12
|
-
*
|
|
13
|
-
* Sprint 3 F7
|
|
14
|
-
*/
|
|
15
|
-
import type { AgentRuntimeProcess } from './runtime-process.js';
|
|
16
|
-
/**
|
|
17
|
-
* Message context (from multi-agent-slack.ts or multi-agent-discord.ts)
|
|
18
|
-
*/
|
|
19
|
-
export interface MessageContext {
|
|
20
|
-
channelId: string;
|
|
21
|
-
channelName?: string;
|
|
22
|
-
userId?: string;
|
|
23
|
-
userName?: string;
|
|
24
|
-
messageId?: string;
|
|
25
|
-
threadId?: string;
|
|
26
|
-
files?: Array<{
|
|
27
|
-
url: string;
|
|
28
|
-
name: string;
|
|
29
|
-
type: string;
|
|
30
|
-
}>;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Queued message waiting for agent availability
|
|
34
|
-
*/
|
|
35
|
-
export interface QueuedMessage {
|
|
36
|
-
/** Full prompt to send to agent */
|
|
37
|
-
prompt: string;
|
|
38
|
-
/** Channel ID for response */
|
|
39
|
-
channelId: string;
|
|
40
|
-
/** Thread timestamp (Slack) or message ID (Discord) */
|
|
41
|
-
threadTs?: string;
|
|
42
|
-
/** Message source platform */
|
|
43
|
-
source: 'slack' | 'discord';
|
|
44
|
-
/** When message was enqueued (timestamp) */
|
|
45
|
-
enqueuedAt: number;
|
|
46
|
-
/** Full message context */
|
|
47
|
-
context?: MessageContext;
|
|
48
|
-
/** Discord message ID for emoji queue tracking (⏳→✅) */
|
|
49
|
-
discordMessageId?: string;
|
|
50
|
-
/** Retry count for busy-agent re-queue */
|
|
51
|
-
retryCount?: number;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Agent Message Queue Manager
|
|
55
|
-
*
|
|
56
|
-
* Manages per-agent message queues and automatic draining.
|
|
57
|
-
*/
|
|
58
|
-
export declare class AgentMessageQueue {
|
|
59
|
-
private queues;
|
|
60
|
-
/** Per-agent drain lock to prevent concurrent drain() calls (idle event + tryDrainNow race) */
|
|
61
|
-
private draining;
|
|
62
|
-
/**
|
|
63
|
-
* Enqueue a message for a busy agent
|
|
64
|
-
*
|
|
65
|
-
* @param agentId - Agent identifier
|
|
66
|
-
* @param message - Message to queue
|
|
67
|
-
*/
|
|
68
|
-
enqueue(agentId: string, message: QueuedMessage): void;
|
|
69
|
-
/**
|
|
70
|
-
* Drain queued messages for an agent
|
|
71
|
-
*
|
|
72
|
-
* Called when agent becomes idle. Processes next message in queue.
|
|
73
|
-
*
|
|
74
|
-
* @param agentId - Agent identifier
|
|
75
|
-
* @param process - Agent process to send message to
|
|
76
|
-
* @param sendCallback - Callback to handle sending response to platform
|
|
77
|
-
*/
|
|
78
|
-
drain(agentId: string, process: AgentRuntimeProcess, sendCallback: (agentId: string, message: QueuedMessage, response: string) => Promise<void>): Promise<void>;
|
|
79
|
-
private _drainInternal;
|
|
80
|
-
/**
|
|
81
|
-
* Get current queue size for an agent
|
|
82
|
-
*
|
|
83
|
-
* @param agentId - Agent identifier
|
|
84
|
-
* @returns Number of queued messages
|
|
85
|
-
*/
|
|
86
|
-
getQueueSize(agentId: string): number;
|
|
87
|
-
/**
|
|
88
|
-
* Clear expired messages from all queues
|
|
89
|
-
*
|
|
90
|
-
* Should be called periodically (e.g., every minute).
|
|
91
|
-
*/
|
|
92
|
-
clearExpired(): void;
|
|
93
|
-
/**
|
|
94
|
-
* Get all agent IDs with queued messages
|
|
95
|
-
*
|
|
96
|
-
* @returns Array of agent IDs
|
|
97
|
-
*/
|
|
98
|
-
getAgentIds(): string[];
|
|
99
|
-
/**
|
|
100
|
-
* Clear all queues (for testing)
|
|
101
|
-
*/
|
|
102
|
-
clearAll(): void;
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=agent-message-queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-message-queue.d.ts","sourceRoot":"","sources":["../../src/multi-agent/agent-message-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAchE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA2C;IACzD,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAqB;IAErC;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAwBtD;;;;;;;;OAQG;IACG,KAAK,CACT,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC;YAeF,cAAc;IAgF5B;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKrC;;;;OAIG;IACH,YAAY,IAAI,IAAI;IA0BpB;;;;OAIG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,QAAQ,IAAI,IAAI;CAGjB"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Agent Message Queue - Handles message queuing for busy agents
|
|
4
|
-
*
|
|
5
|
-
* Problem: When an agent process is busy, incoming @mentions are silently dropped.
|
|
6
|
-
* Solution: Queue messages per agent, automatically drain when agent becomes idle.
|
|
7
|
-
*
|
|
8
|
-
* Features:
|
|
9
|
-
* - Per-agent FIFO queue
|
|
10
|
-
* - Max 5 messages per agent (oldest dropped when full)
|
|
11
|
-
* - 20-minute TTL (expired messages skipped)
|
|
12
|
-
* - Auto-drain on agent 'idle' event
|
|
13
|
-
*
|
|
14
|
-
* Sprint 3 F7
|
|
15
|
-
*/
|
|
16
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
-
}
|
|
22
|
-
Object.defineProperty(o, k2, desc);
|
|
23
|
-
}) : (function(o, m, k, k2) {
|
|
24
|
-
if (k2 === undefined) k2 = k;
|
|
25
|
-
o[k2] = m[k];
|
|
26
|
-
}));
|
|
27
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
-
}) : function(o, v) {
|
|
30
|
-
o["default"] = v;
|
|
31
|
-
});
|
|
32
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
33
|
-
var ownKeys = function(o) {
|
|
34
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
35
|
-
var ar = [];
|
|
36
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
37
|
-
return ar;
|
|
38
|
-
};
|
|
39
|
-
return ownKeys(o);
|
|
40
|
-
};
|
|
41
|
-
return function (mod) {
|
|
42
|
-
if (mod && mod.__esModule) return mod;
|
|
43
|
-
var result = {};
|
|
44
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
45
|
-
__setModuleDefault(result, mod);
|
|
46
|
-
return result;
|
|
47
|
-
};
|
|
48
|
-
})();
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.AgentMessageQueue = void 0;
|
|
51
|
-
const config_manager_js_1 = require("../cli/config/config-manager.js");
|
|
52
|
-
const debugLoggerModule = __importStar(require("@jungjaehoon/mama-core/debug-logger"));
|
|
53
|
-
const { DebugLogger } = debugLoggerModule;
|
|
54
|
-
const queueLogger = new DebugLogger('MessageQueue');
|
|
55
|
-
const MAX_QUEUE_SIZE = 5;
|
|
56
|
-
const MESSAGE_TTL_MS = () => (0, config_manager_js_1.getConfig)().gateway_tuning?.message_ttl_ms ?? 1_200_000;
|
|
57
|
-
/**
|
|
58
|
-
* Agent Message Queue Manager
|
|
59
|
-
*
|
|
60
|
-
* Manages per-agent message queues and automatic draining.
|
|
61
|
-
*/
|
|
62
|
-
class AgentMessageQueue {
|
|
63
|
-
queues = new Map();
|
|
64
|
-
/** Per-agent drain lock to prevent concurrent drain() calls (idle event + tryDrainNow race) */
|
|
65
|
-
draining = new Set();
|
|
66
|
-
/**
|
|
67
|
-
* Enqueue a message for a busy agent
|
|
68
|
-
*
|
|
69
|
-
* @param agentId - Agent identifier
|
|
70
|
-
* @param message - Message to queue
|
|
71
|
-
*/
|
|
72
|
-
enqueue(agentId, message) {
|
|
73
|
-
let queue = this.queues.get(agentId);
|
|
74
|
-
if (!queue) {
|
|
75
|
-
queue = [];
|
|
76
|
-
this.queues.set(agentId, queue);
|
|
77
|
-
}
|
|
78
|
-
// Add message to queue
|
|
79
|
-
queue.push(message);
|
|
80
|
-
// Enforce size limit
|
|
81
|
-
if (queue.length > MAX_QUEUE_SIZE) {
|
|
82
|
-
const dropped = queue.shift();
|
|
83
|
-
queueLogger.warn(`Queue full for ${agentId}, dropped oldest message (waited ${Math.floor((Date.now() - dropped.enqueuedAt) / 1000)}s)`);
|
|
84
|
-
}
|
|
85
|
-
queueLogger.info(`Enqueued message for ${agentId} (queue size: ${queue.length}/${MAX_QUEUE_SIZE})`);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Drain queued messages for an agent
|
|
89
|
-
*
|
|
90
|
-
* Called when agent becomes idle. Processes next message in queue.
|
|
91
|
-
*
|
|
92
|
-
* @param agentId - Agent identifier
|
|
93
|
-
* @param process - Agent process to send message to
|
|
94
|
-
* @param sendCallback - Callback to handle sending response to platform
|
|
95
|
-
*/
|
|
96
|
-
async drain(agentId, process, sendCallback) {
|
|
97
|
-
// Per-agent drain lock: prevent concurrent drain() from idle event + tryDrainNow
|
|
98
|
-
if (this.draining.has(agentId)) {
|
|
99
|
-
queueLogger.debug(`Drain already in progress for ${agentId}, skipping`);
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
this.draining.add(agentId);
|
|
103
|
-
try {
|
|
104
|
-
await this._drainInternal(agentId, process, sendCallback, 0);
|
|
105
|
-
}
|
|
106
|
-
finally {
|
|
107
|
-
this.draining.delete(agentId);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
async _drainInternal(agentId, process, sendCallback, depth) {
|
|
111
|
-
// Safety: prevent infinite recursion
|
|
112
|
-
if (depth >= MAX_QUEUE_SIZE) {
|
|
113
|
-
queueLogger.warn(`Drain depth limit reached for ${agentId}, stopping`);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
const queue = this.queues.get(agentId);
|
|
117
|
-
if (!queue || queue.length === 0) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
// Get next message
|
|
121
|
-
const message = queue.shift();
|
|
122
|
-
if (!message) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
// Check TTL
|
|
126
|
-
const age = Date.now() - message.enqueuedAt;
|
|
127
|
-
if (age > MESSAGE_TTL_MS()) {
|
|
128
|
-
queueLogger.warn(`Skipping expired message for ${agentId} (age: ${Math.floor(age / 1000)}s, TTL: ${MESSAGE_TTL_MS() / 1000}s)`);
|
|
129
|
-
// Try next message if any
|
|
130
|
-
if (queue.length > 0) {
|
|
131
|
-
await this._drainInternal(agentId, process, sendCallback, depth + 1);
|
|
132
|
-
}
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
// Log drain
|
|
136
|
-
const waitedSec = Math.floor(age / 1000);
|
|
137
|
-
const remaining = queue.length;
|
|
138
|
-
queueLogger.info(`Delivering queued message to ${agentId} (waited ${waitedSec}s, queue: ${remaining} remaining)`);
|
|
139
|
-
try {
|
|
140
|
-
// Send message to agent process
|
|
141
|
-
const result = await process.sendMessage(message.prompt);
|
|
142
|
-
// Call platform-specific send callback
|
|
143
|
-
await sendCallback(agentId, message, result.response);
|
|
144
|
-
}
|
|
145
|
-
catch (err) {
|
|
146
|
-
if (err instanceof Error && err.message.includes('Process is busy')) {
|
|
147
|
-
// Agent busy - re-queue this message and wait for next idle event to drain
|
|
148
|
-
const retries = (message.retryCount ?? 0) + 1;
|
|
149
|
-
if (retries <= 3) {
|
|
150
|
-
message.retryCount = retries;
|
|
151
|
-
let q = this.queues.get(agentId);
|
|
152
|
-
if (!q) {
|
|
153
|
-
q = [];
|
|
154
|
-
this.queues.set(agentId, q);
|
|
155
|
-
}
|
|
156
|
-
q.unshift(message);
|
|
157
|
-
queueLogger.warn(`Agent ${agentId} still busy, re-queued (retry ${retries}/3)`);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
queueLogger.warn(`Agent ${agentId} still busy after 3 retries, dropping message`);
|
|
161
|
-
}
|
|
162
|
-
// Don't drain more when agent is busy — wait for next idle event
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
// Other error - log and continue to next message
|
|
167
|
-
queueLogger.error(`Failed to deliver message to ${agentId}:`, err);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Try draining next message if any
|
|
171
|
-
if (queue.length > 0) {
|
|
172
|
-
await this._drainInternal(agentId, process, sendCallback, depth + 1);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Get current queue size for an agent
|
|
177
|
-
*
|
|
178
|
-
* @param agentId - Agent identifier
|
|
179
|
-
* @returns Number of queued messages
|
|
180
|
-
*/
|
|
181
|
-
getQueueSize(agentId) {
|
|
182
|
-
const queue = this.queues.get(agentId);
|
|
183
|
-
return queue ? queue.length : 0;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Clear expired messages from all queues
|
|
187
|
-
*
|
|
188
|
-
* Should be called periodically (e.g., every minute).
|
|
189
|
-
*/
|
|
190
|
-
clearExpired() {
|
|
191
|
-
const now = Date.now();
|
|
192
|
-
let totalCleared = 0;
|
|
193
|
-
for (const [agentId, queue] of this.queues.entries()) {
|
|
194
|
-
const before = queue.length;
|
|
195
|
-
const filtered = queue.filter((msg) => now - msg.enqueuedAt < MESSAGE_TTL_MS());
|
|
196
|
-
if (filtered.length !== before) {
|
|
197
|
-
this.queues.set(agentId, filtered);
|
|
198
|
-
const cleared = before - filtered.length;
|
|
199
|
-
totalCleared += cleared;
|
|
200
|
-
queueLogger.info(`Cleared ${cleared} expired messages for ${agentId}`);
|
|
201
|
-
}
|
|
202
|
-
// Remove empty queues
|
|
203
|
-
if (filtered.length === 0) {
|
|
204
|
-
this.queues.delete(agentId);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (totalCleared > 0) {
|
|
208
|
-
queueLogger.info(`Total expired messages cleared: ${totalCleared}`);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Get all agent IDs with queued messages
|
|
213
|
-
*
|
|
214
|
-
* @returns Array of agent IDs
|
|
215
|
-
*/
|
|
216
|
-
getAgentIds() {
|
|
217
|
-
return Array.from(this.queues.keys());
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Clear all queues (for testing)
|
|
221
|
-
*/
|
|
222
|
-
clearAll() {
|
|
223
|
-
this.queues.clear();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
exports.AgentMessageQueue = AgentMessageQueue;
|
|
227
|
-
//# sourceMappingURL=agent-message-queue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-message-queue.js","sourceRoot":"","sources":["../../src/multi-agent/agent-message-queue.ts"],"names":[],"mappings":"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"}
|