replicas-engine 0.1.982 → 0.1.984

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.
@@ -5,12 +5,12 @@ import {
5
5
  getCodexAspHost,
6
6
  restartCodexAspHost,
7
7
  restartCodexAspHostIfRunning
8
- } from "./chunk-OLU6EF3U.js";
9
- import "./chunk-7ZEHRSCY.js";
10
- import "./chunk-23EGOWI5.js";
11
- import "./chunk-76WG25A6.js";
8
+ } from "./chunk-CFU5LLPN.js";
9
+ import "./chunk-VNL2VYM4.js";
10
+ import "./chunk-FJ3GZPXB.js";
11
+ import "./chunk-QVK2OVNX.js";
12
12
  import "./chunk-UZSNFLDQ.js";
13
- import "./chunk-FD6L53OG.js";
13
+ import "./chunk-LKTX2CHU.js";
14
14
  import "./chunk-VEQXQN22.js";
15
15
  export {
16
16
  getCodexAspHost,
@@ -3,18 +3,18 @@ import { createRequire as __createRequire } from 'node:module';
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  monolithRequest
6
- } from "./chunk-7ZEHRSCY.js";
6
+ } from "./chunk-VNL2VYM4.js";
7
7
  import {
8
8
  SUBPROCESS_MAX_BUFFER,
9
9
  execFileAsync
10
- } from "./chunk-76WG25A6.js";
10
+ } from "./chunk-QVK2OVNX.js";
11
11
  import {
12
12
  extractCommandProtectionCommandText,
13
13
  findCommandProtectionGitLookups,
14
14
  findGitCommitSignals,
15
15
  findPrMergeSignals,
16
16
  parseCommandProtectionRequest
17
- } from "./chunk-FD6L53OG.js";
17
+ } from "./chunk-LKTX2CHU.js";
18
18
 
19
19
  // src/services/command-protection-service.ts
20
20
  import { readFile, stat } from "fs/promises";
@@ -5,15 +5,15 @@ import {
5
5
  ENGINE_ENV,
6
6
  monolithRequest,
7
7
  setAgentCredentialSnapshot
8
- } from "./chunk-7ZEHRSCY.js";
8
+ } from "./chunk-VNL2VYM4.js";
9
9
  import {
10
10
  AppServerProcess,
11
11
  buildCodexAgentEnv
12
- } from "./chunk-23EGOWI5.js";
12
+ } from "./chunk-FJ3GZPXB.js";
13
13
  import {
14
14
  SUBPROCESS_MAX_BUFFER,
15
15
  execFileAsync
16
- } from "./chunk-76WG25A6.js";
16
+ } from "./chunk-QVK2OVNX.js";
17
17
  import {
18
18
  isRecord
19
19
  } from "./chunk-UZSNFLDQ.js";
@@ -27,7 +27,7 @@ import {
27
27
  listOpenAICompatibleModels,
28
28
  readOllamaAuthEnv,
29
29
  resolveOpenAICompatibleModelsUrl
30
- } from "./chunk-FD6L53OG.js";
30
+ } from "./chunk-LKTX2CHU.js";
31
31
 
32
32
  // src/managers/codex-token-manager.ts
33
33
  import { promises as fs } from "fs";
@@ -260,7 +260,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
260
260
  await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
261
261
  await this.applyCredentialsResponse(data);
262
262
  setAgentCredentialSnapshot("codex", data);
263
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-YP3IM7YW.js");
263
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-PNOZD26A.js");
264
264
  await restartCodexAspHostIfRunning2();
265
265
  });
266
266
  await this.start(true);
@@ -280,7 +280,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
280
280
  await this.applyCredentialUpdate(generation, async () => {
281
281
  await this.applyCredentialsResponse(data);
282
282
  if (restartOnChange && CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index])) {
283
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-YP3IM7YW.js");
283
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-PNOZD26A.js");
284
284
  await restartCodexAspHostIfRunning2();
285
285
  }
286
286
  setAgentCredentialSnapshot("codex", data);
@@ -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-76WG25A6.js";
6
+ } from "./chunk-QVK2OVNX.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-FD6L53OG.js";
9
+ } from "./chunk-LKTX2CHU.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.982";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.984";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -4889,12 +4889,25 @@ function removeReplicasInstructions(text2) {
4889
4889
 
4890
4890
  // ../shared/src/user-message-attachments.ts
4891
4891
  var ATTACHMENT_PLACEHOLDER_REGEX = /^\[\d+ (?:(?:images?|files?)(?: and \d+ files?)? attached|(?:image )?attachments?)\]$/;
