@saleso.innovations/bridge 0.1.18 → 0.1.19
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 +1 -1
- package/dist/activeConversation.d.ts +3 -1
- package/dist/activeConversation.d.ts.map +1 -1
- package/dist/activeConversation.js +2 -2
- package/dist/cli.js +15 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -3
- package/dist/cronWatcher.d.ts.map +1 -1
- package/dist/cronWatcher.js +45 -31
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ This installs the latest package, refreshes the CLI symlink, and restarts `cleos
|
|
|
34
34
|
To pin a specific release (e.g. after a Cleos update):
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
curl -fsSL https://amicable-elephant-407.convex.site/update-bridge.sh | bash -s -- 0.1.
|
|
37
|
+
curl -fsSL https://amicable-elephant-407.convex.site/update-bridge.sh | bash -s -- 0.1.19
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
## Manual usage
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type SavedAgentCredentials } from "./credentials.js";
|
|
2
|
-
export declare function resolveActiveConversationId(credentials?: SavedAgentCredentials
|
|
2
|
+
export declare function resolveActiveConversationId(credentials?: SavedAgentCredentials, options?: {
|
|
3
|
+
forceRefresh?: boolean;
|
|
4
|
+
}): Promise<string>;
|
|
3
5
|
export declare function rememberConversationId(conversationId: string): void;
|
|
4
6
|
//# sourceMappingURL=activeConversation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activeConversation.d.ts","sourceRoot":"","sources":["../src/activeConversation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEjG,wBAAsB,2BAA2B,CAC/C,WAAW,CAAC,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"activeConversation.d.ts","sourceRoot":"","sources":["../src/activeConversation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEjG,wBAAsB,2BAA2B,CAC/C,WAAW,CAAC,EAAE,qBAAqB,EACnC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACvC,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAEnE"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { convexSiteUrlFromEnv } from "./resolve.js";
|
|
2
2
|
import { hashToken } from "./token.js";
|
|
3
3
|
import { loadCredentials, patchCredentials } from "./credentials.js";
|
|
4
|
-
export async function resolveActiveConversationId(credentials) {
|
|
4
|
+
export async function resolveActiveConversationId(credentials, options = {}) {
|
|
5
5
|
const resolved = credentials ?? loadCredentials();
|
|
6
6
|
if (!resolved) {
|
|
7
7
|
throw new Error("No saved Cleos agent credentials");
|
|
8
8
|
}
|
|
9
|
-
if (resolved.conversationId) {
|
|
9
|
+
if (resolved.conversationId && !options.forceRefresh) {
|
|
10
10
|
return resolved.conversationId;
|
|
11
11
|
}
|
|
12
12
|
const convexSiteUrl = resolved.convexSiteUrl ?? convexSiteUrlFromEnv();
|
package/dist/cli.js
CHANGED
|
@@ -81,6 +81,21 @@ async function main() {
|
|
|
81
81
|
}
|
|
82
82
|
const session = await reconnectHermesAgent({ onUserMessage });
|
|
83
83
|
try {
|
|
84
|
+
if (process.platform !== "win32") {
|
|
85
|
+
try {
|
|
86
|
+
const { execSync } = await import("node:child_process");
|
|
87
|
+
const active = execSync("systemctl is-active cleos-bridge.service", {
|
|
88
|
+
encoding: "utf8",
|
|
89
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
90
|
+
}).trim();
|
|
91
|
+
if (active === "active") {
|
|
92
|
+
console.error("Warning: cleos-bridge.service is running. Stop it first to avoid relay disconnects:\n systemctl stop cleos-bridge.service");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// systemctl unavailable or service not installed.
|
|
97
|
+
}
|
|
98
|
+
}
|
|
84
99
|
const summary = await backfillCronDeliveries(session, { reset });
|
|
85
100
|
console.log(JSON.stringify({ event: "cleos-bridge.cron-backfill.complete", ...summary }, null, 2));
|
|
86
101
|
if (summary.remainingCount > 0) {
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoC,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAYhG,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACrG,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,qBAAqB,EAAE,EACrC,wBAAwB,CAAC,EAAE,MAAM,KAC9B,IAAI,CAAC;IACV,MAAM,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -193,7 +193,8 @@ async function openAgentConnection(options) {
|
|
|
193
193
|
const resolveAck = requestId ? pendingAcks.get(requestId) : undefined;
|
|
194
194
|
if (resolveAck) {
|
|
195
195
|
pendingAcks.delete(requestId);
|
|
196
|
-
|
|
196
|
+
const message = typeof envelope.message === "string" ? envelope.message : undefined;
|
|
197
|
+
resolveAck(envelope.ok === true, message);
|
|
197
198
|
}
|
|
198
199
|
return;
|
|
199
200
|
}
|
|
@@ -262,13 +263,13 @@ async function openAgentConnection(options) {
|
|
|
262
263
|
pendingAcks.delete(messageId);
|
|
263
264
|
reject(new Error("Cron delivery ack timed out"));
|
|
264
265
|
}, CRON_DELIVERY_TIMEOUT_MS);
|
|
265
|
-
pendingAcks.set(messageId, (ok) => {
|
|
266
|
+
pendingAcks.set(messageId, (ok, failureMessage) => {
|
|
266
267
|
clearTimeout(timer);
|
|
267
268
|
if (ok) {
|
|
268
269
|
resolve();
|
|
269
270
|
return;
|
|
270
271
|
}
|
|
271
|
-
reject(new Error("Cron delivery persist failed"));
|
|
272
|
+
reject(new Error(failureMessage ?? "Cron delivery persist failed"));
|
|
272
273
|
});
|
|
273
274
|
sendCronResult(ws, options.agentId, messageId, content, meta);
|
|
274
275
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronWatcher.d.ts","sourceRoot":"","sources":["../src/cronWatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,eAAO,MAAM,sBAAsB,QAA+C,CAAC;AAEnF,eAAO,MAAM,oBAAoB,QAAmD,CAAC;AASrF,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAQhD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAGhE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAA+B,GAAG,MAAM,EAAE,CAoBtF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,GAAG,CAAC,MAAM,CAAwB,GAAG,MAAM,EAAE,CAE5F;
|
|
1
|
+
{"version":3,"file":"cronWatcher.d.ts","sourceRoot":"","sources":["../src/cronWatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,eAAO,MAAM,sBAAsB,QAA+C,CAAC;AAEnF,eAAO,MAAM,oBAAoB,QAAmD,CAAC;AASrF,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAQhD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAGhE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAA+B,GAAG,MAAM,EAAE,CAoBtF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,GAAG,CAAC,MAAM,CAAwB,GAAG,MAAM,EAAE,CAE5F;AA+JD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CA4BxE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1F,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAmBD"}
|
package/dist/cronWatcher.js
CHANGED
|
@@ -121,7 +121,7 @@ function sleep(ms) {
|
|
|
121
121
|
function isRelayNotOpenError(error) {
|
|
122
122
|
return error instanceof Error && error.message === "Cleos relay connection is not open";
|
|
123
123
|
}
|
|
124
|
-
async function deliverPendingFiles(session, delivered,
|
|
124
|
+
async function deliverPendingFiles(session, delivered, conversationRef, options) {
|
|
125
125
|
const jobNames = loadHermesCronJobs();
|
|
126
126
|
for (const filePath of listCronOutputFiles()) {
|
|
127
127
|
const key = relativeOutputKey(filePath);
|
|
@@ -136,30 +136,49 @@ async function deliverPendingFiles(session, delivered, conversationId, options)
|
|
|
136
136
|
writeDeliveredIndex(delivered);
|
|
137
137
|
continue;
|
|
138
138
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
139
|
+
let retriedAfterConversationRefresh = false;
|
|
140
|
+
let deliveredSuccessfully = false;
|
|
141
|
+
while (true) {
|
|
142
|
+
try {
|
|
143
|
+
await session.deliverCronResult(content, {
|
|
144
|
+
conversationId: conversationRef.value,
|
|
145
|
+
jobId,
|
|
146
|
+
jobName,
|
|
147
|
+
runAt: parseRunAtFromFileName(filePath),
|
|
148
|
+
});
|
|
149
|
+
deliveredSuccessfully = true;
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
if (isRelayNotOpenError(error)) {
|
|
154
|
+
console.log(JSON.stringify({
|
|
155
|
+
event: "cleos-bridge.cron-deferred",
|
|
156
|
+
file: key,
|
|
157
|
+
reason: "relay_not_open",
|
|
158
|
+
}));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
162
|
+
const shouldRefreshConversation = !retriedAfterConversationRefresh
|
|
163
|
+
&& (message.includes("Invalid relay message target")
|
|
164
|
+
|| message.includes("Active conversation")
|
|
165
|
+
|| message.includes("Cron delivery persist failed"));
|
|
166
|
+
if (shouldRefreshConversation) {
|
|
167
|
+
conversationRef.value = await resolveActiveConversationId(undefined, { forceRefresh: true });
|
|
168
|
+
retriedAfterConversationRefresh = true;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
options.onError?.(message);
|
|
172
|
+
console.error(JSON.stringify({
|
|
173
|
+
event: "cleos-bridge.cron-delivery-failed",
|
|
151
174
|
file: key,
|
|
152
|
-
|
|
175
|
+
message,
|
|
176
|
+
conversationId: conversationRef.value,
|
|
153
177
|
}));
|
|
154
|
-
|
|
178
|
+
break;
|
|
155
179
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
console.error(JSON.stringify({
|
|
159
|
-
event: "cleos-bridge.cron-delivery-failed",
|
|
160
|
-
file: key,
|
|
161
|
-
message,
|
|
162
|
-
}));
|
|
180
|
+
}
|
|
181
|
+
if (!deliveredSuccessfully) {
|
|
163
182
|
continue;
|
|
164
183
|
}
|
|
165
184
|
delivered.add(key);
|
|
@@ -182,10 +201,8 @@ export function startCronWatcher(options) {
|
|
|
182
201
|
if (stopped)
|
|
183
202
|
return;
|
|
184
203
|
try {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
await deliverPendingFiles(options.session, delivered, conversationId, options);
|
|
204
|
+
conversationId = await resolveActiveConversationId(undefined, { forceRefresh: !conversationId });
|
|
205
|
+
await deliverPendingFiles(options.session, delivered, { value: conversationId }, options);
|
|
189
206
|
}
|
|
190
207
|
catch (error) {
|
|
191
208
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -206,12 +223,9 @@ export async function runCronBackfill(session, resetIndex) {
|
|
|
206
223
|
const clearedEntries = resetIndex ? clearDeliveredIndex() : 0;
|
|
207
224
|
const delivered = readDeliveredIndex();
|
|
208
225
|
const pendingAfterReset = listPendingCronFiles(delivered).length;
|
|
209
|
-
let conversationId =
|
|
210
|
-
if (!conversationId) {
|
|
211
|
-
conversationId = await resolveActiveConversationId();
|
|
212
|
-
}
|
|
226
|
+
let conversationId = await resolveActiveConversationId(undefined, { forceRefresh: true });
|
|
213
227
|
const deliveredBefore = delivered.size;
|
|
214
|
-
await deliverPendingFiles(session, delivered, conversationId, {});
|
|
228
|
+
await deliverPendingFiles(session, delivered, { value: conversationId }, {});
|
|
215
229
|
const deliveredCount = delivered.size - deliveredBefore;
|
|
216
230
|
const remainingCount = listPendingCronFiles(delivered).length;
|
|
217
231
|
return {
|