replicas-engine 0.1.1303 → 0.1.1306

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.
@@ -8,12 +8,12 @@ import {
8
8
  listRunningCodexModels,
9
9
  restartCodexAspHost,
10
10
  restartCodexAspHostIfRunning
11
- } from "./chunk-5OA7WBDC.js";
12
- import "./chunk-5ERKSVWK.js";
13
- import "./chunk-VQQPKWKF.js";
14
- import "./chunk-5MKQOOKZ.js";
11
+ } from "./chunk-YJ7NCHM6.js";
12
+ import "./chunk-TKAWFIXX.js";
13
+ import "./chunk-OSPDTEXF.js";
14
+ import "./chunk-IHC4JY3Q.js";
15
15
  import "./chunk-UZSNFLDQ.js";
16
- import "./chunk-MXHSZLHO.js";
16
+ import "./chunk-QBNBBWCE.js";
17
17
  import "./chunk-VEQXQN22.js";
18
18
  export {
19
19
  CODEX_ULTRAFAST_SERVICE_TIER,
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  AspClient
6
- } from "./chunk-VQQPKWKF.js";
6
+ } from "./chunk-OSPDTEXF.js";
7
7
  import {
8
8
  ASTER_BASE_URL,
9
9
  ASTER_PROVIDER,
@@ -15,7 +15,7 @@ import {
15
15
  isRecord,
16
16
  readOllamaAuthEnv,
17
17
  readOpenAICompatibleAuthEnv
18
- } from "./chunk-MXHSZLHO.js";
18
+ } from "./chunk-QBNBBWCE.js";
19
19
 
20
20
  // src/managers/codex-asp/notification-dispatch.ts
21
21
  var TURN_STARTED_METHOD = "turn/started";
@@ -5,7 +5,7 @@ import {
5
5
  extractCommandProtectionCommandText,
6
6
  isRecord,
7
7
  parseCodeHostPrUrl
8
- } from "./chunk-MXHSZLHO.js";
8
+ } from "./chunk-QBNBBWCE.js";
9
9
 
10
10
  // src/services/published-pull-request-urls.ts
11
11
  function publishedPullRequestUrls(result) {
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  HOOK_EXEC_MAX_BUFFER_BYTES
6
- } from "./chunk-MXHSZLHO.js";
6
+ } from "./chunk-QBNBBWCE.js";
7
7
 
8
8
  // src/utils/exec.ts
9
9
  import { exec, execFile } from "child_process";
@@ -3,10 +3,10 @@ import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  execFileAsync
6
- } from "./chunk-5MKQOOKZ.js";
6
+ } from "./chunk-IHC4JY3Q.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-MXHSZLHO.js";
9
+ } from "./chunk-QBNBBWCE.js";
10
10
 
11
11
  // src/utils/codex-agent-env.ts
12
12
  function buildCodexAgentEnv(source = process.env) {
@@ -240,7 +240,7 @@ function getCodexModelProvider(method) {
240
240
  if (method === "foundry") return "azure";
241
241
  return method === "ollama" || method === "openai-compatible" ? "replicas_openai_compatible" : "openai";
242
242
  }
243
- var ENGINE_PACKAGE_VERSION = "0.1.1303";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.1306";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -9720,6 +9720,7 @@ function findPushSignals({ commands, invocations, truncated }, context) {
9720
9720
  });
9721
9721
  return truncated ? [...signals, "git-push-unknown-destination"] : signals;
9722
9722
  }
