replicas-cli 0.3.199 → 0.3.201

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 +72 -5
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -351,6 +351,26 @@ var init_saved_order = __esm({
351
351
  }
352
352
  });
353
353
 
354
+ // ../shared/src/palette-search.ts
355
+ var DAY_MS, RECENCY_HALF_LIFE_MS, SEARCH_OPEN_DEDUPE_MS, PICK_WINDOW_MS;
356
+ var init_palette_search = __esm({
357
+ "../shared/src/palette-search.ts"() {
358
+ "use strict";
359
+ DAY_MS = 24 * 60 * 60 * 1e3;
360
+ RECENCY_HALF_LIFE_MS = 14 * DAY_MS;
361
+ SEARCH_OPEN_DEDUPE_MS = 10 * 60 * 1e3;
362
+ PICK_WINDOW_MS = 21 * DAY_MS;
363
+ }
364
+ });
365
+
366
+ // ../shared/src/message-search.ts
367
+ var init_message_search = __esm({
368
+ "../shared/src/message-search.ts"() {
369
+ "use strict";
370
+ init_palette_search();
371
+ }
372
+ });
373
+
354
374
  // ../shared/src/agent.ts
355
375
  function isValidAgentProvider(value) {
356
376
  return VALID_AGENT_PROVIDERS.some((p) => p === value);
@@ -16532,7 +16552,7 @@ var init_chat_fork = __esm({
16532
16552
  provider: external_exports.enum(VALID_AGENT_PROVIDERS),
16533
16553
  title: external_exports.string()
16534
16554
  }),
16535
- trigger: external_exports.enum(["manual", "auto", "side"]),
16555
+ trigger: external_exports.enum(["manual", "auto", "side", "switch"]),
16536
16556
  reason: fallbackReasonSchema.optional(),
16537
16557
  state: external_exports.enum(["preparing", "ready", "failed"]),
16538
16558
  error: external_exports.string().optional(),
@@ -16651,7 +16671,7 @@ function parseCodexTurnRetryPayload(payload) {
16651
16671
  const { attempt, maxAttempts, [CODEX_ASP_ITEM_ID_PAYLOAD_KEY]: turnId } = payload;
16652
16672
  return typeof attempt === "number" && typeof maxAttempts === "number" && typeof turnId === "string" ? { attempt, maxAttempts, [CODEX_ASP_ITEM_ID_PAYLOAD_KEY]: turnId } : void 0;
16653
16673
  }
16654
- var CLAUDE_PARTIAL_MESSAGE_EVENT_TYPE, ACCEPTED_USER_MESSAGE_SOURCE, QUEUED_MESSAGE_REMOVED_EVENT_TYPE, REMOVED_MESSAGE_IDS_PAYLOAD_KEY, USER_MESSAGE_ID_PAYLOAD_KEY, REPLACED_MESSAGE_ID_PAYLOAD_KEY, CODEX_ASP_ITEM_ID_PAYLOAD_KEY, CODEX_ITEM_EVENT_TYPE, CODEX_ITEM_PARTIAL_EVENT_TYPE, CODEX_TURN_EVENT_TYPE, CODEX_TURN_RETRY_EVENT_TYPE, CODEX_QUOTA_STATUS_EVENT_TYPE, CHAT_INTERRUPTED_EVENT_TYPE, CHAT_MESSAGE_REJECTED_EVENT_TYPE, CHAT_TURN_LOST_EVENT_TYPE, AUTH_FALLBACK_EVENT_TYPE;
16674
+ var CLAUDE_PARTIAL_MESSAGE_EVENT_TYPE, ACCEPTED_USER_MESSAGE_SOURCE, QUEUED_MESSAGE_REMOVED_EVENT_TYPE, REMOVED_MESSAGE_IDS_PAYLOAD_KEY, USER_MESSAGE_ID_PAYLOAD_KEY, REPLACED_MESSAGE_ID_PAYLOAD_KEY, CODEX_ASP_ITEM_ID_PAYLOAD_KEY, CODEX_ITEM_EVENT_TYPE, CODEX_ITEM_PARTIAL_EVENT_TYPE, CODEX_TURN_EVENT_TYPE, CODEX_TURN_RETRY_EVENT_TYPE, CODEX_QUOTA_STATUS_EVENT_TYPE, CHAT_INTERRUPTED_EVENT_TYPE, CHAT_MESSAGE_REJECTED_EVENT_TYPE, CHAT_TURN_LOST_EVENT_TYPE, CLAUDE_PEER_MESSAGE_EVENT_TYPE, AUTH_FALLBACK_EVENT_TYPE;
16655
16675
  var init_event = __esm({
16656
16676
  "../shared/src/event.ts"() {
16657
16677
  "use strict";
@@ -16674,6 +16694,7 @@ var init_event = __esm({
16674
16694
  CHAT_INTERRUPTED_EVENT_TYPE = "replicas-interrupted";
16675
16695
  CHAT_MESSAGE_REJECTED_EVENT_TYPE = "replicas-message-rejected";
16676
16696
  CHAT_TURN_LOST_EVENT_TYPE = "replicas-turn-lost";
16697
+ CLAUDE_PEER_MESSAGE_EVENT_TYPE = "claude-peer-message";
16677
16698
  AUTH_FALLBACK_EVENT_TYPE = "auth-fallback";
16678
16699
  }
16679
16700
  });
@@ -16710,7 +16731,7 @@ function codexTurnFromEvent(event) {
16710
16731
  const { turnId, status, error: error51 } = event.payload;
16711
16732
  return typeof turnId === "string" && typeof status === "string" ? { turnId, status, ...typeof error51 === "string" ? { error: error51 } : {} } : null;
16712
16733
  }
16713
- var MERGED_MESSAGE_SEPARATOR, updateChatDisplayNameRequestSchema, createChatRequestSchema, spawnSubagentRequestSchema, messageSubagentRequestSchema, waitSubagentRequestSchema, subagentResponseSchema, integrationErrorNotificationTargetSchema, sendChatMessageRequestSchema, CODEX_ITEM_FIELD_CHECKS;
16734
+ var MERGED_MESSAGE_SEPARATOR, updateChatDisplayNameRequestSchema, createChatRequestSchema, spawnSubagentRequestSchema, messageSubagentRequestSchema, waitSubagentRequestSchema, subagentResponseSchema, integrationErrorNotificationTargetSchema, sendChatMessageRequestSchema, CODEX_ITEM_FIELD_CHECKS, sendChatMessageResponseSchema;
16714
16735
  var init_v1 = __esm({
16715
16736
  "../shared/src/engine/v1.ts"() {
16716
16737
  "use strict";
@@ -16792,6 +16813,7 @@ var init_v1 = __esm({
16792
16813
  messageId: external_exports.string().min(1).optional(),
16793
16814
  submittedAt: external_exports.string().datetime().optional(),
16794
16815
  message: external_exports.string().min(1),
16816
+ provider: external_exports.enum(VALID_AGENT_PROVIDERS).optional(),
16795
16817
  model: external_exports.string().optional(),
16796
16818
  customInstructions: external_exports.string().optional(),
16797
16819
  planMode: external_exports.boolean().optional(),
@@ -16836,6 +16858,12 @@ var init_v1 = __esm({
16836
16858
  contextCompaction: (item) => isTranscriptItemStatus(item.status),
16837
16859
  error: (item) => typeof item.message === "string"
16838
16860
  };
16861
+ sendChatMessageResponseSchema = external_exports.object({
16862
+ messageId: external_exports.string(),
16863
+ queued: external_exports.boolean(),
16864
+ position: external_exports.number(),
16865
+ chatId: external_exports.string().optional()
16866
+ });
16839
16867
  }
16840
16868
  });
16841
16869
 
@@ -29899,6 +29927,8 @@ function parseClaudeEvents(events, parentToolUseId) {
29899
29927
  });
29900
29928
  const toolCallMap = /* @__PURE__ */ new Map();
29901
29929
  const taskMessageMap = /* @__PURE__ */ new Map();
29930
+ const peerNames = /* @__PURE__ */ new Map();
29931
+ const peerTimestamps = /* @__PURE__ */ new Map();
29902
29932
  const workflowAgentMessageMap = /* @__PURE__ */ new Map();
29903
29933
  const ambientTaskIds = /* @__PURE__ */ new Set();
29904
29934
  const partialIndexes = /* @__PURE__ */ new Map();
@@ -29996,6 +30026,22 @@ function parseClaudeEvents(events, parentToolUseId) {
29996
30026
  partialIndexes.set(payload.streamId, existing);
29997
30027
  return;
29998
30028
  }
30029
+ if (event.type === CLAUDE_PEER_MESSAGE_EVENT_TYPE) {
30030
+ const { name, from, body } = event.payload;
30031
+ if (typeof body !== "string") return;
30032
+ if (typeof name === "string" && typeof from === "string") peerNames.set(from, name);
30033
+ const sameTime = peerTimestamps.get(event.timestamp) ?? 0;
30034
+ peerTimestamps.set(event.timestamp, sameTime + 1);
30035
+ messages.push({
30036
+ id: `peer-${event.timestamp}-${sameTime}`,
30037
+ type: "peer_message",
30038
+ direction: "received",
30039
+ ...typeof name === "string" ? { chat: name } : {},
30040
+ content: body,
30041
+ timestamp: event.timestamp
30042
+ });
30043
+ return;
30044
+ }
29999
30045
  if (event.type === "claude-user") {
30000
30046
  const content = normalizeContentBlocks(event.payload.message?.content);
30001
30047
  const toolResult = content.find((c) => c.type === "tool_result");
@@ -30136,6 +30182,20 @@ function parseClaudeEvents(events, parentToolUseId) {
30136
30182
  timestamp: event.timestamp
30137
30183
  });
30138
30184
  }
30185
+ } else if (toolName === "SendMessage") {
30186
+ const parsed = typeof toolInput === "string" ? safeJsonParse(toolInput, {}) : toolInput;
30187
+ const input = isRecord(parsed) ? parsed : {};
30188
+ const to = typeof input.to === "string" ? input.to.replace(/\s+\[[0-9a-f]+\]$/, "") : "";
30189
+ const chat2 = peerNames.get(to) ?? (to.startsWith("uds:") ? void 0 : to || void 0);
30190
+ messages.push({
30191
+ id: `peer-${toolUseId}`,
30192
+ type: "peer_message",
30193
+ direction: "sent",
30194
+ ...chat2 ? { chat: chat2 } : {},
30195
+ content: typeof input.message === "string" ? input.message : "",
30196
+ status: "in_progress",
30197
+ timestamp: event.timestamp
30198
+ });
30139
30199
  } else if (toolName === "WebSearch") {
30140
30200
  const inputObj = typeof toolInput === "string" ? safeJsonParse(toolInput, {}) : toolInput;
30141
30201
  const query = inputObj.query || "";
@@ -30306,6 +30366,9 @@ function parseClaudeEvents(events, parentToolUseId) {
30306
30366
  message2.status = status;
30307
30367
  } else if (message2.type === "web_search") {
30308
30368
  message2.status = status;
30369
+ } else if (message2.type === "peer_message") {
30370
+ const result2 = safeJsonParse(resultContent, {});
30371
+ message2.status = isError || isRecord(result2) && result2.success === false ? "failed" : "completed";
30309
30372
  } else if (message2.type === "tool_call") {
30310
30373
  message2.output = resultContent;
30311
30374
  message2.outputOmitted = outputOmitted;
@@ -31239,7 +31302,7 @@ var CLI_VERSION;
31239
31302
  var init_cli_version = __esm({
31240
31303
  "../shared/src/cli-version.ts"() {
31241
31304
  "use strict";
31242
- CLI_VERSION = "0.3.199";
31305
+ CLI_VERSION = "0.3.201";
31243
31306
  }
31244
31307
  });
31245
31308
 
@@ -32009,7 +32072,7 @@ var init_user = __esm({
32009
32072
  });
32010
32073
 
32011
32074
  // ../shared/src/routes/client-state.ts
32012
- var MAX_CLIENT_STATE_REQUEST_BYTES, MAX_CLIENT_STATE_BYTES_PER_USER, WORKSPACE_LAST_VIEWED_AT_CLIENT_STATE_KEY_PREFIX, WORKSPACE_ATTENTION_DONE_CLIENT_STATE_KEY_PREFIX, WORKSPACE_SECTION_ORDER_CLIENT_STATE_KEY_PREFIX, WORKSPACE_STAGES_CLIENT_STATE_KEY_PREFIX, WORKSPACE_MARKED_UNREAD_CLIENT_STATE_KEY_PREFIX, PROMPT_HISTORY_CLIENT_STATE_KEY_PREFIX, orgUserClientStateKey, workspaceLastViewedAtClientStateKey, workspaceAttentionDoneClientStateKey, workspaceStagesClientStateKey, workspaceSectionOrderClientStateKey, workspaceMarkedUnreadClientStateKey, promptHistoryClientStateKey;
32075
+ var MAX_CLIENT_STATE_REQUEST_BYTES, MAX_CLIENT_STATE_BYTES_PER_USER, WORKSPACE_LAST_VIEWED_AT_CLIENT_STATE_KEY_PREFIX, WORKSPACE_ATTENTION_DONE_CLIENT_STATE_KEY_PREFIX, WORKSPACE_SECTION_ORDER_CLIENT_STATE_KEY_PREFIX, WORKSPACE_STAGES_CLIENT_STATE_KEY_PREFIX, WORKSPACE_MARKED_UNREAD_CLIENT_STATE_KEY_PREFIX, PROMPT_HISTORY_CLIENT_STATE_KEY_PREFIX, WORKSPACE_SEARCH_OPENS_CLIENT_STATE_KEY_PREFIX, orgUserClientStateKey, workspaceLastViewedAtClientStateKey, workspaceAttentionDoneClientStateKey, workspaceStagesClientStateKey, workspaceSectionOrderClientStateKey, workspaceMarkedUnreadClientStateKey, promptHistoryClientStateKey, workspaceSearchOpensClientStateKey;
32013
32076
  var init_client_state = __esm({
32014
32077
  "../shared/src/routes/client-state.ts"() {
32015
32078
  "use strict";
@@ -32021,6 +32084,7 @@ var init_client_state = __esm({
32021
32084
  WORKSPACE_STAGES_CLIENT_STATE_KEY_PREFIX = "replicas-workspace-stages-";
32022
32085
  WORKSPACE_MARKED_UNREAD_CLIENT_STATE_KEY_PREFIX = "replicas-workspace-marked-unread-";
32023
32086
  PROMPT_HISTORY_CLIENT_STATE_KEY_PREFIX = "replicas-prompt-history-";
32087
+ WORKSPACE_SEARCH_OPENS_CLIENT_STATE_KEY_PREFIX = "replicas-workspace-search-opens-";
32024
32088
  orgUserClientStateKey = (prefix) => (organizationId, userId) => `${prefix}${organizationId}-${userId}`;
32025
32089
  workspaceLastViewedAtClientStateKey = orgUserClientStateKey(WORKSPACE_LAST_VIEWED_AT_CLIENT_STATE_KEY_PREFIX);
32026
32090
  workspaceAttentionDoneClientStateKey = orgUserClientStateKey(WORKSPACE_ATTENTION_DONE_CLIENT_STATE_KEY_PREFIX);
@@ -32028,6 +32092,7 @@ var init_client_state = __esm({
32028
32092
  workspaceSectionOrderClientStateKey = orgUserClientStateKey(WORKSPACE_SECTION_ORDER_CLIENT_STATE_KEY_PREFIX);
32029
32093
  workspaceMarkedUnreadClientStateKey = orgUserClientStateKey(WORKSPACE_MARKED_UNREAD_CLIENT_STATE_KEY_PREFIX);
32030
32094
  promptHistoryClientStateKey = orgUserClientStateKey(PROMPT_HISTORY_CLIENT_STATE_KEY_PREFIX);
32095
+ workspaceSearchOpensClientStateKey = orgUserClientStateKey(WORKSPACE_SEARCH_OPENS_CLIENT_STATE_KEY_PREFIX);
32031
32096
  }
32032
32097
  });
32033
32098
 
@@ -32741,6 +32806,8 @@ var init_src = __esm({
32741
32806
  init_result();
32742
32807
  init_access();
32743
32808
  init_saved_order();
32809
+ init_palette_search();
32810
+ init_message_search();
32744
32811
  init_agent();
32745
32812
  init_agent_availability();
32746
32813
  init_agent_quota();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.3.199",
3
+ "version": "0.3.201",
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": {