4892
+ var WALKTHROUGH_NOTE_REGEX = /(?:^|\n\n)<replicas_walkthrough path="([^"\n]+)" duration_seconds="(\d+)" audio="(true|false)">\n[^<]*\n<\/replicas_walkthrough>$/;
4893
+ var TRUNCATED_WALKTHROUGH_NOTE_REGEX = /(?:^|\n\n)<replicas_walkthrough path="([^"\n]*)(?:" duration_seconds="(\d*))?(?:" audio="(true)?)?[^<]*(?:<\/?[a-z_]*)?$/;
4892
4894
  function stripAttachmentNote(text2) {
4893
4895
  const match = text2.match(/(?:^|\n\n)<replicas_attachments>\nUploaded files are available at:((?:\n- .*)*)(?:\n<\/?[a-z_]*>?)?$/) ?? text2.match(/(?:^|\n\n)Uploaded files are available at:((?:\n- .*)*)$/);
4894
- if (!match) return { content: text2, files: [] };
4896
+ let content = match ? text2.replace(match[0], "").trim() : text2;
4897
+ const walkthroughs = [];
4898
+ const truncated = WALKTHROUGH_NOTE_REGEX.test(content) ? null : content.match(TRUNCATED_WALKTHROUGH_NOTE_REGEX);
4899
+ if (truncated) {
4900
+ walkthroughs.push({ path: truncated[1], durationSeconds: Number(truncated[2] ?? 0), audio: truncated[3] === "true" });
4901
+ content = content.slice(0, truncated.index).trim();
4902
+ }
4903
+ for (let walkthrough = content.match(WALKTHROUGH_NOTE_REGEX); walkthrough; walkthrough = content.match(WALKTHROUGH_NOTE_REGEX)) {
4904
+ walkthroughs.unshift({ path: walkthrough[1], durationSeconds: Number(walkthrough[2]), audio: walkthrough[3] === "true" });
4905
+ content = content.slice(0, walkthrough.index).trim();
4906
+ }
4895
4907
  return {
4896
- content: text2.replace(match[0], "").trim(),
4897
- files: [...match[1].matchAll(/^- (.+)$/gm)].map(([, path]) => path)
4908
+ content,
4909
+ files: match ? [...match[1].matchAll(/^- (.+)$/gm)].map(([, path]) => path) : [],
4910
+ walkthroughs
4898
4911
  };
4899
4912
  }
4900
4913
 
@@ -6810,14 +6823,19 @@ function filterDisplayMessages(messages, provider) {
6810
6823
  }
6811
6824
  result = result.flatMap((msg) => {
6812
6825
  if (msg.type !== "user") return [msg];
6813
- const { content, files } = stripAttachmentNote(removeReplicasInstructions(msg.content).trim());
6826
+ const { content, files, walkthroughs } = stripAttachmentNote(removeReplicasInstructions(msg.content).trim());
6814
6827
  if (INTERRUPTED_MESSAGE_REGEX.test(content)) {
6815
6828
  return [{ id: msg.id, type: "interruption", timestamp: msg.timestamp }];
6816
6829
  }
6817
6830
  const cleaned = (msg.images?.length || files.length) && ATTACHMENT_PLACEHOLDER_REGEX.test(content) ? "" : content;
6818
- if (cleaned.length === 0 && !msg.images?.length && files.length === 0) return [];
6819
- if (cleaned === msg.content && files.length === 0) return [msg];
6820
- return [{ ...msg, content: cleaned, ...files.length > 0 ? { files } : {} }];
6831
+ if (cleaned.length === 0 && !msg.images?.length && files.length === 0 && walkthroughs.length === 0) return [];
6832
+ if (cleaned === msg.content && files.length === 0 && walkthroughs.length === 0) return [msg];
6833
+ return [{
6834
+ ...msg,
6835
+ content: cleaned,
6836
+ ...files.length > 0 ? { files } : {},
6837
+ ...walkthroughs.length > 0 ? { walkthroughs } : {}
6838
+ }];
6821
6839
  });
6822
6840
  return result;
6823
6841
  }
@@ -5,7 +5,7 @@ import {
5
5
  extractCommandProtectionCommandText,
6
6
  isRecord,
7
7
  parseCodeHostPrUrl
8
- } from "./chunk-FD6L53OG.js";
8
+ } from "./chunk-LKTX2CHU.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-FD6L53OG.js";
6
+ } from "./chunk-LKTX2CHU.js";
7
7
 
8
8
  // src/utils/exec.ts
9
9
  import { exec, execFile } from "child_process";
