port42-openclaw 0.4.5 → 0.4.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.
@@ -22,13 +22,16 @@ export declare class Port42Connection {
22
22
  private maxReconnectDelay;
23
23
  private shouldReconnect;
24
24
  private identified;
25
+ private pendingCalls;
25
26
  constructor(config: ConnectionConfig);
26
27
  connect(autoReconnect?: boolean): void;
27
28
  disconnect(): void;
28
29
  sendResponse(content: string): void;
29
30
  sendTyping(isTyping: boolean): void;
31
+ call(method: string, args?: any[]): Promise<any>;
30
32
  private openSocket;
31
33
  private handleEnvelope;
34
+ private handleRPCResponse;
32
35
  private handleIncomingMessage;
33
36
  private send;
34
37
  private scheduleReconnect;
@@ -17,6 +17,7 @@ class Port42Connection {
17
17
  maxReconnectDelay = 30000;
18
18
  shouldReconnect = true;
19
19
  identified = false;
20
+ pendingCalls = new Map();
20
21
  constructor(config) {
21
22
  this.config = config;
22
23
  }
@@ -56,14 +57,49 @@ class Port42Connection {
56
57
  return;
57
58
  this.send((0, protocol_1.createTyping)(this.config.channelId, this.config.senderId, isTyping));
58
59
  }
59
- openSocket() {
60
+ async call(method, args = []) {
61
+ if (!this.ws || this.ws.readyState !== ws_1.default.OPEN) {
62
+ throw new Error('Not connected to Port42');
63
+ }
64
+ const envelope = (0, protocol_1.createCall)(this.config.channelId, method, args);
65
+ const callId = envelope.call_id;
66
+ return new Promise((resolve, reject) => {
67
+ this.pendingCalls.set(callId, { resolve, reject });
68
+ this.send(envelope);
69
+ setTimeout(() => {
70
+ if (this.pendingCalls.has(callId)) {
71
+ this.pendingCalls.delete(callId);
72
+ reject(new Error("Call " + method + " timed out"));
73
+ }
74
+ }, 30000);
75
+ });
76
+ }
77
+ async openSocket() {
78
+ let url = this.config.gateway;
79
+ if (this.config.token) {
80
+ const sep = url.includes('?') ? '&' : '?';
81
+ url = "" + url + sep + "token=" + encodeURIComponent(this.config.token);
82
+ }
83
+ const httpUrl = url.replace(/^wss:/, 'https:').replace(/^ws:/, 'http:');
60
84
  try {
61
- let url = this.config.gateway;
62
- if (this.config.token) {
63
- const sep = url.includes('?') ? '&' : '?';
64
- url = `${url}${sep}token=${encodeURIComponent(this.config.token)}`;
85
+ const res = await fetch(httpUrl, {
86
+ method: 'HEAD',
87
+ headers: { 'ngrok-skip-browser-warning': '1' },
88
+ signal: AbortSignal.timeout(5000),
89
+ });
90
+ const ct = res.headers.get('content-type') || '';
91
+ if (ct.includes('text/html')) {
92
+ console.log('[port42] Gateway returned HTML (tunnel not ready or interstitial). Retrying...');
93
+ this.scheduleReconnect();
94
+ return;
65
95
  }
66
- this.ws = new ws_1.default(url);
96
+ }
97
+ catch {
98
+ }
99
+ try {
100
+ this.ws = new ws_1.default(url, {
101
+ headers: { 'ngrok-skip-browser-warning': '1' },
102
+ });
67
103
  }
68
104
  catch (err) {
69
105
  console.error('[port42] Failed to create WebSocket:', err);
@@ -73,7 +109,6 @@ class Port42Connection {
73
109
  this.ws.on('open', () => {
74
110
  this.reconnectDelay = 3000;
75
111
  this.identified = false;
76
- // Wait for no_auth/challenge from gateway before sending identify
77
112
  });
78
113
  this.ws.on('message', (data) => {
79
114
  try {
@@ -86,23 +121,27 @@ class Port42Connection {
86
121
  });
87
122
  this.ws.on('close', (code, reason) => {
88
123
  const msg = reason?.toString() || '';
89
- console.log(`[port42] WS closed: code=${code} reason=${msg}`);
124
+ console.log("[port42] WS closed: code=" + code + " reason=" + msg);
90
125
  this.identified = false;
91
126
  if (msg === 'replaced by new connection') {
92
- // Another connection with our sender_id took over, don't reconnect
93
127
  return;
94
128
  }
95
129
  this.config.onDisconnected?.();
96
130
  this.scheduleReconnect();
97
131
  });
98
132
  this.ws.on('error', (err) => {
99
- console.error('[port42] WebSocket error:', err.message);
133
+ const msg = err.message || '';
134
+ if (msg.includes('packet length') || msg.includes('wrong tag') || msg.includes('SSL')) {
135
+ console.log('[port42] Gateway not ready (got HTTP instead of WebSocket upgrade). Retrying...');
136
+ }
137
+ else {
138
+ console.error('[port42] WebSocket error:', msg);
139
+ }
100
140
  });
101
141
  }
102
142
  handleEnvelope(envelope) {
103
143
  switch (envelope.type) {
104
144
  case 'no_auth':
105
- // Gateway doesn't require auth, send identify
106
145
  if (!this.identified) {
107
146
  this.send((0, protocol_1.createIdentify)(this.config.senderId, this.config.displayName));
108
147
  }
@@ -115,6 +154,9 @@ class Port42Connection {
115
154
  case 'message':
116
155
  this.handleIncomingMessage(envelope);
117
156
  break;
157
+ case 'response':
158
+ this.handleRPCResponse(envelope);
159
+ break;
118
160
  case 'presence':
119
161
  if (envelope.online_ids) {
120
162
  this.config.onPresence?.(envelope.online_ids);
@@ -122,21 +164,44 @@ class Port42Connection {
122
164
  break;
123
165
  case 'error':
124
166
  console.error('[port42] Gateway error:', envelope.error);
167
+ if (envelope.call_id && this.pendingCalls.has(envelope.call_id)) {
168
+ const call = this.pendingCalls.get(envelope.call_id);
169
+ this.pendingCalls.delete(envelope.call_id);
170
+ call.reject(new Error(envelope.error || 'unknown gateway error'));
171
+ }
125
172
  break;
126
173
  case 'ack':
127
- // Message delivered
128
174
  break;
129
175
  }
130
176
  }
177
+ handleRPCResponse(envelope) {
178
+ const callId = envelope.call_id;
179
+ if (!callId || !this.pendingCalls.has(callId))
180
+ return;
181
+ const call = this.pendingCalls.get(callId);
182
+ this.pendingCalls.delete(callId);
183
+ if (envelope.error) {
184
+ call.reject(new Error(envelope.error));
185
+ }
186
+ else if (envelope.payload) {
187
+ try {
188
+ const result = JSON.parse(envelope.payload.content);
189
+ call.resolve(result);
190
+ }
191
+ catch {
192
+ call.resolve(envelope.payload.content);
193
+ }
194
+ }
195
+ else {
196
+ call.resolve(null);
197
+ }
198
+ }
131
199
  handleIncomingMessage(envelope) {
132
200
  if (!envelope.payload || !envelope.message_id)
133
201
  return;
134
- // Ignore own messages
135
202
  if (envelope.sender_id === this.config.senderId)
136
203
  return;
137
- // ACK receipt
138
204
  this.send((0, protocol_1.createAck)(envelope.message_id, this.config.channelId));
139
- // Decrypt if needed
140
205
  let content;
141
206
  let senderName;
142
207
  if (envelope.payload.encrypted && this.config.encryptionKey) {
@@ -152,9 +217,8 @@ class Port42Connection {
152
217
  content = envelope.payload.content;
153
218
  senderName = envelope.payload.senderName || envelope.sender_name || 'Unknown';
154
219
  }
155
- // Check trigger rules
156
220
  if (this.config.trigger === 'mention') {
157
- const mentionPattern = new RegExp(`@${this.config.displayName}\\b`, 'i');
221
+ const mentionPattern = new RegExp("@" + this.config.displayName + "\b", 'i');
158
222
  if (!mentionPattern.test(content))
159
223
  return;
160
224
  }
@@ -168,7 +232,7 @@ class Port42Connection {
168
232
  scheduleReconnect() {
169
233
  if (!this.shouldReconnect)
170
234
  return;
171
- console.log(`[port42] Reconnecting in ${this.reconnectDelay / 1000}s...`);
235
+ console.log("[port42] Reconnecting in " + (this.reconnectDelay / 1000) + "s...");
172
236
  setTimeout(() => this.openSocket(), this.reconnectDelay);
173
237
  this.reconnectDelay = Math.min(this.reconnectDelay * 2, this.maxReconnectDelay);
174
238
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,8 +16,7 @@ const node_crypto_1 = require("node:crypto");
16
16
  let pluginRuntime = null;
17
17
  // ── Helpers ──
18
18
  function stableSenderId(name) {
19
- // Use a unique namespace to avoid collision with Port42 native app companions
20
- const h = (0, node_crypto_1.createHash)('sha256').update(`openclaw-channel-adapter:${name}`).digest('hex');
19
+ const h = (0, node_crypto_1.createHash)('sha256').update("openclaw-channel-adapter:" + name).digest('hex');
21
20
  return [h.slice(0, 8), h.slice(8, 12), h.slice(12, 16), h.slice(16, 20), h.slice(20, 32)].join('-');
22
21
  }
23
22
  function connectAccount(account, onMessage) {
@@ -49,8 +48,8 @@ function connectAccount(account, onMessage) {
49
48
  senderOwner,
50
49
  trigger: account.trigger || 'mention',
51
50
  onMessage: onMessage || (() => { }),
52
- onConnected: () => console.log(`[port42] Connected as "${account.displayName}"`),
53
- onDisconnected: () => console.log(`[port42] Disconnected: ${account.accountId}`),
51
+ onConnected: () => console.log("[port42] Connected as \"" + account.displayName + "\""),
52
+ onDisconnected: () => console.log("[port42] Disconnected: " + account.accountId),
54
53
  });
55
54
  conn.connect(true);
56
55
  return conn;
@@ -118,16 +117,14 @@ const port42Channel = {
118
117
  gateway: {
119
118
  startAccount: async (ctx) => {
120
119
  const account = port42Channel.config.resolveAccount(ctx.cfg, ctx.accountId);
121
- console.log(`[port42] startAccount "${ctx.accountId}" (existing conn: ${connections.has(ctx.accountId)})`);
122
- // Disconnect any existing connection for this account
120
+ console.log("[port42] startAccount \"" + ctx.accountId + "\" (existing conn: " + connections.has(ctx.accountId) + ")");
123
121
  const existing = connections.get(ctx.accountId);
124
122
  if (existing) {
125
- console.log(`[port42] Cleaning up previous connection for "${ctx.accountId}"`);
123
+ console.log("[port42] Cleaning up previous connection for \"" + ctx.accountId + "\"");
126
124
  existing.disconnect();
127
125
  connections.delete(ctx.accountId);
128
126
  await new Promise((r) => setTimeout(r, 2000));
129
127
  }
130
- // Get the channel ID from the invite for routing
131
128
  let p42ChannelId = account.channelId;
132
129
  if (!p42ChannelId && account.invite) {
133
130
  p42ChannelId = (0, invite_1.parseInviteLink)(account.invite).channelId;
@@ -145,19 +142,19 @@ const port42Channel = {
145
142
  Body: content,
146
143
  RawBody: content,
147
144
  CommandBody: content,
148
- From: `port42:${senderName}`,
149
- To: `port42:${p42ChannelId}`,
145
+ From: "port42:" + senderName,
146
+ To: "port42:" + p42ChannelId,
150
147
  SessionKey: route.sessionKey,
151
148
  AccountId: ctx.accountId,
152
149
  ChatType: "group",
153
150
  ConversationLabel: senderName,
154
151
  SenderName: senderName,
155
- SenderId: `port42:${stableSenderId(senderName)}`,
152
+ SenderId: "port42:" + stableSenderId(senderName),
156
153
  Provider: "port42",
157
154
  Surface: "port42",
158
155
  MessageSid: messageId,
159
156
  OriginatingChannel: "port42",
160
- OriginatingTo: `port42:${p42ChannelId}`,
157
+ OriginatingTo: "port42:" + p42ChannelId,
161
158
  });
162
159
  await rt.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
163
160
  ctx: inboundCtx,
@@ -177,12 +174,11 @@ const port42Channel = {
177
174
  });
178
175
  }
179
176
  catch (err) {
180
- console.error(`[port42] inbound error: ${err.message}`);
177
+ console.error("[port42] inbound error: " + err.message);
181
178
  }
182
179
  });
183
180
  connections.set(ctx.accountId, conn);
184
181
  ctx.setStatus?.("connected");
185
- // Park the promise until OpenClaw signals shutdown
186
182
  await new Promise((resolve) => {
187
183
  if (ctx.abortSignal?.aborted) {
188
184
  resolve();
@@ -190,17 +186,115 @@ const port42Channel = {
190
186
  }
191
187
  ctx.abortSignal?.addEventListener("abort", () => resolve(), { once: true });
192
188
  });
193
- console.log(`[port42] Shutting down account "${ctx.accountId}"`);
189
+ console.log("[port42] Shutting down account \"" + ctx.accountId + "\"");
194
190
  conn.disconnect();
195
191
  connections.delete(ctx.accountId);
196
192
  },
197
193
  },
198
194
  };
195
+ // ── Tool plugin descriptor ──
196
+ const port42Tools = {
197
+ id: "port42_tools",
198
+ meta: {
199
+ id: "port42_tools",
200
+ label: "Port42 Tools",
201
+ blurb: "Allow agents to use Port42 terminal, filesystem, and browser tools.",
202
+ },
203
+ tools: [
204
+ {
205
+ name: "terminal_exec",
206
+ description: "Execute a shell command on the Port42 host machine via the native app bridge.",
207
+ parameters: {
208
+ type: "object",
209
+ properties: {
210
+ command: { type: "string", description: "The shell command to run" },
211
+ cwd: { type: "string", description: "Optional working directory" },
212
+ timeout: { type: "number", description: "Optional timeout in seconds (default 30)" },
213
+ },
214
+ required: ["command"],
215
+ },
216
+ execute: async ({ ctx, input }) => {
217
+ const conn = connections.get(ctx.accountId);
218
+ if (!conn)
219
+ throw new Error("Port42 account not connected");
220
+ return await conn.call("terminal.exec", [input.command, { cwd: input.cwd, timeout: input.timeout }]);
221
+ },
222
+ },
223
+ {
224
+ name: "screenshot",
225
+ description: "Capture a screenshot of the host machine's screen.",
226
+ parameters: {
227
+ type: "object",
228
+ properties: {
229
+ scale: { type: "number", description: "Optional scale factor (default 1.0)" },
230
+ },
231
+ },
232
+ execute: async ({ ctx, input }) => {
233
+ const conn = connections.get(ctx.accountId);
234
+ if (!conn)
235
+ throw new Error("Port42 account not connected");
236
+ const result = await conn.call("screen.capture", [input]);
237
+ if (result && result.image) {
238
+ return {
239
+ text: "Screenshot captured and saved to Port42 captures directory.",
240
+ images: [{ type: "base64", media_type: "image/png", data: result.image }]
241
+ };
242
+ }
243
+ return result;
244
+ },
245
+ },
246
+ {
247
+ name: "clipboard_read",
248
+ description: "Read the current contents of the host machine's clipboard.",
249
+ parameters: { type: "object", properties: {} },
250
+ execute: async ({ ctx }) => {
251
+ const conn = connections.get(ctx.accountId);
252
+ if (!conn)
253
+ throw new Error("Port42 account not connected");
254
+ return await conn.call("clipboard.read");
255
+ },
256
+ },
257
+ {
258
+ name: "file_read",
259
+ description: "Read a file from the host machine (scoped to Port42 permissions).",
260
+ parameters: {
261
+ type: "object",
262
+ properties: {
263
+ path: { type: "string", description: "Absolute path or relative to picked directory" },
264
+ },
265
+ required: ["path"],
266
+ },
267
+ execute: async ({ ctx, input }) => {
268
+ const conn = connections.get(ctx.accountId);
269
+ if (!conn)
270
+ throw new Error("Port42 account not connected");
271
+ return await conn.call("fs.read", [input.path]);
272
+ },
273
+ },
274
+ {
275
+ name: "browser_open",
276
+ description: "Open a URL in the host's headless browser bridge.",
277
+ parameters: {
278
+ type: "object",
279
+ properties: {
280
+ url: { type: "string", description: "The URL to open" },
281
+ },
282
+ required: ["url"],
283
+ },
284
+ execute: async ({ ctx, input }) => {
285
+ const conn = connections.get(ctx.accountId);
286
+ if (!conn)
287
+ throw new Error("Port42 account not connected");
288
+ return await conn.call("browser.open", [input.url]);
289
+ },
290
+ },
291
+ ],
292
+ };
199
293
  // ── Plugin entry point ──
200
294
  function default_1(api) {
201
295
  pluginRuntime = api.runtime;
202
296
  api.registerChannel({ plugin: port42Channel });
203
- // Register CLI: openclaw port42 join --invite "..."
297
+ api.registerToolPlugin({ plugin: port42Tools });
204
298
  api.registerCli(({ program }) => {
205
299
  const p42 = program.command("port42").description("Port42 companion computing");
206
300
  p42.command("join")
@@ -221,10 +315,8 @@ function default_1(api) {
221
315
  try {
222
316
  existing = JSON.parse(fs.readFileSync(configPath, 'utf8'));
223
317
  }
224
- catch {
225
- // No existing config, start fresh
318
+ catch (e) {
226
319
  }
227
- // Ensure structure exists
228
320
  if (!existing.channels)
229
321
  existing.channels = {};
230
322
  if (!existing.channels.port42)
@@ -238,14 +330,13 @@ function default_1(api) {
238
330
  trigger: opts.trigger,
239
331
  };
240
332
  fs.writeFileSync(configPath, JSON.stringify(existing, null, 2) + '\n');
241
- console.log(`Added Port42 channel "${accountId}" with agent "${opts.agent}"`);
242
- console.log(`\nNext steps:`);
243
- console.log(` openclaw agents bind --agent ${opts.agent} --bind port42:${accountId}`);
244
- console.log(` openclaw gateway restart`);
333
+ console.log("Added Port42 channel \"" + accountId + "\" with agent \"" + opts.agent + "\"");
334
+ console.log("\nNext steps:");
335
+ console.log(" openclaw agents bind --agent " + opts.agent + " --bind port42:" + accountId);
336
+ console.log(" openclaw gateway restart");
245
337
  });
246
338
  }, { commands: ["port42"] });
247
339
  }
248
- // Re-export for standalone use
249
340
  var invite_2 = require("./invite");
250
341
  Object.defineProperty(exports, "parseInviteLink", { enumerable: true, get: function () { return invite_2.parseInviteLink; } });
251
342
  var connection_2 = require("./connection");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA8OH,4BAsDC;AAlSD,qCAA2C;AAC3C,6CAAgD;AAChD,6CAAyC;AAiBzC,iDAAiD;AAEjD,IAAI,aAAa,GAAQ,IAAI,CAAC;AAE9B,gBAAgB;AAEhB,SAAS,cAAc,CAAC,IAAY;IAClC,8EAA8E;IAC9E,MAAM,CAAC,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxF,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,cAAc,CACrB,OAAsB,EACtB,SAA4E;IAE5E,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,MAAM,WAAW,GAAkB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IAEzD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,IAAA,wBAAe,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAC5C,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;QAClD,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;QAC9D,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,OAAO,CAAC,OAAQ,CAAC;QAC3B,SAAS,GAAG,OAAO,CAAC,SAAU,CAAC;QAC/B,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QAC9C,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,6BAAgB,CAAC;QAChC,OAAO;QACP,SAAS;QACT,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa;QACb,KAAK;QACL,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;QACrC,SAAS,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QAClC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,WAAW,GAAG,CAAC;QAChF,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,SAAS,EAAE,CAAC;KACjF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qEAAqE;AAErE,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;AAExD,kCAAkC;AAElC,MAAM,aAAa,GAAG;IACpB,EAAE,EAAE,QAAiB;IAErB,IAAI,EAAE;QACJ,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,wDAAwD;QAC/D,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB;IAED,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;IAEhD,MAAM,EAAE;QACN,cAAc,EAAE,CAAC,GAAQ,EAAY,EAAE,CACrC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;QAEnD,gBAAgB,EAAE,CAAC,GAAQ,EAAsB,EAAE;YACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,cAAc,EAAE,CAAC,GAAQ,EAAE,SAAyB,EAAiB,EAAE;YACrE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;YACtD,MAAM,EAAE,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,aAAa,EAAE,OAAO,EAAE,aAAa;gBACrC,KAAK,EAAE,OAAO,EAAE,KAAK;gBACrB,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,cAAc;gBACnD,KAAK,EAAE,OAAO,EAAE,KAAK;gBACrB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS;gBACtC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;aAClC,CAAC;QACJ,CAAC;QAED,YAAY,EAAE,CAAC,OAAsB,EAAW,EAAE,CAChD,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAEnE,eAAe,EAAE,CAAC,OAAsB,EAAE,EAAE,CAAC,CAAC;YAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;SAC9E,CAAC;KACH;IAED,QAAQ,EAAE;QACR,YAAY,EAAE,SAAkB;QAChC,cAAc,EAAE,IAAI;QAEpB,QAAQ,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC7C,CAAC;KACF;IAED,OAAO,EAAE;QACP,YAAY,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,SAAS,qBAAqB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE3G,sDAAsD;YACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,iDAAiD,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;gBAC/E,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACtB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;YAED,iDAAiD;YACjD,IAAI,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;YACrC,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,YAAY,GAAG,IAAA,wBAAe,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;YAC3D,CAAC;YAED,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;gBAC5E,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,aAAa,CAAC;oBAEzB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;wBACjD,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE;qBAC1C,CAAC,CAAC;oBAEH,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC;wBACzD,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,OAAO;wBAChB,WAAW,EAAE,OAAO;wBACpB,IAAI,EAAE,UAAU,UAAU,EAAE;wBAC5B,EAAE,EAAE,UAAU,YAAY,EAAE;wBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,QAAQ,EAAE,OAAO;wBACjB,iBAAiB,EAAE,UAAU;wBAC7B,UAAU,EAAE,UAAU;wBACtB,QAAQ,EAAE,UAAU,cAAc,CAAC,UAAU,CAAC,EAAE;wBAChD,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,QAAQ;wBACjB,UAAU,EAAE,SAAS;wBACrB,kBAAkB,EAAE,QAAQ;wBAC5B,aAAa,EAAE,UAAU,YAAY,EAAE;qBACxC,CAAC,CAAC;oBAEH,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC;wBAC9D,GAAG,EAAE,UAAU;wBACf,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,iBAAiB,EAAE;4BACjB,OAAO,EAAE,KAAK,EAAE,OAAY,EAAE,EAAE;gCAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gCAC5C,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oCACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oCACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oCAC7C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oCAChC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gCACzB,CAAC;4BACH,CAAC;yBACF;wBACD,YAAY,EAAE,EAAE;qBACjB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrC,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;YAE7B,mDAAmD;YACnD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACpD,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;KACF;CACF,CAAC;AAEF,2BAA2B;AAE3B,mBAAyB,GAAQ;IAC/B,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAE/C,oDAAoD;IACpD,GAAG,CAAC,WAAW,CACb,CAAC,EAAE,OAAO,EAAO,EAAE,EAAE;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;QAEhF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;aAChB,WAAW,CAAC,2CAA2C,CAAC;aACxD,cAAc,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;aACtD,cAAc,CAAC,cAAc,EAAE,mDAAmD,CAAC;aACnF,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;aACrE,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;aAC/E,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,SAAS,CAAC;aACtE,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;YACpB,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;YAEzE,IAAI,QAAQ,GAAQ,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;gBAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;YAE/E,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG;gBAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,KAAK;gBACvB,KAAK;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;YAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEvE,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,iBAAiB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,KAAK,kBAAkB,SAAS,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,EACD,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CACzB,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AACxB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AAGzB,mCAA4C;AAAnC,iGAAA,OAAO,OAAA;AAAE,iGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/invite.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * Parse Port42 HTTPS invite links into connection config.
3
3
  *
4
- * Invite format:
5
- * https://<host>/invite?id=<channel-uuid>&name=<channel-name>&key=<url-encoded-base64-aes-key>&token=<gateway-token>&host=<host-name>
4
+ * Direct invite format (gateway host == invite host):
5
+ * https://<gateway-host>/invite?id=<channel-uuid>&name=<channel-name>&key=<...>&token=<...>&host=<...>
6
+ *
7
+ * Redirect invite format (port42.ai landing page with explicit gateway param):
8
+ * https://port42.ai/invite.html?gateway=wss://<gateway-host>&id=<channel-uuid>&...
6
9
  */
7
10
  export interface InviteConfig {
8
11
  gateway: string;
package/dist/invite.js CHANGED
@@ -2,8 +2,11 @@
2
2
  /**
3
3
  * Parse Port42 HTTPS invite links into connection config.
4
4
  *
5
- * Invite format:
6
- * https://<host>/invite?id=<channel-uuid>&name=<channel-name>&key=<url-encoded-base64-aes-key>&token=<gateway-token>&host=<host-name>
5
+ * Direct invite format (gateway host == invite host):
6
+ * https://<gateway-host>/invite?id=<channel-uuid>&name=<channel-name>&key=<...>&token=<...>&host=<...>
7
+ *
8
+ * Redirect invite format (port42.ai landing page with explicit gateway param):
9
+ * https://port42.ai/invite.html?gateway=wss://<gateway-host>&id=<channel-uuid>&...
7
10
  */
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.parseInviteLink = parseInviteLink;
@@ -19,9 +22,19 @@ function parseInviteLink(invite) {
19
22
  // Parse key manually to preserve '+' chars (searchParams decodes + as space)
20
23
  const keyMatch = url.search.match(/[?&]key=([^&]+)/);
21
24
  const encryptionKey = keyMatch ? decodeURIComponent(keyMatch[1]) : null;
22
- // Derive WebSocket URL from the HTTPS host
23
- const protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
24
- const gateway = `${protocol}//${url.host}/ws`;
25
+ // Use explicit gateway= param if present (port42.ai redirect format),
26
+ // otherwise derive from the invite host (direct gateway format).
27
+ const gatewayParam = url.searchParams.get('gateway');
28
+ let gateway;
29
+ if (gatewayParam) {
30
+ // Normalise: strip trailing slash, ensure /ws path
31
+ const base = gatewayParam.replace(/\/+$/, '');
32
+ gateway = base.endsWith('/ws') ? base : `${base}/ws`;
33
+ }
34
+ else {
35
+ const protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
36
+ gateway = `${protocol}//${url.host}/ws`;
37
+ }
25
38
  return { gateway, channelId, channelName, encryptionKey, token, host };
26
39
  }
27
40
  //# sourceMappingURL=invite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invite.js","sourceRoot":"","sources":["../src/invite.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAWH,0CAqBC;AArBD,SAAgB,eAAe,CAAC,MAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAElD,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,MAAM,OAAO,GAAG,GAAG,QAAQ,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"invite.js","sourceRoot":"","sources":["../src/invite.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAWH,0CA8BC;AA9BD,SAAgB,eAAe,CAAC,MAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAElD,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,OAAe,CAAC;IACpB,IAAI,YAAY,EAAE,CAAC;QACjB,mDAAmD;QACnD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,OAAO,GAAG,GAAG,QAAQ,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Port42 gateway WebSocket protocol types.
3
3
  */
4
- export type EnvelopeType = 'identify' | 'welcome' | 'no_auth' | 'join' | 'leave' | 'message' | 'ack' | 'delivered' | 'read' | 'presence' | 'typing' | 'error';
4
+ export type EnvelopeType = 'identify' | 'welcome' | 'no_auth' | 'join' | 'leave' | 'message' | 'ack' | 'delivered' | 'read' | 'presence' | 'typing' | 'error' | 'call' | 'response';
5
5
  export interface Envelope {
6
6
  type: EnvelopeType;
7
7
  channel_id?: string;
@@ -15,6 +15,11 @@ export interface Envelope {
15
15
  online_ids?: string[];
16
16
  status?: 'online' | 'offline';
17
17
  companion_ids?: string[];
18
+ method?: string;
19
+ args?: any[];
20
+ call_id?: string;
21
+ target_id?: string;
22
+ is_host?: boolean;
18
23
  }
19
24
  export interface Payload {
20
25
  content: string;
@@ -30,3 +35,5 @@ export declare function createLeave(channelId: string): Envelope;
30
35
  export declare function createMessage(channelId: string, senderId: string, senderName: string, content: string, encrypted?: boolean, senderOwner?: string | null): Envelope;
31
36
  export declare function createAck(messageId: string, channelId: string): Envelope;
32
37
  export declare function createTyping(channelId: string, senderId: string, isTyping: boolean): Envelope;
38
+ export declare function createCall(channelId: string, method: string, args?: any[]): Envelope;
39
+ export declare function createResponse(callId: string, targetId: string, result: any): Envelope;
package/dist/protocol.js CHANGED
@@ -9,11 +9,14 @@ exports.createLeave = createLeave;
9
9
  exports.createMessage = createMessage;
10
10
  exports.createAck = createAck;
11
11
  exports.createTyping = createTyping;
12
+ exports.createCall = createCall;
13
+ exports.createResponse = createResponse;
12
14
  function createIdentify(senderId, senderName) {
13
15
  return {
14
16
  type: 'identify',
15
17
  sender_id: senderId,
16
18
  sender_name: senderName,
19
+ is_host: false,
17
20
  };
18
21
  }
19
22
  function createJoin(channelId, companionIds = [], token) {
@@ -67,4 +70,26 @@ function createTyping(channelId, senderId, isTyping) {
67
70
  },
68
71
  };
69
72
  }
73
+ function createCall(channelId, method, args = []) {
74
+ return {
75
+ type: 'call',
76
+ channel_id: channelId,
77
+ method,
78
+ args,
79
+ call_id: crypto.randomUUID(),
80
+ };
81
+ }
82
+ function createResponse(callId, targetId, result) {
83
+ return {
84
+ type: 'response',
85
+ call_id: callId,
86
+ target_id: targetId,
87
+ payload: {
88
+ content: typeof result === 'string' ? result : JSON.stringify(result),
89
+ senderName: 'agent',
90
+ senderType: 'agent',
91
+ replyToId: null,
92
+ },
93
+ };
94
+ }
70
95
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAwCH,wCAMC;AAED,gCAQC;AAED,kCAKC;AAED,sCAwBC;AAED,8BAMC;AAED,oCAaC;AAxED,SAAgB,cAAc,CAAC,QAAgB,EAAE,UAAkB;IACjE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;KACxB,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB,EAAE,eAAyB,EAAE,EAAE,KAAqB;IAC9F,MAAM,GAAG,GAAa;QACpB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,YAAY;KAC5B,CAAC;IACF,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB;IAC3C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAC3B,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,OAAe,EACf,YAAqB,KAAK,EAC1B,cAA6B,IAAI;IAEjC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;QAC/B,OAAO,EAAE;YACP,OAAO;YACP,UAAU;YACV,UAAU,EAAE,OAAO;YACnB,WAAW;YACX,SAAS,EAAE,IAAI;YACf,SAAS;SACV;QACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,SAAiB,EAAE,SAAiB;IAC5D,OAAO;QACL,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAC1B,SAAiB,EACjB,QAAgB,EAChB,QAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACzC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAiDH,wCAOC;AAED,gCAQC;AAED,kCAKC;AAED,sCAwBC;AAED,8BAMC;AAED,oCAaC;AAED,gCAQC;AAED,wCAYC;AAjGD,SAAgB,cAAc,CAAC,QAAgB,EAAE,UAAkB;IACjE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB,EAAE,eAAyB,EAAE,EAAE,KAAqB;IAC9F,MAAM,GAAG,GAAa;QACpB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,YAAY;KAC5B,CAAC;IACF,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB;IAC3C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAC3B,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,OAAe,EACf,YAAqB,KAAK,EAC1B,cAA6B,IAAI;IAEjC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;QAC/B,OAAO,EAAE;YACP,OAAO;YACP,UAAU;YACV,UAAU,EAAE,OAAO;YACnB,WAAW;YACX,SAAS,EAAE,IAAI;YACf,SAAS;SACV;QACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,SAAiB,EAAE,SAAiB;IAC5D,OAAO;QACL,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAC1B,SAAiB,EACjB,QAAgB,EAChB,QAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACzC;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAc,EAAE;IAC5E,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,SAAS;QACrB,MAAM;QACN,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAW;IAC1E,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACrE,UAAU,EAAE,OAAO;YACnB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,IAAI;SAChB;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "port42-openclaw",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "Port42 channel adapter for OpenClaw — bring your agents into Port42 companion computing channels",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",