@downcity/agent 1.1.217 → 1.1.222
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/bin/agent/local/services/AgentSessions.d.ts.map +1 -1
- package/bin/agent/local/services/AgentSessions.js +1 -4
- package/bin/agent/local/services/AgentSessions.js.map +1 -1
- package/bin/agent/remote/RemoteSession.d.ts +9 -3
- package/bin/agent/remote/RemoteSession.d.ts.map +1 -1
- package/bin/agent/remote/RemoteSession.js +19 -4
- package/bin/agent/remote/RemoteSession.js.map +1 -1
- package/bin/agent/remote/RemoteTransport.d.ts +7 -3
- package/bin/agent/remote/RemoteTransport.d.ts.map +1 -1
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +5 -2
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +25 -11
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +5 -2
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +5 -2
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
- package/bin/executor/types/SessionRecords.d.ts +2 -0
- package/bin/executor/types/SessionRecords.d.ts.map +1 -1
- package/bin/executor/types/SessionRecords.js.map +1 -1
- package/bin/index.d.ts +5 -2
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +1 -0
- package/bin/index.js.map +1 -1
- package/bin/rpc/Client.d.ts +11 -4
- package/bin/rpc/Client.d.ts.map +1 -1
- package/bin/rpc/Client.js +14 -3
- package/bin/rpc/Client.js.map +1 -1
- package/bin/session/Session.d.ts +13 -3
- package/bin/session/Session.d.ts.map +1 -1
- package/bin/session/Session.js +47 -18
- package/bin/session/Session.js.map +1 -1
- package/bin/session/recorder/JsonlSessionMessageStore.d.ts +45 -0
- package/bin/session/recorder/JsonlSessionMessageStore.d.ts.map +1 -0
- package/bin/session/recorder/JsonlSessionMessageStore.js +127 -0
- package/bin/session/recorder/JsonlSessionMessageStore.js.map +1 -0
- package/bin/session/recorder/SessionMessageCodec.d.ts +20 -0
- package/bin/session/recorder/SessionMessageCodec.d.ts.map +1 -0
- package/bin/session/recorder/SessionMessageCodec.js +252 -0
- package/bin/session/recorder/SessionMessageCodec.js.map +1 -0
- package/bin/session/recorder/SessionMessageReducer.d.ts +12 -0
- package/bin/session/recorder/SessionMessageReducer.d.ts.map +1 -0
- package/bin/session/recorder/SessionMessageReducer.js +109 -0
- package/bin/session/recorder/SessionMessageReducer.js.map +1 -0
- package/bin/session/recorder/SessionRecorder.d.ts +177 -0
- package/bin/session/recorder/SessionRecorder.d.ts.map +1 -0
- package/bin/session/recorder/SessionRecorder.js +610 -0
- package/bin/session/recorder/SessionRecorder.js.map +1 -0
- package/bin/session/recorder/SessionRecorderCompaction.d.ts +18 -0
- package/bin/session/recorder/SessionRecorderCompaction.d.ts.map +1 -0
- package/bin/session/recorder/SessionRecorderCompaction.js +141 -0
- package/bin/session/recorder/SessionRecorderCompaction.js.map +1 -0
- package/bin/session/recorder/SessionRecorderHistoryStore.d.ts +66 -0
- package/bin/session/recorder/SessionRecorderHistoryStore.d.ts.map +1 -0
- package/bin/session/recorder/SessionRecorderHistoryStore.js +195 -0
- package/bin/session/recorder/SessionRecorderHistoryStore.js.map +1 -0
- package/bin/session/runtime/SessionMessageEventHub.d.ts +15 -0
- package/bin/session/runtime/SessionMessageEventHub.d.ts.map +1 -0
- package/bin/session/runtime/SessionMessageEventHub.js +28 -0
- package/bin/session/runtime/SessionMessageEventHub.js.map +1 -0
- package/bin/session/runtime/SessionPromptRuntime.d.ts +7 -13
- package/bin/session/runtime/SessionPromptRuntime.d.ts.map +1 -1
- package/bin/session/runtime/SessionPromptRuntime.js +13 -13
- package/bin/session/runtime/SessionPromptRuntime.js.map +1 -1
- package/bin/session/services/SessionStateService.d.ts +7 -3
- package/bin/session/services/SessionStateService.d.ts.map +1 -1
- package/bin/session/services/SessionStateService.js +132 -72
- package/bin/session/services/SessionStateService.js.map +1 -1
- package/bin/session/services/SessionTurnService.d.ts +4 -0
- package/bin/session/services/SessionTurnService.d.ts.map +1 -1
- package/bin/session/services/SessionTurnService.js +82 -52
- package/bin/session/services/SessionTurnService.js.map +1 -1
- package/bin/session/services/SessionViewService.d.ts +8 -3
- package/bin/session/services/SessionViewService.d.ts.map +1 -1
- package/bin/session/services/SessionViewService.js +10 -5
- package/bin/session/services/SessionViewService.js.map +1 -1
- package/bin/session/storage/Persistence.d.ts +6 -0
- package/bin/session/storage/Persistence.d.ts.map +1 -1
- package/bin/session/storage/Persistence.js +7 -0
- package/bin/session/storage/Persistence.js.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.d.ts +3 -2
- package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
- package/bin/types/agent/SessionActor.d.ts +10 -4
- package/bin/types/agent/SessionActor.d.ts.map +1 -1
- package/bin/types/rpc/RpcProtocol.d.ts +20 -6
- package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
- package/bin/types/runtime/agent/AgentContext.d.ts +4 -3
- package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
- package/bin/types/runtime/agent/AgentContext.js.map +1 -1
- package/bin/types/sdk/AgentSessionEvent.d.ts +2 -1
- package/bin/types/sdk/AgentSessionEvent.d.ts.map +1 -1
- package/bin/types/session/SessionMessage.d.ts +217 -0
- package/bin/types/session/SessionMessage.d.ts.map +1 -0
- package/bin/types/session/SessionMessage.js +8 -0
- package/bin/types/session/SessionMessage.js.map +1 -0
- package/bin/types/session/SessionMessageMutation.d.ts +92 -0
- package/bin/types/session/SessionMessageMutation.d.ts.map +1 -0
- package/bin/types/session/SessionMessageMutation.js +21 -0
- package/bin/types/session/SessionMessageMutation.js.map +1 -0
- package/package.json +3 -3
- package/scripts/agent-env.test.mjs +4 -4
- package/scripts/session-action-message.test.mjs +98 -27
- package/scripts/session-list-title.test.mjs +6 -19
- package/scripts/session-prompt-runtime.test.mjs +4 -16
- package/scripts/session-recorder.test.mjs +245 -0
- package/scripts/session-title-event.test.mjs +10 -18
- package/src/agent/local/services/AgentSessions.ts +1 -3
- package/src/agent/remote/RemoteSession.ts +35 -7
- package/src/agent/remote/RemoteTransport.ts +17 -6
- package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +45 -13
- package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +19 -6
- package/src/executor/types/SessionRecords.ts +2 -0
- package/src/index.ts +23 -5
- package/src/rpc/Client.ts +29 -8
- package/src/session/Session.ts +65 -31
- package/src/session/recorder/JsonlSessionMessageStore.ts +162 -0
- package/src/session/recorder/SessionMessageCodec.ts +279 -0
- package/src/session/recorder/SessionMessageReducer.ts +155 -0
- package/src/session/recorder/SessionRecorder.ts +812 -0
- package/src/session/recorder/SessionRecorderCompaction.ts +187 -0
- package/src/session/recorder/SessionRecorderHistoryStore.ts +276 -0
- package/src/session/runtime/SessionMessageEventHub.ts +35 -0
- package/src/session/runtime/SessionPromptRuntime.ts +23 -24
- package/src/session/services/SessionStateService.ts +151 -80
- package/src/session/services/SessionTurnService.ts +88 -59
- package/src/session/services/SessionViewService.ts +25 -13
- package/src/session/storage/Persistence.ts +13 -0
- package/src/session/storage/RuntimeSessionPort.ts +6 -4
- package/src/types/agent/SessionActor.ts +26 -6
- package/src/types/rpc/RpcProtocol.ts +20 -6
- package/src/types/runtime/agent/AgentContext.ts +8 -2
- package/src/types/sdk/AgentSessionEvent.ts +2 -0
- package/src/types/session/SessionMessage.ts +247 -0
- package/src/types/session/SessionMessageMutation.ts +121 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/session/SessionEventMapper.d.ts +0 -32
- package/bin/session/SessionEventMapper.d.ts.map +0 -1
- package/bin/session/SessionEventMapper.js +0 -131
- package/bin/session/SessionEventMapper.js.map +0 -1
- package/bin/types/sdk/InternalUiChunkEvent.d.ts +0 -100
- package/bin/types/sdk/InternalUiChunkEvent.d.ts.map +0 -1
- package/bin/types/sdk/InternalUiChunkEvent.js +0 -9
- package/bin/types/sdk/InternalUiChunkEvent.js.map +0 -1
- package/scripts/session-history-archive.test.mjs +0 -188
- package/src/session/SessionEventMapper.ts +0 -148
- package/src/types/sdk/InternalUiChunkEvent.ts +0 -108
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionRecorder:Session Message 的唯一持久化与发布入口。
|
|
3
|
+
*
|
|
4
|
+
* Mutation 先写入单一 messages.jsonl,成功后更新内存 snapshot,最后发布同一个对象。
|
|
5
|
+
*/
|
|
6
|
+
import type { UIMessage, UIMessageChunk } from "ai";
|
|
7
|
+
import { JsonlSessionMessageStore } from "../../session/recorder/JsonlSessionMessageStore.js";
|
|
8
|
+
import type { JsonObject } from "../../types/common/Json.js";
|
|
9
|
+
import type { ListSessionMessagesInput, SessionActionMessage, SessionAssistantMessage, SessionAssistantMessagePart, SessionErrorMessage, SessionMessage, SessionMessagePage, SessionUserMessage, SessionUserMessagePart } from "../../types/session/SessionMessage.js";
|
|
10
|
+
import type { ListSessionMessageChangesInput, SessionMessageMutation, SessionMessageMutationPage, SessionMessageMutationSubscriber, SessionMessageMutationUnsubscribe } from "../../types/session/SessionMessageMutation.js";
|
|
11
|
+
/** SessionRecorder 构造参数。 */
|
|
12
|
+
export interface SessionRecorderOptions {
|
|
13
|
+
/** 当前 Session 标识。 */
|
|
14
|
+
session_id: string;
|
|
15
|
+
/** 单一 JSONL Mutation store。 */
|
|
16
|
+
store: JsonlSessionMessageStore;
|
|
17
|
+
/** Mutation 成功提交后的发布函数。 */
|
|
18
|
+
publish: (mutation: SessionMessageMutation) => void;
|
|
19
|
+
}
|
|
20
|
+
/** User Message 创建参数。 */
|
|
21
|
+
export interface AppendSessionUserMessageInput {
|
|
22
|
+
/** 当前输入所属 turn。 */
|
|
23
|
+
turn_id: string;
|
|
24
|
+
/** 普通 prompt 或 steering 输入。 */
|
|
25
|
+
input_type: "prompt" | "steer";
|
|
26
|
+
/** User 结构化 parts。 */
|
|
27
|
+
parts: SessionUserMessagePart[];
|
|
28
|
+
/** 可选指定 Message ID,通常由 Recorder 生成。 */
|
|
29
|
+
message_id?: string;
|
|
30
|
+
/** 默认展示范围。 */
|
|
31
|
+
visibility?: "visible" | "internal";
|
|
32
|
+
}
|
|
33
|
+
/** Assistant Message 创建参数。 */
|
|
34
|
+
export interface OpenSessionAssistantMessageInput {
|
|
35
|
+
/** 当前 assistant 所属 turn。 */
|
|
36
|
+
turn_id: string;
|
|
37
|
+
/** 当前 assistant 在 turn 内的 segment 序号。 */
|
|
38
|
+
segment_index: number;
|
|
39
|
+
/** 普通 assistant 或 compact summary。 */
|
|
40
|
+
kind?: "normal" | "summary";
|
|
41
|
+
/** 默认展示范围。 */
|
|
42
|
+
visibility?: "visible" | "internal";
|
|
43
|
+
/** 可选指定 Message ID。 */
|
|
44
|
+
message_id?: string;
|
|
45
|
+
/** Summary 已覆盖到的来源 Message。 */
|
|
46
|
+
summary_through_message_id?: string;
|
|
47
|
+
}
|
|
48
|
+
/** 已完成 Assistant Message 直接写入参数。 */
|
|
49
|
+
export interface AppendCompletedAssistantMessageInput {
|
|
50
|
+
/** Assistant 所属 turn。 */
|
|
51
|
+
turn_id?: string;
|
|
52
|
+
/** Assistant 完整 parts。 */
|
|
53
|
+
parts: SessionAssistantMessagePart[];
|
|
54
|
+
/** 普通 assistant 或 compact summary。 */
|
|
55
|
+
kind?: "normal" | "summary";
|
|
56
|
+
/** 默认展示范围。 */
|
|
57
|
+
visibility?: "visible" | "internal";
|
|
58
|
+
/** Summary 已覆盖到的来源 Message。 */
|
|
59
|
+
summary_through_message_id?: string;
|
|
60
|
+
}
|
|
61
|
+
/** Action Message 创建参数。 */
|
|
62
|
+
export interface OpenSessionActionMessageInput {
|
|
63
|
+
/** 可选稳定 Message ID;业务 action 生命周期使用该值定位。 */
|
|
64
|
+
message_id?: string;
|
|
65
|
+
/** Action 所属 turn。 */
|
|
66
|
+
turn_id?: string;
|
|
67
|
+
/** Action 业务类型。 */
|
|
68
|
+
action_type: string;
|
|
69
|
+
/** Action 标题。 */
|
|
70
|
+
title: string;
|
|
71
|
+
/** Action 描述。 */
|
|
72
|
+
description?: string;
|
|
73
|
+
/** Action 附加数据。 */
|
|
74
|
+
data?: JsonObject;
|
|
75
|
+
}
|
|
76
|
+
/** Error Message 创建参数。 */
|
|
77
|
+
export interface AppendSessionErrorMessageInput {
|
|
78
|
+
/** 错误影响范围。 */
|
|
79
|
+
scope: "session" | "turn";
|
|
80
|
+
/** 错误所属 turn。 */
|
|
81
|
+
turn_id?: string;
|
|
82
|
+
/** 稳定错误码。 */
|
|
83
|
+
code: string;
|
|
84
|
+
/** 用户可见错误文本。 */
|
|
85
|
+
message: string;
|
|
86
|
+
/** 是否允许恢复。 */
|
|
87
|
+
recoverable: boolean;
|
|
88
|
+
}
|
|
89
|
+
/** 唯一 Session Message 写入服务。 */
|
|
90
|
+
export declare class SessionRecorder {
|
|
91
|
+
readonly session_id: string;
|
|
92
|
+
private readonly store;
|
|
93
|
+
private readonly publish;
|
|
94
|
+
private readonly subscribers;
|
|
95
|
+
private readonly messages_by_id;
|
|
96
|
+
private initialized;
|
|
97
|
+
constructor(options: SessionRecorderOptions);
|
|
98
|
+
/** 重放已有 Mutation,并收口进程中断遗留的运行状态。 */
|
|
99
|
+
initialize(): Promise<void>;
|
|
100
|
+
/** 同步读取当前内存 Message。 */
|
|
101
|
+
get_message(message_id: string): SessionMessage | undefined;
|
|
102
|
+
/** 追加普通 prompt 或 steering User Message。 */
|
|
103
|
+
append_user_message(input: AppendSessionUserMessageInput): Promise<SessionUserMessage>;
|
|
104
|
+
/** 创建可持续接收 chunk 的 Assistant segment。 */
|
|
105
|
+
open_assistant_message(input: OpenSessionAssistantMessageInput): Promise<SessionAssistantMessageWriter>;
|
|
106
|
+
/** 直接写入一条已完成 Assistant Message。 */
|
|
107
|
+
append_completed_assistant_message(input: AppendCompletedAssistantMessageInput): Promise<SessionAssistantMessage>;
|
|
108
|
+
/** 创建 running Action Message。 */
|
|
109
|
+
open_action_message(input: OpenSessionActionMessageInput): Promise<SessionActionMessageWriter>;
|
|
110
|
+
/** 更新 Action 状态,同时保持 message_id 与 sequence 不变。 */
|
|
111
|
+
update_action_message(message_id: string, status: "running" | "completed" | "failed", changes?: {
|
|
112
|
+
title?: string;
|
|
113
|
+
description?: string;
|
|
114
|
+
data?: JsonObject;
|
|
115
|
+
}): Promise<SessionActionMessage>;
|
|
116
|
+
/** 创建用户可见 Error Message。 */
|
|
117
|
+
append_error_message(input: AppendSessionErrorMessageInput): Promise<SessionErrorMessage>;
|
|
118
|
+
/** 读取折叠后的 Message snapshot。 */
|
|
119
|
+
list_messages(input?: ListSessionMessagesInput): Promise<SessionMessagePage>;
|
|
120
|
+
/** 从指定 commit_sequence 增量读取 Mutation。 */
|
|
121
|
+
list_message_changes(input: ListSessionMessageChangesInput): Promise<SessionMessageMutationPage>;
|
|
122
|
+
/** 订阅已成功持久化的未来 Mutation。 */
|
|
123
|
+
subscribe(subscriber: SessionMessageMutationSubscriber): SessionMessageMutationUnsubscribe;
|
|
124
|
+
/** 向当前 Session 导入 fork 来源 Message,并重新分配全部身份和顺序。 */
|
|
125
|
+
import_messages(messages: SessionMessage[]): Promise<void>;
|
|
126
|
+
/** @internal 写入 Assistant 原始文本 delta。 */
|
|
127
|
+
append_assistant_delta(message_id: string, part_id: string, type: "text" | "reasoning", delta: string): Promise<void>;
|
|
128
|
+
/** @internal 写入 Assistant 完整 part。 */
|
|
129
|
+
update_assistant_part(message_id: string, part: SessionAssistantMessagePart): Promise<void>;
|
|
130
|
+
/** @internal 收口 Assistant Message。 */
|
|
131
|
+
complete_assistant_message(message_id: string, status: "completed" | "stopped" | "failed"): Promise<void>;
|
|
132
|
+
private create_message;
|
|
133
|
+
private build_message_mutation;
|
|
134
|
+
private accept_mutation;
|
|
135
|
+
private ensure_initialized;
|
|
136
|
+
}
|
|
137
|
+
/** 单个 Assistant segment 的流式 writer。 */
|
|
138
|
+
export declare class SessionAssistantMessageWriter {
|
|
139
|
+
readonly message_id: string;
|
|
140
|
+
private readonly recorder;
|
|
141
|
+
private closed;
|
|
142
|
+
constructor(recorder: SessionRecorder, message_id: string);
|
|
143
|
+
/** 应用一个原始 AI SDK UI chunk。 */
|
|
144
|
+
apply_chunk(chunk: UIMessageChunk): Promise<void>;
|
|
145
|
+
/** 写入一个完整 Assistant part。 */
|
|
146
|
+
upsert_part(part: SessionAssistantMessagePart): Promise<void>;
|
|
147
|
+
/** 当前实现逐 chunk 等待落盘,因此 flush 在返回时天然完成。 */
|
|
148
|
+
flush(): Promise<void>;
|
|
149
|
+
/** 正常完成当前 assistant segment。 */
|
|
150
|
+
complete(): Promise<void>;
|
|
151
|
+
/** 停止当前 assistant segment,并保留已有 parts。 */
|
|
152
|
+
stop(): Promise<void>;
|
|
153
|
+
/** 以失败状态关闭当前 assistant segment。 */
|
|
154
|
+
fail(_error: unknown): Promise<void>;
|
|
155
|
+
private current_message;
|
|
156
|
+
private find_tool;
|
|
157
|
+
private upsert_tool;
|
|
158
|
+
private close;
|
|
159
|
+
}
|
|
160
|
+
/** 单个 Action Message 的生命周期 writer。 */
|
|
161
|
+
export declare class SessionActionMessageWriter {
|
|
162
|
+
readonly message_id: string;
|
|
163
|
+
private readonly recorder;
|
|
164
|
+
private closed;
|
|
165
|
+
constructor(recorder: SessionRecorder, message_id: string);
|
|
166
|
+
/** 把 Action 更新为 completed。 */
|
|
167
|
+
complete(input?: {
|
|
168
|
+
title?: string;
|
|
169
|
+
description?: string;
|
|
170
|
+
data?: JsonObject;
|
|
171
|
+
}): Promise<void>;
|
|
172
|
+
/** 把 Action 更新为 failed。 */
|
|
173
|
+
fail(error: unknown): Promise<void>;
|
|
174
|
+
}
|
|
175
|
+
/** 把 AI SDK User parts 归一为 canonical User parts。 */
|
|
176
|
+
export declare function normalize_session_user_parts(parts: UIMessage["parts"] | null | undefined): SessionUserMessagePart[];
|
|
177
|
+
//# sourceMappingURL=SessionRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionRecorder.d.ts","sourceRoot":"","sources":["../../../src/session/recorder/SessionRecorder.ts"],"names":[],"mappings":"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"}
|