@downcity/agent 1.1.438 → 1.1.446
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 +25 -18
- package/bin/agent/Agent.d.ts +44 -20
- package/bin/agent/Agent.d.ts.map +1 -1
- package/bin/agent/Agent.js +114 -69
- package/bin/agent/Agent.js.map +1 -1
- package/bin/agent/AgentInstructions.d.ts +18 -4
- package/bin/agent/AgentInstructions.d.ts.map +1 -1
- package/bin/agent/AgentInstructions.js +33 -14
- package/bin/agent/AgentInstructions.js.map +1 -1
- package/bin/agent/AgentMemoryStorage.d.ts +1 -1
- package/bin/agent/AgentMemoryStorage.d.ts.map +1 -1
- package/bin/agent/AgentMemoryStorage.js.map +1 -1
- package/bin/agent/AgentSessions.d.ts +29 -16
- package/bin/agent/AgentSessions.d.ts.map +1 -1
- package/bin/agent/AgentSessions.js +42 -22
- package/bin/agent/AgentSessions.js.map +1 -1
- package/bin/group/Group.d.ts +13 -12
- package/bin/group/Group.d.ts.map +1 -1
- package/bin/group/Group.js +24 -23
- package/bin/group/Group.js.map +1 -1
- package/bin/group/GroupSession.d.ts.map +1 -1
- package/bin/group/GroupSession.js +13 -9
- package/bin/group/GroupSession.js.map +1 -1
- package/bin/group/GroupSessions.d.ts +27 -2
- package/bin/group/GroupSessions.d.ts.map +1 -1
- package/bin/group/GroupSessions.js +68 -21
- package/bin/group/GroupSessions.js.map +1 -1
- package/bin/group/storage/LocalGroupSessionDataStore.d.ts +8 -0
- package/bin/group/storage/LocalGroupSessionDataStore.d.ts.map +1 -1
- package/bin/group/storage/LocalGroupSessionDataStore.js +1 -1
- package/bin/group/storage/LocalGroupSessionDataStore.js.map +1 -1
- package/bin/group/storage/LocalGroupSessionStore.d.ts +64 -5
- package/bin/group/storage/LocalGroupSessionStore.d.ts.map +1 -1
- package/bin/group/storage/LocalGroupSessionStore.js +114 -23
- package/bin/group/storage/LocalGroupSessionStore.js.map +1 -1
- package/bin/index.d.ts +25 -30
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +14 -14
- package/bin/index.js.map +1 -1
- package/bin/{executor/model → model}/ModelGenerate.d.ts +1 -1
- package/bin/model/ModelGenerate.d.ts.map +1 -0
- package/bin/model/ModelGenerate.js.map +1 -0
- package/bin/{executor/model → model}/ModelRequestRunner.d.ts +1 -1
- package/bin/model/ModelRequestRunner.d.ts.map +1 -0
- package/bin/model/ModelRequestRunner.js.map +1 -0
- package/bin/{executor/model → model}/ModelStepRunner.d.ts +6 -7
- package/bin/model/ModelStepRunner.d.ts.map +1 -0
- package/bin/{executor/model → model}/ModelStepRunner.js +16 -10
- package/bin/model/ModelStepRunner.js.map +1 -0
- package/bin/model/ModelStreamConsumer.d.ts.map +1 -0
- package/bin/model/ModelStreamConsumer.js.map +1 -0
- package/bin/model/ModelStreamFailure.d.ts.map +1 -0
- package/bin/model/ModelStreamFailure.js.map +1 -0
- package/bin/model/ToolInputValidation.d.ts +28 -0
- package/bin/model/ToolInputValidation.d.ts.map +1 -0
- package/bin/model/ToolInputValidation.js +37 -0
- package/bin/model/ToolInputValidation.js.map +1 -0
- package/bin/model/messages/ChatMessageMarkup.d.ts.map +1 -0
- package/bin/model/messages/ChatMessageMarkup.js.map +1 -0
- package/bin/{executor → model}/messages/ChatMessageMarkupTypes.d.ts +1 -1
- package/bin/model/messages/ChatMessageMarkupTypes.d.ts.map +1 -0
- package/bin/{executor → model}/messages/ChatMessageMarkupTypes.js +1 -1
- package/bin/model/messages/ChatMessageMarkupTypes.js.map +1 -0
- package/bin/model/messages/SessionAttachmentMapper.d.ts.map +1 -0
- package/bin/model/messages/SessionAttachmentMapper.js.map +1 -0
- package/bin/model/messages/SessionMessageLog.d.ts.map +1 -0
- package/bin/model/messages/SessionMessageLog.js.map +1 -0
- package/bin/model/messages/SessionModelMessages.d.ts.map +1 -0
- package/bin/{executor → model}/messages/SessionModelMessages.js +0 -1
- package/bin/model/messages/SessionModelMessages.js.map +1 -0
- package/bin/model/prompts/SystemPromptAssets.d.ts.map +1 -0
- package/bin/{executor/composer/system/default → model/prompts}/SystemPromptAssets.js +1 -1
- package/bin/model/prompts/SystemPromptAssets.js.map +1 -0
- package/bin/model/prompts/assets/core.prompt.d.ts +7 -0
- package/bin/model/prompts/assets/core.prompt.d.ts.map +1 -0
- package/bin/model/prompts/assets/core.prompt.js +8 -0
- package/bin/model/prompts/assets/core.prompt.js.map +1 -0
- package/bin/session/Session.d.ts +29 -17
- package/bin/session/Session.d.ts.map +1 -1
- package/bin/session/Session.js +161 -134
- package/bin/session/Session.js.map +1 -1
- package/bin/session/input/SessionHookRunner.d.ts +52 -0
- package/bin/session/input/SessionHookRunner.d.ts.map +1 -0
- package/bin/session/input/SessionHookRunner.js +51 -0
- package/bin/session/input/SessionHookRunner.js.map +1 -0
- package/bin/session/input/SessionSystem.d.ts +26 -0
- package/bin/session/input/SessionSystem.d.ts.map +1 -0
- package/bin/session/{SessionSystem.js → input/SessionSystem.js} +27 -23
- package/bin/session/input/SessionSystem.js.map +1 -0
- package/bin/session/input/StepInput.d.ts +77 -0
- package/bin/session/input/StepInput.d.ts.map +1 -0
- package/bin/session/input/StepInput.js +429 -0
- package/bin/session/input/StepInput.js.map +1 -0
- package/bin/session/input/composer/AdaptiveContextCheckpoint.d.ts +33 -0
- package/bin/session/input/composer/AdaptiveContextCheckpoint.d.ts.map +1 -0
- package/bin/session/input/composer/AdaptiveContextCheckpoint.js +83 -0
- package/bin/session/input/composer/AdaptiveContextCheckpoint.js.map +1 -0
- package/bin/session/input/composer/AdaptiveContextParts.d.ts +26 -0
- package/bin/session/input/composer/AdaptiveContextParts.d.ts.map +1 -0
- package/bin/session/input/composer/AdaptiveContextParts.js +124 -0
- package/bin/session/input/composer/AdaptiveContextParts.js.map +1 -0
- package/bin/session/input/composer/ComposerAssembly.d.ts +21 -0
- package/bin/session/input/composer/ComposerAssembly.d.ts.map +1 -0
- package/bin/session/input/composer/ComposerAssembly.js +64 -0
- package/bin/session/input/composer/ComposerAssembly.js.map +1 -0
- package/bin/session/{composer/policies/SessionSummaryPrompts.d.ts → input/composer/ContextSummaryPrompts.d.ts} +5 -3
- package/bin/session/input/composer/ContextSummaryPrompts.d.ts.map +1 -0
- package/bin/session/{composer/policies/SessionSummaryPrompts.js → input/composer/ContextSummaryPrompts.js} +5 -3
- package/bin/session/input/composer/ContextSummaryPrompts.js.map +1 -0
- package/bin/session/input/composer/DefaultSessionComposer.d.ts +24 -0
- package/bin/session/input/composer/DefaultSessionComposer.d.ts.map +1 -0
- package/bin/session/input/composer/DefaultSessionComposer.js +108 -0
- package/bin/session/input/composer/DefaultSessionComposer.js.map +1 -0
- package/bin/session/input/composer/FullHistorySessionComposer.d.ts +19 -0
- package/bin/session/input/composer/FullHistorySessionComposer.d.ts.map +1 -0
- package/bin/session/input/composer/FullHistorySessionComposer.js +36 -0
- package/bin/session/input/composer/FullHistorySessionComposer.js.map +1 -0
- package/bin/session/{SessionLoop.d.ts → loop/SessionLoop.d.ts} +34 -7
- package/bin/session/loop/SessionLoop.d.ts.map +1 -0
- package/bin/session/{SessionLoop.js → loop/SessionLoop.js} +79 -16
- package/bin/session/loop/SessionLoop.js.map +1 -0
- package/bin/session/{SessionQueue.d.ts → loop/SessionQueue.d.ts} +9 -1
- package/bin/session/loop/SessionQueue.d.ts.map +1 -0
- package/bin/session/{SessionQueue.js → loop/SessionQueue.js} +19 -0
- package/bin/session/loop/SessionQueue.js.map +1 -0
- package/bin/session/{SessionState.d.ts → loop/SessionState.d.ts} +4 -5
- package/bin/session/loop/SessionState.d.ts.map +1 -0
- package/bin/session/{SessionState.js → loop/SessionState.js} +6 -25
- package/bin/session/loop/SessionState.js.map +1 -0
- package/bin/session/{SessionTitle.d.ts → loop/SessionTitle.d.ts} +4 -4
- package/bin/session/loop/SessionTitle.d.ts.map +1 -0
- package/bin/session/{SessionTitle.js → loop/SessionTitle.js} +3 -3
- package/bin/session/loop/SessionTitle.js.map +1 -0
- package/bin/session/loop/SessionTitleTask.d.ts.map +1 -0
- package/bin/session/loop/SessionTitleTask.js.map +1 -0
- package/bin/session/{runtime → loop}/SessionTurnCompletion.d.ts +7 -0
- package/bin/session/loop/SessionTurnCompletion.d.ts.map +1 -0
- package/bin/session/{runtime → loop}/SessionTurnCompletion.js +25 -6
- package/bin/session/loop/SessionTurnCompletion.js.map +1 -0
- package/bin/session/loop/SessionTurnContext.d.ts +12 -0
- package/bin/session/loop/SessionTurnContext.d.ts.map +1 -0
- package/bin/session/{runtime → loop}/SessionTurnContext.js +14 -67
- package/bin/session/loop/SessionTurnContext.js.map +1 -0
- package/bin/session/loop/SessionTurnFileDiff.d.ts.map +1 -0
- package/bin/session/{runtime → loop}/SessionTurnFileDiff.js +1 -1
- package/bin/session/loop/SessionTurnFileDiff.js.map +1 -0
- package/bin/session/{messages → loop}/SessionTurnFileDiffBuilder.d.ts +3 -3
- package/bin/session/loop/SessionTurnFileDiffBuilder.d.ts.map +1 -0
- package/bin/session/loop/SessionTurnFileDiffBuilder.js.map +1 -0
- package/bin/session/messages/ApprovalInteraction.d.ts +30 -0
- package/bin/session/messages/ApprovalInteraction.d.ts.map +1 -0
- package/bin/session/messages/ApprovalInteraction.js +61 -0
- package/bin/session/messages/ApprovalInteraction.js.map +1 -0
- package/bin/session/messages/SessionAgentMessageState.d.ts +47 -18
- package/bin/session/messages/SessionAgentMessageState.d.ts.map +1 -1
- package/bin/session/messages/SessionAgentMessageState.js +224 -86
- package/bin/session/messages/SessionAgentMessageState.js.map +1 -1
- package/bin/session/messages/SessionAgentMessageWriter.d.ts +15 -4
- package/bin/session/messages/SessionAgentMessageWriter.d.ts.map +1 -1
- package/bin/session/messages/SessionAgentMessageWriter.js +57 -37
- package/bin/session/messages/SessionAgentMessageWriter.js.map +1 -1
- package/bin/session/messages/SessionAgentParts.d.ts +14 -0
- package/bin/session/messages/SessionAgentParts.d.ts.map +1 -0
- package/bin/session/messages/SessionAgentParts.js +20 -0
- package/bin/session/messages/SessionAgentParts.js.map +1 -0
- package/bin/session/{execution → messages}/SessionAssistantOutputAdapter.d.ts +2 -2
- package/bin/session/messages/SessionAssistantOutputAdapter.d.ts.map +1 -0
- package/bin/session/messages/SessionAssistantOutputAdapter.js.map +1 -0
- package/bin/session/messages/SessionEventHub.d.ts.map +1 -0
- package/bin/session/messages/SessionEventHub.js.map +1 -0
- package/bin/session/messages/SessionInteractions.d.ts +57 -0
- package/bin/session/messages/SessionInteractions.d.ts.map +1 -0
- package/bin/session/messages/SessionInteractions.js +178 -0
- package/bin/session/messages/SessionInteractions.js.map +1 -0
- package/bin/session/messages/SessionJsonValue.d.ts +1 -3
- package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
- package/bin/session/messages/SessionJsonValue.js +0 -19
- package/bin/session/messages/SessionJsonValue.js.map +1 -1
- package/bin/session/messages/SessionMessageCache.d.ts +55 -0
- package/bin/session/messages/SessionMessageCache.d.ts.map +1 -0
- package/bin/session/messages/SessionMessageCache.js +133 -0
- package/bin/session/messages/SessionMessageCache.js.map +1 -0
- package/bin/session/messages/SessionMessageState.d.ts +17 -0
- package/bin/session/messages/SessionMessageState.d.ts.map +1 -0
- package/bin/session/messages/SessionMessageState.js +34 -0
- package/bin/session/messages/SessionMessageState.js.map +1 -0
- package/bin/session/messages/SessionMessageTimeline.d.ts.map +1 -0
- package/bin/session/{browse → messages}/SessionMessageTimeline.js +0 -1
- package/bin/session/messages/SessionMessageTimeline.js.map +1 -0
- package/bin/session/{SessionMessages.d.ts → messages/SessionMessages.d.ts} +35 -43
- package/bin/session/messages/SessionMessages.d.ts.map +1 -0
- package/bin/session/{SessionMessages.js → messages/SessionMessages.js} +178 -196
- package/bin/session/messages/SessionMessages.js.map +1 -0
- package/bin/session/messages/SessionModelRequestWarning.d.ts.map +1 -0
- package/bin/session/messages/SessionModelRequestWarning.js.map +1 -0
- package/bin/session/messages/SessionMutationFactory.d.ts +26 -0
- package/bin/session/messages/SessionMutationFactory.d.ts.map +1 -0
- package/bin/session/messages/SessionMutationFactory.js +38 -0
- package/bin/session/messages/SessionMutationFactory.js.map +1 -0
- package/bin/session/messages/SessionUserMessage.d.ts +5 -7
- package/bin/session/messages/SessionUserMessage.d.ts.map +1 -1
- package/bin/session/messages/SessionUserMessage.js +5 -28
- package/bin/session/messages/SessionUserMessage.js.map +1 -1
- package/bin/{executor/core-engine/CoreEngineSignals.d.ts → session/runner/AssistantParts.d.ts} +4 -9
- package/bin/session/runner/AssistantParts.d.ts.map +1 -0
- package/bin/{executor/core-engine/CoreEngineSignals.js → session/runner/AssistantParts.js} +4 -17
- package/bin/session/runner/AssistantParts.js.map +1 -0
- package/bin/session/runner/ContextPressure.d.ts +15 -0
- package/bin/session/runner/ContextPressure.d.ts.map +1 -0
- package/bin/{executor/core-engine/CoreEngineContextCompaction.js → session/runner/ContextPressure.js} +11 -11
- package/bin/session/runner/ContextPressure.js.map +1 -0
- package/bin/session/runner/ContextRetry.d.ts +39 -0
- package/bin/session/runner/ContextRetry.d.ts.map +1 -0
- package/bin/{executor/services/ExecutorRecoveryPolicy.js → session/runner/ContextRetry.js} +19 -19
- package/bin/session/runner/ContextRetry.js.map +1 -0
- package/bin/{executor/core-engine/CoreEngineError.d.ts → session/runner/ModelFailure.d.ts} +4 -4
- package/bin/session/runner/ModelFailure.d.ts.map +1 -0
- package/bin/{executor/core-engine/CoreEngineError.js → session/runner/ModelFailure.js} +4 -4
- package/bin/session/runner/ModelFailure.js.map +1 -0
- package/bin/session/runner/SessionExecutor.d.ts +108 -0
- package/bin/session/runner/SessionExecutor.d.ts.map +1 -0
- package/bin/session/runner/SessionExecutor.js +430 -0
- package/bin/session/runner/SessionExecutor.js.map +1 -0
- package/bin/session/runner/ToolLoopDecision.d.ts +60 -0
- package/bin/session/runner/ToolLoopDecision.d.ts.map +1 -0
- package/bin/{executor/core-engine/CoreEngineLoopDecision.js → session/runner/ToolLoopDecision.js} +5 -5
- package/bin/session/runner/ToolLoopDecision.js.map +1 -0
- package/bin/session/runner/ToolLoopLimits.d.ts +30 -0
- package/bin/session/runner/ToolLoopLimits.d.ts.map +1 -0
- package/bin/session/runner/ToolLoopLimits.js +46 -0
- package/bin/session/runner/ToolLoopLimits.js.map +1 -0
- package/bin/session/{browse → storage}/Browse.d.ts +1 -1
- package/bin/session/storage/Browse.d.ts.map +1 -0
- package/bin/session/{browse → storage}/Browse.js +1 -1
- package/bin/session/storage/Browse.js.map +1 -0
- package/bin/session/storage/LocalSessionStore.js +1 -1
- package/bin/session/storage/LocalSessionStore.js.map +1 -1
- package/bin/session/storage/LocalStorePaths.d.ts +0 -2
- package/bin/session/storage/LocalStorePaths.d.ts.map +1 -1
- package/bin/session/storage/LocalStorePaths.js +1 -1
- package/bin/session/storage/LocalStorePaths.js.map +1 -1
- package/bin/session/storage/Metadata.d.ts +1 -23
- package/bin/session/storage/Metadata.d.ts.map +1 -1
- package/bin/session/storage/Metadata.js +0 -18
- package/bin/session/storage/Metadata.js.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.d.ts +0 -4
- package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.js +0 -1
- package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
- package/bin/session/{preview → storage}/SessionMessagePreview.d.ts.map +1 -1
- package/bin/session/{preview → storage}/SessionMessagePreview.js +0 -1
- package/bin/session/{preview → storage}/SessionMessagePreview.js.map +1 -1
- package/bin/session/storage/SessionStorageCodec.d.ts.map +1 -1
- package/bin/session/storage/SessionStorageCodec.js +36 -18
- package/bin/session/storage/SessionStorageCodec.js.map +1 -1
- package/bin/session/storage/SessionStorageSchema.d.ts +1 -1
- package/bin/session/storage/SessionStorageSchema.js +1 -1
- package/bin/session/storage/SqliteSessionStorage.d.ts +6 -4
- package/bin/session/storage/SqliteSessionStorage.d.ts.map +1 -1
- package/bin/session/storage/SqliteSessionStorage.js +21 -18
- package/bin/session/storage/SqliteSessionStorage.js.map +1 -1
- package/bin/tools/ask/AskQuestionAnswers.d.ts +20 -0
- package/bin/tools/ask/AskQuestionAnswers.d.ts.map +1 -0
- package/bin/tools/ask/AskQuestionAnswers.js +99 -0
- package/bin/tools/ask/AskQuestionAnswers.js.map +1 -0
- package/bin/tools/ask/AskQuestionsTool.d.ts +5 -2
- package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
- package/bin/tools/ask/AskQuestionsTool.js +23 -31
- package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
- package/bin/tools/ask/AskQuestionsToolSchemas.d.ts +1 -1
- package/bin/types/agent/AgentOptions.d.ts +16 -8
- package/bin/types/agent/AgentOptions.d.ts.map +1 -1
- package/bin/types/agent/AgentSessionCollection.d.ts +8 -0
- package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -1
- package/bin/types/agent/SessionActor.d.ts +3 -3
- package/bin/types/agent/SessionActor.d.ts.map +1 -1
- package/bin/types/group/DispatchStrategy.js +1 -1
- package/bin/types/group/DispatchStrategy.js.map +1 -1
- package/bin/types/group/GroupSession.d.ts +41 -1
- package/bin/types/group/GroupSession.d.ts.map +1 -1
- package/bin/types/group/GroupSessionStore.d.ts +30 -3
- package/bin/types/group/GroupSessionStore.d.ts.map +1 -1
- package/bin/types/model/ModelRequest.d.ts.map +1 -0
- package/bin/types/model/ModelRequest.js.map +1 -0
- package/bin/types/sdk/AgentSessionAction.d.ts +1 -9
- package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
- package/bin/types/session/{AdaptivePartContextPolicy.d.ts → ContextCheckpoint.d.ts} +10 -9
- package/bin/types/session/ContextCheckpoint.d.ts.map +1 -0
- package/bin/types/session/ContextCheckpoint.js +8 -0
- package/bin/types/session/ContextCheckpoint.js.map +1 -0
- package/bin/types/session/SessionAgentMessageState.d.ts +6 -10
- package/bin/types/session/SessionAgentMessageState.d.ts.map +1 -1
- package/bin/types/session/SessionAgentMessageState.js +3 -2
- package/bin/types/session/SessionAgentMessageState.js.map +1 -1
- package/bin/types/session/SessionComposer.d.ts +65 -36
- package/bin/types/session/SessionComposer.d.ts.map +1 -1
- package/bin/types/session/SessionComposer.js +7 -2
- package/bin/types/session/SessionComposer.js.map +1 -1
- package/bin/types/session/SessionExecution.d.ts +15 -11
- package/bin/types/session/SessionExecution.d.ts.map +1 -1
- package/bin/types/session/SessionExecution.js +1 -1
- package/bin/types/session/SessionInteractions.d.ts +0 -2
- package/bin/types/session/SessionInteractions.d.ts.map +1 -1
- package/bin/types/session/SessionLocalState.d.ts +0 -4
- package/bin/types/session/SessionLocalState.d.ts.map +1 -1
- package/bin/types/session/SessionLoop.d.ts +33 -12
- package/bin/types/session/SessionLoop.d.ts.map +1 -1
- package/bin/types/session/SessionMessages.d.ts +3 -29
- package/bin/types/session/SessionMessages.d.ts.map +1 -1
- package/bin/types/session/SessionOptions.d.ts +16 -13
- package/bin/types/session/SessionOptions.d.ts.map +1 -1
- package/bin/types/session/SessionPort.d.ts +0 -3
- package/bin/types/session/SessionPort.d.ts.map +1 -1
- package/bin/types/session/SessionState.d.ts +0 -1
- package/bin/types/session/SessionState.d.ts.map +1 -1
- package/bin/types/session/SessionSystem.d.ts +10 -12
- package/bin/types/session/SessionSystem.d.ts.map +1 -1
- package/bin/types/session/SessionTool.d.ts +2 -2
- package/bin/types/session/SessionTool.d.ts.map +1 -1
- package/bin/types/session/SessionTurnCompletion.d.ts +12 -2
- package/bin/types/session/SessionTurnCompletion.d.ts.map +1 -1
- package/bin/types/session/SessionTurnFileDiff.d.ts +4 -4
- package/bin/types/session/SessionTurnFileDiff.d.ts.map +1 -1
- package/bin/types/session/{SessionComposition.d.ts → StepInput.d.ts} +17 -15
- package/bin/types/session/StepInput.d.ts.map +1 -0
- package/bin/types/session/StepInput.js +8 -0
- package/bin/types/session/StepInput.js.map +1 -0
- package/bin/types/store/SessionHistoryMeta.d.ts.map +1 -0
- package/bin/types/store/SessionHistoryMeta.js.map +1 -0
- package/bin/types/store/SessionStorage.d.ts +17 -12
- package/bin/types/store/SessionStorage.d.ts.map +1 -1
- package/bin/types/tool/BoundAgentTool.d.ts +36 -0
- package/bin/types/tool/BoundAgentTool.d.ts.map +1 -0
- package/bin/types/tool/BoundAgentTool.js +13 -0
- package/bin/types/tool/BoundAgentTool.js.map +1 -0
- package/bin/types/tools/ask/AskQuestionsTool.d.ts +9 -13
- package/bin/types/tools/ask/AskQuestionsTool.d.ts.map +1 -1
- package/bin/types/tools/ask/AskQuestionsTool.js +3 -2
- package/bin/types/tools/ask/AskQuestionsTool.js.map +1 -1
- package/bin/types/turn/SessionAssistantOutput.d.ts.map +1 -0
- package/bin/types/turn/SessionAssistantOutput.js.map +1 -0
- package/bin/types/{executor → turn}/SessionTurnContext.d.ts +10 -28
- package/bin/types/turn/SessionTurnContext.d.ts.map +1 -0
- package/bin/types/turn/SessionTurnContext.js.map +1 -0
- package/bin/{executor/ids/resolveSessionId.d.ts → utils/ResolveSessionId.d.ts} +1 -1
- package/bin/utils/ResolveSessionId.d.ts.map +1 -0
- package/bin/{executor/ids/resolveSessionId.js → utils/ResolveSessionId.js} +1 -1
- package/bin/utils/ResolveSessionId.js.map +1 -0
- package/bin/utils/Time.d.ts +5 -8
- package/bin/utils/Time.d.ts.map +1 -1
- package/bin/utils/Time.js +5 -54
- package/bin/utils/Time.js.map +1 -1
- package/package.json +2 -2
- package/scripts/ask-question-answers.test.mjs +132 -0
- package/scripts/group-session-archive.test.mjs +193 -0
- package/scripts/{core-engine-model-stream.test.mjs → model-step-runner.test.mjs} +97 -4
- package/scripts/rewrite-build-aliases.mjs +3 -4
- package/scripts/session-action-part.test.mjs +172 -0
- package/scripts/session-agent-message-part-order.test.mjs +13 -7
- package/scripts/{core-engine-context-compaction.test.mjs → session-executor-context-pressure.test.mjs} +40 -32
- package/scripts/{executor-failure-result.test.mjs → session-executor-failure-result.test.mjs} +17 -14
- package/scripts/session-executor-max-steps.test.mjs +143 -0
- package/scripts/session-initialization.test.mjs +3 -4
- package/scripts/session-interaction-migration.test.mjs +145 -0
- package/scripts/session-interaction-mutation.test.mjs +202 -0
- package/scripts/session-messages-error-part.test.mjs +1 -1
- package/scripts/session-messages-error.test.mjs +1 -1
- package/scripts/session-prompt-idempotency.test.mjs +4 -2
- package/scripts/session-queue.test.mjs +21 -1
- package/scripts/session-storage-sqlite.test.mjs +3 -3
- package/scripts/session-system-blocks.test.mjs +61 -39
- package/scripts/session-turn-context.test.mjs +37 -40
- package/scripts/verify-build-aliases.mjs +1 -1
- package/src/agent/Agent.ts +137 -80
- package/src/agent/AgentInstructions.ts +48 -15
- package/src/agent/AgentMemoryStorage.ts +1 -1
- package/src/agent/AgentSessions.ts +60 -38
- package/src/group/Group.ts +27 -24
- package/src/group/GroupSession.ts +12 -8
- package/src/group/GroupSessions.ts +79 -20
- package/src/group/storage/LocalGroupSessionDataStore.ts +9 -1
- package/src/group/storage/LocalGroupSessionStore.ts +138 -28
- package/src/index.ts +35 -52
- package/src/{executor/model → model}/ModelGenerate.ts +3 -3
- package/src/{executor/model → model}/ModelRequestRunner.ts +2 -2
- package/src/{executor/model → model}/ModelStepRunner.ts +22 -19
- package/src/{executor/model → model}/ModelStreamConsumer.ts +1 -1
- package/src/model/README.md +117 -0
- package/src/model/ToolInputValidation.ts +58 -0
- package/src/{executor → model}/messages/ChatMessageMarkupTypes.ts +1 -1
- package/src/{executor → model}/messages/SessionModelMessages.ts +0 -1
- package/src/{executor/composer/system/default → model/prompts}/SystemPromptAssets.ts +1 -1
- package/src/model/prompts/assets/core.prompt.ts +9 -0
- package/src/{executor/composer/system/default → model/prompts}/assets/core.prompt.ts.txt +26 -25
- package/src/session/Session.ts +185 -151
- package/src/session/input/SessionHookRunner.ts +100 -0
- package/src/session/{SessionSystem.ts → input/SessionSystem.ts} +31 -29
- package/src/session/input/StepInput.ts +507 -0
- package/src/session/input/composer/AdaptiveContextCheckpoint.ts +115 -0
- package/src/session/input/composer/AdaptiveContextParts.ts +166 -0
- package/src/session/input/composer/ComposerAssembly.ts +81 -0
- package/src/session/{composer/policies/SessionSummaryPrompts.ts → input/composer/ContextSummaryPrompts.ts} +5 -2
- package/src/session/input/composer/DefaultSessionComposer.ts +147 -0
- package/src/session/input/composer/FullHistorySessionComposer.ts +55 -0
- package/src/session/loop/README.md +28 -0
- package/src/session/{SessionLoop.ts → loop/SessionLoop.ts} +100 -24
- package/src/session/{SessionQueue.ts → loop/SessionQueue.ts} +18 -0
- package/src/session/{SessionState.ts → loop/SessionState.ts} +4 -21
- package/src/session/{SessionTitle.ts → loop/SessionTitle.ts} +3 -3
- package/src/session/{runtime → loop}/SessionTurnCompletion.ts +27 -8
- package/src/session/{runtime → loop}/SessionTurnContext.ts +19 -93
- package/src/session/{runtime → loop}/SessionTurnFileDiff.ts +1 -1
- package/src/session/{messages → loop}/SessionTurnFileDiffBuilder.ts +4 -4
- package/src/session/messages/ApprovalInteraction.ts +77 -0
- package/src/session/messages/README.md +27 -0
- package/src/session/messages/SessionAgentMessageState.ts +324 -113
- package/src/session/messages/SessionAgentMessageWriter.ts +82 -45
- package/src/session/messages/SessionAgentParts.ts +39 -0
- package/src/session/{execution → messages}/SessionAssistantOutputAdapter.ts +2 -2
- package/src/session/messages/SessionInteractions.ts +227 -0
- package/src/session/messages/SessionJsonValue.ts +1 -18
- package/src/session/messages/SessionMessageCache.ts +171 -0
- package/src/session/messages/SessionMessageState.ts +42 -0
- package/src/session/{browse → messages}/SessionMessageTimeline.ts +0 -1
- package/src/session/{SessionMessages.ts → messages/SessionMessages.ts} +225 -284
- package/src/session/messages/SessionMutationFactory.ts +58 -0
- package/src/session/messages/SessionUserMessage.ts +7 -32
- package/src/{executor/core-engine/CoreEngineSignals.ts → session/runner/AssistantParts.ts} +3 -21
- package/src/{executor/core-engine/CoreEngineContextCompaction.ts → session/runner/ContextPressure.ts} +10 -10
- package/src/{executor/services/ExecutorRecoveryPolicy.ts → session/runner/ContextRetry.ts} +25 -25
- package/src/{executor/core-engine/CoreEngineError.ts → session/runner/ModelFailure.ts} +3 -3
- package/src/session/runner/SessionExecutor.ts +633 -0
- package/src/session/runner/ToolLoopDecision.ts +98 -0
- package/src/session/runner/ToolLoopLimits.ts +53 -0
- package/src/session/{browse → storage}/Browse.ts +2 -2
- package/src/session/storage/LocalSessionStore.ts +1 -1
- package/src/session/storage/LocalStorePaths.ts +1 -1
- package/src/session/storage/Metadata.ts +1 -44
- package/src/session/storage/RuntimeSessionPort.ts +0 -5
- package/src/session/{preview → storage}/SessionMessagePreview.ts +0 -1
- package/src/session/storage/SessionStorageCodec.ts +54 -28
- package/src/session/storage/SessionStorageSchema.ts +1 -1
- package/src/session/storage/SqliteSessionStorage.ts +29 -22
- package/src/tools/ask/AskQuestionAnswers.ts +125 -0
- package/src/tools/ask/AskQuestionsTool.ts +32 -37
- package/src/types/agent/AgentOptions.ts +17 -8
- package/src/types/agent/AgentSessionCollection.ts +9 -0
- package/src/types/agent/SessionActor.ts +3 -4
- package/src/types/group/DispatchStrategy.ts +1 -1
- package/src/types/group/GroupSession.ts +44 -1
- package/src/types/group/GroupSessionStore.ts +30 -3
- package/src/types/sdk/AgentSessionAction.ts +1 -14
- package/src/types/session/{AdaptivePartContextPolicy.ts → ContextCheckpoint.ts} +9 -8
- package/src/types/session/SessionAgentMessageState.ts +6 -16
- package/src/types/session/SessionComposer.ts +67 -39
- package/src/types/session/SessionExecution.ts +15 -13
- package/src/types/session/SessionInteractions.ts +0 -2
- package/src/types/session/SessionLocalState.ts +0 -5
- package/src/types/session/SessionLoop.ts +37 -12
- package/src/types/session/SessionMessages.ts +3 -34
- package/src/types/session/SessionOptions.ts +18 -13
- package/src/types/session/SessionPort.ts +0 -4
- package/src/types/session/SessionState.ts +0 -1
- package/src/types/session/SessionSystem.ts +10 -16
- package/src/types/session/SessionTool.ts +2 -2
- package/src/types/session/SessionTurnCompletion.ts +12 -2
- package/src/types/session/SessionTurnFileDiff.ts +4 -4
- package/src/types/session/{SessionComposition.ts → StepInput.ts} +22 -14
- package/src/types/store/SessionStorage.ts +17 -12
- package/src/types/tool/BoundAgentTool.ts +38 -0
- package/src/types/tools/ask/AskQuestionsTool.ts +11 -13
- package/src/types/{executor → turn}/SessionTurnContext.ts +8 -34
- package/src/utils/Time.ts +12 -64
- package/tsconfig.json +1 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/executor/Executor.d.ts +0 -92
- package/bin/executor/Executor.d.ts.map +0 -1
- package/bin/executor/Executor.js +0 -232
- package/bin/executor/Executor.js.map +0 -1
- package/bin/executor/composer/system/default/SystemPromptAssets.d.ts.map +0 -1
- package/bin/executor/composer/system/default/SystemPromptAssets.js.map +0 -1
- package/bin/executor/composer/system/default/assets/core.prompt.d.ts +0 -7
- package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +0 -1
- package/bin/executor/composer/system/default/assets/core.prompt.js +0 -8
- package/bin/executor/composer/system/default/assets/core.prompt.js.map +0 -1
- package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +0 -15
- package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +0 -1
- package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +0 -1
- package/bin/executor/core-engine/CoreEngineError.d.ts.map +0 -1
- package/bin/executor/core-engine/CoreEngineError.js.map +0 -1
- package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +0 -26
- package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts.map +0 -1
- package/bin/executor/core-engine/CoreEngineLoopDecision.js.map +0 -1
- package/bin/executor/core-engine/CoreEngineRunner.d.ts +0 -48
- package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +0 -1
- package/bin/executor/core-engine/CoreEngineRunner.js +0 -343
- package/bin/executor/core-engine/CoreEngineRunner.js.map +0 -1
- package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +0 -1
- package/bin/executor/core-engine/CoreEngineSignals.js.map +0 -1
- package/bin/executor/ids/resolveSessionId.d.ts.map +0 -1
- package/bin/executor/ids/resolveSessionId.js.map +0 -1
- package/bin/executor/messages/ChatMessageMarkup.d.ts.map +0 -1
- package/bin/executor/messages/ChatMessageMarkup.js.map +0 -1
- package/bin/executor/messages/ChatMessageMarkupTypes.d.ts.map +0 -1
- package/bin/executor/messages/ChatMessageMarkupTypes.js.map +0 -1
- package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +0 -1
- package/bin/executor/messages/SessionAttachmentMapper.js.map +0 -1
- package/bin/executor/messages/SessionMessageLog.d.ts.map +0 -1
- package/bin/executor/messages/SessionMessageLog.js.map +0 -1
- package/bin/executor/messages/SessionModelMessages.d.ts.map +0 -1
- package/bin/executor/messages/SessionModelMessages.js.map +0 -1
- package/bin/executor/model/ModelGenerate.d.ts.map +0 -1
- package/bin/executor/model/ModelGenerate.js.map +0 -1
- package/bin/executor/model/ModelRequestRunner.d.ts.map +0 -1
- package/bin/executor/model/ModelRequestRunner.js.map +0 -1
- package/bin/executor/model/ModelStepRunner.d.ts.map +0 -1
- package/bin/executor/model/ModelStepRunner.js.map +0 -1
- package/bin/executor/model/ModelStreamConsumer.d.ts.map +0 -1
- package/bin/executor/model/ModelStreamConsumer.js.map +0 -1
- package/bin/executor/model/ModelStreamFailure.d.ts.map +0 -1
- package/bin/executor/model/ModelStreamFailure.js.map +0 -1
- package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +0 -39
- package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +0 -1
- package/bin/executor/services/ExecutorRecoveryPolicy.js.map +0 -1
- package/bin/executor/types/SessionHistoryMeta.d.ts.map +0 -1
- package/bin/executor/types/SessionHistoryMeta.js.map +0 -1
- package/bin/executor/types/SessionLoop.d.ts +0 -59
- package/bin/executor/types/SessionLoop.d.ts.map +0 -1
- package/bin/executor/types/SessionLoop.js +0 -9
- package/bin/executor/types/SessionLoop.js.map +0 -1
- package/bin/executor/types/SessionPrompts.d.ts +0 -14
- package/bin/executor/types/SessionPrompts.d.ts.map +0 -1
- package/bin/executor/types/SessionPrompts.js +0 -8
- package/bin/executor/types/SessionPrompts.js.map +0 -1
- package/bin/session/DefaultSessionComposer.d.ts +0 -24
- package/bin/session/DefaultSessionComposer.d.ts.map +0 -1
- package/bin/session/DefaultSessionComposer.js +0 -99
- package/bin/session/DefaultSessionComposer.js.map +0 -1
- package/bin/session/SessionComposition.d.ts +0 -49
- package/bin/session/SessionComposition.d.ts.map +0 -1
- package/bin/session/SessionComposition.js +0 -309
- package/bin/session/SessionComposition.js.map +0 -1
- package/bin/session/SessionHookPoints.d.ts +0 -15
- package/bin/session/SessionHookPoints.d.ts.map +0 -1
- package/bin/session/SessionHookPoints.js +0 -15
- package/bin/session/SessionHookPoints.js.map +0 -1
- package/bin/session/SessionHooks.d.ts +0 -38
- package/bin/session/SessionHooks.d.ts.map +0 -1
- package/bin/session/SessionHooks.js +0 -71
- package/bin/session/SessionHooks.js.map +0 -1
- package/bin/session/SessionLoop.d.ts.map +0 -1
- package/bin/session/SessionLoop.js.map +0 -1
- package/bin/session/SessionMessages.d.ts.map +0 -1
- package/bin/session/SessionMessages.js.map +0 -1
- package/bin/session/SessionQueue.d.ts.map +0 -1
- package/bin/session/SessionQueue.js.map +0 -1
- package/bin/session/SessionState.d.ts.map +0 -1
- package/bin/session/SessionState.js.map +0 -1
- package/bin/session/SessionSystem.d.ts +0 -19
- package/bin/session/SessionSystem.d.ts.map +0 -1
- package/bin/session/SessionSystem.js.map +0 -1
- package/bin/session/SessionTitle.d.ts.map +0 -1
- package/bin/session/SessionTitle.js.map +0 -1
- package/bin/session/browse/Browse.d.ts.map +0 -1
- package/bin/session/browse/Browse.js.map +0 -1
- package/bin/session/browse/SessionMessageTimeline.d.ts.map +0 -1
- package/bin/session/browse/SessionMessageTimeline.js.map +0 -1
- package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts +0 -35
- package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts.map +0 -1
- package/bin/session/composer/policies/AdaptivePartContextPolicy.js +0 -256
- package/bin/session/composer/policies/AdaptivePartContextPolicy.js.map +0 -1
- package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts +0 -24
- package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts.map +0 -1
- package/bin/session/composer/policies/FullHistoryContextPolicy.js +0 -31
- package/bin/session/composer/policies/FullHistoryContextPolicy.js.map +0 -1
- package/bin/session/composer/policies/SessionSummaryPrompts.d.ts.map +0 -1
- package/bin/session/composer/policies/SessionSummaryPrompts.js.map +0 -1
- package/bin/session/control/SessionInteractions.d.ts +0 -39
- package/bin/session/control/SessionInteractions.d.ts.map +0 -1
- package/bin/session/control/SessionInteractions.js +0 -255
- package/bin/session/control/SessionInteractions.js.map +0 -1
- package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +0 -1
- package/bin/session/execution/SessionAssistantOutputAdapter.js.map +0 -1
- package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +0 -28
- package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +0 -1
- package/bin/session/execution/tools/SessionShellApprovalAdapter.js +0 -87
- package/bin/session/execution/tools/SessionShellApprovalAdapter.js.map +0 -1
- package/bin/session/messages/SessionAgentActionPartWriter.d.ts +0 -22
- package/bin/session/messages/SessionAgentActionPartWriter.d.ts.map +0 -1
- package/bin/session/messages/SessionAgentActionPartWriter.js +0 -36
- package/bin/session/messages/SessionAgentActionPartWriter.js.map +0 -1
- package/bin/session/messages/SessionMessageInteractionWriter.d.ts +0 -46
- package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +0 -1
- package/bin/session/messages/SessionMessageInteractionWriter.js +0 -183
- package/bin/session/messages/SessionMessageInteractionWriter.js.map +0 -1
- package/bin/session/messages/SessionTurnFileDiffBuilder.d.ts.map +0 -1
- package/bin/session/messages/SessionTurnFileDiffBuilder.js.map +0 -1
- package/bin/session/runtime/SessionEventHub.d.ts.map +0 -1
- package/bin/session/runtime/SessionEventHub.js.map +0 -1
- package/bin/session/runtime/SessionModelRequestWarning.d.ts.map +0 -1
- package/bin/session/runtime/SessionModelRequestWarning.js.map +0 -1
- package/bin/session/runtime/SessionTitleTask.d.ts.map +0 -1
- package/bin/session/runtime/SessionTitleTask.js.map +0 -1
- package/bin/session/runtime/SessionTurnCompletion.d.ts.map +0 -1
- package/bin/session/runtime/SessionTurnCompletion.js.map +0 -1
- package/bin/session/runtime/SessionTurnContext.d.ts +0 -29
- package/bin/session/runtime/SessionTurnContext.d.ts.map +0 -1
- package/bin/session/runtime/SessionTurnContext.js.map +0 -1
- package/bin/session/runtime/SessionTurnFileDiff.d.ts.map +0 -1
- package/bin/session/runtime/SessionTurnFileDiff.js.map +0 -1
- package/bin/types/action/ActionResult.d.ts +0 -35
- package/bin/types/action/ActionResult.d.ts.map +0 -1
- package/bin/types/action/ActionResult.js +0 -18
- package/bin/types/action/ActionResult.js.map +0 -1
- package/bin/types/executor/ModelRequest.d.ts.map +0 -1
- package/bin/types/executor/ModelRequest.js.map +0 -1
- package/bin/types/executor/SessionAssistantOutput.d.ts.map +0 -1
- package/bin/types/executor/SessionAssistantOutput.js.map +0 -1
- package/bin/types/executor/SessionToolExecutionContext.d.ts +0 -23
- package/bin/types/executor/SessionToolExecutionContext.d.ts.map +0 -1
- package/bin/types/executor/SessionToolExecutionContext.js +0 -10
- package/bin/types/executor/SessionToolExecutionContext.js.map +0 -1
- package/bin/types/executor/SessionTurnContext.d.ts.map +0 -1
- package/bin/types/executor/SessionTurnContext.js.map +0 -1
- package/bin/types/session/AdaptivePartContextPolicy.d.ts.map +0 -1
- package/bin/types/session/AdaptivePartContextPolicy.js +0 -7
- package/bin/types/session/AdaptivePartContextPolicy.js.map +0 -1
- package/bin/types/session/SessionComposition.d.ts.map +0 -1
- package/bin/types/session/SessionComposition.js +0 -8
- package/bin/types/session/SessionComposition.js.map +0 -1
- package/bin/types/session/SessionContextPolicy.d.ts +0 -70
- package/bin/types/session/SessionContextPolicy.d.ts.map +0 -1
- package/bin/types/session/SessionContextPolicy.js +0 -8
- package/bin/types/session/SessionContextPolicy.js.map +0 -1
- package/bin/types/tools/ToolActionExecutionContext.d.ts +0 -30
- package/bin/types/tools/ToolActionExecutionContext.d.ts.map +0 -1
- package/bin/types/tools/ToolActionExecutionContext.js +0 -8
- package/bin/types/tools/ToolActionExecutionContext.js.map +0 -1
- package/src/executor/Executor.ts +0 -319
- package/src/executor/README.md +0 -92
- package/src/executor/composer/system/default/assets/core.prompt.ts +0 -9
- package/src/executor/core-engine/CoreEngineLoopDecision.ts +0 -63
- package/src/executor/core-engine/CoreEngineRunner.ts +0 -458
- package/src/executor/types/SessionLoop.ts +0 -69
- package/src/executor/types/SessionPrompts.ts +0 -14
- package/src/session/DefaultSessionComposer.ts +0 -123
- package/src/session/SessionComposition.ts +0 -370
- package/src/session/SessionHookPoints.ts +0 -17
- package/src/session/SessionHooks.ts +0 -85
- package/src/session/composer/policies/AdaptivePartContextPolicy.ts +0 -307
- package/src/session/composer/policies/FullHistoryContextPolicy.ts +0 -36
- package/src/session/control/SessionInteractions.ts +0 -311
- package/src/session/execution/tools/SessionShellApprovalAdapter.ts +0 -105
- package/src/session/messages/SessionAgentActionPartWriter.ts +0 -54
- package/src/session/messages/SessionMessageInteractionWriter.ts +0 -279
- package/src/types/action/ActionResult.ts +0 -50
- package/src/types/executor/SessionToolExecutionContext.ts +0 -26
- package/src/types/session/SessionContextPolicy.ts +0 -77
- package/src/types/tools/ToolActionExecutionContext.ts +0 -32
- /package/bin/{executor/model → model}/ModelGenerate.js +0 -0
- /package/bin/{executor/model → model}/ModelRequestRunner.js +0 -0
- /package/bin/{executor/model → model}/ModelStreamConsumer.d.ts +0 -0
- /package/bin/{executor/model → model}/ModelStreamConsumer.js +0 -0
- /package/bin/{executor/model → model}/ModelStreamFailure.d.ts +0 -0
- /package/bin/{executor/model → model}/ModelStreamFailure.js +0 -0
- /package/bin/{executor → model}/messages/ChatMessageMarkup.d.ts +0 -0
- /package/bin/{executor → model}/messages/ChatMessageMarkup.js +0 -0
- /package/bin/{executor → model}/messages/SessionAttachmentMapper.d.ts +0 -0
- /package/bin/{executor → model}/messages/SessionAttachmentMapper.js +0 -0
- /package/bin/{executor → model}/messages/SessionMessageLog.d.ts +0 -0
- /package/bin/{executor → model}/messages/SessionMessageLog.js +0 -0
- /package/bin/{executor → model}/messages/SessionModelMessages.d.ts +0 -0
- /package/bin/{executor/composer/system/default → model/prompts}/SystemPromptAssets.d.ts +0 -0
- /package/bin/session/{runtime → loop}/SessionTitleTask.d.ts +0 -0
- /package/bin/session/{runtime → loop}/SessionTitleTask.js +0 -0
- /package/bin/session/{runtime → loop}/SessionTurnFileDiff.d.ts +0 -0
- /package/bin/session/{messages → loop}/SessionTurnFileDiffBuilder.js +0 -0
- /package/bin/session/{execution → messages}/SessionAssistantOutputAdapter.js +0 -0
- /package/bin/session/{runtime → messages}/SessionEventHub.d.ts +0 -0
- /package/bin/session/{runtime → messages}/SessionEventHub.js +0 -0
- /package/bin/session/{browse → messages}/SessionMessageTimeline.d.ts +0 -0
- /package/bin/session/{runtime → messages}/SessionModelRequestWarning.d.ts +0 -0
- /package/bin/session/{runtime → messages}/SessionModelRequestWarning.js +0 -0
- /package/bin/session/{preview → storage}/SessionMessagePreview.d.ts +0 -0
- /package/bin/types/{executor → model}/ModelRequest.d.ts +0 -0
- /package/bin/types/{executor → model}/ModelRequest.js +0 -0
- /package/bin/{executor/types → types/store}/SessionHistoryMeta.d.ts +0 -0
- /package/bin/{executor/types → types/store}/SessionHistoryMeta.js +0 -0
- /package/bin/types/{executor → turn}/SessionAssistantOutput.d.ts +0 -0
- /package/bin/types/{executor → turn}/SessionAssistantOutput.js +0 -0
- /package/bin/types/{executor → turn}/SessionTurnContext.js +0 -0
- /package/src/{executor/model → model}/ModelStreamFailure.ts +0 -0
- /package/src/{executor → model}/messages/ChatMessageMarkup.ts +0 -0
- /package/src/{executor → model}/messages/SessionAttachmentMapper.ts +0 -0
- /package/src/{executor → model}/messages/SessionMessageLog.ts +0 -0
- /package/src/session/{runtime → loop}/SessionTitleTask.ts +0 -0
- /package/src/session/{runtime → messages}/SessionEventHub.ts +0 -0
- /package/src/session/{runtime → messages}/SessionModelRequestWarning.ts +0 -0
- /package/src/types/{executor → model}/ModelRequest.ts +0 -0
- /package/src/{executor/types → types/store}/SessionHistoryMeta.ts +0 -0
- /package/src/types/{executor → turn}/SessionAssistantOutput.ts +0 -0
- /package/src/{executor/ids/resolveSessionId.ts → utils/ResolveSessionId.ts} +0 -0
|
@@ -4,22 +4,28 @@
|
|
|
4
4
|
* 该 Tool 只负责把模型的结构化 Tool Call 映射到当前 Session 的 Question
|
|
5
5
|
* Interaction。Session 是交互状态和生命周期的唯一拥有者;Tool 等待 Session 返回终态,
|
|
6
6
|
* 再把用户答案作为 Tool Result 交回同一 Turn 的后续模型 Step。
|
|
7
|
+
*
|
|
8
|
+
* Interaction 的 `payload` 由生产者解释,所以问题与回答的校验都在这里:入参先过
|
|
9
|
+
* Schema,回答再过 {@link resolve_ask_question_answers},核心不参与业务字段。
|
|
7
10
|
*/
|
|
8
11
|
|
|
9
12
|
import {
|
|
10
|
-
|
|
11
|
-
type
|
|
13
|
+
define_agent_tool,
|
|
14
|
+
type ToolCallContext,
|
|
12
15
|
} from "@downcity/type";
|
|
13
16
|
import { ask_questions_input_schema } from "./AskQuestionsToolSchemas.js";
|
|
17
|
+
import {
|
|
18
|
+
read_ask_question_note,
|
|
19
|
+
resolve_ask_question_answers,
|
|
20
|
+
} from "./AskQuestionAnswers.js";
|
|
14
21
|
import type {
|
|
15
22
|
AskQuestionsToolInput,
|
|
16
23
|
AskQuestionsToolOutput,
|
|
17
24
|
} from "@/types/tools/ask/AskQuestionsTool.js";
|
|
18
|
-
import type {
|
|
25
|
+
import type { ActionResult } from "@downcity/type";
|
|
19
26
|
import { generate_id } from "@/utils/Id.js";
|
|
20
|
-
import type { ActionResult } from "@/types/action/ActionResult.js";
|
|
21
27
|
import type { JsonValue } from "@downcity/type";
|
|
22
|
-
import type {
|
|
28
|
+
import type { SessionInteractionQuestion } from "@downcity/type";
|
|
23
29
|
|
|
24
30
|
/**
|
|
25
31
|
* 由调用方显式注册、按当前 Session Turn 上下文执行的提问 Tool。
|
|
@@ -33,54 +39,42 @@ import type { SessionInteractionAnswer } from "@downcity/type";
|
|
|
33
39
|
* });
|
|
34
40
|
* ```
|
|
35
41
|
*/
|
|
36
|
-
export const AskQuestionsTool =
|
|
42
|
+
export const AskQuestionsTool = define_agent_tool<AskQuestionsToolInput, ActionResult<AskQuestionsToolOutput>>({
|
|
37
43
|
description:
|
|
38
44
|
"Ask the user one or more questions when missing information would materially change the outcome. The call waits for every answer, then returns them so you can continue the same task. Do not use it for information that can be inferred safely. For single_select and multi_select questions, every option MUST contain both a machine-readable value and a user-visible label; never omit value or use label as value. Example: { value: 'cn', label: '中国' }.",
|
|
39
45
|
input_schema: ask_questions_input_schema,
|
|
40
46
|
execute: async (
|
|
41
47
|
input: AskQuestionsToolInput,
|
|
42
|
-
|
|
48
|
+
context: ToolCallContext,
|
|
43
49
|
): Promise<ActionResult<AskQuestionsToolOutput>> => {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const action_execution = execution_context?.action_execution_context;
|
|
48
|
-
const interaction_port = action_execution?.session.interactions;
|
|
49
|
-
const turn_id = String(action_execution?.session.turn_id || "").trim();
|
|
50
|
-
const tool_call_id = String(action_execution?.call_id || "").trim();
|
|
50
|
+
const interaction_port = context.interactions;
|
|
51
|
+
const turn_id = String(context.turn_id || "").trim();
|
|
52
|
+
const tool_call_id = String(context.tool_call_id || "").trim();
|
|
51
53
|
if (!interaction_port || !turn_id || !tool_call_id) {
|
|
52
54
|
throw new Error(
|
|
53
55
|
"ask_question requires an active Session tool execution context",
|
|
54
56
|
);
|
|
55
57
|
}
|
|
56
58
|
|
|
59
|
+
// 入参先过 Schema:模型漏写 type 这类缺陷在发起交互之前就暴露,不会落成待响应卡片。
|
|
60
|
+
const parsed = ask_questions_input_schema.parse(input);
|
|
61
|
+
// 问题只在模型输入上补一个 Session 生成的 question_id,其余字段原样落库。
|
|
62
|
+
const questions: SessionInteractionQuestion[] = parsed.questions.map(
|
|
63
|
+
(question) => ({ ...question, question_id: `question:${generate_id()}` }),
|
|
64
|
+
);
|
|
65
|
+
|
|
57
66
|
const handle = await interaction_port.request({
|
|
58
|
-
interaction_id: `interaction:${generate_id()}`,
|
|
59
|
-
turn_id,
|
|
60
67
|
type: "question",
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
66
|
-
title: input.title,
|
|
67
|
-
payload: {
|
|
68
|
-
questions: input.questions.map((question) => ({
|
|
69
|
-
question_id: `question:${generate_id()}`,
|
|
70
|
-
prompt: question.question,
|
|
71
|
-
response_type: question.type,
|
|
72
|
-
...(question.options ? { options: question.options } : {}),
|
|
73
|
-
})),
|
|
74
|
-
} as unknown as JsonValue,
|
|
75
|
-
created_at: Date.now(),
|
|
68
|
+
turn_id,
|
|
69
|
+
tool_call_id,
|
|
70
|
+
tool_name: "ask_question",
|
|
71
|
+
...(parsed.title ? { title: parsed.title } : {}),
|
|
72
|
+
payload: { questions } as unknown as JsonValue,
|
|
76
73
|
});
|
|
77
74
|
const result = await handle.result;
|
|
78
75
|
if (result.status === "cancelled") {
|
|
79
76
|
throw new Error(`ask_question was cancelled: ${result.reason}`);
|
|
80
77
|
}
|
|
81
|
-
if (result.status === "expired") {
|
|
82
|
-
throw new Error("ask_question expired before the user responded");
|
|
83
|
-
}
|
|
84
78
|
if (
|
|
85
79
|
result.status !== "resolved" ||
|
|
86
80
|
result.response.type !== "question" ||
|
|
@@ -90,12 +84,13 @@ export const AskQuestionsTool = define_runtime_tool<AskQuestionsToolInput, Actio
|
|
|
90
84
|
"ask_question received an incompatible Interaction response",
|
|
91
85
|
);
|
|
92
86
|
}
|
|
93
|
-
const
|
|
87
|
+
const answers = resolve_ask_question_answers(questions, result.response.payload);
|
|
88
|
+
const note = read_ask_question_note(result.response.payload);
|
|
94
89
|
return {
|
|
95
90
|
output: {
|
|
96
91
|
status: "resolved",
|
|
97
|
-
answers
|
|
98
|
-
...(
|
|
92
|
+
answers,
|
|
93
|
+
...(note ? { note } : {}),
|
|
99
94
|
},
|
|
100
95
|
messages: [],
|
|
101
96
|
};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - RemoteAgent 与 Session 数据结构拆到独立类型文件。
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type { ModelClient,
|
|
9
|
+
import type { ModelClient, AgentTool as Tool, ToolHookSet } from "@downcity/type";
|
|
10
10
|
import type {
|
|
11
11
|
AgentManagedSession,
|
|
12
12
|
SessionOptions,
|
|
@@ -52,14 +52,23 @@ export interface AgentOptions {
|
|
|
52
52
|
description?: string;
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
* 当前 agent
|
|
55
|
+
* 当前 agent 自有的工具集合。
|
|
56
56
|
*
|
|
57
57
|
* 关键点(中文)
|
|
58
58
|
* - tools 归属于 agent 级,而不是 session 级。
|
|
59
|
-
* -
|
|
59
|
+
* - 与 Workspace 工具、容器 Power 工具在 Session 创建时合并;同名冲突立即失败。
|
|
60
60
|
*/
|
|
61
61
|
tools?: Record<string, Tool>;
|
|
62
62
|
|
|
63
|
+
/**
|
|
64
|
+
* 当前 agent 自有的检查点处理器集合。
|
|
65
|
+
*
|
|
66
|
+
* 关键点(中文)
|
|
67
|
+
* - 与容器提供的 Power hooks 合并;同名检查点按「容器在前、自有在后」顺序执行。
|
|
68
|
+
* - 不传入时只使用容器提供的 hooks。
|
|
69
|
+
*/
|
|
70
|
+
hooks?: ToolHookSet;
|
|
71
|
+
|
|
63
72
|
/**
|
|
64
73
|
* 调用方显式传入的静态基础指令。
|
|
65
74
|
*
|
|
@@ -90,13 +99,13 @@ export interface AgentOptions {
|
|
|
90
99
|
session_class?: AgentSessionConstructor;
|
|
91
100
|
|
|
92
101
|
/**
|
|
93
|
-
*
|
|
102
|
+
* 当前 Agent 使用的 Session Composer。
|
|
94
103
|
*
|
|
95
104
|
* 关键点(中文)
|
|
96
|
-
* -
|
|
97
|
-
* -
|
|
98
|
-
* -
|
|
105
|
+
* - Composer 描述「这个 Agent 怎么和模型说话」,属于 Agent 级特性,被其所有 Session 共享。
|
|
106
|
+
* - 实现必须无状态:全部 Session 与上下文都由 `compose(input)` 参数传入,派生数据写入传入的 `derived` 存储。
|
|
107
|
+
* - 省略时使用默认 `DefaultSessionComposer`。
|
|
99
108
|
*/
|
|
100
|
-
session_composer?:
|
|
109
|
+
session_composer?: SessionComposer;
|
|
101
110
|
|
|
102
111
|
}
|
|
@@ -68,4 +68,13 @@ export interface AgentSessionCollection {
|
|
|
68
68
|
|
|
69
69
|
/** 清空 Session 消息。 */
|
|
70
70
|
clear_messages(session_id: string, origin_type?: string): Promise<boolean>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 释放一个空闲 Session 的运行时实例。
|
|
74
|
+
*
|
|
75
|
+
* 只影响内存缓存;消息与元数据仍在 Store 中,下次 `get()` 会重新恢复。
|
|
76
|
+
* 正在执行的 Session 不会被释放,返回是否真的释放。
|
|
77
|
+
* 调用方必须先解除对该实例的订阅,否则重新 `get()` 得到的新实例不会再被订阅。
|
|
78
|
+
*/
|
|
79
|
+
release(session_id: string, origin_type?: string): boolean;
|
|
71
80
|
}
|
|
@@ -31,7 +31,7 @@ import type {
|
|
|
31
31
|
import type {
|
|
32
32
|
RespondSessionInteractionInput,
|
|
33
33
|
SessionInteractionResult,
|
|
34
|
-
|
|
34
|
+
SessionInteractionRequest,
|
|
35
35
|
} from "@downcity/type";
|
|
36
36
|
import type {
|
|
37
37
|
ListSessionMessagesInput,
|
|
@@ -63,7 +63,6 @@ export interface AgentSessions<TSession extends AgentSessionActor = AgentSession
|
|
|
63
63
|
|
|
64
64
|
/** 永久清空已归档 session。 */
|
|
65
65
|
clean_archive(): Promise<AgentCleanArchiveResult>;
|
|
66
|
-
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
/**
|
|
@@ -99,7 +98,7 @@ export interface AgentSessionActor {
|
|
|
99
98
|
system(): Promise<AgentSessionSystemSnapshot>;
|
|
100
99
|
|
|
101
100
|
/** 列出当前 Session 正在等待用户响应的 Interaction。 */
|
|
102
|
-
interactions(): Promise<
|
|
101
|
+
interactions(): Promise<SessionInteractionRequest[]>;
|
|
103
102
|
|
|
104
103
|
/** 读取当前 Session 的运行与安全状态。 */
|
|
105
104
|
status(): Promise<AgentSessionStatus>;
|
|
@@ -127,7 +126,7 @@ export interface AgentSession extends AgentSessionActor {
|
|
|
127
126
|
/** 把当前 Session 首次生成后固定的完整 system 显式固化到 instruction.md。 */
|
|
128
127
|
snapshot(): Promise<void>;
|
|
129
128
|
|
|
130
|
-
/** 使用 Agent 当前 instruction 与
|
|
129
|
+
/** 使用 Agent 当前 instruction 与 Power 显式重新生成 Session system。 */
|
|
131
130
|
syncshot(): Promise<void>;
|
|
132
131
|
|
|
133
132
|
/** 从当前 session 创建一个分叉会话。 */
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
ModelJsonValue,
|
|
13
13
|
ModelMessage,
|
|
14
14
|
} from "@downcity/type";
|
|
15
|
-
import { generate_model } from "
|
|
15
|
+
import { generate_model } from "@/model/ModelGenerate.js";
|
|
16
16
|
import { z } from "zod";
|
|
17
17
|
|
|
18
18
|
/** 本次调度的触发来源。 */
|
|
@@ -84,6 +84,31 @@ export interface GroupSessionListInput {
|
|
|
84
84
|
readonly workspace_id?: string;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* 归档一个 GroupSession 的结果。
|
|
89
|
+
*
|
|
90
|
+
* 归档是一次**目录搬迁**(活动区 → 归档区),不是打标记:
|
|
91
|
+
* 它让「活动列表」天然只含活动项,不需要在每次查询里过滤。
|
|
92
|
+
*/
|
|
93
|
+
export interface GroupSessionArchiveResult {
|
|
94
|
+
/** 被归档的 GroupSession 标识。 */
|
|
95
|
+
readonly session_id: string;
|
|
96
|
+
/** 归档发生的时间戳。 */
|
|
97
|
+
readonly archived_at: number;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/** 列出已归档 GroupSession 的过滤条件。 */
|
|
101
|
+
export interface GroupSessionArchiveListInput {
|
|
102
|
+
/** 只返回绑定到指定 Workspace 的归档群聊。 */
|
|
103
|
+
readonly workspace_id?: string;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/** 清空归档后的结果。 */
|
|
107
|
+
export interface GroupSessionCleanArchiveResult {
|
|
108
|
+
/** 被永久删除的归档 GroupSession 标识。 */
|
|
109
|
+
readonly removed_session_ids: readonly string[];
|
|
110
|
+
}
|
|
111
|
+
|
|
87
112
|
/** GroupSession 公开能力。 */
|
|
88
113
|
export interface GroupSessionContract {
|
|
89
114
|
/** 当前群聊上下文的稳定标识。 */
|
|
@@ -117,10 +142,28 @@ export interface GroupSessions {
|
|
|
117
142
|
create(input?: GroupSessionCreateInput): Promise<GroupSession>;
|
|
118
143
|
/** 从 Storage 恢复当前 Group 的一个群聊上下文。 */
|
|
119
144
|
get(session_id: string, input?: GroupSessionGetInput): Promise<GroupSession | null>;
|
|
120
|
-
/** 从 Storage 恢复当前 Group
|
|
145
|
+
/** 从 Storage 恢复当前 Group 的全部群聊上下文(不含已归档)。 */
|
|
121
146
|
list(input?: GroupSessionListInput): Promise<readonly GroupSessionSummary[]>;
|
|
122
147
|
/** 释放并移除指定群聊上下文。 */
|
|
123
148
|
remove(session_id: string, input?: GroupSessionGetInput): Promise<GroupSession | null>;
|
|
149
|
+
/**
|
|
150
|
+
* 归档指定群聊上下文:从活动区迁入归档区。
|
|
151
|
+
*
|
|
152
|
+
* 与 `remove` 的区别是**可逆性**:归档只是收起来,数据仍在归档区;
|
|
153
|
+
* 而 `remove` 是永久删除。因此正在执行的群聊不能归档(先停再归档)。
|
|
154
|
+
*/
|
|
155
|
+
archive(session_id: string): Promise<GroupSessionArchiveResult>;
|
|
156
|
+
/** 列出已归档的群聊上下文摘要。 */
|
|
157
|
+
archived(input?: GroupSessionArchiveListInput): Promise<readonly GroupSessionSummary[]>;
|
|
158
|
+
/** 永久清空当前 Group 的全部归档。 */
|
|
159
|
+
clean_archive(): Promise<GroupSessionCleanArchiveResult>;
|
|
160
|
+
/**
|
|
161
|
+
* 永久删除当前 Group 的全部群聊数据(活动区 + 归档区)。
|
|
162
|
+
*
|
|
163
|
+
* 它服务于「Group 被删除」:Group 是群聊的**所有者**,所有者消失时它拥有的数据
|
|
164
|
+
* 不该继续存在。与 `dispose` 的区别:那个只释放运行时实例,数据仍在磁盘上。
|
|
165
|
+
*/
|
|
166
|
+
purge(): Promise<void>;
|
|
124
167
|
}
|
|
125
168
|
|
|
126
169
|
/** GroupSession 的内部依赖快照。 */
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import type { GroupMessage } from "@/types/group/Group.js";
|
|
4
4
|
import type { GroupDispatchTurnRecord } from "@/types/group/GroupDispatch.js";
|
|
5
|
+
import type { GroupSessionArchiveResult, GroupSessionCleanArchiveResult } from "@/types/group/GroupSession.js";
|
|
5
6
|
import type { FileSystem } from "@downcity/type";
|
|
6
7
|
|
|
7
8
|
/** GroupSession 的持久化元数据。 */
|
|
@@ -70,12 +71,38 @@ export interface GroupSessionDataStore {
|
|
|
70
71
|
export interface GroupSessionStore {
|
|
71
72
|
/** 返回指定 GroupSession 的持久化视图。 */
|
|
72
73
|
session(session_id: string): GroupSessionDataStore;
|
|
73
|
-
/** 判断指定 GroupSession
|
|
74
|
+
/** 判断指定 GroupSession 是否存在(活动区)。 */
|
|
74
75
|
has_session(session_id: string): Promise<boolean>;
|
|
75
|
-
/** 列出当前 Group
|
|
76
|
+
/** 列出当前 Group 活动区的 Session metadata(不含已归档)。 */
|
|
76
77
|
list_session_metadata(): Promise<GroupSessionHistoryMeta[]>;
|
|
77
|
-
/** 删除指定 GroupSession
|
|
78
|
+
/** 删除指定 GroupSession 的全部数据(活动区)。 */
|
|
78
79
|
remove_session(session_id: string): Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* 把一个活动 GroupSession 迁入归档区。
|
|
82
|
+
*
|
|
83
|
+
* 与 Agent Session 的归档同形(`LocalSessionStore.archive_session`),只有一处差别:
|
|
84
|
+
* **不接受 `origin_type`**——群聊的来源只有一种,多一个参数只会让人猜该传什么。
|
|
85
|
+
*
|
|
86
|
+
* 不变量(两个方向都不允许静默成功):
|
|
87
|
+
*
|
|
88
|
+
* - 源不存在 → 报错;
|
|
89
|
+
* - 目标已存在 → 报错(覆盖会丢掉一份真实数据)。
|
|
90
|
+
*/
|
|
91
|
+
archive_session(session_id: string): Promise<GroupSessionArchiveResult>;
|
|
92
|
+
/** 列出归档区的 Session metadata。 */
|
|
93
|
+
list_archived_session_metadata(): Promise<GroupSessionHistoryMeta[]>;
|
|
94
|
+
/** 删除归档区中的指定 Session。 */
|
|
95
|
+
remove_archived_session(session_id: string): Promise<boolean>;
|
|
96
|
+
/** 永久清空归档区。 */
|
|
97
|
+
clean_archive(): Promise<GroupSessionCleanArchiveResult>;
|
|
98
|
+
/**
|
|
99
|
+
* 永久删除当前 Group 的**全部** GroupSession 数据(活动区 + 归档区)。
|
|
100
|
+
*
|
|
101
|
+
* 与 `clean_archive` 的区别:那个只动归档区,这个连活动区一起删。
|
|
102
|
+
* 它服务于「Group 被删除」——Group 是群聊的**所有者**,所有者消失时它拥有的数据不该继续存在。
|
|
103
|
+
* 没有它时删掉一个 Group 会在磁盘上留下无人认领的孤儿目录。
|
|
104
|
+
*/
|
|
105
|
+
purge(): Promise<void>;
|
|
79
106
|
/** 释放当前 Store 持有的资源。 */
|
|
80
107
|
dispose(): Promise<void>;
|
|
81
108
|
}
|
|
@@ -6,20 +6,7 @@
|
|
|
6
6
|
* - Action 不进入模型输入。
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type {
|
|
10
|
-
SessionActionEvent,
|
|
11
|
-
SessionActionStatus,
|
|
12
|
-
} from "@downcity/type";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Session action 当前状态。
|
|
16
|
-
*/
|
|
17
|
-
export type AgentSessionActionState = SessionActionStatus;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Session action 记录。
|
|
21
|
-
*/
|
|
22
|
-
export type AgentSessionActionRecord = SessionActionEvent;
|
|
9
|
+
import type { SessionActionEvent } from "@downcity/type";
|
|
23
10
|
|
|
24
11
|
/**
|
|
25
12
|
* Session action 订阅事件。
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Composer 上下文 checkpoint 派生类型。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* checkpoint 记录「累计摘要已经覆盖到哪个 canonical Part」,属于 Composer 自己的派生
|
|
5
|
+
* 数据:可以随时删除并从 canonical history 重新累积,不参与 Session Message 语义。
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
import type {
|
|
@@ -11,25 +12,25 @@ import type {
|
|
|
11
12
|
} from "@downcity/type";
|
|
12
13
|
|
|
13
14
|
/** Part 级累计摘要 checkpoint。 */
|
|
14
|
-
export interface
|
|
15
|
+
export interface ContextCheckpointRow {
|
|
15
16
|
/** checkpoint 稳定标识。 */
|
|
16
17
|
checkpoint_id: string;
|
|
17
18
|
/** 边界所属 Message 标识。 */
|
|
18
19
|
through_message_id: string;
|
|
19
20
|
/** 边界所属 Message sequence。 */
|
|
20
21
|
through_message_sequence: number;
|
|
21
|
-
/** 边界 Part sequence
|
|
22
|
+
/** 边界 Part sequence;边界可以落在单个 Message 内部。 */
|
|
22
23
|
through_part_sequence: number;
|
|
23
|
-
/**
|
|
24
|
+
/** 截至边界的累计摘要正文。 */
|
|
24
25
|
summary: string;
|
|
25
|
-
/**
|
|
26
|
-
|
|
26
|
+
/** 生成派生结果时的 schema 版本;不兼容的旧表会被重建。 */
|
|
27
|
+
schema_version: number;
|
|
27
28
|
/** 派生记录创建时间。 */
|
|
28
29
|
created_at: number;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
/** 可参与摘要的稳定 Part 及其 canonical 位置。 */
|
|
32
|
-
export interface
|
|
33
|
+
export interface StableContextPart {
|
|
33
34
|
/** Part 所属完整 Message。 */
|
|
34
35
|
message: SessionMessage;
|
|
35
36
|
/** 具体 canonical Part。 */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Assistant Message 状态转换器的依赖类型。
|
|
3
3
|
*
|
|
4
|
-
* 该类型只暴露 canonical Message
|
|
5
|
-
*
|
|
4
|
+
* 该类型只暴露 canonical Message 运行时真正需要的协作能力:持久化边界与
|
|
5
|
+
* Message 缓存。缓存是 SessionMessages 与本模块共享的唯一边界,两者都单向依赖它,
|
|
6
|
+
* 不再需要互相回指的闭包。
|
|
6
7
|
*/
|
|
7
8
|
|
|
8
9
|
import type { SessionStorage } from "@/types/store/SessionStorage.js";
|
|
9
|
-
import type {
|
|
10
|
-
import type { SessionMutation } from "@downcity/type";
|
|
10
|
+
import type { SessionMessageCache } from "@/session/messages/SessionMessageCache.js";
|
|
11
11
|
|
|
12
12
|
/** Assistant Message 状态转换器的构造参数。 */
|
|
13
13
|
export interface SessionAgentMessageStateOptions {
|
|
@@ -15,16 +15,6 @@ export interface SessionAgentMessageStateOptions {
|
|
|
15
15
|
session_id: string;
|
|
16
16
|
/** 负责持久化 canonical Message 稳定检查点的 Store。 */
|
|
17
17
|
store: SessionStorage;
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
/** 接受已持久化的完整 Message 快照,并按需发布 Mutation。 */
|
|
21
|
-
accept_message: (
|
|
22
|
-
message: SessionMessage,
|
|
23
|
-
publish_mutation?: boolean,
|
|
24
|
-
) => void;
|
|
25
|
-
/** 接受未持久化的实时 Mutation,并只更新当前运行投影。 */
|
|
26
|
-
project_mutation: (
|
|
27
|
-
mutation: SessionMutation,
|
|
28
|
-
message: SessionMessage,
|
|
29
|
-
) => void;
|
|
18
|
+
/** Message 运行缓存与 Mutation 发布边界。 */
|
|
19
|
+
cache: SessionMessageCache;
|
|
30
20
|
}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Session Composer 类型。
|
|
3
3
|
*
|
|
4
|
-
* Composer
|
|
5
|
-
*
|
|
4
|
+
* Composer 是唯一回答「这一步模型看到什么」的组件:它把运行快照、canonical history
|
|
5
|
+
* 快照与自己的派生状态组装成一次模型 Step 输入,并在上下文压力出现时推进派生状态。
|
|
6
|
+
*
|
|
7
|
+
* 关键点(中文)
|
|
8
|
+
* - canonical history 与派生存储都由调用方传入,Composer 不主动访问 Session 存储。
|
|
9
|
+
* - 「压缩」不是独立概念,只是 `advance_context()` 的一种实现;不做任何推进也是合法实现。
|
|
10
|
+
* - Composer 不拥有 Message、Turn 或数据库连接生命周期,也不修改 canonical history。
|
|
6
11
|
*/
|
|
7
12
|
|
|
8
|
-
import type { ModelClient, ModelMessage,
|
|
9
|
-
import type { SessionSystemMessage } from "
|
|
13
|
+
import type { ModelClient, ModelMessage, AgentTool } from "@downcity/type";
|
|
14
|
+
import type { SessionSystemMessage } from "@downcity/type";
|
|
10
15
|
import type { AgentSessionSystemBlock } from "@/types/agent/SessionTypes.js";
|
|
11
|
-
import type { SessionHookContextBlock } from "@downcity/type";
|
|
12
|
-
import type { ModelRequestFailureReporter } from "@/types/
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
15
|
-
SessionContextRecoveryReason,
|
|
16
|
-
SessionResolvedContextDiagnostics,
|
|
17
|
-
} from "@/types/session/SessionContextPolicy.js";
|
|
16
|
+
import type { SessionHookContextBlock, SessionMessage } from "@downcity/type";
|
|
17
|
+
import type { ModelRequestFailureReporter } from "@/types/model/ModelRequest.js";
|
|
18
|
+
import type { SessionDerivedStore } from "@/types/store/SessionStorage.js";
|
|
18
19
|
|
|
19
20
|
/** Composer 可读取的 Session 身份快照。 */
|
|
20
21
|
export interface SessionComposeIdentity {
|
|
@@ -41,29 +42,27 @@ export interface SessionComposeState {
|
|
|
41
42
|
/** 当前 Step 生效的 Agent instruction 文本。 */
|
|
42
43
|
systems: readonly string[];
|
|
43
44
|
/** 当前 Step 可使用的工具集合。 */
|
|
44
|
-
tools: Readonly<Record<string,
|
|
45
|
+
tools: Readonly<Record<string, AgentTool>>;
|
|
45
46
|
/** 当前 Step 生效的 instruction system blocks。 */
|
|
46
47
|
instruction_system_blocks: readonly AgentSessionSystemBlock[];
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
/** 当前
|
|
50
|
-
|
|
51
|
-
/** 当前 Turn 冻结的 Plugin 动态上下文。 */
|
|
52
|
-
plugin_context_blocks: readonly SessionHookContextBlock[];
|
|
48
|
+
/** 当前 Step 捕获的扩展 system blocks。 */
|
|
49
|
+
power_system_blocks: readonly AgentSessionSystemBlock[];
|
|
50
|
+
/** 当前 Turn 冻结的 Power 动态上下文。 */
|
|
51
|
+
power_context_blocks: readonly SessionHookContextBlock[];
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
/** Composer 可读取的当前 Turn 快照。 */
|
|
56
55
|
export interface SessionComposeTurn {
|
|
57
56
|
/** 当前 Turn 标识;只读查询时允许为空。 */
|
|
58
57
|
turn_id?: string;
|
|
59
|
-
/**
|
|
60
|
-
|
|
58
|
+
/** 当前执行已进行的上下文推进次数。 */
|
|
59
|
+
advance_count: number;
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
/** Composer 初始化输入。 */
|
|
64
63
|
export interface SessionComposerInitializeInput {
|
|
65
|
-
/** 当前
|
|
66
|
-
|
|
64
|
+
/** 当前 Composer 命名空间内的派生表事务。 */
|
|
65
|
+
derived: SessionDerivedStore;
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
/** 单次模型输入组装参数。 */
|
|
@@ -72,26 +71,51 @@ export interface SessionComposeInput {
|
|
|
72
71
|
session: SessionComposeIdentity;
|
|
73
72
|
/** 当前 Step 已生效的运行状态。 */
|
|
74
73
|
state: SessionComposeState;
|
|
75
|
-
/**
|
|
76
|
-
|
|
74
|
+
/** 调用方读取的 canonical history 只读快照,按 sequence 升序。 */
|
|
75
|
+
history: readonly SessionMessage[];
|
|
76
|
+
/** 当前 Composer 命名空间内的派生表事务。 */
|
|
77
|
+
derived: SessionDerivedStore;
|
|
77
78
|
/** 当前 Turn 快照。 */
|
|
78
79
|
turn: SessionComposeTurn;
|
|
79
80
|
}
|
|
80
81
|
|
|
81
|
-
/**
|
|
82
|
-
export
|
|
82
|
+
/** 触发一次派生上下文推进的稳定领域原因。 */
|
|
83
|
+
export type SessionContextAdvanceTrigger =
|
|
84
|
+
/** Provider 明确拒绝超出上下文窗口的请求。 */
|
|
85
|
+
| "provider_context_limit"
|
|
86
|
+
/** Provider usage 已达到主动推进阈值。 */
|
|
87
|
+
| "usage_pressure";
|
|
88
|
+
|
|
89
|
+
/** 上下文推进输入。 */
|
|
90
|
+
export interface SessionContextAdvanceInput {
|
|
83
91
|
/** 当前 Session 身份快照。 */
|
|
84
92
|
session: SessionComposeIdentity;
|
|
85
|
-
/**
|
|
93
|
+
/** 调用方读取的 canonical history 只读快照,按 sequence 升序。 */
|
|
94
|
+
history: readonly SessionMessage[];
|
|
95
|
+
/** 当前 Composer 命名空间内的派生表事务。 */
|
|
96
|
+
derived: SessionDerivedStore;
|
|
97
|
+
/** 触发本次推进的稳定领域原因。 */
|
|
98
|
+
trigger: SessionContextAdvanceTrigger;
|
|
99
|
+
/** 用于生成派生摘要的当前模型。 */
|
|
86
100
|
model?: ModelClient;
|
|
87
|
-
/** 当前 Session 的统一持久化边界。 */
|
|
88
|
-
storage: SessionStorage;
|
|
89
|
-
/** 触发当前恢复的稳定领域原因。 */
|
|
90
|
-
reason: SessionContextRecoveryReason;
|
|
91
101
|
/** 模型请求逐次失败的可选观测入口。 */
|
|
92
102
|
on_model_request_failure?: ModelRequestFailureReporter;
|
|
93
103
|
}
|
|
94
104
|
|
|
105
|
+
/** Composer 对本次模型上下文的只读诊断。 */
|
|
106
|
+
export interface SessionContextDiagnostics {
|
|
107
|
+
/** 生成当前上下文的 Composer 名称。 */
|
|
108
|
+
composer_name: string;
|
|
109
|
+
/** 当前上下文覆盖到的最新 canonical Message sequence。 */
|
|
110
|
+
through_sequence?: number;
|
|
111
|
+
/** 当前派生边界在 Message 内覆盖到的 Part sequence。 */
|
|
112
|
+
through_part_sequence?: number;
|
|
113
|
+
/** 当前上下文是否使用了派生摘要。 */
|
|
114
|
+
derived: boolean;
|
|
115
|
+
/** 当前使用的可选派生记录标识。 */
|
|
116
|
+
derivation_id?: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
95
119
|
/** Composer 为一次模型 Step 生成的完整输入。 */
|
|
96
120
|
export interface SessionStepInput {
|
|
97
121
|
/** 当前 Step 的 system messages。 */
|
|
@@ -100,20 +124,24 @@ export interface SessionStepInput {
|
|
|
100
124
|
system_blocks?: AgentSessionSystemBlock[];
|
|
101
125
|
/** 当前 Step 已转换完成的标准模型消息。 */
|
|
102
126
|
messages: ModelMessage[];
|
|
103
|
-
/** 当前 Step
|
|
104
|
-
tools: Record<string,
|
|
105
|
-
/**
|
|
106
|
-
context_diagnostics?:
|
|
127
|
+
/** 当前 Step 可调用的工具集合;执行前由 StepInput 绑定调用环境。 */
|
|
128
|
+
tools: Record<string, AgentTool>;
|
|
129
|
+
/** 本次上下文组装诊断。 */
|
|
130
|
+
context_diagnostics?: SessionContextDiagnostics;
|
|
107
131
|
}
|
|
108
132
|
|
|
109
133
|
/** Session 级可替换 Composer。 */
|
|
110
134
|
export interface SessionComposer {
|
|
111
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Composer 稳定名称。
|
|
137
|
+
*
|
|
138
|
+
* 关键点(中文):该值同时作为派生表命名空间,派生表前缀固定为 `composer_<name>_`。
|
|
139
|
+
*/
|
|
112
140
|
readonly name: string;
|
|
113
|
-
/**
|
|
141
|
+
/** 初始化当前 Composer 的派生 schema;没有派生状态时可以是空实现。 */
|
|
114
142
|
initialize(input: SessionComposerInitializeInput): Promise<void>;
|
|
115
143
|
/** 组装一次模型 Step 使用的最终输入。 */
|
|
116
144
|
compose(input: SessionComposeInput): Promise<SessionStepInput>;
|
|
117
|
-
/**
|
|
118
|
-
|
|
145
|
+
/** 尝试推进派生上下文状态;发生有效推进时返回 true。 */
|
|
146
|
+
advance_context(input: SessionContextAdvanceInput): Promise<boolean>;
|
|
119
147
|
}
|