@@ -14,7 +14,7 @@ import {
14
14
  isValidAgentProvider,
15
15
  parsePosixEnvFile,
16
16
  readReplicasRuntimeEnv
17
- } from "./chunk-FD6L53OG.js";
17
+ } from "./chunk-LKTX2CHU.js";
18
18
 
19
19
  // src/runtime-env-loader.ts
20
20
  import { readFileSync } from "fs";
@@ -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-RGOCIFXT.js";
7
- import "./chunk-7ZEHRSCY.js";
8
- import "./chunk-76WG25A6.js";
6
+ } from "./chunk-6ZHOSG2F.js";
7
+ import "./chunk-VNL2VYM4.js";
8
+ import "./chunk-QVK2OVNX.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-FD6L53OG.js";
12
+ import "./chunk-LKTX2CHU.js";
13
13
  import "./chunk-VEQXQN22.js";
14
14
 
15
15
  // src/command-protection-hook.ts
@@ -7,12 +7,12 @@ import {
7
7
  import {
8
8
  AppServerProcess,
9
9
  buildCodexAgentEnv
10
- } from "./chunk-23EGOWI5.js";
11
- import "./chunk-76WG25A6.js";
10
+ } from "./chunk-FJ3GZPXB.js";
11
+ import "./chunk-QVK2OVNX.js";
12
12
  import {
13
13
  AGENT,
14
14
  headlessAgentRequestSchema
15
- } from "./chunk-FD6L53OG.js";
15
+ } from "./chunk-LKTX2CHU.js";
16
16
  import "./chunk-VEQXQN22.js";
17
17
 
18
18
  // src/headless-agent.ts
package/dist/src/index.js CHANGED
@@ -32,7 +32,7 @@ import {
32
32
  reportCommandProtectionBlock,
33
33
  resolveDiffBase,
34
34
  runGitCommand
35
- } from "./chunk-RGOCIFXT.js";
35
+ } from "./chunk-6ZHOSG2F.js";
36
36
  import {
37
37
  ACCOUNT_RATE_LIMITS_UPDATED_METHOD,
38
38
  AGENT_MESSAGE_DELTA_METHOD,
@@ -57,7 +57,7 @@ import {
57
57
  } from "./chunk-P73LGPQO.js";
58
58
  import {
59
59
  publishedPullRequestUrls
60
- } from "./chunk-EL5EPSH6.js";
60
+ } from "./chunk-MWCBGGWF.js";
61
61
  import {
62
62
  BaseRefreshManager,
63
63
  CodexAspAuthMethodChangedError,
@@ -72,7 +72,7 @@ import {
72
72
  refreshDelayMs,
73
73
  restartCodexAspHost,
74
74
  routineRefreshExclusions
75
- } from "./chunk-OLU6EF3U.js";
75
+ } from "./chunk-CFU5LLPN.js";
76
76
  import {
77
77
  ENGINE_ENV,
78
78
  monolithRequest,
@@ -80,16 +80,16 @@ import {
80
80
  readRuntimeEnvFile,
81
81
  reloadEngineEnv,
82
82
  setAgentCredentialSnapshot
83
- } from "./chunk-7ZEHRSCY.js";
83
+ } from "./chunk-VNL2VYM4.js";
84
84
  import {
85
85
  AspClient,
86
86
  getCodexModelProvider
87
- } from "./chunk-23EGOWI5.js";
87
+ } from "./chunk-FJ3GZPXB.js";
88
88
  import {
89
89
  SUBPROCESS_MAX_BUFFER,
90
90
  execAsync,
91
91
  execFileAsync
92
- } from "./chunk-76WG25A6.js";
92
+ } from "./chunk-QVK2OVNX.js";
93
93
  import {
94
94
  isRecord as isRecord2
95
95
  } from "./chunk-UZSNFLDQ.js";
@@ -316,7 +316,7 @@ import {
316
316
  workspaceCredentialProviderSchema,
317
317
  workspaceTokenRequestSchema,
318
318
  workspaceTokenResponseSchema
319
- } from "./chunk-FD6L53OG.js";
319
+ } from "./chunk-LKTX2CHU.js";
320
320
  import {
321
321
  cloneMcpConfig,
322
322
  ensureCompatibilityImports,
@@ -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-EL5EPSH6.js";
6
+ } from "./chunk-MWCBGGWF.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-FD6L53OG.js";
12
+ } from "./chunk-LKTX2CHU.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-FD6L53OG.js";
12
+ } from "./chunk-LKTX2CHU.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.982",
3
+ "version": "0.1.984",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",