clawconnect-agent 0.1.7 → 0.1.8
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 +62 -30
- package/README.zh-CN.md +62 -30
- package/dist/commands/pair.d.ts +4 -0
- package/dist/commands/pair.js +63 -6
- package/dist/commands/pair.js.map +1 -1
- package/dist/commands/run.js +1 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/send-file.d.ts +2 -25
- package/dist/commands/send-file.js +22 -455
- package/dist/commands/send-file.js.map +1 -1
- package/dist/core/command-types.d.ts +18 -0
- package/dist/core/command-types.js +2 -0
- package/dist/core/command-types.js.map +1 -0
- package/dist/core/relay/attachment-staging.js.map +1 -0
- package/dist/{relay → core/relay}/chat-payload.js +17 -3
- package/dist/core/relay/chat-payload.js.map +1 -0
- package/dist/{commands/send-file-utils.js → core/relay/file-upload-utils.js} +1 -1
- package/dist/core/relay/file-upload-utils.js.map +1 -0
- package/dist/core/relay/file-upload.d.ts +40 -0
- package/dist/core/relay/file-upload.js +401 -0
- package/dist/core/relay/file-upload.js.map +1 -0
- package/dist/core/relay/mobile-chat-run-bridge.d.ts +201 -0
- package/dist/core/relay/mobile-chat-run-bridge.js +192 -0
- package/dist/core/relay/mobile-chat-run-bridge.js.map +1 -0
- package/dist/core/relay/office-payload.js.map +1 -0
- package/dist/core/relay/reconnect.js.map +1 -0
- package/dist/core/relay/relay-server-connection.d.ts +6 -0
- package/dist/core/relay/relay-server-connection.js +32 -0
- package/dist/core/relay/relay-server-connection.js.map +1 -0
- package/dist/{relay/slash-command-catalog.d.ts → core/relay/slash-command-types.d.ts} +0 -1
- package/dist/core/relay/slash-command-types.js +2 -0
- package/dist/core/relay/slash-command-types.js.map +1 -0
- package/dist/core/relay/timeline-event-builder.d.ts +86 -0
- package/dist/core/relay/timeline-event-builder.js +199 -0
- package/dist/core/relay/timeline-event-builder.js.map +1 -0
- package/dist/core/relay/timeline-event-log.d.ts +81 -0
- package/dist/core/relay/timeline-event-log.js +254 -0
- package/dist/core/relay/timeline-event-log.js.map +1 -0
- package/dist/{relay → core/relay}/voice-input.js +5 -3
- package/dist/core/relay/voice-input.js.map +1 -0
- package/dist/hermes/hermes-relay-manager.d.ts +14 -4
- package/dist/hermes/hermes-relay-manager.js +159 -41
- package/dist/hermes/hermes-relay-manager.js.map +1 -1
- package/dist/hermes/hermes-runtime.d.ts +9 -8
- package/dist/hermes/hermes-runtime.js +8 -7
- package/dist/hermes/hermes-runtime.js.map +1 -1
- package/dist/hermes/hermes-session-store.js +52 -30
- package/dist/hermes/hermes-session-store.js.map +1 -1
- package/dist/hermes/hermes-voice-input.js +1 -1
- package/dist/hermes/hermes-voice-input.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-artifacts.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-backups.d.ts +1 -1
- package/dist/hermes/runtime/hermes-runtime-backups.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-chat.d.ts +2 -1
- package/dist/hermes/{models → runtime}/hermes-runtime-chat.js +127 -27
- package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-command-router.d.ts +1 -1
- package/dist/hermes/{models → runtime}/hermes-runtime-command-router.js +3 -0
- package/dist/hermes/runtime/hermes-runtime-command-router.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-command-utils.d.ts +1 -1
- package/dist/hermes/runtime/hermes-runtime-command-utils.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-cron.d.ts +1 -1
- package/dist/hermes/runtime/hermes-runtime-cron.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-history.d.ts +2 -0
- package/dist/hermes/runtime/hermes-runtime-history.js +249 -0
- package/dist/hermes/runtime/hermes-runtime-history.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-lifecycle.d.ts +1 -1
- package/dist/hermes/runtime/hermes-runtime-lifecycle.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-models.d.ts +1 -1
- package/dist/hermes/runtime/hermes-runtime-models.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-process.d.ts +2 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-process.js +19 -2
- package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-sessions.d.ts +1 -1
- package/dist/hermes/{models → runtime}/hermes-runtime-sessions.js +26 -9
- package/dist/hermes/runtime/hermes-runtime-sessions.js.map +1 -0
- package/dist/hermes/{models → runtime}/hermes-runtime-skills.d.ts +1 -1
- package/dist/hermes/runtime/hermes-runtime-skills.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-types.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-usage.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-values.js.map +1 -0
- package/dist/openclaw/backups/backup-manager.js.map +1 -0
- package/dist/{commands → openclaw/config}/provider-config.js +1 -1
- package/dist/openclaw/config/provider-config.js.map +1 -0
- package/dist/openclaw/config/provider-registry.js.map +1 -0
- package/dist/openclaw/gateway-client.js.map +1 -0
- package/dist/{commands → openclaw/handlers}/local-handlers.d.ts +1 -1
- package/dist/{commands → openclaw/handlers}/local-handlers.js +2 -2
- package/dist/openclaw/handlers/local-handlers.js.map +1 -0
- package/dist/{commands → openclaw/handlers}/provider-handlers.d.ts +1 -1
- package/dist/{commands → openclaw/handlers}/provider-handlers.js +3 -3
- package/dist/openclaw/handlers/provider-handlers.js.map +1 -0
- package/dist/openclaw/relay/chat-history.d.ts +51 -0
- package/dist/openclaw/relay/chat-history.js +347 -0
- package/dist/openclaw/relay/chat-history.js.map +1 -0
- package/dist/{relay → openclaw/relay}/chat-send-attachments.js +12 -1
- package/dist/openclaw/relay/chat-send-attachments.js.map +1 -0
- package/dist/{relay → openclaw/relay}/openclaw-voice-input.js +1 -1
- package/dist/openclaw/relay/openclaw-voice-input.js.map +1 -0
- package/dist/openclaw/relay/outgoing-media-relay.d.ts +11 -0
- package/dist/openclaw/relay/outgoing-media-relay.js +120 -0
- package/dist/openclaw/relay/outgoing-media-relay.js.map +1 -0
- package/dist/{relay → openclaw/relay}/session-context.d.ts +6 -0
- package/dist/{relay → openclaw/relay}/session-context.js +42 -2
- package/dist/openclaw/relay/session-context.js.map +1 -0
- package/dist/openclaw/relay/slash-command-catalog.d.ts +2 -0
- package/dist/openclaw/relay/slash-command-catalog.generated.js.map +1 -0
- package/dist/openclaw/relay/slash-command-catalog.js.map +1 -0
- package/dist/openclaw/relay/transcript-dedupe.d.ts +21 -0
- package/dist/openclaw/relay/transcript-dedupe.js +211 -0
- package/dist/openclaw/relay/transcript-dedupe.js.map +1 -0
- package/dist/{relay → openclaw}/relay-manager.d.ts +1 -1
- package/dist/{relay → openclaw}/relay-manager.js +373 -99
- package/dist/openclaw/relay-manager.js.map +1 -0
- package/dist/{commands → openclaw/runtime}/local-runtime.d.ts +1 -17
- package/dist/openclaw/runtime/local-runtime.js.map +1 -0
- package/dist/openclaw/session-store.d.ts +1 -0
- package/dist/openclaw/session-store.js +70 -0
- package/dist/openclaw/session-store.js.map +1 -0
- package/dist/runtime-adapters.js +1 -1
- package/dist/runtime-adapters.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/backup-manager.js.map +0 -1
- package/dist/commands/local-handlers.js.map +0 -1
- package/dist/commands/local-runtime.js.map +0 -1
- package/dist/commands/provider-config.js.map +0 -1
- package/dist/commands/provider-handlers.js.map +0 -1
- package/dist/commands/provider-registry.js.map +0 -1
- package/dist/commands/send-file-utils.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-artifacts.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-backups.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-chat.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-command-router.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-command-utils.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-cron.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-lifecycle.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-models.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-process.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-sessions.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-skills.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-types.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-usage.js.map +0 -1
- package/dist/hermes/models/hermes-runtime-values.js.map +0 -1
- package/dist/relay/attachment-staging.js.map +0 -1
- package/dist/relay/chat-history.d.ts +0 -29
- package/dist/relay/chat-history.js +0 -87
- package/dist/relay/chat-history.js.map +0 -1
- package/dist/relay/chat-payload.js.map +0 -1
- package/dist/relay/chat-send-attachments.js.map +0 -1
- package/dist/relay/gateway-client.js.map +0 -1
- package/dist/relay/mobile-chat-run-bridge.d.ts +0 -93
- package/dist/relay/mobile-chat-run-bridge.js +0 -68
- package/dist/relay/mobile-chat-run-bridge.js.map +0 -1
- package/dist/relay/office-payload.js.map +0 -1
- package/dist/relay/openclaw-voice-input.js.map +0 -1
- package/dist/relay/reconnect.js.map +0 -1
- package/dist/relay/relay-manager.js.map +0 -1
- package/dist/relay/session-context.js.map +0 -1
- package/dist/relay/slash-command-catalog.generated.js.map +0 -1
- package/dist/relay/slash-command-catalog.js.map +0 -1
- package/dist/relay/voice-input.js.map +0 -1
- /package/dist/{relay → core/relay}/attachment-staging.d.ts +0 -0
- /package/dist/{relay → core/relay}/attachment-staging.js +0 -0
- /package/dist/{relay → core/relay}/chat-payload.d.ts +0 -0
- /package/dist/{commands/send-file-utils.d.ts → core/relay/file-upload-utils.d.ts} +0 -0
- /package/dist/{relay → core/relay}/office-payload.d.ts +0 -0
- /package/dist/{relay → core/relay}/office-payload.js +0 -0
- /package/dist/{relay → core/relay}/reconnect.d.ts +0 -0
- /package/dist/{relay → core/relay}/reconnect.js +0 -0
- /package/dist/{relay → core/relay}/voice-input.d.ts +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-artifacts.d.ts +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-artifacts.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-backups.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-command-utils.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-cron.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-lifecycle.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-models.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-skills.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-types.d.ts +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-types.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-usage.d.ts +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-usage.js +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-values.d.ts +0 -0
- /package/dist/hermes/{models → runtime}/hermes-runtime-values.js +0 -0
- /package/dist/{commands → openclaw/backups}/backup-manager.d.ts +0 -0
- /package/dist/{commands → openclaw/backups}/backup-manager.js +0 -0
- /package/dist/{commands → openclaw/config}/provider-config.d.ts +0 -0
- /package/dist/{commands → openclaw/config}/provider-registry.d.ts +0 -0
- /package/dist/{commands → openclaw/config}/provider-registry.js +0 -0
- /package/dist/{relay → openclaw}/gateway-client.d.ts +0 -0
- /package/dist/{relay → openclaw}/gateway-client.js +0 -0
- /package/dist/{relay → openclaw/relay}/chat-send-attachments.d.ts +0 -0
- /package/dist/{relay → openclaw/relay}/openclaw-voice-input.d.ts +0 -0
- /package/dist/{relay → openclaw/relay}/slash-command-catalog.generated.d.ts +0 -0
- /package/dist/{relay → openclaw/relay}/slash-command-catalog.generated.js +0 -0
- /package/dist/{relay → openclaw/relay}/slash-command-catalog.js +0 -0
- /package/dist/{commands → openclaw/runtime}/local-runtime.js +0 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { buildMessageCompletedEvent, buildMessagePartDeltaEvent, buildRunAbortedEvent, buildRunCompletedEvent, buildRunErrorEvent, } from "./timeline-event-builder.js";
|
|
2
|
+
const PROTOCOL_TYPING_MARKER = "[[clawlink:typing]]";
|
|
3
|
+
const COMMAND_DENIED_TIMEOUT_MESSAGE = "Timeout – denying command";
|
|
4
|
+
const protocolTypingMarkerRegex = /^(?:\[\[clawlink:typing]]\s*)+$/;
|
|
5
|
+
const hermesCommandDeniedTimeoutRegex = /\bTimeout\b\s*[–—-]\s*denying command\b/i;
|
|
6
|
+
function nonEmpty(value) {
|
|
7
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
8
|
+
}
|
|
9
|
+
function timelineTextContent(event) {
|
|
10
|
+
const firstText = event.content.find((block) => block.type === "text" && typeof block.text === "string");
|
|
11
|
+
return typeof firstText?.text === "string" ? firstText.text : "";
|
|
12
|
+
}
|
|
13
|
+
export function resolveMobileChatRun(params) {
|
|
14
|
+
return {
|
|
15
|
+
runId: nonEmpty(params.preferredRunId) ?? nonEmpty(params.requestId) ?? `${params.fallbackPrefix}-${Date.now()}`,
|
|
16
|
+
sessionKey: nonEmpty(params.sessionKey) ?? "main",
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function isCanonicalMobileChatControlError(text) {
|
|
20
|
+
return text
|
|
21
|
+
.split(/\r?\n|\r/)
|
|
22
|
+
.some((line) => hermesCommandDeniedTimeoutRegex.test(line.trim()));
|
|
23
|
+
}
|
|
24
|
+
export function canonicalizeMobileAssistantText(text, options = {}) {
|
|
25
|
+
if (isCanonicalMobileChatControlError(text)) {
|
|
26
|
+
return {
|
|
27
|
+
text: "",
|
|
28
|
+
shouldPublish: false,
|
|
29
|
+
controlError: COMMAND_DENIED_TIMEOUT_MESSAGE,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const lines = text.split(/\r?\n|\r/);
|
|
33
|
+
const stripped = lines
|
|
34
|
+
.filter((line) => {
|
|
35
|
+
const trimmed = line.trim();
|
|
36
|
+
return !/^\s*↻?\s*Resumed session\b/i.test(trimmed)
|
|
37
|
+
&& !/^session_id:\s*\S+/i.test(trimmed)
|
|
38
|
+
&& !/^Error:\s*'NoneType'\s+object\s+is\s+not\s+iterable\s*$/i.test(trimmed);
|
|
39
|
+
})
|
|
40
|
+
.join("\n")
|
|
41
|
+
.replace(/\n{3,}/g, "\n\n");
|
|
42
|
+
const trimmed = stripped.trim();
|
|
43
|
+
if (!trimmed || trimmed === PROTOCOL_TYPING_MARKER || protocolTypingMarkerRegex.test(trimmed)) {
|
|
44
|
+
return { text: "", shouldPublish: false };
|
|
45
|
+
}
|
|
46
|
+
return { text: options.preserveWhitespace ? stripped : trimmed, shouldPublish: true };
|
|
47
|
+
}
|
|
48
|
+
export function buildCanonicalMobileAssistantDeltaPayload(params) {
|
|
49
|
+
const timelineEvent = buildMessagePartDeltaEvent({
|
|
50
|
+
gatewayId: "clawconnect",
|
|
51
|
+
sessionKey: params.run.sessionKey,
|
|
52
|
+
turnId: params.run.runId,
|
|
53
|
+
runId: params.run.runId,
|
|
54
|
+
role: "assistant",
|
|
55
|
+
seq: params.seq,
|
|
56
|
+
turnSeq: params.seq,
|
|
57
|
+
now: () => new Date(params.timestampMs),
|
|
58
|
+
content: [{ type: "text", text: params.delta }],
|
|
59
|
+
});
|
|
60
|
+
const text = timelineTextContent(timelineEvent);
|
|
61
|
+
return {
|
|
62
|
+
runId: params.run.runId,
|
|
63
|
+
sessionKey: params.run.sessionKey,
|
|
64
|
+
state: "delta",
|
|
65
|
+
role: "assistant",
|
|
66
|
+
seq: params.seq,
|
|
67
|
+
ts: params.timestampMs,
|
|
68
|
+
delta: text,
|
|
69
|
+
message: {
|
|
70
|
+
role: "assistant",
|
|
71
|
+
timestamp: params.timestampMs,
|
|
72
|
+
content: [{ type: "text", text }],
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function buildMobileAssistantDeltaPayload(params) {
|
|
77
|
+
return buildCanonicalMobileAssistantDeltaPayload(params);
|
|
78
|
+
}
|
|
79
|
+
export function buildCanonicalMobileAssistantStreamingPayload(params) {
|
|
80
|
+
const timelineEvent = buildMessagePartDeltaEvent({
|
|
81
|
+
gatewayId: "clawconnect",
|
|
82
|
+
sessionKey: params.run.sessionKey,
|
|
83
|
+
turnId: params.run.runId,
|
|
84
|
+
runId: params.run.runId,
|
|
85
|
+
role: "assistant",
|
|
86
|
+
seq: params.seq,
|
|
87
|
+
turnSeq: params.seq,
|
|
88
|
+
content: [{ type: "text", text: params.text }],
|
|
89
|
+
});
|
|
90
|
+
const text = timelineTextContent(timelineEvent);
|
|
91
|
+
return {
|
|
92
|
+
runId: params.run.runId,
|
|
93
|
+
sessionKey: params.run.sessionKey,
|
|
94
|
+
state: "streaming",
|
|
95
|
+
role: "assistant",
|
|
96
|
+
...(params.seq !== undefined ? { seq: params.seq } : {}),
|
|
97
|
+
message: {
|
|
98
|
+
role: "assistant",
|
|
99
|
+
content: [{ type: "text", text }],
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export function buildMobileAssistantStreamingPayload(params) {
|
|
104
|
+
return buildCanonicalMobileAssistantStreamingPayload(params);
|
|
105
|
+
}
|
|
106
|
+
export function buildCanonicalMobileAssistantFinalPayload(params) {
|
|
107
|
+
const timelineEvent = buildMessageCompletedEvent({
|
|
108
|
+
gatewayId: "clawconnect",
|
|
109
|
+
sessionKey: params.run.sessionKey,
|
|
110
|
+
turnId: params.run.runId,
|
|
111
|
+
runId: params.run.runId,
|
|
112
|
+
role: "assistant",
|
|
113
|
+
content: [{ type: "text", text: params.text }],
|
|
114
|
+
});
|
|
115
|
+
const text = timelineTextContent(timelineEvent);
|
|
116
|
+
return {
|
|
117
|
+
runId: params.run.runId,
|
|
118
|
+
sessionKey: params.run.sessionKey,
|
|
119
|
+
state: "final",
|
|
120
|
+
role: "assistant",
|
|
121
|
+
...(params.currentModel !== undefined ? { currentModel: params.currentModel } : {}),
|
|
122
|
+
...(params.provider !== undefined ? { provider: params.provider } : {}),
|
|
123
|
+
...(params.contextUsage !== undefined ? { contextUsage: params.contextUsage } : {}),
|
|
124
|
+
...(params.contextLimit !== undefined ? { contextLimit: params.contextLimit } : {}),
|
|
125
|
+
message: {
|
|
126
|
+
role: "assistant",
|
|
127
|
+
content: [{ type: "text", text }],
|
|
128
|
+
},
|
|
129
|
+
...(params.includeTimelineEvents
|
|
130
|
+
? {
|
|
131
|
+
timelineEvents: [
|
|
132
|
+
timelineEvent,
|
|
133
|
+
buildRunCompletedEvent({
|
|
134
|
+
gatewayId: "clawconnect",
|
|
135
|
+
sessionKey: params.run.sessionKey,
|
|
136
|
+
turnId: params.run.runId,
|
|
137
|
+
runId: params.run.runId,
|
|
138
|
+
role: "assistant",
|
|
139
|
+
}),
|
|
140
|
+
],
|
|
141
|
+
}
|
|
142
|
+
: {}),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
export function buildMobileAssistantFinalPayload(params) {
|
|
146
|
+
return buildCanonicalMobileAssistantFinalPayload(params);
|
|
147
|
+
}
|
|
148
|
+
export function buildCanonicalMobileAssistantErrorPayload(params) {
|
|
149
|
+
const timelineEvent = buildRunErrorEvent({
|
|
150
|
+
gatewayId: "clawconnect",
|
|
151
|
+
sessionKey: params.run.sessionKey,
|
|
152
|
+
turnId: params.run.runId,
|
|
153
|
+
runId: params.run.runId,
|
|
154
|
+
role: "assistant",
|
|
155
|
+
userMessage: params.errorMessage,
|
|
156
|
+
});
|
|
157
|
+
const errorMessage = timelineEvent.error?.userMessage ?? params.errorMessage;
|
|
158
|
+
return {
|
|
159
|
+
runId: params.run.runId,
|
|
160
|
+
sessionKey: params.run.sessionKey,
|
|
161
|
+
state: "error",
|
|
162
|
+
role: "assistant",
|
|
163
|
+
errorMessage,
|
|
164
|
+
message: {
|
|
165
|
+
role: "assistant",
|
|
166
|
+
content: [{ type: "text", text: errorMessage }],
|
|
167
|
+
},
|
|
168
|
+
...(params.includeTimelineEvents ? { timelineEvents: [timelineEvent] } : {}),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
export function buildMobileAssistantErrorPayload(params) {
|
|
172
|
+
return buildCanonicalMobileAssistantErrorPayload(params);
|
|
173
|
+
}
|
|
174
|
+
export function buildMobileAssistantAbortedPayload(params) {
|
|
175
|
+
const timelineEvent = buildRunAbortedEvent({
|
|
176
|
+
gatewayId: "clawconnect",
|
|
177
|
+
sessionKey: params.run.sessionKey,
|
|
178
|
+
turnId: params.run.runId,
|
|
179
|
+
runId: params.run.runId,
|
|
180
|
+
role: "assistant",
|
|
181
|
+
userMessage: params.userMessage,
|
|
182
|
+
});
|
|
183
|
+
return {
|
|
184
|
+
runId: params.run.runId,
|
|
185
|
+
sessionKey: params.run.sessionKey,
|
|
186
|
+
state: "aborted",
|
|
187
|
+
role: "assistant",
|
|
188
|
+
...(params.userMessage ? { errorMessage: params.userMessage } : {}),
|
|
189
|
+
...(params.includeTimelineEvents ? { timelineEvents: [timelineEvent] } : {}),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=mobile-chat-run-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"office-payload.js","sourceRoot":"","sources":["../../../src/core/relay/office-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../../src/core/relay/reconnect.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAA+B,EAC/B,OAAyB,EAAE;IAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,YAAY,CAAC;IAEzB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,MAAM,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW;YAAE,MAAM;QAExB,OAAO,EAAE,CAAC;QACV,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WebSocket, type RawData } from "ws";
|
|
2
|
+
export declare function buildRelayUrl(serverUrl: string, gatewayId: string, relaySecret: string): string;
|
|
3
|
+
export declare function sendRelayJson(ws: WebSocket, message: unknown): void;
|
|
4
|
+
export declare function parseRelayFrame<T>(raw: RawData): T | undefined;
|
|
5
|
+
export declare function bindRelayAbortSignal(ws: WebSocket, signal?: AbortSignal): void;
|
|
6
|
+
export declare function shouldRetryRelayClose(code: number, signal?: AbortSignal): boolean;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { WebSocket } from "ws";
|
|
2
|
+
export function buildRelayUrl(serverUrl, gatewayId, relaySecret) {
|
|
3
|
+
const base = serverUrl.replace(/\/+$/, "").replace(/^http/, "ws");
|
|
4
|
+
return `${base}/relay/${gatewayId}?secret=${encodeURIComponent(relaySecret)}`;
|
|
5
|
+
}
|
|
6
|
+
export function sendRelayJson(ws, message) {
|
|
7
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
8
|
+
ws.send(JSON.stringify(message));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function parseRelayFrame(raw) {
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(raw.toString());
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function bindRelayAbortSignal(ws, signal) {
|
|
20
|
+
if (!signal) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (signal.aborted) {
|
|
24
|
+
ws.close(1001, "shutdown");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
signal.addEventListener("abort", () => ws.close(1001, "shutdown"), { once: true });
|
|
28
|
+
}
|
|
29
|
+
export function shouldRetryRelayClose(code, signal) {
|
|
30
|
+
return !(signal?.aborted || code === 4000);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=relay-server-connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-server-connection.js","sourceRoot":"","sources":["../../../src/core/relay/relay-server-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,IAAI,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,WAAmB;IACrF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,OAAO,GAAG,IAAI,UAAU,SAAS,WAAW,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAa,EAAE,OAAgB;IAC3D,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAM,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAa,EAAE,MAAoB;IACtE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,MAAoB;IACtE,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash-command-types.js","sourceRoot":"","sources":["../../../src/core/relay/slash-command-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { type AttachmentState, type CanonicalTimelineEvent, type CanonicalTimelineHistorySnapshotPage, type TimelineContentBlock, type TimelineHistoryMessage, type TimelineRole, type TimelineSource, type ToolState } from "./timeline-event-log.js";
|
|
2
|
+
type TimelineBuilderBase = {
|
|
3
|
+
gatewayId: string;
|
|
4
|
+
sessionKey: string;
|
|
5
|
+
now?: () => Date;
|
|
6
|
+
idFactory?: (prefix: string) => string;
|
|
7
|
+
};
|
|
8
|
+
type TimelineTurnBase = TimelineBuilderBase & {
|
|
9
|
+
turnId: string;
|
|
10
|
+
runId: string;
|
|
11
|
+
seq?: number;
|
|
12
|
+
turnSeq?: number;
|
|
13
|
+
role?: TimelineRole;
|
|
14
|
+
source?: TimelineSource;
|
|
15
|
+
};
|
|
16
|
+
type TimelineAttachmentInput = Record<string, unknown> & {
|
|
17
|
+
attachmentId: string;
|
|
18
|
+
state: AttachmentState;
|
|
19
|
+
};
|
|
20
|
+
export declare function createTimelineSequenceSource(params?: {
|
|
21
|
+
nowMs?: () => number;
|
|
22
|
+
}): {
|
|
23
|
+
next(gatewayId: string, sessionKey: string): number;
|
|
24
|
+
};
|
|
25
|
+
export declare function derivePartId(params: {
|
|
26
|
+
type?: string;
|
|
27
|
+
index?: number;
|
|
28
|
+
}): string;
|
|
29
|
+
export declare function deriveAttachmentId(params: {
|
|
30
|
+
sessionKey: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
mimeType?: string;
|
|
33
|
+
size?: number;
|
|
34
|
+
url?: string;
|
|
35
|
+
contentHash?: string;
|
|
36
|
+
}): string;
|
|
37
|
+
export declare function buildTurnUserCreatedEvent(params: TimelineBuilderBase & {
|
|
38
|
+
idempotencyKey?: string;
|
|
39
|
+
requestId?: string;
|
|
40
|
+
turnId?: string;
|
|
41
|
+
runId?: string;
|
|
42
|
+
text: string;
|
|
43
|
+
seq?: number;
|
|
44
|
+
}): CanonicalTimelineEvent;
|
|
45
|
+
export declare function buildMessagePartDeltaEvent(params: TimelineTurnBase & {
|
|
46
|
+
role: TimelineRole;
|
|
47
|
+
partKind?: string;
|
|
48
|
+
messageId?: string;
|
|
49
|
+
partId?: string;
|
|
50
|
+
content: TimelineContentBlock[];
|
|
51
|
+
}): CanonicalTimelineEvent;
|
|
52
|
+
export declare function buildMessageCompletedEvent(params: TimelineTurnBase & {
|
|
53
|
+
role: TimelineRole;
|
|
54
|
+
messageId?: string;
|
|
55
|
+
partId?: string;
|
|
56
|
+
content: TimelineContentBlock[];
|
|
57
|
+
}): CanonicalTimelineEvent;
|
|
58
|
+
export declare function buildRunCompletedEvent(params: TimelineTurnBase): CanonicalTimelineEvent;
|
|
59
|
+
export declare function buildRunErrorEvent(params: TimelineTurnBase & {
|
|
60
|
+
userMessage: string;
|
|
61
|
+
code?: string;
|
|
62
|
+
}): CanonicalTimelineEvent;
|
|
63
|
+
export declare function buildRunAbortedEvent(params: TimelineTurnBase & {
|
|
64
|
+
userMessage?: string;
|
|
65
|
+
}): CanonicalTimelineEvent;
|
|
66
|
+
export declare function buildAttachmentStateChangedEvent(params: TimelineTurnBase & {
|
|
67
|
+
messageId: string;
|
|
68
|
+
partId: string;
|
|
69
|
+
attachment: TimelineAttachmentInput;
|
|
70
|
+
}): CanonicalTimelineEvent;
|
|
71
|
+
export declare function buildToolInvocationUpdatedEvent(params: TimelineTurnBase & {
|
|
72
|
+
toolInvocationId: string;
|
|
73
|
+
toolState: ToolState;
|
|
74
|
+
content: TimelineContentBlock[];
|
|
75
|
+
}): CanonicalTimelineEvent;
|
|
76
|
+
export declare function buildHistorySnapshotPage(params: {
|
|
77
|
+
gatewayId: string;
|
|
78
|
+
sessionKey: string;
|
|
79
|
+
cursor?: string | null;
|
|
80
|
+
hasMore?: boolean;
|
|
81
|
+
nextCursor?: string | null;
|
|
82
|
+
newestCursor?: string | null;
|
|
83
|
+
messages?: TimelineHistoryMessage[];
|
|
84
|
+
attachments?: TimelineAttachmentInput[];
|
|
85
|
+
}): CanonicalTimelineHistorySnapshotPage;
|
|
86
|
+
export {};
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import { canonicalizeMobileAssistantText } from "./mobile-chat-run-bridge.js";
|
|
3
|
+
import { parseCanonicalTimelineEvent, parseCanonicalTimelineHistorySnapshotPage, } from "./timeline-event-log.js";
|
|
4
|
+
const DEFAULT_TEXT_PART_ID = "part-text-1";
|
|
5
|
+
function nowDate(params) {
|
|
6
|
+
return params.now?.() ?? new Date();
|
|
7
|
+
}
|
|
8
|
+
function eventId(params, prefix = "evt") {
|
|
9
|
+
return params.idFactory?.(prefix) ?? `${prefix}_${Date.now().toString(36)}_${randomUUID()}`;
|
|
10
|
+
}
|
|
11
|
+
function createdAt(params) {
|
|
12
|
+
return nowDate(params).toISOString();
|
|
13
|
+
}
|
|
14
|
+
function defaultSeq(params) {
|
|
15
|
+
return nowDate(params).getTime() * 1_000;
|
|
16
|
+
}
|
|
17
|
+
function messageId(role, turnId, provided) {
|
|
18
|
+
return provided && provided.trim().length > 0 ? provided.trim() : `${role}-${turnId}`;
|
|
19
|
+
}
|
|
20
|
+
function sanitizeContent(content) {
|
|
21
|
+
return content.map((block) => {
|
|
22
|
+
if (block.type !== "text" || typeof block.text !== "string") {
|
|
23
|
+
return { ...block };
|
|
24
|
+
}
|
|
25
|
+
const canonical = canonicalizeMobileAssistantText(block.text, { preserveWhitespace: true });
|
|
26
|
+
return { ...block, text: canonical.text };
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function buildEvent(params) {
|
|
30
|
+
const role = params.role ?? "assistant";
|
|
31
|
+
return parseCanonicalTimelineEvent({
|
|
32
|
+
protocolVersion: 2,
|
|
33
|
+
eventId: eventId(params),
|
|
34
|
+
eventType: params.eventType,
|
|
35
|
+
gatewayId: params.gatewayId,
|
|
36
|
+
sessionKey: params.sessionKey,
|
|
37
|
+
turnId: params.turnId,
|
|
38
|
+
runId: params.runId,
|
|
39
|
+
messageId: messageId(role, params.turnId, params.messageId),
|
|
40
|
+
partId: params.partId ?? DEFAULT_TEXT_PART_ID,
|
|
41
|
+
attachmentId: params.attachmentId ?? null,
|
|
42
|
+
seq: params.seq ?? defaultSeq(params),
|
|
43
|
+
turnSeq: params.turnSeq ?? 1,
|
|
44
|
+
role,
|
|
45
|
+
messageState: params.messageState,
|
|
46
|
+
runState: params.runState,
|
|
47
|
+
createdAt: createdAt(params),
|
|
48
|
+
source: params.source ?? "live",
|
|
49
|
+
content: sanitizeContent(params.content ?? []),
|
|
50
|
+
attachment: params.attachment ?? null,
|
|
51
|
+
error: params.error ?? null,
|
|
52
|
+
...(params.toolInvocationId ? { toolInvocationId: params.toolInvocationId } : {}),
|
|
53
|
+
...(params.toolState ? { toolState: params.toolState } : {}),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export function createTimelineSequenceSource(params = {}) {
|
|
57
|
+
const lastByScope = new Map();
|
|
58
|
+
const nowMs = params.nowMs ?? (() => Date.now());
|
|
59
|
+
return {
|
|
60
|
+
next(gatewayId, sessionKey) {
|
|
61
|
+
const scope = `${gatewayId}\u0000${sessionKey}`;
|
|
62
|
+
const base = nowMs() * 1_000;
|
|
63
|
+
const previous = lastByScope.get(scope);
|
|
64
|
+
const next = previous === undefined ? base : Math.max(base, previous + 1);
|
|
65
|
+
lastByScope.set(scope, next);
|
|
66
|
+
return next;
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function derivePartId(params) {
|
|
71
|
+
const type = params.type && params.type.trim().length > 0 ? params.type.trim() : "text";
|
|
72
|
+
const index = params.index ?? 0;
|
|
73
|
+
return `part-${type}-${index + 1}`;
|
|
74
|
+
}
|
|
75
|
+
export function deriveAttachmentId(params) {
|
|
76
|
+
const stable = [
|
|
77
|
+
params.sessionKey,
|
|
78
|
+
params.contentHash ?? "",
|
|
79
|
+
params.name ?? "",
|
|
80
|
+
params.mimeType ?? "",
|
|
81
|
+
params.size ?? "",
|
|
82
|
+
params.url ?? "",
|
|
83
|
+
].join("\u0000");
|
|
84
|
+
const digest = createHash("sha256").update(stable).digest("hex").slice(0, 16);
|
|
85
|
+
return `att_${digest}`;
|
|
86
|
+
}
|
|
87
|
+
export function buildTurnUserCreatedEvent(params) {
|
|
88
|
+
const turnId = params.turnId ?? params.idempotencyKey ?? params.requestId ?? `turn-${randomUUID()}`;
|
|
89
|
+
const runId = params.runId ?? turnId;
|
|
90
|
+
return buildEvent({
|
|
91
|
+
...params,
|
|
92
|
+
turnId,
|
|
93
|
+
runId,
|
|
94
|
+
role: "user",
|
|
95
|
+
eventType: "turn.user.created",
|
|
96
|
+
messageState: "completed",
|
|
97
|
+
runState: "active",
|
|
98
|
+
messageId: messageId("user", turnId),
|
|
99
|
+
content: [{ type: "text", text: params.text }],
|
|
100
|
+
source: "local",
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
export function buildMessagePartDeltaEvent(params) {
|
|
104
|
+
return buildEvent({
|
|
105
|
+
...params,
|
|
106
|
+
eventType: "message.part.delta",
|
|
107
|
+
messageId: params.messageId,
|
|
108
|
+
partId: params.partId ?? derivePartId({ type: params.partKind ?? "text", index: 0 }),
|
|
109
|
+
messageState: "streaming",
|
|
110
|
+
runState: "active",
|
|
111
|
+
content: params.content,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
export function buildMessageCompletedEvent(params) {
|
|
115
|
+
return buildEvent({
|
|
116
|
+
...params,
|
|
117
|
+
eventType: "message.completed",
|
|
118
|
+
messageState: "completed",
|
|
119
|
+
runState: "active",
|
|
120
|
+
content: params.content,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export function buildRunCompletedEvent(params) {
|
|
124
|
+
return buildEvent({
|
|
125
|
+
...params,
|
|
126
|
+
eventType: "run.completed",
|
|
127
|
+
partId: "run-state",
|
|
128
|
+
messageState: "completed",
|
|
129
|
+
runState: "completed",
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
export function buildRunErrorEvent(params) {
|
|
133
|
+
return buildEvent({
|
|
134
|
+
...params,
|
|
135
|
+
eventType: "run.failed",
|
|
136
|
+
partId: "run-state",
|
|
137
|
+
messageState: "failed",
|
|
138
|
+
runState: "failed",
|
|
139
|
+
error: {
|
|
140
|
+
userMessage: params.userMessage,
|
|
141
|
+
...(params.code ? { code: params.code } : {}),
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
export function buildRunAbortedEvent(params) {
|
|
146
|
+
return buildEvent({
|
|
147
|
+
...params,
|
|
148
|
+
eventType: "run.aborted",
|
|
149
|
+
partId: "run-state",
|
|
150
|
+
messageState: "aborted",
|
|
151
|
+
runState: "aborted",
|
|
152
|
+
error: params.userMessage ? { userMessage: params.userMessage } : null,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
export function buildAttachmentStateChangedEvent(params) {
|
|
156
|
+
return buildEvent({
|
|
157
|
+
...params,
|
|
158
|
+
eventType: "attachment.state.changed",
|
|
159
|
+
messageState: "pending",
|
|
160
|
+
runState: "active",
|
|
161
|
+
attachmentId: params.attachment.attachmentId,
|
|
162
|
+
attachment: params.attachment,
|
|
163
|
+
content: [],
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
export function buildToolInvocationUpdatedEvent(params) {
|
|
167
|
+
return buildEvent({
|
|
168
|
+
...params,
|
|
169
|
+
role: "tool",
|
|
170
|
+
eventType: "tool.invocation.updated",
|
|
171
|
+
messageId: messageId("tool", params.turnId),
|
|
172
|
+
partId: derivePartId({ type: "tool", index: 0 }),
|
|
173
|
+
messageState: ["denied", "success", "failed", "cancelled"].includes(params.toolState)
|
|
174
|
+
? "completed"
|
|
175
|
+
: "streaming",
|
|
176
|
+
runState: ["denied", "success", "failed", "cancelled"].includes(params.toolState)
|
|
177
|
+
? "inactive"
|
|
178
|
+
: "active",
|
|
179
|
+
toolInvocationId: params.toolInvocationId,
|
|
180
|
+
toolState: params.toolState,
|
|
181
|
+
content: params.content,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
export function buildHistorySnapshotPage(params) {
|
|
185
|
+
return parseCanonicalTimelineHistorySnapshotPage({
|
|
186
|
+
protocolVersion: 2,
|
|
187
|
+
eventType: "history.snapshot.page",
|
|
188
|
+
gatewayId: params.gatewayId,
|
|
189
|
+
sessionKey: params.sessionKey,
|
|
190
|
+
source: "history",
|
|
191
|
+
cursor: params.cursor ?? null,
|
|
192
|
+
hasMore: Boolean(params.hasMore),
|
|
193
|
+
nextCursor: params.nextCursor ?? null,
|
|
194
|
+
newestCursor: params.newestCursor ?? null,
|
|
195
|
+
messages: params.messages ?? [],
|
|
196
|
+
attachments: params.attachments ?? [],
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=timeline-event-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-event-builder.js","sourceRoot":"","sources":["../../../src/core/relay/timeline-event-builder.ts"],"names":[],"mappings":"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"}
|