replicas-engine 0.1.1275 → 0.1.1276

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-OC2XSSGV.js";
12
- import "./chunk-XAQ6GHR3.js";
13
- import "./chunk-BLD35QJH.js";
14
- import "./chunk-YYKT5ENX.js";
11
+ } from "./chunk-CQXHQFAC.js";
12
+ import "./chunk-V5H4AKYX.js";
13
+ import "./chunk-LKQHRWNH.js";
14
+ import "./chunk-CFAC6DWV.js";
15
15
  import "./chunk-UZSNFLDQ.js";
16
- import "./chunk-A67ZSUFV.js";
16
+ import "./chunk-XAAAOOWB.js";
17
17
  import "./chunk-VEQXQN22.js";
18
18
  export {
19
19
  CODEX_ULTRAFAST_SERVICE_TIER,
@@ -5,7 +5,7 @@ import {
5
5
  extractCommandProtectionCommandText,
6
6
  isRecord,
7
7
  parseCodeHostPrUrl
8
- } from "./chunk-A67ZSUFV.js";
8
+ } from "./chunk-XAAAOOWB.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-A67ZSUFV.js";
6
+ } from "./chunk-XAAAOOWB.js";
7
7
 
8
8
  // src/utils/exec.ts
9
9
  import { exec, execFile } from "child_process";
@@ -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-BLD35QJH.js";
6
+ } from "./chunk-LKQHRWNH.js";
7
7
  import {
8
8
  ASTER_BASE_URL,
9
9
  ASTER_PROVIDER,
@@ -13,7 +13,7 @@ import {
13
13
  isRecord,
14
14
  readOllamaAuthEnv,
15
15
  readOpenAICompatibleAuthEnv
16
- } from "./chunk-A67ZSUFV.js";
16
+ } from "./chunk-XAAAOOWB.js";
17
17
 
18
18
  // src/managers/codex-asp/notification-dispatch.ts
19
19
  var TURN_STARTED_METHOD = "turn/started";
@@ -10,15 +10,15 @@ import {
10
10
  resolveDiffBase,
11
11
  runGitCommand,
12
12
  setAgentCredentialSnapshot
13
- } from "./chunk-XAQ6GHR3.js";
13
+ } from "./chunk-V5H4AKYX.js";
14
14
  import {
15
15
  AppServerProcess,
16
16
  buildCodexAgentEnv
17
- } from "./chunk-BLD35QJH.js";
17
+ } from "./chunk-LKQHRWNH.js";
18
18
  import {
19
19
  SUBPROCESS_MAX_BUFFER,
20
20
  execFileAsync
21
- } from "./chunk-YYKT5ENX.js";
21
+ } from "./chunk-CFAC6DWV.js";
22
22
  import {
23
23
  isRecord
24
24
  } from "./chunk-UZSNFLDQ.js";
@@ -55,7 +55,7 @@ import {
55
55
  resolveOpenAICompatibleModelsUrl,
56
56
  splitMothershipInstructions,
57
57
  withTimeout
58
- } from "./chunk-A67ZSUFV.js";
58
+ } from "./chunk-XAAAOOWB.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-U7DZUJIB.js");
294
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-CGRUKNN4.js");
295
295
  await restartCodexAspHostIfRunning2();
296
296
  });
297
297
  await this.start(true);
@@ -313,7 +313,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
313
313
  const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
314
314
  await this.applyCredentialsResponse(data);
315
315
  if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
316
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-U7DZUJIB.js");
316
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-CGRUKNN4.js");
317
317
  await restartCodexAspHostIfRunning2();
318
318
  }
319
319
  setAgentCredentialSnapshot("codex", data);
@@ -5,14 +5,14 @@ import {
5
5
  getOriginDefaultBranch,
6
6
  monolithRequest,
7
7
  runGitCommand
8
- } from "./chunk-XAQ6GHR3.js";
8
+ } from "./chunk-V5H4AKYX.js";
9
9
  import {
10
10
  extractCommandProtectionCommandText,
11
11
  findCommandProtectionGitLookups,
12
12
  findGitCommitSignals,
13
13
  findPrMergeSignals,
14
14
  parseCommandProtectionRequest
15
- } from "./chunk-A67ZSUFV.js";
15
+ } from "./chunk-XAAAOOWB.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-YYKT5ENX.js";
6
+ } from "./chunk-CFAC6DWV.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-A67ZSUFV.js";
9
+ } from "./chunk-XAAAOOWB.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.1275";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.1276";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  SUBPROCESS_MAX_BUFFER,
6
6
  execFileAsync
7
- } from "./chunk-YYKT5ENX.js";
7
+ } from "./chunk-CFAC6DWV.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-A67ZSUFV.js";
25
+ } from "./chunk-XAAAOOWB.js";
26
26
 