9723
+ var apiMethod = (args) => /(?:^|\s)(?:-X\s*|--method[\s=])(\w+)/i.exec(args.join(" "))?.[1]?.toUpperCase();
9723
9724
  function isPrMergeCommand(argv) {
9724
9725
  const name = argv[0].split("/").pop();
9725
9726
  if (name !== "gh" && name !== "glab") return false;
@@ -9727,8 +9728,7 @@ function isPrMergeCommand(argv) {
9727
9728
  if (args.includes("--help") || args.includes("-h")) return false;
9728
9729
  const words = args.filter((arg, index) => !arg.startsWith("-") && !/^(?:-R|--repo)$/.test(args[index - 1] ?? ""));
9729
9730
  if (words[0] === (name === "gh" ? "pr" : "mr") && words[1] === "merge") return true;
9730
- const method = /(?:^|\s)(?:-X\s*|--method[\s=])(\w+)/i.exec(args.join(" "))?.[1];
9731
- return words[0] === "api" && method?.toUpperCase() === "PUT" && words.some((word) => /\/(?:pulls|merge_requests)\/[^/]+\/merge$/.test(word));
9731
+ return words[0] === "api" && apiMethod(args) === "PUT" && words.some((word) => /\/(?:pulls|merge_requests)\/[^/]+\/merge$/.test(word));
9732
9732
  }
9733
9733
  var matchingChecks = (checks, text3) => checks.flatMap(([name, pattern]) => pattern.test(text3) ? [name] : []);
9734
9734
  function executedText(commands, keepWord = () => true) {
@@ -9760,6 +9760,29 @@ function findPrMergeSignals(parsed, context) {
9760
9760
  function findGitCommitSignals({ invocations, truncated }) {
9761
9761
  return truncated || invocations.some(({ subcommand }) => subcommand === "commit") ? ["git-commit"] : [];
9762
9762
  }
9763
+ var SCOUT_BLOCKED_GIT_SUBCOMMANDS = /* @__PURE__ */ new Set(["clone", "push"]);
9764
+ var SCOUT_BLOCKED_HOST_COMMANDS = {
9765
+ gh: ["repo clone", "repo fork", "pr create", "pr new"],
9766
+ glab: ["repo clone", "repo fork", "mr create", "mr new"]
9767
+ };
9768
+ function findScoutRepoWriteSignals(parsed) {
9769
+ const { commands, invocations } = parsed;
9770
+ return [.../* @__PURE__ */ new Set([
9771
+ ...findGitCommitSignals(parsed),
9772
+ ...invocations.flatMap(({ subcommand }) => SCOUT_BLOCKED_GIT_SUBCOMMANDS.has(subcommand) ? [`git-${subcommand}`] : []),
9773
+ ...commands.flatMap(({ argv }) => {
9774
+ const name = argv[0].split("/").pop() ?? "";
9775
+ const args = argv.slice(1);
9776
+ const words = args.filter((arg, index) => !arg.startsWith("-") && !/^(?:-R|--repo)$/.test(args[index - 1] ?? ""));
9777
+ const command = words.slice(0, 2).join(" ");
9778
+ if (SCOUT_BLOCKED_HOST_COMMANDS[name]?.includes(command)) return [`${name}-${command.replace(" ", "-")}`];
9779
+ if (name !== "gh" || words[0] !== "api" || !words.some((word) => /\/pulls\/?$/.test(word))) return [];
9780
+ const method = apiMethod(args);
9781
+ const hasFields = args.some((arg) => /^(?:-[fF]|--(?:raw-)?field(?:=|$)|--input(?:=|$))/.test(arg));
9782
+ return (method ? method === "POST" : hasFields) ? ["gh-api-create-pull-request"] : [];
9783
+ })
9784
+ ])];
9785
+ }
9763
9786
  function findCommandProtectionGitLookups({ invocations }) {
9764
9787
  const writes = invocations.filter(({ subcommand }) => subcommand === "commit" || subcommand === "push");
9765
9788
  const messageFiles = writes.flatMap(({ subcommand, args, dir, command }) => {
@@ -10892,6 +10915,7 @@ export {
10892
10915
  parseCommandProtectionRequest,
10893
10916
  findPrMergeSignals,
10894
10917
  findGitCommitSignals,
10918
+ findScoutRepoWriteSignals,
10895
10919
  findCommandProtectionGitLookups,
10896
10920
  shouldRefreshPullRequests,
10897
10921
  MAX_REPO_FILE_CONTENT_BYTES,
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  SUBPROCESS_MAX_BUFFER,
6
6
  execFileAsync
7
- } from "./chunk-5MKQOOKZ.js";
7
+ } from "./chunk-IHC4JY3Q.js";
8
8
  import {
9
9
  isRecord as isRecord2
10
10
  } from "./chunk-UZSNFLDQ.js";
@@ -22,7 +22,7 @@ import {
22
22
  provisionedDeviceSchema,
23
23
  readReplicasRuntimeEnv,
24
24
  serializePosixEnvFile
25
- } from "./chunk-MXHSZLHO.js";
25
+ } from "./chunk-QBNBBWCE.js";
26
26
 
27
27
  // src/runtime-env-loader.ts
28
28
  import { readFileSync } from "fs";
@@ -172,6 +172,7 @@ function loadEngineEnv(runtimeEnvValues) {
172
172
  REPLICAS_ENV_DEVICES: parseDevices(readEnv("REPLICAS_ENV_DEVICES")),
173
173
  TS_AUTHKEY: readEnv("TS_AUTHKEY"),
174
174
  REPLICAS_DISABLE_AUTO_START_HOOKS: readEnv("REPLICAS_DISABLE_AUTO_START_HOOKS")?.toLowerCase() === "true",
175
+ REPLICAS_SCOUT: readEnv("REPLICAS_SCOUT") === "true",
175
176
  REPLICAS_MAX_LIVE_AGENT_PROCESSES: Number(readEnv("REPLICAS_MAX_LIVE_AGENT_PROCESSES")) || void 0
176
177
  };
177
178
  delete process.env.REPLICAS_ENV_DEVICES;
@@ -354,16 +355,16 @@ var MonolithService = class {
354
355
  var monolithService = new MonolithService();
355
356
 
356
357
  export {
357
- runGitCommand,
358
- readRepoHeadBranches,
359
- getOriginDefaultBranch,
360
- getCurrentBranch,
361
- resolveDiffBase,
362
358
  readRuntimeEnvFile,
363
359
  ENGINE_ENV,
364
360
  reloadEngineEnv,
365
361
  setLinearSessionId,
366
362
  setAgentCredentialSnapshot,
363
+ runGitCommand,
364
+ readRepoHeadBranches,
365
+ getOriginDefaultBranch,
366
+ getCurrentBranch,
367
+ resolveDiffBase,
367
368
  monolithRequest,
368
369
  monolithService
369
370
  };
@@ -2,22 +2,25 @@
2
2
  import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
+ ENGINE_ENV,
5
6
  getOriginDefaultBranch,
6
7
  monolithRequest,
7
8
  runGitCommand
8
- } from "./chunk-5ERKSVWK.js";
9
+ } from "./chunk-TKAWFIXX.js";
9
10
  import {
10
11
  extractCommandProtectionCommandText,
11
12
  findCommandProtectionGitLookups,
12
13
  findGitCommitSignals,
13
14
  findPrMergeSignals,
15
+ findScoutRepoWriteSignals,
14
16
  parseCommandProtectionRequest
15
- } from "./chunk-MXHSZLHO.js";
17
+ } from "./chunk-QBNBBWCE.js";
16
18
 
17
19
  // src/services/command-protection-service.ts
18
20
  import { readFile, stat } from "fs/promises";
19
21
  var DEFAULT_COMMAND_PROTECTION_BLOCK_MESSAGE = "Blocked by Replicas command protection.";
20
22
  var MAX_COMMIT_MESSAGE_FILE_BYTES = 64 * 1024;
23
+ var SCOUT_REPO_WRITE_BLOCK_MESSAGE = "Scout never clones, commits, pushes, or opens pull requests. Spawn a workspace on an environment that has the repository, or relay this to the thread's workspace.";
21
24
  async function resolveGitContext({ repoDirs, messageFiles }) {
22
25
  if (repoDirs.length === 0 && messageFiles.length === 0) return void 0;
23
26
  const git = (dir, args) => runGitCommand(args, dir).then((output) => output || null, () => null);
@@ -56,6 +59,10 @@ function failClosed(reason, matchedSignals) {
56
59
  }
57
60
  async function evaluateCommandProtection(request, signal) {
58
61
  const parsed = parseCommandProtectionRequest(request);
62
+ const scoutSignals = ENGINE_ENV.REPLICAS_SCOUT ? findScoutRepoWriteSignals(parsed) : [];
63
+ if (scoutSignals.length > 0) {
64
+ return { allowed: false, enabled: true, reason: SCOUT_REPO_WRITE_BLOCK_MESSAGE, matchedSignals: scoutSignals };
65
+ }
59
66
  const gitContext = await resolveGitContext(findCommandProtectionGitLookups(parsed));
60
67
  const matchedSignals = [...findGitCommitSignals(parsed), ...findPrMergeSignals(parsed, gitContext).signals];
61
68
  if (matchedSignals.length === 0) {
@@ -10,15 +10,15 @@ import {
10
10
  resolveDiffBase,
11
11
  runGitCommand,
12
12
  setAgentCredentialSnapshot
13
- } from "./chunk-5ERKSVWK.js";
13
+ } from "./chunk-TKAWFIXX.js";
14
14
  import {
15
15
  AppServerProcess,
16
16
  buildCodexAgentEnv
17
- } from "./chunk-VQQPKWKF.js";
17
+ } from "./chunk-OSPDTEXF.js";
18
18
  import {
19
19
  SUBPROCESS_MAX_BUFFER,
20
20
  execFileAsync
21
- } from "./chunk-5MKQOOKZ.js";
21
+ } from "./chunk-IHC4JY3Q.js";
22
22
  import {
23
23
  isRecord
24
24
  } from "./chunk-UZSNFLDQ.js";
@@ -56,7 +56,7 @@ import {
56
56
  resolveOpenAICompatibleModelsUrl,
57
57
  splitMothershipInstructions,
58
58
  withTimeout
59
- } from "./chunk-MXHSZLHO.js";
59
+ } from "./chunk-QBNBBWCE.js";
60
60
 
61
61
  // src/managers/codex-token-manager.ts
62
62
  import { promises as fs } from "fs";
@@ -306,7 +306,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
306
306
  await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
307
307
  await this.applyCredentialsResponse(data);
308
308
  setAgentCredentialSnapshot("codex", data);
309
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-SNQAHZ4O.js");
309
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-AQZFJO5T.js");
310
310
  await restartCodexAspHostIfRunning2();
311
311
  });
