replicas-engine 0.1.1311 → 0.1.1313

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-O5FOUSFZ.js";
12
- import "./chunk-FJGC3SKY.js";
13
- import "./chunk-MF2O6NS5.js";
14
- import "./chunk-PKLNM4OL.js";
11
+ } from "./chunk-PMT7GU6F.js";
12
+ import "./chunk-U7VLLW2G.js";
13
+ import "./chunk-PAOPBQ5K.js";
14
+ import "./chunk-KKGZ52QD.js";
15
15
  import "./chunk-UZSNFLDQ.js";
16
- import "./chunk-BG2GDBAV.js";
16
+ import "./chunk-UV7FB3QX.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-MF2O6NS5.js";
6
+ } from "./chunk-PAOPBQ5K.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-BG2GDBAV.js";
18
+ } from "./chunk-UV7FB3QX.js";
19
19
 
20
20
  // src/managers/codex-asp/notification-dispatch.ts
21
21
  var TURN_STARTED_METHOD = "turn/started";
@@ -6,7 +6,7 @@ import {
6
6
  getOriginDefaultBranch,
7
7
  monolithRequest,
8
8
  runGitCommand
9
- } from "./chunk-FJGC3SKY.js";
9
+ } from "./chunk-U7VLLW2G.js";
10
10
  import {
11
11
  extractCommandProtectionCommandText,
12
12
  findCommandProtectionGitLookups,
@@ -14,7 +14,7 @@ import {
14
14
  findPrMergeSignals,
15
15
  findScoutRepoWriteSignals,
16
16
  parseCommandProtectionRequest
17
- } from "./chunk-BG2GDBAV.js";
17
+ } from "./chunk-UV7FB3QX.js";
18
18
 
19
19
  // src/services/command-protection-service.ts
20
20
  import { readFile, stat } from "fs/promises";
@@ -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-BG2GDBAV.js";
6
+ } from "./chunk-UV7FB3QX.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-PKLNM4OL.js";
6
+ } from "./chunk-KKGZ52QD.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-BG2GDBAV.js";
9
+ } from "./chunk-UV7FB3QX.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.1311";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.1313";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -10,15 +10,15 @@ import {
10
10
  resolveDiffBase,
11
11
  runGitCommand,
12
12
  setAgentCredentialSnapshot
13
- } from "./chunk-FJGC3SKY.js";
13
+ } from "./chunk-U7VLLW2G.js";
14
14
  import {
15
15
  AppServerProcess,
16
16
  buildCodexAgentEnv
17
- } from "./chunk-MF2O6NS5.js";
17
+ } from "./chunk-PAOPBQ5K.js";
18
18
  import {
19
19
  SUBPROCESS_MAX_BUFFER,
20
20
  execFileAsync
21
- } from "./chunk-PKLNM4OL.js";
21
+ } from "./chunk-KKGZ52QD.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-BG2GDBAV.js";
59
+ } from "./chunk-UV7FB3QX.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-AOCG2NHN.js");
309
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-SD6HSQCG.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-AOCG2NHN.js");
331
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-SD6HSQCG.js");
332
332
  await restartCodexAspHostIfRunning2();
333
333
  }
334
334
  setAgentCredentialSnapshot("codex", data);
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  SUBPROCESS_MAX_BUFFER,
6
6
  execFileAsync
7
- } from "./chunk-PKLNM4OL.js";
7
+ } from "./chunk-KKGZ52QD.js";
8
8
  import {
9
9
  isRecord as isRecord2
10
10
  } from "./chunk-UZSNFLDQ.js";
@@ -17,12 +17,11 @@ import {
17
17
  fallbackPlanResponseSchema,
18
18
  isRecord,
19
19
  isValidAgentProvider,
20
- parsePosixEnvFile,
21
- parsePosixEnvUnsetKeys,
20
+ parsePosixEnv,
22
21
  provisionedDeviceSchema,
23
22
  readReplicasRuntimeEnv,
24
23
  serializePosixEnvFile
25
- } from "./chunk-BG2GDBAV.js";
24
+ } from "./chunk-UV7FB3QX.js";
26
25
 
27
26
  // src/runtime-env-loader.ts
28
27
  import { readFileSync } from "fs";
@@ -31,20 +30,20 @@ import { join } from "path";
31
30
  var loadedKeys = [];
32
31
  function readRuntimeEnvFile() {
33
32
  try {
34
- return parsePosixEnvFile(readFileSync(join(homedir(), ".replicas", "runtime-env.sh"), "utf-8"));
33
+ return parsePosixEnv(readFileSync(join(homedir(), ".replicas", "runtime-env.sh"), "utf-8"));
35
34
  } catch {
36
35
  return null;
37
36
  }
38
37
  }
