@agimon-ai/doompi-team 0.0.1-alpha.69 → 0.0.1-alpha.70
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/README.md +7 -1
- package/dist/api-contracts.cjs +1 -0
- package/dist/api-contracts.d.cts +2 -0
- package/dist/api-contracts.d.mts +2 -0
- package/dist/api-contracts.mjs +1 -0
- package/dist/capabilityCeiling.cjs +1 -0
- package/dist/capabilityCeiling.d.cts +3 -0
- package/dist/capabilityCeiling.d.mts +3 -0
- package/dist/capabilityCeiling.mjs +1 -0
- package/dist/constants/team.cjs +2 -0
- package/dist/constants/team.cjs.map +1 -0
- package/dist/constants/team.mjs +2 -0
- package/dist/constants/team.mjs.map +1 -0
- package/dist/controllers/slashCommands.cjs +4 -0
- package/dist/controllers/slashCommands.cjs.map +1 -0
- package/dist/controllers/slashCommands.mjs +4 -0
- package/dist/controllers/slashCommands.mjs.map +1 -0
- package/dist/controllers/teamSessionApi.cjs +2 -0
- package/dist/controllers/teamSessionApi.cjs.map +1 -0
- package/dist/controllers/teamSessionApi.mjs +2 -0
- package/dist/controllers/teamSessionApi.mjs.map +1 -0
- package/dist/controllers/webSubagentCatalogChannel.cjs +2 -0
- package/dist/controllers/webSubagentCatalogChannel.cjs.map +1 -0
- package/dist/controllers/webSubagentCatalogChannel.mjs +2 -0
- package/dist/controllers/webSubagentCatalogChannel.mjs.map +1 -0
- package/dist/controllers/webSubagentsChannel.cjs +2 -0
- package/dist/controllers/webSubagentsChannel.cjs.map +1 -0
- package/dist/controllers/webSubagentsChannel.mjs +2 -0
- package/dist/controllers/webSubagentsChannel.mjs.map +1 -0
- package/dist/delegation-api.cjs +1 -0
- package/dist/delegation-api.d.cts +2 -0
- package/dist/delegation-api.d.mts +2 -0
- package/dist/delegation-api.mjs +1 -0
- package/dist/delegation.cjs +1 -0
- package/dist/delegation.d.cts +3 -0
- package/dist/delegation.d.mts +3 -0
- package/dist/delegation.mjs +1 -0
- package/dist/env.cjs +1 -1
- package/dist/env.d.cts +2 -2
- package/dist/env.d.mts +2 -2
- package/dist/env.mjs +1 -2
- package/dist/extensions/pi.cjs +2 -1
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.cts +14 -2
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +14 -2
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +2 -1
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +4 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +4 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/fable-plan-api.cjs +2 -0
- package/dist/fable-plan-api.cjs.map +1 -0
- package/dist/fable-plan-api.d.cts +96 -0
- package/dist/fable-plan-api.d.cts.map +1 -0
- package/dist/fable-plan-api.d.mts +96 -0
- package/dist/fable-plan-api.d.mts.map +1 -0
- package/dist/fable-plan-api.mjs +2 -0
- package/dist/fable-plan-api.mjs.map +1 -0
- package/dist/fable-plan.cjs +1 -0
- package/dist/fable-plan.d.cts +2 -0
- package/dist/fable-plan.d.mts +2 -0
- package/dist/fable-plan.mjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/models/slashResult.cjs +2 -0
- package/dist/models/slashResult.cjs.map +1 -0
- package/dist/models/slashResult.mjs +2 -0
- package/dist/models/slashResult.mjs.map +1 -0
- package/dist/runs/background/cliRunnerEntry.cjs +1 -1
- package/dist/runs/background/cliRunnerEntry.cjs.map +1 -1
- package/dist/runs/background/cliRunnerEntry.mjs +1 -1
- package/dist/runs/background/cliRunnerEntry.mjs.map +1 -1
- package/dist/runtime-subagent-policy.cjs +2 -0
- package/dist/runtime-subagent-policy.cjs.map +1 -0
- package/dist/runtime-subagent-policy.d.cts +32 -0
- package/dist/runtime-subagent-policy.d.cts.map +1 -0
- package/dist/runtime-subagent-policy.d.mts +32 -0
- package/dist/runtime-subagent-policy.d.mts.map +1 -0
- package/dist/runtime-subagent-policy.mjs +2 -0
- package/dist/runtime-subagent-policy.mjs.map +1 -0
- package/dist/runtime-subagent-tool.cjs +2 -0
- package/dist/runtime-subagent-tool.cjs.map +1 -0
- package/dist/runtime-subagent-tool.d.cts +68 -0
- package/dist/runtime-subagent-tool.d.cts.map +1 -0
- package/dist/runtime-subagent-tool.d.mts +68 -0
- package/dist/runtime-subagent-tool.d.mts.map +1 -0
- package/dist/runtime-subagent-tool.mjs +2 -0
- package/dist/runtime-subagent-tool.mjs.map +1 -0
- package/dist/schemas/apiContracts.cjs +2 -0
- package/dist/schemas/apiContracts.cjs.map +1 -0
- package/dist/schemas/apiContracts.d.cts +53 -0
- package/dist/schemas/apiContracts.d.cts.map +1 -0
- package/dist/schemas/apiContracts.d.mts +53 -0
- package/dist/schemas/apiContracts.d.mts.map +1 -0
- package/dist/schemas/apiContracts.mjs +2 -0
- package/dist/schemas/apiContracts.mjs.map +1 -0
- package/dist/schemas/team/capabilityCeiling.cjs.map +1 -0
- package/dist/schemas/team/capabilityCeiling.d.cts +46 -0
- package/dist/schemas/team/capabilityCeiling.d.cts.map +1 -0
- package/dist/schemas/team/capabilityCeiling.d.mts +46 -0
- package/dist/schemas/team/capabilityCeiling.d.mts.map +1 -0
- package/dist/schemas/team/capabilityCeiling.mjs +2 -0
- package/dist/schemas/team/capabilityCeiling.mjs.map +1 -0
- package/dist/schemas/team/delegation.cjs.map +1 -0
- package/dist/schemas/team/delegation.d.cts.map +1 -0
- package/dist/schemas/team/delegation.d.mts.map +1 -0
- package/dist/schemas/team/delegation.mjs.map +1 -0
- package/dist/schemas/team/packageConfig.cjs.map +1 -0
- package/dist/schemas/team/packageConfig.mjs.map +1 -0
- package/dist/services/admissionGate/index.cjs +2 -0
- package/dist/services/admissionGate/index.cjs.map +1 -0
- package/dist/services/admissionGate/index.mjs +2 -0
- package/dist/services/admissionGate/index.mjs.map +1 -0
- package/dist/services/agentDiscovery/index.cjs +2 -0
- package/dist/services/agentDiscovery/index.cjs.map +1 -0
- package/dist/services/agentDiscovery/index.mjs +2 -0
- package/dist/services/agentDiscovery/index.mjs.map +1 -0
- package/dist/services/agentFrontmatter/index.cjs +10 -0
- package/dist/services/agentFrontmatter/index.cjs.map +1 -0
- package/dist/services/agentFrontmatter/index.mjs +10 -0
- package/dist/services/agentFrontmatter/index.mjs.map +1 -0
- package/dist/services/agentLoader/index.cjs +2 -0
- package/dist/services/agentLoader/index.cjs.map +1 -0
- package/dist/services/agentLoader/index.mjs +2 -0
- package/dist/services/agentLoader/index.mjs.map +1 -0
- package/dist/services/agentMemory/index.cjs +3 -0
- package/dist/services/agentMemory/index.cjs.map +1 -0
- package/dist/services/agentMemory/index.mjs +3 -0
- package/dist/services/agentMemory/index.mjs.map +1 -0
- package/dist/services/agentProjectRoot/index.cjs +2 -0
- package/dist/services/agentProjectRoot/index.cjs.map +1 -0
- package/dist/services/agentProjectRoot/index.mjs +2 -0
- package/dist/services/agentProjectRoot/index.mjs.map +1 -0
- package/dist/services/agentSettings/index.cjs +2 -0
- package/dist/services/agentSettings/index.cjs.map +1 -0
- package/dist/services/agentSettings/index.mjs +2 -0
- package/dist/services/agentSettings/index.mjs.map +1 -0
- package/dist/services/agentSkills/index.cjs +0 -0
- package/dist/services/agentSkills/index.cjs.map +1 -0
- package/dist/services/agentSkills/index.mjs +0 -0
- package/dist/services/agentSkills/index.mjs.map +1 -0
- package/dist/services/asyncExecution/index.cjs +2 -0
- package/dist/services/asyncExecution/index.cjs.map +1 -0
- package/dist/services/asyncExecution/index.mjs +2 -0
- package/dist/services/asyncExecution/index.mjs.map +1 -0
- package/dist/services/asyncJobTracker/index.cjs +2 -0
- package/dist/services/asyncJobTracker/index.cjs.map +1 -0
- package/dist/services/asyncJobTracker/index.mjs +2 -0
- package/dist/services/asyncJobTracker/index.mjs.map +1 -0
- package/dist/services/atomicJson/index.cjs +2 -0
- package/dist/services/atomicJson/index.cjs.map +1 -0
- package/dist/services/atomicJson/index.mjs +2 -0
- package/dist/services/atomicJson/index.mjs.map +1 -0
- package/dist/services/backgroundWorkService/index.cjs +2 -0
- package/dist/services/backgroundWorkService/index.cjs.map +1 -0
- package/dist/services/backgroundWorkService/index.mjs +2 -0
- package/dist/services/backgroundWorkService/index.mjs.map +1 -0
- package/dist/services/boundedKeySet/index.cjs +2 -0
- package/dist/services/boundedKeySet/index.cjs.map +1 -0
- package/dist/services/boundedKeySet/index.mjs +2 -0
- package/dist/services/boundedKeySet/index.mjs.map +1 -0
- package/dist/services/chainExpression/index.cjs +2 -0
- package/dist/services/chainExpression/index.cjs.map +1 -0
- package/dist/services/chainExpression/index.mjs +2 -0
- package/dist/services/chainExpression/index.mjs.map +1 -0
- package/dist/services/claudeFableProfile/index.cjs +4 -0
- package/dist/services/claudeFableProfile/index.cjs.map +1 -0
- package/dist/services/claudeFableProfile/index.mjs +4 -0
- package/dist/services/claudeFableProfile/index.mjs.map +1 -0
- package/dist/services/completionBatcher/index.cjs +2 -0
- package/dist/services/completionBatcher/index.cjs.map +1 -0
- package/dist/services/completionBatcher/index.mjs +2 -0
- package/dist/services/completionBatcher/index.mjs.map +1 -0
- package/dist/services/config/index.cjs +2 -0
- package/dist/services/config/index.cjs.map +1 -0
- package/dist/services/config/index.mjs +2 -0
- package/dist/services/config/index.mjs.map +1 -0
- package/dist/services/configDir/index.cjs +2 -0
- package/dist/services/configDir/index.cjs.map +1 -0
- package/dist/services/configDir/index.mjs +2 -0
- package/dist/services/configDir/index.mjs.map +1 -0
- package/dist/services/delegationBridge/index.cjs +2 -0
- package/dist/services/delegationBridge/index.cjs.map +1 -0
- package/dist/services/delegationBridge/index.mjs +2 -0
- package/dist/services/delegationBridge/index.mjs.map +1 -0
- package/dist/services/depthGuard/index.cjs +2 -0
- package/dist/services/depthGuard/index.cjs.map +1 -0
- package/dist/services/depthGuard/index.mjs +2 -0
- package/dist/services/depthGuard/index.mjs.map +1 -0
- package/dist/services/directRunBackgroundWork/index.cjs +2 -0
- package/dist/services/directRunBackgroundWork/index.cjs.map +1 -0
- package/dist/services/directRunBackgroundWork/index.mjs +2 -0
- package/dist/services/directRunBackgroundWork/index.mjs.map +1 -0
- package/dist/services/displayFormat/index.cjs +2 -0
- package/dist/services/displayFormat/index.cjs.map +1 -0
- package/dist/services/displayFormat/index.mjs +2 -0
- package/dist/services/displayFormat/index.mjs.map +1 -0
- package/dist/services/doctor/index.cjs +5 -0
- package/dist/services/doctor/index.cjs.map +1 -0
- package/dist/services/doctor/index.mjs +5 -0
- package/dist/services/doctor/index.mjs.map +1 -0
- package/dist/services/errors/index.cjs +2 -0
- package/dist/services/errors/index.cjs.map +1 -0
- package/dist/services/errors/index.mjs +2 -0
- package/dist/services/errors/index.mjs.map +1 -0
- package/dist/services/externalProcessIpc/index.cjs +2 -0
- package/dist/services/externalProcessIpc/index.cjs.map +1 -0
- package/dist/services/externalProcessIpc/index.mjs +2 -0
- package/dist/services/externalProcessIpc/index.mjs.map +1 -0
- package/dist/services/fablePlanBridge/index.cjs +2 -0
- package/dist/services/fablePlanBridge/index.cjs.map +1 -0
- package/dist/services/fablePlanBridge/index.mjs +2 -0
- package/dist/services/fablePlanBridge/index.mjs.map +1 -0
- package/dist/services/fileSystemRetry/index.cjs +2 -0
- package/dist/services/fileSystemRetry/index.cjs.map +1 -0
- package/dist/services/fileSystemRetry/index.mjs +2 -0
- package/dist/services/fileSystemRetry/index.mjs.map +1 -0
- package/dist/services/fleetTranscript/index.cjs +3 -0
- package/dist/services/fleetTranscript/index.cjs.map +1 -0
- package/dist/services/fleetTranscript/index.mjs +3 -0
- package/dist/services/fleetTranscript/index.mjs.map +1 -0
- package/dist/services/intercomBridge/index.cjs +2 -0
- package/dist/services/intercomBridge/index.cjs.map +1 -0
- package/dist/services/intercomBridge/index.mjs +2 -0
- package/dist/services/intercomBridge/index.mjs.map +1 -0
- package/dist/services/lruCache/index.cjs +2 -0
- package/dist/services/lruCache/index.cjs.map +1 -0
- package/dist/services/lruCache/index.mjs +2 -0
- package/dist/services/lruCache/index.mjs.map +1 -0
- package/dist/services/managementActions/index.cjs +2 -0
- package/dist/services/managementActions/index.cjs.map +1 -0
- package/dist/services/managementActions/index.mjs +2 -0
- package/dist/services/managementActions/index.mjs.map +1 -0
- package/dist/services/mcpDirectToolAllowlist/index.cjs +2 -0
- package/dist/services/mcpDirectToolAllowlist/index.cjs.map +1 -0
- package/dist/services/mcpDirectToolAllowlist/index.mjs +2 -0
- package/dist/services/mcpDirectToolAllowlist/index.mjs.map +1 -0
- package/dist/services/modelFallback/index.cjs +2 -0
- package/dist/services/modelFallback/index.cjs.map +1 -0
- package/dist/services/modelFallback/index.mjs +2 -0
- package/dist/services/modelFallback/index.mjs.map +1 -0
- package/dist/services/modelInfo/index.cjs +2 -0
- package/dist/services/modelInfo/index.cjs.map +1 -0
- package/dist/services/modelInfo/index.mjs +2 -0
- package/dist/services/modelInfo/index.mjs.map +1 -0
- package/dist/services/modelResolution/index.cjs +2 -0
- package/dist/services/modelResolution/index.cjs.map +1 -0
- package/dist/services/modelResolution/index.mjs +2 -0
- package/dist/services/modelResolution/index.mjs.map +1 -0
- package/dist/services/modelScope/index.cjs +2 -0
- package/dist/services/modelScope/index.cjs.map +1 -0
- package/dist/services/modelScope/index.mjs +2 -0
- package/dist/services/modelScope/index.mjs.map +1 -0
- package/dist/services/nativeFleetTranscript/index.cjs +3 -0
- package/dist/services/nativeFleetTranscript/index.cjs.map +1 -0
- package/dist/services/nativeFleetTranscript/index.mjs +3 -0
- package/dist/services/nativeFleetTranscript/index.mjs.map +1 -0
- package/dist/services/nativeRunCoordinator/index.cjs +2 -0
- package/dist/services/nativeRunCoordinator/index.cjs.map +1 -0
- package/dist/services/nativeRunCoordinator/index.mjs +2 -0
- package/dist/services/nativeRunCoordinator/index.mjs.map +1 -0
- package/dist/services/nativeRunProjection/index.cjs +2 -0
- package/dist/services/nativeRunProjection/index.cjs.map +1 -0
- package/dist/services/nativeRunProjection/index.mjs +2 -0
- package/dist/services/nativeRunProjection/index.mjs.map +1 -0
- package/dist/services/nativeTeamChannel/index.cjs +4 -0
- package/dist/services/nativeTeamChannel/index.cjs.map +1 -0
- package/dist/services/nativeTeamChannel/index.d.cts +48 -0
- package/dist/services/nativeTeamChannel/index.d.cts.map +1 -0
- package/dist/services/nativeTeamChannel/index.d.mts +48 -0
- package/dist/services/nativeTeamChannel/index.d.mts.map +1 -0
- package/dist/services/nativeTeamChannel/index.mjs +4 -0
- package/dist/services/nativeTeamChannel/index.mjs.map +1 -0
- package/dist/services/notify/index.cjs +4 -0
- package/dist/services/notify/index.cjs.map +1 -0
- package/dist/services/notify/index.mjs +4 -0
- package/dist/services/notify/index.mjs.map +1 -0
- package/dist/services/operationJournal/index.cjs +2 -0
- package/dist/services/operationJournal/index.cjs.map +1 -0
- package/dist/services/operationJournal/index.mjs +2 -0
- package/dist/services/operationJournal/index.mjs.map +1 -0
- package/dist/services/orchestratorPrompt/index.cjs +42 -0
- package/dist/services/orchestratorPrompt/index.cjs.map +1 -0
- package/dist/services/orchestratorPrompt/index.mjs +42 -0
- package/dist/services/orchestratorPrompt/index.mjs.map +1 -0
- package/dist/services/pollScheduler/index.cjs +2 -0
- package/dist/services/pollScheduler/index.cjs.map +1 -0
- package/dist/services/pollScheduler/index.mjs +2 -0
- package/dist/services/pollScheduler/index.mjs.map +1 -0
- package/dist/services/runWithConcurrency/index.cjs +2 -0
- package/dist/services/runWithConcurrency/index.cjs.map +1 -0
- package/dist/services/runWithConcurrency/index.mjs +2 -0
- package/dist/services/runWithConcurrency/index.mjs.map +1 -0
- package/dist/services/runtimeRegistry/index.cjs +2 -0
- package/dist/services/runtimeRegistry/index.cjs.map +1 -0
- package/dist/services/runtimeRegistry/index.mjs +2 -0
- package/dist/services/runtimeRegistry/index.mjs.map +1 -0
- package/dist/services/sessionLifecycle/index.cjs +2 -0
- package/dist/services/sessionLifecycle/index.cjs.map +1 -0
- package/dist/services/sessionLifecycle/index.mjs +2 -0
- package/dist/services/sessionLifecycle/index.mjs.map +1 -0
- package/dist/services/sessionPaths/index.cjs +2 -0
- package/dist/services/sessionPaths/index.cjs.map +1 -0
- package/dist/services/sessionPaths/index.mjs +2 -0
- package/dist/services/sessionPaths/index.mjs.map +1 -0
- package/dist/services/spawnHandshake/index.cjs +2 -0
- package/dist/services/spawnHandshake/index.cjs.map +1 -0
- package/dist/services/spawnHandshake/index.mjs +2 -0
- package/dist/services/spawnHandshake/index.mjs.map +1 -0
- package/dist/services/spawnPlan/index.cjs +4 -0
- package/dist/services/spawnPlan/index.cjs.map +1 -0
- package/dist/services/spawnPlan/index.mjs +4 -0
- package/dist/services/spawnPlan/index.mjs.map +1 -0
- package/dist/services/spawnRequestMapping/index.cjs +2 -0
- package/dist/services/spawnRequestMapping/index.cjs.map +1 -0
- package/dist/services/spawnRequestMapping/index.mjs +2 -0
- package/dist/services/spawnRequestMapping/index.mjs.map +1 -0
- package/dist/services/statusViews/index.cjs +7 -0
- package/dist/services/statusViews/index.cjs.map +1 -0
- package/dist/services/statusViews/index.mjs +7 -0
- package/dist/services/statusViews/index.mjs.map +1 -0
- package/dist/services/statusWriter/index.cjs +2 -0
- package/dist/services/statusWriter/index.cjs.map +1 -0
- package/dist/services/statusWriter/index.mjs +2 -0
- package/dist/services/statusWriter/index.mjs.map +1 -0
- package/dist/services/subagentLaunch/index.cjs +2 -0
- package/dist/services/subagentLaunch/index.cjs.map +1 -0
- package/dist/services/subagentLaunch/index.mjs +2 -0
- package/dist/services/subagentLaunch/index.mjs.map +1 -0
- package/dist/services/subagentLaunchContract/index.cjs +2 -0
- package/dist/services/subagentLaunchContract/index.cjs.map +1 -0
- package/dist/services/subagentLaunchContract/index.d.cts +28 -0
- package/dist/services/subagentLaunchContract/index.d.cts.map +1 -0
- package/dist/services/subagentLaunchContract/index.d.mts +28 -0
- package/dist/services/subagentLaunchContract/index.d.mts.map +1 -0
- package/dist/services/subagentLaunchContract/index.mjs +2 -0
- package/dist/services/subagentLaunchContract/index.mjs.map +1 -0
- package/dist/services/subagentPolicyService/index.cjs +2 -0
- package/dist/services/subagentPolicyService/index.cjs.map +1 -0
- package/dist/services/subagentPolicyService/index.mjs +2 -0
- package/dist/services/subagentPolicyService/index.mjs.map +1 -0
- package/dist/services/subagentTool/index.cjs +6 -0
- package/dist/services/subagentTool/index.cjs.map +1 -0
- package/dist/services/subagentTool/index.mjs +6 -0
- package/dist/services/subagentTool/index.mjs.map +1 -0
- package/dist/services/subagentWait/index.cjs +2 -0
- package/dist/services/subagentWait/index.cjs.map +1 -0
- package/dist/services/subagentWait/index.mjs +2 -0
- package/dist/services/subagentWait/index.mjs.map +1 -0
- package/dist/services/suspendedRuns/index.cjs +6 -0
- package/dist/services/suspendedRuns/index.cjs.map +1 -0
- package/dist/services/suspendedRuns/index.mjs +6 -0
- package/dist/services/suspendedRuns/index.mjs.map +1 -0
- package/dist/services/teamCollaboration/index.cjs +2 -0
- package/dist/services/teamCollaboration/index.cjs.map +1 -0
- package/dist/services/teamCollaboration/index.mjs +2 -0
- package/dist/services/teamCollaboration/index.mjs.map +1 -0
- package/dist/services/teamRuntime/index.cjs +2 -0
- package/dist/services/teamRuntime/index.cjs.map +1 -0
- package/dist/services/teamRuntime/index.mjs +2 -0
- package/dist/services/teamRuntime/index.mjs.map +1 -0
- package/dist/services/teamSnapshot/index.cjs +3 -0
- package/dist/services/teamSnapshot/index.cjs.map +1 -0
- package/dist/services/teamSnapshot/index.d.cts +10 -0
- package/dist/services/teamSnapshot/index.d.cts.map +1 -0
- package/dist/services/teamSnapshot/index.d.mts +10 -0
- package/dist/services/teamSnapshot/index.d.mts.map +1 -0
- package/dist/services/teamSnapshot/index.mjs +3 -0
- package/dist/services/teamSnapshot/index.mjs.map +1 -0
- package/dist/services/toolDescription/index.cjs +2 -0
- package/dist/services/toolDescription/index.cjs.map +1 -0
- package/dist/services/toolDescription/index.mjs +2 -0
- package/dist/services/toolDescription/index.mjs.map +1 -0
- package/dist/services/versioned/index.cjs +2 -0
- package/dist/services/versioned/index.cjs.map +1 -0
- package/dist/services/versioned/index.mjs +2 -0
- package/dist/services/versioned/index.mjs.map +1 -0
- package/dist/services/webSubagentCatalog/index.cjs +2 -0
- package/dist/services/webSubagentCatalog/index.cjs.map +1 -0
- package/dist/services/webSubagentCatalog/index.mjs +2 -0
- package/dist/services/webSubagentCatalog/index.mjs.map +1 -0
- package/dist/subagent-policy.cjs +1 -0
- package/dist/subagent-policy.d.cts +2 -0
- package/dist/subagent-policy.d.mts +2 -0
- package/dist/subagent-policy.mjs +1 -0
- package/dist/subagent-tool.cjs +1 -0
- package/dist/subagent-tool.d.cts +2 -0
- package/dist/subagent-tool.d.mts +2 -0
- package/dist/subagent-tool.mjs +1 -0
- package/dist/teamSnapshot.cjs +1 -0
- package/dist/teamSnapshot.d.cts +2 -0
- package/dist/teamSnapshot.d.mts +2 -0
- package/dist/teamSnapshot.mjs +1 -0
- package/dist/tools/intercom.cjs +2 -0
- package/dist/tools/intercom.cjs.map +1 -0
- package/dist/tools/intercom.mjs +2 -0
- package/dist/tools/intercom.mjs.map +1 -0
- package/dist/tools/subagent.cjs +2 -0
- package/dist/tools/subagent.cjs.map +1 -0
- package/dist/tools/subagent.mjs +2 -0
- package/dist/tools/subagent.mjs.map +1 -0
- package/dist/tui/agentCatalog.cjs +3 -0
- package/dist/tui/agentCatalog.cjs.map +1 -0
- package/dist/tui/agentCatalog.mjs +3 -0
- package/dist/tui/agentCatalog.mjs.map +1 -0
- package/dist/tui/agentResourceProjection.cjs +2 -0
- package/dist/tui/agentResourceProjection.cjs.map +1 -0
- package/dist/tui/agentResourceProjection.mjs +2 -0
- package/dist/tui/agentResourceProjection.mjs.map +1 -0
- package/dist/tui/completionNotice.cjs +5 -0
- package/dist/tui/completionNotice.cjs.map +1 -0
- package/dist/tui/completionNotice.mjs +5 -0
- package/dist/tui/completionNotice.mjs.map +1 -0
- package/dist/tui/contributions.cjs +2 -0
- package/dist/tui/contributions.cjs.map +1 -0
- package/dist/tui/contributions.mjs +2 -0
- package/dist/tui/contributions.mjs.map +1 -0
- package/dist/tui/fleet.cjs +3 -0
- package/dist/tui/fleet.cjs.map +1 -0
- package/dist/tui/fleet.mjs +3 -0
- package/dist/tui/fleet.mjs.map +1 -0
- package/dist/tui/fleetAgentView.cjs +2 -0
- package/dist/tui/fleetAgentView.cjs.map +1 -0
- package/dist/tui/fleetAgentView.mjs +2 -0
- package/dist/tui/fleetAgentView.mjs.map +1 -0
- package/dist/tui/fleetStatus.cjs +2 -0
- package/dist/tui/fleetStatus.cjs.map +1 -0
- package/dist/tui/fleetStatus.mjs +2 -0
- package/dist/tui/fleetStatus.mjs.map +1 -0
- package/dist/tui/fleetTranscript.cjs +4 -0
- package/dist/tui/fleetTranscript.cjs.map +1 -0
- package/dist/tui/fleetTranscript.mjs +4 -0
- package/dist/tui/fleetTranscript.mjs.map +1 -0
- package/dist/tui/slashRunNotice.cjs +3 -0
- package/dist/tui/slashRunNotice.cjs.map +1 -0
- package/dist/tui/slashRunNotice.mjs +3 -0
- package/dist/tui/slashRunNotice.mjs.map +1 -0
- package/dist/tui/subagentToolRender.cjs.map +1 -0
- package/dist/tui/subagentToolRender.mjs.map +1 -0
- package/dist/types/agent.d.cts +119 -0
- package/dist/types/agent.d.cts.map +1 -0
- package/dist/types/agent.d.mts +119 -0
- package/dist/types/agent.d.mts.map +1 -0
- package/dist/types/environment.cjs +2 -0
- package/dist/types/environment.cjs.map +1 -0
- package/dist/types/environment.d.cts +63 -0
- package/dist/types/environment.d.cts.map +1 -0
- package/dist/types/environment.d.mts +63 -0
- package/dist/types/environment.d.mts.map +1 -0
- package/dist/types/environment.mjs +2 -0
- package/dist/types/environment.mjs.map +1 -0
- package/dist/types/index.d.cts.map +1 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/webSubagents.cjs.map +1 -0
- package/dist/types/webSubagents.mjs.map +1 -0
- package/package.json +79 -27
- package/src/extensions/web.ts +75 -0
- package/src/types/webSubagents.ts +2 -0
- package/src/web/api/catalog.ts +75 -0
- package/src/web/api/runActionsSlot.ts +1 -1
- package/src/web/components/AgentCatalogDrawer.tsx +18 -8
- package/src/web/components/AgentThreadPanel.tsx +5 -4
- package/src/web/components/AgentsActivitySection.tsx +8 -7
- package/src/web/components/IntercomToolMessage.tsx +3 -2
- package/src/web/components/LaunchAgentDialog.tsx +38 -23
- package/src/web/components/RunControl.tsx +5 -4
- package/src/web/components/SubagentToolMessage.tsx +4 -3
- package/src/web/components/SubagentsPanel.tsx +16 -11
- package/src/web/components/toolRenderers.ts +4 -3
- package/src/web/lib/launchCommand.ts +2 -12
- package/src/web/stores/catalogStore.ts +35 -2
- package/src/web/stores/subagentsStore.ts +9 -9
- package/src/web/tsconfig.json +1 -1
- package/dist/_virtual/_rolldown/runtime.mjs +0 -1
- package/dist/api/capabilityCeiling.cjs +0 -1
- package/dist/api/capabilityCeiling.d.cts +0 -3
- package/dist/api/capabilityCeiling.d.mts +0 -3
- package/dist/api/capabilityCeiling.mjs +0 -2
- package/dist/api/capabilityCeiling.mjs.map +0 -1
- package/dist/api/delegation.cjs +0 -1
- package/dist/api/delegation.d.cts +0 -2
- package/dist/api/delegation.d.mts +0 -2
- package/dist/api/delegation.mjs +0 -1
- package/dist/api/teamSnapshot.cjs +0 -1
- package/dist/api/teamSnapshot.d.cts +0 -2
- package/dist/api/teamSnapshot.d.mts +0 -2
- package/dist/api/teamSnapshot.mjs +0 -1
- package/dist/env.mjs.map +0 -1
- package/dist/extensions/subagentPromptRuntimeEntry.cjs +0 -2
- package/dist/extensions/subagentPromptRuntimeEntry.cjs.map +0 -1
- package/dist/extensions/subagentPromptRuntimeEntry.d.cts +0 -2
- package/dist/extensions/subagentPromptRuntimeEntry.d.mts +0 -2
- package/dist/extensions/subagentPromptRuntimeEntry.mjs +0 -2
- package/dist/extensions/subagentPromptRuntimeEntry.mjs.map +0 -1
- package/dist/runs/piModuleAlias.cjs +0 -2
- package/dist/runs/piModuleAlias.cjs.map +0 -1
- package/dist/runs/piModuleAlias.d.cts +0 -8
- package/dist/runs/piModuleAlias.d.cts.map +0 -1
- package/dist/runs/piModuleAlias.d.mts +0 -8
- package/dist/runs/piModuleAlias.d.mts.map +0 -1
- package/dist/runs/piModuleAlias.mjs +0 -2
- package/dist/runs/piModuleAlias.mjs.map +0 -1
- package/dist/runs/sdkRunnerEntry.cjs +0 -2
- package/dist/runs/sdkRunnerEntry.cjs.map +0 -1
- package/dist/runs/sdkRunnerEntry.d.cts +0 -4
- package/dist/runs/sdkRunnerEntry.d.cts.map +0 -1
- package/dist/runs/sdkRunnerEntry.d.mts +0 -4
- package/dist/runs/sdkRunnerEntry.d.mts.map +0 -1
- package/dist/runs/sdkRunnerEntry.mjs +0 -2
- package/dist/runs/sdkRunnerEntry.mjs.map +0 -1
- package/dist/sessionApi.cjs +0 -1
- package/dist/sessionApi.d.cts +0 -2
- package/dist/sessionApi.d.mts +0 -2
- package/dist/sessionApi.mjs +0 -1
- package/dist/src/adapters/agents/discovery.cjs +0 -2
- package/dist/src/adapters/agents/discovery.cjs.map +0 -1
- package/dist/src/adapters/agents/discovery.mjs +0 -2
- package/dist/src/adapters/agents/discovery.mjs.map +0 -1
- package/dist/src/adapters/agents/frontmatter.cjs +0 -10
- package/dist/src/adapters/agents/frontmatter.cjs.map +0 -1
- package/dist/src/adapters/agents/frontmatter.mjs +0 -10
- package/dist/src/adapters/agents/frontmatter.mjs.map +0 -1
- package/dist/src/adapters/agents/loader.cjs +0 -2
- package/dist/src/adapters/agents/loader.cjs.map +0 -1
- package/dist/src/adapters/agents/loader.mjs +0 -2
- package/dist/src/adapters/agents/loader.mjs.map +0 -1
- package/dist/src/adapters/agents/memory.cjs +0 -3
- package/dist/src/adapters/agents/memory.cjs.map +0 -1
- package/dist/src/adapters/agents/memory.mjs +0 -3
- package/dist/src/adapters/agents/memory.mjs.map +0 -1
- package/dist/src/adapters/agents/projectRoot.cjs +0 -2
- package/dist/src/adapters/agents/projectRoot.cjs.map +0 -1
- package/dist/src/adapters/agents/projectRoot.mjs +0 -2
- package/dist/src/adapters/agents/projectRoot.mjs.map +0 -1
- package/dist/src/adapters/agents/settings.cjs +0 -2
- package/dist/src/adapters/agents/settings.cjs.map +0 -1
- package/dist/src/adapters/agents/settings.mjs +0 -2
- package/dist/src/adapters/agents/settings.mjs.map +0 -1
- package/dist/src/adapters/agents/skills.cjs +0 -0
- package/dist/src/adapters/agents/skills.cjs.map +0 -1
- package/dist/src/adapters/agents/skills.mjs +0 -0
- package/dist/src/adapters/agents/skills.mjs.map +0 -1
- package/dist/src/adapters/agents/types.d.cts +0 -119
- package/dist/src/adapters/agents/types.d.cts.map +0 -1
- package/dist/src/adapters/agents/types.d.mts +0 -119
- package/dist/src/adapters/agents/types.d.mts.map +0 -1
- package/dist/src/adapters/api/teamSnapshot.cjs +0 -3
- package/dist/src/adapters/api/teamSnapshot.cjs.map +0 -1
- package/dist/src/adapters/api/teamSnapshot.d.cts +0 -10
- package/dist/src/adapters/api/teamSnapshot.d.cts.map +0 -1
- package/dist/src/adapters/api/teamSnapshot.d.mts +0 -10
- package/dist/src/adapters/api/teamSnapshot.d.mts.map +0 -1
- package/dist/src/adapters/api/teamSnapshot.mjs +0 -3
- package/dist/src/adapters/api/teamSnapshot.mjs.map +0 -1
- package/dist/src/adapters/asyncJobTracker.cjs +0 -2
- package/dist/src/adapters/asyncJobTracker.cjs.map +0 -1
- package/dist/src/adapters/asyncJobTracker.mjs +0 -2
- package/dist/src/adapters/asyncJobTracker.mjs.map +0 -1
- package/dist/src/adapters/atomicJson.cjs +0 -2
- package/dist/src/adapters/atomicJson.cjs.map +0 -1
- package/dist/src/adapters/atomicJson.mjs +0 -2
- package/dist/src/adapters/atomicJson.mjs.map +0 -1
- package/dist/src/adapters/filesystem/artifacts.cjs +0 -2
- package/dist/src/adapters/filesystem/artifacts.cjs.map +0 -1
- package/dist/src/adapters/filesystem/artifacts.mjs +0 -2
- package/dist/src/adapters/filesystem/artifacts.mjs.map +0 -1
- package/dist/src/adapters/filesystem/configDir.cjs +0 -2
- package/dist/src/adapters/filesystem/configDir.cjs.map +0 -1
- package/dist/src/adapters/filesystem/configDir.mjs +0 -2
- package/dist/src/adapters/filesystem/configDir.mjs.map +0 -1
- package/dist/src/adapters/filesystem/fileSystemRetry.cjs +0 -2
- package/dist/src/adapters/filesystem/fileSystemRetry.cjs.map +0 -1
- package/dist/src/adapters/filesystem/fileSystemRetry.mjs +0 -2
- package/dist/src/adapters/filesystem/fileSystemRetry.mjs.map +0 -1
- package/dist/src/adapters/filesystem/paths.cjs +0 -2
- package/dist/src/adapters/filesystem/paths.cjs.map +0 -1
- package/dist/src/adapters/filesystem/paths.mjs +0 -2
- package/dist/src/adapters/filesystem/paths.mjs.map +0 -1
- package/dist/src/adapters/intercom/nativeTeamChannel.cjs +0 -5
- package/dist/src/adapters/intercom/nativeTeamChannel.cjs.map +0 -1
- package/dist/src/adapters/intercom/nativeTeamChannel.d.cts +0 -19
- package/dist/src/adapters/intercom/nativeTeamChannel.d.cts.map +0 -1
- package/dist/src/adapters/intercom/nativeTeamChannel.d.mts +0 -19
- package/dist/src/adapters/intercom/nativeTeamChannel.d.mts.map +0 -1
- package/dist/src/adapters/intercom/nativeTeamChannel.mjs +0 -5
- package/dist/src/adapters/intercom/nativeTeamChannel.mjs.map +0 -1
- package/dist/src/adapters/intercom/supervisorControlChannel.cjs +0 -2
- package/dist/src/adapters/intercom/supervisorControlChannel.cjs.map +0 -1
- package/dist/src/adapters/intercom/supervisorControlChannel.mjs +0 -2
- package/dist/src/adapters/intercom/supervisorControlChannel.mjs.map +0 -1
- package/dist/src/adapters/pi/collaboration.cjs +0 -2
- package/dist/src/adapters/pi/collaboration.cjs.map +0 -1
- package/dist/src/adapters/pi/collaboration.mjs +0 -2
- package/dist/src/adapters/pi/collaboration.mjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/chainExpression.cjs +0 -2
- package/dist/src/adapters/pi/commands/slash/chainExpression.cjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/chainExpression.mjs +0 -2
- package/dist/src/adapters/pi/commands/slash/chainExpression.mjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/doctor.cjs +0 -5
- package/dist/src/adapters/pi/commands/slash/doctor.cjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/doctor.mjs +0 -5
- package/dist/src/adapters/pi/commands/slash/doctor.mjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/slashCommands.cjs +0 -4
- package/dist/src/adapters/pi/commands/slash/slashCommands.cjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/slashCommands.mjs +0 -4
- package/dist/src/adapters/pi/commands/slash/slashCommands.mjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/spawnRequestMapping.cjs +0 -2
- package/dist/src/adapters/pi/commands/slash/spawnRequestMapping.cjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/spawnRequestMapping.mjs +0 -2
- package/dist/src/adapters/pi/commands/slash/spawnRequestMapping.mjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/subagentLaunch.cjs +0 -2
- package/dist/src/adapters/pi/commands/slash/subagentLaunch.cjs.map +0 -1
- package/dist/src/adapters/pi/commands/slash/subagentLaunch.mjs +0 -2
- package/dist/src/adapters/pi/commands/slash/subagentLaunch.mjs.map +0 -1
- package/dist/src/adapters/pi/extension.cjs +0 -2
- package/dist/src/adapters/pi/extension.cjs.map +0 -1
- package/dist/src/adapters/pi/extension.mjs +0 -2
- package/dist/src/adapters/pi/extension.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/config.cjs +0 -2
- package/dist/src/adapters/pi/extensions/config.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/config.mjs +0 -2
- package/dist/src/adapters/pi/extensions/config.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/delegationBridge.cjs +0 -2
- package/dist/src/adapters/pi/extensions/delegationBridge.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/delegationBridge.mjs +0 -2
- package/dist/src/adapters/pi/extensions/delegationBridge.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/directRunBackgroundWork.cjs +0 -2
- package/dist/src/adapters/pi/extensions/directRunBackgroundWork.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/directRunBackgroundWork.mjs +0 -2
- package/dist/src/adapters/pi/extensions/directRunBackgroundWork.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/fablePlanBridge.cjs +0 -2
- package/dist/src/adapters/pi/extensions/fablePlanBridge.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/fablePlanBridge.mjs +0 -2
- package/dist/src/adapters/pi/extensions/fablePlanBridge.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/managementActions.cjs +0 -2
- package/dist/src/adapters/pi/extensions/managementActions.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/managementActions.mjs +0 -2
- package/dist/src/adapters/pi/extensions/managementActions.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/operationJournal.cjs +0 -2
- package/dist/src/adapters/pi/extensions/operationJournal.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/operationJournal.mjs +0 -2
- package/dist/src/adapters/pi/extensions/operationJournal.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/orchestratorPrompt.cjs +0 -42
- package/dist/src/adapters/pi/extensions/orchestratorPrompt.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/orchestratorPrompt.mjs +0 -42
- package/dist/src/adapters/pi/extensions/orchestratorPrompt.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/spawnPlan.cjs +0 -4
- package/dist/src/adapters/pi/extensions/spawnPlan.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/spawnPlan.mjs +0 -4
- package/dist/src/adapters/pi/extensions/spawnPlan.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/statusViews.cjs +0 -7
- package/dist/src/adapters/pi/extensions/statusViews.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/statusViews.mjs +0 -7
- package/dist/src/adapters/pi/extensions/statusViews.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.cjs +0 -19
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.d.cts +0 -51
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.d.cts.map +0 -1
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.d.mts +0 -51
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.d.mts.map +0 -1
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.mjs +0 -19
- package/dist/src/adapters/pi/extensions/subagentPromptRuntime.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/subagentTool.cjs +0 -6
- package/dist/src/adapters/pi/extensions/subagentTool.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/subagentTool.mjs +0 -6
- package/dist/src/adapters/pi/extensions/subagentTool.mjs.map +0 -1
- package/dist/src/adapters/pi/extensions/toolDescription.cjs +0 -2
- package/dist/src/adapters/pi/extensions/toolDescription.cjs.map +0 -1
- package/dist/src/adapters/pi/extensions/toolDescription.mjs +0 -2
- package/dist/src/adapters/pi/extensions/toolDescription.mjs.map +0 -1
- package/dist/src/adapters/pi/promptRuntime.cjs +0 -2
- package/dist/src/adapters/pi/promptRuntime.cjs.map +0 -1
- package/dist/src/adapters/pi/promptRuntime.mjs +0 -2
- package/dist/src/adapters/pi/promptRuntime.mjs.map +0 -1
- package/dist/src/adapters/pi/standard.cjs +0 -2
- package/dist/src/adapters/pi/standard.cjs.map +0 -1
- package/dist/src/adapters/pi/standard.d.cts +0 -8
- package/dist/src/adapters/pi/standard.d.cts.map +0 -1
- package/dist/src/adapters/pi/standard.d.mts +0 -8
- package/dist/src/adapters/pi/standard.d.mts.map +0 -1
- package/dist/src/adapters/pi/standard.mjs +0 -2
- package/dist/src/adapters/pi/standard.mjs.map +0 -1
- package/dist/src/adapters/pi/teamRuntime.cjs +0 -2
- package/dist/src/adapters/pi/teamRuntime.cjs.map +0 -1
- package/dist/src/adapters/pi/teamRuntime.mjs +0 -2
- package/dist/src/adapters/pi/teamRuntime.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/agentCatalog.cjs +0 -3
- package/dist/src/adapters/pi/tui/agentCatalog.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/agentCatalog.mjs +0 -3
- package/dist/src/adapters/pi/tui/agentCatalog.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/agentResourceProjection.cjs +0 -2
- package/dist/src/adapters/pi/tui/agentResourceProjection.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/agentResourceProjection.mjs +0 -2
- package/dist/src/adapters/pi/tui/agentResourceProjection.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/completionNotice.cjs +0 -5
- package/dist/src/adapters/pi/tui/completionNotice.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/completionNotice.mjs +0 -5
- package/dist/src/adapters/pi/tui/completionNotice.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleet.cjs +0 -3
- package/dist/src/adapters/pi/tui/fleet.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleet.mjs +0 -3
- package/dist/src/adapters/pi/tui/fleet.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleetAgentView.cjs +0 -2
- package/dist/src/adapters/pi/tui/fleetAgentView.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleetAgentView.mjs +0 -2
- package/dist/src/adapters/pi/tui/fleetAgentView.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleetStatus.cjs +0 -2
- package/dist/src/adapters/pi/tui/fleetStatus.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleetStatus.mjs +0 -2
- package/dist/src/adapters/pi/tui/fleetStatus.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleetTranscript.cjs +0 -5
- package/dist/src/adapters/pi/tui/fleetTranscript.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/fleetTranscript.mjs +0 -5
- package/dist/src/adapters/pi/tui/fleetTranscript.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/formatters.cjs +0 -2
- package/dist/src/adapters/pi/tui/formatters.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/formatters.mjs +0 -2
- package/dist/src/adapters/pi/tui/formatters.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/register.cjs +0 -2
- package/dist/src/adapters/pi/tui/register.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/register.mjs +0 -2
- package/dist/src/adapters/pi/tui/register.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/slashRunNotice.cjs +0 -3
- package/dist/src/adapters/pi/tui/slashRunNotice.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/slashRunNotice.mjs +0 -3
- package/dist/src/adapters/pi/tui/slashRunNotice.mjs.map +0 -1
- package/dist/src/adapters/pi/tui/subagentToolRender.cjs.map +0 -1
- package/dist/src/adapters/pi/tui/subagentToolRender.mjs.map +0 -1
- package/dist/src/adapters/pollScheduler.cjs +0 -2
- package/dist/src/adapters/pollScheduler.cjs.map +0 -1
- package/dist/src/adapters/pollScheduler.mjs +0 -2
- package/dist/src/adapters/pollScheduler.mjs.map +0 -1
- package/dist/src/adapters/process/childTranscript.cjs +0 -5
- package/dist/src/adapters/process/childTranscript.cjs.map +0 -1
- package/dist/src/adapters/process/childTranscript.mjs +0 -5
- package/dist/src/adapters/process/childTranscript.mjs.map +0 -1
- package/dist/src/adapters/processTerminal.cjs +0 -2
- package/dist/src/adapters/processTerminal.cjs.map +0 -1
- package/dist/src/adapters/processTerminal.mjs +0 -2
- package/dist/src/adapters/processTerminal.mjs.map +0 -1
- package/dist/src/adapters/resultWatcher.cjs +0 -2
- package/dist/src/adapters/resultWatcher.cjs.map +0 -1
- package/dist/src/adapters/resultWatcher.mjs +0 -2
- package/dist/src/adapters/resultWatcher.mjs.map +0 -1
- package/dist/src/adapters/runIdResolver.cjs +0 -2
- package/dist/src/adapters/runIdResolver.cjs.map +0 -1
- package/dist/src/adapters/runIdResolver.mjs +0 -2
- package/dist/src/adapters/runIdResolver.mjs.map +0 -1
- package/dist/src/adapters/runRegistry.cjs +0 -2
- package/dist/src/adapters/runRegistry.cjs.map +0 -1
- package/dist/src/adapters/runRegistry.mjs +0 -2
- package/dist/src/adapters/runRegistry.mjs.map +0 -1
- package/dist/src/adapters/runs/background/asyncExecution.cjs +0 -2
- package/dist/src/adapters/runs/background/asyncExecution.cjs.map +0 -1
- package/dist/src/adapters/runs/background/asyncExecution.d.cts +0 -3
- package/dist/src/adapters/runs/background/asyncExecution.d.mts +0 -3
- package/dist/src/adapters/runs/background/asyncExecution.mjs +0 -2
- package/dist/src/adapters/runs/background/asyncExecution.mjs.map +0 -1
- package/dist/src/adapters/runs/background/completionBatcher.cjs +0 -2
- package/dist/src/adapters/runs/background/completionBatcher.cjs.map +0 -1
- package/dist/src/adapters/runs/background/completionBatcher.mjs +0 -2
- package/dist/src/adapters/runs/background/completionBatcher.mjs.map +0 -1
- package/dist/src/adapters/runs/background/notify.cjs +0 -4
- package/dist/src/adapters/runs/background/notify.cjs.map +0 -1
- package/dist/src/adapters/runs/background/notify.mjs +0 -4
- package/dist/src/adapters/runs/background/notify.mjs.map +0 -1
- package/dist/src/adapters/runs/background/parentWatchdog.cjs +0 -2
- package/dist/src/adapters/runs/background/parentWatchdog.cjs.map +0 -1
- package/dist/src/adapters/runs/background/parentWatchdog.mjs +0 -2
- package/dist/src/adapters/runs/background/parentWatchdog.mjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerBootstrap.cjs +0 -2
- package/dist/src/adapters/runs/background/runnerBootstrap.cjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerBootstrap.d.cts +0 -4
- package/dist/src/adapters/runs/background/runnerBootstrap.d.mts +0 -4
- package/dist/src/adapters/runs/background/runnerBootstrap.mjs +0 -2
- package/dist/src/adapters/runs/background/runnerBootstrap.mjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerExecution.cjs +0 -2
- package/dist/src/adapters/runs/background/runnerExecution.cjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerExecution.d.cts +0 -2
- package/dist/src/adapters/runs/background/runnerExecution.d.mts +0 -2
- package/dist/src/adapters/runs/background/runnerExecution.mjs +0 -2
- package/dist/src/adapters/runs/background/runnerExecution.mjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerReporting.cjs +0 -3
- package/dist/src/adapters/runs/background/runnerReporting.cjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerReporting.d.cts +0 -1
- package/dist/src/adapters/runs/background/runnerReporting.d.mts +0 -1
- package/dist/src/adapters/runs/background/runnerReporting.mjs +0 -3
- package/dist/src/adapters/runs/background/runnerReporting.mjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerTeamMembership.cjs +0 -2
- package/dist/src/adapters/runs/background/runnerTeamMembership.cjs.map +0 -1
- package/dist/src/adapters/runs/background/runnerTeamMembership.d.cts +0 -1
- package/dist/src/adapters/runs/background/runnerTeamMembership.d.mts +0 -1
- package/dist/src/adapters/runs/background/runnerTeamMembership.mjs +0 -2
- package/dist/src/adapters/runs/background/runnerTeamMembership.mjs.map +0 -1
- package/dist/src/adapters/runs/background/spawnHandshake.cjs +0 -2
- package/dist/src/adapters/runs/background/spawnHandshake.cjs.map +0 -1
- package/dist/src/adapters/runs/background/spawnHandshake.mjs +0 -2
- package/dist/src/adapters/runs/background/spawnHandshake.mjs.map +0 -1
- package/dist/src/adapters/runs/background/statusWriter.cjs +0 -2
- package/dist/src/adapters/runs/background/statusWriter.cjs.map +0 -1
- package/dist/src/adapters/runs/background/statusWriter.mjs +0 -2
- package/dist/src/adapters/runs/background/statusWriter.mjs.map +0 -1
- package/dist/src/adapters/runs/background/subagentWait.cjs +0 -2
- package/dist/src/adapters/runs/background/subagentWait.cjs.map +0 -1
- package/dist/src/adapters/runs/background/subagentWait.mjs +0 -2
- package/dist/src/adapters/runs/background/subagentWait.mjs.map +0 -1
- package/dist/src/adapters/runs/background/terminalPersistence.cjs +0 -2
- package/dist/src/adapters/runs/background/terminalPersistence.cjs.map +0 -1
- package/dist/src/adapters/runs/background/terminalPersistence.mjs +0 -2
- package/dist/src/adapters/runs/background/terminalPersistence.mjs.map +0 -1
- package/dist/src/adapters/runs/registry/processGroup.cjs +0 -2
- package/dist/src/adapters/runs/registry/processGroup.cjs.map +0 -1
- package/dist/src/adapters/runs/registry/processGroup.mjs +0 -2
- package/dist/src/adapters/runs/registry/processGroup.mjs.map +0 -1
- package/dist/src/adapters/runs/registry/sessionLifecycle.cjs +0 -2
- package/dist/src/adapters/runs/registry/sessionLifecycle.cjs.map +0 -1
- package/dist/src/adapters/runs/registry/sessionLifecycle.mjs +0 -2
- package/dist/src/adapters/runs/registry/sessionLifecycle.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/admissionGate.cjs +0 -2
- package/dist/src/adapters/runs/shared/admissionGate.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/admissionGate.mjs +0 -2
- package/dist/src/adapters/runs/shared/admissionGate.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/claudeFableProfile.cjs +0 -4
- package/dist/src/adapters/runs/shared/claudeFableProfile.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/claudeFableProfile.mjs +0 -4
- package/dist/src/adapters/runs/shared/claudeFableProfile.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/depthGuard.cjs +0 -2
- package/dist/src/adapters/runs/shared/depthGuard.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/depthGuard.mjs +0 -2
- package/dist/src/adapters/runs/shared/depthGuard.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/mcpDirectToolAllowlist.cjs +0 -2
- package/dist/src/adapters/runs/shared/mcpDirectToolAllowlist.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/mcpDirectToolAllowlist.d.cts +0 -1
- package/dist/src/adapters/runs/shared/mcpDirectToolAllowlist.d.mts +0 -1
- package/dist/src/adapters/runs/shared/mcpDirectToolAllowlist.mjs +0 -2
- package/dist/src/adapters/runs/shared/mcpDirectToolAllowlist.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/modelFallback.cjs +0 -2
- package/dist/src/adapters/runs/shared/modelFallback.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/modelFallback.mjs +0 -2
- package/dist/src/adapters/runs/shared/modelFallback.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/modelScope.cjs +0 -2
- package/dist/src/adapters/runs/shared/modelScope.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/modelScope.mjs +0 -2
- package/dist/src/adapters/runs/shared/modelScope.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/nestedPath.cjs +0 -2
- package/dist/src/adapters/runs/shared/nestedPath.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/nestedPath.mjs +0 -2
- package/dist/src/adapters/runs/shared/nestedPath.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/piArgs.cjs +0 -2
- package/dist/src/adapters/runs/shared/piArgs.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/piArgs.d.cts +0 -3
- package/dist/src/adapters/runs/shared/piArgs.d.mts +0 -3
- package/dist/src/adapters/runs/shared/piArgs.mjs +0 -2
- package/dist/src/adapters/runs/shared/piArgs.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/piSpawn.cjs +0 -2
- package/dist/src/adapters/runs/shared/piSpawn.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/piSpawn.mjs +0 -2
- package/dist/src/adapters/runs/shared/piSpawn.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/runWithConcurrency.cjs +0 -2
- package/dist/src/adapters/runs/shared/runWithConcurrency.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/runWithConcurrency.mjs +0 -2
- package/dist/src/adapters/runs/shared/runWithConcurrency.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/runtimeRegistry.cjs +0 -2
- package/dist/src/adapters/runs/shared/runtimeRegistry.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/runtimeRegistry.mjs +0 -2
- package/dist/src/adapters/runs/shared/runtimeRegistry.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/structuredOutput.cjs +0 -2
- package/dist/src/adapters/runs/shared/structuredOutput.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/structuredOutput.mjs +0 -2
- package/dist/src/adapters/runs/shared/structuredOutput.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/toolAvailability.cjs +0 -2
- package/dist/src/adapters/runs/shared/toolAvailability.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/toolAvailability.mjs +0 -2
- package/dist/src/adapters/runs/shared/toolAvailability.mjs.map +0 -1
- package/dist/src/adapters/runs/shared/toolBudget.cjs +0 -2
- package/dist/src/adapters/runs/shared/toolBudget.cjs.map +0 -1
- package/dist/src/adapters/runs/shared/toolBudget.mjs +0 -2
- package/dist/src/adapters/runs/shared/toolBudget.mjs.map +0 -1
- package/dist/src/adapters/scopeOwner.cjs +0 -2
- package/dist/src/adapters/scopeOwner.cjs.map +0 -1
- package/dist/src/adapters/scopeOwner.mjs +0 -2
- package/dist/src/adapters/scopeOwner.mjs.map +0 -1
- package/dist/src/adapters/sessionCatalogSnapshot.cjs +0 -2
- package/dist/src/adapters/sessionCatalogSnapshot.cjs.map +0 -1
- package/dist/src/adapters/sessionCatalogSnapshot.mjs +0 -2
- package/dist/src/adapters/sessionCatalogSnapshot.mjs.map +0 -1
- package/dist/src/adapters/staleRunReconciler.cjs +0 -2
- package/dist/src/adapters/staleRunReconciler.cjs.map +0 -1
- package/dist/src/adapters/staleRunReconciler.mjs +0 -2
- package/dist/src/adapters/staleRunReconciler.mjs.map +0 -1
- package/dist/src/adapters/statusReader.cjs +0 -2
- package/dist/src/adapters/statusReader.cjs.map +0 -1
- package/dist/src/adapters/statusReader.mjs +0 -2
- package/dist/src/adapters/statusReader.mjs.map +0 -1
- package/dist/src/adapters/subagentLaunchContract.cjs +0 -2
- package/dist/src/adapters/subagentLaunchContract.cjs.map +0 -1
- package/dist/src/adapters/subagentLaunchContract.d.cts +0 -28
- package/dist/src/adapters/subagentLaunchContract.d.cts.map +0 -1
- package/dist/src/adapters/subagentLaunchContract.d.mts +0 -28
- package/dist/src/adapters/subagentLaunchContract.d.mts.map +0 -1
- package/dist/src/adapters/subagentLaunchContract.mjs +0 -2
- package/dist/src/adapters/subagentLaunchContract.mjs.map +0 -1
- package/dist/src/adapters/suspendedRuns.cjs +0 -6
- package/dist/src/adapters/suspendedRuns.cjs.map +0 -1
- package/dist/src/adapters/suspendedRuns.mjs +0 -6
- package/dist/src/adapters/suspendedRuns.mjs.map +0 -1
- package/dist/src/adapters/teamCatalogApi.cjs +0 -2
- package/dist/src/adapters/teamCatalogApi.cjs.map +0 -1
- package/dist/src/adapters/teamCatalogApi.d.cts +0 -19
- package/dist/src/adapters/teamCatalogApi.d.cts.map +0 -1
- package/dist/src/adapters/teamCatalogApi.d.mts +0 -19
- package/dist/src/adapters/teamCatalogApi.d.mts.map +0 -1
- package/dist/src/adapters/teamCatalogApi.mjs +0 -2
- package/dist/src/adapters/teamCatalogApi.mjs.map +0 -1
- package/dist/src/adapters/webHubChannels.cjs +0 -2
- package/dist/src/adapters/webHubChannels.cjs.map +0 -1
- package/dist/src/adapters/webHubChannels.d.cts +0 -6
- package/dist/src/adapters/webHubChannels.d.cts.map +0 -1
- package/dist/src/adapters/webHubChannels.d.mts +0 -6
- package/dist/src/adapters/webHubChannels.d.mts.map +0 -1
- package/dist/src/adapters/webHubChannels.mjs +0 -2
- package/dist/src/adapters/webHubChannels.mjs.map +0 -1
- package/dist/src/adapters/webSubagentCatalogChannel.cjs +0 -2
- package/dist/src/adapters/webSubagentCatalogChannel.cjs.map +0 -1
- package/dist/src/adapters/webSubagentCatalogChannel.d.cts +0 -17
- package/dist/src/adapters/webSubagentCatalogChannel.d.cts.map +0 -1
- package/dist/src/adapters/webSubagentCatalogChannel.d.mts +0 -17
- package/dist/src/adapters/webSubagentCatalogChannel.d.mts.map +0 -1
- package/dist/src/adapters/webSubagentCatalogChannel.mjs +0 -2
- package/dist/src/adapters/webSubagentCatalogChannel.mjs.map +0 -1
- package/dist/src/adapters/webSubagentWatcher.cjs +0 -2
- package/dist/src/adapters/webSubagentWatcher.cjs.map +0 -1
- package/dist/src/adapters/webSubagentWatcher.d.cts +0 -16
- package/dist/src/adapters/webSubagentWatcher.d.cts.map +0 -1
- package/dist/src/adapters/webSubagentWatcher.d.mts +0 -16
- package/dist/src/adapters/webSubagentWatcher.d.mts.map +0 -1
- package/dist/src/adapters/webSubagentWatcher.mjs +0 -2
- package/dist/src/adapters/webSubagentWatcher.mjs.map +0 -1
- package/dist/src/adapters/webSubagentsChannel.cjs +0 -2
- package/dist/src/adapters/webSubagentsChannel.cjs.map +0 -1
- package/dist/src/adapters/webSubagentsChannel.d.cts +0 -14
- package/dist/src/adapters/webSubagentsChannel.d.cts.map +0 -1
- package/dist/src/adapters/webSubagentsChannel.d.mts +0 -14
- package/dist/src/adapters/webSubagentsChannel.d.mts.map +0 -1
- package/dist/src/adapters/webSubagentsChannel.mjs +0 -2
- package/dist/src/adapters/webSubagentsChannel.mjs.map +0 -1
- package/dist/src/schemas/team/capabilityCeiling.cjs.map +0 -1
- package/dist/src/schemas/team/capabilityCeiling.d.cts +0 -46
- package/dist/src/schemas/team/capabilityCeiling.d.cts.map +0 -1
- package/dist/src/schemas/team/capabilityCeiling.d.mts +0 -46
- package/dist/src/schemas/team/capabilityCeiling.d.mts.map +0 -1
- package/dist/src/schemas/team/capabilityCeiling.mjs +0 -2
- package/dist/src/schemas/team/capabilityCeiling.mjs.map +0 -1
- package/dist/src/schemas/team/delegation.cjs.map +0 -1
- package/dist/src/schemas/team/delegation.d.cts.map +0 -1
- package/dist/src/schemas/team/delegation.d.mts.map +0 -1
- package/dist/src/schemas/team/delegation.mjs.map +0 -1
- package/dist/src/schemas/team/packageConfig.cjs.map +0 -1
- package/dist/src/schemas/team/packageConfig.mjs.map +0 -1
- package/dist/src/services/backgroundWorkService.cjs +0 -2
- package/dist/src/services/backgroundWorkService.cjs.map +0 -1
- package/dist/src/services/backgroundWorkService.mjs +0 -2
- package/dist/src/services/backgroundWorkService.mjs.map +0 -1
- package/dist/src/services/intercom/intercomBridge.cjs +0 -2
- package/dist/src/services/intercom/intercomBridge.cjs.map +0 -1
- package/dist/src/services/intercom/intercomBridge.mjs +0 -2
- package/dist/src/services/intercom/intercomBridge.mjs.map +0 -1
- package/dist/src/services/models/modelInfo.cjs +0 -2
- package/dist/src/services/models/modelInfo.cjs.map +0 -1
- package/dist/src/services/models/modelInfo.mjs +0 -2
- package/dist/src/services/models/modelInfo.mjs.map +0 -1
- package/dist/src/services/models/modelResolution.cjs +0 -2
- package/dist/src/services/models/modelResolution.cjs.map +0 -1
- package/dist/src/services/models/modelResolution.mjs +0 -2
- package/dist/src/services/models/modelResolution.mjs.map +0 -1
- package/dist/src/services/runs/extensionErrorTelemetry.cjs +0 -2
- package/dist/src/services/runs/extensionErrorTelemetry.cjs.map +0 -1
- package/dist/src/services/runs/extensionErrorTelemetry.mjs +0 -2
- package/dist/src/services/runs/extensionErrorTelemetry.mjs.map +0 -1
- package/dist/src/services/subagentPolicyService.cjs +0 -2
- package/dist/src/services/subagentPolicyService.cjs.map +0 -1
- package/dist/src/services/subagentPolicyService.mjs +0 -2
- package/dist/src/services/subagentPolicyService.mjs.map +0 -1
- package/dist/src/services/support/boundedKeySet.cjs +0 -2
- package/dist/src/services/support/boundedKeySet.cjs.map +0 -1
- package/dist/src/services/support/boundedKeySet.mjs +0 -2
- package/dist/src/services/support/boundedKeySet.mjs.map +0 -1
- package/dist/src/services/support/errors.cjs +0 -2
- package/dist/src/services/support/errors.cjs.map +0 -1
- package/dist/src/services/support/errors.mjs +0 -2
- package/dist/src/services/support/errors.mjs.map +0 -1
- package/dist/src/services/support/lruCache.cjs +0 -2
- package/dist/src/services/support/lruCache.cjs.map +0 -1
- package/dist/src/services/support/lruCache.mjs +0 -2
- package/dist/src/services/support/lruCache.mjs.map +0 -1
- package/dist/src/services/support/versioned.cjs +0 -2
- package/dist/src/services/support/versioned.cjs.map +0 -1
- package/dist/src/services/support/versioned.mjs +0 -2
- package/dist/src/services/support/versioned.mjs.map +0 -1
- package/dist/src/services/webSubagentCatalog.cjs +0 -2
- package/dist/src/services/webSubagentCatalog.cjs.map +0 -1
- package/dist/src/services/webSubagentCatalog.d.cts +0 -18
- package/dist/src/services/webSubagentCatalog.d.cts.map +0 -1
- package/dist/src/services/webSubagentCatalog.d.mts +0 -18
- package/dist/src/services/webSubagentCatalog.d.mts.map +0 -1
- package/dist/src/services/webSubagentCatalog.mjs +0 -2
- package/dist/src/services/webSubagentCatalog.mjs.map +0 -1
- package/dist/src/services/webSubagentRuns.cjs +0 -2
- package/dist/src/services/webSubagentRuns.cjs.map +0 -1
- package/dist/src/services/webSubagentRuns.mjs +0 -2
- package/dist/src/services/webSubagentRuns.mjs.map +0 -1
- package/dist/src/types/environment.cjs +0 -2
- package/dist/src/types/environment.cjs.map +0 -1
- package/dist/src/types/environment.d.cts +0 -68
- package/dist/src/types/environment.d.cts.map +0 -1
- package/dist/src/types/environment.d.mts +0 -68
- package/dist/src/types/environment.d.mts.map +0 -1
- package/dist/src/types/environment.mjs +0 -2
- package/dist/src/types/environment.mjs.map +0 -1
- package/dist/src/types/index.d.cts.map +0 -1
- package/dist/src/types/index.d.mts.map +0 -1
- package/dist/src/types/webSubagents.cjs.map +0 -1
- package/dist/src/types/webSubagents.d.cts +0 -43
- package/dist/src/types/webSubagents.d.cts.map +0 -1
- package/dist/src/types/webSubagents.d.mts +0 -43
- package/dist/src/types/webSubagents.d.mts.map +0 -1
- package/dist/src/types/webSubagents.mjs.map +0 -1
- package/dist/webHub.cjs +0 -1
- package/dist/webHub.d.cts +0 -4
- package/dist/webHub.d.mts +0 -4
- package/dist/webHub.mjs +0 -1
- package/src/exports/webClient.ts +0 -1
- package/src/web/index.ts +0 -72
- /package/dist/{src/schemas → schemas}/team/capabilityCeiling.cjs +0 -0
- /package/dist/{src/schemas → schemas}/team/delegation.cjs +0 -0
- /package/dist/{src/schemas → schemas}/team/delegation.d.cts +0 -0
- /package/dist/{src/schemas → schemas}/team/delegation.d.mts +0 -0
- /package/dist/{src/schemas → schemas}/team/delegation.mjs +0 -0
- /package/dist/{src/schemas → schemas}/team/packageConfig.cjs +0 -0
- /package/dist/{src/schemas → schemas}/team/packageConfig.mjs +0 -0
- /package/dist/{src/adapters/pi/tui → tui}/subagentToolRender.cjs +0 -0
- /package/dist/{src/adapters/pi/tui → tui}/subagentToolRender.mjs +0 -0
- /package/dist/{src/types → types}/index.d.cts +0 -0
- /package/dist/{src/types → types}/index.d.mts +0 -0
- /package/dist/{src/types → types}/webSubagents.cjs +0 -0
- /package/dist/{src/types → types}/webSubagents.mjs +0 -0
package/README.md
CHANGED
|
@@ -116,7 +116,7 @@ import { resolveSubagentLaunchContract } from '@agimon-ai/doompi-team';
|
|
|
116
116
|
|
|
117
117
|
Focused subpaths include `/api/capability-ceiling`, `/api/delegation`, `/api/team-snapshot`,
|
|
118
118
|
and `/env`. Live cross-extension collaboration contracts come from
|
|
119
|
-
`@agimon-ai/doompi-
|
|
119
|
+
`@agimon-ai/doompi-core`; Pi loads `/extensions/pi` through package metadata.
|
|
120
120
|
|
|
121
121
|
## Development
|
|
122
122
|
|
|
@@ -134,3 +134,9 @@ Maintained by [Agimon](https://agimon.ai/about).
|
|
|
134
134
|
## License
|
|
135
135
|
|
|
136
136
|
MIT
|
|
137
|
+
|
|
138
|
+
## Source and lifecycle
|
|
139
|
+
|
|
140
|
+
`src/extensions/pi.ts`, `server.ts`, and `web.ts` are the host entries. They compose controllers, native tool declarations, and named services. Controllers coordinate services and models; TUI rendering stays in `src/tui`. Public capabilities live in flat `src/exports` files and build separately from host entries.
|
|
141
|
+
|
|
142
|
+
The Pi and server helpers own contribution registration and disposal. Team's collaboration service replaces session fibers explicitly, uses the injected session only when its session manager matches, and otherwise mounts in the standalone plugin context. Losing that injected session disposes its collaboration fiber.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{apiContracts as e}from"./schemas/apiContracts.mjs";export{e as apiContracts,e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./types/environment.cjs"),t=require("./schemas/team/capabilityCeiling.cjs");exports.SUBAGENT_CAPABILITY_CEILING_ENV=e.SUBAGENT_CAPABILITY_CEILING_ENV,exports.SUBAGENT_CAPABILITY_CEILING_VERSION=t.SUBAGENT_CAPABILITY_CEILING_VERSION,exports.SubagentCapabilityPolicyStore=t.SubagentCapabilityPolicyStore,exports.decodeSubagentCapabilityCeiling=t.decodeSubagentCapabilityCeiling,exports.encodeSubagentCapabilityCeiling=t.encodeSubagentCapabilityCeiling,exports.intersectSubagentCapabilityCeilings=t.intersectSubagentCapabilityCeilings,exports.parseSubagentCapabilityCeiling=t.parseSubagentCapabilityCeiling;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SUBAGENT_CAPABILITY_CEILING_ENV } from "./types/environment.cjs";
|
|
2
|
+
import { ResolvedSubagentCapabilityCeiling, SUBAGENT_CAPABILITY_CEILING_VERSION, SubagentCapabilityAudit, SubagentCapabilityCeiling, SubagentCapabilityPolicyStore, decodeSubagentCapabilityCeiling, encodeSubagentCapabilityCeiling, intersectSubagentCapabilityCeilings, parseSubagentCapabilityCeiling } from "./schemas/team/capabilityCeiling.cjs";
|
|
3
|
+
export { ResolvedSubagentCapabilityCeiling, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CAPABILITY_CEILING_VERSION, SubagentCapabilityAudit, SubagentCapabilityCeiling, SubagentCapabilityPolicyStore, decodeSubagentCapabilityCeiling, encodeSubagentCapabilityCeiling, intersectSubagentCapabilityCeilings, parseSubagentCapabilityCeiling };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SUBAGENT_CAPABILITY_CEILING_ENV } from "./types/environment.mjs";
|
|
2
|
+
import { ResolvedSubagentCapabilityCeiling, SUBAGENT_CAPABILITY_CEILING_VERSION, SubagentCapabilityAudit, SubagentCapabilityCeiling, SubagentCapabilityPolicyStore, decodeSubagentCapabilityCeiling, encodeSubagentCapabilityCeiling, intersectSubagentCapabilityCeilings, parseSubagentCapabilityCeiling } from "./schemas/team/capabilityCeiling.mjs";
|
|
3
|
+
export { ResolvedSubagentCapabilityCeiling, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CAPABILITY_CEILING_VERSION, SubagentCapabilityAudit, SubagentCapabilityCeiling, SubagentCapabilityPolicyStore, decodeSubagentCapabilityCeiling, encodeSubagentCapabilityCeiling, intersectSubagentCapabilityCeilings, parseSubagentCapabilityCeiling };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SUBAGENT_CAPABILITY_CEILING_ENV as e}from"./types/environment.mjs";import{SUBAGENT_CAPABILITY_CEILING_VERSION as t,SubagentCapabilityPolicyStore as n,decodeSubagentCapabilityCeiling as r,encodeSubagentCapabilityCeiling as i,intersectSubagentCapabilityCeilings as a,parseSubagentCapabilityCeiling as o}from"./schemas/team/capabilityCeiling.mjs";export{e as SUBAGENT_CAPABILITY_CEILING_ENV,t as SUBAGENT_CAPABILITY_CEILING_VERSION,n as SubagentCapabilityPolicyStore,r as decodeSubagentCapabilityCeiling,i as encodeSubagentCapabilityCeiling,a as intersectSubagentCapabilityCeilings,o as parseSubagentCapabilityCeiling};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.cjs","names":[],"sources":["../../src/constants/team.ts"],"sourcesContent":["export const SUBAGENT_SAFETY_GUIDANCE =\n 'Give every child a self-contained task; coordination and further delegation depend on the Team package policy.';\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.mjs","names":[],"sources":["../../src/constants/team.ts"],"sourcesContent":["export const SUBAGENT_SAFETY_GUIDANCE =\n 'Give every child a self-contained task; coordination and further delegation depend on the Team package policy.';\n"],"mappings":"AAAA,MAAa,EACX"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const e=require("../services/asyncJobTracker/index.cjs"),t=require("../services/chainExpression/index.cjs"),n=require("../services/sessionPaths/index.cjs"),r=require("../services/doctor/index.cjs"),i=require("../services/modelResolution/index.cjs"),a=require("../services/modelFallback/index.cjs"),o=require("../services/spawnPlan/index.cjs"),s=require("../services/spawnRequestMapping/index.cjs"),c=require("../services/subagentLaunch/index.cjs"),l=require("../models/slashResult.cjs");let u=require("@agimon-ai/doompi-core/child-process");function d(e,t){return n.createSessionScope((0,u.resolveRootSessionId)(e.sessionManager.getSessionId(),t))}function f(e,t,n){e.sendMessage({customType:l.SLASH_RESULT_CUSTOM_TYPE,content:t,display:!0,...n?{details:n}:{}})}function p(e,t){e.hasUI&&e.ui.setStatus(`subagent-slash`,t)}function m(e,t){e.ui.notify(t,`error`)}function h(e,t){e.ui.notify(t,`info`)}function g(e){return e?e.attentionReason?`${e.status??`running`} - needs attention: ${e.attentionReason}`:e.activityState?`${e.status??`running`} - ${e.activityState}`:e.status??`running`:`starting…`}function _(t,n,r,i,a,o){c.watchTrackedRunUntilTerminal(r.scheduler,i,a,r=>{if(p(n,`${o} (${a}): ${g(r)}`),r?.status===void 0||!e.TERMINAL_ASYNC_JOB_STATES.has(r.status))return;p(n,void 0);let i=r.status===`complete`||r.status===`completed`?`completed`:r.status;f(t,r.error?`## Subagent ${i}\n\n${o} (${a})\n\n${r.error}`:`## Subagent ${i}\n\n${o} (${a})`,[{agent:o,runId:a,status:i,...r.error?{error:r.error}:{}}])})}function v(e,t,n,r,i){let a=i.outcomes.filter(e=>e.runId),o=i.outcomes.filter(e=>!e.runId);if(a.length>0){f(e,`## Subagent started\n\n${a.map(e=>`${e.agent} (${e.runId})${e.warning?`\n Warning: ${e.warning}`:``}`).join(`, `)}`,a.map(e=>({agent:e.agent,runId:e.runId??``,status:`started`,...e.warning?{warning:e.warning}:{}}))),p(t,`${a.length} run${a.length===1?``:`s`} started…`);for(let i of a)i.runId&&_(e,t,n,r,i.runId,i.agent)}o.length>0&&m(t,`Some subagents failed to start:\n${o.map(e=>`${e.agent}: ${e.error??`spawn failed`}`).join(`
|
|
2
|
+
`)}`)}function y(e,t){if(e.baseCwd)return e.baseCwd;m(t,`Subagent session cwd is not initialized yet`)}function b(e,t,n,r){return e.discovery.discover(t,`both`).agents.find(e=>e.name===n)?!0:(m(r,`Unknown agent: ${n}`),!1)}async function x(e,n,r,l,u){let f=r.baseCwd;if(!f)return{ok:!1,message:`Subagent session cwd is not initialized yet`};if(!l.discovery.discover(f,`both`).agents.find(e=>e.name===u.agent))return{ok:!1,message:`Unknown agent: ${u.agent}`};let p=d(n,l.environment),m=l.tracker.forSession(n.sessionManager.getSessionId(),p);try{let t=o.captureSessionForkSource(n.sessionManager,`settled`),r=a.normalizeParentModel(n.model),d=s.taskInputFromParsedStep({name:u.agent,config:u.config??{},task:u.task},f,u.fork?`fork`:void 0),h=await c.launchSingleSubagent(l.spawnPlanner,m,{agent:d.agent,task:d.task??``,cwd:d.cwd??f,agentScope:`both`,sessionScope:p,parentSessionId:n.sessionManager.getSessionId(),...d.model?{model:d.model}:{},...d.context?{context:d.context}:{},...t?{parentForkSource:t.terminalSource,...t.sessionFile?{parentSessionFile:t.sessionFile}:{},parentLeafId:t.leafId}:{},availableModels:i.authenticatedModelInfos(n.modelRegistry),...r?{parentModel:r}:{}},l.loadConfig());return v(e,n,l,m,h),{ok:!0,result:h}}catch(e){if(e instanceof s.UnsupportedInlineConfigError||e instanceof t.SlashParseError)return{ok:!1,message:e.message};throw e}}function S(e,t,n,r,i){x(e,t,n,r,i).then(e=>{e.ok||m(t,e.message)},e=>{m(t,`Subagent launch failed: ${e instanceof Error?e.message:String(e)}`)})}function C(e,n){if(n instanceof s.UnsupportedInlineConfigError||n instanceof t.SlashParseError){m(e,n.message);return}throw n}function w(e){let n=e.trim();if(n.includes(` -> `)){let e=n.split(` -> `).map(e=>e.trim()).filter(Boolean).map(e=>t.parseSingleTaskToken(e));return e.length===0?void 0:{steps:e,task:e.find(e=>e.task)?.task??``,perStep:!0}}let r=n.indexOf(` -- `);if(r===-1)return;let i=n.slice(0,r).trim(),a=n.slice(r+4).trim();if(!i||!a)return;let o=i.split(/\s+/).filter(Boolean).map(e=>t.parseSingleTaskToken(e));if(o.length!==0)return{steps:o,task:a,perStep:!1}}function T(n,l,u){return[[`run`,{description:`Run a subagent in the background: /run agent[model=x] [task] [--fork]`,handler:async(e,r)=>{let{args:i,fork:a}=t.extractForkFlag(e),o=i.trim();if(!o){m(r,`Usage: /run <agent> [task] [--fork]`);return}let s=o.indexOf(` `),{name:c,config:d}=t.parseAgentToken(s===-1?o:o.slice(0,s)),f=await x(n,r,l,u,{agent:c,task:s===-1?``:o.slice(s+1).trim(),config:d,fork:a});f.ok||m(r,f.message)}}],[`parallel`,{description:`Run agents in parallel: /parallel scout "task1" -> reviewer "task2" [--fork]`,handler:async(e,r)=>{let f=d(r,u.environment),p=u.tracker.forSession(r.sessionManager.getSessionId(),f),{args:h,fork:g}=t.extractForkFlag(e),_=y(l,r);if(!_)return;let x=w(h);if(!x){m(r,`Usage: /parallel agent1 "task1" -> agent2 "task2"`);return}for(let e of x.steps)if(!b(u,_,e.name,r))return;if(!x.steps.some(e=>e.task)&&!x.task){m(r,`At least one step must have a task`);return}try{let e=o.captureSessionForkSource(r.sessionManager,`settled`),t=a.normalizeParentModel(r.model),l=x.steps.map(e=>s.taskInputFromParsedStep({name:e.name,config:e.config,task:e.task??x.task},_,g?`fork`:void 0));v(n,r,u,p,await c.launchParallelSubagents(u.spawnPlanner,p,{tasks:l,cwd:_,agentScope:`both`,sessionScope:f,parentSessionId:r.sessionManager.getSessionId(),...e?{parentForkSource:e.terminalSource,...e.sessionFile?{parentSessionFile:e.sessionFile}:{},parentLeafId:e.leafId}:{},availableModels:i.authenticatedModelInfos(r.modelRegistry),...t?{parentModel:t}:{}},u.loadConfig()))}catch(e){C(r,e)}}}],[`subagents-doctor`,{description:`Show subagent diagnostics`,handler:async(e,t)=>{f(n,r.buildDoctorReport({cwd:t.cwd,agentScope:`both`,scope:d(t,u.environment)},{discovery:u.discovery,skills:u.skills}))}}],[`subagents-steer`,{description:`Send guidance to a running subagent: /subagents-steer <run-id> <message>`,handler:async(e,t)=>{let n=e.trim(),r=n.search(/\s/);if(r===-1||!n.slice(r+1).trim()){m(t,`Usage: /subagents-steer <run-id> <message>`);return}let i=n.slice(0,r),a=n.slice(r+1).trim();try{u.management.bindSessionScope(d(t,u.environment));let e=await u.management.steer(i,a),n=`Steering ${e.state} for ${i}: ${e.message}`;e.state===`failed`?m(t,n):h(t,n)}catch(e){m(t,e instanceof Error?e.message:`Could not steer '${i}'.`)}}}],[`subagents-stop`,{description:`Stop a running subagent: /subagents-stop [run-id]`,handler:async(t,r)=>{let i=d(r,u.environment);u.management.bindSessionScope(i);let a=u.tracker.forSession(r.sessionManager.getSessionId(),i),o=t.trim();if(!o){f(n,E(a.list()));return}try{await u.management.stop(e.resolveTrackedRunId(a,o)),h(r,`Stop requested for ${o}. The run reports its own final state once it acknowledges.`)}catch(e){m(r,e instanceof Error?e.message:`Could not stop '${o}'.`)}}}]]}function E(e){let t=e.filter(e=>e.status===`running`||e.status===`pending`);return t.length===0?`No running subagents to stop.`:[`Running subagents:`,...t.map(e=>`- ${e.runId}${e.status?` (${e.status})`:``}`),``,"Stop one with `/subagents-stop <run-id>`, or open `/subagents-fleet` to inspect and control them interactively."].join(`
|
|
3
|
+
`)}exports.createSlashCommands=T,exports.launchSingleAgentRun=x,exports.startSingleAgentRun=S;
|
|
4
|
+
//# sourceMappingURL=slashCommands.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slashCommands.cjs","names":["createSessionScope","resolveRootSessionId","SLASH_RESULT_CUSTOM_TYPE","TERMINAL_ASYNC_JOB_STATES","captureSessionForkSource","normalizeParentModel","taskInputFromParsedStep","launchSingleSubagent","authenticatedModelInfos","UnsupportedInlineConfigError","SlashParseError","parseSingleTaskToken","extractForkFlag","parseAgentToken","launchParallelSubagents","buildDoctorReport","resolveTrackedRunId"],"sources":["../../src/controllers/slashCommands.ts"],"sourcesContent":["/**\n * The core `/run`, `/chain`, `/parallel` slash commands. Replaces the\n * always-blocking predecessor with the async-only shape this port settled\n * on: a command launches a spawn, sends an initial status message, and\n * hands off to `watchTrackedRunUntilTerminal` (render-key gated, backed by\n * `PollScheduler`) to update the status bar and finalize the message once\n * the run reaches a terminal state - never by awaiting completion. See\n * `subagentLaunch.ts`'s module doc for the full reasoning.\n *\n * WHAT IS NOT HERE, AND WHY:\n * - `/run-chain`, `/prompt-workflow` and `/chain-prompts`: the whole SAVED\n * work surface - saved agent pipelines (`ChainConfig`, never ported) and\n * saved `.md` prompt templates (ported, then deleted). REMOVED BY\n * DECISION, not deferred: overly complicated for the use they were\n * getting. Do not re-add them because a reader notices the predecessor had\n * them. Ad-hoc chaining (`/chain scout \"x\" -> planner`) is a different\n * feature, lives in `chainExpression.ts`, and stays\n * - `/subagent-cost`: REMOVED BY DECISION. It reads usage/cost data\n * (`totalTokens`/`totalCost`) that nothing in this package's\n * runs/extensions surface tracks - a genuinely absent data source, and\n * building it would mean threading usage out of every child process\n * - `/subagents-check-profile`: removed at the source. Calls\n * `checkSubagentProfile`/`listSubagentProfiles`, which are referenced but\n * defined nowhere in the entire predecessor package - a live\n * `ReferenceError` that only shipped because that package sets\n * `noCheck: true`. Typecheck is on here; porting it faithfully would not\n * compile, and it was asked to be removed independently of that\n * - The `SUBAGENT_FLEET_COMMAND` registration and its `Ctrl+Alt+F` shortcut:\n * fleet view is its own piece, registered by whoever builds it\n * - Inline parallel groups within `/chain` (`(a | b)` syntax): the field\n * mapping for a group's own config exists (`spawnRequestMapping.ts`),\n * but wiring a group INTO a chain request is left for the same pass that\n * revisits per-task field support, so `/chain` reports a clear\n * not-yet-supported message rather than silently flattening a group\n * - `/subagents` (admin) command registration: a separate file, not yet\n * ported\n *\n * `/subagents-doctor` IS here, in `doctor.ts` - read (not ported) the\n * predecessor's foreground-executor `doctor` action before deciding, and it\n * turned out to be a small, mostly-mechanical port. See that module's own\n * doc for what it deliberately leaves out (chain counts, spawn-budget\n * reporting).\n *\n * AVOID:\n * - Awaiting a SINGLE/PARALLEL spawn for a result that will not exist yet.\n * See `subagentLaunch.ts`\n * - A private polling loop for a message's live status. Use\n * `watchTrackedRunUntilTerminal`\n */\n\nimport { resolveRootSessionId } from '@agimon-ai/doompi-core/child-process';\nimport type { ExtensionAPI, ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport type { SkillDiscoveryContract } from '../services/agentSkills';\nimport type { AsyncJobTrackerContract, TrackedAsyncJobsContract, TrackedAsyncJob } from '../services/asyncJobTracker';\nimport { resolveTrackedRunId, TERMINAL_ASYNC_JOB_STATES } from '../services/asyncJobTracker';\nimport {\n extractForkFlag,\n type InlineConfig,\n type ParsedStep,\n parseAgentToken,\n parseSingleTaskToken,\n SlashParseError,\n} from '../services/chainExpression';\nimport type { ExtensionConfig } from '../services/config';\nimport { buildDoctorReport } from '../services/doctor';\nimport type { ManagementActionsContract } from '../services/managementActions';\nimport { normalizeParentModel } from '../services/modelFallback';\nimport { authenticatedModelInfos } from '../services/modelResolution';\nimport type { PollSchedulerContract } from '../services/pollScheduler';\nimport { createSessionScope } from '../services/sessionPaths';\nimport { captureSessionForkSource, type SpawnPlannerContract, type SpawnPlanResult } from '../services/spawnPlan';\nimport { taskInputFromParsedStep, UnsupportedInlineConfigError } from '../services/spawnRequestMapping';\nimport {\n launchParallelSubagents,\n launchSingleSubagent,\n watchTrackedRunUntilTerminal,\n} from '../services/subagentLaunch';\nimport type { AgentScope, AgentDiscoveryContract } from '../types/agent';\n\nexport interface SlashCommandDeps {\n spawnPlanner: SpawnPlannerContract;\n skills: SkillDiscoveryContract;\n tracker: AsyncJobTrackerContract;\n scheduler: PollSchedulerContract;\n discovery: AgentDiscoveryContract;\n /** Session-scoped typed management for status, prefix resolution, and control. */\n management: ManagementActionsContract;\n loadConfig: () => ExtensionConfig;\n environment: Readonly<Record<string, string | undefined>>;\n}\n\nexport interface SlashCommandState {\n baseCwd: string | undefined;\n}\n\nfunction sessionScopeFor(ctx: ExtensionContext, environment: Readonly<Record<string, string | undefined>>) {\n return createSessionScope(resolveRootSessionId(ctx.sessionManager.getSessionId(), environment));\n}\n\nconst SLASH_STATUS_KEY = 'subagent-slash';\nconst STARTED_STATUS = 'started';\n\n/**\n * The custom-message type a slash launch renders under. Cross-process\n * significant the same way `SUBAGENT_NOTIFY_MESSAGE_TYPE` is: the child-side\n * prompt runtime strips this type out of a child's inherited history\n * (`PARENT_ONLY_CUSTOM_MESSAGE_TYPES`), so both sides must agree on the literal.\n */\nimport { SLASH_RESULT_CUSTOM_TYPE, type SlashRunDetail } from '../models/slashResult';\nfunction sendSlashText(pi: ExtensionAPI, text: string, details?: SlashRunDetail[]): void {\n pi.sendMessage({\n customType: SLASH_RESULT_CUSTOM_TYPE,\n content: text,\n display: true,\n ...(details ? { details } : {}),\n });\n}\n\nfunction setSlashStatus(ctx: ExtensionContext, text: string | undefined): void {\n if (ctx.hasUI) ctx.ui.setStatus(SLASH_STATUS_KEY, text);\n}\n\nfunction notifyError(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'error');\n}\n\nfunction notifyInfo(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'info');\n}\n\nfunction statusTextFor(job: TrackedAsyncJob | undefined): string {\n if (!job) return 'starting…';\n if (job.attentionReason) return `${job.status ?? 'running'} - needs attention: ${job.attentionReason}`;\n if (job.activityState) return `${job.status ?? 'running'} - ${job.activityState}`;\n return job.status ?? 'running';\n}\n\n/**\n * Watches one launched run to a terminal state and finalizes its message.\n * Each launched run gets its own subscriber, so a PARALLEL launch's\n * siblings finalize independently rather than all waiting on the slowest.\n */\nfunction watchAndFinalize(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: TrackedAsyncJobsContract,\n runId: string,\n agent: string,\n): void {\n watchTrackedRunUntilTerminal(deps.scheduler, jobs, runId, (job) => {\n setSlashStatus(ctx, `${agent} (${runId}): ${statusTextFor(job)}`);\n if (job?.status === undefined || !TERMINAL_ASYNC_JOB_STATES.has(job.status)) return;\n setSlashStatus(ctx, undefined);\n const outcome = job.status === 'complete' || job.status === 'completed' ? 'completed' : job.status;\n sendSlashText(\n pi,\n job.error\n ? `## Subagent ${outcome}\\n\\n${agent} (${runId})\\n\\n${job.error}`\n : `## Subagent ${outcome}\\n\\n${agent} (${runId})`,\n [{ agent, runId, status: outcome, ...(job.error ? { error: job.error } : {}) }],\n );\n });\n}\n\nfunction reportSpawnResult(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: TrackedAsyncJobsContract,\n result: SpawnPlanResult,\n): void {\n const started = result.outcomes.filter((outcome) => outcome.runId);\n const failed = result.outcomes.filter((outcome) => !outcome.runId);\n if (started.length > 0) {\n const label = started\n .map(\n (outcome) => `${outcome.agent} (${outcome.runId})${outcome.warning ? `\\n Warning: ${outcome.warning}` : ''}`,\n )\n .join(', ');\n sendSlashText(\n pi,\n `## Subagent started\\n\\n${label}`,\n started.map((outcome) => ({\n agent: outcome.agent,\n runId: outcome.runId ?? '',\n status: STARTED_STATUS,\n ...(outcome.warning ? { warning: outcome.warning } : {}),\n })),\n );\n setSlashStatus(ctx, `${started.length} run${started.length === 1 ? '' : 's'} started…`);\n for (const outcome of started) {\n if (outcome.runId) watchAndFinalize(pi, ctx, deps, jobs, outcome.runId, outcome.agent);\n }\n }\n if (failed.length > 0) {\n const label = failed.map((outcome) => `${outcome.agent}: ${outcome.error ?? 'spawn failed'}`).join('\\n');\n notifyError(ctx, `Some subagents failed to start:\\n${label}`);\n }\n}\n\nfunction requireBaseCwd(state: SlashCommandState, ctx: ExtensionContext): string | undefined {\n if (state.baseCwd) return state.baseCwd;\n notifyError(ctx, 'Subagent session cwd is not initialized yet');\n return undefined;\n}\n\nfunction findAgentOrNotify(deps: SlashCommandDeps, baseCwd: string, name: string, ctx: ExtensionContext): boolean {\n const agents = deps.discovery.discover(baseCwd, 'both' satisfies AgentScope).agents;\n if (agents.find((agent) => agent.name === name)) return true;\n notifyError(ctx, `Unknown agent: ${name}`);\n return false;\n}\n\nexport interface SingleAgentRunRequest {\n agent: string;\n task: string;\n /** Inline `agent[model=x]` config from a slash token; surfaces without that syntax send none. */\n config?: InlineConfig;\n fork?: boolean;\n}\n\nexport type SingleAgentRunOutcome = { ok: true; result: SpawnPlanResult } | { ok: false; message: string };\n\n/**\n * One agent, one task: the shared body of `/run` and the agent catalog's\n * launch key (`SPC a l`, `r`/`R`).\n *\n * Returns `ok: false` with a user-facing message for the validation failures\n * both surfaces share rather than notifying itself, because the two report\n * in different idioms - a slash command notifies, and a fullscreen overlay\n * writes a notice into its own body, where a notification would be covered.\n * Started runs are still reported here through `reportSpawnResult`, which is\n * what tracks them and finalizes their message; that is identical for both.\n */\nexport async function launchSingleAgentRun(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n state: SlashCommandState,\n deps: SlashCommandDeps,\n request: SingleAgentRunRequest,\n): Promise<SingleAgentRunOutcome> {\n const baseCwd = state.baseCwd;\n if (!baseCwd) return { ok: false, message: 'Subagent session cwd is not initialized yet' };\n const agents = deps.discovery.discover(baseCwd, 'both' satisfies AgentScope).agents;\n if (!agents.find((agent) => agent.name === request.agent)) {\n return { ok: false, message: `Unknown agent: ${request.agent}` };\n }\n const scope = sessionScopeFor(ctx, deps.environment);\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId(), scope);\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const taskInput = taskInputFromParsedStep(\n { name: request.agent, config: request.config ?? {}, task: request.task },\n baseCwd,\n request.fork ? 'fork' : undefined,\n );\n const result = await launchSingleSubagent(\n deps.spawnPlanner,\n jobs,\n {\n agent: taskInput.agent,\n task: taskInput.task ?? '',\n cwd: taskInput.cwd ?? baseCwd,\n agentScope: 'both',\n sessionScope: scope,\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(taskInput.model ? { model: taskInput.model } : {}),\n ...(taskInput.context ? { context: taskInput.context } : {}),\n ...(parentForkSource\n ? {\n parentForkSource: parentForkSource.terminalSource,\n ...(parentForkSource.sessionFile ? { parentSessionFile: parentForkSource.sessionFile } : {}),\n parentLeafId: parentForkSource.leafId,\n }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n return { ok: true, result };\n } catch (error) {\n if (error instanceof UnsupportedInlineConfigError || error instanceof SlashParseError) {\n return { ok: false, message: error.message };\n }\n throw error;\n }\n}\n\n/**\n * `launchSingleAgentRun` for a surface that cannot await it - the agent\n * catalog closes on launch, so nothing is left to receive the outcome. The\n * failure paths report themselves here, once the overlay is gone and a\n * notification is visible again.\n */\nexport function startSingleAgentRun(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n state: SlashCommandState,\n deps: SlashCommandDeps,\n request: SingleAgentRunRequest,\n): void {\n void launchSingleAgentRun(pi, ctx, state, deps, request).then(\n (outcome) => {\n if (!outcome.ok) notifyError(ctx, outcome.message);\n },\n (error: unknown) => {\n notifyError(ctx, `Subagent launch failed: ${error instanceof Error ? error.message : String(error)}`);\n },\n );\n}\n\nfunction reportKnownErrorOrRethrow(ctx: ExtensionContext, error: unknown): void {\n if (error instanceof UnsupportedInlineConfigError || error instanceof SlashParseError) {\n notifyError(ctx, error.message);\n return;\n }\n throw error;\n}\n\n/**\n * Shared arg parsing for /chain (no inline group) and /parallel:\n * \"agent1 task1 -> agent2 task2\" or \"agent1 agent2 -- shared task\".\n */\nfunction parseAgentArgsFallback(input: string): { steps: ParsedStep[]; task: string; perStep: boolean } | undefined {\n const trimmed = input.trim();\n if (trimmed.includes(' -> ')) {\n const steps = trimmed\n .split(' -> ')\n .map((segment) => segment.trim())\n .filter(Boolean)\n .map((segment) => parseSingleTaskToken(segment));\n if (steps.length === 0) return undefined;\n return { steps, task: steps.find((step) => step.task)?.task ?? '', perStep: true };\n }\n const delimiterIndex = trimmed.indexOf(' -- ');\n if (delimiterIndex === -1) return undefined;\n const agentsPart = trimmed.slice(0, delimiterIndex).trim();\n const sharedTask = trimmed.slice(delimiterIndex + 4).trim();\n if (!agentsPart || !sharedTask) return undefined;\n const steps = agentsPart\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => parseSingleTaskToken(token));\n if (steps.length === 0) return undefined;\n return { steps, task: sharedTask, perStep: false };\n}\n\nexport function createSlashCommands(\n pi: ExtensionAPI,\n state: SlashCommandState,\n deps: SlashCommandDeps,\n): Array<readonly [string, Parameters<ExtensionAPI['registerCommand']>[1]]> {\n return [\n [\n 'run',\n {\n description: 'Run a subagent in the background: /run agent[model=x] [task] [--fork]',\n handler: async (args, ctx) => {\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const input = cleanedArgs.trim();\n if (!input) {\n notifyError(ctx, 'Usage: /run <agent> [task] [--fork]');\n return;\n }\n const firstSpace = input.indexOf(' ');\n const { name: agentName, config } = parseAgentToken(firstSpace === -1 ? input : input.slice(0, firstSpace));\n const task = firstSpace === -1 ? '' : input.slice(firstSpace + 1).trim();\n const outcome = await launchSingleAgentRun(pi, ctx, state, deps, { agent: agentName, task, config, fork });\n if (!outcome.ok) notifyError(ctx, outcome.message);\n },\n },\n ],\n [\n 'parallel',\n {\n description: 'Run agents in parallel: /parallel scout \"task1\" -> reviewer \"task2\" [--fork]',\n handler: async (args, ctx) => {\n const scope = sessionScopeFor(ctx, deps.environment);\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId(), scope);\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const baseCwd = requireBaseCwd(state, ctx);\n if (!baseCwd) return;\n\n const parsed = parseAgentArgsFallback(cleanedArgs);\n if (!parsed) {\n notifyError(ctx, 'Usage: /parallel agent1 \"task1\" -> agent2 \"task2\"');\n return;\n }\n for (const step of parsed.steps) {\n if (!findAgentOrNotify(deps, baseCwd, step.name, ctx)) return;\n }\n if (!parsed.steps.some((step) => step.task) && !parsed.task) {\n notifyError(ctx, 'At least one step must have a task');\n return;\n }\n\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const tasks = parsed.steps.map((step) =>\n taskInputFromParsedStep(\n { name: step.name, config: step.config, task: step.task ?? parsed.task },\n baseCwd,\n fork ? 'fork' : undefined,\n ),\n );\n const result = await launchParallelSubagents(\n deps.spawnPlanner,\n jobs,\n {\n tasks,\n cwd: baseCwd,\n agentScope: 'both',\n sessionScope: scope,\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(parentForkSource\n ? {\n parentForkSource: parentForkSource.terminalSource,\n ...(parentForkSource.sessionFile ? { parentSessionFile: parentForkSource.sessionFile } : {}),\n parentLeafId: parentForkSource.leafId,\n }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n } catch (error) {\n reportKnownErrorOrRethrow(ctx, error);\n }\n },\n },\n ],\n [\n 'subagents-doctor',\n {\n description: 'Show subagent diagnostics',\n handler: async (_args, ctx) => {\n sendSlashText(\n pi,\n buildDoctorReport(\n { cwd: ctx.cwd, agentScope: 'both', scope: sessionScopeFor(ctx, deps.environment) },\n { discovery: deps.discovery, skills: deps.skills },\n ),\n );\n },\n },\n ],\n [\n 'subagents-steer',\n {\n description: 'Send guidance to a running subagent: /subagents-steer <run-id> <message>',\n handler: async (args, ctx) => {\n const input = args.trim();\n const separator = input.search(/\\s/);\n if (separator === -1 || !input.slice(separator + 1).trim()) {\n notifyError(ctx, 'Usage: /subagents-steer <run-id> <message>');\n return;\n }\n const id = input.slice(0, separator);\n const message = input.slice(separator + 1).trim();\n try {\n deps.management.bindSessionScope(sessionScopeFor(ctx, deps.environment));\n const result = await deps.management.steer(id, message);\n const summary = `Steering ${result.state} for ${id}: ${result.message}`;\n if (result.state === 'failed') notifyError(ctx, summary);\n else notifyInfo(ctx, summary);\n } catch (error) {\n notifyError(ctx, error instanceof Error ? error.message : `Could not steer '${id}'.`);\n }\n },\n },\n ],\n [\n 'subagents-stop',\n {\n description: 'Stop a running subagent: /subagents-stop [run-id]',\n handler: async (args, ctx) => {\n const scope = sessionScopeFor(ctx, deps.environment);\n deps.management.bindSessionScope(scope);\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId(), scope);\n const id = args.trim();\n if (!id) {\n sendSlashText(pi, stoppableRunsReport(jobs.list()));\n return;\n }\n try {\n await deps.management.stop(resolveTrackedRunId(jobs, id));\n // The direct control request is acknowledged by transport delivery. The\n // run's own event stream remains authoritative for its terminal state.\n notifyInfo(ctx, `Stop requested for ${id}. The run reports its own final state once it acknowledges.`);\n } catch (error) {\n // `ManagementActions.stop` throws only for an id that resolves to no\n // run or to more than one. Both are bad user input, not internal\n // faults, so they are notified rather than rethrown at the host - the\n // same treatment `reportKnownErrorOrRethrow` gives a parse error.\n notifyError(ctx, error instanceof Error ? error.message : `Could not stop '${id}'.`);\n }\n },\n },\n ],\n ];\n}\n\n/**\n * The no-argument `/subagents-stop` listing.\n *\n * The predecessor opened a TUI selector overlay here. This reports the same\n * information as text instead, for one reason worth stating rather than\n * hiding: a selector is a second, independent renderer of run state, and this\n * package already has one in `/subagents-fleet` that shows more (live status,\n * transcripts, and the full set of runtime controls including stop). Building\n * a second, weaker one would mean two things to keep in step. Passing an\n * explicit id stays the direct path, and the fleet overlay is the interactive\n * one.\n */\nfunction stoppableRunsReport(runs: readonly TrackedAsyncJob[]): string {\n const stoppable = runs.filter((run) => run.status === 'running' || run.status === 'pending');\n if (stoppable.length === 0) return 'No running subagents to stop.';\n const lines = stoppable.map((run) => `- ${run.runId}${run.status ? ` (${run.status})` : ''}`);\n return [\n 'Running subagents:',\n ...lines,\n '',\n 'Stop one with `/subagents-stop <run-id>`, or open `/subagents-fleet` to inspect and control them interactively.',\n ].join('\\n');\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{TERMINAL_ASYNC_JOB_STATES as e,resolveTrackedRunId as t}from"../services/asyncJobTracker/index.mjs";import{SlashParseError as n,extractForkFlag as r,parseAgentToken as i,parseSingleTaskToken as a}from"../services/chainExpression/index.mjs";import{createSessionScope as o}from"../services/sessionPaths/index.mjs";import{buildDoctorReport as s}from"../services/doctor/index.mjs";import{authenticatedModelInfos as c}from"../services/modelResolution/index.mjs";import{normalizeParentModel as l}from"../services/modelFallback/index.mjs";import{captureSessionForkSource as u}from"../services/spawnPlan/index.mjs";import{UnsupportedInlineConfigError as d,taskInputFromParsedStep as f}from"../services/spawnRequestMapping/index.mjs";import{launchParallelSubagents as p,launchSingleSubagent as m,watchTrackedRunUntilTerminal as h}from"../services/subagentLaunch/index.mjs";import{SLASH_RESULT_CUSTOM_TYPE as g}from"../models/slashResult.mjs";import{resolveRootSessionId as _}from"@agimon-ai/doompi-core/child-process";function v(e,t){return o(_(e.sessionManager.getSessionId(),t))}function y(e,t,n){e.sendMessage({customType:g,content:t,display:!0,...n?{details:n}:{}})}function b(e,t){e.hasUI&&e.ui.setStatus(`subagent-slash`,t)}function x(e,t){e.ui.notify(t,`error`)}function S(e,t){e.ui.notify(t,`info`)}function C(e){return e?e.attentionReason?`${e.status??`running`} - needs attention: ${e.attentionReason}`:e.activityState?`${e.status??`running`} - ${e.activityState}`:e.status??`running`:`starting…`}function w(t,n,r,i,a,o){h(r.scheduler,i,a,r=>{if(b(n,`${o} (${a}): ${C(r)}`),r?.status===void 0||!e.has(r.status))return;b(n,void 0);let i=r.status===`complete`||r.status===`completed`?`completed`:r.status;y(t,r.error?`## Subagent ${i}\n\n${o} (${a})\n\n${r.error}`:`## Subagent ${i}\n\n${o} (${a})`,[{agent:o,runId:a,status:i,...r.error?{error:r.error}:{}}])})}function T(e,t,n,r,i){let a=i.outcomes.filter(e=>e.runId),o=i.outcomes.filter(e=>!e.runId);if(a.length>0){y(e,`## Subagent started\n\n${a.map(e=>`${e.agent} (${e.runId})${e.warning?`\n Warning: ${e.warning}`:``}`).join(`, `)}`,a.map(e=>({agent:e.agent,runId:e.runId??``,status:`started`,...e.warning?{warning:e.warning}:{}}))),b(t,`${a.length} run${a.length===1?``:`s`} started…`);for(let i of a)i.runId&&w(e,t,n,r,i.runId,i.agent)}o.length>0&&x(t,`Some subagents failed to start:\n${o.map(e=>`${e.agent}: ${e.error??`spawn failed`}`).join(`
|
|
2
|
+
`)}`)}function E(e,t){if(e.baseCwd)return e.baseCwd;x(t,`Subagent session cwd is not initialized yet`)}function D(e,t,n,r){return e.discovery.discover(t,`both`).agents.find(e=>e.name===n)?!0:(x(r,`Unknown agent: ${n}`),!1)}async function O(e,t,r,i,a){let o=r.baseCwd;if(!o)return{ok:!1,message:`Subagent session cwd is not initialized yet`};if(!i.discovery.discover(o,`both`).agents.find(e=>e.name===a.agent))return{ok:!1,message:`Unknown agent: ${a.agent}`};let s=v(t,i.environment),p=i.tracker.forSession(t.sessionManager.getSessionId(),s);try{let n=u(t.sessionManager,`settled`),r=l(t.model),d=f({name:a.agent,config:a.config??{},task:a.task},o,a.fork?`fork`:void 0),h=await m(i.spawnPlanner,p,{agent:d.agent,task:d.task??``,cwd:d.cwd??o,agentScope:`both`,sessionScope:s,parentSessionId:t.sessionManager.getSessionId(),...d.model?{model:d.model}:{},...d.context?{context:d.context}:{},...n?{parentForkSource:n.terminalSource,...n.sessionFile?{parentSessionFile:n.sessionFile}:{},parentLeafId:n.leafId}:{},availableModels:c(t.modelRegistry),...r?{parentModel:r}:{}},i.loadConfig());return T(e,t,i,p,h),{ok:!0,result:h}}catch(e){if(e instanceof d||e instanceof n)return{ok:!1,message:e.message};throw e}}function k(e,t,n,r,i){O(e,t,n,r,i).then(e=>{e.ok||x(t,e.message)},e=>{x(t,`Subagent launch failed: ${e instanceof Error?e.message:String(e)}`)})}function A(e,t){if(t instanceof d||t instanceof n){x(e,t.message);return}throw t}function j(e){let t=e.trim();if(t.includes(` -> `)){let e=t.split(` -> `).map(e=>e.trim()).filter(Boolean).map(e=>a(e));return e.length===0?void 0:{steps:e,task:e.find(e=>e.task)?.task??``,perStep:!0}}let n=t.indexOf(` -- `);if(n===-1)return;let r=t.slice(0,n).trim(),i=t.slice(n+4).trim();if(!r||!i)return;let o=r.split(/\s+/).filter(Boolean).map(e=>a(e));if(o.length!==0)return{steps:o,task:i,perStep:!1}}function M(e,n,a){return[[`run`,{description:`Run a subagent in the background: /run agent[model=x] [task] [--fork]`,handler:async(t,o)=>{let{args:s,fork:c}=r(t),l=s.trim();if(!l){x(o,`Usage: /run <agent> [task] [--fork]`);return}let u=l.indexOf(` `),{name:d,config:f}=i(u===-1?l:l.slice(0,u)),p=await O(e,o,n,a,{agent:d,task:u===-1?``:l.slice(u+1).trim(),config:f,fork:c});p.ok||x(o,p.message)}}],[`parallel`,{description:`Run agents in parallel: /parallel scout "task1" -> reviewer "task2" [--fork]`,handler:async(t,i)=>{let o=v(i,a.environment),s=a.tracker.forSession(i.sessionManager.getSessionId(),o),{args:d,fork:m}=r(t),h=E(n,i);if(!h)return;let g=j(d);if(!g){x(i,`Usage: /parallel agent1 "task1" -> agent2 "task2"`);return}for(let e of g.steps)if(!D(a,h,e.name,i))return;if(!g.steps.some(e=>e.task)&&!g.task){x(i,`At least one step must have a task`);return}try{let t=u(i.sessionManager,`settled`),n=l(i.model),r=g.steps.map(e=>f({name:e.name,config:e.config,task:e.task??g.task},h,m?`fork`:void 0));T(e,i,a,s,await p(a.spawnPlanner,s,{tasks:r,cwd:h,agentScope:`both`,sessionScope:o,parentSessionId:i.sessionManager.getSessionId(),...t?{parentForkSource:t.terminalSource,...t.sessionFile?{parentSessionFile:t.sessionFile}:{},parentLeafId:t.leafId}:{},availableModels:c(i.modelRegistry),...n?{parentModel:n}:{}},a.loadConfig()))}catch(e){A(i,e)}}}],[`subagents-doctor`,{description:`Show subagent diagnostics`,handler:async(t,n)=>{y(e,s({cwd:n.cwd,agentScope:`both`,scope:v(n,a.environment)},{discovery:a.discovery,skills:a.skills}))}}],[`subagents-steer`,{description:`Send guidance to a running subagent: /subagents-steer <run-id> <message>`,handler:async(e,t)=>{let n=e.trim(),r=n.search(/\s/);if(r===-1||!n.slice(r+1).trim()){x(t,`Usage: /subagents-steer <run-id> <message>`);return}let i=n.slice(0,r),o=n.slice(r+1).trim();try{a.management.bindSessionScope(v(t,a.environment));let e=await a.management.steer(i,o),n=`Steering ${e.state} for ${i}: ${e.message}`;e.state===`failed`?x(t,n):S(t,n)}catch(e){x(t,e instanceof Error?e.message:`Could not steer '${i}'.`)}}}],[`subagents-stop`,{description:`Stop a running subagent: /subagents-stop [run-id]`,handler:async(n,r)=>{let i=v(r,a.environment);a.management.bindSessionScope(i);let o=a.tracker.forSession(r.sessionManager.getSessionId(),i),s=n.trim();if(!s){y(e,N(o.list()));return}try{await a.management.stop(t(o,s)),S(r,`Stop requested for ${s}. The run reports its own final state once it acknowledges.`)}catch(e){x(r,e instanceof Error?e.message:`Could not stop '${s}'.`)}}}]]}function N(e){let t=e.filter(e=>e.status===`running`||e.status===`pending`);return t.length===0?`No running subagents to stop.`:[`Running subagents:`,...t.map(e=>`- ${e.runId}${e.status?` (${e.status})`:``}`),``,"Stop one with `/subagents-stop <run-id>`, or open `/subagents-fleet` to inspect and control them interactively."].join(`
|
|
3
|
+
`)}export{M as createSlashCommands,O as launchSingleAgentRun,k as startSingleAgentRun};
|
|
4
|
+
//# sourceMappingURL=slashCommands.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slashCommands.mjs","names":[],"sources":["../../src/controllers/slashCommands.ts"],"sourcesContent":["/**\n * The core `/run`, `/chain`, `/parallel` slash commands. Replaces the\n * always-blocking predecessor with the async-only shape this port settled\n * on: a command launches a spawn, sends an initial status message, and\n * hands off to `watchTrackedRunUntilTerminal` (render-key gated, backed by\n * `PollScheduler`) to update the status bar and finalize the message once\n * the run reaches a terminal state - never by awaiting completion. See\n * `subagentLaunch.ts`'s module doc for the full reasoning.\n *\n * WHAT IS NOT HERE, AND WHY:\n * - `/run-chain`, `/prompt-workflow` and `/chain-prompts`: the whole SAVED\n * work surface - saved agent pipelines (`ChainConfig`, never ported) and\n * saved `.md` prompt templates (ported, then deleted). REMOVED BY\n * DECISION, not deferred: overly complicated for the use they were\n * getting. Do not re-add them because a reader notices the predecessor had\n * them. Ad-hoc chaining (`/chain scout \"x\" -> planner`) is a different\n * feature, lives in `chainExpression.ts`, and stays\n * - `/subagent-cost`: REMOVED BY DECISION. It reads usage/cost data\n * (`totalTokens`/`totalCost`) that nothing in this package's\n * runs/extensions surface tracks - a genuinely absent data source, and\n * building it would mean threading usage out of every child process\n * - `/subagents-check-profile`: removed at the source. Calls\n * `checkSubagentProfile`/`listSubagentProfiles`, which are referenced but\n * defined nowhere in the entire predecessor package - a live\n * `ReferenceError` that only shipped because that package sets\n * `noCheck: true`. Typecheck is on here; porting it faithfully would not\n * compile, and it was asked to be removed independently of that\n * - The `SUBAGENT_FLEET_COMMAND` registration and its `Ctrl+Alt+F` shortcut:\n * fleet view is its own piece, registered by whoever builds it\n * - Inline parallel groups within `/chain` (`(a | b)` syntax): the field\n * mapping for a group's own config exists (`spawnRequestMapping.ts`),\n * but wiring a group INTO a chain request is left for the same pass that\n * revisits per-task field support, so `/chain` reports a clear\n * not-yet-supported message rather than silently flattening a group\n * - `/subagents` (admin) command registration: a separate file, not yet\n * ported\n *\n * `/subagents-doctor` IS here, in `doctor.ts` - read (not ported) the\n * predecessor's foreground-executor `doctor` action before deciding, and it\n * turned out to be a small, mostly-mechanical port. See that module's own\n * doc for what it deliberately leaves out (chain counts, spawn-budget\n * reporting).\n *\n * AVOID:\n * - Awaiting a SINGLE/PARALLEL spawn for a result that will not exist yet.\n * See `subagentLaunch.ts`\n * - A private polling loop for a message's live status. Use\n * `watchTrackedRunUntilTerminal`\n */\n\nimport { resolveRootSessionId } from '@agimon-ai/doompi-core/child-process';\nimport type { ExtensionAPI, ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport type { SkillDiscoveryContract } from '../services/agentSkills';\nimport type { AsyncJobTrackerContract, TrackedAsyncJobsContract, TrackedAsyncJob } from '../services/asyncJobTracker';\nimport { resolveTrackedRunId, TERMINAL_ASYNC_JOB_STATES } from '../services/asyncJobTracker';\nimport {\n extractForkFlag,\n type InlineConfig,\n type ParsedStep,\n parseAgentToken,\n parseSingleTaskToken,\n SlashParseError,\n} from '../services/chainExpression';\nimport type { ExtensionConfig } from '../services/config';\nimport { buildDoctorReport } from '../services/doctor';\nimport type { ManagementActionsContract } from '../services/managementActions';\nimport { normalizeParentModel } from '../services/modelFallback';\nimport { authenticatedModelInfos } from '../services/modelResolution';\nimport type { PollSchedulerContract } from '../services/pollScheduler';\nimport { createSessionScope } from '../services/sessionPaths';\nimport { captureSessionForkSource, type SpawnPlannerContract, type SpawnPlanResult } from '../services/spawnPlan';\nimport { taskInputFromParsedStep, UnsupportedInlineConfigError } from '../services/spawnRequestMapping';\nimport {\n launchParallelSubagents,\n launchSingleSubagent,\n watchTrackedRunUntilTerminal,\n} from '../services/subagentLaunch';\nimport type { AgentScope, AgentDiscoveryContract } from '../types/agent';\n\nexport interface SlashCommandDeps {\n spawnPlanner: SpawnPlannerContract;\n skills: SkillDiscoveryContract;\n tracker: AsyncJobTrackerContract;\n scheduler: PollSchedulerContract;\n discovery: AgentDiscoveryContract;\n /** Session-scoped typed management for status, prefix resolution, and control. */\n management: ManagementActionsContract;\n loadConfig: () => ExtensionConfig;\n environment: Readonly<Record<string, string | undefined>>;\n}\n\nexport interface SlashCommandState {\n baseCwd: string | undefined;\n}\n\nfunction sessionScopeFor(ctx: ExtensionContext, environment: Readonly<Record<string, string | undefined>>) {\n return createSessionScope(resolveRootSessionId(ctx.sessionManager.getSessionId(), environment));\n}\n\nconst SLASH_STATUS_KEY = 'subagent-slash';\nconst STARTED_STATUS = 'started';\n\n/**\n * The custom-message type a slash launch renders under. Cross-process\n * significant the same way `SUBAGENT_NOTIFY_MESSAGE_TYPE` is: the child-side\n * prompt runtime strips this type out of a child's inherited history\n * (`PARENT_ONLY_CUSTOM_MESSAGE_TYPES`), so both sides must agree on the literal.\n */\nimport { SLASH_RESULT_CUSTOM_TYPE, type SlashRunDetail } from '../models/slashResult';\nfunction sendSlashText(pi: ExtensionAPI, text: string, details?: SlashRunDetail[]): void {\n pi.sendMessage({\n customType: SLASH_RESULT_CUSTOM_TYPE,\n content: text,\n display: true,\n ...(details ? { details } : {}),\n });\n}\n\nfunction setSlashStatus(ctx: ExtensionContext, text: string | undefined): void {\n if (ctx.hasUI) ctx.ui.setStatus(SLASH_STATUS_KEY, text);\n}\n\nfunction notifyError(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'error');\n}\n\nfunction notifyInfo(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'info');\n}\n\nfunction statusTextFor(job: TrackedAsyncJob | undefined): string {\n if (!job) return 'starting…';\n if (job.attentionReason) return `${job.status ?? 'running'} - needs attention: ${job.attentionReason}`;\n if (job.activityState) return `${job.status ?? 'running'} - ${job.activityState}`;\n return job.status ?? 'running';\n}\n\n/**\n * Watches one launched run to a terminal state and finalizes its message.\n * Each launched run gets its own subscriber, so a PARALLEL launch's\n * siblings finalize independently rather than all waiting on the slowest.\n */\nfunction watchAndFinalize(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: TrackedAsyncJobsContract,\n runId: string,\n agent: string,\n): void {\n watchTrackedRunUntilTerminal(deps.scheduler, jobs, runId, (job) => {\n setSlashStatus(ctx, `${agent} (${runId}): ${statusTextFor(job)}`);\n if (job?.status === undefined || !TERMINAL_ASYNC_JOB_STATES.has(job.status)) return;\n setSlashStatus(ctx, undefined);\n const outcome = job.status === 'complete' || job.status === 'completed' ? 'completed' : job.status;\n sendSlashText(\n pi,\n job.error\n ? `## Subagent ${outcome}\\n\\n${agent} (${runId})\\n\\n${job.error}`\n : `## Subagent ${outcome}\\n\\n${agent} (${runId})`,\n [{ agent, runId, status: outcome, ...(job.error ? { error: job.error } : {}) }],\n );\n });\n}\n\nfunction reportSpawnResult(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: TrackedAsyncJobsContract,\n result: SpawnPlanResult,\n): void {\n const started = result.outcomes.filter((outcome) => outcome.runId);\n const failed = result.outcomes.filter((outcome) => !outcome.runId);\n if (started.length > 0) {\n const label = started\n .map(\n (outcome) => `${outcome.agent} (${outcome.runId})${outcome.warning ? `\\n Warning: ${outcome.warning}` : ''}`,\n )\n .join(', ');\n sendSlashText(\n pi,\n `## Subagent started\\n\\n${label}`,\n started.map((outcome) => ({\n agent: outcome.agent,\n runId: outcome.runId ?? '',\n status: STARTED_STATUS,\n ...(outcome.warning ? { warning: outcome.warning } : {}),\n })),\n );\n setSlashStatus(ctx, `${started.length} run${started.length === 1 ? '' : 's'} started…`);\n for (const outcome of started) {\n if (outcome.runId) watchAndFinalize(pi, ctx, deps, jobs, outcome.runId, outcome.agent);\n }\n }\n if (failed.length > 0) {\n const label = failed.map((outcome) => `${outcome.agent}: ${outcome.error ?? 'spawn failed'}`).join('\\n');\n notifyError(ctx, `Some subagents failed to start:\\n${label}`);\n }\n}\n\nfunction requireBaseCwd(state: SlashCommandState, ctx: ExtensionContext): string | undefined {\n if (state.baseCwd) return state.baseCwd;\n notifyError(ctx, 'Subagent session cwd is not initialized yet');\n return undefined;\n}\n\nfunction findAgentOrNotify(deps: SlashCommandDeps, baseCwd: string, name: string, ctx: ExtensionContext): boolean {\n const agents = deps.discovery.discover(baseCwd, 'both' satisfies AgentScope).agents;\n if (agents.find((agent) => agent.name === name)) return true;\n notifyError(ctx, `Unknown agent: ${name}`);\n return false;\n}\n\nexport interface SingleAgentRunRequest {\n agent: string;\n task: string;\n /** Inline `agent[model=x]` config from a slash token; surfaces without that syntax send none. */\n config?: InlineConfig;\n fork?: boolean;\n}\n\nexport type SingleAgentRunOutcome = { ok: true; result: SpawnPlanResult } | { ok: false; message: string };\n\n/**\n * One agent, one task: the shared body of `/run` and the agent catalog's\n * launch key (`SPC a l`, `r`/`R`).\n *\n * Returns `ok: false` with a user-facing message for the validation failures\n * both surfaces share rather than notifying itself, because the two report\n * in different idioms - a slash command notifies, and a fullscreen overlay\n * writes a notice into its own body, where a notification would be covered.\n * Started runs are still reported here through `reportSpawnResult`, which is\n * what tracks them and finalizes their message; that is identical for both.\n */\nexport async function launchSingleAgentRun(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n state: SlashCommandState,\n deps: SlashCommandDeps,\n request: SingleAgentRunRequest,\n): Promise<SingleAgentRunOutcome> {\n const baseCwd = state.baseCwd;\n if (!baseCwd) return { ok: false, message: 'Subagent session cwd is not initialized yet' };\n const agents = deps.discovery.discover(baseCwd, 'both' satisfies AgentScope).agents;\n if (!agents.find((agent) => agent.name === request.agent)) {\n return { ok: false, message: `Unknown agent: ${request.agent}` };\n }\n const scope = sessionScopeFor(ctx, deps.environment);\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId(), scope);\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const taskInput = taskInputFromParsedStep(\n { name: request.agent, config: request.config ?? {}, task: request.task },\n baseCwd,\n request.fork ? 'fork' : undefined,\n );\n const result = await launchSingleSubagent(\n deps.spawnPlanner,\n jobs,\n {\n agent: taskInput.agent,\n task: taskInput.task ?? '',\n cwd: taskInput.cwd ?? baseCwd,\n agentScope: 'both',\n sessionScope: scope,\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(taskInput.model ? { model: taskInput.model } : {}),\n ...(taskInput.context ? { context: taskInput.context } : {}),\n ...(parentForkSource\n ? {\n parentForkSource: parentForkSource.terminalSource,\n ...(parentForkSource.sessionFile ? { parentSessionFile: parentForkSource.sessionFile } : {}),\n parentLeafId: parentForkSource.leafId,\n }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n return { ok: true, result };\n } catch (error) {\n if (error instanceof UnsupportedInlineConfigError || error instanceof SlashParseError) {\n return { ok: false, message: error.message };\n }\n throw error;\n }\n}\n\n/**\n * `launchSingleAgentRun` for a surface that cannot await it - the agent\n * catalog closes on launch, so nothing is left to receive the outcome. The\n * failure paths report themselves here, once the overlay is gone and a\n * notification is visible again.\n */\nexport function startSingleAgentRun(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n state: SlashCommandState,\n deps: SlashCommandDeps,\n request: SingleAgentRunRequest,\n): void {\n void launchSingleAgentRun(pi, ctx, state, deps, request).then(\n (outcome) => {\n if (!outcome.ok) notifyError(ctx, outcome.message);\n },\n (error: unknown) => {\n notifyError(ctx, `Subagent launch failed: ${error instanceof Error ? error.message : String(error)}`);\n },\n );\n}\n\nfunction reportKnownErrorOrRethrow(ctx: ExtensionContext, error: unknown): void {\n if (error instanceof UnsupportedInlineConfigError || error instanceof SlashParseError) {\n notifyError(ctx, error.message);\n return;\n }\n throw error;\n}\n\n/**\n * Shared arg parsing for /chain (no inline group) and /parallel:\n * \"agent1 task1 -> agent2 task2\" or \"agent1 agent2 -- shared task\".\n */\nfunction parseAgentArgsFallback(input: string): { steps: ParsedStep[]; task: string; perStep: boolean } | undefined {\n const trimmed = input.trim();\n if (trimmed.includes(' -> ')) {\n const steps = trimmed\n .split(' -> ')\n .map((segment) => segment.trim())\n .filter(Boolean)\n .map((segment) => parseSingleTaskToken(segment));\n if (steps.length === 0) return undefined;\n return { steps, task: steps.find((step) => step.task)?.task ?? '', perStep: true };\n }\n const delimiterIndex = trimmed.indexOf(' -- ');\n if (delimiterIndex === -1) return undefined;\n const agentsPart = trimmed.slice(0, delimiterIndex).trim();\n const sharedTask = trimmed.slice(delimiterIndex + 4).trim();\n if (!agentsPart || !sharedTask) return undefined;\n const steps = agentsPart\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => parseSingleTaskToken(token));\n if (steps.length === 0) return undefined;\n return { steps, task: sharedTask, perStep: false };\n}\n\nexport function createSlashCommands(\n pi: ExtensionAPI,\n state: SlashCommandState,\n deps: SlashCommandDeps,\n): Array<readonly [string, Parameters<ExtensionAPI['registerCommand']>[1]]> {\n return [\n [\n 'run',\n {\n description: 'Run a subagent in the background: /run agent[model=x] [task] [--fork]',\n handler: async (args, ctx) => {\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const input = cleanedArgs.trim();\n if (!input) {\n notifyError(ctx, 'Usage: /run <agent> [task] [--fork]');\n return;\n }\n const firstSpace = input.indexOf(' ');\n const { name: agentName, config } = parseAgentToken(firstSpace === -1 ? input : input.slice(0, firstSpace));\n const task = firstSpace === -1 ? '' : input.slice(firstSpace + 1).trim();\n const outcome = await launchSingleAgentRun(pi, ctx, state, deps, { agent: agentName, task, config, fork });\n if (!outcome.ok) notifyError(ctx, outcome.message);\n },\n },\n ],\n [\n 'parallel',\n {\n description: 'Run agents in parallel: /parallel scout \"task1\" -> reviewer \"task2\" [--fork]',\n handler: async (args, ctx) => {\n const scope = sessionScopeFor(ctx, deps.environment);\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId(), scope);\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const baseCwd = requireBaseCwd(state, ctx);\n if (!baseCwd) return;\n\n const parsed = parseAgentArgsFallback(cleanedArgs);\n if (!parsed) {\n notifyError(ctx, 'Usage: /parallel agent1 \"task1\" -> agent2 \"task2\"');\n return;\n }\n for (const step of parsed.steps) {\n if (!findAgentOrNotify(deps, baseCwd, step.name, ctx)) return;\n }\n if (!parsed.steps.some((step) => step.task) && !parsed.task) {\n notifyError(ctx, 'At least one step must have a task');\n return;\n }\n\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const tasks = parsed.steps.map((step) =>\n taskInputFromParsedStep(\n { name: step.name, config: step.config, task: step.task ?? parsed.task },\n baseCwd,\n fork ? 'fork' : undefined,\n ),\n );\n const result = await launchParallelSubagents(\n deps.spawnPlanner,\n jobs,\n {\n tasks,\n cwd: baseCwd,\n agentScope: 'both',\n sessionScope: scope,\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(parentForkSource\n ? {\n parentForkSource: parentForkSource.terminalSource,\n ...(parentForkSource.sessionFile ? { parentSessionFile: parentForkSource.sessionFile } : {}),\n parentLeafId: parentForkSource.leafId,\n }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n } catch (error) {\n reportKnownErrorOrRethrow(ctx, error);\n }\n },\n },\n ],\n [\n 'subagents-doctor',\n {\n description: 'Show subagent diagnostics',\n handler: async (_args, ctx) => {\n sendSlashText(\n pi,\n buildDoctorReport(\n { cwd: ctx.cwd, agentScope: 'both', scope: sessionScopeFor(ctx, deps.environment) },\n { discovery: deps.discovery, skills: deps.skills },\n ),\n );\n },\n },\n ],\n [\n 'subagents-steer',\n {\n description: 'Send guidance to a running subagent: /subagents-steer <run-id> <message>',\n handler: async (args, ctx) => {\n const input = args.trim();\n const separator = input.search(/\\s/);\n if (separator === -1 || !input.slice(separator + 1).trim()) {\n notifyError(ctx, 'Usage: /subagents-steer <run-id> <message>');\n return;\n }\n const id = input.slice(0, separator);\n const message = input.slice(separator + 1).trim();\n try {\n deps.management.bindSessionScope(sessionScopeFor(ctx, deps.environment));\n const result = await deps.management.steer(id, message);\n const summary = `Steering ${result.state} for ${id}: ${result.message}`;\n if (result.state === 'failed') notifyError(ctx, summary);\n else notifyInfo(ctx, summary);\n } catch (error) {\n notifyError(ctx, error instanceof Error ? error.message : `Could not steer '${id}'.`);\n }\n },\n },\n ],\n [\n 'subagents-stop',\n {\n description: 'Stop a running subagent: /subagents-stop [run-id]',\n handler: async (args, ctx) => {\n const scope = sessionScopeFor(ctx, deps.environment);\n deps.management.bindSessionScope(scope);\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId(), scope);\n const id = args.trim();\n if (!id) {\n sendSlashText(pi, stoppableRunsReport(jobs.list()));\n return;\n }\n try {\n await deps.management.stop(resolveTrackedRunId(jobs, id));\n // The direct control request is acknowledged by transport delivery. The\n // run's own event stream remains authoritative for its terminal state.\n notifyInfo(ctx, `Stop requested for ${id}. The run reports its own final state once it acknowledges.`);\n } catch (error) {\n // `ManagementActions.stop` throws only for an id that resolves to no\n // run or to more than one. Both are bad user input, not internal\n // faults, so they are notified rather than rethrown at the host - the\n // same treatment `reportKnownErrorOrRethrow` gives a parse error.\n notifyError(ctx, error instanceof Error ? error.message : `Could not stop '${id}'.`);\n }\n },\n },\n ],\n ];\n}\n\n/**\n * The no-argument `/subagents-stop` listing.\n *\n * The predecessor opened a TUI selector overlay here. This reports the same\n * information as text instead, for one reason worth stating rather than\n * hiding: a selector is a second, independent renderer of run state, and this\n * package already has one in `/subagents-fleet` that shows more (live status,\n * transcripts, and the full set of runtime controls including stop). Building\n * a second, weaker one would mean two things to keep in step. Passing an\n * explicit id stays the direct path, and the fleet overlay is the interactive\n * one.\n */\nfunction stoppableRunsReport(runs: readonly TrackedAsyncJob[]): string {\n const stoppable = runs.filter((run) => run.status === 'running' || run.status === 'pending');\n if (stoppable.length === 0) return 'No running subagents to stop.';\n const lines = stoppable.map((run) => `- ${run.runId}${run.status ? ` (${run.status})` : ''}`);\n return [\n 'Running subagents:',\n ...lines,\n '',\n 'Stop one with `/subagents-stop <run-id>`, or open `/subagents-fleet` to inspect and control them interactively.',\n ].join('\\n');\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../services/agentDiscovery/index.cjs"),t=require("../services/sessionPaths/index.cjs"),n=require("../services/modelInfo/index.cjs"),r=require("../services/config/index.cjs"),i=require("../services/webSubagentCatalog/index.cjs"),a=`team`;function o(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return typeof t.agent==`string`&&t.agent.trim()!==``&&typeof t.task==`string`&&typeof t.fork==`boolean`&&(t.model===void 0||typeof t.model==`string`&&t.model.trim()!==``)&&Object.keys(t).every(e=>[`agent`,`task`,`fork`,`model`].includes(e))}function s(t){let n=new e.AgentDiscoveryService(t.environment),r=t.read??(r=>({agents:n.discover(r,`both`).agents,models:e.resolveActiveTeamModelSpecs(t.environment)??[]}));return{async fetch(e){let a=new URL(e.url);if(e.method===`POST`&&a.pathname===`/run`&&t.launch){let n;try{n=await e.json()}catch{return Response.json({error:`Invalid run request.`},{status:400})}if(!o(n))return Response.json({error:`Invalid run request.`},{status:400});try{return Response.json(await t.launch(n),{status:201})}catch(e){return Response.json({error:e instanceof Error?e.message:String(e)},{status:409})}}if(e.method!==`GET`||a.pathname!==`/catalog`)return Response.json({error:`Not found.`},{status:404});try{n.invalidate();let e=r(t.cwd);return Response.json({cwd:t.cwd,agents:i.presentCatalog(e.agents),models:i.catalogModels(e.agents,e.models)})}catch(e){let t=e instanceof Error?e.message:String(e);return Response.json({error:t},{status:500})}},close:()=>void 0}}function c(e,i){let o=t.createSessionScope(i.sessionId),c=e.asyncJobTracker.forSession(i.sessionId,o),l=async t=>{let a=t.fork?await i.session.forkSource?.():void 0;if(t.fork&&!a)throw Error(`This session cannot capture a fork source.`);let s=(await e.spawnPlanner.spawn({single:{agent:t.agent.trim(),task:t.task.trim(),context:t.fork?`fork`:`fresh`,...t.model?{model:t.model}:{}},cwd:i.cwd,agentScope:`both`,sessionScope:o,environment:i.environment,parentSessionId:i.sessionId,...a?{parentForkSource:a}:{},availableModels:i.model?[n.toModelInfo(i.model)]:[],...i.model?{parentModel:i.model}:{}},r.loadConfig().config)).outcomes[0];if(!s?.runId)throw Error(s?.error??`The agent did not start.`);return c.track(s.runId),{runId:s.runId}};return{basePath:a,start:()=>s({cwd:i.cwd,environment:i.environment,launch:l})}}exports.TEAM_API_BASE_PATH=a,exports.TEAM_CATALOG_ROUTE=`/catalog`,exports.TEAM_RUN_ROUTE=`/run`,exports.createTeamApiHandler=s,exports.createTeamSessionApi=c;
|
|
2
|
+
//# sourceMappingURL=teamSessionApi.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teamSessionApi.cjs","names":["AgentDiscoveryService","resolveActiveTeamModelSpecs","presentCatalog","catalogModels","createSessionScope","toModelInfo","loadConfig"],"sources":["../../src/controllers/teamSessionApi.ts"],"sourcesContent":["import type { DoomHeadlessExecutionContext } from '@agimon-ai/doompi-core/headless';\nimport type { DoomApi, DoomApiHandler } from '@agimon-ai/doompi-core/package-api';\n\nimport { AgentDiscoveryService, resolveActiveTeamModelSpecs } from '../services/agentDiscovery';\nimport { loadConfig } from '../services/config';\nimport { toModelInfo } from '../services/modelInfo';\nimport { createSessionScope } from '../services/sessionPaths';\nimport type { TeamExtensionRuntime } from '../services/teamRuntime';\nimport { catalogModels, presentCatalog, type CatalogAgentInput } from '../services/webSubagentCatalog';\n\nexport const TEAM_API_BASE_PATH = 'team';\nexport const TEAM_CATALOG_ROUTE = '/catalog';\nexport const TEAM_RUN_ROUTE = '/run';\n\nexport interface TeamRunRequest {\n agent: string;\n task: string;\n fork: boolean;\n model?: string;\n}\n\nexport interface TeamCatalogSnapshot {\n agents: CatalogAgentInput[];\n models: string[];\n}\n\nexport interface TeamApiOptions {\n cwd: string;\n environment?: Readonly<NodeJS.ProcessEnv>;\n read?: (cwd: string) => TeamCatalogSnapshot;\n launch?: (request: TeamRunRequest) => Promise<{ runId: string }>;\n}\n\nfunction isRunRequest(value: unknown): value is TeamRunRequest {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return false;\n const request = value as Record<string, unknown>;\n return (\n typeof request.agent === 'string' &&\n request.agent.trim() !== '' &&\n typeof request.task === 'string' &&\n typeof request.fork === 'boolean' &&\n (request.model === undefined || (typeof request.model === 'string' && request.model.trim() !== '')) &&\n Object.keys(request).every((key) => ['agent', 'task', 'fork', 'model'].includes(key))\n );\n}\n\n/** Serves catalog discovery and run launch from the selected session process. */\nexport function createTeamApiHandler(options: TeamApiOptions): DoomApiHandler {\n const discovery = new AgentDiscoveryService(options.environment);\n const read =\n options.read ??\n ((cwd: string): TeamCatalogSnapshot => ({\n agents: discovery.discover(cwd, 'both').agents,\n models: resolveActiveTeamModelSpecs(options.environment) ?? [],\n }));\n\n return {\n async fetch(request) {\n const url = new URL(request.url);\n if (request.method === 'POST' && url.pathname === TEAM_RUN_ROUTE && options.launch) {\n let input: unknown;\n try {\n input = await request.json();\n } catch {\n return Response.json({ error: 'Invalid run request.' }, { status: 400 });\n }\n if (!isRunRequest(input)) return Response.json({ error: 'Invalid run request.' }, { status: 400 });\n try {\n return Response.json(await options.launch(input), { status: 201 });\n } catch (error) {\n return Response.json({ error: error instanceof Error ? error.message : String(error) }, { status: 409 });\n }\n }\n if (request.method !== 'GET' || url.pathname !== TEAM_CATALOG_ROUTE) {\n return Response.json({ error: 'Not found.' }, { status: 404 });\n }\n try {\n discovery.invalidate();\n const snapshot = read(options.cwd);\n return Response.json({\n cwd: options.cwd,\n agents: presentCatalog(snapshot.agents),\n models: catalogModels(snapshot.agents, snapshot.models),\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return Response.json({ error: message }, { status: 500 });\n }\n },\n close: () => undefined,\n };\n}\n\n/** One mounted session API, backed by the Team runtime that owns the subagent tool. */\nexport function createTeamSessionApi(runtime: TeamExtensionRuntime, execution: DoomHeadlessExecutionContext): DoomApi {\n const scope = createSessionScope(execution.sessionId);\n const jobs = runtime.asyncJobTracker.forSession(execution.sessionId, scope);\n\n const launch = async (request: TeamRunRequest): Promise<{ runId: string }> => {\n const parentForkSource = request.fork ? await execution.session.forkSource?.() : undefined;\n if (request.fork && !parentForkSource) throw new Error('This session cannot capture a fork source.');\n const plan = await runtime.spawnPlanner.spawn(\n {\n single: {\n agent: request.agent.trim(),\n task: request.task.trim(),\n context: request.fork ? 'fork' : 'fresh',\n ...(request.model ? { model: request.model } : {}),\n },\n cwd: execution.cwd,\n agentScope: 'both',\n sessionScope: scope,\n environment: execution.environment,\n parentSessionId: execution.sessionId,\n ...(parentForkSource ? { parentForkSource } : {}),\n availableModels: execution.model ? [toModelInfo(execution.model)] : [],\n ...(execution.model ? { parentModel: execution.model } : {}),\n },\n loadConfig().config,\n );\n const outcome = plan.outcomes[0];\n if (!outcome?.runId) throw new Error(outcome?.error ?? 'The agent did not start.');\n jobs.track(outcome.runId);\n return { runId: outcome.runId };\n };\n\n return {\n basePath: TEAM_API_BASE_PATH,\n start: () =>\n createTeamApiHandler({\n cwd: execution.cwd,\n environment: execution.environment,\n launch,\n }),\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{AgentDiscoveryService as e,resolveActiveTeamModelSpecs as t}from"../services/agentDiscovery/index.mjs";import{createSessionScope as n}from"../services/sessionPaths/index.mjs";import{toModelInfo as r}from"../services/modelInfo/index.mjs";import{loadConfig as i}from"../services/config/index.mjs";import{catalogModels as a,presentCatalog as o}from"../services/webSubagentCatalog/index.mjs";const s=`team`,c=`/catalog`,l=`/run`;function u(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return typeof t.agent==`string`&&t.agent.trim()!==``&&typeof t.task==`string`&&typeof t.fork==`boolean`&&(t.model===void 0||typeof t.model==`string`&&t.model.trim()!==``)&&Object.keys(t).every(e=>[`agent`,`task`,`fork`,`model`].includes(e))}function d(n){let r=new e(n.environment),i=n.read??(e=>({agents:r.discover(e,`both`).agents,models:t(n.environment)??[]}));return{async fetch(e){let t=new URL(e.url);if(e.method===`POST`&&t.pathname===`/run`&&n.launch){let t;try{t=await e.json()}catch{return Response.json({error:`Invalid run request.`},{status:400})}if(!u(t))return Response.json({error:`Invalid run request.`},{status:400});try{return Response.json(await n.launch(t),{status:201})}catch(e){return Response.json({error:e instanceof Error?e.message:String(e)},{status:409})}}if(e.method!==`GET`||t.pathname!==`/catalog`)return Response.json({error:`Not found.`},{status:404});try{r.invalidate();let e=i(n.cwd);return Response.json({cwd:n.cwd,agents:o(e.agents),models:a(e.agents,e.models)})}catch(e){let t=e instanceof Error?e.message:String(e);return Response.json({error:t},{status:500})}},close:()=>void 0}}function f(e,t){let a=n(t.sessionId),o=e.asyncJobTracker.forSession(t.sessionId,a),c=async n=>{let s=n.fork?await t.session.forkSource?.():void 0;if(n.fork&&!s)throw Error(`This session cannot capture a fork source.`);let c=(await e.spawnPlanner.spawn({single:{agent:n.agent.trim(),task:n.task.trim(),context:n.fork?`fork`:`fresh`,...n.model?{model:n.model}:{}},cwd:t.cwd,agentScope:`both`,sessionScope:a,environment:t.environment,parentSessionId:t.sessionId,...s?{parentForkSource:s}:{},availableModels:t.model?[r(t.model)]:[],...t.model?{parentModel:t.model}:{}},i().config)).outcomes[0];if(!c?.runId)throw Error(c?.error??`The agent did not start.`);return o.track(c.runId),{runId:c.runId}};return{basePath:s,start:()=>d({cwd:t.cwd,environment:t.environment,launch:c})}}export{s as TEAM_API_BASE_PATH,c as TEAM_CATALOG_ROUTE,l as TEAM_RUN_ROUTE,d as createTeamApiHandler,f as createTeamSessionApi};
|
|
2
|
+
//# sourceMappingURL=teamSessionApi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teamSessionApi.mjs","names":[],"sources":["../../src/controllers/teamSessionApi.ts"],"sourcesContent":["import type { DoomHeadlessExecutionContext } from '@agimon-ai/doompi-core/headless';\nimport type { DoomApi, DoomApiHandler } from '@agimon-ai/doompi-core/package-api';\n\nimport { AgentDiscoveryService, resolveActiveTeamModelSpecs } from '../services/agentDiscovery';\nimport { loadConfig } from '../services/config';\nimport { toModelInfo } from '../services/modelInfo';\nimport { createSessionScope } from '../services/sessionPaths';\nimport type { TeamExtensionRuntime } from '../services/teamRuntime';\nimport { catalogModels, presentCatalog, type CatalogAgentInput } from '../services/webSubagentCatalog';\n\nexport const TEAM_API_BASE_PATH = 'team';\nexport const TEAM_CATALOG_ROUTE = '/catalog';\nexport const TEAM_RUN_ROUTE = '/run';\n\nexport interface TeamRunRequest {\n agent: string;\n task: string;\n fork: boolean;\n model?: string;\n}\n\nexport interface TeamCatalogSnapshot {\n agents: CatalogAgentInput[];\n models: string[];\n}\n\nexport interface TeamApiOptions {\n cwd: string;\n environment?: Readonly<NodeJS.ProcessEnv>;\n read?: (cwd: string) => TeamCatalogSnapshot;\n launch?: (request: TeamRunRequest) => Promise<{ runId: string }>;\n}\n\nfunction isRunRequest(value: unknown): value is TeamRunRequest {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return false;\n const request = value as Record<string, unknown>;\n return (\n typeof request.agent === 'string' &&\n request.agent.trim() !== '' &&\n typeof request.task === 'string' &&\n typeof request.fork === 'boolean' &&\n (request.model === undefined || (typeof request.model === 'string' && request.model.trim() !== '')) &&\n Object.keys(request).every((key) => ['agent', 'task', 'fork', 'model'].includes(key))\n );\n}\n\n/** Serves catalog discovery and run launch from the selected session process. */\nexport function createTeamApiHandler(options: TeamApiOptions): DoomApiHandler {\n const discovery = new AgentDiscoveryService(options.environment);\n const read =\n options.read ??\n ((cwd: string): TeamCatalogSnapshot => ({\n agents: discovery.discover(cwd, 'both').agents,\n models: resolveActiveTeamModelSpecs(options.environment) ?? [],\n }));\n\n return {\n async fetch(request) {\n const url = new URL(request.url);\n if (request.method === 'POST' && url.pathname === TEAM_RUN_ROUTE && options.launch) {\n let input: unknown;\n try {\n input = await request.json();\n } catch {\n return Response.json({ error: 'Invalid run request.' }, { status: 400 });\n }\n if (!isRunRequest(input)) return Response.json({ error: 'Invalid run request.' }, { status: 400 });\n try {\n return Response.json(await options.launch(input), { status: 201 });\n } catch (error) {\n return Response.json({ error: error instanceof Error ? error.message : String(error) }, { status: 409 });\n }\n }\n if (request.method !== 'GET' || url.pathname !== TEAM_CATALOG_ROUTE) {\n return Response.json({ error: 'Not found.' }, { status: 404 });\n }\n try {\n discovery.invalidate();\n const snapshot = read(options.cwd);\n return Response.json({\n cwd: options.cwd,\n agents: presentCatalog(snapshot.agents),\n models: catalogModels(snapshot.agents, snapshot.models),\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return Response.json({ error: message }, { status: 500 });\n }\n },\n close: () => undefined,\n };\n}\n\n/** One mounted session API, backed by the Team runtime that owns the subagent tool. */\nexport function createTeamSessionApi(runtime: TeamExtensionRuntime, execution: DoomHeadlessExecutionContext): DoomApi {\n const scope = createSessionScope(execution.sessionId);\n const jobs = runtime.asyncJobTracker.forSession(execution.sessionId, scope);\n\n const launch = async (request: TeamRunRequest): Promise<{ runId: string }> => {\n const parentForkSource = request.fork ? await execution.session.forkSource?.() : undefined;\n if (request.fork && !parentForkSource) throw new Error('This session cannot capture a fork source.');\n const plan = await runtime.spawnPlanner.spawn(\n {\n single: {\n agent: request.agent.trim(),\n task: request.task.trim(),\n context: request.fork ? 'fork' : 'fresh',\n ...(request.model ? { model: request.model } : {}),\n },\n cwd: execution.cwd,\n agentScope: 'both',\n sessionScope: scope,\n environment: execution.environment,\n parentSessionId: execution.sessionId,\n ...(parentForkSource ? { parentForkSource } : {}),\n availableModels: execution.model ? [toModelInfo(execution.model)] : [],\n ...(execution.model ? { parentModel: execution.model } : {}),\n },\n loadConfig().config,\n );\n const outcome = plan.outcomes[0];\n if (!outcome?.runId) throw new Error(outcome?.error ?? 'The agent did not start.');\n jobs.track(outcome.runId);\n return { runId: outcome.runId };\n };\n\n return {\n basePath: TEAM_API_BASE_PATH,\n start: () =>\n createTeamApiHandler({\n cwd: execution.cwd,\n environment: execution.environment,\n launch,\n }),\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../types/webSubagents.cjs");function t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function n(e){return t(e)&&typeof e.cwd==`string`&&Array.isArray(e.agents)&&Array.isArray(e.models)&&e.models.every(e=>typeof e==`string`)}function r(){return{frameType:e.SUBAGENT_CATALOG_TYPE,start(t){let r=new Map,i=new Map,a=new Map,o=(e,n)=>{r.get(e.sessionId)===e&&n.cwd===e.cwd&&(i.set(e.sessionId,n),t.publish(e.sessionId,n))};return{payloadFor(e){return r.has(e.sessionId)?i.get(e.sessionId):void 0},sessionAdded(s){a.get(s.sessionId)?.(),r.set(s.sessionId,s),i.delete(s.sessionId);let c=t.directEvents.subscribe(e.SUBAGENT_CATALOG_TYPE,s.sessionId,e=>{n(e)&&o(s,e)},{replayLatest:!0});a.set(s.sessionId,c)},sessionRemoved(e){a.get(e)?.(),a.delete(e),r.delete(e),i.delete(e)},close(){for(let e of a.values())e();a.clear(),r.clear(),i.clear()}}}}}exports.createSubagentCatalogChannel=r;
|
|
2
|
+
//# sourceMappingURL=webSubagentCatalogChannel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSubagentCatalogChannel.cjs","names":["SUBAGENT_CATALOG_TYPE"],"sources":["../../src/controllers/webSubagentCatalogChannel.ts"],"sourcesContent":["import type {\n DoomHubChannelHost as HubChannelHost,\n DoomHubChannelSource as HubChannelSource,\n DoomHubSessionScope as HubSessionScope,\n DoomHubChannel as WebHubChannel,\n} from '@agimon-ai/doompi-core/hub-channel';\n\nimport { SUBAGENT_CATALOG_TYPE, type SubagentCatalogPayload } from '../types/webSubagents';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isSubagentCatalogPayload(value: unknown): value is SubagentCatalogPayload {\n return (\n isRecord(value) &&\n typeof value.cwd === 'string' &&\n Array.isArray(value.agents) &&\n Array.isArray(value.models) &&\n value.models.every((model) => typeof model === 'string')\n );\n}\n\n/**\n * The subagent catalog data channel consumes the session-owned catalog event.\n * The direct event bus retains a bounded latest snapshot for late subscribers.\n */\nexport function createSubagentCatalogChannel(): WebHubChannel {\n return {\n frameType: SUBAGENT_CATALOG_TYPE,\n start(host: HubChannelHost) {\n const scopes = new Map<string, HubSessionScope>();\n const latest = new Map<string, SubagentCatalogPayload>();\n const subscriptions = new Map<string, () => void>();\n const publish = (scope: HubSessionScope, payload: SubagentCatalogPayload): void => {\n if (scopes.get(scope.sessionId) !== scope || payload.cwd !== scope.cwd) return;\n latest.set(scope.sessionId, payload);\n host.publish(scope.sessionId, payload);\n };\n const source: HubChannelSource = {\n payloadFor(scope) {\n return scopes.has(scope.sessionId) ? latest.get(scope.sessionId) : undefined;\n },\n sessionAdded(scope) {\n subscriptions.get(scope.sessionId)?.();\n scopes.set(scope.sessionId, scope);\n latest.delete(scope.sessionId);\n const unsubscribe = host.directEvents.subscribe(\n SUBAGENT_CATALOG_TYPE,\n scope.sessionId,\n (value) => {\n if (isSubagentCatalogPayload(value)) publish(scope, value);\n },\n { replayLatest: true },\n );\n subscriptions.set(scope.sessionId, unsubscribe);\n },\n sessionRemoved(sessionId) {\n subscriptions.get(sessionId)?.();\n subscriptions.delete(sessionId);\n scopes.delete(sessionId);\n latest.delete(sessionId);\n },\n close() {\n for (const unsubscribe of subscriptions.values()) unsubscribe();\n subscriptions.clear();\n scopes.clear();\n latest.clear();\n },\n };\n return source;\n },\n };\n}\n"],"mappings":"6CASA,SAAS,EAAS,EAAkD,CAClE,OAAO,OAAO,GAAU,YAAY,GAAkB,CAAC,MAAM,QAAQ,CAAK,CAC5E,CAEA,SAAS,EAAyB,EAAiD,CACjF,OACE,EAAS,CAAK,GACd,OAAO,EAAM,KAAQ,UACrB,MAAM,QAAQ,EAAM,MAAM,GAC1B,MAAM,QAAQ,EAAM,MAAM,GAC1B,EAAM,OAAO,MAAO,GAAU,OAAO,GAAU,QAAQ,CAE3D,CAMA,SAAgB,GAA8C,CAC5D,MAAO,CACL,UAAWA,EAAAA,sBACX,MAAM,EAAsB,CAC1B,IAAM,EAAS,IAAI,IACb,EAAS,IAAI,IACb,EAAgB,IAAI,IACpB,GAAW,EAAwB,IAA0C,CAC7E,EAAO,IAAI,EAAM,SAAS,IAAM,GAAS,EAAQ,MAAQ,EAAM,MACnE,EAAO,IAAI,EAAM,UAAW,CAAO,EACnC,EAAK,QAAQ,EAAM,UAAW,CAAO,EACvC,EAgCA,MAAO,CA9BL,WAAW,EAAO,CAChB,OAAO,EAAO,IAAI,EAAM,SAAS,EAAI,EAAO,IAAI,EAAM,SAAS,EAAI,IAAA,EACrE,EACA,aAAa,EAAO,CAClB,EAAc,IAAI,EAAM,SAAS,CAAC,GAAG,EACrC,EAAO,IAAI,EAAM,UAAW,CAAK,EACjC,EAAO,OAAO,EAAM,SAAS,EAC7B,IAAM,EAAc,EAAK,aAAa,UACpCA,EAAAA,sBACA,EAAM,UACL,GAAU,CACL,EAAyB,CAAK,GAAG,EAAQ,EAAO,CAAK,CAC3D,EACA,CAAE,aAAc,EAAK,CACvB,EACA,EAAc,IAAI,EAAM,UAAW,CAAW,CAChD,EACA,eAAe,EAAW,CACxB,EAAc,IAAI,CAAS,CAAC,GAAG,EAC/B,EAAc,OAAO,CAAS,EAC9B,EAAO,OAAO,CAAS,EACvB,EAAO,OAAO,CAAS,CACzB,EACA,OAAQ,CACN,IAAK,IAAM,KAAe,EAAc,OAAO,EAAG,EAAY,EAC9D,EAAc,MAAM,EACpB,EAAO,MAAM,EACb,EAAO,MAAM,CACf,CAEU,CACd,CACF,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{SUBAGENT_CATALOG_TYPE as e}from"../types/webSubagents.mjs";function t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function n(e){return t(e)&&typeof e.cwd==`string`&&Array.isArray(e.agents)&&Array.isArray(e.models)&&e.models.every(e=>typeof e==`string`)}function r(){return{frameType:e,start(t){let r=new Map,i=new Map,a=new Map,o=(e,n)=>{r.get(e.sessionId)===e&&n.cwd===e.cwd&&(i.set(e.sessionId,n),t.publish(e.sessionId,n))};return{payloadFor(e){return r.has(e.sessionId)?i.get(e.sessionId):void 0},sessionAdded(s){a.get(s.sessionId)?.(),r.set(s.sessionId,s),i.delete(s.sessionId);let c=t.directEvents.subscribe(e,s.sessionId,e=>{n(e)&&o(s,e)},{replayLatest:!0});a.set(s.sessionId,c)},sessionRemoved(e){a.get(e)?.(),a.delete(e),r.delete(e),i.delete(e)},close(){for(let e of a.values())e();a.clear(),r.clear(),i.clear()}}}}}export{r as createSubagentCatalogChannel};
|
|
2
|
+
//# sourceMappingURL=webSubagentCatalogChannel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSubagentCatalogChannel.mjs","names":[],"sources":["../../src/controllers/webSubagentCatalogChannel.ts"],"sourcesContent":["import type {\n DoomHubChannelHost as HubChannelHost,\n DoomHubChannelSource as HubChannelSource,\n DoomHubSessionScope as HubSessionScope,\n DoomHubChannel as WebHubChannel,\n} from '@agimon-ai/doompi-core/hub-channel';\n\nimport { SUBAGENT_CATALOG_TYPE, type SubagentCatalogPayload } from '../types/webSubagents';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isSubagentCatalogPayload(value: unknown): value is SubagentCatalogPayload {\n return (\n isRecord(value) &&\n typeof value.cwd === 'string' &&\n Array.isArray(value.agents) &&\n Array.isArray(value.models) &&\n value.models.every((model) => typeof model === 'string')\n );\n}\n\n/**\n * The subagent catalog data channel consumes the session-owned catalog event.\n * The direct event bus retains a bounded latest snapshot for late subscribers.\n */\nexport function createSubagentCatalogChannel(): WebHubChannel {\n return {\n frameType: SUBAGENT_CATALOG_TYPE,\n start(host: HubChannelHost) {\n const scopes = new Map<string, HubSessionScope>();\n const latest = new Map<string, SubagentCatalogPayload>();\n const subscriptions = new Map<string, () => void>();\n const publish = (scope: HubSessionScope, payload: SubagentCatalogPayload): void => {\n if (scopes.get(scope.sessionId) !== scope || payload.cwd !== scope.cwd) return;\n latest.set(scope.sessionId, payload);\n host.publish(scope.sessionId, payload);\n };\n const source: HubChannelSource = {\n payloadFor(scope) {\n return scopes.has(scope.sessionId) ? latest.get(scope.sessionId) : undefined;\n },\n sessionAdded(scope) {\n subscriptions.get(scope.sessionId)?.();\n scopes.set(scope.sessionId, scope);\n latest.delete(scope.sessionId);\n const unsubscribe = host.directEvents.subscribe(\n SUBAGENT_CATALOG_TYPE,\n scope.sessionId,\n (value) => {\n if (isSubagentCatalogPayload(value)) publish(scope, value);\n },\n { replayLatest: true },\n );\n subscriptions.set(scope.sessionId, unsubscribe);\n },\n sessionRemoved(sessionId) {\n subscriptions.get(sessionId)?.();\n subscriptions.delete(sessionId);\n scopes.delete(sessionId);\n latest.delete(sessionId);\n },\n close() {\n for (const unsubscribe of subscriptions.values()) unsubscribe();\n subscriptions.clear();\n scopes.clear();\n latest.clear();\n },\n };\n return source;\n },\n };\n}\n"],"mappings":"kEASA,SAAS,EAAS,EAAkD,CAClE,OAAO,OAAO,GAAU,YAAY,GAAkB,CAAC,MAAM,QAAQ,CAAK,CAC5E,CAEA,SAAS,EAAyB,EAAiD,CACjF,OACE,EAAS,CAAK,GACd,OAAO,EAAM,KAAQ,UACrB,MAAM,QAAQ,EAAM,MAAM,GAC1B,MAAM,QAAQ,EAAM,MAAM,GAC1B,EAAM,OAAO,MAAO,GAAU,OAAO,GAAU,QAAQ,CAE3D,CAMA,SAAgB,GAA8C,CAC5D,MAAO,CACL,UAAW,EACX,MAAM,EAAsB,CAC1B,IAAM,EAAS,IAAI,IACb,EAAS,IAAI,IACb,EAAgB,IAAI,IACpB,GAAW,EAAwB,IAA0C,CAC7E,EAAO,IAAI,EAAM,SAAS,IAAM,GAAS,EAAQ,MAAQ,EAAM,MACnE,EAAO,IAAI,EAAM,UAAW,CAAO,EACnC,EAAK,QAAQ,EAAM,UAAW,CAAO,EACvC,EAgCA,MAAO,CA9BL,WAAW,EAAO,CAChB,OAAO,EAAO,IAAI,EAAM,SAAS,EAAI,EAAO,IAAI,EAAM,SAAS,EAAI,IAAA,EACrE,EACA,aAAa,EAAO,CAClB,EAAc,IAAI,EAAM,SAAS,CAAC,GAAG,EACrC,EAAO,IAAI,EAAM,UAAW,CAAK,EACjC,EAAO,OAAO,EAAM,SAAS,EAC7B,IAAM,EAAc,EAAK,aAAa,UACpC,EACA,EAAM,UACL,GAAU,CACL,EAAyB,CAAK,GAAG,EAAQ,EAAO,CAAK,CAC3D,EACA,CAAE,aAAc,EAAK,CACvB,EACA,EAAc,IAAI,EAAM,UAAW,CAAW,CAChD,EACA,eAAe,EAAW,CACxB,EAAc,IAAI,CAAS,CAAC,GAAG,EAC/B,EAAc,OAAO,CAAS,EAC9B,EAAO,OAAO,CAAS,EACvB,EAAO,OAAO,CAAS,CACzB,EACA,OAAQ,CACN,IAAK,IAAM,KAAe,EAAc,OAAO,EAAG,EAAY,EAC9D,EAAc,MAAM,EACpB,EAAO,MAAM,EACb,EAAO,MAAM,CACf,CAEU,CACd,CACF,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../types/webSubagents.cjs"),t=/^[\w.-]+$/;function n(e){return typeof e==`object`&&!!e&&Array.isArray(e.runs)}function r(e){return{runs:e.runs.map(({sessionFile:e,...t})=>t)}}function i(){return{frameType:e.SUBAGENT_RUNS_TYPE,start(i){let a=new Map,o=new Map,s=new Map,c=(e,t)=>{a.get(e.sessionId)===e&&(o.set(e.sessionId,t),i.publish(e.sessionId,r(t)))};return{payloadFor(e){let t=a.has(e.sessionId)?o.get(e.sessionId):void 0;return t===void 0?void 0:r(t)},threadJournal(e,n){if(t.test(n))return o.get(e.sessionId)?.runs.find(e=>e.runId===n)?.sessionFile},sessionAdded(t){s.get(t.sessionId)?.(),a.set(t.sessionId,t),o.delete(t.sessionId);let r=i.directEvents.subscribe(e.SUBAGENT_RUNS_TYPE,t.sessionId,e=>{n(e)&&c(t,e)},{replayLatest:!0});s.set(t.sessionId,r)},sessionRemoved(e){s.get(e)?.(),s.delete(e),a.delete(e),o.delete(e)},close(){for(let e of s.values())e();s.clear(),a.clear(),o.clear()}}}}}exports.createSubagentsChannel=i;
|
|
2
|
+
//# sourceMappingURL=webSubagentsChannel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSubagentsChannel.cjs","names":["SUBAGENT_RUNS_TYPE"],"sources":["../../src/controllers/webSubagentsChannel.ts"],"sourcesContent":["import type {\n DoomHubChannelSource as HubChannelSource,\n DoomHubSessionScope,\n DoomHubChannel as WebHubChannel,\n} from '@agimon-ai/doompi-core/hub-channel';\n\nimport { SUBAGENT_RUNS_TYPE, type SubagentRun } from '../types/webSubagents';\n\nconst RUN_ID_PATTERN = /^[\\w.-]+$/;\n\ninterface SessionRunProjection extends SubagentRun {\n /** Host-private child transcript path. Never published to the browser. */\n sessionFile?: string;\n}\n\ntype SessionRunProjectionPayload = { runs: SessionRunProjection[] };\ntype SubagentRunsPayload = { runs: SubagentRun[] };\n\nfunction isSubagentRunsPayload(value: unknown): value is SessionRunProjectionPayload {\n return typeof value === 'object' && value !== null && Array.isArray((value as { runs?: unknown }).runs);\n}\n\nfunction publicPayload(payload: SessionRunProjectionPayload): SubagentRunsPayload {\n return { runs: payload.runs.map(({ sessionFile: _sessionFile, ...run }) => run) };\n}\n\n/**\n * The built-in subagents data channel consumes current state from the\n * host-owned direct event bus. Its bounded latest replay seeds late subscribers.\n */\nexport function createSubagentsChannel(): WebHubChannel {\n return {\n frameType: SUBAGENT_RUNS_TYPE,\n start(host) {\n const scopes = new Map<string, DoomHubSessionScope>();\n const latest = new Map<string, SessionRunProjectionPayload>();\n const subscriptions = new Map<string, () => void>();\n const publish = (scope: DoomHubSessionScope, payload: SessionRunProjectionPayload): void => {\n if (scopes.get(scope.sessionId) !== scope) return;\n latest.set(scope.sessionId, payload);\n host.publish(scope.sessionId, publicPayload(payload));\n };\n const source: HubChannelSource = {\n payloadFor(scope) {\n const payload = scopes.has(scope.sessionId) ? latest.get(scope.sessionId) : undefined;\n return payload === undefined ? undefined : publicPayload(payload);\n },\n threadJournal(scope, runId) {\n if (!RUN_ID_PATTERN.test(runId)) return undefined;\n const projected = latest.get(scope.sessionId)?.runs.find((run) => run.runId === runId);\n return projected?.sessionFile;\n },\n sessionAdded(scope) {\n subscriptions.get(scope.sessionId)?.();\n scopes.set(scope.sessionId, scope);\n latest.delete(scope.sessionId);\n const unsubscribe = host.directEvents.subscribe(\n SUBAGENT_RUNS_TYPE,\n scope.sessionId,\n (value) => {\n if (isSubagentRunsPayload(value)) publish(scope, value);\n },\n { replayLatest: true },\n );\n subscriptions.set(scope.sessionId, unsubscribe);\n },\n sessionRemoved(sessionId) {\n subscriptions.get(sessionId)?.();\n subscriptions.delete(sessionId);\n scopes.delete(sessionId);\n latest.delete(sessionId);\n },\n close() {\n for (const unsubscribe of subscriptions.values()) unsubscribe();\n subscriptions.clear();\n scopes.clear();\n latest.clear();\n },\n };\n return source;\n },\n };\n}\n"],"mappings":"6CAQM,EAAiB,YAUvB,SAAS,EAAsB,EAAsD,CACnF,OAAO,OAAO,GAAU,YAAY,GAAkB,MAAM,QAAS,EAA6B,IAAI,CACxG,CAEA,SAAS,EAAc,EAA2D,CAChF,MAAO,CAAE,KAAM,EAAQ,KAAK,KAAK,CAAE,YAAa,EAAc,GAAG,KAAU,CAAG,CAAE,CAClF,CAMA,SAAgB,GAAwC,CACtD,MAAO,CACL,UAAWA,EAAAA,mBACX,MAAM,EAAM,CACV,IAAM,EAAS,IAAI,IACb,EAAS,IAAI,IACb,EAAgB,IAAI,IACpB,GAAW,EAA4B,IAA+C,CACtF,EAAO,IAAI,EAAM,SAAS,IAAM,IACpC,EAAO,IAAI,EAAM,UAAW,CAAO,EACnC,EAAK,QAAQ,EAAM,UAAW,EAAc,CAAO,CAAC,EACtD,EAsCA,MAAO,CApCL,WAAW,EAAO,CAChB,IAAM,EAAU,EAAO,IAAI,EAAM,SAAS,EAAI,EAAO,IAAI,EAAM,SAAS,EAAI,IAAA,GAC5E,OAAO,IAAY,IAAA,GAAY,IAAA,GAAY,EAAc,CAAO,CAClE,EACA,cAAc,EAAO,EAAO,CACrB,KAAe,KAAK,CAAK,EAE9B,OADkB,EAAO,IAAI,EAAM,SAAS,CAAC,EAAE,KAAK,KAAM,GAAQ,EAAI,QAAU,CAAK,CAAA,EACnE,WACpB,EACA,aAAa,EAAO,CAClB,EAAc,IAAI,EAAM,SAAS,CAAC,GAAG,EACrC,EAAO,IAAI,EAAM,UAAW,CAAK,EACjC,EAAO,OAAO,EAAM,SAAS,EAC7B,IAAM,EAAc,EAAK,aAAa,UACpCA,EAAAA,mBACA,EAAM,UACL,GAAU,CACL,EAAsB,CAAK,GAAG,EAAQ,EAAO,CAAK,CACxD,EACA,CAAE,aAAc,EAAK,CACvB,EACA,EAAc,IAAI,EAAM,UAAW,CAAW,CAChD,EACA,eAAe,EAAW,CACxB,EAAc,IAAI,CAAS,CAAC,GAAG,EAC/B,EAAc,OAAO,CAAS,EAC9B,EAAO,OAAO,CAAS,EACvB,EAAO,OAAO,CAAS,CACzB,EACA,OAAQ,CACN,IAAK,IAAM,KAAe,EAAc,OAAO,EAAG,EAAY,EAC9D,EAAc,MAAM,EACpB,EAAO,MAAM,EACb,EAAO,MAAM,CACf,CAEU,CACd,CACF,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{SUBAGENT_RUNS_TYPE as e}from"../types/webSubagents.mjs";const t=/^[\w.-]+$/;function n(e){return typeof e==`object`&&!!e&&Array.isArray(e.runs)}function r(e){return{runs:e.runs.map(({sessionFile:e,...t})=>t)}}function i(){return{frameType:e,start(i){let a=new Map,o=new Map,s=new Map,c=(e,t)=>{a.get(e.sessionId)===e&&(o.set(e.sessionId,t),i.publish(e.sessionId,r(t)))};return{payloadFor(e){let t=a.has(e.sessionId)?o.get(e.sessionId):void 0;return t===void 0?void 0:r(t)},threadJournal(e,n){if(t.test(n))return o.get(e.sessionId)?.runs.find(e=>e.runId===n)?.sessionFile},sessionAdded(t){s.get(t.sessionId)?.(),a.set(t.sessionId,t),o.delete(t.sessionId);let r=i.directEvents.subscribe(e,t.sessionId,e=>{n(e)&&c(t,e)},{replayLatest:!0});s.set(t.sessionId,r)},sessionRemoved(e){s.get(e)?.(),s.delete(e),a.delete(e),o.delete(e)},close(){for(let e of s.values())e();s.clear(),a.clear(),o.clear()}}}}}export{i as createSubagentsChannel};
|
|
2
|
+
//# sourceMappingURL=webSubagentsChannel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSubagentsChannel.mjs","names":[],"sources":["../../src/controllers/webSubagentsChannel.ts"],"sourcesContent":["import type {\n DoomHubChannelSource as HubChannelSource,\n DoomHubSessionScope,\n DoomHubChannel as WebHubChannel,\n} from '@agimon-ai/doompi-core/hub-channel';\n\nimport { SUBAGENT_RUNS_TYPE, type SubagentRun } from '../types/webSubagents';\n\nconst RUN_ID_PATTERN = /^[\\w.-]+$/;\n\ninterface SessionRunProjection extends SubagentRun {\n /** Host-private child transcript path. Never published to the browser. */\n sessionFile?: string;\n}\n\ntype SessionRunProjectionPayload = { runs: SessionRunProjection[] };\ntype SubagentRunsPayload = { runs: SubagentRun[] };\n\nfunction isSubagentRunsPayload(value: unknown): value is SessionRunProjectionPayload {\n return typeof value === 'object' && value !== null && Array.isArray((value as { runs?: unknown }).runs);\n}\n\nfunction publicPayload(payload: SessionRunProjectionPayload): SubagentRunsPayload {\n return { runs: payload.runs.map(({ sessionFile: _sessionFile, ...run }) => run) };\n}\n\n/**\n * The built-in subagents data channel consumes current state from the\n * host-owned direct event bus. Its bounded latest replay seeds late subscribers.\n */\nexport function createSubagentsChannel(): WebHubChannel {\n return {\n frameType: SUBAGENT_RUNS_TYPE,\n start(host) {\n const scopes = new Map<string, DoomHubSessionScope>();\n const latest = new Map<string, SessionRunProjectionPayload>();\n const subscriptions = new Map<string, () => void>();\n const publish = (scope: DoomHubSessionScope, payload: SessionRunProjectionPayload): void => {\n if (scopes.get(scope.sessionId) !== scope) return;\n latest.set(scope.sessionId, payload);\n host.publish(scope.sessionId, publicPayload(payload));\n };\n const source: HubChannelSource = {\n payloadFor(scope) {\n const payload = scopes.has(scope.sessionId) ? latest.get(scope.sessionId) : undefined;\n return payload === undefined ? undefined : publicPayload(payload);\n },\n threadJournal(scope, runId) {\n if (!RUN_ID_PATTERN.test(runId)) return undefined;\n const projected = latest.get(scope.sessionId)?.runs.find((run) => run.runId === runId);\n return projected?.sessionFile;\n },\n sessionAdded(scope) {\n subscriptions.get(scope.sessionId)?.();\n scopes.set(scope.sessionId, scope);\n latest.delete(scope.sessionId);\n const unsubscribe = host.directEvents.subscribe(\n SUBAGENT_RUNS_TYPE,\n scope.sessionId,\n (value) => {\n if (isSubagentRunsPayload(value)) publish(scope, value);\n },\n { replayLatest: true },\n );\n subscriptions.set(scope.sessionId, unsubscribe);\n },\n sessionRemoved(sessionId) {\n subscriptions.get(sessionId)?.();\n subscriptions.delete(sessionId);\n scopes.delete(sessionId);\n latest.delete(sessionId);\n },\n close() {\n for (const unsubscribe of subscriptions.values()) unsubscribe();\n subscriptions.clear();\n scopes.clear();\n latest.clear();\n },\n };\n return source;\n },\n };\n}\n"],"mappings":"+DAQA,MAAM,EAAiB,YAUvB,SAAS,EAAsB,EAAsD,CACnF,OAAO,OAAO,GAAU,YAAY,GAAkB,MAAM,QAAS,EAA6B,IAAI,CACxG,CAEA,SAAS,EAAc,EAA2D,CAChF,MAAO,CAAE,KAAM,EAAQ,KAAK,KAAK,CAAE,YAAa,EAAc,GAAG,KAAU,CAAG,CAAE,CAClF,CAMA,SAAgB,GAAwC,CACtD,MAAO,CACL,UAAW,EACX,MAAM,EAAM,CACV,IAAM,EAAS,IAAI,IACb,EAAS,IAAI,IACb,EAAgB,IAAI,IACpB,GAAW,EAA4B,IAA+C,CACtF,EAAO,IAAI,EAAM,SAAS,IAAM,IACpC,EAAO,IAAI,EAAM,UAAW,CAAO,EACnC,EAAK,QAAQ,EAAM,UAAW,EAAc,CAAO,CAAC,EACtD,EAsCA,MAAO,CApCL,WAAW,EAAO,CAChB,IAAM,EAAU,EAAO,IAAI,EAAM,SAAS,EAAI,EAAO,IAAI,EAAM,SAAS,EAAI,IAAA,GAC5E,OAAO,IAAY,IAAA,GAAY,IAAA,GAAY,EAAc,CAAO,CAClE,EACA,cAAc,EAAO,EAAO,CACrB,KAAe,KAAK,CAAK,EAE9B,OADkB,EAAO,IAAI,EAAM,SAAS,CAAC,EAAE,KAAK,KAAM,GAAQ,EAAI,QAAU,CAAK,CAAA,EACnE,WACpB,EACA,aAAa,EAAO,CAClB,EAAc,IAAI,EAAM,SAAS,CAAC,GAAG,EACrC,EAAO,IAAI,EAAM,UAAW,CAAK,EACjC,EAAO,OAAO,EAAM,SAAS,EAC7B,IAAM,EAAc,EAAK,aAAa,UACpC,EACA,EAAM,UACL,GAAU,CACL,EAAsB,CAAK,GAAG,EAAQ,EAAO,CAAK,CACxD,EACA,CAAE,aAAc,EAAK,CACvB,EACA,EAAc,IAAI,EAAM,UAAW,CAAW,CAChD,EACA,eAAe,EAAW,CACxB,EAAc,IAAI,CAAS,CAAC,GAAG,EAC/B,EAAc,OAAO,CAAS,EAC9B,EAAO,OAAO,CAAS,EACvB,EAAO,OAAO,CAAS,CACzB,EACA,OAAQ,CACN,IAAK,IAAM,KAAe,EAAc,OAAO,EAAG,EAAY,EAC9D,EAAc,MAAM,EACpB,EAAO,MAAM,EACb,EAAO,MAAM,CACf,CAEU,CACd,CACF,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@agimon-ai/doompi-core/delegation");Object.defineProperty(exports,"DOOM_DELEGATION_ACCEPTED_EVENT",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_ACCEPTED_EVENT}}),Object.defineProperty(exports,"DOOM_DELEGATION_CANCELLED_EVENT",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_CANCELLED_EVENT}}),Object.defineProperty(exports,"DOOM_DELEGATION_FINISHED_EVENT",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_FINISHED_EVENT}}),Object.defineProperty(exports,"DOOM_DELEGATION_REQUESTED_EVENT",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_REQUESTED_EVENT}}),Object.defineProperty(exports,"DOOM_DELEGATION_SERVICE",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_SERVICE}}),Object.defineProperty(exports,"DOOM_DELEGATION_STARTED_EVENT",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_STARTED_EVENT}}),Object.defineProperty(exports,"DOOM_DELEGATION_UPDATED_EVENT",{enumerable:!0,get:function(){return e.DOOM_DELEGATION_UPDATED_EVENT}}),Object.defineProperty(exports,"DelegationAcceptedSchema",{enumerable:!0,get:function(){return e.DelegationAcceptedSchema}}),Object.defineProperty(exports,"DelegationCancelSchema",{enumerable:!0,get:function(){return e.DelegationCancelSchema}}),Object.defineProperty(exports,"DelegationRequestSchema",{enumerable:!0,get:function(){return e.DelegationRequestSchema}}),Object.defineProperty(exports,"DelegationResultSchema",{enumerable:!0,get:function(){return e.DelegationResultSchema}}),Object.defineProperty(exports,"DelegationStartedSchema",{enumerable:!0,get:function(){return e.DelegationStartedSchema}}),Object.defineProperty(exports,"DelegationStatusSchema",{enumerable:!0,get:function(){return e.DelegationStatusSchema}}),Object.defineProperty(exports,"DelegationUpdateSchema",{enumerable:!0,get:function(){return e.DelegationUpdateSchema}}),Object.defineProperty(exports,"readDoomDelegationService",{enumerable:!0,get:function(){return e.readDoomDelegationService}});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DOOM_DELEGATION_ACCEPTED_EVENT, DOOM_DELEGATION_CANCELLED_EVENT, DOOM_DELEGATION_FINISHED_EVENT, DOOM_DELEGATION_REQUESTED_EVENT, DOOM_DELEGATION_SERVICE, DOOM_DELEGATION_STARTED_EVENT, DOOM_DELEGATION_UPDATED_EVENT, DelegationAccepted, DelegationAcceptedSchema, DelegationCancel, DelegationCancelSchema, DelegationRequest, DelegationRequestSchema, DelegationResult, DelegationResultSchema, DelegationStarted, DelegationStartedSchema, DelegationStatus, DelegationStatusSchema, DelegationUpdate, DelegationUpdateSchema, DoomDelegationService, readDoomDelegationService } from "@agimon-ai/doompi-core/delegation";
|
|
2
|
+
export { DOOM_DELEGATION_ACCEPTED_EVENT, DOOM_DELEGATION_CANCELLED_EVENT, DOOM_DELEGATION_FINISHED_EVENT, DOOM_DELEGATION_REQUESTED_EVENT, DOOM_DELEGATION_SERVICE, DOOM_DELEGATION_STARTED_EVENT, DOOM_DELEGATION_UPDATED_EVENT, type DelegationAccepted, DelegationAcceptedSchema, type DelegationCancel, DelegationCancelSchema, type DelegationRequest, DelegationRequestSchema, type DelegationResult, DelegationResultSchema, type DelegationStarted, DelegationStartedSchema, type DelegationStatus, DelegationStatusSchema, type DelegationUpdate, DelegationUpdateSchema, type DoomDelegationService, readDoomDelegationService };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DOOM_DELEGATION_ACCEPTED_EVENT, DOOM_DELEGATION_CANCELLED_EVENT, DOOM_DELEGATION_FINISHED_EVENT, DOOM_DELEGATION_REQUESTED_EVENT, DOOM_DELEGATION_SERVICE, DOOM_DELEGATION_STARTED_EVENT, DOOM_DELEGATION_UPDATED_EVENT, DelegationAccepted, DelegationAcceptedSchema, DelegationCancel, DelegationCancelSchema, DelegationRequest, DelegationRequestSchema, DelegationResult, DelegationResultSchema, DelegationStarted, DelegationStartedSchema, DelegationStatus, DelegationStatusSchema, DelegationUpdate, DelegationUpdateSchema, DoomDelegationService, readDoomDelegationService } from "@agimon-ai/doompi-core/delegation";
|
|
2
|
+
export { DOOM_DELEGATION_ACCEPTED_EVENT, DOOM_DELEGATION_CANCELLED_EVENT, DOOM_DELEGATION_FINISHED_EVENT, DOOM_DELEGATION_REQUESTED_EVENT, DOOM_DELEGATION_SERVICE, DOOM_DELEGATION_STARTED_EVENT, DOOM_DELEGATION_UPDATED_EVENT, type DelegationAccepted, DelegationAcceptedSchema, type DelegationCancel, DelegationCancelSchema, type DelegationRequest, DelegationRequestSchema, type DelegationResult, DelegationResultSchema, type DelegationStarted, DelegationStartedSchema, type DelegationStatus, DelegationStatusSchema, type DelegationUpdate, DelegationUpdateSchema, type DoomDelegationService, readDoomDelegationService };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DOOM_DELEGATION_ACCEPTED_EVENT as e,DOOM_DELEGATION_CANCELLED_EVENT as t,DOOM_DELEGATION_FINISHED_EVENT as n,DOOM_DELEGATION_REQUESTED_EVENT as r,DOOM_DELEGATION_SERVICE as i,DOOM_DELEGATION_STARTED_EVENT as a,DOOM_DELEGATION_UPDATED_EVENT as o,DelegationAcceptedSchema as s,DelegationCancelSchema as c,DelegationRequestSchema as l,DelegationResultSchema as u,DelegationStartedSchema as d,DelegationStatusSchema as f,DelegationUpdateSchema as p,readDoomDelegationService as m}from"@agimon-ai/doompi-core/delegation";export{e as DOOM_DELEGATION_ACCEPTED_EVENT,t as DOOM_DELEGATION_CANCELLED_EVENT,n as DOOM_DELEGATION_FINISHED_EVENT,r as DOOM_DELEGATION_REQUESTED_EVENT,i as DOOM_DELEGATION_SERVICE,a as DOOM_DELEGATION_STARTED_EVENT,o as DOOM_DELEGATION_UPDATED_EVENT,s as DelegationAcceptedSchema,c as DelegationCancelSchema,l as DelegationRequestSchema,u as DelegationResultSchema,d as DelegationStartedSchema,f as DelegationStatusSchema,p as DelegationUpdateSchema,m as readDoomDelegationService};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./schemas/team/delegation.cjs");exports.SUBAGENT_DELEGATION_CANCEL_EVENT=e.SUBAGENT_DELEGATION_CANCEL_EVENT,exports.SUBAGENT_DELEGATION_PROTOCOL_VERSION=e.SUBAGENT_DELEGATION_PROTOCOL_VERSION,exports.SUBAGENT_DELEGATION_REQUEST_EVENT=e.SUBAGENT_DELEGATION_REQUEST_EVENT,exports.SUBAGENT_DELEGATION_RESPONSE_EVENT=e.SUBAGENT_DELEGATION_RESPONSE_EVENT,exports.SUBAGENT_DELEGATION_STARTED_EVENT=e.SUBAGENT_DELEGATION_STARTED_EVENT,exports.SUBAGENT_DELEGATION_UPDATE_EVENT=e.SUBAGENT_DELEGATION_UPDATE_EVENT,exports.SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION=e.SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION;var t=require("@agimon-ai/doompi-core/delegation");Object.keys(t).forEach(function(e){e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SUBAGENT_DELEGATION_CANCEL_EVENT, SUBAGENT_DELEGATION_PROTOCOL_VERSION, SUBAGENT_DELEGATION_REQUEST_EVENT, SUBAGENT_DELEGATION_RESPONSE_EVENT, SUBAGENT_DELEGATION_STARTED_EVENT, SUBAGENT_DELEGATION_UPDATE_EVENT, SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION, SubagentDelegationAcceptance, SubagentDelegationAcceptanceConfig, SubagentDelegationAcceptanceCriterion, SubagentDelegationAcceptanceEvidence, SubagentDelegationAcceptanceResult, SubagentDelegationAcceptanceReview, SubagentDelegationAcceptanceStatus, SubagentDelegationAcceptanceVerifyCommand, SubagentDelegationAgentContract, SubagentDelegationCancel, SubagentDelegationEffectsResult, SubagentDelegationExecutionResult, SubagentDelegationJsonSchemaObject, SubagentDelegationRequest, SubagentDelegationResponse, SubagentDelegationReviewResult, SubagentDelegationStarted, SubagentDelegationStatus, SubagentDelegationToolBudget, SubagentDelegationTurnBudget, SubagentDelegationUpdate, SubagentDelegationV2Cancel, SubagentDelegationV2InvalidResponse, SubagentDelegationV2Request, SubagentDelegationV2Response, SubagentDelegationV2ResultRequest, SubagentDelegationV2Started, SubagentDelegationV2Status, SubagentDelegationV2TerminalResponse, SubagentDelegationV2Thinking, SubagentDelegationV2Update, SubagentDelegationV2Usage, SubagentDelegationV2Value } from "./schemas/team/delegation.cjs";
|
|
2
|
+
export * from "@agimon-ai/doompi-core/delegation";
|
|
3
|
+
export { SUBAGENT_DELEGATION_CANCEL_EVENT, SUBAGENT_DELEGATION_PROTOCOL_VERSION, SUBAGENT_DELEGATION_REQUEST_EVENT, SUBAGENT_DELEGATION_RESPONSE_EVENT, SUBAGENT_DELEGATION_STARTED_EVENT, SUBAGENT_DELEGATION_UPDATE_EVENT, SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION, SubagentDelegationAcceptance, SubagentDelegationAcceptanceConfig, SubagentDelegationAcceptanceCriterion, SubagentDelegationAcceptanceEvidence, SubagentDelegationAcceptanceResult, SubagentDelegationAcceptanceReview, SubagentDelegationAcceptanceStatus, SubagentDelegationAcceptanceVerifyCommand, SubagentDelegationAgentContract, SubagentDelegationCancel, SubagentDelegationEffectsResult, SubagentDelegationExecutionResult, SubagentDelegationJsonSchemaObject, SubagentDelegationRequest, SubagentDelegationResponse, SubagentDelegationReviewResult, SubagentDelegationStarted, SubagentDelegationStatus, SubagentDelegationToolBudget, SubagentDelegationTurnBudget, SubagentDelegationUpdate, SubagentDelegationV2Cancel, SubagentDelegationV2InvalidResponse, SubagentDelegationV2Request, SubagentDelegationV2Response, SubagentDelegationV2ResultRequest, SubagentDelegationV2Started, SubagentDelegationV2Status, SubagentDelegationV2TerminalResponse, SubagentDelegationV2Thinking, SubagentDelegationV2Update, SubagentDelegationV2Usage, SubagentDelegationV2Value };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SUBAGENT_DELEGATION_CANCEL_EVENT, SUBAGENT_DELEGATION_PROTOCOL_VERSION, SUBAGENT_DELEGATION_REQUEST_EVENT, SUBAGENT_DELEGATION_RESPONSE_EVENT, SUBAGENT_DELEGATION_STARTED_EVENT, SUBAGENT_DELEGATION_UPDATE_EVENT, SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION, SubagentDelegationAcceptance, SubagentDelegationAcceptanceConfig, SubagentDelegationAcceptanceCriterion, SubagentDelegationAcceptanceEvidence, SubagentDelegationAcceptanceResult, SubagentDelegationAcceptanceReview, SubagentDelegationAcceptanceStatus, SubagentDelegationAcceptanceVerifyCommand, SubagentDelegationAgentContract, SubagentDelegationCancel, SubagentDelegationEffectsResult, SubagentDelegationExecutionResult, SubagentDelegationJsonSchemaObject, SubagentDelegationRequest, SubagentDelegationResponse, SubagentDelegationReviewResult, SubagentDelegationStarted, SubagentDelegationStatus, SubagentDelegationToolBudget, SubagentDelegationTurnBudget, SubagentDelegationUpdate, SubagentDelegationV2Cancel, SubagentDelegationV2InvalidResponse, SubagentDelegationV2Request, SubagentDelegationV2Response, SubagentDelegationV2ResultRequest, SubagentDelegationV2Started, SubagentDelegationV2Status, SubagentDelegationV2TerminalResponse, SubagentDelegationV2Thinking, SubagentDelegationV2Update, SubagentDelegationV2Usage, SubagentDelegationV2Value } from "./schemas/team/delegation.mjs";
|
|
2
|
+
export * from "@agimon-ai/doompi-core/delegation";
|
|
3
|
+
export { SUBAGENT_DELEGATION_CANCEL_EVENT, SUBAGENT_DELEGATION_PROTOCOL_VERSION, SUBAGENT_DELEGATION_REQUEST_EVENT, SUBAGENT_DELEGATION_RESPONSE_EVENT, SUBAGENT_DELEGATION_STARTED_EVENT, SUBAGENT_DELEGATION_UPDATE_EVENT, SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION, SubagentDelegationAcceptance, SubagentDelegationAcceptanceConfig, SubagentDelegationAcceptanceCriterion, SubagentDelegationAcceptanceEvidence, SubagentDelegationAcceptanceResult, SubagentDelegationAcceptanceReview, SubagentDelegationAcceptanceStatus, SubagentDelegationAcceptanceVerifyCommand, SubagentDelegationAgentContract, SubagentDelegationCancel, SubagentDelegationEffectsResult, SubagentDelegationExecutionResult, SubagentDelegationJsonSchemaObject, SubagentDelegationRequest, SubagentDelegationResponse, SubagentDelegationReviewResult, SubagentDelegationStarted, SubagentDelegationStatus, SubagentDelegationToolBudget, SubagentDelegationTurnBudget, SubagentDelegationUpdate, SubagentDelegationV2Cancel, SubagentDelegationV2InvalidResponse, SubagentDelegationV2Request, SubagentDelegationV2Response, SubagentDelegationV2ResultRequest, SubagentDelegationV2Started, SubagentDelegationV2Status, SubagentDelegationV2TerminalResponse, SubagentDelegationV2Thinking, SubagentDelegationV2Update, SubagentDelegationV2Usage, SubagentDelegationV2Value };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SUBAGENT_DELEGATION_CANCEL_EVENT as e,SUBAGENT_DELEGATION_PROTOCOL_VERSION as t,SUBAGENT_DELEGATION_REQUEST_EVENT as n,SUBAGENT_DELEGATION_RESPONSE_EVENT as r,SUBAGENT_DELEGATION_STARTED_EVENT as i,SUBAGENT_DELEGATION_UPDATE_EVENT as a,SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION as o}from"./schemas/team/delegation.mjs";export*from"@agimon-ai/doompi-core/delegation";export{e as SUBAGENT_DELEGATION_CANCEL_EVENT,t as SUBAGENT_DELEGATION_PROTOCOL_VERSION,n as SUBAGENT_DELEGATION_REQUEST_EVENT,r as SUBAGENT_DELEGATION_RESPONSE_EVENT,i as SUBAGENT_DELEGATION_STARTED_EVENT,a as SUBAGENT_DELEGATION_UPDATE_EVENT,o as SUBAGENT_DELEGATION_V2_PROTOCOL_VERSION};
|
package/dist/env.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./types/environment.cjs");let t=require("@agimon-ai/doompi-core/child-process");exports.CHILD_TOOL_DIAGNOSTIC_PATH_ENV=e.CHILD_TOOL_DIAGNOSTIC_PATH_ENV,exports.DOOMPI_CHILD_EXTENSIONS_ENV=e.DOOMPI_CHILD_EXTENSIONS_ENV,exports.DOOMPI_SKILL_DIRS_ENV=e.DOOMPI_SKILL_DIRS_ENV,exports.EXTRA_AGENT_DIRS_ENV=e.EXTRA_AGENT_DIRS_ENV,exports.EXTRA_SKILL_DIRS_ENV=e.EXTRA_SKILL_DIRS_ENV,exports.INHERIT_PROJECT_CONTEXT_ENV=e.INHERIT_PROJECT_CONTEXT_ENV,exports.INHERIT_SKILLS_ENV=e.INHERIT_SKILLS_ENV,exports.MAX_SPAWNS_PER_SESSION_ENV=e.MAX_SPAWNS_PER_SESSION_ENV,exports.MCP_DIRECT_CHILD_TOOLS_ENV=e.MCP_DIRECT_CHILD_TOOLS_ENV,exports.MCP_DIRECT_TOOLS_ENV=e.MCP_DIRECT_TOOLS_ENV,exports.PI_CODING_AGENT_PACKAGE_ROOT_ENV=e.PI_CODING_AGENT_PACKAGE_ROOT_ENV,exports.PI_INTERCOM_SESSION_ID_ENV=e.PI_INTERCOM_SESSION_ID_ENV,exports.PI_INTERCOM_STABLE_ID_ENV=e.PI_INTERCOM_STABLE_ID_ENV,exports.PI_RUNTIME_NAME=e.PI_RUNTIME_NAME,exports.PI_SUBAGENT_PI_BINARY_ENV=e.PI_SUBAGENT_PI_BINARY_ENV,exports.REQUIRED_CHILD_TOOLS_ENV=e.REQUIRED_CHILD_TOOLS_ENV,exports.STRUCTURED_OUTPUT_CAPTURE_ENV=e.STRUCTURED_OUTPUT_CAPTURE_ENV,exports.STRUCTURED_OUTPUT_SCHEMA_ENV=e.STRUCTURED_OUTPUT_SCHEMA_ENV,exports.SUBAGENT_CAPABILITY_CEILING_ENV=e.SUBAGENT_CAPABILITY_CEILING_ENV,exports.SUBAGENT_CHILD_AGENT_ENV=e.SUBAGENT_CHILD_AGENT_ENV,Object.defineProperty(exports,"SUBAGENT_CHILD_ENV",{enumerable:!0,get:function(){return t.SUBAGENT_CHILD_ENV}}),exports.SUBAGENT_CHILD_INDEX_ENV=e.SUBAGENT_CHILD_INDEX_ENV,exports.SUBAGENT_FANOUT_CHILD_ENV=e.SUBAGENT_FANOUT_CHILD_ENV,exports.SUBAGENT_INTERCOM_SESSION_NAME_ENV=e.SUBAGENT_INTERCOM_SESSION_NAME_ENV,exports.SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV=e.SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV,exports.SUBAGENT_PARENT_CHILD_INDEX_ENV=e.SUBAGENT_PARENT_CHILD_INDEX_ENV,exports.SUBAGENT_PARENT_CONTROL_INBOX_ENV=e.SUBAGENT_PARENT_CONTROL_INBOX_ENV,exports.SUBAGENT_PARENT_DEPTH_ENV=e.SUBAGENT_PARENT_DEPTH_ENV,exports.SUBAGENT_PARENT_EVENT_SINK_ENV=e.SUBAGENT_PARENT_EVENT_SINK_ENV,exports.SUBAGENT_PARENT_PATH_ENV=e.SUBAGENT_PARENT_PATH_ENV,exports.SUBAGENT_PARENT_ROOT_RUN_ID_ENV=e.SUBAGENT_PARENT_ROOT_RUN_ID_ENV,exports.SUBAGENT_PARENT_RUN_ID_ENV=e.SUBAGENT_PARENT_RUN_ID_ENV,Object.defineProperty(exports,"SUBAGENT_PARENT_SESSION_ENV",{enumerable:!0,get:function(){return t.SUBAGENT_PARENT_SESSION_ENV}}),exports.SUBAGENT_PROTECTED_PARENT_PIDS_ENV=e.SUBAGENT_PROTECTED_PARENT_PIDS_ENV,Object.defineProperty(exports,"SUBAGENT_ROOT_SESSION_ENV",{enumerable:!0,get:function(){return t.SUBAGENT_ROOT_SESSION_ENV}}),exports.SUBAGENT_RUN_ID_ENV=e.SUBAGENT_RUN_ID_ENV,exports.SUBAGENT_STEER_ACK_DIR_ENV=e.SUBAGENT_STEER_ACK_DIR_ENV,exports.SUBAGENT_STEER_CAPABILITY_ENV=e.SUBAGENT_STEER_CAPABILITY_ENV,exports.SUBAGENT_STEER_INBOX_ENV=e.SUBAGENT_STEER_INBOX_ENV,exports.TOOL_BUDGET_ENV=e.TOOL_BUDGET_ENV,exports.TOOL_BUDGET_ZERO_AUTH_ENV=e.TOOL_BUDGET_ZERO_AUTH_ENV,exports.WORKTREE_BASE_DIR_ENV=e.WORKTREE_BASE_DIR_ENV,exports.decodeProtectedParentProcessIds=e.decodeProtectedParentProcessIds,exports.runtimeBinaryEnvVar=e.runtimeBinaryEnvVar;
|
package/dist/env.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV,
|
|
2
|
-
export { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV,
|
|
1
|
+
import { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV, TOOL_BUDGET_ENV, TOOL_BUDGET_ZERO_AUTH_ENV, WORKTREE_BASE_DIR_ENV, decodeProtectedParentProcessIds, runtimeBinaryEnvVar } from "./types/environment.cjs";
|
|
2
|
+
export { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV, TOOL_BUDGET_ENV, TOOL_BUDGET_ZERO_AUTH_ENV, WORKTREE_BASE_DIR_ENV, decodeProtectedParentProcessIds, runtimeBinaryEnvVar };
|
package/dist/env.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV,
|
|
2
|
-
export { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV,
|
|
1
|
+
import { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV, TOOL_BUDGET_ENV, TOOL_BUDGET_ZERO_AUTH_ENV, WORKTREE_BASE_DIR_ENV, decodeProtectedParentProcessIds, runtimeBinaryEnvVar } from "./types/environment.mjs";
|
|
2
|
+
export { CHILD_TOOL_DIAGNOSTIC_PATH_ENV, DOOMPI_CHILD_EXTENSIONS_ENV, DOOMPI_SKILL_DIRS_ENV, EXTRA_AGENT_DIRS_ENV, EXTRA_SKILL_DIRS_ENV, INHERIT_PROJECT_CONTEXT_ENV, INHERIT_SKILLS_ENV, MAX_SPAWNS_PER_SESSION_ENV, MCP_DIRECT_CHILD_TOOLS_ENV, MCP_DIRECT_TOOLS_ENV, PI_CODING_AGENT_PACKAGE_ROOT_ENV, PI_INTERCOM_SESSION_ID_ENV, PI_INTERCOM_STABLE_ID_ENV, PI_RUNTIME_NAME, PI_SUBAGENT_PI_BINARY_ENV, REQUIRED_CHILD_TOOLS_ENV, STRUCTURED_OUTPUT_CAPTURE_ENV, STRUCTURED_OUTPUT_SCHEMA_ENV, SUBAGENT_CAPABILITY_CEILING_ENV, SUBAGENT_CHILD_AGENT_ENV, SUBAGENT_CHILD_ENV, SUBAGENT_CHILD_INDEX_ENV, SUBAGENT_FANOUT_CHILD_ENV, SUBAGENT_INTERCOM_SESSION_NAME_ENV, SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV, SUBAGENT_PARENT_CHILD_INDEX_ENV, SUBAGENT_PARENT_CONTROL_INBOX_ENV, SUBAGENT_PARENT_DEPTH_ENV, SUBAGENT_PARENT_EVENT_SINK_ENV, SUBAGENT_PARENT_PATH_ENV, SUBAGENT_PARENT_ROOT_RUN_ID_ENV, SUBAGENT_PARENT_RUN_ID_ENV, SUBAGENT_PARENT_SESSION_ENV, SUBAGENT_PROTECTED_PARENT_PIDS_ENV, SUBAGENT_ROOT_SESSION_ENV, SUBAGENT_RUN_ID_ENV, SUBAGENT_STEER_ACK_DIR_ENV, SUBAGENT_STEER_CAPABILITY_ENV, SUBAGENT_STEER_INBOX_ENV, TOOL_BUDGET_ENV, TOOL_BUDGET_ZERO_AUTH_ENV, WORKTREE_BASE_DIR_ENV, decodeProtectedParentProcessIds, runtimeBinaryEnvVar };
|
package/dist/env.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{CHILD_TOOL_DIAGNOSTIC_PATH_ENV as e,DOOMPI_CHILD_EXTENSIONS_ENV as t,DOOMPI_SKILL_DIRS_ENV as n,EXTRA_AGENT_DIRS_ENV as r,EXTRA_SKILL_DIRS_ENV as i,INHERIT_PROJECT_CONTEXT_ENV as a,INHERIT_SKILLS_ENV as o,MAX_SPAWNS_PER_SESSION_ENV as s,MCP_DIRECT_CHILD_TOOLS_ENV as c,MCP_DIRECT_TOOLS_ENV as l,PI_CODING_AGENT_PACKAGE_ROOT_ENV as u,PI_INTERCOM_SESSION_ID_ENV as d,PI_INTERCOM_STABLE_ID_ENV as f,PI_RUNTIME_NAME as p,PI_SUBAGENT_PI_BINARY_ENV as m,REQUIRED_CHILD_TOOLS_ENV as h,STRUCTURED_OUTPUT_CAPTURE_ENV as g,STRUCTURED_OUTPUT_SCHEMA_ENV as _,SUBAGENT_CAPABILITY_CEILING_ENV as v,SUBAGENT_CHILD_AGENT_ENV as y,SUBAGENT_CHILD_ENV as b,SUBAGENT_CHILD_INDEX_ENV as x,SUBAGENT_FANOUT_CHILD_ENV as S,SUBAGENT_INTERCOM_SESSION_NAME_ENV as C,SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV as w,SUBAGENT_PARENT_CHILD_INDEX_ENV as T,SUBAGENT_PARENT_CONTROL_INBOX_ENV as E,SUBAGENT_PARENT_DEPTH_ENV as D,SUBAGENT_PARENT_EVENT_SINK_ENV as O,SUBAGENT_PARENT_PATH_ENV as k,SUBAGENT_PARENT_ROOT_RUN_ID_ENV as A,SUBAGENT_PARENT_RUN_ID_ENV as j,SUBAGENT_PARENT_SESSION_ENV as M,SUBAGENT_PROTECTED_PARENT_PIDS_ENV as N,SUBAGENT_ROOT_SESSION_ENV as P,SUBAGENT_RUN_ID_ENV as F,SUBAGENT_STEER_ACK_DIR_ENV as I,SUBAGENT_STEER_CAPABILITY_ENV as L,SUBAGENT_STEER_INBOX_ENV as R,
|
|
2
|
-
//# sourceMappingURL=env.mjs.map
|
|
1
|
+
import{CHILD_TOOL_DIAGNOSTIC_PATH_ENV as e,DOOMPI_CHILD_EXTENSIONS_ENV as t,DOOMPI_SKILL_DIRS_ENV as n,EXTRA_AGENT_DIRS_ENV as r,EXTRA_SKILL_DIRS_ENV as i,INHERIT_PROJECT_CONTEXT_ENV as a,INHERIT_SKILLS_ENV as o,MAX_SPAWNS_PER_SESSION_ENV as s,MCP_DIRECT_CHILD_TOOLS_ENV as c,MCP_DIRECT_TOOLS_ENV as l,PI_CODING_AGENT_PACKAGE_ROOT_ENV as u,PI_INTERCOM_SESSION_ID_ENV as d,PI_INTERCOM_STABLE_ID_ENV as f,PI_RUNTIME_NAME as p,PI_SUBAGENT_PI_BINARY_ENV as m,REQUIRED_CHILD_TOOLS_ENV as h,STRUCTURED_OUTPUT_CAPTURE_ENV as g,STRUCTURED_OUTPUT_SCHEMA_ENV as _,SUBAGENT_CAPABILITY_CEILING_ENV as v,SUBAGENT_CHILD_AGENT_ENV as y,SUBAGENT_CHILD_ENV as b,SUBAGENT_CHILD_INDEX_ENV as x,SUBAGENT_FANOUT_CHILD_ENV as S,SUBAGENT_INTERCOM_SESSION_NAME_ENV as C,SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV as w,SUBAGENT_PARENT_CHILD_INDEX_ENV as T,SUBAGENT_PARENT_CONTROL_INBOX_ENV as E,SUBAGENT_PARENT_DEPTH_ENV as D,SUBAGENT_PARENT_EVENT_SINK_ENV as O,SUBAGENT_PARENT_PATH_ENV as k,SUBAGENT_PARENT_ROOT_RUN_ID_ENV as A,SUBAGENT_PARENT_RUN_ID_ENV as j,SUBAGENT_PARENT_SESSION_ENV as M,SUBAGENT_PROTECTED_PARENT_PIDS_ENV as N,SUBAGENT_ROOT_SESSION_ENV as P,SUBAGENT_RUN_ID_ENV as F,SUBAGENT_STEER_ACK_DIR_ENV as I,SUBAGENT_STEER_CAPABILITY_ENV as L,SUBAGENT_STEER_INBOX_ENV as R,TOOL_BUDGET_ENV as z,TOOL_BUDGET_ZERO_AUTH_ENV as B,WORKTREE_BASE_DIR_ENV as V,decodeProtectedParentProcessIds as H,runtimeBinaryEnvVar as U}from"./types/environment.mjs";export{e as CHILD_TOOL_DIAGNOSTIC_PATH_ENV,t as DOOMPI_CHILD_EXTENSIONS_ENV,n as DOOMPI_SKILL_DIRS_ENV,r as EXTRA_AGENT_DIRS_ENV,i as EXTRA_SKILL_DIRS_ENV,a as INHERIT_PROJECT_CONTEXT_ENV,o as INHERIT_SKILLS_ENV,s as MAX_SPAWNS_PER_SESSION_ENV,c as MCP_DIRECT_CHILD_TOOLS_ENV,l as MCP_DIRECT_TOOLS_ENV,u as PI_CODING_AGENT_PACKAGE_ROOT_ENV,d as PI_INTERCOM_SESSION_ID_ENV,f as PI_INTERCOM_STABLE_ID_ENV,p as PI_RUNTIME_NAME,m as PI_SUBAGENT_PI_BINARY_ENV,h as REQUIRED_CHILD_TOOLS_ENV,g as STRUCTURED_OUTPUT_CAPTURE_ENV,_ as STRUCTURED_OUTPUT_SCHEMA_ENV,v as SUBAGENT_CAPABILITY_CEILING_ENV,y as SUBAGENT_CHILD_AGENT_ENV,b as SUBAGENT_CHILD_ENV,x as SUBAGENT_CHILD_INDEX_ENV,S as SUBAGENT_FANOUT_CHILD_ENV,C as SUBAGENT_INTERCOM_SESSION_NAME_ENV,w as SUBAGENT_PARENT_CAPABILITY_TOKEN_ENV,T as SUBAGENT_PARENT_CHILD_INDEX_ENV,E as SUBAGENT_PARENT_CONTROL_INBOX_ENV,D as SUBAGENT_PARENT_DEPTH_ENV,O as SUBAGENT_PARENT_EVENT_SINK_ENV,k as SUBAGENT_PARENT_PATH_ENV,A as SUBAGENT_PARENT_ROOT_RUN_ID_ENV,j as SUBAGENT_PARENT_RUN_ID_ENV,M as SUBAGENT_PARENT_SESSION_ENV,N as SUBAGENT_PROTECTED_PARENT_PIDS_ENV,P as SUBAGENT_ROOT_SESSION_ENV,F as SUBAGENT_RUN_ID_ENV,I as SUBAGENT_STEER_ACK_DIR_ENV,L as SUBAGENT_STEER_CAPABILITY_ENV,R as SUBAGENT_STEER_INBOX_ENV,z as TOOL_BUDGET_ENV,B as TOOL_BUDGET_ZERO_AUTH_ENV,V as WORKTREE_BASE_DIR_ENV,H as decodeProtectedParentProcessIds,U as runtimeBinaryEnvVar};
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../src/adapters/pi/standard.cjs");exports.activateTeamExtension=e.activateTeamExtension,exports.default=e.activateTeamExtension;
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../services/teamSnapshot/index.cjs"),t=require("../services/sessionPaths/index.cjs"),n=require("../services/modelResolution/index.cjs"),r=require("../services/modelFallback/index.cjs"),i=require("../services/spawnPlan/index.cjs"),a=require("../controllers/slashCommands.cjs"),o=require("../services/config/index.cjs"),s=require("../services/delegationBridge/index.cjs"),c=require("../services/fablePlanBridge/index.cjs"),l=require("../services/orchestratorPrompt/index.cjs"),ee=require("../services/suspendedRuns/index.cjs"),te=require("../services/sessionLifecycle/index.cjs"),u=require("../services/subagentTool/index.cjs"),d=require("../services/teamCollaboration/index.cjs"),f=require("../services/teamRuntime/index.cjs"),p=require("../tools/intercom.cjs"),m=require("../tools/subagent.cjs"),h=require("../tui/completionNotice.cjs"),g=require("../tui/contributions.cjs"),ne=require("../tui/slashRunNotice.cjs"),re=require("../tui/subagentToolRender.cjs");let ie=require("@agimon-ai/doompi-core/child-process"),ae=require("@agimon-ai/doompi-core/child"),_=require("@agimon-ai/doompi-core/context-contributions"),v=require("@agimon-ai/doompi-core/cordis-host"),y=require("@agimon-ai/doompi-core/mcp-tool-resolver"),b=require("@agimon-ai/doompi-core/pi-extension"),x=require("@agimon-ai/doompi-core/readiness"),S=require("@agimon-ai/doompi-core/ui-hub"),oe=require("@agimon-ai/doompi-telemetry");const C=`unknown`,w=`@agimon-ai/doompi-team`;function se(e){let t=e.diagnostics.join(`; `),n=(e.error?.message??t)||`Initialization did not complete.`;return`${e.packageId} initialization ${e.state}: ${n}`}function ce(e,t,n,r,i,a,s){return{spawnPlanner:n,tracker:r,scheduler:i,discovery:e,skills:t,management:a,loadConfig:()=>o.loadConfig().config,environment:s}}function le(e,t){if(t.kind===`requested`){let{event:n}=t;e.recordEvent(`doom_team.delegation_requested`,{"agent.name":n.agent,"task.id":n.taskId,mode:n.runMode??`foreground`})}else if(t.kind===`started`){let{event:n}=t;e.recordEvent(`doom_team.child_started`,{"run.id":n.runId,outcome:`started`})}else if(t.kind===`updated`){let{event:n}=t;e.recordEvent(`doom_team.delegation_updated`,{"run.id":n.runId,"team.tool_count":n.toolCount??0,"team.duration_ms":n.durationMs??0,"team.token_count":n.tokens??0,outcome:n.status??`updated`})}else if(t.kind===`finished`){let{event:n}=t;e.recordEvent(`doom_team.delegation_finished`,{"run.id":n.runId,"team.tool_count":n.toolCount??0,"team.duration_ms":n.durationMs??0,outcome:n.status})}else e.recordEvent(`doom_team.delegation_cancelled`,{outcome:`cancelled`})}const T=(0,b.definePiExtension)(w,({context:T,pi:E,signal:ue})=>{let D,O={...process.env},de=e=>(D??=(0,oe.createDoomTelemetry)({serviceName:`doom-team`,packageName:`@agimon-ai/doompi-team`,cwd:e.cwd,env:process.env,enableLogs:!0,enableTraces:!0}),D),{subagentTool:fe,teamChannel:pe,pollScheduler:k,asyncJobTracker:A,nativeRuns:j,subagentWaiter:M,asyncSubagentSpawner:me,discovery:N,skills:P,spawnPlanner:F,completionNotifier:I,dispose:he,management:L,capabilityPolicies:R,mcpToolResolver:ge}=f.createTeamExtensionRuntime((e,t)=>{D?.recordEvent(e,t)},{environment:O,childSessions:{get:()=>(0,ae.readDoomChildSessionService)(K?.cordis??T)}}),z=!0,B=0,V,H,U,W,G,K,_e=e=>{let t=K,n=e.sessionManager.getSessionId();return(t?.service.context.sessionManager===e.sessionManager&&t.service.sessionId===n?(0,x.readDoomReadinessCoordinator)(t.cordis):void 0)||(W??=(0,x.createDoomReadinessCoordinator)({notify:e=>{let t=se(e);G?.hasUI?G.ui.notify(t,`warning`):process.emitWarning(t)}}),W)},q=async(e,t)=>{t?.throwIfAborted();let n=H;if(!n)throw Error(`Doom Team session initialization has not started.`);if(U!==e.sessionManager)throw Error(`Doom Team readiness belongs to a stale Pi session.`);let r=await n;if(t?.throwIfAborted(),await r.wait(t?{signal:t}:void 0),!z||ue.aborted||n!==H||U!==e.sessionManager)throw Error(`Doom Team readiness belongs to a stale extension generation.`)},J=pe.createRuntime(E),Y,ve=d.createTeamCollaborationMount(),X,Z,ye=s.createDelegationBridge({planner:F,management:L,waiter:M,scheduler:k,tracker:A,loadConfig:()=>o.loadConfig().config}),be=c.createFablePlanBridge({spawner:me,waiter:M,management:L,policies:R,report:(e,t)=>{D?.recordEvent(e,t)}}),xe=e=>{if(z&&l.shouldInjectOrchestratorPrompt(o.loadConfig().config))return{systemPrompt:l.appendOrchestratorPrompt(e.systemPrompt)}},Q={baseCwd:void 0},Se=ce(N,P,F,A,k,L,O),Ce=[...a.createSlashCommands(E,Q,Se),...g.createAgentListCommand({discovery:N,skills:P,policies:R,launchAgent:(e,t)=>a.startSingleAgentRun(E,e,Q,Se,{agent:t.agent,task:t.task,fork:t.context===`fork`})}),...g.createFleetCommand({scheduler:k,tracker:A,management:L,readTranscriptPage:(e,t,n)=>{let r=(0,ae.readDoomChildSessionService)(K?.cordis??T);return r?.readTranscriptPage?r.readTranscriptPage(e,t,n):Promise.reject(Error(`The Doom child-session transcript reader is unavailable.`))},environment:O})],we=async()=>{let e=[],t=X;X=void 0;try{await t?.dispose()}catch(t){e.push(t)}for(let t of[()=>R.clear(),()=>ye.abandonAll(),()=>be.abandonAll()])try{t()}catch(t){e.push(t)}if(e.length!==0)return e.length===1&&e[0]instanceof Error?e[0]:AggregateError(e,`Team session cleanup failed.`)},Te=(e,a)=>{if(!z)return;let o=++B,s=H;V?.abort(Error(`Doom Team session initialization was superseded.`));let c=new AbortController;V=c,U=a.sessionManager,G=a;let l=de(a);l.recordEvent(`doom_team.session_started`,{"team.root_session":(0,ie.resolveRootSessionId)(a.sessionManager.getSessionId(),O)===a.sessionManager.getSessionId()});let u=a.sessionManager.getSessionId(),d=t.createSessionScope((0,ie.resolveRootSessionId)(u,O)),f=Z;f&&L.releaseSessionScope(f),Z=d,L.bindSessionScope(d);let p=we(),m=_e(a),h=()=>z&&o===B&&U===a.sessionManager&&!c.signal.aborted;H=(async()=>{if(s&&await Promise.allSettled([s.then(e=>e.wait())]),!h())throw Error(`Doom Team session initialization was superseded.`);return m.start(w,`${u}:${o}`,async e=>{e.throwIfAborted();let t=await p;if(t)throw t;if(!h())return{value:void 0};let o=await te.openScopeAsync(d);if(e.throwIfAborted(),!h())return{value:void 0};if(o.suspended.length>0&&a.hasUI){let t=await ee.formatSuspendedRunsAsync(o.suspended);if(e.throwIfAborted(),!h())return{value:void 0};a.ui.notify(t,`info`)}l.recordEvent(`doom_team.runs_restored`,{"team.suspended_count":o.suspended.length,"team.pruned_count":o.pruned.length,"team.reaped_count":o.reaped,outcome:`reported`});let s=r.normalizeParentModel(a.model),c=await ve.mount({session:{sessionId:u,sessionScope:d,cwd:a.cwd,environment:O,availableModels:n.authenticatedModelInfos(a.modelRegistry),...s?{parentModel:s}:{},captureForkSource:()=>i.captureSessionForkSource(a.sessionManager,`tool`)},directRunTracker:A,delegation:ye,fablePlan:be,policies:R,observeDelegation:e=>le(l,e)},a.sessionManager);return X=c,await c.await(),h()?(J.bindMainSession(u),{value:void 0}):(await c.dispose(),X===c&&(X=void 0),{value:void 0})})})(),Promise.allSettled([H.then(e=>e.wait())])},$,Ee=async e=>{z=!1,B+=1;let t=H;H=void 0,U=void 0,V?.abort(Error(`Doom Team session ended.`)),V=void 0;let n=W;W=void 0,await Promise.allSettled([...t?[t.then(e=>e.wait())]:[],...n?[n.dispose()]:[]]);let r=Z,i=r?te.suspendScopeRuns({scope:r,reason:e.reason??C,jobs:A.forSession(r.rootSessionId,r).list(),stop:(e,t)=>L.stop(e,t)}):Promise.resolve(void 0),a;try{a=await i,await D?.recordEvent(`doom_team.session_finished`,{reason:e.reason??C,"team.suspended_count":a?.suspended.length??0,"team.unstoppable_count":a?.unstoppable.length??0,outcome:a?.unstoppable.length?`degraded`:`suspended`})}catch(t){await D?.recordError(`doom_team.session_shutdown_failed`,t,{reason:e.reason??C})}finally{try{await j.close()}catch(t){await D?.recordError(`doom_team.native_shutdown_failed`,t,{reason:e.reason??C})}Z&&L.releaseSessionScope(Z),Z=void 0,J.dispose(),await D?.shutdown(),D=void 0}};return{services:[ve.plugin,t=>{t.effect(()=>async()=>{await D?.shutdown(),D=void 0},`@agimon-ai/doompi-team/telemetry`),t.inject([v.DOOM_CORDIS_SESSION_SERVICE],t=>{let n={cordis:t,service:(0,v.requireDoomCordisSession)(t)};K=n,t.inject([y.DOOM_MCP_TOOL_RESOLVER_SERVICE],e=>ge.bind((0,y.requireDoomMcpToolResolver)(e))),t.inject([_.DOOM_CONTEXT_CONTRIBUTIONS_SERVICE],t=>{let n=(0,_.requireDoomContextContributions)(t).register({source:w,id:`runtime`,label:`Team`,order:200,snapshot:()=>e.formatTeamContextSnapshot(e.readActiveTeamSnapshot(J))});return()=>n.dispose()}),t.effect(()=>()=>{K===n&&(K=void 0)},`${w}/cordis-session`)}),t.inject([S.DOOM_UI_HUB_SERVICE],e=>g.registerSubagentLeaderContribution((0,S.requireDoomUiHub)(e))),t.effect(()=>()=>{I.dispose(),he()},`@agimon-ai/doompi-team/completions`),t.effect(()=>()=>k.stop(),`@agimon-ai/doompi-team/polling`),t.effect(()=>()=>A.stop(),`@agimon-ai/doompi-team/jobs`),t.effect(()=>()=>j.close(),`@agimon-ai/doompi-team/native-runs`),t.effect(()=>async()=>{await X?.dispose(),X=void 0},`@agimon-ai/doompi-team/collaboration`),t.inject([S.DOOM_UI_HUB_SERVICE],e=>{let t=g.createAgentStatus((0,S.requireDoomUiHub)(e),{scheduler:k,tracker:A,environment:O});return Y=t,()=>{Y===t&&(Y=void 0),t.dispose()}}),t.effect(()=>async()=>{z=!1,B+=1;let e=H;H=void 0,U=void 0,V?.abort(Error(`Doom Team runtime was disposed.`)),V=void 0;let t=W;W=void 0,t?await t.dispose():e&&await Promise.allSettled([e.then(e=>e.wait())]),G=void 0},`@agimon-ai/doompi-team/session-fence`)}],tools:[(0,b.definePiTool)(m.createSubagentTool(fe,E,{renderCall:(e,t)=>re.renderSubagentCall(u.validateParams(e),t),renderResult:re.renderSubagentResult},q)),(0,b.definePiTool)(p.createIntercomTool(J,E,q))],commands:Ce.map(([e,t])=>[e,{...t,async handler(e,n){return await q(n),t.handler(e,n)}}]),messageRenderers:[h.createCompletionRenderer(),ne.createSlashRunRenderer()],onStart(){I.attachHost(E),k.start()},events:{before_agent_start:xe,session_start(e,t){return Y?.sessionStart(t),Te(e,t)},session_shutdown:e=>($??=Ee(e),$)}}});exports.activateTeamExtension=T,exports.default=T;
|
|
2
|
+
//# sourceMappingURL=pi.cjs.map
|