replicas-engine 0.1.1061 → 0.1.1063

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-CP3CU4KR.js";
12
- import "./chunk-EGH2TCYM.js";
13
- import "./chunk-VVYX3QNA.js";
14
- import "./chunk-LWVG6G7V.js";
11
+ } from "./chunk-KJCGVHG4.js";
12
+ import "./chunk-53L2HP6X.js";
13
+ import "./chunk-7TFJFPVE.js";
14
+ import "./chunk-26RVKLI6.js";
15
15
  import "./chunk-UZSNFLDQ.js";
16
- import "./chunk-3LW5WKNJ.js";
16
+ import "./chunk-JYRXCCTX.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
  HOOK_EXEC_MAX_BUFFER_BYTES
6
- } from "./chunk-3LW5WKNJ.js";
6
+ } from "./chunk-JYRXCCTX.js";
7
7
 
8
8
  // src/utils/exec.ts
9
9
  import { exec, execFile } from "child_process";
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  SUBPROCESS_MAX_BUFFER,
6
6
  execFileAsync
7
- } from "./chunk-LWVG6G7V.js";
7
+ } from "./chunk-26RVKLI6.js";
8
8
  import {
9
9
  isRecord as isRecord2
10
10
  } from "./chunk-UZSNFLDQ.js";
@@ -18,7 +18,7 @@ import {
18
18
  isValidAgentProvider,
19
19
  parsePosixEnvFile,
20
20
  readReplicasRuntimeEnv
21
- } from "./chunk-3LW5WKNJ.js";
21
+ } from "./chunk-JYRXCCTX.js";
22
22
 
23
23
  // src/runtime-env-loader.ts
24
24
  import { readFileSync } from "fs";
@@ -5,14 +5,14 @@ import {
5
5
  getOriginDefaultBranch,
6
6
  monolithRequest,
7
7
  runGitCommand
8
- } from "./chunk-EGH2TCYM.js";
8
+ } from "./chunk-53L2HP6X.js";
9
9
  import {
10
10
  extractCommandProtectionCommandText,
11
11
  findCommandProtectionGitLookups,
12
12
  findGitCommitSignals,
13
13
  findPrMergeSignals,
14
14
  parseCommandProtectionRequest
15
- } from "./chunk-3LW5WKNJ.js";
15
+ } from "./chunk-JYRXCCTX.js";
16
16
 
17
17
  // src/services/command-protection-service.ts
18
18
  import { readFile, stat } from "fs/promises";
@@ -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-LWVG6G7V.js";
6
+ } from "./chunk-26RVKLI6.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-3LW5WKNJ.js";
9
+ } from "./chunk-JYRXCCTX.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.1061";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.1063";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -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-VVYX3QNA.js";
6
+ } from "./chunk-7TFJFPVE.js";
7
7
  import {
8
8
  ASTER_BASE_URL,
9
9
  ASTER_PROVIDER,
@@ -11,7 +11,7 @@ import {
11
11
  codexReasoningEffortForThinkingLevel,
12
12
  isRecord,
13
13
  readOllamaAuthEnv
14
- } from "./chunk-3LW5WKNJ.js";
14
+ } from "./chunk-JYRXCCTX.js";
15
15
 
16
16
  // src/managers/codex-asp/notification-dispatch.ts
17
17
  var TURN_STARTED_METHOD = "turn/started";