27
27
  // src/runtime-env-loader.ts
28
28
  import { readFileSync } from "fs";
@@ -5986,6 +5986,27 @@ var REPLICAS_API_STEPS = {
5986
5986
 
5987
5987
  // ../shared/src/user-message-attachments.ts
5988
5988
  var ATTACHMENT_PLACEHOLDER_REGEX = /^\[\d+ (?:(?:images?|files?)(?: and \d+ files?)? attached|(?:image )?attachments?)\]$/;
5989
+ var ANNOTATIONS_NOTE_OPENING = '<replicas_annotations>\nThe user quoted these passages, some with a comment. Address each annotation, and when you do, refer to it as "Annotation N".';
5990
+ var ANNOTATIONS_NOTE_REGEX = /(?:^|\n\n)<replicas_annotations>\n([\s\S]*?)\n<\/replicas_annotations>$/;
5991
+ var ANNOTATION_HEADER_REGEX = /^Annotation \d+$/m;
5992
+ function findAnnotationsNote(content) {
5993
+ const complete = content.match(ANNOTATIONS_NOTE_REGEX);
5994
+ if (complete) return { index: complete.index ?? 0, body: complete[1] };
5995
+ for (const { index } of content.matchAll(/(?:^|\n\n)(?=<r)/g)) {
5996
+ const note = content.slice(index).trimStart();
5997
+ if (note.startsWith(ANNOTATIONS_NOTE_OPENING) || ANNOTATIONS_NOTE_OPENING.startsWith(note)) return { index, body: note.slice("<replicas_annotations>\n".length) };
5998
+ }
5999
+ return null;
6000
+ }
6001
+ function parseAnnotationsNote(body) {
6002
+ return body.split(ANNOTATION_HEADER_REGEX).slice(1).map((entry) => {
6003
+ const lines = entry.trim().split("\n");
6004
+ const quoteLength = lines.findIndex((line) => !line.startsWith(">"));
6005
+ const quote = lines.slice(0, quoteLength === -1 ? void 0 : quoteLength).map((line) => line.replace(/^>\s?/, ""));
6006
+ const comment = quoteLength === -1 ? "" : lines.slice(quoteLength).join("\n").trim();
6007
+ return { text: quote.join("\n"), ...comment ? { comment } : {} };
6008
+ });
6009
+ }
5989
6010
  var APPSHOT_NOTE_REGEX = /(?:^|\n\n)<replicas_appshot app="([^"\n]*)" window="([^"\n]*)" image="(\d+)">\n([^\n<]*)(?:\n\n([^<]*))?\n<\/replicas_appshot>$/;
5990
6011
  var TRUNCATED_APPSHOT_NOTE_REGEX = /(?:^|\n\n)<replicas_appshot app="([^"\n]*)(?:" window="([^"\n]*)(?:" image="(\d*))?)?[^<]*(?:<\/?[a-z_]*)?$/;
5991
6012
  var XML_UNESCAPES = { "&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'" };
@@ -6019,11 +6040,14 @@ function stripAttachmentNote(text3) {
6019
6040
  };
6020
6041
  const walkthroughs = takeTrailingNotes(WALKTHROUGH_NOTE_REGEX, TRUNCATED_WALKTHROUGH_NOTE_REGEX, (walkthrough) => ({ path: walkthrough[1], durationSeconds: Number(walkthrough[2] ?? 0), audio: walkthrough[3] === "true" }));
6021
6042
  const appshots = takeTrailingNotes(APPSHOT_NOTE_REGEX, TRUNCATED_APPSHOT_NOTE_REGEX, parseAppshot);
6043
+ const annotationsNote = findAnnotationsNote(content);
6044
+ if (annotationsNote) content = content.slice(0, annotationsNote.index).trim();
6022
6045
  return {
6023
6046
  content,
6024
6047
  files: match ? [...match[1].matchAll(/^- (.+)$/gm)].map(([, path]) => path) : [],
6025
6048
  walkthroughs,
6026
- appshots
6049
+ appshots,
6050
+ annotations: annotationsNote ? parseAnnotationsNote(annotationsNote.body) : []
6027
6051
  };
6028
6052
  }
6029
6053
 
@@ -8041,18 +8065,19 @@ function filterDisplayMessages(messages, provider2) {
8041
8065
  }
8042
8066
  result = result.flatMap((msg) => {
8043
8067
  if (msg.type !== "user") return [msg];
8044
- const { content, files, walkthroughs, appshots } = stripAttachmentNote(stripReplicasInstructionBlock(msg.content).trim());
8068
+ const { content, files, walkthroughs, appshots, annotations } = stripAttachmentNote(stripReplicasInstructionBlock(msg.content).trim());
8045
8069
  if (INTERRUPTED_MESSAGE_REGEX.test(content)) {
8046
8070
  return [{ id: msg.id, type: "interruption", timestamp: msg.timestamp }];
8047
8071
  }
8048
8072
  const cleaned = (msg.images?.length || files.length) && ATTACHMENT_PLACEHOLDER_REGEX.test(content) ? "" : content;
8049
- if (cleaned.length === 0 && !msg.images?.length && files.length === 0 && walkthroughs.length === 0 && appshots.length === 0) return [];
8050
- if (cleaned === msg.content && files.length === 0 && walkthroughs.length === 0 && appshots.length === 0) return [msg];
8073
+ if (cleaned.length === 0 && !msg.images?.length && files.length === 0 && walkthroughs.length === 0 && appshots.length === 0 && annotations.length === 0) return [];
8074
+ if (cleaned === msg.content && files.length === 0 && walkthroughs.length === 0 && appshots.length === 0 && annotations.length === 0) return [msg];
8051
8075
  return [{
8052
8076
  ...msg,
8053
8077
  content: cleaned,
8054
8078
  ...files.length > 0 ? { files } : {},
8055
8079
  ...walkthroughs.length > 0 ? { walkthroughs } : {},
8080
+ ...annotations.length > 0 ? { annotations } : {},
8056
8081
  ...appshots.length > 0 ? { appshots } : {}
8057
8082
  }];
8058
8083
  });
@@ -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-NIOKFQKT.js";
7
- import "./chunk-XAQ6GHR3.js";
8
- import "./chunk-YYKT5ENX.js";
6
+ } from "./chunk-FILX4PF6.js";
7
+ import "./chunk-V5H4AKYX.js";
8
+ import "./chunk-CFAC6DWV.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-A67ZSUFV.js";
12
+ import "./chunk-XAAAOOWB.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-KJBI5WXM.js";
16
+ } from "./chunk-CQR2T35P.js";
17
17
  import {
18
18
  AppServerProcess,
19
19
  buildCodexAgentEnv
20
- } from "./chunk-BLD35QJH.js";
21
- import "./chunk-YYKT5ENX.js";
20
+ } from "./chunk-LKQHRWNH.js";
21
+ import "./chunk-CFAC6DWV.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-A67ZSUFV.js";
31
+ } from "./chunk-XAAAOOWB.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-NIOKFQKT.js";
30
+ } from "./chunk-FILX4PF6.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-KJBI5WXM.js";
67
+ } from "./chunk-CQR2T35P.js";
68
68
  import {
69
69
  publishedPullRequestUrls
70
- } from "./chunk-O6BNU2BC.js";
70
+ } from "./chunk-3HGIRXMN.js";
71
71
  import {
72
72
  ACCOUNT_RATE_LIMITS_READ_METHOD,
73
73
  AsyncLock,
@@ -140,7 +140,7 @@ import {
140
140
  timestampFromSeconds,
141
141
  upsertCredentialFileLines,
142
142
  writeSecureCredentialFile
143
- } from "./chunk-OC2XSSGV.js";
143
+ } from "./chunk-CQXHQFAC.js";
144
144
  import {
145
145
  ENGINE_ENV,
146
146
  monolithRequest,
@@ -150,15 +150,15 @@ import {
150
150
  resolveDiffBase,
151
151
  setAgentCredentialSnapshot,
152
152
  setLinearSessionId
153
- } from "./chunk-XAQ6GHR3.js";
153
+ } from "./chunk-V5H4AKYX.js";
154
154
  import {
155
155
  getCodexModelProvider
156
- } from "./chunk-BLD35QJH.js";
156
+ } from "./chunk-LKQHRWNH.js";
157
157
  import {
158
158
  SUBPROCESS_MAX_BUFFER,
159
159
  execAsync,
160
160
  execFileAsync
161
- } from "./chunk-YYKT5ENX.js";
161
+ } from "./chunk-CFAC6DWV.js";
162
162
  import {
163
163
  isRecord as isRecord2
164
164
  } from "./chunk-UZSNFLDQ.js";
@@ -402,7 +402,7 @@ import {
402
402
  workspaceTokenRequestSchema,
403
403
  workspaceTokenResponseSchema,
404
404
  wrapInTag
405
- } from "./chunk-A67ZSUFV.js";
405
+ } from "./chunk-XAAAOOWB.js";
406
406
  import {
407
407
  cloneMcpConfig,
408
408
  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-O6BNU2BC.js";
6
+ } from "./chunk-3HGIRXMN.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-A67ZSUFV.js";
12
+ } from "./chunk-XAAAOOWB.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-A67ZSUFV.js";
14
+ } from "./chunk-XAAAOOWB.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.1275",
3
+ "version": "0.1.1276",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",