replicas-engine 0.1.1269 → 0.1.1272

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-ZWJJPP6G.js";
12
- import "./chunk-L3I3HTJC.js";
13
- import "./chunk-NW3WCG7E.js";
14
- import "./chunk-47XPVTWF.js";
11
+ } from "./chunk-UTJRT7VX.js";
12
+ import "./chunk-MSAINGDM.js";
13
+ import "./chunk-VA7HZ5MV.js";
14
+ import "./chunk-NYTMILLQ.js";
15
15
  import "./chunk-UZSNFLDQ.js";
16
- import "./chunk-EVSWPNVE.js";
16
+ import "./chunk-N423MPLL.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-EVSWPNVE.js";
8
+ } from "./chunk-N423MPLL.js";
9
9
 
10
10
  // src/services/published-pull-request-urls.ts
11
11
  function publishedPullRequestUrls(result) {
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  SUBPROCESS_MAX_BUFFER,
6
6
  execFileAsync
7
- } from "./chunk-47XPVTWF.js";
7
+ } from "./chunk-NYTMILLQ.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-EVSWPNVE.js";
25
+ } from "./chunk-N423MPLL.js";
26
26
 
27
27
  // src/runtime-env-loader.ts
28
28
  import { readFileSync } from "fs";
@@ -220,6 +220,17 @@ var ASTER_MODEL_LABELS = {
220
220
  "gpt-oss-120b": "GPT-OSS 120B"
221
221
  };
222
222
 