312
312
  await this.start(true);
@@ -328,7 +328,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
328
328
  const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
329
329
  await this.applyCredentialsResponse(data);
330
330
  if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
331
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-SNQAHZ4O.js");
331
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-AQZFJO5T.js");
332
332
  await restartCodexAspHostIfRunning2();
333
333
  }
334
334
  setAgentCredentialSnapshot("codex", data);
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  evaluateCommandProtection
6
- } from "./chunk-RCJP3KY5.js";
7
- import "./chunk-5ERKSVWK.js";
8
- import "./chunk-5MKQOOKZ.js";
6
+ } from "./chunk-VZXRPXJI.js";
7
+ import "./chunk-TKAWFIXX.js";
8
+ import "./chunk-IHC4JY3Q.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-MXHSZLHO.js";
12
+ import "./chunk-QBNBBWCE.js";
13
13
  import "./chunk-VEQXQN22.js";
14
14
 
15
15
  // src/command-protection-hook.ts
@@ -14,12 +14,12 @@ import {
14
14
  recoverCompletedTurn,
15
15
  spawnMuseMsp,
16
16
  startMuseSession
17
- } from "./chunk-HWYNJQUU.js";
17
+ } from "./chunk-4AY3GCWL.js";
18
18
  import {
19
19
  AppServerProcess,
20
20
  buildCodexAgentEnv
21
- } from "./chunk-VQQPKWKF.js";
22
- import "./chunk-5MKQOOKZ.js";
21
+ } from "./chunk-OSPDTEXF.js";
22
+ import "./chunk-IHC4JY3Q.js";
23
23
  import {
24
24
  AGENT,
25
25
  OPENCODE_GO_PROVIDER,
@@ -29,7 +29,7 @@ import {
29
29
  headlessAgentUsagePath,
30
30
  isRecord,
31
31
  withTimeout
32
- } from "./chunk-MXHSZLHO.js";
32
+ } from "./chunk-QBNBBWCE.js";
33
33
  import "./chunk-VEQXQN22.js";
