aec-agent 1.0.3 → 1.0.4
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-core.d.ts +123 -3
- package/dist/agent-core.d.ts.map +1 -1
- package/dist/agent-core.js +219 -23
- package/dist/agent-core.js.map +1 -1
- package/dist/components/artifact-hub/artifact-hub.d.ts +11 -1
- package/dist/components/artifact-hub/artifact-hub.d.ts.map +1 -1
- package/dist/components/artifact-hub/artifact-hub.js +21 -1
- package/dist/components/artifact-hub/artifact-hub.js.map +1 -1
- package/dist/components/channel-platform-hub/adapter-kit.d.ts +51 -0
- package/dist/components/channel-platform-hub/adapter-kit.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/adapter-kit.js +153 -0
- package/dist/components/channel-platform-hub/adapter-kit.js.map +1 -0
- package/dist/components/channel-platform-hub/channel-platform-hub.d.ts +34 -0
- package/dist/components/channel-platform-hub/channel-platform-hub.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/channel-platform-hub.js +52 -0
- package/dist/components/channel-platform-hub/channel-platform-hub.js.map +1 -0
- package/dist/components/channel-platform-hub/discord/discord-adapter.d.ts +57 -0
- package/dist/components/channel-platform-hub/discord/discord-adapter.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/discord/discord-adapter.js +412 -0
- package/dist/components/channel-platform-hub/discord/discord-adapter.js.map +1 -0
- package/dist/components/channel-platform-hub/slack/slack-adapter.d.ts +56 -0
- package/dist/components/channel-platform-hub/slack/slack-adapter.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/slack/slack-adapter.js +349 -0
- package/dist/components/channel-platform-hub/slack/slack-adapter.js.map +1 -0
- package/dist/components/channel-platform-hub/slack/slack-mrkdwn.d.ts +3 -0
- package/dist/components/channel-platform-hub/slack/slack-mrkdwn.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/slack/slack-mrkdwn.js +70 -0
- package/dist/components/channel-platform-hub/slack/slack-mrkdwn.js.map +1 -0
- package/dist/components/channel-platform-hub/teams/teams-adapter.d.ts +51 -0
- package/dist/components/channel-platform-hub/teams/teams-adapter.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/teams/teams-adapter.js +333 -0
- package/dist/components/channel-platform-hub/teams/teams-adapter.js.map +1 -0
- package/dist/components/channel-platform-hub/telegram/telegram-adapter.d.ts +46 -0
- package/dist/components/channel-platform-hub/telegram/telegram-adapter.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/telegram/telegram-adapter.js +304 -0
- package/dist/components/channel-platform-hub/telegram/telegram-adapter.js.map +1 -0
- package/dist/components/channel-platform-hub/telegram/telegram-markdown.d.ts +3 -0
- package/dist/components/channel-platform-hub/telegram/telegram-markdown.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/telegram/telegram-markdown.js +87 -0
- package/dist/components/channel-platform-hub/telegram/telegram-markdown.js.map +1 -0
- package/dist/components/channel-platform-hub/types.d.ts +290 -0
- package/dist/components/channel-platform-hub/types.d.ts.map +1 -0
- package/dist/components/channel-platform-hub/types.js +23 -0
- package/dist/components/channel-platform-hub/types.js.map +1 -0
- package/dist/components/event-handler/event-dispatcher.d.ts +28 -3
- package/dist/components/event-handler/event-dispatcher.d.ts.map +1 -1
- package/dist/components/event-handler/event-dispatcher.js +77 -13
- package/dist/components/event-handler/event-dispatcher.js.map +1 -1
- package/dist/components/event-handler/events.d.ts +316 -15
- package/dist/components/event-handler/events.d.ts.map +1 -1
- package/dist/components/event-handler/events.js +94 -2
- package/dist/components/event-handler/events.js.map +1 -1
- package/dist/components/event-handler/types.d.ts +26 -0
- package/dist/components/event-handler/types.d.ts.map +1 -1
- package/dist/components/group-hub/group-hub.d.ts +117 -0
- package/dist/components/group-hub/group-hub.d.ts.map +1 -0
- package/dist/components/group-hub/group-hub.js +334 -0
- package/dist/components/group-hub/group-hub.js.map +1 -0
- package/dist/components/group-hub/group-turns.d.ts +109 -0
- package/dist/components/group-hub/group-turns.d.ts.map +1 -0
- package/dist/components/group-hub/group-turns.js +834 -0
- package/dist/components/group-hub/group-turns.js.map +1 -0
- package/dist/components/group-hub/member-prompt.d.ts +28 -0
- package/dist/components/group-hub/member-prompt.d.ts.map +1 -0
- package/dist/components/group-hub/member-prompt.js +111 -0
- package/dist/components/group-hub/member-prompt.js.map +1 -0
- package/dist/components/group-hub/recipients.d.ts +10 -0
- package/dist/components/group-hub/recipients.d.ts.map +1 -0
- package/dist/components/group-hub/recipients.js +83 -0
- package/dist/components/group-hub/recipients.js.map +1 -0
- package/dist/components/group-hub/thread.d.ts +57 -0
- package/dist/components/group-hub/thread.d.ts.map +1 -0
- package/dist/components/group-hub/thread.js +126 -0
- package/dist/components/group-hub/thread.js.map +1 -0
- package/dist/components/group-hub/types.d.ts +277 -0
- package/dist/components/group-hub/types.d.ts.map +1 -0
- package/dist/components/group-hub/types.js +51 -0
- package/dist/components/group-hub/types.js.map +1 -0
- package/dist/components/llm-provider-hub/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/components/llm-provider-hub/providers/anthropic-provider.js +22 -2
- package/dist/components/llm-provider-hub/providers/anthropic-provider.js.map +1 -1
- package/dist/components/llm-provider-hub/providers/bedrock-provider.d.ts.map +1 -1
- package/dist/components/llm-provider-hub/providers/bedrock-provider.js +15 -3
- package/dist/components/llm-provider-hub/providers/bedrock-provider.js.map +1 -1
- package/dist/components/llm-provider-hub/providers/model-info-mappers.d.ts.map +1 -1
- package/dist/components/llm-provider-hub/providers/model-info-mappers.js +27 -0
- package/dist/components/llm-provider-hub/providers/model-info-mappers.js.map +1 -1
- package/dist/components/llm-provider-hub/providers/openai-compatible-provider.d.ts.map +1 -1
- package/dist/components/llm-provider-hub/providers/openai-compatible-provider.js +10 -3
- package/dist/components/llm-provider-hub/providers/openai-compatible-provider.js.map +1 -1
- package/dist/components/llm-provider-hub/providers/openai-subscription-provider.d.ts +1 -0
- package/dist/components/llm-provider-hub/providers/openai-subscription-provider.d.ts.map +1 -1
- package/dist/components/llm-provider-hub/providers/openai-subscription-provider.js +35 -3
- package/dist/components/llm-provider-hub/providers/openai-subscription-provider.js.map +1 -1
- package/dist/components/llm-provider-hub/types.d.ts +20 -0
- package/dist/components/llm-provider-hub/types.d.ts.map +1 -1
- package/dist/components/llm-provider-hub/types.js +5 -0
- package/dist/components/llm-provider-hub/types.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/agent-loop.d.ts +87 -8
- package/dist/components/multi-agent-orchestration/agent/agent-loop/agent-loop.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/agent-loop.js +465 -62
- package/dist/components/multi-agent-orchestration/agent/agent-loop/agent-loop.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/compactor.d.ts +14 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/compactor.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/compactor.js +25 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/compactor.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/counter.d.ts +14 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/counter.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/counter.js +14 -22
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/counter.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/harness-executor.d.ts +41 -3
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/harness-executor.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/harness-executor.js +152 -44
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/harness-executor.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/run-trace.d.ts +15 -0
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/run-trace.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/run-trace.js +35 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/run-trace.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/summarizer.d.ts +10 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/summarizer.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/summarizer.js +39 -6
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/summarizer.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/summarizer.types.d.ts +2 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/components/summarizer.types.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/context-usage.d.ts +47 -0
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/context-usage.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/context-usage.js +61 -0
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/context-usage.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/memory-recall.d.ts +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/memory-recall.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/memory-recall.js +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/functions/memory-recall.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/types.d.ts +131 -8
- package/dist/components/multi-agent-orchestration/agent/agent-loop/types.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/types.js +17 -1
- package/dist/components/multi-agent-orchestration/agent/agent-loop/types.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent.d.ts +101 -15
- package/dist/components/multi-agent-orchestration/agent/agent.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/agent.js +415 -44
- package/dist/components/multi-agent-orchestration/agent/agent.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-manager.d.ts +245 -1
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-manager.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-manager.js +1583 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-manager.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-prompts.d.ts +76 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-prompts.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-prompts.js +236 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/channel-prompts.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/text.d.ts +15 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/text.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/text.js +80 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/text.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-stream.d.ts +13 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-stream.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-stream.js +41 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-stream.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-view.d.ts +69 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-view.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-view.js +210 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/turn-view.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/types.d.ts +76 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/types.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/types.js +7 -0
- package/dist/components/multi-agent-orchestration/agent/channel-manager/types.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/built-in-commands.d.ts +37 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/built-in-commands.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/built-in-commands.js +544 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/built-in-commands.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/command-manager.d.ts +75 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/command-manager.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/command-manager.js +299 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/command-manager.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/parse.d.ts +17 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/parse.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/parse.js +19 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/parse.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/types.d.ts +197 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/types.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/types.js +3 -0
- package/dist/components/multi-agent-orchestration/agent/command-manager/types.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/context-manager/context-manager.d.ts +37 -1
- package/dist/components/multi-agent-orchestration/agent/context-manager/context-manager.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/context-manager/context-manager.js +54 -2
- package/dist/components/multi-agent-orchestration/agent/context-manager/context-manager.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation-manager.d.ts +118 -14
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation-manager.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation-manager.js +239 -50
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation-manager.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation.d.ts +34 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation.js +74 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/conversation.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/turn-gate.d.ts +49 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/turn-gate.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/turn-gate.js +171 -0
- package/dist/components/multi-agent-orchestration/agent/conversation-manager/turn-gate.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/clock.d.ts +43 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/clock.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/clock.js +116 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/clock.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/internal-events.d.ts +17 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/internal-events.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/internal-events.js +93 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/internal-events.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/job-manager.d.ts +208 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/job-manager.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/job-manager.js +1207 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/job-manager.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/rules.d.ts +129 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/rules.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/rules.js +598 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/rules.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/schedule.d.ts +15 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/schedule.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/schedule.js +113 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/schedule.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/timers.d.ts +8 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/timers.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/timers.js +33 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/timers.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/types.d.ts +495 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/types.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/types.js +50 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/types.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/webhook.d.ts +37 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/webhook.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/webhook.js +157 -0
- package/dist/components/multi-agent-orchestration/agent/job-manager/webhook.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/memory-system/components/memory.d.ts +7 -0
- package/dist/components/multi-agent-orchestration/agent/memory-system/components/memory.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/memory-system/components/memory.js +189 -30
- package/dist/components/multi-agent-orchestration/agent/memory-system/components/memory.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/memory-system/memory-system.d.ts +17 -0
- package/dist/components/multi-agent-orchestration/agent/memory-system/memory-system.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/memory-system/memory-system.js +51 -0
- package/dist/components/multi-agent-orchestration/agent/memory-system/memory-system.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/model-manager/model-manager.d.ts +5 -0
- package/dist/components/multi-agent-orchestration/agent/model-manager/model-manager.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/model-manager/model-manager.js +16 -0
- package/dist/components/multi-agent-orchestration/agent/model-manager/model-manager.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/secret-manager/secret-manager.d.ts +41 -0
- package/dist/components/multi-agent-orchestration/agent/secret-manager/secret-manager.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/secret-manager/secret-manager.js +98 -0
- package/dist/components/multi-agent-orchestration/agent/secret-manager/secret-manager.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/secret-manager/types.d.ts +37 -0
- package/dist/components/multi-agent-orchestration/agent/secret-manager/types.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/secret-manager/types.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/skill-manager/skill-manager.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/skill-manager/skill-manager.js +1 -0
- package/dist/components/multi-agent-orchestration/agent/skill-manager/skill-manager.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/brief.d.ts +21 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/brief.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/brief.js +113 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/brief.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/child-loop.d.ts +52 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/child-loop.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/child-loop.js +63 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/child-loop.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/semaphore.d.ts +18 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/semaphore.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/semaphore.js +56 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/semaphore.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/subagent-manager.d.ts +128 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/subagent-manager.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/subagent-manager.js +661 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/subagent-manager.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/types.d.ts +307 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/types.d.ts.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/types.js +60 -0
- package/dist/components/multi-agent-orchestration/agent/subagent-manager/types.js.map +1 -0
- package/dist/components/multi-agent-orchestration/agent/tool-manager/tool-manager.d.ts +14 -3
- package/dist/components/multi-agent-orchestration/agent/tool-manager/tool-manager.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/tool-manager/tool-manager.js +18 -5
- package/dist/components/multi-agent-orchestration/agent/tool-manager/tool-manager.js.map +1 -1
- package/dist/components/multi-agent-orchestration/agent/types.d.ts +84 -1
- package/dist/components/multi-agent-orchestration/agent/types.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/multi-agent-orchestration.d.ts +11 -4
- package/dist/components/multi-agent-orchestration/multi-agent-orchestration.d.ts.map +1 -1
- package/dist/components/multi-agent-orchestration/multi-agent-orchestration.js +72 -4
- package/dist/components/multi-agent-orchestration/multi-agent-orchestration.js.map +1 -1
- package/dist/components/persistence-hub/default-stores/memory-channel-store.d.ts +11 -0
- package/dist/components/persistence-hub/default-stores/memory-channel-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-channel-store.js +33 -0
- package/dist/components/persistence-hub/default-stores/memory-channel-store.js.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-group-store.d.ts +21 -0
- package/dist/components/persistence-hub/default-stores/memory-group-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-group-store.js +62 -0
- package/dist/components/persistence-hub/default-stores/memory-group-store.js.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-job-store.d.ts +31 -0
- package/dist/components/persistence-hub/default-stores/memory-job-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-job-store.js +234 -0
- package/dist/components/persistence-hub/default-stores/memory-job-store.js.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-secret-store.d.ts +12 -0
- package/dist/components/persistence-hub/default-stores/memory-secret-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-secret-store.js +38 -0
- package/dist/components/persistence-hub/default-stores/memory-secret-store.js.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-session-store.d.ts.map +1 -1
- package/dist/components/persistence-hub/default-stores/memory-session-store.js +7 -0
- package/dist/components/persistence-hub/default-stores/memory-session-store.js.map +1 -1
- package/dist/components/persistence-hub/default-stores/memory-subagent-run-store.d.ts +10 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-run-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-run-store.js +30 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-run-store.js.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-type-store.d.ts +9 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-type-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-type-store.js +17 -0
- package/dist/components/persistence-hub/default-stores/memory-subagent-type-store.js.map +1 -0
- package/dist/components/persistence-hub/persistence-hub.d.ts +41 -0
- package/dist/components/persistence-hub/persistence-hub.d.ts.map +1 -1
- package/dist/components/persistence-hub/persistence-hub.js +41 -0
- package/dist/components/persistence-hub/persistence-hub.js.map +1 -1
- package/dist/components/persistence-hub/types/channel-store.d.ts +12 -0
- package/dist/components/persistence-hub/types/channel-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/types/channel-store.js +2 -0
- package/dist/components/persistence-hub/types/channel-store.js.map +1 -0
- package/dist/components/persistence-hub/types/group-store.d.ts +27 -0
- package/dist/components/persistence-hub/types/group-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/types/group-store.js +2 -0
- package/dist/components/persistence-hub/types/group-store.js.map +1 -0
- package/dist/components/persistence-hub/types/job-store.d.ts +112 -0
- package/dist/components/persistence-hub/types/job-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/types/job-store.js +2 -0
- package/dist/components/persistence-hub/types/job-store.js.map +1 -0
- package/dist/components/persistence-hub/types/secret-store.d.ts +18 -0
- package/dist/components/persistence-hub/types/secret-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/types/secret-store.js +2 -0
- package/dist/components/persistence-hub/types/secret-store.js.map +1 -0
- package/dist/components/persistence-hub/types/session-store.d.ts +5 -0
- package/dist/components/persistence-hub/types/session-store.d.ts.map +1 -1
- package/dist/components/persistence-hub/types/subagent-run-store.d.ts +11 -0
- package/dist/components/persistence-hub/types/subagent-run-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/types/subagent-run-store.js +2 -0
- package/dist/components/persistence-hub/types/subagent-run-store.js.map +1 -0
- package/dist/components/persistence-hub/types/subagent-type-store.d.ts +9 -0
- package/dist/components/persistence-hub/types/subagent-type-store.d.ts.map +1 -0
- package/dist/components/persistence-hub/types/subagent-type-store.js +2 -0
- package/dist/components/persistence-hub/types/subagent-type-store.js.map +1 -0
- package/dist/components/sandbox-hub/docker/docker-sandbox.d.ts +4 -1
- package/dist/components/sandbox-hub/docker/docker-sandbox.d.ts.map +1 -1
- package/dist/components/sandbox-hub/docker/docker-sandbox.js +398 -1
- package/dist/components/sandbox-hub/docker/docker-sandbox.js.map +1 -1
- package/dist/components/sandbox-hub/docker/sandbox-helper.d.ts.map +1 -1
- package/dist/components/sandbox-hub/docker/sandbox-helper.js +386 -5
- package/dist/components/sandbox-hub/docker/sandbox-helper.js.map +1 -1
- package/dist/components/sandbox-hub/host/host-sandbox.d.ts +16 -0
- package/dist/components/sandbox-hub/host/host-sandbox.d.ts.map +1 -1
- package/dist/components/sandbox-hub/host/host-sandbox.js +283 -2
- package/dist/components/sandbox-hub/host/host-sandbox.js.map +1 -1
- package/dist/components/sandbox-hub/sandbox-hub.d.ts +9 -0
- package/dist/components/sandbox-hub/sandbox-hub.d.ts.map +1 -1
- package/dist/components/sandbox-hub/sandbox-hub.js +18 -0
- package/dist/components/sandbox-hub/sandbox-hub.js.map +1 -1
- package/dist/components/sandbox-hub/traced-sandbox.d.ts.map +1 -1
- package/dist/components/sandbox-hub/traced-sandbox.js +32 -0
- package/dist/components/sandbox-hub/traced-sandbox.js.map +1 -1
- package/dist/components/sandbox-hub/types/sandbox.d.ts +106 -1
- package/dist/components/sandbox-hub/types/sandbox.d.ts.map +1 -1
- package/dist/components/sandbox-hub/types/sandbox.js +0 -13
- package/dist/components/sandbox-hub/types/sandbox.js.map +1 -1
- package/dist/components/secret-hub/envelope.d.ts +48 -0
- package/dist/components/secret-hub/envelope.d.ts.map +1 -0
- package/dist/components/secret-hub/envelope.js +157 -0
- package/dist/components/secret-hub/envelope.js.map +1 -0
- package/dist/components/secret-hub/rules.d.ts +33 -0
- package/dist/components/secret-hub/rules.d.ts.map +1 -0
- package/dist/components/secret-hub/rules.js +142 -0
- package/dist/components/secret-hub/rules.js.map +1 -0
- package/dist/components/secret-hub/secret-hub-provider.d.ts +61 -0
- package/dist/components/secret-hub/secret-hub-provider.d.ts.map +1 -0
- package/dist/components/secret-hub/secret-hub-provider.js +73 -0
- package/dist/components/secret-hub/secret-hub-provider.js.map +1 -0
- package/dist/components/secret-hub/secret-hub.d.ts +102 -0
- package/dist/components/secret-hub/secret-hub.d.ts.map +1 -0
- package/dist/components/secret-hub/secret-hub.js +267 -0
- package/dist/components/secret-hub/secret-hub.js.map +1 -0
- package/dist/components/secret-hub/types.d.ts +77 -0
- package/dist/components/secret-hub/types.d.ts.map +1 -0
- package/dist/components/secret-hub/types.js +23 -0
- package/dist/components/secret-hub/types.js.map +1 -0
- package/dist/components/skill-hub/built-in-skills/essential-skills.d.ts +1 -1
- package/dist/components/skill-hub/built-in-skills/essential-skills.d.ts.map +1 -1
- package/dist/components/skill-hub/built-in-skills/essential-skills.js +7 -2
- package/dist/components/skill-hub/built-in-skills/essential-skills.js.map +1 -1
- package/dist/components/skill-hub/built-in-skills/watch-and-notify.d.ts +3 -0
- package/dist/components/skill-hub/built-in-skills/watch-and-notify.d.ts.map +1 -0
- package/dist/components/skill-hub/built-in-skills/watch-and-notify.js +94 -0
- package/dist/components/skill-hub/built-in-skills/watch-and-notify.js.map +1 -0
- package/dist/components/skill-hub/skill-hub.d.ts +9 -1
- package/dist/components/skill-hub/skill-hub.d.ts.map +1 -1
- package/dist/components/skill-hub/skill-hub.js +11 -1
- package/dist/components/skill-hub/skill-hub.js.map +1 -1
- package/dist/components/subagent-hub/built-in-types.d.ts +3 -0
- package/dist/components/subagent-hub/built-in-types.d.ts.map +1 -0
- package/dist/components/subagent-hub/built-in-types.js +24 -0
- package/dist/components/subagent-hub/built-in-types.js.map +1 -0
- package/dist/components/subagent-hub/subagent-hub.d.ts +41 -0
- package/dist/components/subagent-hub/subagent-hub.d.ts.map +1 -0
- package/dist/components/subagent-hub/subagent-hub.js +158 -0
- package/dist/components/subagent-hub/subagent-hub.js.map +1 -0
- package/dist/components/subagent-hub/types.d.ts +40 -0
- package/dist/components/subagent-hub/types.d.ts.map +1 -0
- package/dist/components/subagent-hub/types.js +8 -0
- package/dist/components/subagent-hub/types.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/artifacts/artifact-helpers.d.ts +4 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/artifact-helpers.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/artifact-helpers.js +4 -0
- package/dist/components/tool-hub/built-in-tools/artifacts/artifact-helpers.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/save-artifact-tool.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/save-artifact-tool.js +4 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/save-artifact-tool.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/update-artifact-tool.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/update-artifact-tool.js +4 -1
- package/dist/components/tool-hub/built-in-tools/artifacts/update-artifact-tool.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/jobs/create-job-tools.d.ts +10 -0
- package/dist/components/tool-hub/built-in-tools/jobs/create-job-tools.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/create-job-tools.js +13 -0
- package/dist/components/tool-hub/built-in-tools/jobs/create-job-tools.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/job-tool-helpers.d.ts +60 -0
- package/dist/components/tool-hub/built-in-tools/jobs/job-tool-helpers.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/job-tool-helpers.js +240 -0
- package/dist/components/tool-hub/built-in-tools/jobs/job-tool-helpers.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/list-jobs-tool.d.ts +14 -0
- package/dist/components/tool-hub/built-in-tools/jobs/list-jobs-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/list-jobs-tool.js +36 -0
- package/dist/components/tool-hub/built-in-tools/jobs/list-jobs-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/manage-job-tool.d.ts +32 -0
- package/dist/components/tool-hub/built-in-tools/jobs/manage-job-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/jobs/manage-job-tool.js +458 -0
- package/dist/components/tool-hub/built-in-tools/jobs/manage-job-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/create-preview-tools.d.ts +9 -0
- package/dist/components/tool-hub/built-in-tools/preview/create-preview-tools.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/create-preview-tools.js +20 -0
- package/dist/components/tool-hub/built-in-tools/preview/create-preview-tools.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/list-apps-tool.d.ts +12 -0
- package/dist/components/tool-hub/built-in-tools/preview/list-apps-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/list-apps-tool.js +57 -0
- package/dist/components/tool-hub/built-in-tools/preview/list-apps-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/open-in-app-tool.d.ts +15 -0
- package/dist/components/tool-hub/built-in-tools/preview/open-in-app-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/open-in-app-tool.js +80 -0
- package/dist/components/tool-hub/built-in-tools/preview/open-in-app-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-helpers.d.ts +53 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-helpers.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-helpers.js +100 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-helpers.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-tool.d.ts +14 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-tool.js +63 -0
- package/dist/components/tool-hub/built-in-tools/preview/preview-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/service-tools.d.ts +33 -0
- package/dist/components/tool-hub/built-in-tools/preview/service-tools.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/preview/service-tools.js +180 -0
- package/dist/components/tool-hub/built-in-tools/preview/service-tools.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/create-secret-tools.d.ts +6 -0
- package/dist/components/tool-hub/built-in-tools/secrets/create-secret-tools.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/create-secret-tools.js +9 -0
- package/dist/components/tool-hub/built-in-tools/secrets/create-secret-tools.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/list-secrets-tool.d.ts +12 -0
- package/dist/components/tool-hub/built-in-tools/secrets/list-secrets-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/list-secrets-tool.js +30 -0
- package/dist/components/tool-hub/built-in-tools/secrets/list-secrets-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/manage-secret-tool.d.ts +22 -0
- package/dist/components/tool-hub/built-in-tools/secrets/manage-secret-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/manage-secret-tool.js +113 -0
- package/dist/components/tool-hub/built-in-tools/secrets/manage-secret-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/secret-tool-helpers.d.ts +9 -0
- package/dist/components/tool-hub/built-in-tools/secrets/secret-tool-helpers.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/secrets/secret-tool-helpers.js +29 -0
- package/dist/components/tool-hub/built-in-tools/secrets/secret-tool-helpers.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/subagents/spawn-subagent-tool.d.ts +27 -0
- package/dist/components/tool-hub/built-in-tools/subagents/spawn-subagent-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/subagents/spawn-subagent-tool.js +112 -0
- package/dist/components/tool-hub/built-in-tools/subagents/spawn-subagent-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/web/http-request-tool.d.ts +43 -0
- package/dist/components/tool-hub/built-in-tools/web/http-request-tool.d.ts.map +1 -0
- package/dist/components/tool-hub/built-in-tools/web/http-request-tool.js +234 -0
- package/dist/components/tool-hub/built-in-tools/web/http-request-tool.js.map +1 -0
- package/dist/components/tool-hub/built-in-tools/web/web-extract-tool.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/web/web-extract-tool.js +2 -0
- package/dist/components/tool-hub/built-in-tools/web/web-extract-tool.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/web/web-search-tool.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/web/web-search-tool.js +2 -0
- package/dist/components/tool-hub/built-in-tools/web/web-search-tool.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/workspace/run-code-tool.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/workspace/run-code-tool.js +9 -1
- package/dist/components/tool-hub/built-in-tools/workspace/run-code-tool.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/workspace/terminal-tool.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/workspace/terminal-tool.js +9 -2
- package/dist/components/tool-hub/built-in-tools/workspace/terminal-tool.js.map +1 -1
- package/dist/components/tool-hub/built-in-tools/workspace/workspace-helpers.d.ts +17 -0
- package/dist/components/tool-hub/built-in-tools/workspace/workspace-helpers.d.ts.map +1 -1
- package/dist/components/tool-hub/built-in-tools/workspace/workspace-helpers.js +29 -0
- package/dist/components/tool-hub/built-in-tools/workspace/workspace-helpers.js.map +1 -1
- package/dist/components/tool-hub/tool-links.d.ts +9 -0
- package/dist/components/tool-hub/tool-links.d.ts.map +1 -0
- package/dist/components/tool-hub/tool-links.js +11 -0
- package/dist/components/tool-hub/tool-links.js.map +1 -0
- package/dist/components/tool-hub/types.d.ts +101 -1
- package/dist/components/tool-hub/types.d.ts.map +1 -1
- package/dist/index.d.ts +109 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -1
- package/dist/kernel/errors/channel-error.d.ts +24 -0
- package/dist/kernel/errors/channel-error.d.ts.map +1 -0
- package/dist/kernel/errors/channel-error.js +15 -0
- package/dist/kernel/errors/channel-error.js.map +1 -0
- package/dist/kernel/errors/command-error.d.ts +12 -0
- package/dist/kernel/errors/command-error.d.ts.map +1 -0
- package/dist/kernel/errors/command-error.js +11 -0
- package/dist/kernel/errors/command-error.js.map +1 -0
- package/dist/kernel/errors/group-error.d.ts +15 -0
- package/dist/kernel/errors/group-error.d.ts.map +1 -0
- package/dist/kernel/errors/group-error.js +10 -0
- package/dist/kernel/errors/group-error.js.map +1 -0
- package/dist/kernel/errors/job-error.d.ts +23 -0
- package/dist/kernel/errors/job-error.d.ts.map +1 -0
- package/dist/kernel/errors/job-error.js +15 -0
- package/dist/kernel/errors/job-error.js.map +1 -0
- package/dist/kernel/errors/secret-error.d.ts +19 -0
- package/dist/kernel/errors/secret-error.d.ts.map +1 -0
- package/dist/kernel/errors/secret-error.js +10 -0
- package/dist/kernel/errors/secret-error.js.map +1 -0
- package/dist/kernel/errors/session-error.d.ts +5 -1
- package/dist/kernel/errors/session-error.d.ts.map +1 -1
- package/dist/kernel/errors/session-error.js.map +1 -1
- package/dist/kernel/errors/subagent-error.d.ts +19 -0
- package/dist/kernel/errors/subagent-error.d.ts.map +1 -0
- package/dist/kernel/errors/subagent-error.js +10 -0
- package/dist/kernel/errors/subagent-error.js.map +1 -0
- package/dist/kernel/interfaces/kernel.d.ts +15 -0
- package/dist/kernel/interfaces/kernel.d.ts.map +1 -1
- package/dist/kernel/types.d.ts +80 -1
- package/dist/kernel/types.d.ts.map +1 -1
- package/dist/testing/fake-channel.d.ts +60 -0
- package/dist/testing/fake-channel.d.ts.map +1 -0
- package/dist/testing/fake-channel.js +135 -0
- package/dist/testing/fake-channel.js.map +1 -0
- package/dist/testing/in-memory-sandbox.d.ts +4 -1
- package/dist/testing/in-memory-sandbox.d.ts.map +1 -1
- package/dist/testing/in-memory-sandbox.js +63 -3
- package/dist/testing/in-memory-sandbox.js.map +1 -1
- package/dist/testing/mock-session-store.d.ts.map +1 -1
- package/dist/testing/mock-session-store.js +7 -0
- package/dist/testing/mock-session-store.js.map +1 -1
- package/package.json +2 -1
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/scheduled-job-manager.d.ts +0 -38
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/scheduled-job-manager.d.ts.map +0 -1
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/scheduled-job-manager.js +0 -155
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/scheduled-job-manager.js.map +0 -1
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/types.d.ts +0 -27
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/types.d.ts.map +0 -1
- package/dist/components/multi-agent-orchestration/agent/scheduled-job-manager/types.js.map +0 -1
- /package/dist/components/multi-agent-orchestration/agent/{scheduled-job-manager → secret-manager}/types.js +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { Session } from "../../kernel/types.js";
|
|
2
|
+
import { type GroupPresencePayload } from "../event-handler/events.js";
|
|
3
|
+
import type { EventBus } from "../event-handler/types.js";
|
|
4
|
+
import type { GroupMessageStore, GroupStore } from "../persistence-hub/types/group-store.js";
|
|
5
|
+
import type { MessageStore } from "../persistence-hub/types/message-store.js";
|
|
6
|
+
import type { SessionStore } from "../persistence-hub/types/session-store.js";
|
|
7
|
+
import type { SubagentScopes } from "../multi-agent-orchestration/agent/subagent-manager/types.js";
|
|
8
|
+
import { GroupTurns, type GroupAgentHost } from "./group-turns.js";
|
|
9
|
+
import { type Group, type GroupDefinition, type GroupMemberRunner, type GroupMessage, type GroupPatch, type GroupSendOptions, type GroupSendRequest, type GroupTurnResult } from "./types.js";
|
|
10
|
+
export interface GroupHubDeps {
|
|
11
|
+
eventBus: EventBus;
|
|
12
|
+
/** Resolved on every call, so `AgentCore.usePersistence()` can swap the stores. */
|
|
13
|
+
getStore: () => GroupStore;
|
|
14
|
+
getMessages: () => GroupMessageStore;
|
|
15
|
+
getSessions: () => SessionStore;
|
|
16
|
+
/** The members' conversation stores — a deleted group session takes its member sessions' messages with it. */
|
|
17
|
+
getMemberMessages?: () => MessageStore[];
|
|
18
|
+
/** The agents members can be (AgentCore.agents). */
|
|
19
|
+
getAgents: () => GroupAgentHost | undefined;
|
|
20
|
+
/** The host's runner for member turns (AgentCore.useGroupRunner). */
|
|
21
|
+
getRunner: () => GroupMemberRunner | undefined;
|
|
22
|
+
}
|
|
23
|
+
/** Where a member session belongs. */
|
|
24
|
+
export interface GroupMemberSessionRef {
|
|
25
|
+
groupId: string;
|
|
26
|
+
groupSessionId: string;
|
|
27
|
+
agentId: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Group chats (A-106) — several agents in one conversation. Owns:
|
|
31
|
+
* - the groups (PersistenceHub.groups): create, change, delete, with validation (A-107)
|
|
32
|
+
* and a note in the open session for membership and settings changes (A-113);
|
|
33
|
+
* - their sessions (SessionStore, metadata.source "group") and threads
|
|
34
|
+
* (PersistenceHub.groupMessages), and each member's private session per group session;
|
|
35
|
+
* - group turns (GroupTurns): who answers (A-108), lead routing and rounds (A-109),
|
|
36
|
+
* guard rails (A-112), stop and retry (A-115).
|
|
37
|
+
* It emits group:* events; hosts stream them to the thread's viewers. A deleted agent leaves
|
|
38
|
+
* every group (agent:removed).
|
|
39
|
+
*/
|
|
40
|
+
export declare class GroupHub {
|
|
41
|
+
private deps;
|
|
42
|
+
private readonly thread;
|
|
43
|
+
private readonly turns;
|
|
44
|
+
private unsubscribes;
|
|
45
|
+
constructor(deps: GroupHubDeps);
|
|
46
|
+
/** Spawn scopes of group leads while they lead a turn (AgentDeps.subagentScopes). */
|
|
47
|
+
get scopes(): SubagentScopes;
|
|
48
|
+
list(): Promise<Group[]>;
|
|
49
|
+
get(groupId: string): Promise<Group | null>;
|
|
50
|
+
/** Create a group. Throws GroupError ("invalid_argument", "unknown_agent"). */
|
|
51
|
+
create(definition: GroupDefinition): Promise<Group>;
|
|
52
|
+
/**
|
|
53
|
+
* Change a group; omitted fields stay. With `noteIn` (a session of the group, usually the
|
|
54
|
+
* one the user has open), the changes are written there as notes ("RFI Desk now leads.").
|
|
55
|
+
*/
|
|
56
|
+
update(groupId: string, patch: GroupPatch, options?: {
|
|
57
|
+
noteIn?: string;
|
|
58
|
+
}): Promise<Group>;
|
|
59
|
+
/** Delete a group with all its sessions and their threads. Stops running turns first. */
|
|
60
|
+
delete(groupId: string): Promise<void>;
|
|
61
|
+
/** Start a session of the group. */
|
|
62
|
+
startSession(groupId: string, options?: {
|
|
63
|
+
title?: string;
|
|
64
|
+
}): Promise<Session>;
|
|
65
|
+
/** The group's sessions, most recently active first. */
|
|
66
|
+
listSessions(groupId: string): Promise<Session[]>;
|
|
67
|
+
/** One of the group's sessions, or null. */
|
|
68
|
+
getSession(groupId: string, sessionId: string): Promise<Session | null>;
|
|
69
|
+
/** Rename or pin a session. Throws GroupError "not_found". */
|
|
70
|
+
updateSession(groupId: string, sessionId: string, fields: {
|
|
71
|
+
title?: string;
|
|
72
|
+
pinned?: boolean;
|
|
73
|
+
}): Promise<Session>;
|
|
74
|
+
/** Delete a session: its thread, its member sessions (and their messages) and the session. */
|
|
75
|
+
deleteSession(groupId: string, sessionId: string): Promise<void>;
|
|
76
|
+
/** The session's thread, in order; `afterSeq` keeps only later messages. */
|
|
77
|
+
messages(groupId: string, sessionId: string, options?: {
|
|
78
|
+
afterSeq?: number;
|
|
79
|
+
}): Promise<GroupMessage[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Every current member's private session in a group session, created when missing — a host
|
|
82
|
+
* attaches its approval channel to each before a turn streams.
|
|
83
|
+
*/
|
|
84
|
+
memberSessions(groupId: string, sessionId: string): Promise<Array<{
|
|
85
|
+
agentId: string;
|
|
86
|
+
sessionId: string;
|
|
87
|
+
}>>;
|
|
88
|
+
/** Where a member session belongs (hosts route its approvals to the group's thread), or null. */
|
|
89
|
+
memberSessionOf(sessionId: string): Promise<GroupMemberSessionRef | null>;
|
|
90
|
+
/**
|
|
91
|
+
* Send a user message to a group session and run the group turn it sets off; resolves
|
|
92
|
+
* when every member is done. Its progress streams as group:* events. Throws GroupError
|
|
93
|
+
* before anything runs ("busy" while another turn runs in the session).
|
|
94
|
+
*/
|
|
95
|
+
send(groupId: string, sessionId: string, request: GroupSendRequest, options?: GroupSendOptions): Promise<GroupTurnResult>;
|
|
96
|
+
/** Run a member's answer again, in place. */
|
|
97
|
+
retry(groupId: string, sessionId: string, messageId: string, options?: GroupSendOptions): Promise<GroupTurnResult>;
|
|
98
|
+
/** Stop the session's running turn, or one member of it. False when nothing was running. */
|
|
99
|
+
stop(sessionId: string, agentId?: string): boolean;
|
|
100
|
+
isBusy(sessionId: string): boolean;
|
|
101
|
+
/** What each member of the session's running turn is doing (empty when idle). */
|
|
102
|
+
presence(sessionId: string): GroupPresencePayload[];
|
|
103
|
+
/** Every running group turn, with who is doing what. */
|
|
104
|
+
running(): ReturnType<GroupTurns["running"]>;
|
|
105
|
+
/** Stop every running turn and stop listening. */
|
|
106
|
+
dispose(): void;
|
|
107
|
+
private require;
|
|
108
|
+
private sessionOf;
|
|
109
|
+
/** A-107: the definition checked and normalized. */
|
|
110
|
+
private validate;
|
|
111
|
+
/** The notes a change leaves in the thread. */
|
|
112
|
+
private describeChange;
|
|
113
|
+
/** agent:removed — the agent leaves every group; a lead hands over to the next member. */
|
|
114
|
+
private removeAgentEverywhere;
|
|
115
|
+
private changed;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=group-hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-hub.d.ts","sourceRoot":"","sources":["../../../src/components/group-hub/group-hub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { GroupError } from "../../kernel/errors/group-error.js";
|
|
3
|
+
import { SDKEventType } from "../event-handler/events.js";
|
|
4
|
+
import { GroupTurns } from "./group-turns.js";
|
|
5
|
+
import { GroupThread } from "./thread.js";
|
|
6
|
+
import { GROUP_TEXT_LIMITS, isGroupSession, } from "./types.js";
|
|
7
|
+
const REPLY_MODES = ["lead", "all", "mention"];
|
|
8
|
+
const MEMBER_VIEWS = ["full", "addressed"];
|
|
9
|
+
/**
|
|
10
|
+
* Group chats (A-106) — several agents in one conversation. Owns:
|
|
11
|
+
* - the groups (PersistenceHub.groups): create, change, delete, with validation (A-107)
|
|
12
|
+
* and a note in the open session for membership and settings changes (A-113);
|
|
13
|
+
* - their sessions (SessionStore, metadata.source "group") and threads
|
|
14
|
+
* (PersistenceHub.groupMessages), and each member's private session per group session;
|
|
15
|
+
* - group turns (GroupTurns): who answers (A-108), lead routing and rounds (A-109),
|
|
16
|
+
* guard rails (A-112), stop and retry (A-115).
|
|
17
|
+
* It emits group:* events; hosts stream them to the thread's viewers. A deleted agent leaves
|
|
18
|
+
* every group (agent:removed).
|
|
19
|
+
*/
|
|
20
|
+
export class GroupHub {
|
|
21
|
+
deps;
|
|
22
|
+
thread;
|
|
23
|
+
turns;
|
|
24
|
+
unsubscribes = [];
|
|
25
|
+
constructor(deps) {
|
|
26
|
+
this.deps = deps;
|
|
27
|
+
this.thread = new GroupThread({ eventBus: deps.eventBus, getMessages: deps.getMessages, getSessions: deps.getSessions });
|
|
28
|
+
this.turns = new GroupTurns({
|
|
29
|
+
eventBus: deps.eventBus,
|
|
30
|
+
thread: this.thread,
|
|
31
|
+
getSessions: deps.getSessions,
|
|
32
|
+
getAgents: deps.getAgents,
|
|
33
|
+
getRunner: deps.getRunner,
|
|
34
|
+
});
|
|
35
|
+
this.unsubscribes.push(deps.eventBus.on(SDKEventType.AgentRemoved, (e) => this.removeAgentEverywhere(e.payload.agentId).catch((err) => {
|
|
36
|
+
console.warn(`[group] could not remove agent ${e.payload.agentId} from its groups:`, errorMessage(err));
|
|
37
|
+
})));
|
|
38
|
+
}
|
|
39
|
+
/** Spawn scopes of group leads while they lead a turn (AgentDeps.subagentScopes). */
|
|
40
|
+
get scopes() {
|
|
41
|
+
return { get: (sessionId) => this.turns.get(sessionId) };
|
|
42
|
+
}
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Groups
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
async list() {
|
|
47
|
+
return this.deps.getStore().list();
|
|
48
|
+
}
|
|
49
|
+
async get(groupId) {
|
|
50
|
+
return this.deps.getStore().get(groupId);
|
|
51
|
+
}
|
|
52
|
+
/** Create a group. Throws GroupError ("invalid_argument", "unknown_agent"). */
|
|
53
|
+
async create(definition) {
|
|
54
|
+
const now = new Date().toISOString();
|
|
55
|
+
const group = { ...this.validate(definition), id: randomUUID(), createdAt: now, updatedAt: now };
|
|
56
|
+
await this.deps.getStore().save(group);
|
|
57
|
+
this.changed(group.id, "created");
|
|
58
|
+
return group;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Change a group; omitted fields stay. With `noteIn` (a session of the group, usually the
|
|
62
|
+
* one the user has open), the changes are written there as notes ("RFI Desk now leads.").
|
|
63
|
+
*/
|
|
64
|
+
async update(groupId, patch, options = {}) {
|
|
65
|
+
const before = await this.require(groupId);
|
|
66
|
+
const merged = {
|
|
67
|
+
name: patch.name ?? before.name,
|
|
68
|
+
topic: patch.topic ?? before.topic,
|
|
69
|
+
members: patch.members ?? before.members,
|
|
70
|
+
leadId: patch.leadId ?? before.leadId,
|
|
71
|
+
replyMode: patch.replyMode ?? before.replyMode,
|
|
72
|
+
// A member who left is no longer muted.
|
|
73
|
+
muted: (patch.muted ?? before.muted).filter((id) => (patch.members ?? before.members).includes(id)),
|
|
74
|
+
memberView: patch.memberView ?? before.memberView,
|
|
75
|
+
limits: patch.limits ?? before.limits,
|
|
76
|
+
};
|
|
77
|
+
const group = { ...this.validate(merged), id: before.id, createdAt: before.createdAt, updatedAt: new Date().toISOString() };
|
|
78
|
+
await this.deps.getStore().save(group);
|
|
79
|
+
this.changed(group.id, "updated");
|
|
80
|
+
if (options.noteIn) {
|
|
81
|
+
const session = await this.sessionOf(group.id, options.noteIn).catch(() => null);
|
|
82
|
+
if (session)
|
|
83
|
+
for (const note of this.describeChange(before, group))
|
|
84
|
+
await this.thread.note(group.id, session.id, note);
|
|
85
|
+
}
|
|
86
|
+
return group;
|
|
87
|
+
}
|
|
88
|
+
/** Delete a group with all its sessions and their threads. Stops running turns first. */
|
|
89
|
+
async delete(groupId) {
|
|
90
|
+
await this.require(groupId);
|
|
91
|
+
for (const session of await this.listSessions(groupId))
|
|
92
|
+
await this.deleteSession(groupId, session.id);
|
|
93
|
+
await this.deps.getStore().delete(groupId);
|
|
94
|
+
this.changed(groupId, "deleted");
|
|
95
|
+
}
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Sessions
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
/** Start a session of the group. */
|
|
100
|
+
async startSession(groupId, options = {}) {
|
|
101
|
+
await this.require(groupId);
|
|
102
|
+
const metadata = { source: "group", groupId, ...(options.title?.trim() ? { title: options.title.trim() } : {}) };
|
|
103
|
+
return this.deps.getSessions().create({ ...metadata });
|
|
104
|
+
}
|
|
105
|
+
/** The group's sessions, most recently active first. */
|
|
106
|
+
async listSessions(groupId) {
|
|
107
|
+
const sessions = await this.deps.getSessions().list({ metadata: { source: "group", groupId } });
|
|
108
|
+
return sessions.sort((a, b) => b.updatedAt - a.updatedAt);
|
|
109
|
+
}
|
|
110
|
+
/** One of the group's sessions, or null. */
|
|
111
|
+
async getSession(groupId, sessionId) {
|
|
112
|
+
const session = await this.deps.getSessions().get(sessionId);
|
|
113
|
+
return session && isGroupSession(session) && session.metadata["groupId"] === groupId ? session : null;
|
|
114
|
+
}
|
|
115
|
+
/** Rename or pin a session. Throws GroupError "not_found". */
|
|
116
|
+
async updateSession(groupId, sessionId, fields) {
|
|
117
|
+
await this.sessionOf(groupId, sessionId);
|
|
118
|
+
const updated = await this.thread.updateMetadata(sessionId, (meta) => {
|
|
119
|
+
const next = { ...meta };
|
|
120
|
+
if (fields.title !== undefined) {
|
|
121
|
+
const title = fields.title.trim().slice(0, 200);
|
|
122
|
+
if (title)
|
|
123
|
+
next.title = title;
|
|
124
|
+
else
|
|
125
|
+
delete next.title;
|
|
126
|
+
}
|
|
127
|
+
if (fields.pinned !== undefined) {
|
|
128
|
+
if (fields.pinned)
|
|
129
|
+
next.pinned = true;
|
|
130
|
+
else
|
|
131
|
+
delete next.pinned;
|
|
132
|
+
}
|
|
133
|
+
return next;
|
|
134
|
+
});
|
|
135
|
+
if (!updated)
|
|
136
|
+
throw new GroupError("no such group session", "not_found");
|
|
137
|
+
return updated;
|
|
138
|
+
}
|
|
139
|
+
/** Delete a session: its thread, its member sessions (and their messages) and the session. */
|
|
140
|
+
async deleteSession(groupId, sessionId) {
|
|
141
|
+
await this.sessionOf(groupId, sessionId);
|
|
142
|
+
this.turns.stop(sessionId);
|
|
143
|
+
await this.turns.idle(sessionId);
|
|
144
|
+
await this.thread.settle(sessionId);
|
|
145
|
+
const sessions = this.deps.getSessions();
|
|
146
|
+
for (const member of await sessions.list({ metadata: { source: "group-member", groupSessionId: sessionId } })) {
|
|
147
|
+
for (const store of this.deps.getMemberMessages?.() ?? [])
|
|
148
|
+
await store.clear(member.id).catch(() => undefined);
|
|
149
|
+
await sessions.delete(member.id);
|
|
150
|
+
}
|
|
151
|
+
await this.deps.getMessages().deleteBySession(sessionId);
|
|
152
|
+
await sessions.delete(sessionId);
|
|
153
|
+
this.turns.forgetSession(sessionId);
|
|
154
|
+
this.thread.forget(sessionId);
|
|
155
|
+
}
|
|
156
|
+
/** The session's thread, in order; `afterSeq` keeps only later messages. */
|
|
157
|
+
async messages(groupId, sessionId, options = {}) {
|
|
158
|
+
await this.sessionOf(groupId, sessionId);
|
|
159
|
+
return this.thread.list(sessionId, options.afterSeq);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Every current member's private session in a group session, created when missing — a host
|
|
163
|
+
* attaches its approval channel to each before a turn streams.
|
|
164
|
+
*/
|
|
165
|
+
async memberSessions(groupId, sessionId) {
|
|
166
|
+
const group = await this.require(groupId);
|
|
167
|
+
await this.sessionOf(groupId, sessionId);
|
|
168
|
+
const host = this.deps.getAgents();
|
|
169
|
+
const out = [];
|
|
170
|
+
for (const agentId of group.members) {
|
|
171
|
+
if (!host?.get(agentId))
|
|
172
|
+
continue;
|
|
173
|
+
out.push({ agentId, sessionId: await this.turns.memberSession(group, sessionId, agentId) });
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
/** Where a member session belongs (hosts route its approvals to the group's thread), or null. */
|
|
178
|
+
async memberSessionOf(sessionId) {
|
|
179
|
+
const session = await this.deps.getSessions().get(sessionId);
|
|
180
|
+
const meta = session?.metadata;
|
|
181
|
+
if (meta?.source !== "group-member" || !meta.groupId || !meta.groupSessionId || !meta.agentId)
|
|
182
|
+
return null;
|
|
183
|
+
return { groupId: meta.groupId, groupSessionId: meta.groupSessionId, agentId: meta.agentId };
|
|
184
|
+
}
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// Turns
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
/**
|
|
189
|
+
* Send a user message to a group session and run the group turn it sets off; resolves
|
|
190
|
+
* when every member is done. Its progress streams as group:* events. Throws GroupError
|
|
191
|
+
* before anything runs ("busy" while another turn runs in the session).
|
|
192
|
+
*/
|
|
193
|
+
async send(groupId, sessionId, request, options) {
|
|
194
|
+
const group = await this.require(groupId);
|
|
195
|
+
const session = await this.sessionOf(groupId, sessionId);
|
|
196
|
+
return this.turns.send(group, session, request, options);
|
|
197
|
+
}
|
|
198
|
+
/** Run a member's answer again, in place. */
|
|
199
|
+
async retry(groupId, sessionId, messageId, options) {
|
|
200
|
+
const group = await this.require(groupId);
|
|
201
|
+
const session = await this.sessionOf(groupId, sessionId);
|
|
202
|
+
const message = await this.deps.getMessages().get(messageId);
|
|
203
|
+
if (!message || message.sessionId !== sessionId)
|
|
204
|
+
throw new GroupError("no such message in this session", "not_found");
|
|
205
|
+
return this.turns.retry(group, session, message, options);
|
|
206
|
+
}
|
|
207
|
+
/** Stop the session's running turn, or one member of it. False when nothing was running. */
|
|
208
|
+
stop(sessionId, agentId) {
|
|
209
|
+
return this.turns.stop(sessionId, agentId);
|
|
210
|
+
}
|
|
211
|
+
isBusy(sessionId) {
|
|
212
|
+
return this.turns.isBusy(sessionId);
|
|
213
|
+
}
|
|
214
|
+
/** What each member of the session's running turn is doing (empty when idle). */
|
|
215
|
+
presence(sessionId) {
|
|
216
|
+
return this.turns.presenceOf(sessionId);
|
|
217
|
+
}
|
|
218
|
+
/** Every running group turn, with who is doing what. */
|
|
219
|
+
running() {
|
|
220
|
+
return this.turns.running();
|
|
221
|
+
}
|
|
222
|
+
/** Stop every running turn and stop listening. */
|
|
223
|
+
dispose() {
|
|
224
|
+
this.turns.dispose();
|
|
225
|
+
for (const off of this.unsubscribes)
|
|
226
|
+
off();
|
|
227
|
+
this.unsubscribes = [];
|
|
228
|
+
}
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// Internals
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
async require(groupId) {
|
|
233
|
+
const group = await this.deps.getStore().get(groupId);
|
|
234
|
+
if (!group)
|
|
235
|
+
throw new GroupError("no such group", "not_found");
|
|
236
|
+
return group;
|
|
237
|
+
}
|
|
238
|
+
async sessionOf(groupId, sessionId) {
|
|
239
|
+
const session = await this.getSession(groupId, sessionId);
|
|
240
|
+
if (!session)
|
|
241
|
+
throw new GroupError("no such session in this group", "not_found");
|
|
242
|
+
return session;
|
|
243
|
+
}
|
|
244
|
+
/** A-107: the definition checked and normalized. */
|
|
245
|
+
validate(definition) {
|
|
246
|
+
const name = typeof definition?.name === "string" ? definition.name.trim() : "";
|
|
247
|
+
if (!name)
|
|
248
|
+
throw new GroupError('"name" is required', "invalid_argument");
|
|
249
|
+
if (name.length > GROUP_TEXT_LIMITS.name)
|
|
250
|
+
throw new GroupError(`"name" is ${name.length} characters; keep it under ${GROUP_TEXT_LIMITS.name}`, "invalid_argument");
|
|
251
|
+
const topic = typeof definition.topic === "string" ? definition.topic.trim() : "";
|
|
252
|
+
if (topic.length > GROUP_TEXT_LIMITS.topic)
|
|
253
|
+
throw new GroupError(`"topic" is ${topic.length} characters; keep it under ${GROUP_TEXT_LIMITS.topic}`, "invalid_argument");
|
|
254
|
+
if (!Array.isArray(definition.members))
|
|
255
|
+
throw new GroupError('"members" must be a list of agent ids', "invalid_argument");
|
|
256
|
+
const members = [...new Set(definition.members.filter((m) => typeof m === "string" && m.trim() !== "").map((m) => m.trim()))];
|
|
257
|
+
if (members.length < 2)
|
|
258
|
+
throw new GroupError("a group needs at least 2 members", "invalid_argument");
|
|
259
|
+
if (members.length > GROUP_TEXT_LIMITS.members)
|
|
260
|
+
throw new GroupError(`a group has at most ${GROUP_TEXT_LIMITS.members} members`, "invalid_argument");
|
|
261
|
+
const host = this.deps.getAgents();
|
|
262
|
+
const unknown = members.filter((id) => !host?.get(id));
|
|
263
|
+
if (unknown.length)
|
|
264
|
+
throw new GroupError(`not a running agent: ${unknown.join(", ")}`, "unknown_agent");
|
|
265
|
+
const leadId = typeof definition.leadId === "string" ? definition.leadId.trim() : "";
|
|
266
|
+
if (!members.includes(leadId))
|
|
267
|
+
throw new GroupError("the lead must be one of the members", "invalid_argument");
|
|
268
|
+
const replyMode = definition.replyMode ?? "lead";
|
|
269
|
+
if (!REPLY_MODES.includes(replyMode))
|
|
270
|
+
throw new GroupError(`"replyMode" must be one of ${REPLY_MODES.join(", ")}`, "invalid_argument");
|
|
271
|
+
const memberView = definition.memberView ?? "full";
|
|
272
|
+
if (!MEMBER_VIEWS.includes(memberView))
|
|
273
|
+
throw new GroupError(`"memberView" must be one of ${MEMBER_VIEWS.join(", ")}`, "invalid_argument");
|
|
274
|
+
const muted = [...new Set((definition.muted ?? []).filter((m) => typeof m === "string").map((m) => m.trim()))];
|
|
275
|
+
if (muted.includes(leadId))
|
|
276
|
+
throw new GroupError("the lead can't be muted", "invalid_argument");
|
|
277
|
+
const strangers = muted.filter((id) => !members.includes(id));
|
|
278
|
+
if (strangers.length)
|
|
279
|
+
throw new GroupError(`muted agents must be members: ${strangers.join(", ")}`, "invalid_argument");
|
|
280
|
+
const limits = typeof definition.limits === "object" && definition.limits !== null ? { ...definition.limits } : {};
|
|
281
|
+
return { name, topic, members, leadId, replyMode, muted, memberView, limits };
|
|
282
|
+
}
|
|
283
|
+
/** The notes a change leaves in the thread. */
|
|
284
|
+
describeChange(before, after) {
|
|
285
|
+
const name = (id) => this.deps.getAgents()?.get(id)?.profile.name ?? id;
|
|
286
|
+
const notes = [];
|
|
287
|
+
if (before.name !== after.name)
|
|
288
|
+
notes.push(`The group is now called “${after.name}”.`);
|
|
289
|
+
if (before.topic !== after.topic)
|
|
290
|
+
notes.push(after.topic ? `The group's purpose is now: ${after.topic}` : "The group's purpose was cleared.");
|
|
291
|
+
for (const id of after.members.filter((m) => !before.members.includes(m)))
|
|
292
|
+
notes.push(`You added ${name(id)}.`);
|
|
293
|
+
for (const id of before.members.filter((m) => !after.members.includes(m)))
|
|
294
|
+
notes.push(`You removed ${name(id)}.`);
|
|
295
|
+
if (before.leadId !== after.leadId)
|
|
296
|
+
notes.push(`${name(after.leadId)} now leads.`);
|
|
297
|
+
if (before.replyMode !== after.replyMode)
|
|
298
|
+
notes.push(`Who answers is now “${REPLY_LABELS[after.replyMode]}”.`);
|
|
299
|
+
for (const id of after.muted.filter((m) => !before.muted.includes(m)))
|
|
300
|
+
notes.push(`${name(id)} is muted.`);
|
|
301
|
+
for (const id of before.muted.filter((m) => !after.muted.includes(m) && after.members.includes(m)))
|
|
302
|
+
notes.push(`${name(id)} is back.`);
|
|
303
|
+
if (before.memberView !== after.memberView) {
|
|
304
|
+
notes.push(after.memberView === "addressed" ? "Members now see only what is addressed to them." : "Members now see the whole thread.");
|
|
305
|
+
}
|
|
306
|
+
return notes;
|
|
307
|
+
}
|
|
308
|
+
/** agent:removed — the agent leaves every group; a lead hands over to the next member. */
|
|
309
|
+
async removeAgentEverywhere(agentId) {
|
|
310
|
+
for (const group of await this.deps.getStore().list()) {
|
|
311
|
+
if (!group.members.includes(agentId))
|
|
312
|
+
continue;
|
|
313
|
+
const members = group.members.filter((m) => m !== agentId);
|
|
314
|
+
const leadId = group.leadId === agentId ? (members[0] ?? "") : group.leadId;
|
|
315
|
+
const next = {
|
|
316
|
+
...group,
|
|
317
|
+
members,
|
|
318
|
+
leadId,
|
|
319
|
+
muted: group.muted.filter((m) => m !== agentId && m !== leadId),
|
|
320
|
+
updatedAt: new Date().toISOString(),
|
|
321
|
+
};
|
|
322
|
+
await this.deps.getStore().save(next);
|
|
323
|
+
this.changed(group.id, "updated");
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
changed(groupId, change) {
|
|
327
|
+
this.deps.eventBus.emit({ type: SDKEventType.GroupChanged, sessionId: "", payload: { groupId, change } });
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
const REPLY_LABELS = { lead: "Lead routes", all: "Everyone answers", mention: "Only when mentioned" };
|
|
331
|
+
function errorMessage(err) {
|
|
332
|
+
return err instanceof Error ? err.message : String(err);
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=group-hub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-hub.js","sourceRoot":"","sources":["../../../src/components/group-hub/group-hub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { Session, StreamChunk } from "../../kernel/types.js";
|
|
2
|
+
import { type GroupPresencePayload } from "../event-handler/events.js";
|
|
3
|
+
import type { EventBus } from "../event-handler/types.js";
|
|
4
|
+
import type { SessionStore } from "../persistence-hub/types/session-store.js";
|
|
5
|
+
import type { ModelOptions } from "../llm-provider-hub/types.js";
|
|
6
|
+
import type { RunOptions } from "../multi-agent-orchestration/agent/agent-loop/types.js";
|
|
7
|
+
import type { AgentProfile } from "../multi-agent-orchestration/agent/types.js";
|
|
8
|
+
import type { AgentSubagents, SubagentScopes, SubagentSpawnScope } from "../multi-agent-orchestration/agent/subagent-manager/types.js";
|
|
9
|
+
import type { GroupThread } from "./thread.js";
|
|
10
|
+
import { type Group, type GroupMemberRunner, type GroupMessage, type GroupSendOptions, type GroupSendRequest, type GroupTurnResult } from "./types.js";
|
|
11
|
+
/** The part of an agent a group turn uses. Agent satisfies it. */
|
|
12
|
+
export interface GroupAgent {
|
|
13
|
+
readonly profile: AgentProfile;
|
|
14
|
+
readonly subagents: AgentSubagents;
|
|
15
|
+
chatStream(message: string, options?: ModelOptions, runOptions?: RunOptions): AsyncIterable<StreamChunk>;
|
|
16
|
+
}
|
|
17
|
+
/** The agents members can be. AgentCore.agents (MultiAgentOrchestration) satisfies it. */
|
|
18
|
+
export interface GroupAgentHost {
|
|
19
|
+
get(agentId: string): GroupAgent | undefined;
|
|
20
|
+
}
|
|
21
|
+
export interface GroupTurnsDeps {
|
|
22
|
+
eventBus: EventBus;
|
|
23
|
+
thread: GroupThread;
|
|
24
|
+
getSessions: () => SessionStore;
|
|
25
|
+
getAgents: () => GroupAgentHost | undefined;
|
|
26
|
+
/** The host's runner (AgentCore.useGroupRunner); absent = the member's own chatStream(). */
|
|
27
|
+
getRunner: () => GroupMemberRunner | undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Group turns (A-109, A-112, A-115) — runs one user message through a group:
|
|
31
|
+
* - one member answers alone; or several answer side by side as one round and the lead
|
|
32
|
+
* sums up; or the lead answers and hands parts to members through spawn_subagent (A-105,
|
|
33
|
+
* under a spawn scope: the members see the thread, work in their own member sessions,
|
|
34
|
+
* stream into the thread, and need no extra approval), then sums up;
|
|
35
|
+
* - guard rails: members per round, a token budget and a deadline for the whole turn, a
|
|
36
|
+
* deadline per member; hand-off depth is A-105's (a member cannot delegate further);
|
|
37
|
+
* - stop the whole turn or one member; one member failing does not fail the round, and the
|
|
38
|
+
* summary says what is missing; retry one member's answer.
|
|
39
|
+
* One group turn runs per group session at a time.
|
|
40
|
+
*/
|
|
41
|
+
export declare class GroupTurns implements SubagentScopes {
|
|
42
|
+
private deps;
|
|
43
|
+
private active;
|
|
44
|
+
/** Lead session → its spawn scope while it leads a turn. */
|
|
45
|
+
private scopes;
|
|
46
|
+
/** `${groupSessionId}\0${agentId}` → the member's session id. */
|
|
47
|
+
private memberSessions;
|
|
48
|
+
/** Hand-off answers by child run id, until the run's end settles them. */
|
|
49
|
+
private handoffWriters;
|
|
50
|
+
private unsubscribes;
|
|
51
|
+
constructor(deps: GroupTurnsDeps);
|
|
52
|
+
/** SubagentScopes: a lead session's spawn scope while it leads a group turn. */
|
|
53
|
+
get(sessionId: string): SubagentSpawnScope | undefined;
|
|
54
|
+
isBusy(sessionId: string): boolean;
|
|
55
|
+
/** The running turns, for "busy" marks: group session → who is doing what. */
|
|
56
|
+
running(): Array<{
|
|
57
|
+
groupId: string;
|
|
58
|
+
sessionId: string;
|
|
59
|
+
turnId: string;
|
|
60
|
+
presence: GroupPresencePayload[];
|
|
61
|
+
}>;
|
|
62
|
+
/** What each member of a running turn is doing now (empty when idle). */
|
|
63
|
+
presenceOf(sessionId: string): GroupPresencePayload[];
|
|
64
|
+
/** Run one user message through the group. Throws GroupError before anything runs. */
|
|
65
|
+
send(group: Group, session: Session, request: GroupSendRequest, options?: GroupSendOptions): Promise<GroupTurnResult>;
|
|
66
|
+
/** Run a member's answer again, in place. Throws GroupError before anything runs. */
|
|
67
|
+
retry(group: Group, session: Session, message: GroupMessage, options?: GroupSendOptions): Promise<GroupTurnResult>;
|
|
68
|
+
/** Stop the session's running turn, or (with `agentId`) one member of it. False when nothing ran. */
|
|
69
|
+
stop(sessionId: string, agentId?: string): boolean;
|
|
70
|
+
/** Resolves once the session's running turn (if any) has ended. */
|
|
71
|
+
idle(sessionId: string): Promise<void>;
|
|
72
|
+
/** Stop every running turn and stop listening. */
|
|
73
|
+
dispose(): void;
|
|
74
|
+
/** Forget a deleted group session (its member sessions are deleted by the hub). */
|
|
75
|
+
forgetSession(sessionId: string): void;
|
|
76
|
+
/** The member's private session in a group session, created on first use. */
|
|
77
|
+
memberSession(group: Group, groupSessionId: string, agentId: string): Promise<string>;
|
|
78
|
+
private requireReady;
|
|
79
|
+
private begin;
|
|
80
|
+
/** A guard rail ended the turn: stop everyone, note why once. */
|
|
81
|
+
private limit;
|
|
82
|
+
private end;
|
|
83
|
+
private runPlan;
|
|
84
|
+
/** Several members side by side; then the lead sums up. */
|
|
85
|
+
private round;
|
|
86
|
+
/** One member answers in its own session; returns its answer (null when it could not run). */
|
|
87
|
+
private memberTurn;
|
|
88
|
+
/**
|
|
89
|
+
* What a member is told, and its answer opened in the thread ("running"). A round opens
|
|
90
|
+
* every answer first, in plan order, so the thread's order does not depend on who starts first.
|
|
91
|
+
*/
|
|
92
|
+
private prepareMember;
|
|
93
|
+
private runMember;
|
|
94
|
+
/** The lead answers and may hand parts to `helpers`; their answers stream in as one round. */
|
|
95
|
+
private leadTurn;
|
|
96
|
+
/** A member's turn for a hand-off: its answer streams into the thread as part of the round. */
|
|
97
|
+
private handoffTurn;
|
|
98
|
+
/** A hand-off's child run ended: its row and its answer take the run's status. */
|
|
99
|
+
private settleHandoff;
|
|
100
|
+
/** Runs a member's streamed turn, handing each chunk to `onChunk`. */
|
|
101
|
+
private stream;
|
|
102
|
+
private setPresence;
|
|
103
|
+
private traceAttributes;
|
|
104
|
+
private names;
|
|
105
|
+
private nameOf;
|
|
106
|
+
/** A new session takes its first message as its title. */
|
|
107
|
+
private titleFrom;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=group-turns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-turns.d.ts","sourceRoot":"","sources":["../../../src/components/group-hub/group-turns.ts"],"names":[],"mappings":"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"}
|