39
- function loadRuntimeEnvFile(values = readRuntimeEnvFile()) {
40
- if (!values) return;
41
- for (const key of loadedKeys) {
42
- if (!(key in values)) delete process.env[key];
38
+ function loadRuntimeEnvFile(file = readRuntimeEnvFile()) {
39
+ if (!file) return;
40
+ for (const key of [...loadedKeys, ...file.unsetKeys]) {
41
+ if (!(key in file.values)) delete process.env[key];
43
42
  }
44
- for (const [key, value] of Object.entries(values)) {
43
+ for (const [key, value] of Object.entries(file.values)) {
45
44
  process.env[key] = value;
46
45
  }
47
- loadedKeys = Object.keys(values);
46
+ loadedKeys = Object.keys(file.values);
48
47
  }
49
48
 
50
49
  // src/engine-env.ts
@@ -129,8 +128,8 @@ function parseAgentCredentialSnapshots(value) {
129
128
  return {};
130
129
  }
131
130
  }
132
- function loadEngineEnv(runtimeEnvValues) {
133
- loadRuntimeEnvFile(runtimeEnvValues);
131
+ function loadEngineEnv(runtimeEnvFile) {
132
+ loadRuntimeEnvFile(runtimeEnvFile);
134
133
  const HOME_DIR = homedir2();
135
134
  const env = {
136
135
  // Defined: always available
@@ -179,17 +178,17 @@ function loadEngineEnv(runtimeEnvValues) {
179
178
  return env;
180
179
  }
181
180
  var ENGINE_ENV = loadEngineEnv();
182
- function reloadEngineEnv(runtimeEnvValues) {
183
- ENGINE_ENV = loadEngineEnv(runtimeEnvValues);
181
+ function reloadEngineEnv(runtimeEnvFile) {
182
+ ENGINE_ENV = loadEngineEnv(runtimeEnvFile);
184
183
  return ENGINE_ENV;
185
184
  }
186
185
  function setLinearSessionId(linearSessionId) {
187
186
  const path = join2(homedir2(), ".replicas", "runtime-env.sh");
188
- const content = readFileSync2(path, "utf-8");
187
+ const persisted = parsePosixEnv(readFileSync2(path, "utf-8"));
189
188
  const key = REPLICAS_RUNTIME_ENV_ALIASES.linearSessionId[0];
190
189
  writeFileSync(path, serializePosixEnvFile(
191
- { ...parsePosixEnvFile(content), [key]: linearSessionId },
192
- parsePosixEnvUnsetKeys(content).filter((unset) => unset !== key)
190
+ { ...persisted.values, [key]: linearSessionId },
191
+ persisted.unsetKeys.filter((unset) => unset !== key)
193
192
  ));
194
193
  process.env[key] = linearSessionId;
195
194
  ENGINE_ENV.REPLICAS_LINEAR_SESSION_ID = linearSessionId;
@@ -2004,11 +2004,9 @@ function serializePosixEnvFile(env, unsetKeys = []) {
2004
2004
  ].join("\n")}
2005
2005
  `;
2006
2006
  }
2007
- function parsePosixEnvUnsetKeys(content) {
2008
- return content.split("\n").filter((line) => line.startsWith("unset ")).map((line) => line.slice("unset ".length).trim());
2009
- }
2010
- function parsePosixEnvFile(content) {
2007
+ function parsePosixEnv(content) {
2011
2008
  const result = {};
2009
+ const unsetKeys = [];
2012
2010
  let pos = 0;
2013
2011
  while (pos < content.length) {
2014
2012
  let lineStart;
@@ -2021,6 +2019,9 @@ function parsePosixEnvFile(content) {
2021
2019
  }
2022
2020
  if (!content.startsWith("export ", lineStart)) {
2023
2021
  const nl2 = content.indexOf("\n", lineStart);
2022
+ if (content.startsWith("unset ", lineStart)) {
2023
+ unsetKeys.push(content.slice(lineStart + "unset ".length, nl2 === -1 ? void 0 : nl2).trim());
2024
+ }
2024
2025
  if (nl2 === -1) break;
2025
2026
  pos = nl2 + 1;
2026
2027
  continue;
@@ -2059,7 +2060,7 @@ function parsePosixEnvFile(content) {
2059
2060
  const nl = content.indexOf("\n", cursor);
2060
2061
  pos = nl === -1 ? content.length : nl + 1;
2061
2062
  }
2062
- return result;
2063
+ return { values: result, unsetKeys };
2063
2064
  }
2064
2065
 
2065
2066
  // ../shared/src/engine/environment.ts
@@ -10856,8 +10857,7 @@ export {
10856
10857
  readReplicasRuntimeEnv,
10857
10858
  shellQuotePosix,
10858
10859
  serializePosixEnvFile,
10859
- parsePosixEnvUnsetKeys,
10860
- parsePosixEnvFile,
10860
+ parsePosixEnv,
10861
10861
  ENGINE_PORT,
10862
10862
  DESKTOP_STREAM_PORT,
10863
10863
  DEVICES_DIR,
@@ -5,7 +5,7 @@ import {
5
5
  extractCommandProtectionCommandText,
6
6
  isRecord,
7
7
  parseCodeHostPrUrl
8
- } from "./chunk-BG2GDBAV.js";
8
+ } from "./chunk-UV7FB3QX.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-GBZIVMEH.js";
7
- import "./chunk-FJGC3SKY.js";
8
- import "./chunk-PKLNM4OL.js";
6
+ } from "./chunk-7AKRQ6LY.js";
7
+ import "./chunk-U7VLLW2G.js";
8
+ import "./chunk-KKGZ52QD.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-BG2GDBAV.js";
12
+ import "./chunk-UV7FB3QX.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-BMOEYO4Y.js";
17
+ } from "./chunk-2UGSLVGB.js";
18
18
  import {
19
19
  AppServerProcess,
20
20
  buildCodexAgentEnv
21
- } from "./chunk-MF2O6NS5.js";
22
- import "./chunk-PKLNM4OL.js";
21
+ } from "./chunk-PAOPBQ5K.js";
22
+ import "./chunk-KKGZ52QD.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-BG2GDBAV.js";
32
+ } from "./chunk-UV7FB3QX.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-GBZIVMEH.js";
30
+ } from "./chunk-7AKRQ6LY.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-BMOEYO4Y.js";
68
+ } from "./chunk-2UGSLVGB.js";
69
69
  import {
70
70
  publishedPullRequestUrls
71
- } from "./chunk-CPBB3JKK.js";
71
+ } from "./chunk-YPQAQGW3.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-O5FOUSFZ.js";
146
+ } from "./chunk-PMT7GU6F.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-FJGC3SKY.js";
156
+ } from "./chunk-U7VLLW2G.js";
157
157
  import {
158
158
  getCodexModelProvider
159
- } from "./chunk-MF2O6NS5.js";
159
+ } from "./chunk-PAOPBQ5K.js";
160
160
  import {
161
161
  SUBPROCESS_MAX_BUFFER,
162
162
  execAsync,
163
163
  execFileAsync
164
- } from "./chunk-PKLNM4OL.js";
164
+ } from "./chunk-KKGZ52QD.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-BG2GDBAV.js";
418
+ } from "./chunk-UV7FB3QX.js";
419
419
  import {
420
420
  cloneMcpConfig,
421
421
  ensureCompatibilityImports,
@@ -64339,7 +64339,7 @@ var authMiddleware = async (c, next) => {
64339
64339
  return c.json({ error: "Unauthorized: X-Replicas-Engine-Secret header required" }, 401);
64340
64340
  }
64341
64341
  const activating = c.req.path === ENGINE_ACTIVATE_PATH;
64342
- const accepted = secret === ENGINE_ENV.REPLICAS_ENGINE_SECRET || activating && lifecycle.state === "parked" && secret === readRuntimeEnvFile()?.REPLICAS_ENGINE_SECRET;
64342
+ const accepted = secret === ENGINE_ENV.REPLICAS_ENGINE_SECRET || activating && lifecycle.state === "parked" && secret === readRuntimeEnvFile()?.values.REPLICAS_ENGINE_SECRET;
64343
64343
  if (!accepted) {
64344
64344
  return c.json({ error: "Unauthorized: Invalid secret" }, 401);
64345
64345
  }
@@ -64576,9 +64576,9 @@ async function stopWorkspaceServices() {
64576
64576
  }
64577
64577
  async function activate(requested) {
64578
64578
  await engineBooted.promise;
64579
- const values = readRuntimeEnvFile();
64580
- const workspaceId = values && readReplicasRuntimeEnv((name) => values[name], REPLICAS_RUNTIME_ENV_ALIASES.workspaceId);
64581
- if (!values || !workspaceId) {
64579
+ const runtimeEnvFile = readRuntimeEnvFile();
64580
+ const workspaceId = runtimeEnvFile && readReplicasRuntimeEnv((name) => runtimeEnvFile.values[name], REPLICAS_RUNTIME_ENV_ALIASES.workspaceId);
64581
+ if (!runtimeEnvFile || !workspaceId) {
64582
64582
  return createErrorResult({ message: "Settings file has no workspace id", code: 400 });
64583
64583
  }
64584
64584
  if (requested && requested.workspaceId !== workspaceId) {
@@ -64589,7 +64589,7 @@ async function activate(requested) {
64589
64589
  }
64590
64590
  lifecycle.claim(workspaceId);
64591
64591
  await stopWorkspaceServices();
64592
- reloadEngineEnv(values);
64592
+ reloadEngineEnv(runtimeEnvFile);
64593
64593
  startupStartedAt = performance.now();
64594
64594
  backgroundController = new AbortController();
64595
64595
  const signal = backgroundController.signal;
@@ -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-CPBB3JKK.js";
6
+ } from "./chunk-YPQAQGW3.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-BG2GDBAV.js";
12
+ } from "./chunk-UV7FB3QX.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-BG2GDBAV.js";
14
+ } from "./chunk-UV7FB3QX.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.1311",
3
+ "version": "0.1.1313",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",