@saleso.innovations/bridge 0.1.8 → 0.1.10

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/INTEGRATION.md CHANGED
@@ -34,6 +34,9 @@ export async function onCleosPairingCodeSubmitted(code: string) {
34
34
  for await (const chunk of stream) {
35
35
  reply.delta(chunk, sequence++);
36
36
  }
37
+ // If you stream from Hermes /v1/chat/completions, also forward tool progress via
38
+ // reply.activity() when you receive `event: hermes.tool.progress` SSE events.
39
+ // Do not inject tool markers into assistant text (see Hermes #6972).
37
40
  reply.complete(stream.finalText, sequence);
38
41
  },
39
42
  });
package/README.md CHANGED
@@ -31,6 +31,12 @@ curl -fsSL https://amicable-elephant-407.convex.site/update-bridge.sh | bash
31
31
 
32
32
  This installs the latest package, refreshes the CLI symlink, and restarts `cleos-bridge.service` when present.
33
33
 
34
+ To pin a specific release (e.g. after a Cleos update):
35
+
36
+ ```bash
37
+ curl -fsSL https://amicable-elephant-407.convex.site/update-bridge.sh | bash -s -- 0.1.10
38
+ ```
39
+
34
40
  ## Manual usage
35
41
 
36
42
  The install script puts the bridge in `~/.cleos/bridge`. To run without the symlink:
package/dist/client.d.ts CHANGED
@@ -21,9 +21,23 @@ export type UserMessageMeta = {
21
21
  messageId: string;
22
22
  attachments?: UserMessageAttachment[];
23
23
  };
24
+ export type AgentActivityPayload = {
25
+ activityType: "tool.started" | "tool.completed";
26
+ tool?: string;
27
+ label?: string;
28
+ emoji?: string;
29
+ sequence: number;
30
+ };
31
+ export type AgentFailedPayload = {
32
+ error: string;
33
+ code?: string;
34
+ sequence?: number;
35
+ };
24
36
  export type AgentReply = {
25
37
  delta: (text: string, sequence: number) => void;
38
+ activity: (activity: AgentActivityPayload) => void;
26
39
  complete: (text: string, sequence: number) => void;
40
+ failed: (failure: AgentFailedPayload) => void;
27
41
  };
28
42
  export type CronDeliveryMeta = {
29
43
  conversationId: string;
@@ -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;AAKhG,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,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,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,IAAI,CAAC;CACtE,CAAC;AA2LF,wBAAsB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CA2BD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAcxF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,GAAE;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,aAAa,CAAC,CAc9B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -57,6 +57,19 @@ function createReplySender(ws, agentId, conversationId, messageId) {
57
57
  sequence,
58
58
  }));
59
59
  },
60
+ activity(activity) {
61
+ ws.send(JSON.stringify({
62
+ type: "agent.activity",
63
+ agentId,
64
+ conversationId,
65
+ messageId,
66
+ activityType: activity.activityType,
67
+ tool: activity.tool,
68
+ label: activity.label,
69
+ emoji: activity.emoji,
70
+ sequence: activity.sequence,
71
+ }));
72
+ },
60
73
  complete(text, sequence) {
61
74
  ws.send(JSON.stringify({
62
75
  type: "agent.message",
@@ -68,8 +81,32 @@ function createReplySender(ws, agentId, conversationId, messageId) {
68
81
  final: true,
69
82
  }));
70
83
  },
84
+ failed(failure) {
85
+ ws.send(JSON.stringify({
86
+ type: "agent.failed",
87
+ agentId,
88
+ conversationId,
89
+ messageId,
90
+ error: failure.error,
91
+ code: failure.code,
92
+ sequence: failure.sequence ?? 0,
93
+ }));
94
+ },
71
95
  };
72
96
  }