34
34
 
35
35
  // src/headless-agent.ts
package/dist/src/index.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  evaluateCommandProtection,
28
28
  extractToolCommand,
29
29
  reportCommandProtectionBlock
30
- } from "./chunk-RCJP3KY5.js";
30
+ } from "./chunk-VZXRPXJI.js";
31
31
  import {
32
32
  ACCOUNT_RATE_LIMITS_UPDATED_METHOD,
33
33
  AGENT_MESSAGE_DELTA_METHOD,
@@ -65,10 +65,10 @@ import {
65
65
  spawnMuseMsp,
66
66
  startMuseSession,
67
67
  uuidV7
68
- } from "./chunk-HWYNJQUU.js";
68
+ } from "./chunk-4AY3GCWL.js";
69
69
  import {
70
70
  publishedPullRequestUrls
71
- } from "./chunk-XHKAQ3OC.js";
71
+ } from "./chunk-DDUTPOJ3.js";
72
72
  import {
73
73
  ACCOUNT_RATE_LIMITS_READ_METHOD,
74
74
  AsyncLock,
@@ -143,7 +143,7 @@ import {
143
143
  timestampFromSeconds,
144
144
  upsertCredentialFileLines,
145
145
  writeSecureCredentialFile
146
- } from "./chunk-5OA7WBDC.js";
146
+ } from "./chunk-YJ7NCHM6.js";
147
147
  import {
148
148
  ENGINE_ENV,
149
149
  monolithRequest,
@@ -153,15 +153,15 @@ import {
153
153
  resolveDiffBase,
154
154
  setAgentCredentialSnapshot,
155
155
  setLinearSessionId
156
- } from "./chunk-5ERKSVWK.js";
156
+ } from "./chunk-TKAWFIXX.js";
157
157
  import {
158
158
  getCodexModelProvider
159
- } from "./chunk-VQQPKWKF.js";
159
+ } from "./chunk-OSPDTEXF.js";
160
160
  import {
161
161
  SUBPROCESS_MAX_BUFFER,
162
162
  execAsync,
163
163
  execFileAsync
164
- } from "./chunk-5MKQOOKZ.js";
164
+ } from "./chunk-IHC4JY3Q.js";
165
165
  import {
166
166
  isRecord as isRecord2
167
167
  } from "./chunk-UZSNFLDQ.js";
