replicas-engine 0.1.226 → 0.1.227

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/src/index.js +77 -9
  2. package/package.json +1 -1
package/dist/src/index.js CHANGED
@@ -1773,7 +1773,7 @@ function isClaudeAuthErrorText(text) {
1773
1773
  }
1774
1774
 
1775
1775
  // ../shared/src/engine/environment.ts
1776
- var DAYTONA_SNAPSHOT_ID = "28-05-2026-royal-york-v3";
1776
+ var DAYTONA_SNAPSHOT_ID = "28-05-2026-royal-york-v4";
1777
1777
 
1778
1778
  // ../shared/src/engine/types.ts
1779
1779
  var DEFAULT_CHAT_TITLES = {
@@ -5425,6 +5425,23 @@ var AspClient = class {
5425
5425
  console.warn(`[AspClient] Failed to send response ${String(id)}:`, error);
5426
5426
  }
5427
5427
  }
5428
+ reject(id, code, message, data) {
5429
+ if (this.disposed) {
5430
+ return;
5431
+ }
5432
+ try {
5433
+ this.write({
5434
+ id,
5435
+ error: {
5436
+ code,
5437
+ message,
5438
+ ...data !== void 0 ? { data } : {}
5439
+ }
5440
+ });
5441
+ } catch (error) {
5442
+ console.warn(`[AspClient] Failed to send error response ${String(id)}:`, error);
5443
+ }
5444
+ }
5428
5445
  dispose(reason = new Error("ASP client disposed")) {
5429
5446
  if (this.disposed) {
5430
5447
  return;
@@ -6098,7 +6115,7 @@ function dedupeTranscriptItems(items) {
6098
6115
  deduped.push(item);
6099
6116
  continue;
6100
6117
  }
6101
- deduped[existingIndex] = mergeTranscriptItem(deduped[existingIndex], item);
6118
+ deduped[existingIndex] = mergeCodexAspTranscriptItem(deduped[existingIndex], item);
6102
6119
  }
6103
6120
  return deduped;
6104
6121
  }
@@ -6253,8 +6270,6 @@ var FILE_CHANGE_OUTPUT_DELTA_METHOD = "item/fileChange/outputDelta";
6253
6270
  var ACCOUNT_RATE_LIMITS_UPDATED_METHOD = "account/rateLimits/updated";
6254
6271
  var THREAD_TOKEN_USAGE_UPDATED_METHOD = "thread/tokenUsage/updated";
6255
6272
  var THREAD_COMPACTED_METHOD = "thread/compacted";
6256
- var COMMAND_APPROVAL_METHOD = "item/commandExecution/requestApproval";
6257
- var FILE_CHANGE_APPROVAL_METHOD = "item/fileChange/requestApproval";
6258
6273
  function dispatchAspNotification(notification, handlers) {
6259
6274
  const handler = handlers[notification.method];
6260
6275
  if (!handler) return;
@@ -6631,11 +6646,10 @@ var CodexAspManager = class extends CodingAgentManager {
6631
6646
  dispatchAspNotification(notification, handlers);
6632
6647
  };
6633
6648
  const onServerRequest = (serverRequest) => {
6634
- if (serverRequest.method !== COMMAND_APPROVAL_METHOD && serverRequest.method !== FILE_CHANGE_APPROVAL_METHOD) {
6635
- return;
6636
- }
6637
- console.warn("[CodexAspManager] approval requested while sandbox is danger-full-access");
6638
- host.client.respond(serverRequest.id, { decision: "accept" });
6649
+ void this.respondToServerRequest(host, serverRequest).catch((error) => {
6650
+ console.warn(`[CodexAspManager] Failed to handle ASP server request ${serverRequest.method}:`, error);
6651
+ host.client.reject(serverRequest.id, -32603, `Failed to handle ${serverRequest.method}`);
6652
+ });
6639
6653
  };
6640
6654
  const onDispose = (reason) => {
6641
6655
  this.threadAttached = false;
@@ -6666,6 +6680,60 @@ var CodexAspManager = class extends CodingAgentManager {
6666
6680
  }
6667
6681
  }
6668
6682
  }
6683
+ async respondToServerRequest(host, serverRequest) {
6684
+ const requestId = serverRequest.id;
6685
+ const method = serverRequest.method;
6686
+ switch (serverRequest.method) {
6687
+ case "item/commandExecution/requestApproval":
6688
+ case "item/fileChange/requestApproval":
6689
+ console.warn("[CodexAspManager] approval requested while sandbox is danger-full-access");
6690
+ host.client.respond(requestId, { decision: "accept" });
6691
+ return;
6692
+ case "execCommandApproval":
6693
+ case "applyPatchApproval":
6694
+ console.warn("[CodexAspManager] legacy approval requested while sandbox is danger-full-access");
6695
+ host.client.respond(requestId, { decision: "approved" });
6696
+ return;
6697
+ case "item/permissions/requestApproval": {
6698
+ const requested = serverRequest.params.permissions;
6699
+ const permissions = {};
6700
+ if (requested.network) permissions.network = requested.network;
6701
+ if (requested.fileSystem) permissions.fileSystem = requested.fileSystem;
6702
+ const response = {
6703
+ permissions,
6704
+ scope: "turn"
6705
+ };
6706
+ host.client.respond(requestId, response);
6707
+ return;
6708
+ }
6709
+ case "item/tool/call": {
6710
+ const response = {
6711
+ success: false,
6712
+ contentItems: [{
6713
+ type: "inputText",
6714
+ text: `Replicas does not support Codex dynamic tool calls yet: ${serverRequest.params.namespace ? `${serverRequest.params.namespace}.` : ""}${serverRequest.params.tool}`
6715
+ }]
6716
+ };
6717
+ host.client.respond(requestId, response);
6718
+ return;
6719
+ }
6720
+ case "mcpServer/elicitation/request": {
6721
+ const response = {
6722
+ action: "cancel",
6723
+ content: null,
6724
+ _meta: null
6725
+ };
6726
+ host.client.respond(requestId, response);
6727
+ return;
6728
+ }
6729
+ case "item/tool/requestUserInput":
6730
+ case "account/chatgptAuthTokens/refresh":
6731
+ case "attestation/generate":
6732
+ host.client.reject(requestId, -32601, `Replicas does not support ASP server request ${method}`);
6733
+ return;
6734
+ }
6735
+ host.client.reject(requestId, -32601, `Replicas does not support ASP server request ${method}`);
6736
+ }
6669
6737
  nextTranscriptSequence() {
6670
6738
  return this.codexAspSequence++;
6671
6739
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.226",
3
+ "version": "0.1.227",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",