@@ -7025,6 +7025,7 @@ function parseClaudeEvents(events, parentToolUseId) {
7025
7025
  const acceptedUserMessageIndexes = /* @__PURE__ */ new Set();
7026
7026
  const canonicalUserMessageIndexes = /* @__PURE__ */ new Set();
7027
7027
  const supersededUserMessageIndexes = /* @__PURE__ */ new Set();
7028
+ const stampedUserMessages = /* @__PURE__ */ new Set();
7028
7029
  const findMatchingUserMessageIndex = (indexes, content, timestamp, messageId) => {
7029
7030
  if (typeof messageId === "string") {
7030
7031
  const byId = messages.findIndex((message2, index) => message2.type === "user" && message2.id === messageId && !supersededUserMessageIndexes.has(index));
@@ -7032,15 +7033,16 @@ function parseClaudeEvents(events, parentToolUseId) {
7032
7033
  }
7033
7034
  return [...indexes].find((index) => {
7034
7035
  const message2 = messages[index];
7035
- return message2?.type === "user" && areUserMessagesWithinMatchWindow(message2, { content, timestamp });
7036
+ return message2?.type === "user" && !(typeof messageId === "string" && stampedUserMessages.has(message2)) && areUserMessagesWithinMatchWindow(message2, { content, timestamp });
7036
7037
  });
7037
7038
  };
7038
7039
  const taskAccumulator = new TaskAccumulator();
7039
- const taskSnapshot = () => taskAccumulator.getTasks().map((task) => ({
7040
- text: task.subject,
7041
- completed: task.status === "completed",
7042
- itemStatus: task.status
7043
- }));
7040
+ const todoItems = /* @__PURE__ */ new WeakMap();
7041
+ const taskSnapshot = () => taskAccumulator.getTasks().map((task) => {
7042
+ const item = todoItems.get(task) ?? { text: task.subject, completed: task.status === "completed", itemStatus: task.status };
7043
+ todoItems.set(task, item);
7044
+ return item;
7045
+ });
7044
7046
  filteredEvents.forEach((event) => {
7045
7047
  if (event.type === "event_msg" && event.payload.type === "user_message") {
7046
7048
  const content = typeof event.payload.message === "string" ? event.payload.message : "";
@@ -7062,6 +7064,7 @@ function parseClaudeEvents(events, parentToolUseId) {
7062
7064
  messages[canonicalIndex] = message2;
7063
7065
  canonicalUserMessageIndexes.delete(canonicalIndex);
7064
7066
  }
7067
+ if (typeof messageId === "string" || canonical && stampedUserMessages.has(canonical)) stampedUserMessages.add(message2);
7065
7068
  }
7066
7069
  return;
7067
7070
  }
@@ -7148,6 +7151,7 @@ function parseClaudeEvents(events, parentToolUseId) {
7148
7151
  } else {
7149
7152
  messages[acceptedIndex] = message2;
7150
7153
  }
7154
+ if (typeof stampedId === "string" || accepted && stampedUserMessages.has(accepted)) stampedUserMessages.add(message2);
7151
7155
  }
7152
7156
  }
7153
7157
  if (event.type === "claude-assistant") {
@@ -10,15 +10,15 @@ import {
10
10
  resolveDiffBase,
11
11
  runGitCommand,
12
12
  setAgentCredentialSnapshot
13
- } from "./chunk-EGH2TCYM.js";
13
+ } from "./chunk-53L2HP6X.js";
14
14
  import {
15
15
  AppServerProcess,
16
16
  buildCodexAgentEnv
17
- } from "./chunk-VVYX3QNA.js";
17
+ } from "./chunk-7TFJFPVE.js";
18
18
  import {
19
19
  SUBPROCESS_MAX_BUFFER,
20
20
  execFileAsync
21
- } from "./chunk-LWVG6G7V.js";
21
+ } from "./chunk-26RVKLI6.js";
22
22
  import {
23
23
  isRecord
24
24
  } from "./chunk-UZSNFLDQ.js";
@@ -55,7 +55,7 @@ import {
55
55
  resolveOpenAICompatibleModelsUrl,
56
56
  splitMultitaskInstructions,
57
57
  withTimeout
58
- } from "./chunk-3LW5WKNJ.js";
58
+ } from "./chunk-JYRXCCTX.js";
59
59
 
60
60
  // src/managers/codex-token-manager.ts
61
61
  import { promises as fs } from "fs";
@@ -291,7 +291,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
291
291
  await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
292
292
  await this.applyCredentialsResponse(data);
293
293
  setAgentCredentialSnapshot("codex", data);
294
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-HVTRNKXN.js");
294
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-NEOSX6BS.js");
295
295
  await restartCodexAspHostIfRunning2();
296
296
  });
297
297
  await this.start(true);
@@ -312,7 +312,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
312
312
  const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
313
313
  await this.applyCredentialsResponse(data);
314
314
  if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
315
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-HVTRNKXN.js");
315
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-NEOSX6BS.js");
316
316
  await restartCodexAspHostIfRunning2();
317
317
  }
318
318
  setAgentCredentialSnapshot("codex", data);
@@ -5,7 +5,7 @@ import {
5
5
  extractCommandProtectionCommandText,
6
6
  isRecord,
7
7
  parseCodeHostPrUrl
8
- } from "./chunk-3LW5WKNJ.js";
8
+ } from "./chunk-JYRXCCTX.js";
9
9
 
10
10
  // src/services/published-pull-request-urls.ts
11
11
  function publishedPullRequestUrls(result) {
@@ -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-3YVQH4P6.js";
7
- import "./chunk-EGH2TCYM.js";
8
- import "./chunk-LWVG6G7V.js";
6
+ } from "./chunk-5AKKW2D4.js";
7
+ import "./chunk-53L2HP6X.js";
8
+ import "./chunk-26RVKLI6.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-3LW5WKNJ.js";
12
+ import "./chunk-JYRXCCTX.js";
13
13
  import "./chunk-VEQXQN22.js";
14
14
 
15
15
  // src/command-protection-hook.ts
