@downcity/agent 1.1.237 → 1.1.258
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 +21 -20
- package/bin/agent/{local/Agent.d.ts → Agent.d.ts} +37 -27
- package/bin/agent/Agent.d.ts.map +1 -0
- package/bin/agent/Agent.js +211 -0
- package/bin/agent/Agent.js.map +1 -0
- package/bin/agent/AgentContext.d.ts +64 -0
- package/bin/agent/AgentContext.d.ts.map +1 -0
- package/bin/agent/AgentContext.js +53 -0
- package/bin/agent/AgentContext.js.map +1 -0
- package/bin/agent/{local/AgentInstructions.d.ts → AgentInstructions.d.ts} +1 -6
- package/bin/agent/AgentInstructions.d.ts.map +1 -0
- package/bin/agent/{local/AgentInstructions.js → AgentInstructions.js} +1 -10
- package/bin/agent/AgentInstructions.js.map +1 -0
- package/bin/{model/CityModelAdapter.d.ts → agent/AgentModel.d.ts} +3 -3
- package/bin/agent/AgentModel.d.ts.map +1 -0
- package/bin/{model/CityModelAdapter.js → agent/AgentModel.js} +11 -4
- package/bin/agent/AgentModel.js.map +1 -0
- package/bin/agent/{local/services/AgentSessions.d.ts → AgentSessions.d.ts} +30 -40
- package/bin/agent/AgentSessions.d.ts.map +1 -0
- package/bin/agent/{local/services/AgentSessions.js → AgentSessions.js} +62 -79
- package/bin/agent/AgentSessions.js.map +1 -0
- package/bin/agent/AgentState.d.ts +64 -0
- package/bin/agent/AgentState.d.ts.map +1 -0
- package/bin/agent/AgentState.js +118 -0
- package/bin/agent/AgentState.js.map +1 -0
- package/bin/config/Paths.d.ts +0 -43
- package/bin/config/Paths.d.ts.map +1 -1
- package/bin/config/Paths.js +0 -79
- package/bin/config/Paths.js.map +1 -1
- package/bin/config/ProjectSetup.d.ts.map +1 -0
- package/bin/{agent/local → config}/ProjectSetup.js +1 -1
- package/bin/config/ProjectSetup.js.map +1 -0
- package/bin/executor/Executor.d.ts +20 -86
- package/bin/executor/Executor.d.ts.map +1 -1
- package/bin/executor/Executor.js +109 -260
- package/bin/executor/Executor.js.map +1 -1
- package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +1 -1
- package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
- package/bin/executor/composer/system/default/SystemDomain.d.ts +1 -1
- package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
- package/bin/executor/composer/system/default/SystemDomain.js +4 -1
- package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
- 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/core-engine/CoreEngineRunner.d.ts +7 -13
- package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineRunner.js +81 -34
- package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
- package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +6 -12
- package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
- package/bin/executor/services/ExecutorRecoveryPolicy.js +20 -6
- package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -1
- package/bin/executor/tools/file/ReadImageToolBridge.d.ts +21 -0
- package/bin/executor/tools/file/ReadImageToolBridge.d.ts.map +1 -0
- package/bin/executor/tools/file/ReadImageToolBridge.js +69 -0
- package/bin/executor/tools/file/ReadImageToolBridge.js.map +1 -0
- package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -1
- package/bin/executor/tools/plugin/PluginToolBridge.js +6 -5
- package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -1
- package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -1
- package/bin/executor/tools/plugin/PluginToolDefinition.js +15 -2
- package/bin/executor/tools/plugin/PluginToolDefinition.js.map +1 -1
- package/bin/executor/types/SessionHistoryMeta.d.ts +0 -2
- package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
- package/bin/index.d.ts +17 -21
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +9 -11
- package/bin/index.js.map +1 -1
- package/bin/plugin/core/ActionScheduleExecutor.d.ts +1 -1
- package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +1 -1
- package/bin/plugin/core/ActionScheduleRuntime.d.ts +1 -1
- package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +1 -1
- package/bin/plugin/core/BasePlugin.d.ts +4 -3
- package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
- package/bin/plugin/core/BasePlugin.js.map +1 -1
- package/bin/plugin/core/HookRegistry.d.ts +5 -8
- package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
- package/bin/plugin/core/HookRegistry.js +12 -12
- package/bin/plugin/core/HookRegistry.js.map +1 -1
- 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.map +1 -1
- package/bin/plugin/core/PluginActionRunner.d.ts +1 -1
- package/bin/plugin/core/PluginActionRunner.d.ts.map +1 -1
- package/bin/plugin/core/PluginCatalog.d.ts +1 -1
- package/bin/plugin/core/PluginCatalog.d.ts.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/PluginLocalExecution.d.ts +4 -5
- package/bin/plugin/core/PluginLocalExecution.d.ts.map +1 -1
- package/bin/plugin/core/PluginLocalExecution.js +4 -12
- package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
- package/bin/plugin/core/PluginRegistry.d.ts +16 -12
- package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
- package/bin/plugin/core/PluginRegistry.js +43 -22
- package/bin/plugin/core/PluginRegistry.js.map +1 -1
- package/bin/plugin/core/PluginStateController.d.ts +1 -1
- package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
- package/bin/{agent/remote → remote}/RemoteAgent.d.ts +4 -4
- package/bin/remote/RemoteAgent.d.ts.map +1 -0
- package/bin/{agent/remote → remote}/RemoteAgent.js +3 -3
- package/bin/remote/RemoteAgent.js.map +1 -0
- package/bin/{agent/remote → remote}/RemoteSession.d.ts +9 -11
- package/bin/remote/RemoteSession.d.ts.map +1 -0
- package/bin/{agent/remote → remote}/RemoteSession.js +3 -33
- package/bin/remote/RemoteSession.js.map +1 -0
- package/bin/{agent/remote → remote}/RemoteTransport.d.ts +7 -9
- package/bin/remote/RemoteTransport.d.ts.map +1 -0
- package/bin/remote/RemoteTransport.js.map +1 -0
- package/bin/{agent/remote → remote}/TransportFactory.d.ts +1 -1
- package/bin/remote/TransportFactory.d.ts.map +1 -0
- package/bin/{agent/remote → remote}/TransportFactory.js +2 -2
- package/bin/remote/TransportFactory.js.map +1 -0
- package/bin/{agent/remote → remote}/transports/HttpRemoteAgentTransport.d.ts +8 -9
- package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -0
- package/bin/{agent/remote → remote}/transports/HttpRemoteAgentTransport.js +0 -13
- package/bin/remote/transports/HttpRemoteAgentTransport.js.map +1 -0
- package/bin/{rpc/Client.d.ts → remote/transports/RpcClient.d.ts} +15 -22
- package/bin/remote/transports/RpcClient.d.ts.map +1 -0
- package/bin/{rpc/Client.js → remote/transports/RpcClient.js} +2 -13
- package/bin/remote/transports/RpcClient.js.map +1 -0
- package/bin/{agent/remote → remote}/transports/RpcRemoteAgentTransport.d.ts +8 -9
- package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -0
- package/bin/{agent/remote → remote}/transports/RpcRemoteAgentTransport.js +1 -4
- package/bin/remote/transports/RpcRemoteAgentTransport.js.map +1 -0
- package/bin/session/DefaultSessionComposer.d.ts +18 -0
- package/bin/session/DefaultSessionComposer.d.ts.map +1 -0
- package/bin/session/DefaultSessionComposer.js +62 -0
- package/bin/session/DefaultSessionComposer.js.map +1 -0
- package/bin/session/Session.d.ts +44 -33
- package/bin/session/Session.d.ts.map +1 -1
- package/bin/session/Session.js +440 -274
- package/bin/session/Session.js.map +1 -1
- package/bin/session/SessionMessages.d.ts +117 -0
- package/bin/session/SessionMessages.d.ts.map +1 -0
- package/bin/session/{recorder/SessionRecorder.js → SessionMessages.js} +194 -284
- package/bin/session/SessionMessages.js.map +1 -0
- package/bin/session/SessionQueue.d.ts +34 -0
- package/bin/session/SessionQueue.d.ts.map +1 -0
- package/bin/session/SessionQueue.js +60 -0
- package/bin/session/SessionQueue.js.map +1 -0
- package/bin/session/SessionState.d.ts +70 -0
- package/bin/session/SessionState.d.ts.map +1 -0
- package/bin/session/SessionState.js +267 -0
- package/bin/session/SessionState.js.map +1 -0
- package/bin/session/SessionSystem.d.ts +15 -0
- package/bin/session/SessionSystem.d.ts.map +1 -0
- package/bin/session/SessionSystem.js +95 -0
- package/bin/session/SessionSystem.js.map +1 -0
- package/bin/session/SessionTurn.d.ts +84 -0
- package/bin/session/SessionTurn.d.ts.map +1 -0
- package/bin/session/SessionTurn.js +588 -0
- package/bin/session/SessionTurn.js.map +1 -0
- package/bin/session/approval/SessionApprovalBroker.d.ts +48 -0
- package/bin/session/approval/SessionApprovalBroker.d.ts.map +1 -0
- package/bin/session/approval/SessionApprovalBroker.js +126 -0
- package/bin/session/approval/SessionApprovalBroker.js.map +1 -0
- package/bin/session/browse/Browse.d.ts.map +1 -1
- package/bin/session/browse/Browse.js +1 -4
- package/bin/session/browse/Browse.js.map +1 -1
- package/bin/session/{recorder → messages}/JsonlSessionMessageStore.d.ts.map +1 -1
- package/bin/session/{recorder → messages}/JsonlSessionMessageStore.js.map +1 -1
- package/bin/session/messages/SessionAssistantMessageWriter.d.ts +62 -0
- package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -0
- package/bin/session/messages/SessionAssistantMessageWriter.js +287 -0
- package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -0
- package/bin/session/messages/SessionJsonValue.d.ts +10 -0
- package/bin/session/messages/SessionJsonValue.d.ts.map +1 -0
- package/bin/session/messages/SessionJsonValue.js +23 -0
- package/bin/session/messages/SessionJsonValue.js.map +1 -0
- package/bin/session/{recorder → messages}/SessionMessageCodec.d.ts +4 -1
- package/bin/session/messages/SessionMessageCodec.d.ts.map +1 -0
- package/bin/session/{recorder → messages}/SessionMessageCodec.js +33 -19
- package/bin/session/messages/SessionMessageCodec.js.map +1 -0
- package/bin/session/messages/SessionMessageCompaction.d.ts +22 -0
- package/bin/session/messages/SessionMessageCompaction.d.ts.map +1 -0
- package/bin/session/{recorder/SessionRecorderCompaction.js → messages/SessionMessageCompaction.js} +19 -51
- package/bin/session/messages/SessionMessageCompaction.js.map +1 -0
- package/bin/session/runtime/SessionEventHub.d.ts +1 -8
- package/bin/session/runtime/SessionEventHub.d.ts.map +1 -1
- package/bin/session/runtime/SessionEventHub.js +1 -6
- package/bin/session/runtime/SessionEventHub.js.map +1 -1
- package/bin/session/storage/Metadata.d.ts +23 -5
- package/bin/session/storage/Metadata.d.ts.map +1 -1
- package/bin/session/storage/Metadata.js +32 -29
- package/bin/session/storage/Metadata.js.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.d.ts +5 -10
- package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.js +2 -4
- package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
- package/bin/types/agent/AgentOptions.d.ts +6 -35
- package/bin/types/agent/AgentOptions.d.ts.map +1 -1
- package/bin/types/agent/AgentState.d.ts +28 -0
- package/bin/types/agent/AgentState.d.ts.map +1 -0
- package/bin/types/agent/AgentState.js +9 -0
- package/bin/types/agent/AgentState.js.map +1 -0
- package/bin/types/agent/SessionActor.d.ts +0 -2
- package/bin/types/agent/SessionActor.d.ts.map +1 -1
- package/bin/types/agent/SessionTypes.d.ts +5 -18
- package/bin/types/agent/SessionTypes.d.ts.map +1 -1
- package/bin/types/executor/SessionRunContext.d.ts +8 -2
- package/bin/types/executor/SessionRunContext.d.ts.map +1 -1
- package/bin/types/executor/SessionRunContext.js +1 -1
- package/bin/types/executor/SessionToolExecutionContext.d.ts +20 -0
- package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -0
- package/bin/types/executor/SessionToolExecutionContext.js +10 -0
- package/bin/types/executor/SessionToolExecutionContext.js.map +1 -0
- package/bin/types/plugin/PluginAction.d.ts +10 -1
- package/bin/types/plugin/PluginAction.d.ts.map +1 -1
- package/bin/types/plugin/PluginCommand.d.ts +3 -11
- package/bin/types/plugin/PluginCommand.d.ts.map +1 -1
- package/bin/types/plugin/PluginConfig.d.ts +12 -0
- package/bin/types/plugin/PluginConfig.d.ts.map +1 -0
- package/bin/types/plugin/PluginConfig.js +5 -0
- package/bin/types/plugin/PluginConfig.js.map +1 -0
- package/bin/types/plugin/PluginDefinition.d.ts +10 -3
- package/bin/types/plugin/PluginDefinition.d.ts.map +1 -1
- package/bin/types/plugin/PluginHttp.d.ts +1 -1
- package/bin/types/plugin/PluginHttp.d.ts.map +1 -1
- package/bin/types/plugin/PluginRunContext.d.ts +26 -0
- package/bin/types/plugin/PluginRunContext.d.ts.map +1 -0
- package/bin/types/plugin/PluginRunContext.js +10 -0
- package/bin/types/plugin/PluginRunContext.js.map +1 -0
- package/bin/types/plugin/PluginRuntime.d.ts +9 -3
- package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
- package/bin/types/plugin/PluginToolRuntime.d.ts +11 -0
- package/bin/types/plugin/PluginToolRuntime.d.ts.map +1 -1
- package/bin/types/rpc/RpcProtocol.d.ts +1 -13
- package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
- package/bin/types/session/SessionApproval.d.ts +4 -38
- package/bin/types/session/SessionApproval.d.ts.map +1 -1
- package/bin/types/session/SessionApprovalBroker.d.ts +17 -0
- package/bin/types/session/SessionApprovalBroker.d.ts.map +1 -0
- package/bin/types/session/SessionApprovalBroker.js +7 -0
- package/bin/types/session/SessionApprovalBroker.js.map +1 -0
- package/bin/types/session/SessionComposer.d.ts +99 -0
- package/bin/types/session/SessionComposer.d.ts.map +1 -0
- package/bin/types/session/SessionComposer.js +8 -0
- package/bin/types/session/SessionComposer.js.map +1 -0
- package/bin/types/session/SessionLocalState.d.ts +6 -6
- package/bin/types/session/SessionLocalState.d.ts.map +1 -1
- package/bin/types/session/SessionLocalState.js +1 -1
- package/bin/types/session/SessionMessage.d.ts +3 -2
- package/bin/types/session/SessionMessage.d.ts.map +1 -1
- package/bin/types/session/SessionMessages.d.ts +115 -0
- package/bin/types/session/SessionMessages.d.ts.map +1 -0
- package/bin/types/session/SessionMessages.js +7 -0
- package/bin/types/session/SessionMessages.js.map +1 -0
- package/bin/types/session/SessionMutation.d.ts +1 -10
- package/bin/types/session/SessionMutation.d.ts.map +1 -1
- package/bin/types/session/SessionMutation.js.map +1 -1
- package/bin/types/session/SessionOptions.d.ts +8 -23
- package/bin/types/session/SessionOptions.d.ts.map +1 -1
- package/bin/types/session/SessionPort.d.ts +72 -0
- package/bin/types/session/SessionPort.d.ts.map +1 -0
- package/bin/types/session/SessionPort.js +9 -0
- package/bin/types/session/SessionPort.js.map +1 -0
- package/bin/types/session/SessionQueue.d.ts +104 -0
- package/bin/types/session/SessionQueue.d.ts.map +1 -0
- package/bin/types/session/SessionQueue.js +7 -0
- package/bin/types/session/SessionQueue.js.map +1 -0
- package/bin/types/session/SessionState.d.ts +43 -0
- package/bin/types/session/SessionState.d.ts.map +1 -0
- package/bin/types/session/SessionState.js +7 -0
- package/bin/types/session/SessionState.js.map +1 -0
- package/bin/types/session/SessionSystem.d.ts +26 -0
- package/bin/types/session/SessionSystem.d.ts.map +1 -0
- package/bin/types/session/SessionSystem.js +7 -0
- package/bin/types/session/SessionSystem.js.map +1 -0
- package/bin/types/session/SessionTool.d.ts +23 -0
- package/bin/types/session/SessionTool.d.ts.map +1 -0
- package/bin/types/session/SessionTool.js +7 -0
- package/bin/types/session/SessionTool.js.map +1 -0
- package/bin/types/session/SessionTurn.d.ts +52 -0
- package/bin/types/session/SessionTurn.d.ts.map +1 -0
- package/bin/types/session/SessionTurn.js +7 -0
- package/bin/types/session/SessionTurn.js.map +1 -0
- package/package.json +3 -3
- package/scripts/agent-env.test.mjs +4 -18
- package/scripts/agent-ready.test.mjs +33 -2
- package/scripts/agent-session-maintenance.test.mjs +52 -0
- package/scripts/city-model-tool-loop.test.mjs +3 -4
- package/scripts/core-engine-context-compaction.test.mjs +5 -22
- package/scripts/image-plugin-job.test.mjs +4 -6
- package/scripts/plugin-tool-bridge.test.mjs +44 -36
- package/scripts/read-image-tool-bridge.test.mjs +71 -0
- package/scripts/remote-session-reconnect.test.mjs +1 -34
- package/scripts/session-compaction-prompts.test.mjs +1 -49
- package/scripts/session-composer.test.mjs +163 -0
- package/scripts/session-config-turn-boundary.test.mjs +2 -5
- package/scripts/session-list-title.test.mjs +3 -2
- package/scripts/session-messages-error.test.mjs +57 -0
- package/scripts/{session-recorder.test.mjs → session-messages.test.mjs} +131 -90
- package/scripts/session-queue.test.mjs +64 -0
- package/scripts/session-shell-approval.test.mjs +171 -0
- package/scripts/session-system-blocks.test.mjs +10 -10
- package/scripts/session-title-event.test.mjs +1 -0
- package/src/agent/Agent.ts +241 -0
- package/src/agent/AgentContext.ts +92 -0
- package/src/agent/{local/AgentInstructions.ts → AgentInstructions.ts} +0 -11
- package/src/{model/CityModelAdapter.ts → agent/AgentModel.ts} +10 -3
- package/src/agent/{local/services/AgentSessions.ts → AgentSessions.ts} +81 -110
- package/src/agent/AgentState.ts +151 -0
- package/src/config/Paths.ts +0 -91
- package/src/executor/Executor.ts +180 -386
- package/src/executor/README.md +29 -89
- package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +1 -1
- package/src/executor/composer/system/default/SystemDomain.ts +4 -2
- package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
- package/src/executor/composer/system/default/assets/core.prompt.ts.txt +15 -2
- package/src/executor/core-engine/CoreEngineRunner.ts +95 -54
- package/src/executor/services/ExecutorRecoveryPolicy.ts +24 -19
- package/src/executor/tools/file/ReadImageToolBridge.ts +79 -0
- package/src/executor/tools/plugin/PluginToolBridge.ts +6 -8
- package/src/executor/tools/plugin/PluginToolDefinition.ts +23 -3
- package/src/executor/types/SessionHistoryMeta.ts +0 -2
- package/src/index.ts +34 -53
- package/src/plugin/core/ActionScheduleExecutor.ts +1 -1
- package/src/plugin/core/ActionScheduleRuntime.ts +1 -1
- package/src/plugin/core/BasePlugin.ts +7 -3
- package/src/plugin/core/HookRegistry.ts +15 -18
- package/src/plugin/core/PluginActionFactory.ts +9 -3
- package/src/plugin/core/PluginActionRunner.ts +1 -1
- package/src/plugin/core/PluginCatalog.ts +1 -1
- package/src/plugin/core/PluginHttpRoutes.ts +1 -1
- package/src/plugin/core/PluginLocalExecution.ts +11 -24
- package/src/plugin/core/PluginRegistry.ts +55 -32
- package/src/plugin/core/PluginStateController.ts +1 -1
- package/src/{agent/remote → remote}/RemoteAgent.ts +4 -4
- package/src/{agent/remote → remote}/RemoteSession.ts +2 -35
- package/src/{agent/remote → remote}/RemoteTransport.ts +0 -3
- package/src/{agent/remote → remote}/TransportFactory.ts +3 -3
- package/src/{agent/remote → remote}/transports/HttpRemoteAgentTransport.ts +1 -23
- package/src/{rpc/Client.ts → remote/transports/RpcClient.ts} +1 -19
- package/src/{agent/remote → remote}/transports/RpcRemoteAgentTransport.ts +2 -10
- package/src/session/DefaultSessionComposer.ts +79 -0
- package/src/session/Session.ts +496 -332
- package/src/session/{recorder/SessionRecorder.ts → SessionMessages.ts} +254 -428
- package/src/session/SessionQueue.ts +86 -0
- package/src/session/SessionState.ts +322 -0
- package/src/session/SessionSystem.ts +117 -0
- package/src/session/SessionTurn.ts +684 -0
- package/src/session/approval/SessionApprovalBroker.ts +164 -0
- package/src/session/browse/Browse.ts +1 -4
- package/src/session/messages/SessionAssistantMessageWriter.ts +345 -0
- package/src/session/messages/SessionJsonValue.ts +25 -0
- package/src/session/{recorder → messages}/SessionMessageCodec.ts +38 -20
- package/src/session/{recorder/SessionRecorderCompaction.ts → messages/SessionMessageCompaction.ts} +30 -69
- package/src/session/runtime/SessionEventHub.ts +1 -14
- package/src/session/storage/Metadata.ts +60 -34
- package/src/session/storage/RuntimeSessionPort.ts +7 -14
- package/src/types/agent/AgentOptions.ts +6 -38
- package/src/types/agent/AgentState.ts +33 -0
- package/src/types/agent/SessionActor.ts +0 -3
- package/src/types/agent/SessionTypes.ts +5 -18
- package/src/types/executor/SessionRunContext.ts +10 -2
- package/src/types/executor/SessionToolExecutionContext.ts +21 -0
- package/src/types/plugin/PluginAction.ts +10 -1
- package/src/types/plugin/PluginCommand.ts +3 -14
- package/src/types/plugin/PluginConfig.ts +13 -0
- package/src/types/plugin/PluginDefinition.ts +13 -6
- package/src/types/plugin/PluginHttp.ts +1 -1
- package/src/types/plugin/PluginRunContext.ts +31 -0
- package/src/types/plugin/PluginRuntime.ts +13 -6
- package/src/types/plugin/PluginToolRuntime.ts +13 -1
- package/src/types/rpc/RpcProtocol.ts +0 -14
- package/src/types/session/SessionApproval.ts +4 -43
- package/src/types/session/SessionApprovalBroker.ts +18 -0
- package/src/types/session/SessionComposer.ts +114 -0
- package/src/types/session/SessionLocalState.ts +6 -6
- package/src/types/session/SessionMessage.ts +3 -2
- package/src/types/session/SessionMessages.ts +127 -0
- package/src/types/session/SessionMutation.ts +0 -11
- package/src/types/session/SessionOptions.ts +8 -40
- package/src/types/session/SessionPort.ts +97 -0
- package/src/types/session/SessionQueue.ts +122 -0
- package/src/types/session/SessionState.ts +47 -0
- package/src/types/session/SessionSystem.ts +27 -0
- package/src/types/session/SessionTool.ts +25 -0
- package/src/types/session/SessionTurn.ts +56 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/agent/local/Agent.d.ts.map +0 -1
- package/bin/agent/local/Agent.js +0 -216
- package/bin/agent/local/Agent.js.map +0 -1
- package/bin/agent/local/AgentInstructions.d.ts.map +0 -1
- package/bin/agent/local/AgentInstructions.js.map +0 -1
- package/bin/agent/local/AgentPluginFactory.d.ts +0 -26
- package/bin/agent/local/AgentPluginFactory.d.ts.map +0 -1
- package/bin/agent/local/AgentPluginFactory.js +0 -33
- package/bin/agent/local/AgentPluginFactory.js.map +0 -1
- package/bin/agent/local/AgentRuntimeAssembly.d.ts +0 -10
- package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +0 -1
- package/bin/agent/local/AgentRuntimeAssembly.js +0 -43
- package/bin/agent/local/AgentRuntimeAssembly.js.map +0 -1
- package/bin/agent/local/ProjectSetup.d.ts.map +0 -1
- package/bin/agent/local/ProjectSetup.js.map +0 -1
- package/bin/agent/local/services/AgentAssemblyService.d.ts +0 -105
- package/bin/agent/local/services/AgentAssemblyService.d.ts.map +0 -1
- package/bin/agent/local/services/AgentAssemblyService.js +0 -184
- package/bin/agent/local/services/AgentAssemblyService.js.map +0 -1
- package/bin/agent/local/services/AgentBackgroundService.d.ts +0 -55
- package/bin/agent/local/services/AgentBackgroundService.d.ts.map +0 -1
- package/bin/agent/local/services/AgentBackgroundService.js +0 -85
- package/bin/agent/local/services/AgentBackgroundService.js.map +0 -1
- package/bin/agent/local/services/AgentSessions.d.ts.map +0 -1
- package/bin/agent/local/services/AgentSessions.js.map +0 -1
- package/bin/agent/remote/RemoteAgent.d.ts.map +0 -1
- package/bin/agent/remote/RemoteAgent.js.map +0 -1
- package/bin/agent/remote/RemoteSession.d.ts.map +0 -1
- package/bin/agent/remote/RemoteSession.js.map +0 -1
- package/bin/agent/remote/RemoteTransport.d.ts.map +0 -1
- package/bin/agent/remote/RemoteTransport.js.map +0 -1
- package/bin/agent/remote/TransportFactory.d.ts.map +0 -1
- package/bin/agent/remote/TransportFactory.js.map +0 -1
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +0 -1
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +0 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +0 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +0 -1
- package/bin/executor/SessionRunScope.d.ts +0 -68
- package/bin/executor/SessionRunScope.d.ts.map +0 -1
- package/bin/executor/SessionRunScope.js +0 -96
- package/bin/executor/SessionRunScope.js.map +0 -1
- package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts +0 -74
- package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts.map +0 -1
- package/bin/executor/composer/compaction/SessionCompactionComposer.js +0 -9
- package/bin/executor/composer/compaction/SessionCompactionComposer.js.map +0 -1
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.d.ts +0 -27
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.d.ts.map +0 -1
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js +0 -39
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js.map +0 -1
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts +0 -44
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts.map +0 -1
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js +0 -218
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js.map +0 -1
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts +0 -27
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts.map +0 -1
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js +0 -181
- package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js.map +0 -1
- package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +0 -50
- package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +0 -1
- package/bin/executor/composer/context/LocalSessionContextComposer.js +0 -108
- package/bin/executor/composer/context/LocalSessionContextComposer.js.map +0 -1
- package/bin/executor/composer/context/SessionContextComposer.d.ts +0 -67
- package/bin/executor/composer/context/SessionContextComposer.d.ts.map +0 -1
- package/bin/executor/composer/context/SessionContextComposer.js +0 -9
- package/bin/executor/composer/context/SessionContextComposer.js.map +0 -1
- package/bin/executor/composer/history/SessionHistoryComposer.d.ts +0 -54
- package/bin/executor/composer/history/SessionHistoryComposer.d.ts.map +0 -1
- package/bin/executor/composer/history/SessionHistoryComposer.js +0 -10
- package/bin/executor/composer/history/SessionHistoryComposer.js.map +0 -1
- package/bin/executor/composer/history/SessionHistoryWriter.d.ts +0 -46
- package/bin/executor/composer/history/SessionHistoryWriter.d.ts.map +0 -1
- package/bin/executor/composer/history/SessionHistoryWriter.js +0 -65
- package/bin/executor/composer/history/SessionHistoryWriter.js.map +0 -1
- package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts +0 -35
- package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts.map +0 -1
- package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js +0 -105
- package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js.map +0 -1
- package/bin/executor/messages/AssistantResultPersistence.d.ts +0 -66
- package/bin/executor/messages/AssistantResultPersistence.d.ts.map +0 -1
- package/bin/executor/messages/AssistantResultPersistence.js +0 -44
- package/bin/executor/messages/AssistantResultPersistence.js.map +0 -1
- package/bin/executor/services/ExecutorInflightService.d.ts +0 -34
- package/bin/executor/services/ExecutorInflightService.d.ts.map +0 -1
- package/bin/executor/services/ExecutorInflightService.js +0 -73
- package/bin/executor/services/ExecutorInflightService.js.map +0 -1
- package/bin/executor/store/history/SessionHistoryStore.d.ts +0 -140
- package/bin/executor/store/history/SessionHistoryStore.d.ts.map +0 -1
- package/bin/executor/store/history/SessionHistoryStore.js +0 -10
- package/bin/executor/store/history/SessionHistoryStore.js.map +0 -1
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +0 -116
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +0 -1
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +0 -709
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +0 -1
- package/bin/executor/types/SessionHistoryPaths.d.ts +0 -34
- package/bin/executor/types/SessionHistoryPaths.d.ts.map +0 -1
- package/bin/executor/types/SessionHistoryPaths.js +0 -2
- package/bin/executor/types/SessionHistoryPaths.js.map +0 -1
- package/bin/model/CityModelAdapter.d.ts.map +0 -1
- package/bin/model/CityModelAdapter.js.map +0 -1
- package/bin/rpc/Client.d.ts.map +0 -1
- package/bin/rpc/Client.js.map +0 -1
- package/bin/session/SessionSystemBuilder.d.ts +0 -107
- package/bin/session/SessionSystemBuilder.d.ts.map +0 -1
- package/bin/session/SessionSystemBuilder.js +0 -148
- package/bin/session/SessionSystemBuilder.js.map +0 -1
- package/bin/session/recorder/SessionMessageCodec.d.ts.map +0 -1
- package/bin/session/recorder/SessionMessageCodec.js.map +0 -1
- package/bin/session/recorder/SessionRecorder.d.ts +0 -217
- package/bin/session/recorder/SessionRecorder.d.ts.map +0 -1
- package/bin/session/recorder/SessionRecorder.js.map +0 -1
- package/bin/session/recorder/SessionRecorderCompaction.d.ts +0 -18
- package/bin/session/recorder/SessionRecorderCompaction.d.ts.map +0 -1
- package/bin/session/recorder/SessionRecorderCompaction.js.map +0 -1
- package/bin/session/recorder/SessionRecorderHistoryStore.d.ts +0 -66
- package/bin/session/recorder/SessionRecorderHistoryStore.d.ts.map +0 -1
- package/bin/session/recorder/SessionRecorderHistoryStore.js +0 -190
- package/bin/session/recorder/SessionRecorderHistoryStore.js.map +0 -1
- package/bin/session/runtime/SessionPromptRuntime.d.ts +0 -112
- package/bin/session/runtime/SessionPromptRuntime.d.ts.map +0 -1
- package/bin/session/runtime/SessionPromptRuntime.js +0 -357
- package/bin/session/runtime/SessionPromptRuntime.js.map +0 -1
- package/bin/session/services/SessionStateService.d.ts +0 -187
- package/bin/session/services/SessionStateService.d.ts.map +0 -1
- package/bin/session/services/SessionStateService.js +0 -467
- package/bin/session/services/SessionStateService.js.map +0 -1
- package/bin/session/services/SessionTurnService.d.ts +0 -90
- package/bin/session/services/SessionTurnService.d.ts.map +0 -1
- package/bin/session/services/SessionTurnService.js +0 -293
- package/bin/session/services/SessionTurnService.js.map +0 -1
- package/bin/session/services/SessionViewService.d.ts +0 -114
- package/bin/session/services/SessionViewService.d.ts.map +0 -1
- package/bin/session/services/SessionViewService.js +0 -204
- package/bin/session/services/SessionViewService.js.map +0 -1
- package/bin/session/storage/Persistence.d.ts +0 -73
- package/bin/session/storage/Persistence.d.ts.map +0 -1
- package/bin/session/storage/Persistence.js +0 -63
- package/bin/session/storage/Persistence.js.map +0 -1
- package/bin/types/agent/AgentRuntimeAssembly.d.ts +0 -72
- package/bin/types/agent/AgentRuntimeAssembly.d.ts.map +0 -1
- package/bin/types/agent/AgentRuntimeAssembly.js +0 -10
- package/bin/types/agent/AgentRuntimeAssembly.js.map +0 -1
- package/bin/types/runtime/agent/AgentContext.d.ts +0 -306
- package/bin/types/runtime/agent/AgentContext.d.ts.map +0 -1
- package/bin/types/runtime/agent/AgentContext.js +0 -128
- package/bin/types/runtime/agent/AgentContext.js.map +0 -1
- package/bin/types/session/SessionComposerOptions.d.ts +0 -90
- package/bin/types/session/SessionComposerOptions.d.ts.map +0 -1
- package/bin/types/session/SessionComposerOptions.js +0 -10
- package/bin/types/session/SessionComposerOptions.js.map +0 -1
- package/bin/types/session/SessionQueueCommand.d.ts +0 -68
- package/bin/types/session/SessionQueueCommand.d.ts.map +0 -1
- package/bin/types/session/SessionQueueCommand.js +0 -10
- package/bin/types/session/SessionQueueCommand.js.map +0 -1
- package/scripts/session-action-message.test.mjs +0 -410
- package/scripts/session-compaction-context-window.test.mjs +0 -96
- package/scripts/session-history-inflight.test.mjs +0 -146
- package/scripts/session-history-writer-error.test.mjs +0 -57
- package/scripts/session-prompt-runtime.test.mjs +0 -390
- package/src/agent/local/Agent.ts +0 -250
- package/src/agent/local/AgentPluginFactory.ts +0 -51
- package/src/agent/local/AgentRuntimeAssembly.ts +0 -65
- package/src/agent/local/services/AgentAssemblyService.ts +0 -307
- package/src/agent/local/services/AgentBackgroundService.ts +0 -115
- package/src/executor/SessionRunScope.ts +0 -122
- package/src/executor/composer/compaction/SessionCompactionComposer.ts +0 -84
- package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.ts +0 -51
- package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.ts +0 -294
- package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.ts +0 -197
- package/src/executor/composer/context/LocalSessionContextComposer.ts +0 -175
- package/src/executor/composer/context/SessionContextComposer.ts +0 -83
- package/src/executor/composer/history/SessionHistoryComposer.ts +0 -62
- package/src/executor/composer/history/SessionHistoryWriter.ts +0 -100
- package/src/executor/composer/history/jsonl/JsonlSessionHistoryComposer.ts +0 -133
- package/src/executor/messages/AssistantResultPersistence.ts +0 -106
- package/src/executor/services/ExecutorInflightService.ts +0 -95
- package/src/executor/store/history/SessionHistoryStore.ts +0 -172
- package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +0 -879
- package/src/executor/types/SessionHistoryPaths.ts +0 -38
- package/src/session/SessionSystemBuilder.ts +0 -262
- package/src/session/recorder/SessionRecorderHistoryStore.ts +0 -256
- package/src/session/runtime/SessionPromptRuntime.ts +0 -518
- package/src/session/services/SessionStateService.ts +0 -628
- package/src/session/services/SessionTurnService.ts +0 -368
- package/src/session/services/SessionViewService.ts +0 -335
- package/src/session/storage/Persistence.ts +0 -137
- package/src/types/agent/AgentRuntimeAssembly.ts +0 -74
- package/src/types/runtime/agent/AgentContext.ts +0 -387
- package/src/types/session/SessionComposerOptions.ts +0 -107
- package/src/types/session/SessionQueueCommand.ts +0 -78
- /package/bin/{agent/local → config}/ProjectSetup.d.ts +0 -0
- /package/bin/{agent/remote → remote}/RemoteTransport.js +0 -0
- /package/bin/session/{recorder → messages}/JsonlSessionMessageStore.d.ts +0 -0
- /package/bin/session/{recorder → messages}/JsonlSessionMessageStore.js +0 -0
- /package/src/{agent/local → config}/ProjectSetup.ts +0 -0
- /package/src/session/{recorder → messages}/JsonlSessionMessageStore.ts +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session 输入队列类型。
|
|
3
|
+
*
|
|
4
|
+
* 队列只保存明确的输入事实,不保存可执行闭包。SessionTurn 是这些输入的唯一解释者。
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentSessionConfigSnapshot, AgentSessionSystemBlock } from "../../types/agent/SessionTypes.js";
|
|
7
|
+
import type { AgentPluginExecutionRuntime } from "../../types/plugin/PluginRuntime.js";
|
|
8
|
+
import type { AgentSessionPromptInput } from "../../types/sdk/AgentSessionPrompt.js";
|
|
9
|
+
import type { AgentSessionTurnHandle } from "../../types/sdk/AgentSessionTurn.js";
|
|
10
|
+
/** Session 模型配置在 Step 检查点生效的命令。 */
|
|
11
|
+
export interface SessionModelQueueCommand {
|
|
12
|
+
/** 命令种类固定为 Session 模型更新。 */
|
|
13
|
+
type: "session_model";
|
|
14
|
+
/** 当前命令的稳定唯一标识。 */
|
|
15
|
+
command_id: string;
|
|
16
|
+
/** 等待提交为 effective state 的完整 Session 配置。 */
|
|
17
|
+
config: AgentSessionConfigSnapshot;
|
|
18
|
+
/** 配置生效后需要写入的可选 Action 标识。 */
|
|
19
|
+
action_id?: string;
|
|
20
|
+
/** 配置生效后需要写入的可选 Action 标题。 */
|
|
21
|
+
action_title?: string;
|
|
22
|
+
}
|
|
23
|
+
/** Agent instruction 在 Session Step 检查点生效的命令。 */
|
|
24
|
+
export interface SessionInstructionQueueCommand {
|
|
25
|
+
/** 命令种类固定为 Agent instruction 更新。 */
|
|
26
|
+
type: "agent_instruction";
|
|
27
|
+
/** 当前命令的稳定唯一标识。 */
|
|
28
|
+
command_id: string;
|
|
29
|
+
/** 下一 Step 使用的完整 instruction blocks。 */
|
|
30
|
+
instruction_blocks: AgentSessionSystemBlock[];
|
|
31
|
+
}
|
|
32
|
+
/** Agent env 在 Session Step 检查点生效的命令。 */
|
|
33
|
+
export interface SessionEnvQueueCommand {
|
|
34
|
+
/** 命令种类固定为 Agent env 更新。 */
|
|
35
|
+
type: "agent_env";
|
|
36
|
+
/** 当前命令的稳定唯一标识。 */
|
|
37
|
+
command_id: string;
|
|
38
|
+
/** 下一 Step 使用的完整环境变量快照。 */
|
|
39
|
+
env: Record<string, string>;
|
|
40
|
+
}
|
|
41
|
+
/** Agent Plugin 视图在 Session Step 检查点生效的命令。 */
|
|
42
|
+
export interface SessionPluginsQueueCommand {
|
|
43
|
+
/** 命令种类固定为 Agent Plugin 更新。 */
|
|
44
|
+
type: "agent_plugins";
|
|
45
|
+
/** 当前命令的稳定唯一标识。 */
|
|
46
|
+
command_id: string;
|
|
47
|
+
/** 当前 Plugin 修改的用户可读标题。 */
|
|
48
|
+
title: string;
|
|
49
|
+
/** 下一 Step 使用的 Plugin 执行视图。 */
|
|
50
|
+
plugins: AgentPluginExecutionRuntime;
|
|
51
|
+
}
|
|
52
|
+
/** 显式持久化历史压缩命令。 */
|
|
53
|
+
export interface SessionCompactQueueCommand {
|
|
54
|
+
/** 命令种类固定为 compact。 */
|
|
55
|
+
type: "compact";
|
|
56
|
+
/** 当前命令的稳定唯一标识。 */
|
|
57
|
+
command_id: string;
|
|
58
|
+
}
|
|
59
|
+
/** Session FIFO 中允许出现的领域命令。 */
|
|
60
|
+
export type SessionQueueCommand = SessionModelQueueCommand | SessionInstructionQueueCommand | SessionEnvQueueCommand | SessionPluginsQueueCommand | SessionCompactQueueCommand;
|
|
61
|
+
/** Agent configured state 广播给既有 Session 的输入。 */
|
|
62
|
+
export type AgentSessionCommand = {
|
|
63
|
+
/** 当前修改固定为 instruction。 */
|
|
64
|
+
type: "instruction";
|
|
65
|
+
/** 当前命令唯一标识。 */
|
|
66
|
+
command_id: string;
|
|
67
|
+
/** 下一 Session Step 使用的 instruction blocks。 */
|
|
68
|
+
instruction_blocks: AgentSessionSystemBlock[];
|
|
69
|
+
} | {
|
|
70
|
+
/** 当前修改固定为 env。 */
|
|
71
|
+
type: "env";
|
|
72
|
+
/** 当前命令唯一标识。 */
|
|
73
|
+
command_id: string;
|
|
74
|
+
/** 下一 Session Step 使用的完整 Agent env。 */
|
|
75
|
+
env: Record<string, string>;
|
|
76
|
+
} | {
|
|
77
|
+
/** 当前修改固定为 plugins。 */
|
|
78
|
+
type: "plugins";
|
|
79
|
+
/** 当前命令唯一标识。 */
|
|
80
|
+
command_id: string;
|
|
81
|
+
/** 当前 Plugin 修改的用户可读标题。 */
|
|
82
|
+
title: string;
|
|
83
|
+
/** 下一 Session Step 使用的 Plugin 执行视图。 */
|
|
84
|
+
plugins: AgentPluginExecutionRuntime;
|
|
85
|
+
};
|
|
86
|
+
/** Promise 的显式兑现控制器。 */
|
|
87
|
+
export interface SessionQueueDeferred<T> {
|
|
88
|
+
/** 调用方等待的 Promise。 */
|
|
89
|
+
promise: Promise<T>;
|
|
90
|
+
/** 成功兑现 Promise。 */
|
|
91
|
+
resolve: (value: T) => void;
|
|
92
|
+
}
|
|
93
|
+
/** FIFO 中等待创建或并入 Turn 的 Prompt。 */
|
|
94
|
+
export interface SessionQueuedPrompt {
|
|
95
|
+
/** 队列项种类固定为 prompt。 */
|
|
96
|
+
type: "prompt";
|
|
97
|
+
/** 当前 Prompt 的结构化输入。 */
|
|
98
|
+
input: AgentSessionPromptInput;
|
|
99
|
+
/** 等待 SessionTurn 返回 Turn Handle 的控制器。 */
|
|
100
|
+
deferred_handle: SessionQueueDeferred<AgentSessionTurnHandle>;
|
|
101
|
+
}
|
|
102
|
+
/** Session FIFO 中的全部输入类型。 */
|
|
103
|
+
export type SessionQueueItem = SessionQueuedPrompt | SessionQueueCommand;
|
|
104
|
+
//# sourceMappingURL=SessionQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionQueue.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACzG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E,mCAAmC;AACnC,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,EAAE,0BAA0B,CAAC;IACnC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,WAAW,8BAA8B;IAC7C,oCAAoC;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,8CAA8C;AAC9C,MAAM,WAAW,0BAA0B;IACzC,+BAA+B;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,EAAE,2BAA2B,CAAC;CACtC;AAED,mBAAmB;AACnB,MAAM,WAAW,0BAA0B;IACzC,uBAAuB;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,+BAA+B;AAC/B,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,8BAA8B,GAC9B,sBAAsB,GACtB,0BAA0B,GAC1B,0BAA0B,CAAC;AAE/B,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAC3B;IACE,2BAA2B;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C,GACD;IACE,mBAAmB;IACnB,IAAI,EAAE,KAAK,CAAC;IACZ,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,GACD;IACE,uBAAuB;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEN,wBAAwB;AACxB,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,oBAAoB;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,wBAAwB;IACxB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,0CAA0C;IAC1C,eAAe,EAAE,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;CAC/D;AAED,6BAA6B;AAC7B,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionQueue.js","sourceRoot":"","sources":["../../../src/types/session/SessionQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionState 构造与配置变更类型。
|
|
3
|
+
*
|
|
4
|
+
* 这些类型只描述 Session 配置和 Metadata 状态,不承载 Message 行为。
|
|
5
|
+
*/
|
|
6
|
+
import type { LanguageModel } from "ai";
|
|
7
|
+
import type { SessionMessages } from "../../session/SessionMessages.js";
|
|
8
|
+
import type { SessionLocalState } from "../../types/session/SessionLocalState.js";
|
|
9
|
+
import type { SessionMutation } from "../../types/session/SessionMutation.js";
|
|
10
|
+
import type { SessionQueueCommand } from "../../types/session/SessionQueue.js";
|
|
11
|
+
import type { Logger } from "../../utils/logger/Logger.js";
|
|
12
|
+
/** SessionState 构造参数。 */
|
|
13
|
+
export interface SessionStateOptions {
|
|
14
|
+
/** 当前 Agent 的稳定标识。 */
|
|
15
|
+
agent_id: string;
|
|
16
|
+
/** 当前项目的绝对根目录。 */
|
|
17
|
+
project_root: string;
|
|
18
|
+
/** 当前 Session 的稳定标识。 */
|
|
19
|
+
session_id: string;
|
|
20
|
+
/** 当前 Session 的 canonical Message 入口。 */
|
|
21
|
+
messages: SessionMessages;
|
|
22
|
+
/** 当前 Session 的可变内存状态。 */
|
|
23
|
+
state: SessionLocalState;
|
|
24
|
+
/** 当前 Session 的运行日志器。 */
|
|
25
|
+
logger: Logger;
|
|
26
|
+
/** 在执行前补齐宿主级配置的异步钩子。 */
|
|
27
|
+
ensure_configured_hook?: () => Promise<void>;
|
|
28
|
+
/** 按 Session 优先、Agent 兜底规则读取当前模型。 */
|
|
29
|
+
get_model: () => LanguageModel | undefined;
|
|
30
|
+
/** 发布 Session Mutation 的函数。 */
|
|
31
|
+
publish_event: (mutation: SessionMutation) => void;
|
|
32
|
+
}
|
|
33
|
+
/** Session 配置写入选项。 */
|
|
34
|
+
export interface SessionSetOptions {
|
|
35
|
+
/** 是否为本次配置变化生成 Model Switching Action。 */
|
|
36
|
+
emit_action?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/** Session 配置成功写入后的队列提交结果。 */
|
|
39
|
+
export interface SessionConfiguredCommandResult {
|
|
40
|
+
/** 等待在下一 Session Step 检查点执行的 Command。 */
|
|
41
|
+
command?: SessionQueueCommand;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=SessionState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionState.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,yBAAyB;AACzB,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,0BAA0B;IAC1B,KAAK,EAAE,iBAAiB,CAAC;IACzB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,qCAAqC;IACrC,SAAS,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAC3C,+BAA+B;IAC/B,aAAa,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CACpD;AAED,sBAAsB;AACtB,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,8BAA8B;IAC7C,yCAAyC;IACzC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionState.js","sourceRoot":"","sources":["../../../src/types/session/SessionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session System Block 组装类型。
|
|
3
|
+
*
|
|
4
|
+
* 该类型只描述默认 Composer 组装 system block 所需的只读输入。
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentSessionSystemBlock } from "../../types/agent/SessionTypes.js";
|
|
7
|
+
/** 默认 Session System Block 的组装参数。 */
|
|
8
|
+
export interface BuildSessionSystemBlocksInput {
|
|
9
|
+
/** 当前 Agent 的稳定标识。 */
|
|
10
|
+
agent_id: string;
|
|
11
|
+
/** 当前 Agent 绑定的项目绝对根目录。 */
|
|
12
|
+
project_root: string;
|
|
13
|
+
/** 当前 Session 的稳定标识。 */
|
|
14
|
+
session_id: string;
|
|
15
|
+
/** 当前 Session 首次创建时间,单位为毫秒。 */
|
|
16
|
+
created_at: number;
|
|
17
|
+
/** 当前 Session 初始化时解析到的系统时区。 */
|
|
18
|
+
timezone: string;
|
|
19
|
+
/** 读取当前调用方传入的 Instruction System Block。 */
|
|
20
|
+
get_instruction_system_blocks: () => AgentSessionSystemBlock[];
|
|
21
|
+
/** 读取当前显式注入的受托管 Plugin System Block。 */
|
|
22
|
+
get_managed_plugin_system_blocks: () => Promise<AgentSessionSystemBlock[]>;
|
|
23
|
+
/** 读取当前显式注册 Plugin 的 System Block。 */
|
|
24
|
+
get_plugin_system_blocks: () => Promise<AgentSessionSystemBlock[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=SessionSystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionSystem.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,qCAAqC;AACrC,MAAM,WAAW,6BAA6B;IAC5C,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,6BAA6B,EAAE,MAAM,uBAAuB,EAAE,CAAC;IAC/D,wCAAwC;IACxC,gCAAgC,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC3E,sCAAsC;IACtC,wBAAwB,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionSystem.js","sourceRoot":"","sources":["../../../src/types/session/SessionSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Tool Message 类型。
|
|
3
|
+
*
|
|
4
|
+
* 这些类型描述 Tool 生命周期协调器与 Recorder 之间的稳定边界。
|
|
5
|
+
*/
|
|
6
|
+
import type { SessionAssistantToolPart } from "../../types/session/SessionMessage.js";
|
|
7
|
+
/** 当前流式 Assistant 中的 Tool Part 定位结果。 */
|
|
8
|
+
export interface SessionStreamingToolLocation {
|
|
9
|
+
/** Tool Part 所属 Assistant Message。 */
|
|
10
|
+
message_id: string;
|
|
11
|
+
/** 当前 Tool Part 完整快照。 */
|
|
12
|
+
part: SessionAssistantToolPart;
|
|
13
|
+
}
|
|
14
|
+
/** Executor 在调用 Tool 实现前提交的完整输入。 */
|
|
15
|
+
export interface SessionToolInputReady {
|
|
16
|
+
/** 当前 Tool Call 标识。 */
|
|
17
|
+
tool_call_id: string;
|
|
18
|
+
/** 当前 Tool 注册名称。 */
|
|
19
|
+
tool_name: string;
|
|
20
|
+
/** 已完成解析的 Tool 输入。 */
|
|
21
|
+
input: unknown;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=SessionTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTool.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionTool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,wCAAwC;AACxC,MAAM,WAAW,4BAA4B;IAC3C,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAED,oCAAoC;AACpC,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTool.js","sourceRoot":"","sources":["../../../src/types/session/SessionTool.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionTurn 构造参数与内部运行态类型。
|
|
3
|
+
*
|
|
4
|
+
* 这些类型描述 Turn 编排所依赖的领域对象,不实现任何调度行为。
|
|
5
|
+
*/
|
|
6
|
+
import type { Executor } from "../../executor/Executor.js";
|
|
7
|
+
import type { SessionApprovalBroker } from "../../session/approval/SessionApprovalBroker.js";
|
|
8
|
+
import type { SessionEventHub } from "../../session/runtime/SessionEventHub.js";
|
|
9
|
+
import type { SessionMessages } from "../../session/SessionMessages.js";
|
|
10
|
+
import type { SessionState } from "../../session/SessionState.js";
|
|
11
|
+
import type { AgentSessionTurnResult } from "../../types/sdk/AgentSessionTurn.js";
|
|
12
|
+
import type { SessionQueueCommand } from "../../types/session/SessionQueue.js";
|
|
13
|
+
/** Promise 延迟控制器。 */
|
|
14
|
+
export interface SessionDeferred<T> {
|
|
15
|
+
/** 等待兑现的 Promise。 */
|
|
16
|
+
promise: Promise<T>;
|
|
17
|
+
/** 兑现 Promise 的函数。 */
|
|
18
|
+
resolve: (value: T) => void;
|
|
19
|
+
}
|
|
20
|
+
/** 当前活跃 Turn 的内存状态。 */
|
|
21
|
+
export interface ActiveSessionTurnState {
|
|
22
|
+
/** 当前 Turn 的稳定标识。 */
|
|
23
|
+
turn_id: string;
|
|
24
|
+
/** 当前 Turn 的最终结果快照。 */
|
|
25
|
+
result: AgentSessionTurnResult | null;
|
|
26
|
+
/** 当前 Turn 完成状态的延迟控制器。 */
|
|
27
|
+
deferred_finished: SessionDeferred<AgentSessionTurnResult>;
|
|
28
|
+
/** 当前 Turn 的取消控制器。 */
|
|
29
|
+
abort_controller: AbortController;
|
|
30
|
+
}
|
|
31
|
+
/** SessionTurn 构造参数。 */
|
|
32
|
+
export interface SessionTurnOptions {
|
|
33
|
+
/** 当前 Session 的稳定标识。 */
|
|
34
|
+
session_id: string;
|
|
35
|
+
/** 当前项目的绝对根目录。 */
|
|
36
|
+
project_root: string;
|
|
37
|
+
/** 当前 Session 的模型执行器。 */
|
|
38
|
+
executor: Executor;
|
|
39
|
+
/** 当前 Session 的配置与 Metadata 状态。 */
|
|
40
|
+
state: SessionState;
|
|
41
|
+
/** 当前 Session 的 canonical Message 入口。 */
|
|
42
|
+
messages: SessionMessages;
|
|
43
|
+
/** 当前 Session 的 Mutation 总线。 */
|
|
44
|
+
events: SessionEventHub;
|
|
45
|
+
/** 当前 Session 的 Tool 审批入口。 */
|
|
46
|
+
approvals: SessionApprovalBroker;
|
|
47
|
+
/** 在 Step 检查点提交 Session 或 Agent 状态 Command。 */
|
|
48
|
+
apply_command: (command: Exclude<SessionQueueCommand, {
|
|
49
|
+
type: "compact";
|
|
50
|
+
}>, turn_id: string) => Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=SessionTurn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTurn.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionTurn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,qBAAqB;AACrB,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAED,uBAAuB;AACvB,MAAM,WAAW,sBAAsB;IACrC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,0BAA0B;IAC1B,iBAAiB,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAC3D,sBAAsB;IACtB,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,wBAAwB;AACxB,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,yCAAyC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,gCAAgC;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,8BAA8B;IAC9B,SAAS,EAAE,qBAAqB,CAAC;IACjC,+CAA+C;IAC/C,aAAa,EAAE,CACb,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,EAC1D,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionTurn.js","sourceRoot":"","sources":["../../../src/types/session/SessionTurn.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@downcity/agent",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.258",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Downcity Agent 运行时 — 单 Agent 执行壳与本机 RPC 能力",
|
|
6
6
|
"main": "./bin/index.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@ai-sdk/openai-compatible": "^2.0.48",
|
|
16
|
-
"@downcity/shell": "^0.1.
|
|
17
|
-
"@downcity/type": "0.1.
|
|
16
|
+
"@downcity/shell": "^0.1.112",
|
|
17
|
+
"@downcity/type": "0.1.145",
|
|
18
18
|
"ai": "^6.0.193",
|
|
19
19
|
"commander": "^15.0.0",
|
|
20
20
|
"dotenv": "^17.4.2",
|
|
@@ -37,7 +37,7 @@ test("项目 .env 覆盖宿主环境且不修改 process.env", () => {
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
test("
|
|
40
|
+
test("Agent 运行时只使用显式 id,不读取完整项目 config", async () => {
|
|
41
41
|
const project_root = create_project_root();
|
|
42
42
|
try {
|
|
43
43
|
fs.writeFileSync(path.join(project_root, "downcity.json"), JSON.stringify({
|
|
@@ -45,23 +45,9 @@ test("SDK 未传 config 时不读取 downcity.json", async () => {
|
|
|
45
45
|
version: "9.9.9",
|
|
46
46
|
}));
|
|
47
47
|
const agent = new Agent({ id: "sdk_id", path: project_root });
|
|
48
|
-
assert.equal(agent.
|
|
49
|
-
assert.equal(agent.getContext().
|
|
50
|
-
|
|
51
|
-
await agent.dispose();
|
|
52
|
-
} finally {
|
|
53
|
-
fs.rmSync(project_root, { recursive: true, force: true, maxRetries: 5, retryDelay: 20 });
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test("SDK 未注入 plugin_config 时明确拒绝持久化", async () => {
|
|
58
|
-
const project_root = create_project_root();
|
|
59
|
-
try {
|
|
60
|
-
const agent = new Agent({ id: "sdk_id", path: project_root });
|
|
61
|
-
await assert.rejects(
|
|
62
|
-
agent.getContext().pluginConfig.persistProjectPlugins({}),
|
|
63
|
-
/Plugin config persistence is not configured/,
|
|
64
|
-
);
|
|
48
|
+
assert.equal(agent.id, "sdk_id");
|
|
49
|
+
assert.equal(agent.getContext().agent_id, "sdk_id");
|
|
50
|
+
assert.equal(agent.getContext().rootPath, project_root);
|
|
65
51
|
await agent.ready();
|
|
66
52
|
await agent.dispose();
|
|
67
53
|
} finally {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file 验证 session.prompt 会等待当前 Agent
|
|
2
|
+
* @file 验证 session.prompt 会等待当前 Agent runtime ready。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
5
|
* - 这里走编译后的公开 SDK,覆盖宿主真实入口。
|
|
@@ -86,7 +86,7 @@ function create_stream_text_result(text) {
|
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
test("session.prompt waits for agent
|
|
89
|
+
test("session.prompt waits for agent runtime ready before model execution", async () => {
|
|
90
90
|
const agent_path = await fs.mkdtemp(
|
|
91
91
|
path.join(os.tmpdir(), "downcity-agent-ready-"),
|
|
92
92
|
);
|
|
@@ -203,3 +203,34 @@ test("agent ready isolates plugin lifecycle start failures", async () => {
|
|
|
203
203
|
await agent.dispose();
|
|
204
204
|
}
|
|
205
205
|
});
|
|
206
|
+
|
|
207
|
+
test("AgentState installs plugin tools when an action plugin is registered", async () => {
|
|
208
|
+
const agent_path = await fs.mkdtemp(
|
|
209
|
+
path.join(os.tmpdir(), "downcity-agent-state-plugin-tools-"),
|
|
210
|
+
);
|
|
211
|
+
const agent = new Agent({
|
|
212
|
+
id: "state_plugin_tools_agent",
|
|
213
|
+
path: agent_path,
|
|
214
|
+
});
|
|
215
|
+
const action_plugin = createPlugin({
|
|
216
|
+
name: "dynamic_action",
|
|
217
|
+
actions: {
|
|
218
|
+
ping: {
|
|
219
|
+
description: "Return pong",
|
|
220
|
+
execute: async () => ({ success: true, data: { value: "pong" } }),
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
try {
|
|
226
|
+
assert.equal(agent.tools.plugin_read, undefined);
|
|
227
|
+
assert.equal(agent.tools.plugin_call, undefined);
|
|
228
|
+
|
|
229
|
+
await agent.plugins.register(action_plugin);
|
|
230
|
+
|
|
231
|
+
assert.notEqual(agent.tools.plugin_read, undefined);
|
|
232
|
+
assert.notEqual(agent.tools.plugin_call, undefined);
|
|
233
|
+
} finally {
|
|
234
|
+
await agent.dispose();
|
|
235
|
+
}
|
|
236
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Session 领域维护能力测试。
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import assert from "node:assert/strict";
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import os from "node:os";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import test from "node:test";
|
|
10
|
+
import { Agent } from "../bin/index.js";
|
|
11
|
+
|
|
12
|
+
function create_project_root() {
|
|
13
|
+
return fs.mkdtempSync(path.join(os.tmpdir(), "downcity-session-maintenance-"));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function get_session_path(root_path, agent_id, session_id) {
|
|
17
|
+
return path.join(
|
|
18
|
+
root_path,
|
|
19
|
+
".downcity",
|
|
20
|
+
"agents",
|
|
21
|
+
encodeURIComponent(agent_id),
|
|
22
|
+
"sessions",
|
|
23
|
+
encodeURIComponent(session_id),
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
test("AgentContext sessions 负责清空消息和删除 Session 数据", async () => {
|
|
28
|
+
const root_path = create_project_root();
|
|
29
|
+
const agent = new Agent({ id: "agent_test", path: root_path });
|
|
30
|
+
try {
|
|
31
|
+
assert.equal(agent.getContext().sessions, agent.sessions);
|
|
32
|
+
const session_id = "session_test";
|
|
33
|
+
await agent.sessions.create({ sessionId: session_id });
|
|
34
|
+
const session_path = get_session_path(root_path, agent.id, session_id);
|
|
35
|
+
const messages_path = path.join(session_path, "messages");
|
|
36
|
+
fs.mkdirSync(messages_path, { recursive: true });
|
|
37
|
+
fs.writeFileSync(path.join(messages_path, "active.jsonl"), "{}\n");
|
|
38
|
+
|
|
39
|
+
assert.equal(
|
|
40
|
+
await agent.getContext().sessions.clear_messages(session_id),
|
|
41
|
+
true,
|
|
42
|
+
);
|
|
43
|
+
assert.equal(fs.existsSync(messages_path), false);
|
|
44
|
+
assert.equal(fs.existsSync(session_path), true);
|
|
45
|
+
|
|
46
|
+
assert.equal(await agent.getContext().sessions.remove(session_id), true);
|
|
47
|
+
assert.equal(fs.existsSync(session_path), false);
|
|
48
|
+
} finally {
|
|
49
|
+
await agent.dispose();
|
|
50
|
+
fs.rmSync(root_path, { recursive: true, force: true });
|
|
51
|
+
}
|
|
52
|
+
});
|
|
@@ -15,7 +15,6 @@ import os from "node:os";
|
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
import fs from "node:fs/promises";
|
|
17
17
|
import { Agent } from "../bin/index.js";
|
|
18
|
-
import { enqueueAssistantFileParts } from "../bin/executor/SessionRunScope.js";
|
|
19
18
|
import { createAction, createPlugin } from "../bin/plugin/core/PluginActionFactory.js";
|
|
20
19
|
import { CITY_MODEL_INVOKER, CITY_MODEL_KIND } from "@downcity/type";
|
|
21
20
|
import { tool } from "ai";
|
|
@@ -256,14 +255,14 @@ test("CityModel uses direct LanguageModel path and sends tool result back", asyn
|
|
|
256
255
|
inputSchema: z.object({
|
|
257
256
|
value: z.string(),
|
|
258
257
|
}),
|
|
259
|
-
execute: async ({ value }) => {
|
|
258
|
+
execute: async ({ value }, options) => {
|
|
260
259
|
tool_executed = true;
|
|
261
|
-
|
|
260
|
+
options.experimental_context.session_run_context.pendingAssistantFileParts.push({
|
|
262
261
|
type: "file",
|
|
263
262
|
mediaType: "image/png",
|
|
264
263
|
url: ".downcity/resources/tool-output.png",
|
|
265
264
|
filename: "tool-output.png",
|
|
266
|
-
}
|
|
265
|
+
});
|
|
267
266
|
return { echoed: value };
|
|
268
267
|
},
|
|
269
268
|
}),
|
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
should_compact_after_usage,
|
|
14
14
|
} from "../bin/executor/core-engine/CoreEngineContextCompaction.js";
|
|
15
15
|
import { CoreEngineRunner } from "../bin/executor/core-engine/CoreEngineRunner.js";
|
|
16
|
-
import { LocalSessionContextComposer } from "../bin/executor/composer/context/LocalSessionContextComposer.js";
|
|
17
16
|
|
|
18
17
|
function create_stream_text_result(text, input_tokens, output_tokens) {
|
|
19
18
|
return {
|
|
@@ -47,26 +46,16 @@ function create_stream_text_result(text, input_tokens, output_tokens) {
|
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
function create_runner() {
|
|
50
|
-
const context_composer = new LocalSessionContextComposer({
|
|
51
|
-
sessionId: "compact-runner-session",
|
|
52
|
-
getTools: () => ({}),
|
|
53
|
-
});
|
|
54
49
|
return new CoreEngineRunner({
|
|
55
|
-
|
|
56
|
-
context_composer,
|
|
50
|
+
session_id: "compact-runner-session",
|
|
57
51
|
logger: { log: async () => {} },
|
|
58
52
|
should_compact_on_error: () => false,
|
|
59
53
|
});
|
|
60
54
|
}
|
|
61
55
|
|
|
62
56
|
function create_context_error_runner() {
|
|
63
|
-
const context_composer = new LocalSessionContextComposer({
|
|
64
|
-
sessionId: "compact-runner-session",
|
|
65
|
-
getTools: () => ({}),
|
|
66
|
-
});
|
|
67
57
|
return new CoreEngineRunner({
|
|
68
|
-
|
|
69
|
-
context_composer,
|
|
58
|
+
session_id: "compact-runner-session",
|
|
70
59
|
logger: { log: async () => {} },
|
|
71
60
|
should_compact_on_error: (error) =>
|
|
72
61
|
String(error || "").includes("context length"),
|
|
@@ -94,6 +83,7 @@ function create_run_input(model, messages, context_window = 100) {
|
|
|
94
83
|
tools: {},
|
|
95
84
|
context_window,
|
|
96
85
|
}),
|
|
86
|
+
reload_history: async () => messages,
|
|
97
87
|
};
|
|
98
88
|
}
|
|
99
89
|
|
|
@@ -191,16 +181,8 @@ test("显式 compact 后在下一次 provider 调用前重载 canonical history"
|
|
|
191
181
|
},
|
|
192
182
|
parts: [{ type: "text", text: "compacted checkpoint" }],
|
|
193
183
|
}];
|
|
194
|
-
const context_composer = new LocalSessionContextComposer({
|
|
195
|
-
sessionId: "compact-runner-session",
|
|
196
|
-
getTools: () => ({}),
|
|
197
|
-
});
|
|
198
184
|
const runner = new CoreEngineRunner({
|
|
199
|
-
|
|
200
|
-
sessionId: "compact-runner-session",
|
|
201
|
-
list_records: async () => compacted_records,
|
|
202
|
-
},
|
|
203
|
-
context_composer,
|
|
185
|
+
session_id: "compact-runner-session",
|
|
204
186
|
logger: { log: async () => {} },
|
|
205
187
|
should_compact_on_error: () => false,
|
|
206
188
|
});
|
|
@@ -229,6 +211,7 @@ test("显式 compact 后在下一次 provider 调用前重载 canonical history"
|
|
|
229
211
|
reload_requested = false;
|
|
230
212
|
return requested;
|
|
231
213
|
};
|
|
214
|
+
input.reload_history = async () => compacted_records;
|
|
232
215
|
|
|
233
216
|
const result = await runner.run(input);
|
|
234
217
|
|
|
@@ -14,7 +14,7 @@ import os from "node:os";
|
|
|
14
14
|
import path from "node:path";
|
|
15
15
|
|
|
16
16
|
import { ImagePlugin } from "../../plugins/bin/index.js";
|
|
17
|
-
import {
|
|
17
|
+
import { PluginRegistry } from "../bin/plugin/core/PluginRegistry.js";
|
|
18
18
|
|
|
19
19
|
function create_image_message() {
|
|
20
20
|
return {
|
|
@@ -36,11 +36,9 @@ function create_context(rootPath = process.cwd()) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
function create_registry(plugin, rootPath = process.cwd()) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
get_context: () => create_context(rootPath),
|
|
43
|
-
});
|
|
39
|
+
const registry = new PluginRegistry([plugin]);
|
|
40
|
+
registry.bind_context(create_context(rootPath));
|
|
41
|
+
return registry;
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
test("ImagePlugin exposes only job-style image actions", async () => {
|