@@ -415,7 +415,7 @@ import {
415
415
  workspaceTokenRequestSchema,
416
416
  workspaceTokenResponseSchema,
417
417
  wrapInTag
418
- } from "./chunk-MXHSZLHO.js";
418
+ } from "./chunk-QBNBBWCE.js";
419
419
  import {
420
420
  cloneMcpConfig,
421
421
  ensureCompatibilityImports,
@@ -10639,11 +10639,9 @@ function getComparableUserMessage(event) {
10639
10639
  }
10640
10640
  function areDuplicateUserMessages(a, b) {
10641
10641
  if (areSameUserMessageEvents(a, b)) return true;
10642
- const aId = getUserMessageId(a);
10643
- const bId = getUserMessageId(b);
10642
+ const { userMessageId: aId, userMessage: aMessage } = workspaceChatEventSignals(a);
10643
+ const { userMessageId: bId, userMessage: bMessage } = workspaceChatEventSignals(b);
10644
10644
  if (aId !== null && bId !== null && aId !== bId) return false;
10645
- const aMessage = getComparableUserMessage(a);
10646
- const bMessage = getComparableUserMessage(b);
10647
10645
  if (!aMessage || aMessage !== bMessage) return false;
10648
10646
  const aAccepted = isAcceptedUserMessage(a);
10649
10647
  const bAccepted = isAcceptedUserMessage(b);
@@ -10652,7 +10650,7 @@ function areDuplicateUserMessages(a, b) {
10652
10650
  { content: bMessage, timestamp: b.timestamp }
10653
10651
  ) : false;
10654
10652
  }
10655
- var eventJsonCache = /* @__PURE__ */ new WeakMap();
10653
+ var eventSignalsCache = /* @__PURE__ */ new WeakMap();
10656
10654
  function claudeToolResultId(event) {
10657
10655
  if (event.type !== "claude-user") return null;
10658
10656
  const { message } = event.payload;
@@ -10661,17 +10659,18 @@ function claudeToolResultId(event) {
10661
10659
  return isRecord(result) && typeof result.tool_use_id === "string" ? `tool_result:${result.tool_use_id}` : null;
10662
10660
  }
10663
10661
  function workspaceChatEventSignals(event) {
10664
- let json = eventJsonCache.get(event);
10665
- if (json === void 0) {
10666
- json = JSON.stringify(event);
10667
- eventJsonCache.set(event, json);
10662
+ let signals = eventSignalsCache.get(event);
10663
+ if (signals === void 0) {
10664
+ signals = {
10665
+ streamId: getEventStreamId(event) ?? claudeToolResultId(event),
10666
+ json: JSON.stringify(event),
10667
+ userMessage: getComparableUserMessage(event),
10668
+ userMessageId: event.type === QUEUED_MESSAGE_REMOVED_EVENT_TYPE ? null : getUserMessageId(event),
10669
+ timestampMs: getEventTimestampMs(event)
10670
+ };
10671
+ eventSignalsCache.set(event, signals);
10668
10672
  }
10669
- return {
10670
- streamId: getEventStreamId(event) ?? claudeToolResultId(event),
10671
- json,
10672
- userMessage: getComparableUserMessage(event),
10673
- userMessageId: event.type === QUEUED_MESSAGE_REMOVED_EVENT_TYPE ? null : getUserMessageId(event)
10674
- };
10673
+ return signals;
10675
10674
  }
10676
10675
  var emptyIndex = () => ({
10677
10676
  byStreamId: /* @__PURE__ */ new Map(),
@@ -10799,12 +10798,13 @@ function mergeWorkspaceChatHistoryEvents(primary, supplemental, removedMessageId
10799
10798
  );
10800
10799
  }
10801
10800
  function insertChronologically(existing, additions) {
10802
- const sorted = [...additions].sort((a, b) => getEventTimestampMs(a) - getEventTimestampMs(b));
10801
+ const timestampMs2 = (event) => workspaceChatEventSignals(event).timestampMs;
10802
+ const sorted = [...additions].sort((a, b) => timestampMs2(a) - timestampMs2(b));
10803
10803
  const result = [];
10804
10804
  let next = 0;
10805
10805
  for (const event of existing) {
10806
- const ms = getEventTimestampMs(event);
10807
- while (next < sorted.length && getEventTimestampMs(sorted[next]) < ms) result.push(sorted[next++]);
10806
+ const ms = timestampMs2(event);
10807
+ while (next < sorted.length && timestampMs2(sorted[next]) < ms) result.push(sorted[next++]);
10808
10808
  result.push(event);
10809
10809
  }
10810
10810
  result.push(...sorted.slice(next));
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  publishedPullRequestUrls
6
- } from "./chunk-XHKAQ3OC.js";
6
+ } from "./chunk-DDUTPOJ3.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-MXHSZLHO.js";
12
+ } from "./chunk-QBNBBWCE.js";
13
13
  import "./chunk-VEQXQN22.js";
14
14
 
15
15
  // src/services/post-tool-pr-notifier.ts
@@ -11,7 +11,7 @@ import {
11
11
  spawnSubagentRequestSchema,
12
12
  subagentResponseSchema,
13
13
  waitSubagentRequestSchema
14
- } from "./chunk-MXHSZLHO.js";
14
+ } from "./chunk-QBNBBWCE.js";
15
15
  import "./chunk-VEQXQN22.js";
16
16
 
17
17
  // src/subagent-mcp.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.1303",
3
+ "version": "0.1.1306",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",