replicas-cli 0.2.563 → 0.2.565

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.
Files changed (2) hide show
  1. package/dist/index.cjs +41 -34
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -22641,7 +22641,8 @@ var PLANS = {
22641
22641
  "Up to 15 environments",
22642
22642
  "Up to 5 automations",
22643
22643
  "Warm pools and warm hooks",
22644
- "API access"
22644
+ "API access",
22645
+ "Mobile app"
22645
22646
  ]
22646
22647
  },
22647
22648
  team: {
@@ -24443,7 +24444,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
24443
24444
  });
24444
24445
 
24445
24446
  // ../shared/src/cli-version.ts
24446
- var CLI_VERSION = "0.2.563";
24447
+ var CLI_VERSION = "0.2.565";
24447
24448
 
24448
24449
  // ../shared/src/version.ts
24449
24450
  function compareVersions(v1, v2) {
@@ -24765,6 +24766,7 @@ var HOSTED_COMPOSIO_PLUGIN_DEFINITIONS = [
24765
24766
  ["xero", "xero", "OAUTH2", false, "business", "Xero"],
24766
24767
  ["brex", "brex", "API_KEY", false, "business", "Brex"],
24767
24768
  ["buffer", "buffer", "OAUTH2", false, "business", "Buffer"],
24769
+ ["docusign", "docusign", "OAUTH2", false, "business", "DocuSign"],
24768
24770
  ["canva", "canva", "OAUTH2", true, "productivity", "Canva"],
24769
24771
  ["webflow", "webflow", "API_KEY", false, "business", "Webflow"],
24770
24772
  ["firecrawl", "firecrawl", "API_KEY", false, "data", "Firecrawl"],
@@ -25086,6 +25088,24 @@ function normalizeBackgroundTaskStatus(status) {
25086
25088
  // ../shared/src/display-message/constants.ts
25087
25089
  var USER_MESSAGE_MATCH_GRACE_PERIOD_MS = 3e4;
25088
25090
 
25091
+ // ../shared/src/user-message-matching.ts
25092
+ function parseTimestampMs(timestamp) {
25093
+ const value = Date.parse(timestamp);
25094
+ return Number.isFinite(value) ? value : 0;
25095
+ }
25096
+ function areUserMessagesWithinMatchWindow(a, b) {
25097
+ return a.content === b.content && Math.abs(parseTimestampMs(a.timestamp) - parseTimestampMs(b.timestamp)) <= USER_MESSAGE_MATCH_GRACE_PERIOD_MS;
25098
+ }
25099
+
25100
+ // ../shared/src/agent-event-utils.ts
25101
+ function getUserMessage(event) {
25102
+ return event.type === "event_msg" && event.payload.type === "user_message" && typeof event.payload.message === "string" ? event.payload.message : null;
25103
+ }
25104
+ function getUserMessageId(event) {
25105
+ const messageId = event.payload[USER_MESSAGE_ID_PAYLOAD_KEY];
25106
+ return typeof messageId === "string" ? messageId : null;
25107
+ }
25108
+
25089
25109
  // ../shared/src/json.ts
25090
25110
  function safeJsonParse(str, fallback) {
25091
25111
  try {
@@ -25166,6 +25186,12 @@ function createCallDisplayMessage(message) {
25166
25186
  timestamp: message.timestamp
25167
25187
  };
25168
25188
  }
25189
+ function insertDisplayMessageByTimestamp(messages, message) {
25190
+ const messageMs = parseTimestampMs(message.timestamp);
25191
+ let index = messages.length;
25192
+ while (index > 0 && parseTimestampMs(messages[index - 1].timestamp) > messageMs) index--;
25193
+ messages.splice(index, 0, message);
25194
+ }
25169
25195
 
25170
25196
  // ../shared/src/display-message/format.ts
25171
25197
  function unquoteShellArg(value) {
@@ -25233,24 +25259,6 @@ function skillNamesFromCommand(command) {
25233
25259
  })));
25234
25260
  }
25235
25261
 
25236
- // ../shared/src/user-message-matching.ts
25237
- function parseTimestampMs(timestamp) {
25238
- const value = Date.parse(timestamp);
25239
- return Number.isFinite(value) ? value : 0;
25240
- }
25241
- function areUserMessagesWithinMatchWindow(a, b) {
25242
- return a.content === b.content && Math.abs(parseTimestampMs(a.timestamp) - parseTimestampMs(b.timestamp)) <= USER_MESSAGE_MATCH_GRACE_PERIOD_MS;
25243
- }
25244
-
25245
- // ../shared/src/agent-event-utils.ts
25246
- function getUserMessage(event) {
25247
- return event.type === "event_msg" && event.payload.type === "user_message" && typeof event.payload.message === "string" ? event.payload.message : null;
25248
- }
25249
- function getUserMessageId(event) {
25250
- const messageId = event.payload[USER_MESSAGE_ID_PAYLOAD_KEY];
25251
- return typeof messageId === "string" ? messageId : null;
25252
- }
25253
-
25254
25262
  // ../shared/src/display-message/parsers/codex-parser.ts
25255
25263
  function getStatusFromExitCode(exitCode) {
25256
25264
  return exitCode === 0 ? "completed" : "failed";
@@ -27034,6 +27042,7 @@ function duplicateBucketKey(message, bucketOffset = 0) {
27034
27042
  }
27035
27043
  function mergeCodexAspDisplayMessages(primary, supplemental) {
27036
27044
  const merged = [...primary];
27045
+ const primaryCount = primary.length;
27037
27046
  const firstIndexById = /* @__PURE__ */ new Map();
27038
27047
  const indexesByDuplicateBucket = /* @__PURE__ */ new Map();
27039
27048
  const indexMessage = (message, index) => {
@@ -27070,14 +27079,18 @@ function mergeCodexAspDisplayMessages(primary, supplemental) {
27070
27079
  unindexMessage(merged[duplicateIndex], duplicateIndex);
27071
27080
  merged[duplicateIndex] = {
27072
27081
  ...merged[duplicateIndex],
27073
- id: message.id,
27074
- timestamp: message.timestamp
27082
+ id: message.id
27075
27083
  };
27076
27084
  firstIndexById.set(message.id, duplicateIndex);
27077
27085
  indexMessage(merged[duplicateIndex], duplicateIndex);
27078
27086
  }
27079
27087
  }
27080
- return merged.map((message, index) => ({ message, index })).sort((a, b) => parseTimestampMs(a.message.timestamp) - parseTimestampMs(b.message.timestamp) || a.index - b.index).map(({ message }) => message);
27088
+ const ordered = merged.slice(0, primaryCount);
27089
+ const supplementalOnly = merged.slice(primaryCount).map((message, index) => ({ message, index })).sort((a, b) => parseTimestampMs(a.message.timestamp) - parseTimestampMs(b.message.timestamp) || a.index - b.index);
27090
+ for (const { message } of supplementalOnly) {
27091
+ insertDisplayMessageByTimestamp(ordered, message);
27092
+ }
27093
+ return ordered;
27081
27094
  }
27082
27095
  function parseCodexAspTranscript(transcript) {
27083
27096
  const messages = [];
@@ -27163,24 +27176,18 @@ function parseDisplayMessages(events, agentType, codexAspTranscript, options = {
27163
27176
  const shouldFilter = options.filter ?? true;
27164
27177
  const parsedEvents = agentType === "claude" || agentType === "relay" ? parseClaudeEvents(events, options.parentToolUseId) : parseAgentEvents(events, agentType);
27165
27178
  const legacyMessages = shouldFilter ? filterDisplayMessages(parsedEvents, agentType) : parsedEvents;
27166
- const finalize2 = (messages) => shouldFilter ? applyAuthFallbackNotices(applyInterruptions(messages, events), events) : messages;
27179
+ const applySyntheticNotices = (messages) => shouldFilter ? applyAuthFallbackNotices(applyInterruptions(messages, events), events) : messages;
27167
27180
  if (agentType !== "codex" || !codexAspTranscript) {
27168
- return finalize2(legacyMessages);
27181
+ return applySyntheticNotices(legacyMessages);
27169
27182
  }
27170
27183
  const nativeCodexMessages = shouldFilter ? filterDisplayMessages(parseCodexAspTranscript(codexAspTranscript), agentType) : parseCodexAspTranscript(codexAspTranscript);
27171
- return finalize2(mergeCodexAspDisplayMessages(nativeCodexMessages, legacyMessages));
27172
- }
27173
- function insertByTimestamp(messages, message) {
27174
- const messageMs = parseTimestampMs(message.timestamp);
27175
- let index = messages.length;
27176
- while (index > 0 && parseTimestampMs(messages[index - 1].timestamp) > messageMs) index--;
27177
- messages.splice(index, 0, message);
27184
+ return applySyntheticNotices(mergeCodexAspDisplayMessages(nativeCodexMessages, legacyMessages));
27178
27185
  }
27179
27186
  function applyInterruptions(messages, events) {
27180
27187
  const result = [...messages];
27181
27188
  for (const event of events) {
27182
27189
  if (event.type !== CHAT_INTERRUPTED_EVENT_TYPE) continue;
27183
- insertByTimestamp(result, {
27190
+ insertDisplayMessageByTimestamp(result, {
27184
27191
  id: `interruption-${event.timestamp}`,
27185
27192
  type: "interruption",
27186
27193
  timestamp: event.timestamp
@@ -27227,7 +27234,7 @@ function applyAuthFallbackNotices(messages, events) {
27227
27234
  });
27228
27235
  if (notices.length === 0) return messages;
27229
27236
  const result = [...messages];
27230
- for (const notice of notices) insertByTimestamp(result, notice);
27237
+ for (const notice of notices) insertDisplayMessageByTimestamp(result, notice);
27231
27238
  return result;
27232
27239
  }
27233
27240
  function isCodexInitializationPrompt(message) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.563",
3
+ "version": "0.2.565",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {