clawconnect-agent 0.2.5 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -3
- package/README.zh-CN.md +7 -3
- package/dist/commands/hermes-file-transfer-outcome.d.ts +18 -0
- package/dist/commands/hermes-file-transfer-outcome.js +40 -0
- package/dist/commands/hermes-file-transfer-outcome.js.map +1 -0
- package/dist/commands/send-file.js +39 -33
- package/dist/commands/send-file.js.map +1 -1
- package/dist/core/command-types.d.ts +5 -0
- package/dist/core/relay/chat-payload.js +32 -22
- package/dist/core/relay/chat-payload.js.map +1 -1
- package/dist/core/relay/file-upload.d.ts +3 -0
- package/dist/core/relay/file-upload.js +4 -0
- package/dist/core/relay/file-upload.js.map +1 -1
- package/dist/core/relay/mobile-chat-run-bridge.d.ts +53 -8
- package/dist/core/relay/mobile-chat-run-bridge.js +45 -0
- package/dist/core/relay/mobile-chat-run-bridge.js.map +1 -1
- package/dist/core/relay/office-payload.js +54 -22
- package/dist/core/relay/office-payload.js.map +1 -1
- package/dist/core/relay/source-commit.d.ts +41 -0
- package/dist/core/relay/source-commit.js +118 -0
- package/dist/core/relay/source-commit.js.map +1 -0
- package/dist/core/relay/timeline-event-builder.d.ts +6 -0
- package/dist/core/relay/timeline-event-builder.js +3 -0
- package/dist/core/relay/timeline-event-builder.js.map +1 -1
- package/dist/core/relay/timeline-event-log.d.ts +29 -0
- package/dist/core/relay/timeline-event-log.js +37 -0
- package/dist/core/relay/timeline-event-log.js.map +1 -1
- package/dist/core/relay/timeline-projection-v3.d.ts +63 -0
- package/dist/core/relay/timeline-projection-v3.js +87 -0
- package/dist/core/relay/timeline-projection-v3.js.map +1 -0
- package/dist/hermes/hermes-relay-manager.js +3 -0
- package/dist/hermes/hermes-relay-manager.js.map +1 -1
- package/dist/hermes/hermes-runtime-test-support.d.ts +3 -3
- package/dist/hermes/hermes-runtime-test-support.js +12 -6
- package/dist/hermes/hermes-runtime-test-support.js.map +1 -1
- package/dist/hermes/runtime/hermes-file-transfer-state.d.ts +33 -0
- package/dist/hermes/runtime/hermes-file-transfer-state.js +139 -0
- package/dist/hermes/runtime/hermes-file-transfer-state.js.map +1 -0
- package/dist/hermes/runtime/hermes-mobile-file-route-store.d.ts +17 -0
- package/dist/hermes/runtime/hermes-mobile-file-route-store.js +103 -0
- package/dist/hermes/runtime/hermes-mobile-file-route-store.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-api-client.d.ts +1 -0
- package/dist/hermes/runtime/hermes-runtime-api-client.js +16 -0
- package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-chat.d.ts +35 -4
- package/dist/hermes/runtime/hermes-runtime-chat.js +426 -51
- package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-command-router.js +9 -1
- package/dist/hermes/runtime/hermes-runtime-command-router.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-cron.d.ts +1 -0
- package/dist/hermes/runtime/hermes-runtime-cron.js +34 -66
- package/dist/hermes/runtime/hermes-runtime-cron.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-history-completion.d.ts +8 -1
- package/dist/hermes/runtime/hermes-runtime-history-completion.js +112 -41
- package/dist/hermes/runtime/hermes-runtime-history-completion.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-history.js +92 -17
- package/dist/hermes/runtime/hermes-runtime-history.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-models.js +4 -1
- package/dist/hermes/runtime/hermes-runtime-models.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-process.js +4 -3
- package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-state-db.d.ts +6 -0
- package/dist/hermes/runtime/hermes-runtime-state-db.js +20 -1
- package/dist/hermes/runtime/hermes-runtime-state-db.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-tool-log-watcher.js +12 -20
- package/dist/hermes/runtime/hermes-runtime-tool-log-watcher.js.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/openclaw/config/provider-config.js +4 -1
- package/dist/openclaw/config/provider-config.js.map +1 -1
- package/dist/openclaw/relay/agent-identity-helpers.d.ts +9 -0
- package/dist/openclaw/relay/agent-identity-helpers.js +118 -0
- package/dist/openclaw/relay/agent-identity-helpers.js.map +1 -0
- package/dist/openclaw/relay/assistant-media-sidecar.d.ts +28 -1
- package/dist/openclaw/relay/assistant-media-sidecar.js +270 -10
- package/dist/openclaw/relay/assistant-media-sidecar.js.map +1 -1
- package/dist/openclaw/relay/chat-history.d.ts +37 -2
- package/dist/openclaw/relay/chat-history.js +570 -49
- package/dist/openclaw/relay/chat-history.js.map +1 -1
- package/dist/openclaw/relay/chat-run-identity.js +3 -1
- package/dist/openclaw/relay/chat-run-identity.js.map +1 -1
- package/dist/openclaw/relay/gateway-history-projection.d.ts +4 -0
- package/dist/openclaw/relay/gateway-history-projection.js +67 -0
- package/dist/openclaw/relay/gateway-history-projection.js.map +1 -0
- package/dist/openclaw/relay/openclaw-active-run-state.d.ts +67 -0
- package/dist/openclaw/relay/openclaw-active-run-state.js +283 -0
- package/dist/openclaw/relay/openclaw-active-run-state.js.map +1 -0
- package/dist/openclaw/relay/openclaw-message-tool-real-shape.fixture.d.ts +12 -0
- package/dist/openclaw/relay/openclaw-message-tool-real-shape.fixture.js +48 -0
- package/dist/openclaw/relay/openclaw-message-tool-real-shape.fixture.js.map +1 -0
- package/dist/openclaw/relay/openclaw-source-commit-watcher.d.ts +22 -0
- package/dist/openclaw/relay/openclaw-source-commit-watcher.js +64 -0
- package/dist/openclaw/relay/openclaw-source-commit-watcher.js.map +1 -0
- package/dist/openclaw/relay/outgoing-media-relay.d.ts +35 -1
- package/dist/openclaw/relay/outgoing-media-relay.js +541 -123
- package/dist/openclaw/relay/outgoing-media-relay.js.map +1 -1
- package/dist/openclaw/relay/relay-manager-history-timing.d.ts +1 -4
- package/dist/openclaw/relay/relay-manager-history-timing.js +4 -4
- package/dist/openclaw/relay/relay-manager-history-timing.js.map +1 -1
- package/dist/openclaw/relay/relay-manager-payload-helpers.d.ts +28 -1
- package/dist/openclaw/relay/relay-manager-payload-helpers.js +219 -11
- package/dist/openclaw/relay/relay-manager-payload-helpers.js.map +1 -1
- package/dist/openclaw/relay/session-context.d.ts +15 -0
- package/dist/openclaw/relay/session-context.js +48 -4
- package/dist/openclaw/relay/session-context.js.map +1 -1
- package/dist/openclaw/relay/source-commit-projection.d.ts +25 -0
- package/dist/openclaw/relay/source-commit-projection.js +140 -0
- package/dist/openclaw/relay/source-commit-projection.js.map +1 -0
- package/dist/openclaw/relay/transcript-dedupe.js +11 -42
- package/dist/openclaw/relay/transcript-dedupe.js.map +1 -1
- package/dist/openclaw/relay-manager.js +329 -131
- package/dist/openclaw/relay-manager.js.map +1 -1
- package/dist/openclaw/runtime/local-runtime.js +4 -2
- package/dist/openclaw/runtime/local-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/openclaw/session-store.d.ts +0 -6
- package/dist/openclaw/session-store.js +0 -231
- package/dist/openclaw/session-store.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TimelineContentBlock } from "./timeline-event-log.js";
|
|
2
|
+
import type { SourceCommit } from "./source-commit.js";
|
|
2
3
|
export type MobileChatRun = {
|
|
3
4
|
runId: string;
|
|
4
5
|
sessionKey: string;
|
|
@@ -30,13 +31,11 @@ export declare function buildCanonicalMobileAssistantDeltaPayload(params: {
|
|
|
30
31
|
seq: number;
|
|
31
32
|
timestampMs: number;
|
|
32
33
|
delta: string;
|
|
34
|
+
clientMessageId?: string;
|
|
35
|
+
idempotencyKey?: string;
|
|
33
36
|
includeTimelineEvents?: boolean;
|
|
34
37
|
}): {
|
|
35
38
|
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
36
|
-
runId: string;
|
|
37
|
-
sessionKey: string;
|
|
38
|
-
state: string;
|
|
39
|
-
role: string;
|
|
40
39
|
seq: number;
|
|
41
40
|
ts: number;
|
|
42
41
|
delta: string;
|
|
@@ -48,19 +47,23 @@ export declare function buildCanonicalMobileAssistantDeltaPayload(params: {
|
|
|
48
47
|
text: string;
|
|
49
48
|
}[];
|
|
50
49
|
};
|
|
50
|
+
idempotencyKey?: string | undefined;
|
|
51
|
+
clientMessageId?: string | undefined;
|
|
52
|
+
runId: string;
|
|
53
|
+
sessionKey: string;
|
|
54
|
+
state: string;
|
|
55
|
+
role: string;
|
|
51
56
|
};
|
|
52
57
|
export declare function buildMobileAssistantDeltaPayload(params: {
|
|
53
58
|
run: MobileChatRun;
|
|
54
59
|
seq: number;
|
|
55
60
|
timestampMs: number;
|
|
56
61
|
delta: string;
|
|
62
|
+
clientMessageId?: string;
|
|
63
|
+
idempotencyKey?: string;
|
|
57
64
|
includeTimelineEvents?: boolean;
|
|
58
65
|
}): {
|
|
59
66
|
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
60
|
-
runId: string;
|
|
61
|
-
sessionKey: string;
|
|
62
|
-
state: string;
|
|
63
|
-
role: string;
|
|
64
67
|
seq: number;
|
|
65
68
|
ts: number;
|
|
66
69
|
delta: string;
|
|
@@ -72,11 +75,19 @@ export declare function buildMobileAssistantDeltaPayload(params: {
|
|
|
72
75
|
text: string;
|
|
73
76
|
}[];
|
|
74
77
|
};
|
|
78
|
+
idempotencyKey?: string | undefined;
|
|
79
|
+
clientMessageId?: string | undefined;
|
|
80
|
+
runId: string;
|
|
81
|
+
sessionKey: string;
|
|
82
|
+
state: string;
|
|
83
|
+
role: string;
|
|
75
84
|
};
|
|
76
85
|
export declare function buildCanonicalMobileAssistantStreamingPayload(params: {
|
|
77
86
|
run: MobileChatRun;
|
|
78
87
|
seq?: number;
|
|
79
88
|
text: string;
|
|
89
|
+
clientMessageId?: string;
|
|
90
|
+
idempotencyKey?: string;
|
|
80
91
|
includeTimelineEvents?: boolean;
|
|
81
92
|
}): {
|
|
82
93
|
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
@@ -88,6 +99,8 @@ export declare function buildCanonicalMobileAssistantStreamingPayload(params: {
|
|
|
88
99
|
}[];
|
|
89
100
|
};
|
|
90
101
|
seq?: number | undefined;
|
|
102
|
+
idempotencyKey?: string | undefined;
|
|
103
|
+
clientMessageId?: string | undefined;
|
|
91
104
|
runId: string;
|
|
92
105
|
sessionKey: string;
|
|
93
106
|
state: string;
|
|
@@ -97,6 +110,8 @@ export declare function buildMobileAssistantStreamingPayload(params: {
|
|
|
97
110
|
run: MobileChatRun;
|
|
98
111
|
seq?: number;
|
|
99
112
|
text: string;
|
|
113
|
+
clientMessageId?: string;
|
|
114
|
+
idempotencyKey?: string;
|
|
100
115
|
includeTimelineEvents?: boolean;
|
|
101
116
|
}): {
|
|
102
117
|
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
@@ -108,6 +123,8 @@ export declare function buildMobileAssistantStreamingPayload(params: {
|
|
|
108
123
|
}[];
|
|
109
124
|
};
|
|
110
125
|
seq?: number | undefined;
|
|
126
|
+
idempotencyKey?: string | undefined;
|
|
127
|
+
clientMessageId?: string | undefined;
|
|
111
128
|
runId: string;
|
|
112
129
|
sessionKey: string;
|
|
113
130
|
state: string;
|
|
@@ -117,7 +134,11 @@ export declare function buildCanonicalMobileAssistantFinalPayload(params: {
|
|
|
117
134
|
run: MobileChatRun;
|
|
118
135
|
text: string;
|
|
119
136
|
contentBlocks?: TimelineContentBlock[];
|
|
137
|
+
messageId?: string;
|
|
138
|
+
clientMessageId?: string;
|
|
139
|
+
idempotencyKey?: string;
|
|
120
140
|
includeTimelineEvents?: boolean;
|
|
141
|
+
sourceCommit?: SourceCommit;
|
|
121
142
|
} & MobileAssistantUsage): {
|
|
122
143
|
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
123
144
|
message: {
|
|
@@ -128,6 +149,8 @@ export declare function buildCanonicalMobileAssistantFinalPayload(params: {
|
|
|
128
149
|
contextUsage?: number | undefined;
|
|
129
150
|
provider?: string | undefined;
|
|
130
151
|
currentModel?: string | undefined;
|
|
152
|
+
idempotencyKey?: string | undefined;
|
|
153
|
+
clientMessageId?: string | undefined;
|
|
131
154
|
runId: string;
|
|
132
155
|
sessionKey: string;
|
|
133
156
|
state: string;
|
|
@@ -137,7 +160,11 @@ export declare function buildMobileAssistantFinalPayload(params: {
|
|
|
137
160
|
run: MobileChatRun;
|
|
138
161
|
text: string;
|
|
139
162
|
contentBlocks?: TimelineContentBlock[];
|
|
163
|
+
messageId?: string;
|
|
164
|
+
clientMessageId?: string;
|
|
165
|
+
idempotencyKey?: string;
|
|
140
166
|
includeTimelineEvents?: boolean;
|
|
167
|
+
sourceCommit?: SourceCommit;
|
|
141
168
|
} & MobileAssistantUsage): {
|
|
142
169
|
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
143
170
|
message: {
|
|
@@ -148,11 +175,29 @@ export declare function buildMobileAssistantFinalPayload(params: {
|
|
|
148
175
|
contextUsage?: number | undefined;
|
|
149
176
|
provider?: string | undefined;
|
|
150
177
|
currentModel?: string | undefined;
|
|
178
|
+
idempotencyKey?: string | undefined;
|
|
179
|
+
clientMessageId?: string | undefined;
|
|
151
180
|
runId: string;
|
|
152
181
|
sessionKey: string;
|
|
153
182
|
state: string;
|
|
154
183
|
role: string;
|
|
155
184
|
};
|
|
185
|
+
/**
|
|
186
|
+
* Publishes only the terminal lifecycle event for a provider completion that
|
|
187
|
+
* carried no assistant content. The source-commit watcher is responsible for
|
|
188
|
+
* publishing any canonical transcript rows later; this payload must not create
|
|
189
|
+
* an empty assistant message.
|
|
190
|
+
*/
|
|
191
|
+
export declare function buildMobileAssistantCompletedPayload(params: {
|
|
192
|
+
run: MobileChatRun;
|
|
193
|
+
includeTimelineEvents?: boolean;
|
|
194
|
+
}): {
|
|
195
|
+
timelineEvents?: import("./timeline-event-log.js").CanonicalTimelineEvent[] | undefined;
|
|
196
|
+
runId: string;
|
|
197
|
+
sessionKey: string;
|
|
198
|
+
state: "final";
|
|
199
|
+
role: "assistant";
|
|
200
|
+
};
|
|
156
201
|
export declare function buildCanonicalMobileAssistantErrorPayload(params: {
|
|
157
202
|
run: MobileChatRun;
|
|
158
203
|
errorMessage: string;
|
|
@@ -52,9 +52,13 @@ export function buildCanonicalMobileAssistantDeltaPayload(params) {
|
|
|
52
52
|
turnId: params.run.runId,
|
|
53
53
|
runId: params.run.runId,
|
|
54
54
|
role: "assistant",
|
|
55
|
+
...(params.clientMessageId ? { clientMessageId: params.clientMessageId } : {}),
|
|
56
|
+
...(params.idempotencyKey ? { idempotencyKey: params.idempotencyKey } : {}),
|
|
55
57
|
seq: params.seq,
|
|
56
58
|
turnSeq: params.seq,
|
|
57
59
|
now: () => new Date(params.timestampMs),
|
|
60
|
+
timelineItemKind: "waiting",
|
|
61
|
+
timelineResolvesWaiting: false,
|
|
58
62
|
content: [{ type: "text", text: params.delta }],
|
|
59
63
|
});
|
|
60
64
|
const text = timelineTextContent(timelineEvent);
|
|
@@ -63,6 +67,8 @@ export function buildCanonicalMobileAssistantDeltaPayload(params) {
|
|
|
63
67
|
sessionKey: params.run.sessionKey,
|
|
64
68
|
state: "delta",
|
|
65
69
|
role: "assistant",
|
|
70
|
+
...(params.clientMessageId ? { clientMessageId: params.clientMessageId } : {}),
|
|
71
|
+
...(params.idempotencyKey ? { idempotencyKey: params.idempotencyKey } : {}),
|
|
66
72
|
seq: params.seq,
|
|
67
73
|
ts: params.timestampMs,
|
|
68
74
|
delta: text,
|
|
@@ -84,8 +90,12 @@ export function buildCanonicalMobileAssistantStreamingPayload(params) {
|
|
|
84
90
|
turnId: params.run.runId,
|
|
85
91
|
runId: params.run.runId,
|
|
86
92
|
role: "assistant",
|
|
93
|
+
...(params.clientMessageId ? { clientMessageId: params.clientMessageId } : {}),
|
|
94
|
+
...(params.idempotencyKey ? { idempotencyKey: params.idempotencyKey } : {}),
|
|
87
95
|
seq: params.seq,
|
|
88
96
|
turnSeq: params.seq,
|
|
97
|
+
timelineItemKind: "waiting",
|
|
98
|
+
timelineResolvesWaiting: false,
|
|
89
99
|
content: [{ type: "text", text: params.text }],
|
|
90
100
|
});
|
|
91
101
|
const text = timelineTextContent(timelineEvent);
|
|
@@ -94,6 +104,8 @@ export function buildCanonicalMobileAssistantStreamingPayload(params) {
|
|
|
94
104
|
sessionKey: params.run.sessionKey,
|
|
95
105
|
state: "streaming",
|
|
96
106
|
role: "assistant",
|
|
107
|
+
...(params.clientMessageId ? { clientMessageId: params.clientMessageId } : {}),
|
|
108
|
+
...(params.idempotencyKey ? { idempotencyKey: params.idempotencyKey } : {}),
|
|
97
109
|
...(params.seq !== undefined ? { seq: params.seq } : {}),
|
|
98
110
|
message: {
|
|
99
111
|
role: "assistant",
|
|
@@ -116,6 +128,15 @@ export function buildCanonicalMobileAssistantFinalPayload(params) {
|
|
|
116
128
|
turnId: params.run.runId,
|
|
117
129
|
runId: params.run.runId,
|
|
118
130
|
role: "assistant",
|
|
131
|
+
...(params.clientMessageId ? { clientMessageId: params.clientMessageId } : {}),
|
|
132
|
+
...(params.idempotencyKey ? { idempotencyKey: params.idempotencyKey } : {}),
|
|
133
|
+
...(params.messageId ? { messageId: params.messageId } : {}),
|
|
134
|
+
...(params.sourceCommit ? { sourceCommit: params.sourceCommit } : {}),
|
|
135
|
+
// A live provider terminal is an overlay until the source watcher supplies
|
|
136
|
+
// a projection-v3 source identity. A derived reply id is not a source id.
|
|
137
|
+
...(!params.sourceCommit
|
|
138
|
+
? { timelineItemKind: "waiting", timelineResolvesWaiting: false }
|
|
139
|
+
: {}),
|
|
119
140
|
content,
|
|
120
141
|
});
|
|
121
142
|
const text = timelineTextContent(timelineEvent);
|
|
@@ -124,6 +145,8 @@ export function buildCanonicalMobileAssistantFinalPayload(params) {
|
|
|
124
145
|
sessionKey: params.run.sessionKey,
|
|
125
146
|
state: "final",
|
|
126
147
|
role: "assistant",
|
|
148
|
+
...(params.clientMessageId ? { clientMessageId: params.clientMessageId } : {}),
|
|
149
|
+
...(params.idempotencyKey ? { idempotencyKey: params.idempotencyKey } : {}),
|
|
127
150
|
...(params.currentModel !== undefined ? { currentModel: params.currentModel } : {}),
|
|
128
151
|
...(params.provider !== undefined ? { provider: params.provider } : {}),
|
|
129
152
|
...(params.contextUsage !== undefined ? { contextUsage: params.contextUsage } : {}),
|
|
@@ -154,6 +177,28 @@ export function buildCanonicalMobileAssistantFinalPayload(params) {
|
|
|
154
177
|
export function buildMobileAssistantFinalPayload(params) {
|
|
155
178
|
return buildCanonicalMobileAssistantFinalPayload(params);
|
|
156
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Publishes only the terminal lifecycle event for a provider completion that
|
|
182
|
+
* carried no assistant content. The source-commit watcher is responsible for
|
|
183
|
+
* publishing any canonical transcript rows later; this payload must not create
|
|
184
|
+
* an empty assistant message.
|
|
185
|
+
*/
|
|
186
|
+
export function buildMobileAssistantCompletedPayload(params) {
|
|
187
|
+
const timelineEvent = buildRunCompletedEvent({
|
|
188
|
+
gatewayId: "clawconnect",
|
|
189
|
+
sessionKey: params.run.sessionKey,
|
|
190
|
+
turnId: params.run.runId,
|
|
191
|
+
runId: params.run.runId,
|
|
192
|
+
role: "assistant",
|
|
193
|
+
});
|
|
194
|
+
return {
|
|
195
|
+
runId: params.run.runId,
|
|
196
|
+
sessionKey: params.run.sessionKey,
|
|
197
|
+
state: "final",
|
|
198
|
+
role: "assistant",
|
|
199
|
+
...(params.includeTimelineEvents ? { timelineEvents: [timelineEvent] } : {}),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
157
202
|
export function buildCanonicalMobileAssistantErrorPayload(params) {
|
|
158
203
|
const timelineEvent = buildRunErrorEvent({
|
|
159
204
|
gatewayId: "clawconnect",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-chat-run-bridge.js","sourceRoot":"","sources":["../../../src/core/relay/mobile-chat-run-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"mobile-chat-run-bridge.js","sourceRoot":"","sources":["../../../src/core/relay/mobile-chat-run-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { extractChatRole, extractChatText, } from "./chat-payload.js";
|
|
2
2
|
export const OFFICE_DETAIL_MAX_CODE_POINTS = 240;
|
|
3
|
+
const OFFICE_ACTIVITY_KINDS = new Set([
|
|
4
|
+
"idle",
|
|
5
|
+
"writing",
|
|
6
|
+
"researching",
|
|
7
|
+
"executing",
|
|
8
|
+
"syncing",
|
|
9
|
+
"offline",
|
|
10
|
+
"error",
|
|
11
|
+
]);
|
|
3
12
|
const OFFICE_DETAIL_SEGMENTER = typeof Intl.Segmenter === "function"
|
|
4
13
|
? new Intl.Segmenter(undefined, { granularity: "grapheme" })
|
|
5
14
|
: undefined;
|
|
@@ -32,7 +41,10 @@ export function buildOfficeEventPayload(eventName, payload, nowIso = () => new D
|
|
|
32
41
|
?? stringValue(office?.tool_call_id)
|
|
33
42
|
?? stringValue(data?.toolCallId)
|
|
34
43
|
?? stringValue(data?.tool_call_id);
|
|
35
|
-
const
|
|
44
|
+
const explicitKind = officeActivityKind(office?.kind)
|
|
45
|
+
?? officeActivityKind(record.activityKind)
|
|
46
|
+
?? officeActivityKind(data?.activityKind);
|
|
47
|
+
const kind = resolveKind(eventName, phase, role, toolName, explicitKind);
|
|
36
48
|
const title = resolveTitle(kind);
|
|
37
49
|
const detail = truncateOfficeDetail(resolveDetail(kind, {
|
|
38
50
|
eventName,
|
|
@@ -99,32 +111,49 @@ function countCodePoints(value) {
|
|
|
99
111
|
count += 1;
|
|
100
112
|
return count;
|
|
101
113
|
}
|
|
102
|
-
function resolveKind(eventName, phase, role, toolName) {
|
|
103
|
-
|
|
114
|
+
function resolveKind(eventName, phase, role, toolName, explicitKind) {
|
|
115
|
+
// The producer may provide an explicit typed office kind. Otherwise only
|
|
116
|
+
// exact protocol phases are accepted; arbitrary phase/tool text must not be
|
|
117
|
+
// interpreted as evidence of a lifecycle or tool state.
|
|
118
|
+
if (explicitKind)
|
|
119
|
+
return explicitKind;
|
|
104
120
|
if (eventName === "gateway_disconnected") {
|
|
105
121
|
return "offline";
|
|
106
122
|
}
|
|
107
123
|
if (eventName === "gateway_connected" || eventName === "context_usage") {
|
|
108
124
|
return "syncing";
|
|
109
125
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
126
|
+
switch (phase) {
|
|
127
|
+
case "error":
|
|
128
|
+
case "failed":
|
|
129
|
+
case "fail":
|
|
130
|
+
case "aborted":
|
|
131
|
+
return "error";
|
|
132
|
+
case "final":
|
|
133
|
+
case "complete":
|
|
134
|
+
case "completed":
|
|
135
|
+
case "done":
|
|
136
|
+
case "end":
|
|
137
|
+
return "idle";
|
|
138
|
+
case "sync":
|
|
139
|
+
case "syncing":
|
|
140
|
+
case "waiting":
|
|
141
|
+
return "syncing";
|
|
142
|
+
case "executing":
|
|
143
|
+
case "tool_call":
|
|
144
|
+
case "tool_running":
|
|
145
|
+
return "executing";
|
|
146
|
+
case "stream":
|
|
147
|
+
case "streaming":
|
|
148
|
+
case "delta":
|
|
149
|
+
case "progress":
|
|
150
|
+
case "write":
|
|
151
|
+
case "writing":
|
|
152
|
+
return eventName === "agent" && toolName ? "executing" : "writing";
|
|
121
153
|
}
|
|
122
|
-
if (
|
|
154
|
+
if (eventName === "agent" && toolName) {
|
|
123
155
|
return "executing";
|
|
124
156
|
}
|
|
125
|
-
if (phase.includes("stream") || phase.includes("delta") || phase.includes("progress") || phase.includes("write")) {
|
|
126
|
-
return eventName === "agent" ? "executing" : "writing";
|
|
127
|
-
}
|
|
128
157
|
if (role === "user") {
|
|
129
158
|
return "writing";
|
|
130
159
|
}
|
|
@@ -190,10 +219,7 @@ function resolveDetail(kind, context) {
|
|
|
190
219
|
}
|
|
191
220
|
}
|
|
192
221
|
function resolveProgress(kind, phase) {
|
|
193
|
-
if (
|
|
194
|
-
return 1;
|
|
195
|
-
}
|
|
196
|
-
if (phase.includes("error") || phase.includes("fail")) {
|
|
222
|
+
if (["final", "complete", "completed", "done", "error", "failed", "fail", "aborted"].includes(phase)) {
|
|
197
223
|
return 1;
|
|
198
224
|
}
|
|
199
225
|
switch (kind) {
|
|
@@ -232,6 +258,12 @@ function numberValue(value) {
|
|
|
232
258
|
function normalizePhaseValue(value) {
|
|
233
259
|
return value?.trim().toLowerCase() ?? "";
|
|
234
260
|
}
|
|
261
|
+
function officeActivityKind(value) {
|
|
262
|
+
if (typeof value !== "string")
|
|
263
|
+
return undefined;
|
|
264
|
+
const normalized = value.trim().toLowerCase();
|
|
265
|
+
return OFFICE_ACTIVITY_KINDS.has(normalized) ? normalized : undefined;
|
|
266
|
+
}
|
|
235
267
|
function formatCount(value) {
|
|
236
268
|
if (value >= 1_000_000) {
|
|
237
269
|
return `${Math.round((value / 1_000_000) * 10) / 10}m`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"office-payload.js","sourceRoot":"","sources":["../../../src/core/relay/office-payload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AA6B3B,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,uBAAuB,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU;IAClE,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC5D,CAAC,CAAC,SAAS,CAAC;AAEd,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,OAAgB,EAChB,SAAuB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAErD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,OAAkC,CAAC;IAClD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;WAChD,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;WAChC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;WAChD,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;WAClC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,mBAAmB,CAC/B,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;WACpB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;WACzB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;WACxB,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAChC,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;WACzC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;WAC9B,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;WAC3B,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC;WAC7C,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;WACjC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;WAC7B,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"office-payload.js","sourceRoot":"","sources":["../../../src/core/relay/office-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A source commit is a durable-source watermark, not a message identity.
|
|
3
|
+
*
|
|
4
|
+
* The producer owns the order scope and cursor. Relay may use this value to
|
|
5
|
+
* request/reconcile a source snapshot, but it must never use it as a message
|
|
6
|
+
* id, dedupe key, or UI sort key.
|
|
7
|
+
*/
|
|
8
|
+
export type SourceCommitGateway = "openclaw" | "hermes";
|
|
9
|
+
export type SourceCommit = {
|
|
10
|
+
projectionVersion: 3;
|
|
11
|
+
gatewayType: SourceCommitGateway;
|
|
12
|
+
gatewayId: string;
|
|
13
|
+
producerId: string;
|
|
14
|
+
sourceSessionId: string;
|
|
15
|
+
sourceOrderScope: string;
|
|
16
|
+
sourceGeneration: string;
|
|
17
|
+
committedThroughSeq: number;
|
|
18
|
+
sourceRevision: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function createSourceCommit(input: Omit<SourceCommit, "projectionVersion">): SourceCommit;
|
|
21
|
+
export declare function sourceCommitScope(commit: Pick<SourceCommit, "gatewayId" | "gatewayType" | "producerId" | "sourceSessionId" | "sourceOrderScope" | "sourceGeneration">): string;
|
|
22
|
+
export declare function isSourceCommit(value: unknown): value is SourceCommit;
|
|
23
|
+
export type SourceCommitCursorReader<TCursor extends SourceCommit = SourceCommit> = () => TCursor | null | Promise<TCursor | null>;
|
|
24
|
+
export type SourceCommitObserverOptions<TCursor extends SourceCommit = SourceCommit> = {
|
|
25
|
+
readCursor: SourceCommitCursorReader<TCursor> | (() => Promise<TCursor | null>);
|
|
26
|
+
onCommit: (commit: TCursor, previousCommittedThroughSeq: number | undefined) => void | Promise<void>;
|
|
27
|
+
onError?: (error: unknown) => void;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Serializes notifications and only emits a strictly advancing cursor for a
|
|
31
|
+
* source scope. Notifications are hints; the reader is authoritative. A
|
|
32
|
+
* generation change creates a new scope, so a restarted transcript can start
|
|
33
|
+
* at sequence zero without being mistaken for an old cursor.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createSourceCommitObserver<TCursor extends SourceCommit = SourceCommit>(options: SourceCommitObserverOptions<TCursor>): {
|
|
36
|
+
notify(): void;
|
|
37
|
+
/** Read immediately during startup/reconnect; no timer is used. */
|
|
38
|
+
rescan(): void;
|
|
39
|
+
close(): void;
|
|
40
|
+
lastCommittedThroughSeq(cursor: Pick<SourceCommit, "gatewayId" | "gatewayType" | "producerId" | "sourceSessionId" | "sourceOrderScope" | "sourceGeneration">): number | undefined;
|
|
41
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
function required(value, field) {
|
|
2
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
3
|
+
throw new Error(`Source commit is missing ${field}`);
|
|
4
|
+
}
|
|
5
|
+
return value.trim();
|
|
6
|
+
}
|
|
7
|
+
export function createSourceCommit(input) {
|
|
8
|
+
if (!Number.isSafeInteger(input.committedThroughSeq) || input.committedThroughSeq < 0) {
|
|
9
|
+
throw new Error("Source commit committedThroughSeq must be a non-negative integer");
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
projectionVersion: 3,
|
|
13
|
+
gatewayType: input.gatewayType,
|
|
14
|
+
gatewayId: required(input.gatewayId, "gatewayId"),
|
|
15
|
+
producerId: required(input.producerId, "producerId"),
|
|
16
|
+
sourceSessionId: required(input.sourceSessionId, "sourceSessionId"),
|
|
17
|
+
sourceOrderScope: required(input.sourceOrderScope, "sourceOrderScope"),
|
|
18
|
+
sourceGeneration: required(input.sourceGeneration, "sourceGeneration"),
|
|
19
|
+
committedThroughSeq: input.committedThroughSeq,
|
|
20
|
+
sourceRevision: required(input.sourceRevision, "sourceRevision"),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function sourceCommitScope(commit) {
|
|
24
|
+
return [
|
|
25
|
+
commit.gatewayType,
|
|
26
|
+
commit.gatewayId,
|
|
27
|
+
commit.producerId,
|
|
28
|
+
commit.sourceSessionId,
|
|
29
|
+
commit.sourceOrderScope,
|
|
30
|
+
commit.sourceGeneration,
|
|
31
|
+
].join("\u0000");
|
|
32
|
+
}
|
|
33
|
+
export function isSourceCommit(value) {
|
|
34
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
35
|
+
return false;
|
|
36
|
+
const record = value;
|
|
37
|
+
return record.projectionVersion === 3
|
|
38
|
+
&& (record.gatewayType === "openclaw" || record.gatewayType === "hermes")
|
|
39
|
+
&& typeof record.gatewayId === "string"
|
|
40
|
+
&& typeof record.producerId === "string"
|
|
41
|
+
&& typeof record.sourceSessionId === "string"
|
|
42
|
+
&& typeof record.sourceOrderScope === "string"
|
|
43
|
+
&& typeof record.sourceGeneration === "string"
|
|
44
|
+
&& Number.isSafeInteger(record.committedThroughSeq)
|
|
45
|
+
&& record.committedThroughSeq >= 0
|
|
46
|
+
&& typeof record.sourceRevision === "string";
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Serializes notifications and only emits a strictly advancing cursor for a
|
|
50
|
+
* source scope. Notifications are hints; the reader is authoritative. A
|
|
51
|
+
* generation change creates a new scope, so a restarted transcript can start
|
|
52
|
+
* at sequence zero without being mistaken for an old cursor.
|
|
53
|
+
*/
|
|
54
|
+
export function createSourceCommitObserver(options) {
|
|
55
|
+
let closed = false;
|
|
56
|
+
let running = false;
|
|
57
|
+
let pending = false;
|
|
58
|
+
const latestByScope = new Map();
|
|
59
|
+
const drain = async () => {
|
|
60
|
+
if (closed || running)
|
|
61
|
+
return;
|
|
62
|
+
running = true;
|
|
63
|
+
try {
|
|
64
|
+
do {
|
|
65
|
+
pending = false;
|
|
66
|
+
let cursor;
|
|
67
|
+
try {
|
|
68
|
+
cursor = await options.readCursor();
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
options.onError?.(error);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (!cursor)
|
|
75
|
+
continue;
|
|
76
|
+
const scope = sourceCommitScope(cursor);
|
|
77
|
+
const previous = latestByScope.get(scope);
|
|
78
|
+
if (previous !== undefined && cursor.committedThroughSeq <= previous)
|
|
79
|
+
continue;
|
|
80
|
+
try {
|
|
81
|
+
await options.onCommit(cursor, previous);
|
|
82
|
+
// Advance only after the downstream durable append/broadcast path
|
|
83
|
+
// succeeds. A failed send must be retried by the next notification
|
|
84
|
+
// or startup rescan, rather than being silently acknowledged.
|
|
85
|
+
latestByScope.set(scope, cursor.committedThroughSeq);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
// Do not spin or introduce a timer as a retry mechanism. The next
|
|
89
|
+
// source notification/reconnect rescan will retry the same cursor.
|
|
90
|
+
options.onError?.(error);
|
|
91
|
+
}
|
|
92
|
+
} while (pending && !closed);
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
running = false;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
notify() {
|
|
100
|
+
if (closed)
|
|
101
|
+
return;
|
|
102
|
+
pending = true;
|
|
103
|
+
void drain();
|
|
104
|
+
},
|
|
105
|
+
/** Read immediately during startup/reconnect; no timer is used. */
|
|
106
|
+
rescan() {
|
|
107
|
+
this.notify();
|
|
108
|
+
},
|
|
109
|
+
close() {
|
|
110
|
+
closed = true;
|
|
111
|
+
pending = false;
|
|
112
|
+
},
|
|
113
|
+
lastCommittedThroughSeq(cursor) {
|
|
114
|
+
return latestByScope.get(sourceCommitScope(cursor));
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=source-commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-commit.js","sourceRoot":"","sources":["../../../src/core/relay/source-commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AttachmentState, type CanonicalTimelineEvent, type CanonicalTimelineHistorySnapshotPage, type TimelineContentBlock, type TimelineItemKind, type TimelineHistoryMessage, type TimelineRole, type TimelineSource, type ToolState } from "./timeline-event-log.js";
|
|
2
|
+
import type { SourceCommit } from "./source-commit.js";
|
|
2
3
|
type TimelineBuilderBase = {
|
|
3
4
|
gatewayId: string;
|
|
4
5
|
sessionKey: string;
|
|
@@ -12,6 +13,9 @@ type TimelineTurnBase = TimelineBuilderBase & {
|
|
|
12
13
|
turnSeq?: number;
|
|
13
14
|
role?: TimelineRole;
|
|
14
15
|
source?: TimelineSource;
|
|
16
|
+
clientMessageId?: string;
|
|
17
|
+
idempotencyKey?: string;
|
|
18
|
+
sourceCommit?: SourceCommit;
|
|
15
19
|
};
|
|
16
20
|
type TimelineAttachmentInput = Record<string, unknown> & {
|
|
17
21
|
attachmentId: string;
|
|
@@ -47,6 +51,8 @@ export declare function buildMessagePartDeltaEvent(params: TimelineTurnBase & {
|
|
|
47
51
|
partKind?: string;
|
|
48
52
|
messageId?: string;
|
|
49
53
|
partId?: string;
|
|
54
|
+
timelineItemKind?: TimelineItemKind;
|
|
55
|
+
timelineResolvesWaiting?: boolean;
|
|
50
56
|
content: TimelineContentBlock[];
|
|
51
57
|
}): CanonicalTimelineEvent;
|
|
52
58
|
export declare function buildMessageCompletedEvent(params: TimelineTurnBase & {
|