@@ -13,12 +13,12 @@ import {
13
13
  recoverCompletedTurn,
14
14
  spawnMuseMsp,
15
15
  startMuseSession
16
- } from "./chunk-GA7UICVN.js";
16
+ } from "./chunk-G3I6YFOA.js";
17
17
  import {
18
18
  AppServerProcess,
19
19
  buildCodexAgentEnv
20
- } from "./chunk-VVYX3QNA.js";
21
- import "./chunk-LWVG6G7V.js";
20
+ } from "./chunk-7TFJFPVE.js";
21
+ import "./chunk-26RVKLI6.js";
22
22
  import {
23
23
  AGENT,
24
24
  OPENCODE_GO_PROVIDER,
@@ -28,7 +28,7 @@ import {
28
28
  headlessAgentUsagePath,
29
29
  isRecord,
30
30
  withTimeout
31
- } from "./chunk-3LW5WKNJ.js";
31
+ } from "./chunk-JYRXCCTX.js";
32
32
  import "./chunk-VEQXQN22.js";
33
33
 
34
34
  // 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-3YVQH4P6.js";
30
+ } from "./chunk-5AKKW2D4.js";
31
31
  import {
32
32
  ACCOUNT_RATE_LIMITS_UPDATED_METHOD,
33
33
  AGENT_MESSAGE_DELTA_METHOD,
@@ -64,10 +64,10 @@ import {
64
64
  spawnMuseMsp,
65
65
  startMuseSession,
66
66
  uuidV7
67
- } from "./chunk-GA7UICVN.js";
67
+ } from "./chunk-G3I6YFOA.js";
68
68
  import {
69
69
  publishedPullRequestUrls
70
- } from "./chunk-4KJVUKEN.js";
70
+ } from "./chunk-Q5XHMGSN.js";
71
71
  import {
72
72
  ACCOUNT_RATE_LIMITS_READ_METHOD,
73
73
  AsyncLock,
@@ -129,7 +129,7 @@ import {
129
129
  timestampFromSeconds,
130
130
  upsertCredentialFileLines,
131
131
  writeSecureCredentialFile
132
- } from "./chunk-CP3CU4KR.js";
132
+ } from "./chunk-KJCGVHG4.js";
133
133
  import {
134
134
  ENGINE_ENV,
135
135
  monolithRequest,
@@ -138,15 +138,15 @@ import {
138
138
  reloadEngineEnv,
139
139
  resolveDiffBase,
140
140
  setAgentCredentialSnapshot
141
- } from "./chunk-EGH2TCYM.js";
141
+ } from "./chunk-53L2HP6X.js";
142
142
  import {
143
143
  getCodexModelProvider
144
- } from "./chunk-VVYX3QNA.js";
144
+ } from "./chunk-7TFJFPVE.js";
145
145
  import {
146
146
  SUBPROCESS_MAX_BUFFER,
147
147
  execAsync,
148
148
  execFileAsync
149
- } from "./chunk-LWVG6G7V.js";
149
+ } from "./chunk-26RVKLI6.js";
150
150
  import {
151
151
  isRecord as isRecord2
152
152
  } from "./chunk-UZSNFLDQ.js";
@@ -374,7 +374,7 @@ import {
374
374
  workspaceTokenRequestSchema,
375
375
  workspaceTokenResponseSchema,
376
376
  wrapInTag
377
- } from "./chunk-3LW5WKNJ.js";
377
+ } from "./chunk-JYRXCCTX.js";
378
378
  import {
379
379
  cloneMcpConfig,
380
380
  ensureCompatibilityImports,
@@ -10436,6 +10436,9 @@ function getComparableUserMessage(event) {
10436
10436
  }
10437
10437
  function areDuplicateUserMessages(a, b) {
10438
10438
  if (areSameUserMessageEvents(a, b)) return true;
10439
+ const aId = getUserMessageId(a);
10440
+ const bId = getUserMessageId(b);
10441
+ if (aId !== null && bId !== null && aId !== bId) return false;
10439
10442
  const aMessage = getComparableUserMessage(a);
10440
10443
  const bMessage = getComparableUserMessage(b);
10441
10444
  if (!aMessage || aMessage !== bMessage) return false;
@@ -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-4KJVUKEN.js";
6
+ } from "./chunk-Q5XHMGSN.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-3LW5WKNJ.js";
12
+ } from "./chunk-JYRXCCTX.js";
13
13
  import "./chunk-VEQXQN22.js";
14
14
 
15
15
  // src/services/post-tool-pr-notifier.ts
@@ -9,7 +9,7 @@ import {
9
9
  spawnSubagentRequestSchema,
10
10
  subagentResponseSchema,
11
11
  waitSubagentRequestSchema
12
- } from "./chunk-3LW5WKNJ.js";
12
+ } from "./chunk-JYRXCCTX.js";
13
13
  import "./chunk-VEQXQN22.js";
14
14
 
15
15
  // src/subagent-mcp.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.1061",
3
+ "version": "0.1.1063",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",