223
+ // ../shared/src/chat-kind.ts
224
+ var CHAT_KINDS = ["standard", "pull_request_fixes", "pull_request_review", "pull_request_tour"];
225
+ function isChatKind(value) {
226
+ return CHAT_KINDS.some((kind) => kind === value);
227
+ }
228
+ function getChatKind(chat) {
229
+ if (chat.kind !== void 0) return chat.kind;
230
+ const purpose = /^(?:PR #|MR !)\d+ (fixes|review|tour)$/.exec(chat.title)?.[1];
231
+ return CHAT_KINDS.find((kind) => kind === `pull_request_${purpose}`) ?? "standard";
232
+ }
233
+
223
234
  // ../shared/src/routes/reviews.ts
224
235
  import { z as z2 } from "zod";
225
236
 
@@ -455,6 +466,9 @@ var DEFAULT_CHAT_TITLES = {
455
466
  function isDefaultChat(chat) {
456
467
  return chat.title === DEFAULT_CHAT_TITLES[chat.provider];
457
468
  }
469
+ function isPullRequestFeedbackChat(chat) {
470
+ return getChatKind(chat) === "pull_request_fixes";
471
+ }
458
472
  var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
459
473
  var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
460
474
  var CLAUDE_FABLE_5_1_MODEL = "claude-fable-5-1";
@@ -1524,6 +1538,7 @@ var createChatRequestSchema = z4.object({
1524
1538
  parentChatId: z4.string().uuid().optional(),
1525
1539
  forkSourceChatId: z4.string().uuid().optional(),
1526
1540
  pullRequestNotesPath: z4.string().min(1).optional(),
1541
+ kind: z4.enum(CHAT_KINDS).optional(),
1527
1542
  sideChat: z4.boolean().optional(),
1528
1543
  clientRequestId: z4.string().min(1).max(128).optional()
1529
1544
  }).refine((request) => !request.sideChat || request.forkSourceChatId !== void 0 && request.parentChatId === request.forkSourceChatId, {
@@ -3230,6 +3245,7 @@ Use the pre-authenticated \`gh\` CLI for repository workflows and the workspace-
3230
3245
 
3231
3246
  Use this when:
3232
3247
  - You need to create, review, or manage pull requests
3248
+ - You're opening pull requests that build on each other (a stack)
3233
3249
  - You need to interact with GitHub issues or actions
3234
3250
  - You need to use the GitHub API for advanced operations
3235
3251
  - You need to include images in PR descriptions`;
@@ -3272,6 +3288,18 @@ gh pr checks 123
3272
3288
  gh pr merge 123
3273
3289
  \`\`\`
3274
3290
 
3291
+ ### Stacked Pull Requests
3292
+
3293
+ When a change spans pull requests that build on each other, open each one with \`--base\` set to the branch below it, then link them into a GitHub stack. GitHub then shows the whole stack on every pull request in it. The \`gh stack\` extension is pre-installed.
3294
+
3295
+ \`\`\`bash
3296
+ # Bottom of the stack first. Pass --base when the bottom pull request targets a branch other than the default branch
3297
+ gh stack link 101 102 103
3298
+ gh stack link --base develop 101 102 103
3299
+ \`\`\`
3300
+
3301
+ Run \`gh stack --help\` for local stack tracking, rebasing, and merging a stack.
3302
+
3275
3303
  ### Issues
3276
3304
 
3277
3305
  \`\`\`bash
@@ -10024,17 +10052,19 @@ import { z as z24 } from "zod";
10024
10052
  var WORKSPACE_ATTENTION_REASONS = ["question", "blocked"];
10025
10053
 
10026
10054
  // ../shared/src/routes/workspace-events.ts
10055
+ var workspaceTurnCompletionSchema = z24.object({
10056
+ workspaceName: z24.string(),
10057
+ completedAt: z24.string(),
10058
+ processing: z24.boolean().optional(),
10059
+ pullRequestFeedback: z24.boolean().optional(),
10060
+ attention: z24.object({ reason: z24.enum(WORKSPACE_ATTENTION_REASONS), userId: z24.string() }).optional()
10061
+ });
10027
10062
  var workspaceChangedEventSchema = z24.discriminatedUnion("type", [
10028
10063
  z24.object({
10029
10064
  type: z24.literal("workspace.changed"),
10030
10065
  workspaceId: z24.string(),
10031
10066
  workspace: z24.object({ status: z24.enum(WORKSPACE_STATUSES), last_activity_at: z24.string().nullable() }).optional(),
10032
- completion: z24.object({
10033
- workspaceName: z24.string(),
10034
- completedAt: z24.string(),
10035
- processing: z24.boolean().optional(),
10036
- attention: z24.object({ reason: z24.enum(WORKSPACE_ATTENTION_REASONS), userId: z24.string() }).optional()
10037
- }).optional(),
10067
+ completion: workspaceTurnCompletionSchema.optional(),
10038
10068
  ts: z24.string()
10039
10069
  }),
10040
10070
  z24.object({
@@ -10275,7 +10305,8 @@ function normalizeChatTranscriptMetadata(value) {
10275
10305
  captureId,
10276
10306
  captureReason,
10277
10307
  sha256,
10278
- fork
10308
+ fork,
10309
+ kind
10279
10310
  } = value;
10280
10311
  if (typeof provider2 === "string" && isValidAgentProvider(provider2)) metadata.provider = provider2;
10281
10312
  const parsedCredential = agentCredentialSnapshotSchema.safeParse(credential);
@@ -10298,6 +10329,7 @@ function normalizeChatTranscriptMetadata(value) {
10298
10329
  if (typeof captureId === "string") metadata.captureId = captureId;
10299
10330
  if (captureReason === "workspace_sleep") metadata.captureReason = captureReason;
10300
10331
  if (typeof sha256 === "string") metadata.sha256 = sha256;
10332
+ if (isChatKind(kind)) metadata.kind = kind;
10301
10333
  if (fork === null) metadata.fork = null;
10302
10334
  else if (fork !== void 0) {
10303
10335
  const parsedFork = coerceChatForkInfo(fork);
@@ -10410,6 +10442,7 @@ export {
10410
10442
  OPENCODE_GO_BASE_URL,
10411
10443
  DEFAULT_OPENCODE_GO_MODEL,
10412
10444
  fetchOpenCodeGoCatalog,
10445
+ getChatKind,
10413
10446
  isGitHubUrl,
10414
10447
  DEFAULT_WEB_APP_URL,
10415
10448
  WEB_APP_PATHS,
@@ -10419,6 +10452,7 @@ export {
10419
10452
  detectLanguageByPath,
10420
10453
  DEFAULT_CHAT_TITLES,
10421
10454
  isDefaultChat,
10455
+ isPullRequestFeedbackChat,
10422
10456
  CLAUDE_OPUS_4_8_BEDROCK_MODEL,
10423
10457
  CLAUDE_SONNET_5_BEDROCK_MODEL,
10424
10458
  CLAUDE_HAIKU_4_5_BEDROCK_MODEL,
@@ -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-EVSWPNVE.js";
6
+ } from "./chunk-N423MPLL.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-NW3WCG7E.js";
6
+ } from "./chunk-VA7HZ5MV.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-EVSWPNVE.js";
16
+ } from "./chunk-N423MPLL.js";
17
17
 
18
18
  // src/managers/codex-asp/notification-dispatch.ts
19
19
  var TURN_STARTED_METHOD = "turn/started";
@@ -5,14 +5,14 @@ import {
5
5
  getOriginDefaultBranch,
6
6
  monolithRequest,
7
7
  runGitCommand
8
- } from "./chunk-L3I3HTJC.js";
8
+ } from "./chunk-MSAINGDM.js";
9
9
  import {
10
10
  extractCommandProtectionCommandText,
11
11
  findCommandProtectionGitLookups,
12
12
  findGitCommitSignals,
13
13
  findPrMergeSignals,
14
14
  parseCommandProtectionRequest
15
- } from "./chunk-EVSWPNVE.js";
15
+ } from "./chunk-N423MPLL.js";
16
16
 
17
17
  // src/services/command-protection-service.ts
18
18
  import { readFile, stat } from "fs/promises";
@@ -10,15 +10,15 @@ import {
10
10
  resolveDiffBase,
11
11
  runGitCommand,
12
12
  setAgentCredentialSnapshot
13
- } from "./chunk-L3I3HTJC.js";
13
+ } from "./chunk-MSAINGDM.js";
14
14
  import {
15
15
  AppServerProcess,
16
16
  buildCodexAgentEnv
17
- } from "./chunk-NW3WCG7E.js";
17
+ } from "./chunk-VA7HZ5MV.js";
18
18
  import {
19
19
  SUBPROCESS_MAX_BUFFER,
20
20
  execFileAsync
21
- } from "./chunk-47XPVTWF.js";
21
+ } from "./chunk-NYTMILLQ.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-EVSWPNVE.js";
58
+ } from "./chunk-N423MPLL.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-F3QJONCX.js");
294
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-476KYFS5.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-F3QJONCX.js");
316
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-476KYFS5.js");
317
317
  await restartCodexAspHostIfRunning2();
318
318
  }
319
319
  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-47XPVTWF.js";
6
+ } from "./chunk-NYTMILLQ.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-EVSWPNVE.js";
9
+ } from "./chunk-N423MPLL.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.1269";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.1272";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -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-UP4LVTOW.js";
7
- import "./chunk-L3I3HTJC.js";
8
- import "./chunk-47XPVTWF.js";
6
+ } from "./chunk-RWFSXLQK.js";
7
+ import "./chunk-MSAINGDM.js";
8
+ import "./chunk-NYTMILLQ.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-EVSWPNVE.js";
12
+ import "./chunk-N423MPLL.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-VQY5SAKR.js";
16
+ } from "./chunk-P2FGFEOJ.js";
17
17
  import {
18
18
  AppServerProcess,
19
19
  buildCodexAgentEnv
20
- } from "./chunk-NW3WCG7E.js";
21
- import "./chunk-47XPVTWF.js";
20
+ } from "./chunk-VA7HZ5MV.js";
21
+ import "./chunk-NYTMILLQ.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-EVSWPNVE.js";
31
+ } from "./chunk-N423MPLL.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-UP4LVTOW.js";
30
+ } from "./chunk-RWFSXLQK.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-VQY5SAKR.js";
67
+ } from "./chunk-P2FGFEOJ.js";
68
68
  import {
69
69
  publishedPullRequestUrls
70
- } from "./chunk-RS4AYG3B.js";
70
+ } from "./chunk-DT45R2ZS.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-ZWJJPP6G.js";
143
+ } from "./chunk-UTJRT7VX.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-L3I3HTJC.js";
153
+ } from "./chunk-MSAINGDM.js";
154
154
  import {
155
155
  getCodexModelProvider
156
- } from "./chunk-NW3WCG7E.js";
156
+ } from "./chunk-VA7HZ5MV.js";
157
157
  import {
158
158
  SUBPROCESS_MAX_BUFFER,
159
159
  execAsync,
160
160
  execFileAsync
161
- } from "./chunk-47XPVTWF.js";
161
+ } from "./chunk-NYTMILLQ.js";
162
162
  import {
163
163
  isRecord as isRecord2
164
164
  } from "./chunk-UZSNFLDQ.js";
@@ -307,6 +307,7 @@ import {
307
307
  formatChatForkUpdateMessage,
308
308
  getChatContinuation,
309
309
  getChatHistoryPageSenders,
310
+ getChatKind,
310
311
  getClaudeModelContextWindow,
311
312
  getDefaultAgentModel,
312
313
  getDefaultOllamaModel,
@@ -337,6 +338,7 @@ import {
337
338
  isExcludedRepoFilePath,
338
339
  isLatestChatHistoryPage,
339
340
  isNonEmptyString,
341
+ isPullRequestFeedbackChat,
340
342
  isRecord,
341
343
  isSameCredential,
342
344
  isSkillRegistryManifest,
@@ -400,7 +402,7 @@ import {
400
402
  workspaceTokenRequestSchema,
401
403
  workspaceTokenResponseSchema,
402
404
  wrapInTag
403
- } from "./chunk-EVSWPNVE.js";
405
+ } from "./chunk-N423MPLL.js";
404
406
  import {
405
407
  cloneMcpConfig,
406
408
  ensureCompatibilityImports,
@@ -10604,7 +10606,7 @@ import { join as join29 } from "path";
10604
10606
  import { randomUUID as randomUUID10 } from "crypto";
10605
10607
 
10606
10608
  // ../shared/src/workspace-chat.ts
10607
- var WORKSPACE_CHATS_QUERY_SCHEMA_VERSION = 14;
10609
+ var WORKSPACE_CHATS_QUERY_SCHEMA_VERSION = 15;
10608
10610
  var WORKSPACE_CHATS_QUERY_ROOT = `workspace-chats:v${WORKSPACE_CHATS_QUERY_SCHEMA_VERSION}`;
10609
10611
  function isAcceptedUserMessage(event) {
10610
10612
  return getUserMessage(event) !== null && event.payload.source === ACCEPTED_USER_MESSAGE_SOURCE;
@@ -59533,6 +59535,7 @@ async function uploadChatTranscriptNow(chatId, filePath, chat, capture) {
59533
59535
  parentChatId: chat.parentChatId,
59534
59536
  deletedAt: chat.deletedAt ?? null,
59535
59537
  fork: chat.fork ?? null,
59538
+ kind: chat.kind,
59536
59539
  ...historyVersion ? { historyVersion } : {}
59537
59540
  } : {};
59538
59541
  try {
@@ -59960,6 +59963,7 @@ function normalizePersistedChat(chat) {
59960
59963
  fork: coerceChatForkInfo(chat.fork),
59961
59964
  pendingForkHandoff: chat.pendingForkHandoff === true,
59962
59965
  ...typeof chat.pullRequestNotesPath === "string" ? { pullRequestNotesPath: chat.pullRequestNotesPath } : {},
59966
+ kind: getChatKind(chat),
59963
59967
  ...typeof chat.forkedThroughTurn === "string" ? { forkedThroughTurn: chat.forkedThroughTurn } : {},
59964
59968
  ...typeof chat.pendingProviderFork?.sessionId === "string" && typeof chat.pendingProviderFork.throughTurn === "string" ? { pendingProviderFork: chat.pendingProviderFork } : {},
59965
59969
  ...chat.chatCredential === "workspace" || agentCredentialSnapshotSchema.safeParse(chat.chatCredential).success ? { chatCredential: chat.chatCredential } : {},
@@ -60095,6 +60099,7 @@ var ChatService = class {
60095
60099
  providerSessionId: null,
60096
60100
  parentChatId,
60097
60101
  fork: request.fork ?? null,
60102
+ kind: getChatKind({ title, kind: request.kind }),
60098
60103
  ...request.displayName ? { displayName: request.displayName } : {},
60099
60104
  ...source ? {
60100
60105
  displayName: request.title?.trim() || void 0,
@@ -60728,7 +60733,8 @@ ${decisions}` };
60728
60733
  displayName: sourceName === DEFAULT_CHAT_TITLES[source.persisted.provider] ? DEFAULT_CHAT_TITLES[request.provider] : sourceName
60729
60734
  } : {},
60730
60735
  clientRequestId: request.clientRequestId,
60731
- fork: createForkInfo(source.persisted, trigger, (/* @__PURE__ */ new Date()).toISOString(), reason)
60736
+ fork: createForkInfo(source.persisted, trigger, (/* @__PURE__ */ new Date()).toISOString(), reason),
60737
+ ...trigger === "auto" ? { kind: source.persisted.kind } : {}
60732
60738
  });
