replicas-cli 0.2.563 → 0.2.564

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 +39 -33
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -24443,7 +24443,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
24443
24443
  });
24444
24444
 
24445
24445
  // ../shared/src/cli-version.ts
24446
- var CLI_VERSION = "0.2.563";
24446
+ var CLI_VERSION = "0.2.564";
24447
24447
 
24448
24448
  // ../shared/src/version.ts
24449
24449
  function compareVersions(v1, v2) {
@@ -24765,6 +24765,7 @@ var HOSTED_COMPOSIO_PLUGIN_DEFINITIONS = [
24765
24765
  ["xero", "xero", "OAUTH2", false, "business", "Xero"],
24766
24766
  ["brex", "brex", "API_KEY", false, "business", "Brex"],
24767
24767
  ["buffer", "buffer", "OAUTH2", false, "business", "Buffer"],
24768
+ ["docusign", "docusign", "OAUTH2", false, "business", "DocuSign"],
24768
24769
  ["canva", "canva", "OAUTH2", true, "productivity", "Canva"],
24769
24770
  ["webflow", "webflow", "API_KEY", false, "business", "Webflow"],
24770
24771
  ["firecrawl", "firecrawl", "API_KEY", false, "data", "Firecrawl"],
@@ -25086,6 +25087,24 @@ function normalizeBackgroundTaskStatus(status) {
25086
25087
  // ../shared/src/display-message/constants.ts
25087
25088
  var USER_MESSAGE_MATCH_GRACE_PERIOD_MS = 3e4;
25088
25089
 
25090
+ // ../shared/src/user-message-matching.ts
25091
+ function parseTimestampMs(timestamp) {
25092
+ const value = Date.parse(timestamp);
25093
+ return Number.isFinite(value) ? value : 0;
25094
+ }
25095
+ function areUserMessagesWithinMatchWindow(a, b) {
25096
+ return a.content === b.content && Math.abs(parseTimestampMs(a.timestamp) - parseTimestampMs(b.timestamp)) <= USER_MESSAGE_MATCH_GRACE_PERIOD_MS;
25097
+ }
25098
+
25099
+ // ../shared/src/agent-event-utils.ts
25100
+ function getUserMessage(event) {
25101
+ return event.type === "event_msg" && event.payload.type === "user_message" && typeof event.payload.message === "string" ? event.payload.message : null;
25102
+ }
25103
+ function getUserMessageId(event) {
25104
+ const messageId = event.payload[USER_MESSAGE_ID_PAYLOAD_KEY];
25105
+ return typeof messageId === "string" ? messageId : null;
25106
+ }
25107
+
25089
25108
  // ../shared/src/json.ts
25090
25109
  function safeJsonParse(str, fallback) {
25091
25110
  try {
@@ -25166,6 +25185,12 @@ function createCallDisplayMessage(message) {
25166
25185
  timestamp: message.timestamp
25167
25186
  };
25168
25187
  }
25188
+ function insertDisplayMessageByTimestamp(messages, message) {
25189
+ const messageMs = parseTimestampMs(message.timestamp);
25190
+ let index = messages.length;
25191
+ while (index > 0 && parseTimestampMs(messages[index - 1].timestamp) > messageMs) index--;
25192
+ messages.splice(index, 0, message);
25193
+ }
25169
25194
 
25170
25195
  // ../shared/src/display-message/format.ts
25171
25196
  function unquoteShellArg(value) {
@@ -25233,24 +25258,6 @@ function skillNamesFromCommand(command) {
25233
25258
  })));
25234
25259
  }
25235
25260
 
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
25261
  // ../shared/src/display-message/parsers/codex-parser.ts
25255
25262
  function getStatusFromExitCode(exitCode) {
25256
25263
  return exitCode === 0 ? "completed" : "failed";
@@ -27034,6 +27041,7 @@ function duplicateBucketKey(message, bucketOffset = 0) {
27034
27041
  }
27035
27042
  function mergeCodexAspDisplayMessages(primary, supplemental) {
27036
27043
  const merged = [...primary];
27044
+ const primaryCount = primary.length;
27037
27045
  const firstIndexById = /* @__PURE__ */ new Map();
27038
27046
  const indexesByDuplicateBucket = /* @__PURE__ */ new Map();
27039
27047
  const indexMessage = (message, index) => {
@@ -27070,14 +27078,18 @@ function mergeCodexAspDisplayMessages(primary, supplemental) {
27070
27078
  unindexMessage(merged[duplicateIndex], duplicateIndex);
27071
27079
  merged[duplicateIndex] = {
27072
27080
  ...merged[duplicateIndex],
27073
- id: message.id,
27074
- timestamp: message.timestamp
27081
+ id: message.id
27075
27082
  };
27076
27083
  firstIndexById.set(message.id, duplicateIndex);
27077
27084
  indexMessage(merged[duplicateIndex], duplicateIndex);
27078
27085
  }
27079
27086
  }
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);
27087
+ const ordered = merged.slice(0, primaryCount);
27088
+ 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);
27089
+ for (const { message } of supplementalOnly) {
27090
+ insertDisplayMessageByTimestamp(ordered, message);
27091
+ }
27092
+ return ordered;
27081
27093
  }
27082
27094
  function parseCodexAspTranscript(transcript) {
27083
27095
  const messages = [];
@@ -27163,24 +27175,18 @@ function parseDisplayMessages(events, agentType, codexAspTranscript, options = {
27163
27175
  const shouldFilter = options.filter ?? true;
27164
27176
  const parsedEvents = agentType === "claude" || agentType === "relay" ? parseClaudeEvents(events, options.parentToolUseId) : parseAgentEvents(events, agentType);
27165
27177
  const legacyMessages = shouldFilter ? filterDisplayMessages(parsedEvents, agentType) : parsedEvents;
27166
- const finalize2 = (messages) => shouldFilter ? applyAuthFallbackNotices(applyInterruptions(messages, events), events) : messages;
27178
+ const applySyntheticNotices = (messages) => shouldFilter ? applyAuthFallbackNotices(applyInterruptions(messages, events), events) : messages;
27167
27179
  if (agentType !== "codex" || !codexAspTranscript) {
27168
- return finalize2(legacyMessages);
27180
+ return applySyntheticNotices(legacyMessages);
27169
27181
  }
27170
27182
  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);
27183
+ return applySyntheticNotices(mergeCodexAspDisplayMessages(nativeCodexMessages, legacyMessages));
27178
27184
  }
27179
27185
  function applyInterruptions(messages, events) {
27180
27186
  const result = [...messages];
27181
27187
  for (const event of events) {
27182
27188
  if (event.type !== CHAT_INTERRUPTED_EVENT_TYPE) continue;
27183
- insertByTimestamp(result, {
27189
+ insertDisplayMessageByTimestamp(result, {
27184
27190
  id: `interruption-${event.timestamp}`,
27185
27191
  type: "interruption",
27186
27192
  timestamp: event.timestamp
@@ -27227,7 +27233,7 @@ function applyAuthFallbackNotices(messages, events) {
27227
27233
  });
27228
27234
  if (notices.length === 0) return messages;
27229
27235
  const result = [...messages];
27230
- for (const notice of notices) insertByTimestamp(result, notice);
27236
+ for (const notice of notices) insertDisplayMessageByTimestamp(result, notice);
27231
27237
  return result;
27232
27238
  }
27233
27239
  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.564",
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": {