replicas-cli 0.3.259 → 0.3.260

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 +17 -5
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -20986,13 +20986,20 @@ function applyToolInputEvent(event, messages, provider2, state, questionFilter)
20986
20986
  if (event.type === "replicas-tool-input-request" && typeof event.payload.toolUseId === "string" && typeof event.payload.requestId === "string" && (Array.isArray(event.payload.options) || Array.isArray(event.payload.questions))) {
20987
20987
  const previous = state.resolutions.get(event.payload.toolUseId);
20988
20988
  const resolved = previous && (!previous.requestId || previous.requestId === event.payload.requestId) ? previous : void 0;
20989
+ const earlier = state.requests.get(event.payload.toolUseId);
20990
+ const same = earlier?.requestId === event.payload.requestId;
20991
+ if (!same) state.requestedAt.set(event.payload.toolUseId, event.timestamp);
20992
+ const requestedAt = state.requestedAt.get(event.payload.toolUseId) ?? event.timestamp;
20993
+ const answeredNow = resolved && (!same || earlier?.status === "pending");
20989
20994
  const inputRequest = {
20990
20995
  requestId: event.payload.requestId,
20991
20996
  status: resolved?.selectionId === "aborted" || resolved?.selectionId === "declined" ? "aborted" : resolved ? "resolved" : "pending",
20992
20997
  ...Array.isArray(event.payload.options) ? { options: event.payload.options } : {},
20993
20998
  ...Array.isArray(event.payload.questions) ? { questions: questionFilter ? event.payload.questions.filter(questionFilter) : event.payload.questions } : {},
20994
20999
  ...resolved ? { selectionId: resolved.selectionId } : {},
20995
- ...resolved?.selectionSummary ? { selectionSummary: resolved.selectionSummary } : {}
21000
+ ...resolved?.selectionSummary ? { selectionSummary: resolved.selectionSummary } : {},
21001
+ ...resolved ? { resolvedAt: resolved.resolvedAt } : {},
21002
+ waitedMs: (earlier?.waitedMs ?? 0) + (answeredNow ? Math.max(0, parseTimestampMs(resolved.resolvedAt) - parseTimestampMs(requestedAt)) : 0)
20996
21003
  };
20997
21004
  state.requests.set(event.payload.toolUseId, inputRequest);
20998
21005
  const message2 = messages.find((candidate) => candidate.type === "tool_call" && candidate.id === `${provider2}-tool-${event.payload.toolUseId}`);
@@ -21003,7 +21010,8 @@ function applyToolInputEvent(event, messages, provider2, state, questionFilter)
21003
21010
  const resolved = {
21004
21011
  ...typeof event.payload.requestId === "string" ? { requestId: event.payload.requestId } : {},
21005
21012
  selectionId: event.payload.selectionId,
21006
- ...typeof event.payload.selectionSummary === "string" ? { selectionSummary: event.payload.selectionSummary } : {}
21013
+ ...typeof event.payload.selectionSummary === "string" ? { selectionSummary: event.payload.selectionSummary } : {},
21014
+ resolvedAt: event.timestamp
21007
21015
  };
21008
21016
  state.resolutions.set(event.payload.toolUseId, resolved);
21009
21017
  const inputRequest = state.requests.get(event.payload.toolUseId);
@@ -21011,6 +21019,9 @@ function applyToolInputEvent(event, messages, provider2, state, questionFilter)
21011
21019
  inputRequest.status = resolved.selectionId === "aborted" || resolved.selectionId === "declined" ? "aborted" : "resolved";
21012
21020
  inputRequest.selectionId = resolved.selectionId;
21013
21021
  if (resolved.selectionSummary) inputRequest.selectionSummary = resolved.selectionSummary;
21022
+ inputRequest.resolvedAt = resolved.resolvedAt;
21023
+ const requestedAt = state.requestedAt.get(event.payload.toolUseId);
21024
+ if (requestedAt) inputRequest.waitedMs = (inputRequest.waitedMs ?? 0) + Math.max(0, parseTimestampMs(resolved.resolvedAt) - parseTimestampMs(requestedAt));
21014
21025
  }
21015
21026
  return true;
21016
21027
  }
@@ -29759,7 +29770,7 @@ var init_opencode_parser = __esm({
29759
29770
  function parseMuseEvents(events) {
29760
29771
  const messages = [];
29761
29772
  const deltas = /* @__PURE__ */ new Map();
29762
- const inputState = { requests: /* @__PURE__ */ new Map(), resolutions: /* @__PURE__ */ new Map() };
29773
+ const inputState = { requests: /* @__PURE__ */ new Map(), resolutions: /* @__PURE__ */ new Map(), requestedAt: /* @__PURE__ */ new Map() };
29763
29774
  for (const event of events) {
29764
29775
  const userContent = getUserMessage(event);
29765
29776
  if (userContent !== null) {
@@ -30659,7 +30670,8 @@ function parseClaudeEvents(events, parentToolUseId) {
30659
30670
  ...message2.inputRequest,
30660
30671
  status: payload.selectionId === "aborted" ? "aborted" : "resolved",
30661
30672
  selectionId: payload.selectionId,
30662
- selectionSummary: payload.selectionSummary
30673
+ selectionSummary: payload.selectionSummary,
30674
+ resolvedAt: event.timestamp
30663
30675
  };
30664
30676
  }
30665
30677
  });
@@ -31548,7 +31560,7 @@ var CLI_VERSION;
31548
31560
  var init_cli_version = __esm({
31549
31561
  "../shared/src/cli-version.ts"() {
31550
31562
  "use strict";
31551
- CLI_VERSION = "0.3.259";
31563
+ CLI_VERSION = "0.3.260";
31552
31564
  }
31553
31565
  });
31554
31566
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.3.259",
3
+ "version": "0.3.260",
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": {