60733
60739
  }
60734
60740
  async createForkHandoffMessage(targetChatId, options) {
@@ -61221,6 +61227,7 @@ ${note}`;
61221
61227
  lastMessageText: chat.persisted.lastMessageText ?? null,
61222
61228
  deletedAt: chat.persisted.deletedAt ?? null,
61223
61229
  fork: chat.persisted.fork ?? null,
61230
+ kind: chat.persisted.kind,
61224
61231
  ...chat.persisted.chatCredential ? { chatCredential: chat.persisted.chatCredential } : {}
61225
61232
  };
61226
61233
  }
@@ -61468,7 +61475,8 @@ ${note}`;
61468
61475
  completedAt,
61469
61476
  processing,
61470
61477
  ...userTurn || answer ? { chatId: chat.persisted.id } : {},
61471
- ...answer ? { finalMessage: answer, ...chat.turnRequest ? { request: chat.turnRequest } : {} } : {}
61478
+ ...answer ? { finalMessage: answer, ...chat.turnRequest ? { request: chat.turnRequest } : {} } : {},
61479
+ ...isPullRequestFeedbackChat(chat.persisted) ? { pullRequestFeedback: true } : {}
61472
61480
  }
61473
61481
  }, AbortSignal.timeout(1e4));
61474
61482
  }
@@ -61602,7 +61610,8 @@ ${note}`;
61602
61610
  ...unlinkedPullRequestUrls.length > 0 ? { unlinkedPullRequestUrls } : {},
61603
61611
  ...errors?.length ? { errors } : {},
61604
61612
  ...(errors?.length || quotaExhaustion) && errorNotificationTargets.length > 0 ? { errorNotificationTargets } : {},
61605
- ...quotaExhaustion ? { quotaExhaustion } : {}
61613
+ ...quotaExhaustion ? { quotaExhaustion } : {},
61614
+ ...isPullRequestFeedbackChat(chat.persisted) ? { pullRequestFeedback: true } : {}
61606
61615
  };
61607
61616
  await monolithService.sendEvent({ type: "agent_turn_complete", payload });
61608
61617
  } catch (error) {
@@ -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-RS4AYG3B.js";
6
+ } from "./chunk-DT45R2ZS.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-EVSWPNVE.js";
12
+ } from "./chunk-N423MPLL.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-EVSWPNVE.js";
14
+ } from "./chunk-N423MPLL.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.1269",
3
+ "version": "0.1.1272",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",