97
+ function userSafeHermesError(error) {
98
+ const raw = error instanceof Error ? error.message : String(error);
99
+ if (raw.includes("not reachable") || raw.includes("health check")) {
100
+ return {
101
+ code: "hermes_unreachable",
102
+ message: "Hermes is not running. Start `hermes gateway` on your agent machine and try again.",
103
+ };
104
+ }
105
+ if (raw.includes("Hermes request failed")) {
106
+ return { code: "hermes_request_failed", message: "Hermes could not complete your request. Try again." };
107
+ }
108
+ return { code: "handler_error", message: raw.length > 200 ? `${raw.slice(0, 200)}…` : raw };
109
+ }
73
110
  async function openAgentConnection(options) {
74
111
  const ws = new WebSocket(options.relayWsUrl);
75
112
  let closedResolve = null;
@@ -101,7 +138,14 @@ async function openAgentConnection(options) {
101
138
  const replyMessageId = randomUUID();
102
139
  const reply = createReplySender(ws, agentId, conversationId, replyMessageId);
103
140
  if (options.onUserMessage) {
104
- await options.onUserMessage(content, { agentId, conversationId, messageId: replyMessageId, attachments }, reply);
141
+ try {
142
+ await options.onUserMessage(content, { agentId, conversationId, messageId: replyMessageId, attachments }, reply);
143
+ }
144
+ catch (error) {
145
+ const { message, code } = userSafeHermesError(error);
146
+ console.error(JSON.stringify({ event: "cleos-bridge.handler_error", code, message }));
147
+ reply.failed({ error: message, code, sequence: 0 });
148
+ }
105
149
  return;
106
150
  }
107
151
  const echo = `Echo: ${content}`;
@@ -1 +1 @@
1
- {"version":3,"file":"hermesForwarder.d.ts","sourceRoot":"","sources":["../src/hermesForwarder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,eAAe,EAAE,MAAM,aAAa,CAAC;AAGtF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAkBF,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,sBAA2B,GAAG;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAUA;AA2ED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAyEf;AAED,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,sBAA2B,IAC/D,SAAS,MAAM,EAAE,MAAM,eAAe,EAAE,OAAO,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC,CAMxF"}
1
+ {"version":3,"file":"hermesForwarder.d.ts","sourceRoot":"","sources":["../src/hermesForwarder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,eAAe,EAAE,MAAM,aAAa,CAAC;AAGtF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAkBF,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,sBAA2B,GAAG;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAUA;AAyID,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CA4Df;AAED,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,sBAA2B,IAC/D,SAAS,MAAM,EAAE,MAAM,eAAe,EAAE,OAAO,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC,CAMxF"}
@@ -64,6 +64,52 @@ function extractDeltaFromChunk(payload) {
64
64
  const content = delta.content;
65
65
  return typeof content === "string" ? content : null;
66
66
  }
67
+ function processSseEventBlock(eventBlock, reply, counters, onTextDelta) {
68
+ let eventName = "message";
69
+ for (const line of eventBlock.split("\n")) {
70
+ if (line.startsWith("event:")) {
71
+ eventName = line.slice(6).trim();
72
+ continue;
73
+ }
74
+ if (!line.startsWith("data:"))
75
+ continue;
76
+ const data = line.slice(5).trim();
77
+ if (!data || data === "[DONE]")
78
+ continue;
79
+ if (eventName === "hermes.tool.progress") {
80
+ try {
81
+ const payload = JSON.parse(data);
82
+ const tool = typeof payload.tool === "string" ? payload.tool : undefined;
83
+ const label = typeof payload.label === "string" ? payload.label : undefined;
84
+ const emoji = typeof payload.emoji === "string" ? payload.emoji : undefined;
85
+ reply.activity({
86
+ activityType: "tool.started",
87
+ tool,
88
+ label,
89
+ emoji,
90
+ sequence: counters.activitySequence,
91
+ });
92
+ counters.activitySequence += 1;
93
+ }
94
+ catch {
95
+ // Ignore malformed tool progress payloads.
96
+ }
97
+ continue;
98
+ }
99
+ try {
100
+ const payload = JSON.parse(data);
101
+ const delta = extractDeltaFromChunk(payload);
102
+ if (delta) {
103
+ onTextDelta(delta);
104
+ reply.delta(delta, counters.textSequence);
105
+ counters.textSequence += 1;
106
+ }
107
+ }
108
+ catch {
109
+ // Ignore malformed SSE chunks.
110
+ }
111
+ }
112
+ }
67
113
  function buildHermesUserContent(text, attachments) {
68
114
  const trimmed = text.trim();
69
115
  const imageParts = (attachments ?? [])
@@ -121,7 +167,7 @@ export async function forwardToHermes(content, meta, reply, options = {}) {
121
167
  const reader = response.body.getReader();
122
168
  const decoder = new TextDecoder();
123
169
  let buffer = "";
124
- let sequence = 0;
170
+ const counters = { textSequence: 0, activitySequence: 0 };
125
171
  let fullText = "";
126
172
  while (true) {
127
173
  const { done, value } = await reader.read();
@@ -130,34 +176,18 @@ export async function forwardToHermes(content, meta, reply, options = {}) {
130
176
  buffer += decoder.decode(value, { stream: true });
131
177
  const { events, rest } = parseSseDataLines(buffer);
132
178
  buffer = rest;
133
- for (const event of events) {
134
- for (const line of event.split("\n")) {
135
- if (!line.startsWith("data: "))
136
- continue;
137
- const data = line.slice(6).trim();
138
- if (!data || data === "[DONE]")
139
- continue;
140
- try {
141
- const payload = JSON.parse(data);
142
- const delta = extractDeltaFromChunk(payload);
143
- if (delta) {
144
- fullText += delta;
145
- reply.delta(delta, sequence);
146
- sequence += 1;
147
- }
148
- }
149
- catch {
150
- // Ignore malformed SSE chunks.
151
- }
152
- }
179
+ for (const eventBlock of events) {
180
+ processSseEventBlock(eventBlock, reply, counters, (delta) => {
181
+ fullText += delta;
182
+ });
153
183
  }
154
184
  }
155
185
  if (!fullText.trim()) {
156
186
  fullText = "(Hermes returned an empty response)";
157
- reply.delta(fullText, sequence);
158
- sequence += 1;
187
+ reply.delta(fullText, counters.textSequence);
188
+ counters.textSequence += 1;
159
189
  }
160
- reply.complete(fullText, sequence);
190
+ reply.complete(fullText, counters.textSequence);
161
191
  }
162
192
  export function createHermesMessageHandler(options = {}) {
163
193
  return async (content, meta, reply) => {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { connectHermesAgent, pairCleosAgent, reconnectHermesAgent } from "./client.js";
2
- export type { AgentReply, ConnectOptions, ConnectResult, CronDeliveryMeta, UserMessageMeta } from "./client.js";
2
+ export type { AgentActivityPayload, AgentFailedPayload, AgentReply, ConnectOptions, ConnectResult, CronDeliveryMeta, UserMessageMeta, } from "./client.js";
3
3
  export { loadCredentials, saveCredentials, credentialsPathForDisplay } from "./credentials.js";
4
4
  export type { SavedAgentCredentials } from "./credentials.js";
5
5
  export { resolvePairingCode, convexSiteUrlFromEnv } from "./resolve.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3G,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3G,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saleso.innovations/bridge",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Connect your Hermes agent to the Cleos iOS app via pairing code.",
5
5
  "type": "module",
6
6
  "license": "MIT",