@downcity/agent 1.1.338 → 1.1.400
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 +31 -15
- package/bin/agent/Agent.d.ts +42 -91
- package/bin/agent/Agent.d.ts.map +1 -1
- package/bin/agent/Agent.js +115 -200
- package/bin/agent/Agent.js.map +1 -1
- package/bin/agent/AgentModel.d.ts +8 -8
- package/bin/agent/AgentModel.d.ts.map +1 -1
- package/bin/agent/AgentModel.js +5 -5
- package/bin/agent/AgentModel.js.map +1 -1
- package/bin/agent/AgentSessions.d.ts +42 -28
- package/bin/agent/AgentSessions.d.ts.map +1 -1
- package/bin/agent/AgentSessions.js +80 -44
- package/bin/agent/AgentSessions.js.map +1 -1
- package/bin/agent/WorkspaceEntry.d.ts +82 -0
- package/bin/agent/WorkspaceEntry.d.ts.map +1 -0
- package/bin/agent/WorkspaceEntry.js +246 -0
- package/bin/agent/WorkspaceEntry.js.map +1 -0
- package/bin/agent/index.d.ts +5 -0
- package/bin/agent/index.d.ts.map +1 -0
- package/bin/agent/index.js +5 -0
- package/bin/agent/index.js.map +1 -0
- package/bin/city/host/CityHostRegistry.d.ts +44 -0
- package/bin/city/host/CityHostRegistry.d.ts.map +1 -0
- package/bin/city/host/CityHostRegistry.js +225 -0
- package/bin/city/host/CityHostRegistry.js.map +1 -0
- package/bin/city/index.d.ts +22 -0
- package/bin/city/index.d.ts.map +1 -0
- package/bin/city/index.js +10 -0
- package/bin/city/index.js.map +1 -0
- package/bin/city/runtime/City.d.ts +99 -0
- package/bin/city/runtime/City.d.ts.map +1 -0
- package/bin/city/runtime/City.js +376 -0
- package/bin/city/runtime/City.js.map +1 -0
- package/bin/city/transport/SerializedTransport.d.ts +30 -0
- package/bin/city/transport/SerializedTransport.d.ts.map +1 -0
- package/bin/city/transport/SerializedTransport.js +57 -0
- package/bin/city/transport/SerializedTransport.js.map +1 -0
- package/bin/city/transport/http/AgentHTTP.d.ts +66 -0
- package/bin/city/transport/http/AgentHTTP.d.ts.map +1 -0
- package/bin/city/transport/http/AgentHTTP.js +142 -0
- package/bin/city/transport/http/AgentHTTP.js.map +1 -0
- package/bin/city/transport/http/CityHTTP.d.ts +44 -0
- package/bin/city/transport/http/CityHTTP.d.ts.map +1 -0
- package/bin/city/transport/http/CityHTTP.js +171 -0
- package/bin/city/transport/http/CityHTTP.js.map +1 -0
- package/bin/city/transport/http/NodeHttpAdapter.d.ts +27 -0
- package/bin/city/transport/http/NodeHttpAdapter.d.ts.map +1 -0
- package/bin/city/transport/http/NodeHttpAdapter.js +57 -0
- package/bin/city/transport/http/NodeHttpAdapter.js.map +1 -0
- package/bin/city/transport/http/routes/RuntimeRoutes.d.ts +15 -0
- package/bin/city/transport/http/routes/RuntimeRoutes.d.ts.map +1 -0
- package/bin/city/transport/http/routes/RuntimeRoutes.js +38 -0
- package/bin/city/transport/http/routes/RuntimeRoutes.js.map +1 -0
- package/bin/city/transport/http/routes/SessionRoutes.d.ts +17 -0
- package/bin/city/transport/http/routes/SessionRoutes.d.ts.map +1 -0
- package/bin/city/transport/http/routes/SessionRoutes.js +417 -0
- package/bin/city/transport/http/routes/SessionRoutes.js.map +1 -0
- package/bin/city/transport/rpc/AgentRPC.d.ts +47 -0
- package/bin/city/transport/rpc/AgentRPC.d.ts.map +1 -0
- package/bin/city/transport/rpc/AgentRPC.js +89 -0
- package/bin/city/transport/rpc/AgentRPC.js.map +1 -0
- package/bin/city/transport/rpc/CityRPC.d.ts +26 -0
- package/bin/city/transport/rpc/CityRPC.d.ts.map +1 -0
- package/bin/city/transport/rpc/CityRPC.js +110 -0
- package/bin/city/transport/rpc/CityRPC.js.map +1 -0
- package/bin/city/transport/rpc/RpcServer.d.ts +30 -0
- package/bin/city/transport/rpc/RpcServer.d.ts.map +1 -0
- package/bin/city/transport/rpc/RpcServer.js +125 -0
- package/bin/city/transport/rpc/RpcServer.js.map +1 -0
- package/bin/city/transport/rpc/server/InternalHandlers.d.ts +22 -0
- package/bin/city/transport/rpc/server/InternalHandlers.d.ts.map +1 -0
- package/bin/city/transport/rpc/server/InternalHandlers.js +196 -0
- package/bin/city/transport/rpc/server/InternalHandlers.js.map +1 -0
- package/bin/city/transport/rpc/server/RequestDispatcher.d.ts +27 -0
- package/bin/city/transport/rpc/server/RequestDispatcher.d.ts.map +1 -0
- package/bin/city/transport/rpc/server/RequestDispatcher.js +38 -0
- package/bin/city/transport/rpc/server/RequestDispatcher.js.map +1 -0
- package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts +25 -0
- package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts.map +1 -0
- package/bin/city/transport/rpc/server/SdkSessionHandlers.js +146 -0
- package/bin/city/transport/rpc/server/SdkSessionHandlers.js.map +1 -0
- package/bin/city/transport/rpc/server/ServerTypes.d.ts +94 -0
- package/bin/city/transport/rpc/server/ServerTypes.d.ts.map +1 -0
- package/bin/city/transport/rpc/server/ServerTypes.js +9 -0
- package/bin/city/transport/rpc/server/ServerTypes.js.map +1 -0
- package/bin/city/transport/session/RemoteSessionConfig.d.ts +15 -0
- package/bin/city/transport/session/RemoteSessionConfig.d.ts.map +1 -0
- package/bin/city/transport/session/RemoteSessionConfig.js +23 -0
- package/bin/city/transport/session/RemoteSessionConfig.js.map +1 -0
- package/bin/city/transport/types/AgentHttpBinding.d.ts +24 -0
- package/bin/city/transport/types/AgentHttpBinding.d.ts.map +1 -0
- package/bin/city/transport/types/AgentHttpBinding.js +5 -0
- package/bin/city/transport/types/AgentHttpBinding.js.map +1 -0
- package/bin/city/transport/types/AgentHttpRuntime.d.ts +12 -0
- package/bin/city/transport/types/AgentHttpRuntime.d.ts.map +1 -0
- package/bin/city/transport/types/AgentHttpRuntime.js +7 -0
- package/bin/city/transport/types/AgentHttpRuntime.js.map +1 -0
- package/bin/city/transport/types/AgentRpcBinding.d.ts +27 -0
- package/bin/city/transport/types/AgentRpcBinding.d.ts.map +1 -0
- package/bin/city/transport/types/AgentRpcBinding.js +8 -0
- package/bin/city/transport/types/AgentRpcBinding.js.map +1 -0
- package/bin/city/transport/types/AgentRpcRuntime.d.ts +18 -0
- package/bin/city/transport/types/AgentRpcRuntime.d.ts.map +1 -0
- package/bin/city/transport/types/AgentRpcRuntime.js +7 -0
- package/bin/city/transport/types/AgentRpcRuntime.js.map +1 -0
- package/bin/city/transport/types/AgentSessionModelResolver.d.ts +11 -0
- package/bin/city/transport/types/AgentSessionModelResolver.d.ts.map +1 -0
- package/bin/city/transport/types/AgentSessionModelResolver.js +7 -0
- package/bin/city/transport/types/AgentSessionModelResolver.js.map +1 -0
- package/bin/city/transport/types/CityHttpRuntime.d.ts +36 -0
- package/bin/city/transport/types/CityHttpRuntime.d.ts.map +1 -0
- package/bin/city/transport/types/CityHttpRuntime.js +8 -0
- package/bin/city/transport/types/CityHttpRuntime.js.map +1 -0
- package/bin/city/transport/types/CityRpcRuntime.d.ts +17 -0
- package/bin/city/transport/types/CityRpcRuntime.d.ts.map +1 -0
- package/bin/city/transport/types/CityRpcRuntime.js +8 -0
- package/bin/city/transport/types/CityRpcRuntime.js.map +1 -0
- package/bin/city/transport/types/RpcProtocol.d.ts +24 -0
- package/bin/city/transport/types/RpcProtocol.d.ts.map +1 -0
- package/bin/city/transport/types/RpcProtocol.js +9 -0
- package/bin/city/transport/types/RpcProtocol.js.map +1 -0
- package/bin/city/types/City.d.ts +84 -0
- package/bin/city/types/City.d.ts.map +1 -0
- package/bin/city/types/City.js +7 -0
- package/bin/city/types/City.js.map +1 -0
- package/bin/city/types/PluginHostContext.d.ts +31 -0
- package/bin/city/types/PluginHostContext.d.ts.map +1 -0
- package/bin/city/types/PluginHostContext.js +11 -0
- package/bin/city/types/PluginHostContext.js.map +1 -0
- package/bin/city/types/SerializedTransport.d.ts +16 -0
- package/bin/city/types/SerializedTransport.d.ts.map +1 -0
- package/bin/city/types/SerializedTransport.js +3 -0
- package/bin/city/types/SerializedTransport.js.map +1 -0
- package/bin/executor/Executor.d.ts +4 -4
- package/bin/executor/Executor.d.ts.map +1 -1
- package/bin/executor/Executor.js +90 -34
- package/bin/executor/Executor.js.map +1 -1
- package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -2
- package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
- package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +3 -3
- package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +1 -1
- package/bin/executor/composer/system/default/PromptRenderer.d.ts +3 -3
- package/bin/executor/composer/system/default/PromptRenderer.d.ts.map +1 -1
- package/bin/executor/composer/system/default/PromptRenderer.js +1 -1
- package/bin/executor/composer/system/default/SystemDomain.d.ts +3 -3
- package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
- package/bin/executor/composer/system/default/SystemDomain.js +3 -3
- package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
- package/bin/executor/composer/system/default/SystemPromptAssets.js +2 -2
- package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
- package/bin/executor/composer/system/default/variables/GeoContext.d.ts +1 -1
- package/bin/executor/composer/system/default/variables/VariableReplacer.js +1 -1
- package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +6 -23
- package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineContextCompaction.js +112 -344
- package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineError.d.ts +1 -1
- package/bin/executor/core-engine/CoreEngineError.js +1 -1
- package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +2 -3
- package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineLoopDecision.js +1 -15
- package/bin/executor/core-engine/CoreEngineLoopDecision.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineMessageState.d.ts +16 -39
- package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineMessageState.js +25 -60
- package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineRunner.d.ts +10 -6
- package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineRunner.js +146 -234
- package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineSignals.d.ts +20 -58
- package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineSignals.js +84 -304
- package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
- package/bin/executor/messages/SessionAttachmentMapper.d.ts +6 -37
- package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
- package/bin/executor/messages/SessionAttachmentMapper.js +12 -243
- package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
- package/bin/executor/messages/SessionMessageLog.d.ts +7 -14
- package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
- package/bin/executor/messages/SessionMessageLog.js +11 -26
- package/bin/executor/messages/SessionMessageLog.js.map +1 -1
- package/bin/executor/messages/SessionModelMessages.d.ts +14 -0
- package/bin/executor/messages/SessionModelMessages.d.ts.map +1 -0
- package/bin/executor/messages/SessionModelMessages.js +187 -0
- package/bin/executor/messages/SessionModelMessages.js.map +1 -0
- package/bin/executor/model/ModelGenerate.d.ts +22 -0
- package/bin/executor/model/ModelGenerate.d.ts.map +1 -0
- package/bin/executor/model/ModelGenerate.js +54 -0
- package/bin/executor/model/ModelGenerate.js.map +1 -0
- package/bin/executor/model/ModelStepRunner.d.ts +70 -0
- package/bin/executor/model/ModelStepRunner.d.ts.map +1 -0
- package/bin/executor/model/ModelStepRunner.js +284 -0
- package/bin/executor/model/ModelStepRunner.js.map +1 -0
- package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +4 -4
- package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
- package/bin/executor/types/SessionHistoryMeta.d.ts +7 -2
- package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
- package/bin/executor/types/SessionHistoryMeta.js +1 -1
- package/bin/executor/types/SessionLoop.d.ts +1 -21
- package/bin/executor/types/SessionLoop.d.ts.map +1 -1
- package/bin/executor/types/SessionPrompts.d.ts +8 -7
- package/bin/executor/types/SessionPrompts.d.ts.map +1 -1
- package/bin/executor/types/SessionPrompts.js +1 -2
- package/bin/executor/types/SessionPrompts.js.map +1 -1
- package/bin/group/Group.d.ts +20 -0
- package/bin/group/Group.d.ts.map +1 -0
- package/bin/group/Group.js +42 -0
- package/bin/group/Group.js.map +1 -0
- package/bin/group/GroupSession.d.ts +103 -0
- package/bin/group/GroupSession.d.ts.map +1 -0
- package/bin/group/GroupSession.js +666 -0
- package/bin/group/GroupSession.js.map +1 -0
- package/bin/group/GroupSessions.d.ts +21 -0
- package/bin/group/GroupSessions.d.ts.map +1 -0
- package/bin/group/GroupSessions.js +89 -0
- package/bin/group/GroupSessions.js.map +1 -0
- package/bin/group/index.d.ts +9 -0
- package/bin/group/index.d.ts.map +1 -0
- package/bin/group/index.js +6 -0
- package/bin/group/index.js.map +1 -0
- package/bin/index.d.ts +28 -20
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +7 -9
- package/bin/index.js.map +1 -1
- package/bin/internal/AgentRuntime.d.ts +43 -0
- package/bin/internal/AgentRuntime.d.ts.map +1 -0
- package/bin/internal/AgentRuntime.js +179 -0
- package/bin/internal/AgentRuntime.js.map +1 -0
- package/bin/internal/GroupRuntime.d.ts +17 -0
- package/bin/internal/GroupRuntime.d.ts.map +1 -0
- package/bin/internal/GroupRuntime.js +66 -0
- package/bin/internal/GroupRuntime.js.map +1 -0
- package/bin/internal/index.d.ts +8 -0
- package/bin/internal/index.d.ts.map +1 -0
- package/bin/internal/index.js +8 -0
- package/bin/internal/index.js.map +1 -0
- package/bin/plugin/core/ActionScheduleExecutor.d.ts +3 -2
- package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +1 -1
- package/bin/plugin/core/ActionScheduleExecutor.js +14 -3
- package/bin/plugin/core/ActionScheduleExecutor.js.map +1 -1
- package/bin/plugin/core/ActionScheduleRuntime.d.ts +3 -1
- package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +1 -1
- package/bin/plugin/core/ActionScheduleRuntime.js +9 -8
- package/bin/plugin/core/ActionScheduleRuntime.js.map +1 -1
- package/bin/plugin/core/ActionScheduleStore.d.ts +7 -3
- package/bin/plugin/core/ActionScheduleStore.d.ts.map +1 -1
- package/bin/plugin/core/ActionScheduleStore.js +32 -9
- package/bin/plugin/core/ActionScheduleStore.js.map +1 -1
- package/bin/plugin/core/HookRegistry.d.ts +4 -6
- package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
- package/bin/plugin/core/HookRegistry.js +8 -14
- package/bin/plugin/core/HookRegistry.js.map +1 -1
- package/bin/plugin/core/PluginActionExecution.d.ts +33 -0
- package/bin/plugin/core/PluginActionExecution.d.ts.map +1 -0
- package/bin/plugin/core/PluginActionExecution.js +168 -0
- package/bin/plugin/core/PluginActionExecution.js.map +1 -0
- package/bin/plugin/core/PluginActionFactory.d.ts +6 -3
- package/bin/plugin/core/PluginActionFactory.d.ts.map +1 -1
- package/bin/plugin/core/PluginActionFactory.js +3 -0
- package/bin/plugin/core/PluginActionFactory.js.map +1 -1
- package/bin/plugin/core/PluginContext.d.ts +14 -4
- package/bin/plugin/core/PluginContext.d.ts.map +1 -1
- package/bin/plugin/core/PluginContext.js +11 -2
- package/bin/plugin/core/PluginContext.js.map +1 -1
- package/bin/plugin/core/PluginHttpRoutes.d.ts +1 -1
- package/bin/plugin/core/PluginHttpRoutes.d.ts.map +1 -1
- package/bin/plugin/core/PluginHttpRoutes.js +1 -1
- package/bin/plugin/core/PluginHttpRoutes.js.map +1 -1
- package/bin/plugin/core/PluginRegistry.d.ts +41 -26
- package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
- package/bin/plugin/core/PluginRegistry.js +125 -107
- package/bin/plugin/core/PluginRegistry.js.map +1 -1
- package/bin/plugin/tool/PluginToolRuntime.d.ts.map +1 -1
- package/bin/plugin/tool/PluginToolRuntime.js +4 -1
- package/bin/plugin/tool/PluginToolRuntime.js.map +1 -1
- package/bin/plugin/tool/PluginToolSchemas.d.ts +22 -2
- package/bin/plugin/tool/PluginToolSchemas.d.ts.map +1 -1
- package/bin/plugin/tool/PluginToolSchemas.js +3 -4
- package/bin/plugin/tool/PluginToolSchemas.js.map +1 -1
- package/bin/plugin/tool/PluginTools.d.ts +5 -8
- package/bin/plugin/tool/PluginTools.d.ts.map +1 -1
- package/bin/plugin/tool/PluginTools.js +9 -8
- package/bin/plugin/tool/PluginTools.js.map +1 -1
- package/bin/plugin/types/ActionSchedule.d.ts +6 -0
- package/bin/plugin/types/ActionSchedule.d.ts.map +1 -1
- package/bin/remote/RemoteAgent.js +2 -2
- package/bin/remote/RemoteSession.d.ts +1 -1
- package/bin/remote/TransportFactory.d.ts +1 -1
- package/bin/remote/TransportFactory.js +2 -2
- package/bin/remote/transports/HttpRemoteAgentTransport.d.ts +1 -1
- package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
- package/bin/remote/transports/HttpRemoteAgentTransport.js +3 -3
- package/bin/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
- package/bin/remote/transports/RpcClient.d.ts +1 -0
- package/bin/remote/transports/RpcClient.d.ts.map +1 -1
- package/bin/remote/transports/RpcClient.js +16 -0
- package/bin/remote/transports/RpcClient.js.map +1 -1
- package/bin/remote/transports/RpcRemoteAgentTransport.d.ts +1 -1
- package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
- package/bin/remote/transports/RpcRemoteAgentTransport.js +2 -1
- package/bin/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
- package/bin/session/DefaultSessionComposer.js +4 -4
- package/bin/session/DefaultSessionComposer.js.map +1 -1
- package/bin/session/Session.d.ts +9 -3
- package/bin/session/Session.d.ts.map +1 -1
- package/bin/session/Session.js +62 -53
- package/bin/session/Session.js.map +1 -1
- package/bin/session/SessionLoop.d.ts.map +1 -1
- package/bin/session/SessionLoop.js +23 -25
- package/bin/session/SessionLoop.js.map +1 -1
- package/bin/session/SessionMessages.d.ts +9 -11
- package/bin/session/SessionMessages.d.ts.map +1 -1
- package/bin/session/SessionMessages.js +56 -104
- package/bin/session/SessionMessages.js.map +1 -1
- package/bin/session/SessionQueue.d.ts +1 -1
- package/bin/session/SessionState.d.ts +3 -0
- package/bin/session/SessionState.d.ts.map +1 -1
- package/bin/session/SessionState.js +42 -12
- package/bin/session/SessionState.js.map +1 -1
- package/bin/session/SessionTitle.d.ts +6 -6
- package/bin/session/SessionTitle.d.ts.map +1 -1
- package/bin/session/SessionTitle.js +11 -39
- package/bin/session/SessionTitle.js.map +1 -1
- package/bin/session/browse/Browse.d.ts +6 -4
- package/bin/session/browse/Browse.d.ts.map +1 -1
- package/bin/session/browse/Browse.js +25 -43
- package/bin/session/browse/Browse.js.map +1 -1
- package/bin/session/control/SessionInteractions.d.ts +2 -2
- package/bin/session/control/SessionInteractions.d.ts.map +1 -1
- package/bin/session/control/SessionInteractions.js +68 -32
- package/bin/session/control/SessionInteractions.js.map +1 -1
- package/bin/session/execution/SessionAssistantOutputAdapter.d.ts +20 -17
- package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +1 -1
- package/bin/session/execution/SessionAssistantOutputAdapter.js +35 -35
- package/bin/session/execution/SessionAssistantOutputAdapter.js.map +1 -1
- package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +2 -2
- package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +1 -1
- package/bin/session/execution/tools/SessionShellApprovalAdapter.js +20 -8
- package/bin/session/execution/tools/SessionShellApprovalAdapter.js.map +1 -1
- package/bin/session/messages/SessionAssistantMessageWriter.d.ts +42 -48
- package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -1
- package/bin/session/messages/SessionAssistantMessageWriter.js +225 -543
- package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -1
- package/bin/session/messages/SessionJsonValue.d.ts +0 -10
- package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
- package/bin/session/messages/SessionJsonValue.js +0 -23
- package/bin/session/messages/SessionJsonValue.js.map +1 -1
- package/bin/session/messages/SessionMessageCompaction.d.ts +7 -3
- package/bin/session/messages/SessionMessageCompaction.d.ts.map +1 -1
- package/bin/session/messages/SessionMessageCompaction.js +69 -91
- package/bin/session/messages/SessionMessageCompaction.js.map +1 -1
- package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -1
- package/bin/session/messages/SessionMessageInteractionWriter.js +22 -21
- package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -1
- package/bin/session/messages/SessionMessageText.d.ts +25 -0
- package/bin/session/messages/SessionMessageText.d.ts.map +1 -0
- package/bin/session/messages/SessionMessageText.js +52 -0
- package/bin/session/messages/SessionMessageText.js.map +1 -0
- package/bin/session/preview/SessionMessagePreview.d.ts +3 -3
- package/bin/session/preview/SessionMessagePreview.d.ts.map +1 -1
- package/bin/session/preview/SessionMessagePreview.js +10 -30
- package/bin/session/preview/SessionMessagePreview.js.map +1 -1
- package/bin/session/runtime/SessionTurnContext.d.ts.map +1 -1
- package/bin/session/runtime/SessionTurnContext.js +4 -2
- package/bin/session/runtime/SessionTurnContext.js.map +1 -1
- package/bin/session/storage/Metadata.d.ts +5 -3
- package/bin/session/storage/Metadata.d.ts.map +1 -1
- package/bin/session/storage/Metadata.js +26 -7
- package/bin/session/storage/Metadata.js.map +1 -1
- package/bin/tools/ask/AskQuestionsTool.d.ts +2 -16
- package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
- package/bin/tools/ask/AskQuestionsTool.js +21 -17
- package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
- package/bin/types/action/ActionResult.d.ts +15 -10
- package/bin/types/action/ActionResult.d.ts.map +1 -1
- package/bin/types/action/ActionResult.js +2 -2
- package/bin/types/action/ActionResult.js.map +1 -1
- package/bin/types/agent/AgentOptions.d.ts +7 -14
- package/bin/types/agent/AgentOptions.d.ts.map +1 -1
- package/bin/types/agent/AgentSessionCollection.d.ts +42 -0
- package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -0
- package/bin/types/agent/AgentSessionCollection.js +7 -0
- package/bin/types/agent/AgentSessionCollection.js.map +1 -0
- package/bin/types/agent/AgentStorage.d.ts +18 -0
- package/bin/types/agent/AgentStorage.d.ts.map +1 -0
- package/bin/types/agent/AgentStorage.js +8 -0
- package/bin/types/agent/AgentStorage.js.map +1 -0
- package/bin/types/agent/RemoteAgentOptions.d.ts +1 -1
- package/bin/types/agent/RemoteAgentPluginAction.d.ts +2 -2
- package/bin/types/agent/SessionActor.d.ts +15 -8
- package/bin/types/agent/SessionActor.d.ts.map +1 -1
- package/bin/types/agent/SessionTypes.d.ts +30 -11
- package/bin/types/agent/SessionTypes.d.ts.map +1 -1
- package/bin/types/agent/WorkspaceEntryOptions.d.ts +16 -0
- package/bin/types/agent/WorkspaceEntryOptions.d.ts.map +1 -0
- package/bin/types/agent/WorkspaceEntryOptions.js +8 -0
- package/bin/types/agent/WorkspaceEntryOptions.js.map +1 -0
- package/bin/types/executor/SessionAssistantOutput.d.ts +19 -17
- package/bin/types/executor/SessionAssistantOutput.d.ts.map +1 -1
- package/bin/types/executor/SessionAssistantOutput.js +2 -3
- package/bin/types/executor/SessionAssistantOutput.js.map +1 -1
- package/bin/types/executor/SessionToolExecutionContext.d.ts +8 -5
- package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -1
- package/bin/types/executor/SessionToolExecutionContext.js +1 -1
- package/bin/types/executor/SessionTurnContext.d.ts +16 -16
- package/bin/types/executor/SessionTurnContext.d.ts.map +1 -1
- package/bin/types/group/DispatchStrategy.d.ts +62 -0
- package/bin/types/group/DispatchStrategy.d.ts.map +1 -0
- package/bin/types/group/DispatchStrategy.js +93 -0
- package/bin/types/group/DispatchStrategy.js.map +1 -0
- package/bin/types/group/Group.d.ts +61 -0
- package/bin/types/group/Group.d.ts.map +1 -0
- package/bin/types/group/Group.js +3 -0
- package/bin/types/group/Group.js.map +1 -0
- package/bin/types/group/GroupSession.d.ts +149 -0
- package/bin/types/group/GroupSession.d.ts.map +1 -0
- package/bin/types/group/GroupSession.js +3 -0
- package/bin/types/group/GroupSession.js.map +1 -0
- package/bin/types/group/GroupSessionStore.d.ts +77 -0
- package/bin/types/group/GroupSessionStore.d.ts.map +1 -0
- package/bin/types/group/GroupSessionStore.js +3 -0
- package/bin/types/group/GroupSessionStore.js.map +1 -0
- package/bin/types/plugin/AgentPluginContext.d.ts +25 -0
- package/bin/types/plugin/AgentPluginContext.d.ts.map +1 -0
- package/bin/types/plugin/AgentPluginContext.js +10 -0
- package/bin/types/plugin/AgentPluginContext.js.map +1 -0
- package/bin/types/plugin/PluginAction.d.ts +10 -8
- package/bin/types/plugin/PluginAction.d.ts.map +1 -1
- package/bin/types/plugin/PluginActionExecution.d.ts +31 -0
- package/bin/types/plugin/PluginActionExecution.d.ts.map +1 -0
- package/bin/types/plugin/PluginActionExecution.js +10 -0
- package/bin/types/plugin/PluginActionExecution.js.map +1 -0
- package/bin/types/plugin/PluginCommand.d.ts +5 -5
- package/bin/types/plugin/PluginCommand.d.ts.map +1 -1
- package/bin/types/plugin/PluginContext.d.ts +19 -8
- package/bin/types/plugin/PluginContext.d.ts.map +1 -1
- package/bin/types/plugin/PluginContext.js +1 -1
- package/bin/types/plugin/PluginDefinition.d.ts +6 -6
- package/bin/types/plugin/PluginExecutionContext.d.ts +4 -10
- package/bin/types/plugin/PluginExecutionContext.d.ts.map +1 -1
- package/bin/types/plugin/PluginExecutionContext.js +3 -5
- package/bin/types/plugin/PluginExecutionContext.js.map +1 -1
- package/bin/types/plugin/PluginHttp.d.ts +1 -1
- package/bin/types/plugin/PluginRuntime.d.ts +13 -8
- package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
- package/bin/types/plugin/PluginServices.d.ts +10 -0
- package/bin/types/plugin/PluginServices.d.ts.map +1 -0
- package/bin/types/plugin/PluginServices.js +3 -0
- package/bin/types/plugin/PluginServices.js.map +1 -0
- package/bin/types/plugin/PluginState.d.ts +3 -3
- package/bin/types/plugin/PluginState.d.ts.map +1 -1
- package/bin/types/plugin/PluginState.js +1 -1
- package/bin/types/plugin/PluginTool.d.ts +6 -4
- package/bin/types/plugin/PluginTool.d.ts.map +1 -1
- package/bin/types/rpc/RpcProtocol.d.ts +30 -8
- package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
- package/bin/types/sdk/AgentSessionAction.d.ts +6 -7
- package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
- package/bin/types/sdk/AgentSessionAction.js +2 -3
- package/bin/types/sdk/AgentSessionAction.js.map +1 -1
- package/bin/types/sdk/AgentSessionPrompt.d.ts +7 -7
- package/bin/types/sdk/AgentSessionPrompt.d.ts.map +1 -1
- package/bin/types/sdk/AgentSessionPrompt.js +1 -4
- package/bin/types/sdk/AgentSessionPrompt.js.map +1 -1
- package/bin/types/session/SessionAction.d.ts +39 -0
- package/bin/types/session/SessionAction.d.ts.map +1 -0
- package/bin/types/session/SessionAction.js +8 -0
- package/bin/types/session/SessionAction.js.map +1 -0
- package/bin/types/session/SessionComposer.d.ts +10 -11
- package/bin/types/session/SessionComposer.d.ts.map +1 -1
- package/bin/types/session/SessionContent.d.ts +41 -0
- package/bin/types/session/SessionContent.d.ts.map +1 -0
- package/bin/types/session/SessionContent.js +8 -0
- package/bin/types/session/SessionContent.js.map +1 -0
- package/bin/types/session/SessionExecution.d.ts +9 -68
- package/bin/types/session/SessionExecution.d.ts.map +1 -1
- package/bin/types/session/SessionInteraction.d.ts +92 -58
- package/bin/types/session/SessionInteraction.d.ts.map +1 -1
- package/bin/types/session/SessionInteraction.js +11 -4
- package/bin/types/session/SessionInteraction.js.map +1 -1
- package/bin/types/session/SessionInteractions.d.ts +1 -1
- package/bin/types/session/SessionLocalState.d.ts +2 -2
- package/bin/types/session/SessionLoop.d.ts +5 -5
- package/bin/types/session/SessionLoop.d.ts.map +1 -1
- package/bin/types/session/SessionMessage.d.ts +27 -87
- package/bin/types/session/SessionMessage.d.ts.map +1 -1
- package/bin/types/session/SessionMessages.d.ts +14 -14
- package/bin/types/session/SessionMessages.d.ts.map +1 -1
- package/bin/types/session/SessionMutation.d.ts +2 -2
- package/bin/types/session/SessionOptions.d.ts +14 -9
- package/bin/types/session/SessionOptions.d.ts.map +1 -1
- package/bin/types/session/SessionOrigin.d.ts +19 -0
- package/bin/types/session/SessionOrigin.d.ts.map +1 -0
- package/bin/types/session/SessionOrigin.js +8 -0
- package/bin/types/session/SessionOrigin.js.map +1 -0
- package/bin/types/session/SessionPort.d.ts +16 -20
- package/bin/types/session/SessionPort.d.ts.map +1 -1
- package/bin/types/session/SessionSegment.d.ts +1 -1
- package/bin/types/session/SessionState.d.ts +9 -6
- package/bin/types/session/SessionState.d.ts.map +1 -1
- package/bin/types/session/SessionSystem.d.ts +1 -1
- package/bin/types/session/SessionTool.d.ts +12 -1
- package/bin/types/session/SessionTool.d.ts.map +1 -1
- package/bin/types/store/LocalStore.d.ts +19 -11
- package/bin/types/store/LocalStore.d.ts.map +1 -1
- package/bin/types/store/LocalStore.js +2 -2
- package/bin/types/store/SessionAttachmentStore.d.ts +4 -4
- package/bin/types/store/SessionAttachmentStore.js +3 -3
- package/bin/types/store/SessionDataStore.d.ts +85 -0
- package/bin/types/store/SessionDataStore.d.ts.map +1 -0
- package/bin/types/store/SessionDataStore.js +9 -0
- package/bin/types/store/SessionDataStore.js.map +1 -0
- package/bin/types/store/SessionStore.d.ts +24 -78
- package/bin/types/store/SessionStore.d.ts.map +1 -1
- package/bin/types/store/SessionStore.js +3 -3
- package/bin/types/tools/ToolActionExecutionContext.d.ts +30 -0
- package/bin/types/tools/ToolActionExecutionContext.d.ts.map +1 -0
- package/bin/types/tools/ToolActionExecutionContext.js +8 -0
- package/bin/types/tools/ToolActionExecutionContext.js.map +1 -0
- package/bin/types/tools/ask/AskQuestionsTool.d.ts +1 -1
- package/bin/utils/logger/Logger.d.ts +21 -9
- package/bin/utils/logger/Logger.d.ts.map +1 -1
- package/bin/utils/logger/Logger.js +18 -9
- package/bin/utils/logger/Logger.js.map +1 -1
- package/bin/workspace/WorkspacePaths.d.ts +3 -32
- package/bin/workspace/WorkspacePaths.d.ts.map +1 -1
- package/bin/workspace/WorkspacePaths.js +7 -46
- package/bin/workspace/WorkspacePaths.js.map +1 -1
- package/bin/workspace/store/JsonlSessionMessageStore.d.ts +1 -1
- package/bin/workspace/store/JsonlSessionMessageStore.d.ts.map +1 -1
- package/bin/workspace/store/LocalGroupSessionDataStore.d.ts +46 -0
- package/bin/workspace/store/LocalGroupSessionDataStore.d.ts.map +1 -0
- package/bin/workspace/store/LocalGroupSessionDataStore.js +197 -0
- package/bin/workspace/store/LocalGroupSessionDataStore.js.map +1 -0
- package/bin/workspace/store/LocalGroupSessionStore.d.ts +22 -0
- package/bin/workspace/store/LocalGroupSessionStore.d.ts.map +1 -0
- package/bin/workspace/store/LocalGroupSessionStore.js +75 -0
- package/bin/workspace/store/LocalGroupSessionStore.js.map +1 -0
- package/bin/workspace/store/LocalSessionAttachmentStore.d.ts +2 -2
- package/bin/workspace/store/LocalSessionAttachmentStore.d.ts.map +1 -1
- package/bin/workspace/store/LocalSessionAttachmentStore.js +2 -2
- package/bin/workspace/store/LocalSessionAttachmentStore.js.map +1 -1
- package/bin/workspace/store/LocalSessionDataStore.d.ts +45 -0
- package/bin/workspace/store/LocalSessionDataStore.d.ts.map +1 -0
- package/bin/workspace/store/LocalSessionDataStore.js +100 -0
- package/bin/workspace/store/LocalSessionDataStore.js.map +1 -0
- package/bin/workspace/store/LocalSessionStore.d.ts +38 -28
- package/bin/workspace/store/LocalSessionStore.d.ts.map +1 -1
- package/bin/workspace/store/LocalSessionStore.js +151 -51
- package/bin/workspace/store/LocalSessionStore.js.map +1 -1
- package/bin/workspace/store/LocalStorePaths.d.ts +31 -83
- package/bin/workspace/store/LocalStorePaths.d.ts.map +1 -1
- package/bin/workspace/store/LocalStorePaths.js +43 -101
- package/bin/workspace/store/LocalStorePaths.js.map +1 -1
- package/bin/workspace/store/SessionMessageStoreFactory.d.ts +1 -1
- package/bin/workspace/store/SessionMessageStoreFactory.d.ts.map +1 -1
- package/bin/workspace/store/SessionMessageStoreFactory.js +1 -1
- package/city-test/agent-http.test.mjs +326 -0
- package/city-test/city-container.test.mjs +156 -0
- package/city-test/city-host-registry.test.mjs +68 -0
- package/city-test/city-transport.test.mjs +282 -0
- package/city-test/group.test.mjs +739 -0
- package/city-test/session-model.test.mjs +169 -0
- package/city-test/transport-lifecycle.test.mjs +164 -0
- package/package.json +30 -17
- package/scripts/ModelClientMock.mjs +165 -0
- package/scripts/action-schedule-store.test.mjs +81 -11
- package/scripts/agent-compiler.mjs +10 -6
- package/scripts/agent-env-shell-sandbox.test.mjs +10 -10
- package/scripts/agent-env.test.mjs +6 -8
- package/scripts/agent-multi-workspace.test.mjs +213 -0
- package/scripts/agent-ready.test.mjs +71 -16
- package/scripts/agent-session-maintenance.test.mjs +15 -28
- package/scripts/agent-store.test.mjs +121 -22
- package/scripts/city-model-tool-loop.test.mjs +66 -195
- package/scripts/core-engine-context-compaction.test.mjs +65 -113
- package/scripts/core-engine-model-stream.test.mjs +87 -0
- package/scripts/executor-failure-result.test.mjs +13 -29
- package/scripts/file-tools.test.mjs +6 -6
- package/scripts/image-plugin-job.test.mjs +77 -40
- package/scripts/logger-isolation.test.mjs +2 -2
- package/scripts/multi-agent-plugin-isolation.test.mjs +11 -9
- package/scripts/plugin-tools.test.mjs +153 -18
- package/scripts/public-api-naming.test.mjs +0 -1
- package/scripts/rewrite-build-aliases.mjs +49 -0
- package/scripts/rpc-url-routing.test.mjs +29 -0
- package/scripts/search-tools.test.mjs +4 -4
- package/scripts/session-ask-question.test.mjs +23 -21
- package/scripts/session-attachments.test.mjs +11 -9
- package/scripts/session-compact-handle.test.mjs +6 -5
- package/scripts/session-composer.test.mjs +61 -18
- package/scripts/session-config-turn-boundary.test.mjs +123 -92
- package/scripts/session-dynamic-interaction.test.mjs +75 -0
- package/scripts/session-fork.test.mjs +35 -0
- package/scripts/session-list-title.test.mjs +14 -56
- package/scripts/session-messages.test.mjs +306 -1681
- package/scripts/session-shell-approval.test.mjs +16 -13
- package/scripts/session-system-blocks.test.mjs +1 -1
- package/scripts/session-title-event.test.mjs +38 -24
- package/scripts/session-tool-approval.test.mjs +17 -15
- package/scripts/session-turn-context.test.mjs +31 -28
- package/scripts/session-turn-failure.test.mjs +112 -110
- package/scripts/verify-build-aliases.mjs +32 -0
- package/scripts/workspace.test.mjs +146 -32
- package/src/agent/Agent.ts +138 -238
- package/src/agent/AgentModel.ts +9 -9
- package/src/agent/AgentSessions.ts +116 -65
- package/src/agent/WorkspaceEntry.ts +309 -0
- package/src/agent/index.ts +4 -0
- package/src/city/host/CityHostRegistry.ts +260 -0
- package/src/city/index.ts +49 -0
- package/src/city/runtime/City.ts +425 -0
- package/src/city/transport/SerializedTransport.ts +65 -0
- package/src/city/transport/http/AgentHTTP.ts +176 -0
- package/src/city/transport/http/CityHTTP.ts +196 -0
- package/src/city/transport/http/NodeHttpAdapter.ts +75 -0
- package/src/city/transport/http/routes/RuntimeRoutes.ts +51 -0
- package/src/city/transport/http/routes/SessionRoutes.ts +497 -0
- package/src/city/transport/rpc/AgentRPC.ts +111 -0
- package/src/city/transport/rpc/CityRPC.ts +138 -0
- package/src/city/transport/rpc/RpcServer.ts +158 -0
- package/src/city/transport/rpc/server/InternalHandlers.ts +223 -0
- package/src/city/transport/rpc/server/RequestDispatcher.ts +67 -0
- package/src/city/transport/rpc/server/SdkSessionHandlers.ts +166 -0
- package/src/city/transport/rpc/server/ServerTypes.ts +103 -0
- package/src/city/transport/session/RemoteSessionConfig.ts +34 -0
- package/src/city/transport/types/AgentHttpBinding.ts +25 -0
- package/src/city/transport/types/AgentHttpRuntime.ts +13 -0
- package/src/city/transport/types/AgentRpcBinding.ts +28 -0
- package/src/city/transport/types/AgentRpcRuntime.ts +20 -0
- package/src/city/transport/types/AgentSessionModelResolver.ts +13 -0
- package/src/city/transport/types/CityHttpRuntime.ts +45 -0
- package/src/city/transport/types/CityRpcRuntime.ts +27 -0
- package/src/city/transport/types/RpcProtocol.ts +32 -0
- package/src/city/types/City.ts +99 -0
- package/src/city/types/PluginHostContext.ts +40 -0
- package/src/city/types/SerializedTransport.ts +19 -0
- package/src/executor/Executor.ts +101 -43
- package/src/executor/README.md +11 -8
- package/src/executor/composer/system/SessionSystemComposer.ts +2 -2
- package/src/executor/composer/system/default/PromptRenderer.ts +2 -2
- package/src/executor/composer/system/default/SystemDomain.ts +5 -5
- package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
- package/src/executor/composer/system/default/assets/core.prompt.ts.txt +4 -12
- package/src/executor/core-engine/CoreEngineContextCompaction.ts +113 -427
- package/src/executor/core-engine/CoreEngineError.ts +1 -1
- package/src/executor/core-engine/CoreEngineLoopDecision.ts +1 -18
- package/src/executor/core-engine/CoreEngineMessageState.ts +32 -101
- package/src/executor/core-engine/CoreEngineRunner.ts +179 -281
- package/src/executor/core-engine/CoreEngineSignals.ts +98 -346
- package/src/executor/messages/SessionAttachmentMapper.ts +15 -273
- package/src/executor/messages/SessionMessageLog.ts +12 -25
- package/src/executor/messages/SessionModelMessages.ts +223 -0
- package/src/executor/model/ModelGenerate.ts +71 -0
- package/src/executor/model/ModelStepRunner.ts +381 -0
- package/src/executor/services/ExecutorRecoveryPolicy.ts +4 -4
- package/src/executor/types/SessionHistoryMeta.ts +8 -2
- package/src/executor/types/SessionLoop.ts +0 -26
- package/src/executor/types/SessionPrompts.ts +8 -8
- package/src/group/Group.ts +45 -0
- package/src/group/GroupSession.ts +728 -0
- package/src/group/GroupSessions.ts +104 -0
- package/src/group/index.ts +29 -0
- package/src/index.ts +108 -60
- package/src/internal/AgentRuntime.ts +229 -0
- package/src/internal/GroupRuntime.ts +89 -0
- package/src/internal/index.ts +33 -0
- package/src/plugin/core/ActionScheduleExecutor.ts +17 -5
- package/src/plugin/core/ActionScheduleRuntime.ts +16 -6
- package/src/plugin/core/ActionScheduleStore.ts +43 -12
- package/src/plugin/core/HookRegistry.ts +24 -14
- package/src/plugin/core/PluginActionExecution.ts +230 -0
- package/src/plugin/core/PluginActionFactory.ts +9 -3
- package/src/plugin/core/PluginContext.ts +25 -6
- package/src/plugin/core/PluginHttpRoutes.ts +2 -2
- package/src/plugin/core/PluginRegistry.ts +193 -107
- package/src/plugin/tool/PluginToolRuntime.ts +4 -1
- package/src/plugin/tool/PluginToolSchemas.ts +3 -4
- package/src/plugin/tool/PluginTools.ts +12 -8
- package/src/plugin/types/ActionSchedule.ts +6 -0
- package/src/remote/transports/HttpRemoteAgentTransport.ts +3 -3
- package/src/remote/transports/RpcClient.ts +17 -0
- package/src/remote/transports/RpcRemoteAgentTransport.ts +1 -0
- package/src/session/DefaultSessionComposer.ts +3 -3
- package/src/session/Session.ts +54 -42
- package/src/session/SessionLoop.ts +27 -34
- package/src/session/SessionMessages.ts +63 -121
- package/src/session/SessionState.ts +46 -21
- package/src/session/SessionTitle.ts +23 -40
- package/src/session/browse/Browse.ts +35 -63
- package/src/session/control/SessionInteractions.ts +72 -51
- package/src/session/execution/SessionAssistantOutputAdapter.ts +44 -45
- package/src/session/execution/tools/SessionShellApprovalAdapter.ts +20 -9
- package/src/session/messages/SessionAssistantMessageWriter.ts +259 -637
- package/src/session/messages/SessionJsonValue.ts +0 -23
- package/src/session/messages/SessionMessageCompaction.ts +78 -103
- package/src/session/messages/SessionMessageInteractionWriter.ts +22 -22
- package/src/session/messages/SessionMessageText.ts +73 -0
- package/src/session/preview/SessionMessagePreview.ts +15 -45
- package/src/session/runtime/SessionTurnContext.ts +11 -9
- package/src/session/storage/Metadata.ts +38 -9
- package/src/tools/ask/AskQuestionsTool.ts +28 -17
- package/src/types/action/ActionResult.ts +20 -11
- package/src/types/agent/AgentOptions.ts +6 -13
- package/src/types/agent/AgentSessionCollection.ts +61 -0
- package/src/types/agent/AgentStorage.ts +19 -0
- package/src/types/agent/RemoteAgentOptions.ts +1 -1
- package/src/types/agent/SessionActor.ts +9 -0
- package/src/types/agent/SessionTypes.ts +31 -11
- package/src/types/agent/WorkspaceEntryOptions.ts +18 -0
- package/src/types/executor/SessionAssistantOutput.ts +22 -17
- package/src/types/executor/SessionToolExecutionContext.ts +9 -4
- package/src/types/executor/SessionTurnContext.ts +11 -11
- package/src/types/group/DispatchStrategy.ts +165 -0
- package/src/types/group/Group.ts +64 -0
- package/src/types/group/GroupSession.ts +154 -0
- package/src/types/group/GroupSessionStore.ts +82 -0
- package/src/types/plugin/AgentPluginContext.ts +30 -0
- package/src/types/plugin/PluginAction.ts +7 -5
- package/src/types/plugin/PluginActionExecution.ts +36 -0
- package/src/types/plugin/PluginCommand.ts +5 -5
- package/src/types/plugin/PluginContext.ts +23 -7
- package/src/types/plugin/PluginExecutionContext.ts +6 -11
- package/src/types/plugin/PluginRuntime.ts +5 -0
- package/src/types/plugin/PluginServices.ts +11 -0
- package/src/types/plugin/PluginState.ts +2 -2
- package/src/types/plugin/PluginTool.ts +4 -1
- package/src/types/rpc/RpcProtocol.ts +24 -2
- package/src/types/sdk/AgentSessionAction.ts +8 -9
- package/src/types/sdk/AgentSessionPrompt.ts +8 -11
- package/src/types/session/SessionAction.ts +41 -0
- package/src/types/session/SessionComposer.ts +8 -13
- package/src/types/session/SessionContent.ts +52 -0
- package/src/types/session/SessionExecution.ts +9 -88
- package/src/types/session/SessionInteraction.ts +106 -73
- package/src/types/session/SessionLoop.ts +1 -1
- package/src/types/session/SessionMessage.ts +27 -94
- package/src/types/session/SessionMessages.ts +12 -9
- package/src/types/session/SessionOptions.ts +11 -4
- package/src/types/session/SessionOrigin.ts +21 -0
- package/src/types/session/SessionPort.ts +12 -20
- package/src/types/session/SessionState.ts +7 -4
- package/src/types/session/SessionTool.ts +12 -0
- package/src/types/store/LocalStore.ts +19 -11
- package/src/types/store/SessionAttachmentStore.ts +4 -4
- package/src/types/store/SessionDataStore.ts +109 -0
- package/src/types/store/SessionStore.ts +37 -94
- package/src/types/tools/ToolActionExecutionContext.ts +32 -0
- package/src/utils/logger/Logger.ts +33 -12
- package/src/workspace/WorkspacePaths.ts +7 -51
- package/src/workspace/store/JsonlSessionMessageStore.ts +2 -2
- package/src/workspace/store/LocalGroupSessionDataStore.ts +232 -0
- package/src/workspace/store/LocalGroupSessionStore.ts +90 -0
- package/src/workspace/store/LocalSessionAttachmentStore.ts +3 -3
- package/src/workspace/store/LocalSessionDataStore.ts +169 -0
- package/src/workspace/store/LocalSessionStore.ts +202 -86
- package/src/workspace/store/LocalStorePaths.ts +65 -147
- package/src/workspace/store/SessionMessageStoreFactory.ts +1 -1
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/LICENSE +0 -183
- package/bin/agent/AgentState.d.ts +0 -45
- package/bin/agent/AgentState.d.ts.map +0 -1
- package/bin/agent/AgentState.js +0 -74
- package/bin/agent/AgentState.js.map +0 -1
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +0 -48
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +0 -1
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +0 -92
- package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +0 -1
- package/bin/executor/messages/SessionMessageCodec.d.ts +0 -29
- package/bin/executor/messages/SessionMessageCodec.d.ts.map +0 -1
- package/bin/executor/messages/SessionMessageCodec.js +0 -75
- package/bin/executor/messages/SessionMessageCodec.js.map +0 -1
- package/bin/executor/messages/SessionStepEventMapper.d.ts +0 -19
- package/bin/executor/messages/SessionStepEventMapper.d.ts.map +0 -1
- package/bin/executor/messages/SessionStepEventMapper.js +0 -177
- package/bin/executor/messages/SessionStepEventMapper.js.map +0 -1
- package/bin/executor/messages/UIMessageTransformer.d.ts +0 -29
- package/bin/executor/messages/UIMessageTransformer.d.ts.map +0 -1
- package/bin/executor/messages/UIMessageTransformer.js +0 -114
- package/bin/executor/messages/UIMessageTransformer.js.map +0 -1
- package/bin/executor/messages/UserVisibleText.d.ts +0 -26
- package/bin/executor/messages/UserVisibleText.d.ts.map +0 -1
- package/bin/executor/messages/UserVisibleText.js +0 -65
- package/bin/executor/messages/UserVisibleText.js.map +0 -1
- package/bin/executor/types/SessionRecords.d.ts +0 -162
- package/bin/executor/types/SessionRecords.d.ts.map +0 -1
- package/bin/executor/types/SessionRecords.js +0 -51
- package/bin/executor/types/SessionRecords.js.map +0 -1
- package/bin/plugin/core/PluginActionRunner.d.ts +0 -24
- package/bin/plugin/core/PluginActionRunner.d.ts.map +0 -1
- package/bin/plugin/core/PluginActionRunner.js +0 -19
- package/bin/plugin/core/PluginActionRunner.js.map +0 -1
- package/bin/session/messages/SessionMessageCodec.d.ts +0 -23
- package/bin/session/messages/SessionMessageCodec.d.ts.map +0 -1
- package/bin/session/messages/SessionMessageCodec.js +0 -455
- package/bin/session/messages/SessionMessageCodec.js.map +0 -1
- package/bin/types/agent/AgentState.d.ts +0 -19
- package/bin/types/agent/AgentState.d.ts.map +0 -1
- package/bin/types/agent/AgentState.js +0 -9
- package/bin/types/agent/AgentState.js.map +0 -1
- package/bin/types/store/AgentStore.d.ts +0 -31
- package/bin/types/store/AgentStore.d.ts.map +0 -1
- package/bin/types/store/AgentStore.js +0 -9
- package/bin/types/store/AgentStore.js.map +0 -1
- package/bin/types/workspace/FileSystem.d.ts +0 -55
- package/bin/types/workspace/FileSystem.d.ts.map +0 -1
- package/bin/types/workspace/FileSystem.js +0 -9
- package/bin/types/workspace/FileSystem.js.map +0 -1
- package/bin/types/workspace/FileTool.d.ts +0 -181
- package/bin/types/workspace/FileTool.d.ts.map +0 -1
- package/bin/types/workspace/FileTool.js +0 -10
- package/bin/types/workspace/FileTool.js.map +0 -1
- package/bin/types/workspace/SearchTool.d.ts +0 -131
- package/bin/types/workspace/SearchTool.d.ts.map +0 -1
- package/bin/types/workspace/SearchTool.js +0 -10
- package/bin/types/workspace/SearchTool.js.map +0 -1
- package/bin/types/workspace/Workspace.d.ts +0 -24
- package/bin/types/workspace/Workspace.d.ts.map +0 -1
- package/bin/types/workspace/Workspace.js +0 -9
- package/bin/types/workspace/Workspace.js.map +0 -1
- package/bin/types/workspace/WorkspaceEnv.d.ts +0 -16
- package/bin/types/workspace/WorkspaceEnv.d.ts.map +0 -1
- package/bin/types/workspace/WorkspaceEnv.js +0 -9
- package/bin/types/workspace/WorkspaceEnv.js.map +0 -1
- package/bin/types/workspace/WorkspaceTools.d.ts +0 -20
- package/bin/types/workspace/WorkspaceTools.d.ts.map +0 -1
- package/bin/types/workspace/WorkspaceTools.js +0 -9
- package/bin/types/workspace/WorkspaceTools.js.map +0 -1
- package/bin/utils/cli/CliOutput.d.ts +0 -14
- package/bin/utils/cli/CliOutput.d.ts.map +0 -1
- package/bin/utils/cli/CliOutput.js +0 -98
- package/bin/utils/cli/CliOutput.js.map +0 -1
- package/bin/utils/cli/PrettyStatus.d.ts +0 -25
- package/bin/utils/cli/PrettyStatus.d.ts.map +0 -1
- package/bin/utils/cli/PrettyStatus.js +0 -77
- package/bin/utils/cli/PrettyStatus.js.map +0 -1
- package/bin/utils/logger/FormatRequest.d.ts +0 -29
- package/bin/utils/logger/FormatRequest.d.ts.map +0 -1
- package/bin/utils/logger/FormatRequest.js +0 -309
- package/bin/utils/logger/FormatRequest.js.map +0 -1
- package/bin/utils/logger/FormatResponse.d.ts +0 -46
- package/bin/utils/logger/FormatResponse.d.ts.map +0 -1
- package/bin/utils/logger/FormatResponse.js +0 -186
- package/bin/utils/logger/FormatResponse.js.map +0 -1
- package/bin/utils/logger/FormatShared.d.ts +0 -33
- package/bin/utils/logger/FormatShared.d.ts.map +0 -1
- package/bin/utils/logger/FormatShared.js +0 -215
- package/bin/utils/logger/FormatShared.js.map +0 -1
- package/bin/utils/object/DeepMerge.d.ts +0 -18
- package/bin/utils/object/DeepMerge.d.ts.map +0 -1
- package/bin/utils/object/DeepMerge.js +0 -37
- package/bin/utils/object/DeepMerge.js.map +0 -1
- package/bin/utils/object/ObjectGuards.d.ts +0 -17
- package/bin/utils/object/ObjectGuards.d.ts.map +0 -1
- package/bin/utils/object/ObjectGuards.js +0 -19
- package/bin/utils/object/ObjectGuards.js.map +0 -1
- package/bin/utils/path/AncestorFiles.d.ts +0 -17
- package/bin/utils/path/AncestorFiles.d.ts.map +0 -1
- package/bin/utils/path/AncestorFiles.js +0 -36
- package/bin/utils/path/AncestorFiles.js.map +0 -1
- package/bin/utils/storage/index.d.ts +0 -4
- package/bin/utils/storage/index.d.ts.map +0 -1
- package/bin/utils/storage/index.js +0 -17
- package/bin/utils/storage/index.js.map +0 -1
- package/bin/utils/string/EscapeRegExp.d.ts +0 -17
- package/bin/utils/string/EscapeRegExp.d.ts.map +0 -1
- package/bin/utils/string/EscapeRegExp.js +0 -19
- package/bin/utils/string/EscapeRegExp.js.map +0 -1
- package/bin/workspace/LocalFileSystem.d.ts +0 -44
- package/bin/workspace/LocalFileSystem.d.ts.map +0 -1
- package/bin/workspace/LocalFileSystem.js +0 -153
- package/bin/workspace/LocalFileSystem.js.map +0 -1
- package/bin/workspace/Workspace.d.ts +0 -53
- package/bin/workspace/Workspace.d.ts.map +0 -1
- package/bin/workspace/Workspace.js +0 -151
- package/bin/workspace/Workspace.js.map +0 -1
- package/bin/workspace/WorkspaceBase.d.ts +0 -41
- package/bin/workspace/WorkspaceBase.d.ts.map +0 -1
- package/bin/workspace/WorkspaceBase.js +0 -19
- package/bin/workspace/WorkspaceBase.js.map +0 -1
- package/bin/workspace/WorkspaceEnv.d.ts +0 -19
- package/bin/workspace/WorkspaceEnv.d.ts.map +0 -1
- package/bin/workspace/WorkspaceEnv.js +0 -50
- package/bin/workspace/WorkspaceEnv.js.map +0 -1
- package/bin/workspace/file/FileActionRuntime.d.ts +0 -14
- package/bin/workspace/file/FileActionRuntime.d.ts.map +0 -1
- package/bin/workspace/file/FileActionRuntime.js +0 -386
- package/bin/workspace/file/FileActionRuntime.js.map +0 -1
- package/bin/workspace/file/FileAtomicWriter.d.ts +0 -20
- package/bin/workspace/file/FileAtomicWriter.d.ts.map +0 -1
- package/bin/workspace/file/FileAtomicWriter.js +0 -50
- package/bin/workspace/file/FileAtomicWriter.js.map +0 -1
- package/bin/workspace/file/FileEncoding.d.ts +0 -34
- package/bin/workspace/file/FileEncoding.d.ts.map +0 -1
- package/bin/workspace/file/FileEncoding.js +0 -152
- package/bin/workspace/file/FileEncoding.js.map +0 -1
- package/bin/workspace/file/FilePathPolicy.d.ts +0 -26
- package/bin/workspace/file/FilePathPolicy.d.ts.map +0 -1
- package/bin/workspace/file/FilePathPolicy.js +0 -134
- package/bin/workspace/file/FilePathPolicy.js.map +0 -1
- package/bin/workspace/file/FileToolError.d.ts +0 -30
- package/bin/workspace/file/FileToolError.d.ts.map +0 -1
- package/bin/workspace/file/FileToolError.js +0 -78
- package/bin/workspace/file/FileToolError.js.map +0 -1
- package/bin/workspace/search/SearchActionRuntime.d.ts +0 -14
- package/bin/workspace/search/SearchActionRuntime.d.ts.map +0 -1
- package/bin/workspace/search/SearchActionRuntime.js +0 -359
- package/bin/workspace/search/SearchActionRuntime.js.map +0 -1
- package/bin/workspace/search/SearchToolError.d.ts +0 -26
- package/bin/workspace/search/SearchToolError.d.ts.map +0 -1
- package/bin/workspace/search/SearchToolError.js +0 -76
- package/bin/workspace/search/SearchToolError.js.map +0 -1
- package/bin/workspace/store/LocalAgentStore.d.ts +0 -43
- package/bin/workspace/store/LocalAgentStore.d.ts.map +0 -1
- package/bin/workspace/store/LocalAgentStore.js +0 -135
- package/bin/workspace/store/LocalAgentStore.js.map +0 -1
- package/bin/workspace/tool/FileToolSchemas.d.ts +0 -35
- package/bin/workspace/tool/FileToolSchemas.d.ts.map +0 -1
- package/bin/workspace/tool/FileToolSchemas.js +0 -73
- package/bin/workspace/tool/FileToolSchemas.js.map +0 -1
- package/bin/workspace/tool/FileTools.d.ts +0 -11
- package/bin/workspace/tool/FileTools.d.ts.map +0 -1
- package/bin/workspace/tool/FileTools.js +0 -61
- package/bin/workspace/tool/FileTools.js.map +0 -1
- package/bin/workspace/tool/SearchToolSchemas.d.ts +0 -24
- package/bin/workspace/tool/SearchToolSchemas.d.ts.map +0 -1
- package/bin/workspace/tool/SearchToolSchemas.js +0 -60
- package/bin/workspace/tool/SearchToolSchemas.js.map +0 -1
- package/bin/workspace/tool/SearchTools.d.ts +0 -11
- package/bin/workspace/tool/SearchTools.d.ts.map +0 -1
- package/bin/workspace/tool/SearchTools.js +0 -38
- package/bin/workspace/tool/SearchTools.js.map +0 -1
- package/bin/workspace/tool/WorkspaceTools.d.ts +0 -11
- package/bin/workspace/tool/WorkspaceTools.d.ts.map +0 -1
- package/bin/workspace/tool/WorkspaceTools.js +0 -22
- package/bin/workspace/tool/WorkspaceTools.js.map +0 -1
- package/scripts/core-engine-ui-stream-collector.test.mjs +0 -38
- package/scripts/openai-responses-continuation.test.mjs +0 -78
- package/src/agent/AgentState.ts +0 -96
- package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +0 -136
- package/src/executor/messages/SessionMessageCodec.ts +0 -106
- package/src/executor/messages/SessionStepEventMapper.ts +0 -191
- package/src/executor/messages/UIMessageTransformer.ts +0 -152
- package/src/executor/messages/UserVisibleText.ts +0 -75
- package/src/executor/types/SessionRecords.ts +0 -217
- package/src/plugin/core/PluginActionRunner.ts +0 -36
- package/src/session/messages/SessionMessageCodec.ts +0 -495
- package/src/types/agent/AgentState.ts +0 -22
- package/src/types/store/AgentStore.ts +0 -52
- package/src/types/workspace/FileSystem.ts +0 -76
- package/src/types/workspace/FileTool.ts +0 -225
- package/src/types/workspace/SearchTool.ts +0 -156
- package/src/types/workspace/Workspace.ts +0 -27
- package/src/types/workspace/WorkspaceEnv.ts +0 -19
- package/src/types/workspace/WorkspaceTools.ts +0 -23
- package/src/utils/cli/CliOutput.ts +0 -128
- package/src/utils/cli/PrettyStatus.ts +0 -94
- package/src/utils/logger/FormatRequest.ts +0 -455
- package/src/utils/logger/FormatResponse.ts +0 -265
- package/src/utils/logger/FormatShared.ts +0 -258
- package/src/utils/object/DeepMerge.ts +0 -40
- package/src/utils/object/ObjectGuards.ts +0 -19
- package/src/utils/path/AncestorFiles.ts +0 -40
- package/src/utils/storage/index.ts +0 -19
- package/src/utils/string/EscapeRegExp.ts +0 -19
- package/src/workspace/LocalFileSystem.ts +0 -209
- package/src/workspace/Workspace.ts +0 -178
- package/src/workspace/WorkspaceBase.ts +0 -62
- package/src/workspace/WorkspaceEnv.ts +0 -54
- package/src/workspace/file/FileActionRuntime.ts +0 -433
- package/src/workspace/file/FileAtomicWriter.ts +0 -61
- package/src/workspace/file/FileEncoding.ts +0 -175
- package/src/workspace/file/FilePathPolicy.ts +0 -162
- package/src/workspace/file/FileToolError.ts +0 -99
- package/src/workspace/search/SearchActionRuntime.ts +0 -438
- package/src/workspace/search/SearchToolError.ts +0 -94
- package/src/workspace/store/LocalAgentStore.ts +0 -191
- package/src/workspace/tool/FileToolSchemas.ts +0 -77
- package/src/workspace/tool/FileTools.ts +0 -91
- package/src/workspace/tool/SearchToolSchemas.ts +0 -62
- package/src/workspace/tool/SearchTools.ts +0 -61
- package/src/workspace/tool/WorkspaceTools.ts +0 -31
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/** Group 调度策略:为当前消息上下文生成一组有依赖关系的成员投递节点。 */
|
|
2
|
+
|
|
3
|
+
import type { GroupMessage } from "@/types/group/Group.js";
|
|
4
|
+
import type { Agent } from "@/agent/Agent.js";
|
|
5
|
+
import type { AgentModel } from "@/agent/AgentModel.js";
|
|
6
|
+
import type { ModelClient, ModelJsonValue } from "@downcity/type";
|
|
7
|
+
import { generate_model } from "@executor/model/ModelGenerate.js";
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
|
|
10
|
+
/** 一个投递节点内成员的发言方式。 */
|
|
11
|
+
export type DispatchResponseMode = "single" | "parallel";
|
|
12
|
+
|
|
13
|
+
/** 本次调度的触发来源。 */
|
|
14
|
+
export type DispatchTrigger = "user" | "auto";
|
|
15
|
+
|
|
16
|
+
/** 调度图中的一个成员投递节点。 */
|
|
17
|
+
export interface DispatchNode {
|
|
18
|
+
/** 当前调度图内的稳定节点标识。 */
|
|
19
|
+
readonly node_id: string;
|
|
20
|
+
/** 当前节点允许接收消息的成员标识。 */
|
|
21
|
+
readonly member_ids: readonly string[];
|
|
22
|
+
/** 当前节点只运行首个成员,还是允许全部成员并行运行。 */
|
|
23
|
+
readonly response_mode: DispatchResponseMode;
|
|
24
|
+
/** 当前节点依赖的前置节点标识;依赖完成后才能投递。 */
|
|
25
|
+
readonly depends_on_node_ids: readonly string[];
|
|
26
|
+
/** 注入成员 AgentSession 的发言约束。 */
|
|
27
|
+
readonly instruction: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** 一次调度生成的当前最佳响应图。 */
|
|
31
|
+
export interface DispatchDecision {
|
|
32
|
+
/** 当前调度图中的投递节点。 */
|
|
33
|
+
readonly nodes: readonly DispatchNode[];
|
|
34
|
+
/** 当前图完成后是否允许唯一的 GroupSession auto dispatch 继续判断。 */
|
|
35
|
+
readonly terminal: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Group 调度策略协议。 */
|
|
39
|
+
export interface DispatchStrategy {
|
|
40
|
+
/** 根据触发来源、当前消息、历史和成员关系生成当前最佳响应图。 */
|
|
41
|
+
decide_dispatch(input: {
|
|
42
|
+
/** 本次调度由用户消息触发,还是由 GroupSession 自动收口触发。 */
|
|
43
|
+
readonly trigger: DispatchTrigger;
|
|
44
|
+
/** 当前待调度的 Group 消息;auto dispatch 时为本批新增消息中的最后一条。 */
|
|
45
|
+
readonly message: GroupMessage;
|
|
46
|
+
/** 当前 auto dispatch 尚未消费的新增消息。 */
|
|
47
|
+
readonly pending_messages: readonly GroupMessage[];
|
|
48
|
+
/** 当前 Group 已存在的消息历史。 */
|
|
49
|
+
readonly messages: readonly GroupMessage[];
|
|
50
|
+
/** 当前 Group 成员快照。 */
|
|
51
|
+
readonly members: readonly Agent[];
|
|
52
|
+
}): Promise<DispatchDecision> | DispatchDecision;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** AI 调度策略的构造参数。 */
|
|
56
|
+
export interface AiDispatchStrategyOptions {
|
|
57
|
+
/** Group 用于理解群聊意图并生成调度图的模型。 */
|
|
58
|
+
readonly model?: AgentModel;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** AI 调度工具的最小输入协议;外层阶段串行,阶段内成员并行。 */
|
|
62
|
+
const dispatch_group_input_schema = z.object({
|
|
63
|
+
steps: z.array(z.array(z.string().trim().min(1)).min(1).max(16)).max(16),
|
|
64
|
+
/** 当前响应图完成后是否交给唯一的 auto dispatch 继续判断。 */
|
|
65
|
+
next: z.enum(["stop", "continue"]),
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
/** 使用 Group.model 理解群聊意图并通过内部 tool call 生成成员投递决定。 */
|
|
69
|
+
export class AiDispatchStrategy implements DispatchStrategy {
|
|
70
|
+
private readonly model?: ModelClient;
|
|
71
|
+
|
|
72
|
+
constructor(options: AiDispatchStrategyOptions = {}) {
|
|
73
|
+
this.model = options.model;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async decide_dispatch(input: {
|
|
77
|
+
readonly trigger: DispatchTrigger;
|
|
78
|
+
readonly message: GroupMessage;
|
|
79
|
+
readonly pending_messages: readonly GroupMessage[];
|
|
80
|
+
readonly messages: readonly GroupMessage[];
|
|
81
|
+
readonly members: readonly Agent[];
|
|
82
|
+
}): Promise<DispatchDecision> {
|
|
83
|
+
if (!this.model) {
|
|
84
|
+
throw new Error("Group requires a configured model for dispatch");
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const result = await generate_model(this.model, {
|
|
88
|
+
messages: [
|
|
89
|
+
{ role: "system", content: [{ type: "text", text: "你是群聊消息调度器。你只能调用 dispatch_group,不回答用户问题。普通任务默认只选择一个最合适的成员;只有用户明确要求多人分别回答,或确实存在并行的独立工作时,才把多个成员放在同一阶段。外层 steps 阶段按顺序执行,后一个阶段等待前一个阶段完成。只有真实存在的成员才能被选择。" }] },
|
|
90
|
+
{ role: "user", content: [{ type: "text", text: build_dispatch_prompt(input) }] },
|
|
91
|
+
],
|
|
92
|
+
tools: [{
|
|
93
|
+
name: "dispatch_group",
|
|
94
|
+
description: "提交当前 Group 的成员投递路径。只调用一次;不要输出普通文本。没有成员需要回复时使用空 steps 和 next=stop。",
|
|
95
|
+
input_schema: z.toJSONSchema(dispatch_group_input_schema) as Record<string, ModelJsonValue>,
|
|
96
|
+
}],
|
|
97
|
+
tool_choice: { type: "tool", tool_name: "dispatch_group" },
|
|
98
|
+
max_output_tokens: 600,
|
|
99
|
+
reasoning: { enabled: false },
|
|
100
|
+
});
|
|
101
|
+
if (result.tool_calls.length !== 1 || result.tool_calls[0]?.tool_name !== "dispatch_group") {
|
|
102
|
+
throw new Error("Group dispatch model did not call dispatch_group");
|
|
103
|
+
}
|
|
104
|
+
return normalize_dispatch_tool_input(result.tool_calls[0].input, input.members);
|
|
105
|
+
} catch (error) {
|
|
106
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
107
|
+
throw new Error(`Group dispatch model failed: ${detail}`, { cause: error });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** 为 AI 调度器构造稳定、有限长度的群聊上下文。 */
|
|
113
|
+
function build_dispatch_prompt(input: {
|
|
114
|
+
readonly trigger: DispatchTrigger;
|
|
115
|
+
readonly message: GroupMessage;
|
|
116
|
+
readonly pending_messages: readonly GroupMessage[];
|
|
117
|
+
readonly messages: readonly GroupMessage[];
|
|
118
|
+
readonly members: readonly Agent[];
|
|
119
|
+
}): string {
|
|
120
|
+
const members = input.members.map((member) => `- ${member.id}`).join("\n");
|
|
121
|
+
const history = input.messages.slice(-20).map((message) => `${message.sender_type}:${message.sender_id}: ${message.text}`).join("\n");
|
|
122
|
+
return [
|
|
123
|
+
"成员:",
|
|
124
|
+
members,
|
|
125
|
+
"最近群聊:",
|
|
126
|
+
history || "(无)",
|
|
127
|
+
"本次新增消息:",
|
|
128
|
+
input.pending_messages.map((message) => `${message.sender_type}:${message.sender_id}: ${message.text}`).join("\n") || "(无)",
|
|
129
|
+
`调度触发来源:${input.trigger}`,
|
|
130
|
+
"当前消息:",
|
|
131
|
+
`${input.message.sender_type}:${input.message.sender_id}: ${input.message.text}`,
|
|
132
|
+
"请调用 dispatch_group,输入 steps 和 next。steps 是二维数组:外层阶段按顺序执行,同一阶段数组内的成员并行执行;没有成员需要回复时使用空 steps 和 next=stop。不要输出普通文本。",
|
|
133
|
+
].join("\n");
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** 将 AI tool call 编译为内部执行图,并确保只引用真实成员。 */
|
|
137
|
+
function normalize_dispatch_tool_input(value: unknown, members: readonly Agent[]): DispatchDecision {
|
|
138
|
+
const parsed = dispatch_group_input_schema.parse(value);
|
|
139
|
+
const valid_ids = new Set(members.map((member) => member.id));
|
|
140
|
+
const nodes = parsed.steps.map((member_ids, index) => {
|
|
141
|
+
const unique_member_ids = [...new Set(member_ids)];
|
|
142
|
+
if (unique_member_ids.length !== member_ids.length) {
|
|
143
|
+
throw new Error(`Group dispatch selected member more than once in step ${index}`);
|
|
144
|
+
}
|
|
145
|
+
for (const member_id of unique_member_ids) {
|
|
146
|
+
if (!valid_ids.has(member_id)) {
|
|
147
|
+
throw new Error(`Group dispatch selected unknown member: ${member_id}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
node_id: `step-${index}`,
|
|
152
|
+
member_ids: unique_member_ids,
|
|
153
|
+
response_mode: unique_member_ids.length > 1 ? "parallel" as const : "single" as const,
|
|
154
|
+
depends_on_node_ids: index === 0 ? [] : [`step-${index - 1}`],
|
|
155
|
+
instruction: "根据当前 Group 上下文判断是否需要回复,只代表自己发言;不需要时返回空内容。",
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
if (nodes.length === 0 && parsed.next === "continue") {
|
|
159
|
+
throw new Error("Group dispatch cannot continue without any member step");
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
nodes,
|
|
163
|
+
terminal: parsed.next === "stop",
|
|
164
|
+
};
|
|
165
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** Group 的公开领域类型:Group 是持续存在的群聊主体。 */
|
|
2
|
+
|
|
3
|
+
import type { Agent } from "@/agent/Agent.js";
|
|
4
|
+
import type { AgentModel } from "@/agent/AgentModel.js";
|
|
5
|
+
import type { DispatchStrategy } from "@/types/group/DispatchStrategy.js";
|
|
6
|
+
import type { GroupSessions } from "@/types/group/GroupSession.js";
|
|
7
|
+
|
|
8
|
+
/** 创建 Group 的参数。 */
|
|
9
|
+
export interface GroupOptions {
|
|
10
|
+
/** Group 的稳定标识。 */
|
|
11
|
+
readonly id: string;
|
|
12
|
+
/** Group 的展示名称;省略时使用 id。 */
|
|
13
|
+
readonly name?: string;
|
|
14
|
+
/** Group 的可选协作说明。 */
|
|
15
|
+
readonly instruction?: string;
|
|
16
|
+
/** Group 用于理解群聊意图并选择投递成员的模型。 */
|
|
17
|
+
readonly model?: AgentModel;
|
|
18
|
+
/** Group 成员列表。 */
|
|
19
|
+
readonly members: readonly Agent[];
|
|
20
|
+
/** Group 的消息调度策略;省略时使用 Group.model 驱动的 AI 调度。 */
|
|
21
|
+
readonly dispatch_strategy?: DispatchStrategy;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Group 中的一条共享消息。 */
|
|
25
|
+
export interface GroupMessage {
|
|
26
|
+
/** 消息稳定标识。 */
|
|
27
|
+
readonly id: string;
|
|
28
|
+
/** 所属 Group 标识。 */
|
|
29
|
+
readonly group_id: string;
|
|
30
|
+
/** 消息发送者标识;用户消息使用 user,系统消息使用 system。 */
|
|
31
|
+
readonly sender_id: string;
|
|
32
|
+
/** 消息发送者类型。 */
|
|
33
|
+
readonly sender_type: "user" | "agent" | "system";
|
|
34
|
+
/** 消息正文。 */
|
|
35
|
+
readonly text: string;
|
|
36
|
+
/** 可选的被回复消息标识。 */
|
|
37
|
+
readonly reply_to?: string;
|
|
38
|
+
/** 可选的用户 GroupTurn 标识;同一用户请求产生的消息共享此标识。 */
|
|
39
|
+
readonly turn_id?: string;
|
|
40
|
+
/** 可选的自动调度运行标识;自动调度产生的消息使用此标识。 */
|
|
41
|
+
readonly dispatch_id?: string;
|
|
42
|
+
/** 可选的响应图节点标识。 */
|
|
43
|
+
readonly dispatch_node_id?: string;
|
|
44
|
+
/** 创建时间的 Unix 毫秒时间戳。 */
|
|
45
|
+
readonly created_at: number;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Group 公开能力。 */
|
|
49
|
+
export interface GroupContract {
|
|
50
|
+
/** Group 的稳定标识。 */
|
|
51
|
+
readonly id: string;
|
|
52
|
+
/** Group 的展示名称。 */
|
|
53
|
+
readonly name: string;
|
|
54
|
+
/** Group 的协作说明。 */
|
|
55
|
+
readonly instruction?: string;
|
|
56
|
+
/** Group 用于理解群聊意图并生成成员投递图的模型;未提供时首次调度会失败。 */
|
|
57
|
+
readonly model?: AgentModel;
|
|
58
|
+
/** Group 成员快照。 */
|
|
59
|
+
readonly members: readonly Agent[];
|
|
60
|
+
/** Group 使用的消息调度策略。 */
|
|
61
|
+
readonly dispatch_strategy: DispatchStrategy;
|
|
62
|
+
/** 当前 Group 创建的独立群聊上下文集合。 */
|
|
63
|
+
readonly sessions: GroupSessions;
|
|
64
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/** GroupSession 的公开领域类型:一次 Group 的独立群聊上下文。 */
|
|
2
|
+
|
|
3
|
+
import type { AgentSession } from "@/types/agent/SessionActor.js";
|
|
4
|
+
import type { GroupMessage } from "@/types/group/Group.js";
|
|
5
|
+
import type { Agent } from "@/agent/Agent.js";
|
|
6
|
+
import type { WorkspaceBase } from "@downcity/workspace";
|
|
7
|
+
import type { RespondSessionInteractionInput, SessionInteractionRequest } from "@/types/session/SessionInteraction.js";
|
|
8
|
+
|
|
9
|
+
/** Group 成员运行态。 */
|
|
10
|
+
export interface GroupMemberRuntime {
|
|
11
|
+
/** 成员 Agent 标识。 */
|
|
12
|
+
readonly agent_id: string;
|
|
13
|
+
/** 当前是否正在执行。 */
|
|
14
|
+
readonly running: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Group 运行阶段。 */
|
|
18
|
+
export type GroupStatusPhase = "idle" | "dispatching" | "dispatched" | "executing" | "stopped" | "failed";
|
|
19
|
+
|
|
20
|
+
/** GroupSession 的统一实时事件。 */
|
|
21
|
+
export type GroupEvent =
|
|
22
|
+
| { /** 事件类型。 */ readonly type: "message"; /** 新增的共享消息。 */ readonly message: GroupMessage }
|
|
23
|
+
| { /** 事件类型。 */ readonly type: "interaction"; /** 发起交互的成员 Agent。 */ readonly agent_id: string; /** 成员 Session 的交互请求。 */ readonly request: SessionInteractionRequest }
|
|
24
|
+
| { /** 事件类型。 */ readonly type: "status"; /** 当前群聊轮次。 */ readonly turn_id?: string; /** 当前轮次对应的消息标识。 */ readonly message_id?: string; /** 当前运行阶段。 */ readonly phase: GroupStatusPhase; /** Dispatch 完成后实际接受消息的成员标识。 */ readonly dispatched_member_ids?: readonly string[]; /** 成员运行态快照。 */ readonly members: readonly GroupMemberRuntime[] };
|
|
25
|
+
|
|
26
|
+
/** Group 事件订阅回调。 */
|
|
27
|
+
export type GroupEventSubscriber = (event: GroupEvent) => void | Promise<void>;
|
|
28
|
+
|
|
29
|
+
/** 取消 Group 消息订阅。 */
|
|
30
|
+
export type GroupEventUnsubscribe = () => void;
|
|
31
|
+
|
|
32
|
+
/** GroupSession 接收一条用户消息后的异步调度回执。 */
|
|
33
|
+
export interface GroupPromptResult {
|
|
34
|
+
/** 当前用户消息对应的 GroupTurn 标识。 */
|
|
35
|
+
readonly turn_id: string;
|
|
36
|
+
/** 用户消息是否已经成功写入并开始调度;不代表成员已经完成回复。 */
|
|
37
|
+
readonly success: boolean;
|
|
38
|
+
/** 回执生成时共享消息总数。 */
|
|
39
|
+
readonly message_count: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** 向 GroupSession 发言的输入。 */
|
|
43
|
+
export interface GroupPromptInput {
|
|
44
|
+
/** 用户消息正文。 */
|
|
45
|
+
readonly query: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** GroupSession 列表使用的轻量摘要,不加载消息历史。 */
|
|
49
|
+
export interface GroupSessionSummary {
|
|
50
|
+
/** GroupSession 稳定标识。 */
|
|
51
|
+
readonly id: string;
|
|
52
|
+
/** 所属 Group 稳定标识。 */
|
|
53
|
+
readonly group_id: string;
|
|
54
|
+
/** 首次创建时间戳。 */
|
|
55
|
+
readonly created_at: number;
|
|
56
|
+
/** 最近更新时间戳。 */
|
|
57
|
+
readonly updated_at: number;
|
|
58
|
+
/** 已持久化消息数量。 */
|
|
59
|
+
readonly message_count: number;
|
|
60
|
+
/** 当前 GroupSession 绑定的 Workspace 标识。 */
|
|
61
|
+
readonly workspace_id?: string;
|
|
62
|
+
/** 最后一条消息的用户可见预览。 */
|
|
63
|
+
readonly preview_text?: string;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** GroupSession 的创建输入;第一阶段不允许调用方指定 session_id。 */
|
|
67
|
+
export interface GroupSessionCreateInput {
|
|
68
|
+
/** 当前群聊使用的 Workspace;省略时使用内存执行上下文。 */
|
|
69
|
+
readonly workspace?: WorkspaceBase;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** 恢复 GroupSession 时的上下文输入。 */
|
|
73
|
+
export interface GroupSessionGetInput {
|
|
74
|
+
/** 当前群聊使用的 Workspace;必须与持久化 metadata 一致。 */
|
|
75
|
+
readonly workspace?: WorkspaceBase;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** GroupSession 列表过滤条件。 */
|
|
79
|
+
export interface GroupSessionListInput {
|
|
80
|
+
/** 只返回绑定到指定 Workspace 的群聊上下文。 */
|
|
81
|
+
readonly workspace_id?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** GroupSession 公开能力。 */
|
|
85
|
+
export interface GroupSessionContract {
|
|
86
|
+
/** 当前群聊上下文的稳定标识。 */
|
|
87
|
+
readonly id: string;
|
|
88
|
+
/** 所属 Group 的稳定标识。 */
|
|
89
|
+
readonly group_id: string;
|
|
90
|
+
/** 当前 GroupSession 绑定的 Workspace ID;未绑定时为空。 */
|
|
91
|
+
readonly workspace_id?: string;
|
|
92
|
+
/** 立即追加用户消息并开始异步群聊调度。 */
|
|
93
|
+
prompt(input: GroupPromptInput): Promise<GroupPromptResult>;
|
|
94
|
+
/** 读取共享消息事实快照。 */
|
|
95
|
+
messages(): Promise<readonly GroupMessage[]>;
|
|
96
|
+
/** 订阅共享消息。 */
|
|
97
|
+
subscribe(subscriber: GroupEventSubscriber): GroupEventUnsubscribe;
|
|
98
|
+
/** 响应成员 Agent Session 当前等待的 Interaction。 */
|
|
99
|
+
respond_interaction(input: RespondSessionInteractionInput): Promise<void>;
|
|
100
|
+
/** 停止当前传播和成员执行;停止完成后可再次 prompt。 */
|
|
101
|
+
stop(): Promise<void>;
|
|
102
|
+
/** 释放当前上下文,不再接受新的 prompt。 */
|
|
103
|
+
dispose(): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/** GroupSession 的公开实例类型。 */
|
|
107
|
+
export interface GroupSession extends GroupSessionContract {}
|
|
108
|
+
|
|
109
|
+
/** GroupSession 集合公开能力。 */
|
|
110
|
+
export interface GroupSessions {
|
|
111
|
+
/** 创建一个新的群聊上下文,标识由集合内部生成。 */
|
|
112
|
+
create(input?: GroupSessionCreateInput): Promise<GroupSession>;
|
|
113
|
+
/** 从 Storage 恢复当前 Group 的一个群聊上下文。 */
|
|
114
|
+
get(session_id: string, input?: GroupSessionGetInput): Promise<GroupSession | null>;
|
|
115
|
+
/** 从 Storage 恢复当前 Group 的全部群聊上下文。 */
|
|
116
|
+
list(input?: GroupSessionListInput): Promise<readonly GroupSessionSummary[]>;
|
|
117
|
+
/** 释放并移除指定群聊上下文。 */
|
|
118
|
+
remove(session_id: string, input?: GroupSessionGetInput): Promise<GroupSession | null>;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** GroupSession 的内部依赖快照。 */
|
|
122
|
+
export interface GroupSessionRuntimeContext {
|
|
123
|
+
/** 当前 Group 的成员。 */
|
|
124
|
+
readonly members: readonly Agent[];
|
|
125
|
+
/** 当前 Group 的协作说明。 */
|
|
126
|
+
readonly instruction?: string;
|
|
127
|
+
/** 当前 Group 的消息调度策略。 */
|
|
128
|
+
readonly dispatch_strategy: import("@/types/group/DispatchStrategy.js").DispatchStrategy;
|
|
129
|
+
/** 当前 Group 的稳定标识。 */
|
|
130
|
+
readonly group_id: string;
|
|
131
|
+
/** 当前 Group 的展示名称。 */
|
|
132
|
+
readonly group_name: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** 当前群聊上下文中由 Agent 持有的成员 Session。 */
|
|
136
|
+
export type GroupMemberSession = AgentSession;
|
|
137
|
+
|
|
138
|
+
/** GroupSession 内部维护的一次用户请求运行记录。 */
|
|
139
|
+
export interface GroupTurnRuntime {
|
|
140
|
+
/** 用户请求对应的 GroupTurn 标识。 */
|
|
141
|
+
readonly turn_id: string;
|
|
142
|
+
/** 用户根消息标识。 */
|
|
143
|
+
readonly root_message_id: string;
|
|
144
|
+
/** 用户消息写入时冻结的上下文消息标识。 */
|
|
145
|
+
readonly context_message_ids: readonly string[];
|
|
146
|
+
/** 当前 GroupTurn 的异步 user dispatch。 */
|
|
147
|
+
user_dispatch?: Promise<void>;
|
|
148
|
+
/** 当前 GroupTurn 是否等待 GroupSession 的 auto dispatch。 */
|
|
149
|
+
auto_pending: boolean;
|
|
150
|
+
/** 当前 GroupTurn 是否已经停止或失败。 */
|
|
151
|
+
stopped: boolean;
|
|
152
|
+
/** 当前 GroupTurn 是否由持久化检查点恢复,只等待统一 auto dispatch 收口。 */
|
|
153
|
+
readonly recovered?: boolean;
|
|
154
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/** GroupSession 持久化协议:只描述 GroupSession 所需的底层数据能力。 */
|
|
2
|
+
|
|
3
|
+
import type { GroupMessage } from "@/types/group/Group.js";
|
|
4
|
+
import type { FileSystem } from "@downcity/workspace";
|
|
5
|
+
|
|
6
|
+
/** GroupSession 的持久化元数据。 */
|
|
7
|
+
export interface GroupSessionHistoryMeta {
|
|
8
|
+
/** metadata schema 版本。 */
|
|
9
|
+
readonly v: 1;
|
|
10
|
+
/** 当前 GroupSession 标识。 */
|
|
11
|
+
readonly session_id: string;
|
|
12
|
+
/** 所属 Group 标识。 */
|
|
13
|
+
readonly group_id: string;
|
|
14
|
+
/** 当前 GroupSession 绑定的 Workspace 标识;未绑定时为空。 */
|
|
15
|
+
readonly workspace_id?: string;
|
|
16
|
+
/** 首次创建时间戳。 */
|
|
17
|
+
readonly created_at: number;
|
|
18
|
+
/** 最近更新时间戳。 */
|
|
19
|
+
readonly updated_at: number;
|
|
20
|
+
/** 已持久化消息数量。 */
|
|
21
|
+
readonly message_count: number;
|
|
22
|
+
/** 最后一条消息的用户可见预览。 */
|
|
23
|
+
readonly preview_text?: string;
|
|
24
|
+
/** GroupSession 为每个成员 Agent 复用的 AgentSession 标识。 */
|
|
25
|
+
readonly member_session_ids?: Readonly<Record<string, string>>;
|
|
26
|
+
/** 尚未完成收口的 GroupTurn 检查点;进程重启后仅据此恢复 auto dispatch。 */
|
|
27
|
+
readonly pending_turns?: readonly GroupSessionTurnCheckpoint[];
|
|
28
|
+
/** 进程中断前尚未消费的 auto dispatch frontier 消息标识。 */
|
|
29
|
+
readonly auto_frontier_message_ids?: readonly string[];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** GroupSession 可恢复的最小运行检查点。 */
|
|
33
|
+
export interface GroupSessionTurnCheckpoint {
|
|
34
|
+
/** 用户请求对应的 GroupTurn 标识。 */
|
|
35
|
+
readonly turn_id: string;
|
|
36
|
+
/** 用户根消息标识。 */
|
|
37
|
+
readonly root_message_id: string;
|
|
38
|
+
/** 用户消息写入时冻结的上下文消息标识。 */
|
|
39
|
+
readonly context_message_ids: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** 单个 GroupSession 的持久化数据视图。 */
|
|
43
|
+
export interface GroupSessionDataStore {
|
|
44
|
+
/** 当前 GroupSession 标识。 */
|
|
45
|
+
readonly session_id: string;
|
|
46
|
+
/** 初始化当前 GroupSession 的存储布局。 */
|
|
47
|
+
initialize(): Promise<void>;
|
|
48
|
+
/** 读取完整共享消息历史。 */
|
|
49
|
+
list_messages(): Promise<GroupMessage[]>;
|
|
50
|
+
/** 追加一条消息并同步更新 metadata。 */
|
|
51
|
+
append_message(message: GroupMessage): Promise<void>;
|
|
52
|
+
/** 读取当前 GroupSession metadata。 */
|
|
53
|
+
read_metadata(): Promise<GroupSessionHistoryMeta>;
|
|
54
|
+
/** 写入当前 GroupSession metadata。 */
|
|
55
|
+
write_metadata(metadata: GroupSessionHistoryMeta): Promise<void>;
|
|
56
|
+
/** 在文件锁内合并更新当前 GroupSession metadata。 */
|
|
57
|
+
update_metadata(patch: Partial<GroupSessionHistoryMeta>): Promise<GroupSessionHistoryMeta>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Group 所拥有的全部 GroupSession 持久化入口。 */
|
|
61
|
+
export interface GroupSessionStore {
|
|
62
|
+
/** 返回指定 GroupSession 的持久化视图。 */
|
|
63
|
+
session(session_id: string): GroupSessionDataStore;
|
|
64
|
+
/** 判断指定 GroupSession 是否存在。 */
|
|
65
|
+
has_session(session_id: string): Promise<boolean>;
|
|
66
|
+
/** 列出当前 Group 的持久化 Session metadata。 */
|
|
67
|
+
list_session_metadata(): Promise<GroupSessionHistoryMeta[]>;
|
|
68
|
+
/** 删除指定 GroupSession 的全部数据。 */
|
|
69
|
+
remove_session(session_id: string): Promise<boolean>;
|
|
70
|
+
/** 释放当前 Store 持有的资源。 */
|
|
71
|
+
dispose(): Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** 创建基于 City StorageScope 的 GroupSession Store。 */
|
|
75
|
+
export interface GroupSessionStoreOptions {
|
|
76
|
+
/** City StorageScope 提供的受控文件能力。 */
|
|
77
|
+
readonly files: FileSystem;
|
|
78
|
+
/** 当前 Group 的存储作用域根目录。 */
|
|
79
|
+
readonly storage_root_path: string;
|
|
80
|
+
/** 当前 Group 稳定标识。 */
|
|
81
|
+
readonly group_id: string;
|
|
82
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentPluginContext:Plugin 在 Agent 级生命周期中可访问的最小能力。
|
|
3
|
+
*
|
|
4
|
+
* 边界说明(中文)
|
|
5
|
+
* - 该上下文不包含 Workspace,避免 Agent 级资源意外绑定第一个项目。
|
|
6
|
+
* - 该上下文不暴露完整 City,只暴露宿主明确注入的 Embassy 能力。
|
|
7
|
+
* - Plugin 是否需要 Agent 级生命周期,由 Plugin 自己是否实现 start/stop 决定。
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { Logger } from "@/utils/logger/Logger.js";
|
|
11
|
+
import type { PluginWebServices } from "@/types/plugin/PluginServices.js";
|
|
12
|
+
import type { Embassy } from "@downcity/federation";
|
|
13
|
+
|
|
14
|
+
/** Plugin 的 Agent 级生命周期上下文。 */
|
|
15
|
+
export interface AgentPluginContext {
|
|
16
|
+
/** 当前 Agent 的稳定标识。 */
|
|
17
|
+
readonly agent_id: string;
|
|
18
|
+
|
|
19
|
+
/** 当前 Agent 的全局日志器,不绑定任何 Workspace 文件系统。 */
|
|
20
|
+
readonly logger: Logger;
|
|
21
|
+
|
|
22
|
+
/** 当前 Agent 持有的 Web 搜索与文档能力。 */
|
|
23
|
+
readonly web?: PluginWebServices;
|
|
24
|
+
|
|
25
|
+
/** City 注入的 Embassy 能力;Agent 未加入 City 时为空。 */
|
|
26
|
+
readonly embassy?: Embassy;
|
|
27
|
+
|
|
28
|
+
/** 动态读取当前 Agent 静态指令的只读快照。 */
|
|
29
|
+
readonly instructions: readonly string[];
|
|
30
|
+
}
|
|
@@ -10,7 +10,7 @@ import type { Command } from "commander";
|
|
|
10
10
|
import type { Context as HonoContext } from "hono";
|
|
11
11
|
import type { z } from "zod";
|
|
12
12
|
import type { PluginContext } from "@/types/plugin/PluginContext.js";
|
|
13
|
-
import type {
|
|
13
|
+
import type { PluginActionExecutionContext } from "@/types/plugin/PluginActionExecution.js";
|
|
14
14
|
import type { JsonObject, JsonValue } from "@/types/common/Json.js";
|
|
15
15
|
import type { ActionResultMessage } from "@/types/action/ActionResult.js";
|
|
16
16
|
|
|
@@ -134,6 +134,8 @@ export interface PluginActionMetadata<P extends JsonValue = JsonValue> {
|
|
|
134
134
|
input_schema?: PluginActionInputSchema<P>;
|
|
135
135
|
/** Action 调用示例。 */
|
|
136
136
|
examples?: PluginActionExample<P>[];
|
|
137
|
+
/** Action 的协作式超时上限(毫秒);Action 必须监听 execution.abort_signal。 */
|
|
138
|
+
timeout_ms?: number;
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
/**
|
|
@@ -149,16 +151,16 @@ export interface PluginAction<
|
|
|
149
151
|
api?: PluginActionApi<P>;
|
|
150
152
|
/** Action 执行器。 */
|
|
151
153
|
execute: (params: {
|
|
152
|
-
/**
|
|
154
|
+
/** WorkspaceEntry 创建的稳定 Plugin 能力视图。 */
|
|
153
155
|
context: PluginContext;
|
|
154
156
|
/**
|
|
155
157
|
* 当前 action 所属 Session Turn 的只读 Plugin 执行快照。
|
|
156
158
|
*
|
|
157
159
|
* 关键点(中文)
|
|
158
|
-
* - 模型 tool
|
|
159
|
-
* - CLI、HTTP
|
|
160
|
+
* - 模型 tool 调用复用对应 tool call ID 和 Turn 取消信号。
|
|
161
|
+
* - CLI、HTTP 与定时任务等非 Session 入口由 Registry 补齐调用身份和取消信号。
|
|
160
162
|
*/
|
|
161
|
-
|
|
163
|
+
execution: PluginActionExecutionContext;
|
|
162
164
|
/** 已通过 schema 校验后的输入。 */
|
|
163
165
|
input: P;
|
|
164
166
|
/** 当前插件名称。 */
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Action 单次执行上下文。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 每次 Action 调用都获得独立、只读的身份与取消快照。
|
|
6
|
+
* - Agent 与 Workspace 的稳定身份只保留在 PluginContext,不复制到单次执行对象。
|
|
7
|
+
* - Session 字段来自可选的 PluginExecutionContext;HTTP、CLI 与 Schedule 调用可以没有 Session。
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { PluginExecutionContext } from "@/types/plugin/PluginExecutionContext.js";
|
|
11
|
+
import type { SessionInteractionPort } from "@/types/session/SessionInteraction.js";
|
|
12
|
+
|
|
13
|
+
/** 当前 Action 所属 Session 的执行范围。 */
|
|
14
|
+
export interface PluginSessionExecutionScope {
|
|
15
|
+
/** 当前 Session 标识。 */
|
|
16
|
+
readonly session_id: string;
|
|
17
|
+
/** 当前 Turn 标识。 */
|
|
18
|
+
readonly turn_id: string;
|
|
19
|
+
/** 当前 Session 的用户交互端口;当前入口未开放交互能力时为空。 */
|
|
20
|
+
readonly interactions?: SessionInteractionPort;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Plugin Action 执行器传给业务 Action 的完整只读上下文。 */
|
|
24
|
+
export interface PluginActionExecutionContext {
|
|
25
|
+
/** 当前 Action 调用的稳定标识;模型 Tool 调用时等于对应 tool call ID。 */
|
|
26
|
+
readonly call_id: string;
|
|
27
|
+
|
|
28
|
+
/** 当前 Action 必须监听的取消信号;可同时承载 Turn 取消和 Action 超时。 */
|
|
29
|
+
readonly abort_signal: AbortSignal;
|
|
30
|
+
|
|
31
|
+
/** 当前调用所属的 Session;非 Session 入口时为空。 */
|
|
32
|
+
readonly session?: PluginSessionExecutionScope;
|
|
33
|
+
|
|
34
|
+
/** 当前调用开始时捕获的只读 Step 快照。 */
|
|
35
|
+
readonly snapshot: PluginExecutionContext;
|
|
36
|
+
}
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* 关键点(中文):生命周期只负责启动和停止;所有显式能力调用统一使用 Action。
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type {
|
|
7
|
+
import type { AgentPluginContext } from "@/types/plugin/AgentPluginContext.js";
|
|
8
8
|
|
|
9
9
|
/** Plugin 生命周期定义。 */
|
|
10
10
|
export interface PluginLifecycle {
|
|
11
|
-
/** Plugin
|
|
12
|
-
start?(context:
|
|
13
|
-
/** Plugin
|
|
14
|
-
stop?(context:
|
|
11
|
+
/** Plugin 随 Agent 启动的钩子;不得假设存在 Workspace。 */
|
|
12
|
+
start?(context: AgentPluginContext): Promise<void> | void;
|
|
13
|
+
/** Plugin 随 Agent 停止的钩子。 */
|
|
14
|
+
stop?(context: AgentPluginContext): Promise<void> | void;
|
|
15
15
|
}
|
|
@@ -2,35 +2,51 @@
|
|
|
2
2
|
* PluginContext:Agent 向 Plugin 投影的稳定能力视图。
|
|
3
3
|
*
|
|
4
4
|
* 边界说明(中文)
|
|
5
|
-
* - Plugin 只依赖本接口,不持有 Agent 实例,也不参与 Session 内核编排。
|
|
5
|
+
* - Plugin 只依赖本接口,不持有 Agent、City 实例,也不参与 Session 内核编排。
|
|
6
6
|
* - 动态状态通过只读 getter 暴露,保证 Workspace env 与 instruction 始终来自唯一状态源。
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type {
|
|
9
|
+
import type { AgentSessionCollection } from "@/types/agent/AgentSessionCollection.js";
|
|
10
10
|
import type { AgentPlugins } from "@/types/plugin/PluginRuntime.js";
|
|
11
|
-
import type { FileSystem } from "
|
|
11
|
+
import type { FileSystem, WorkspaceShell } from "@downcity/workspace";
|
|
12
12
|
import type { Logger } from "@/utils/logger/Logger.js";
|
|
13
|
-
import type {
|
|
13
|
+
import type { PluginWebServices } from "@/types/plugin/PluginServices.js";
|
|
14
|
+
import type { Embassy } from "@downcity/federation";
|
|
14
15
|
|
|
15
16
|
/** Agent 向 Plugin 开放的最小、稳定运行时能力。 */
|
|
16
17
|
export interface PluginContext {
|
|
17
18
|
/** 当前 Agent 的稳定标识。 */
|
|
18
19
|
readonly agent_id: string;
|
|
19
20
|
|
|
21
|
+
/** 当前 Workspace 的稳定标识。 */
|
|
22
|
+
readonly workspace_id: string;
|
|
23
|
+
|
|
20
24
|
/** 当前 Workspace 的绝对根目录。 */
|
|
21
25
|
readonly workspace_path: string;
|
|
22
26
|
|
|
27
|
+
/** 当前 Plugin 在 Agent 内的运行时私有数据根路径。 */
|
|
28
|
+
readonly data_path: string;
|
|
29
|
+
|
|
23
30
|
/** 当前 Workspace 的统一文件能力。 */
|
|
24
31
|
readonly files: FileSystem;
|
|
25
32
|
|
|
33
|
+
/** 当前 Plugin 运行时私有数据目录的统一文件能力。 */
|
|
34
|
+
readonly data_files: FileSystem;
|
|
35
|
+
|
|
26
36
|
/** 当前 Workspace 显式挂载的 Shell;未启用时为空。 */
|
|
27
|
-
readonly shell?:
|
|
37
|
+
readonly shell?: WorkspaceShell;
|
|
28
38
|
|
|
29
|
-
/** 当前 Agent
|
|
39
|
+
/** 当前 Agent 在当前 Workspace 执行上下文中使用的统一日志器。 */
|
|
30
40
|
readonly logger: Logger;
|
|
31
41
|
|
|
42
|
+
/** 当前 Agent 持有的 Web 搜索与文档能力。 */
|
|
43
|
+
readonly web?: PluginWebServices;
|
|
44
|
+
|
|
45
|
+
/** City 注入的 Embassy 能力;Agent 未加入 City 时为空。 */
|
|
46
|
+
readonly embassy?: Embassy;
|
|
47
|
+
|
|
32
48
|
/** 当前 Agent 的 Session 集合入口。 */
|
|
33
|
-
readonly sessions:
|
|
49
|
+
readonly sessions: AgentSessionCollection;
|
|
34
50
|
|
|
35
51
|
/** 当前 Agent 唯一的 Plugin 调用与注册入口。 */
|
|
36
52
|
readonly plugins: AgentPlugins;
|