replicas-engine 0.1.1357 → 0.1.1359

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-FGCYK6NL.js";
12
- import "./chunk-CV5S6JD3.js";
13
- import "./chunk-DJL6X2TB.js";
14
- import "./chunk-JIMWWWQ3.js";
11
+ } from "./chunk-LO7VRVDR.js";
12
+ import "./chunk-5MGEDUHN.js";
13
+ import "./chunk-7L7HH3N5.js";
14
+ import "./chunk-2FY2VKXN.js";
15
15
  import "./chunk-UZSNFLDQ.js";
16
- import "./chunk-CECME6HB.js";
16
+ import "./chunk-7UHY3XGQ.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-CECME6HB.js";
6
+ } from "./chunk-7UHY3XGQ.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-JIMWWWQ3.js";
7
+ } from "./chunk-2FY2VKXN.js";
8
8
  import {
9
9
  isRecord as isRecord2
10
10
  } from "./chunk-UZSNFLDQ.js";
@@ -21,7 +21,7 @@ import {
21
21
  provisionedDeviceSchema,
22
22
  readReplicasRuntimeEnv,
23
23
  serializePosixEnvFile
24
- } from "./chunk-CECME6HB.js";
24
+ } from "./chunk-7UHY3XGQ.js";
25
25
 
26
26
  // src/runtime-env-loader.ts
27
27
  import { readFileSync } from "fs";
@@ -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-DJL6X2TB.js";
6
+ } from "./chunk-7L7HH3N5.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-CECME6HB.js";
18
+ } from "./chunk-7UHY3XGQ.js";
19
19
 
20
20
  // src/managers/codex-asp/notification-dispatch.ts
21
21
  var TURN_STARTED_METHOD = "turn/started";
@@ -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-JIMWWWQ3.js";
6
+ } from "./chunk-2FY2VKXN.js";
7
7
  import {
8
8
  isVersionBelow
9
- } from "./chunk-CECME6HB.js";
9
+ } from "./chunk-7UHY3XGQ.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.1356";
243
+ var ENGINE_PACKAGE_VERSION = "0.1.1357";
244
244
  var INITIALIZE_METHOD = "initialize";
245
245
  var INITIALIZED_NOTIFICATION = "initialized";
246
246
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -1116,17 +1116,17 @@ var require_luxon = __commonJS({
1116
1116
  constructor(dt, intl, opts) {
1117
1117
  this.opts = opts;
1118
1118
  this.originalZone = void 0;
1119
- let z30 = void 0;
1119
+ let z31 = void 0;
1120
1120
  if (this.opts.timeZone) {
1121
1121
  this.dt = dt;
1122
1122
  } else if (dt.zone.type === "fixed") {
1123
1123
  const gmtOffset = -1 * (dt.offset / 60);
1124
1124
  const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;
1125
1125
  if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {
1126
- z30 = offsetZ;
1126
+ z31 = offsetZ;
1127
1127
  this.dt = dt;
1128
1128
  } else {
1129
- z30 = "UTC";
1129
+ z31 = "UTC";
1130
1130
  this.dt = dt.offset === 0 ? dt : dt.setZone("UTC").plus({
1131
1131
  minutes: dt.offset
1132
1132
  });
@@ -1136,9 +1136,9 @@ var require_luxon = __commonJS({
1136
1136
  this.dt = dt;
1137
1137
  } else if (dt.zone.type === "iana") {
1138
1138
  this.dt = dt;
1139
- z30 = dt.zone.name;
1139
+ z31 = dt.zone.name;
1140
1140
  } else {
1141
- z30 = "UTC";
1141
+ z31 = "UTC";
1142
1142
  this.dt = dt.setZone("UTC").plus({
1143
1143
  minutes: dt.offset
1144
1144
  });
@@ -1147,7 +1147,7 @@ var require_luxon = __commonJS({
1147
1147
  const intlOpts = {
1148
1148
  ...this.opts
1149
1149
  };
1150
- intlOpts.timeZone = intlOpts.timeZone || z30;
1150
+ intlOpts.timeZone = intlOpts.timeZone || z31;
1151
1151
  this.dtf = getCachedDTF(intl, intlOpts);
1152
1152
  }
1153
1153
  format() {
@@ -11763,6 +11763,8 @@ var REPLICAS_MCP_TOOLS = {
11763
11763
  deleteChannelPreset: "delete_channel_preset",
11764
11764
  updateChannelSettings: "update_channel_settings",
11765
11765
  setOrganizationProactivity: "set_organization_proactivity",
11766
+ setSlackAgentDefaults: "set_slack_agent_defaults",
11767
+ claimSettingsOffer: "claim_settings_offer",
11766
11768
  setThreadMuted: "set_thread_muted",
11767
11769
  spawnSubagent: "spawn_subagent",
11768
11770
  messageSubagent: "message_subagent",
@@ -11834,6 +11836,7 @@ var createEnvironmentDeviceToolInputSchema = z17.object({ ...environmentMcpPath,
11834
11836
  var SCOUT_SOURCE_TYPES = ["slack", "linear"];
11835
11837
  var SCOUT_PROACTIVITY_LEVELS = ["tagged", "conservative", "balanced", "proactive"];
11836
11838
  var SCOUT_PRESET_NAME_MAX_LENGTH = 50;
11839
+ var SCOUT_SETTINGS_OFFERS = ["proactivity", "instructions", "organization_proactivity"];
11837
11840
  var SCOUT_PRESET_ICONS = [
11838
11841
  "users",
11839
11842
  "user",
@@ -14494,6 +14497,13 @@ function splitMothershipInstructions(customInstructions) {
14494
14497
  mothershipInstructions: match?.[1]
14495
14498
  };
14496
14499
  }
14500
+ var SCOUT_ADAPTIVE_SETTINGS_PROMPT = `### Adapting to each channel
14501
+ There is no settings page: people change how you behave by telling you, and you suggest a change when it would clearly help. The envelope carries the channel's \`proactivity\` and \`offers\`, the offers you may still make in this channel (\`proactivity\`, \`instructions\`); \`offers=none\` means make none. Offer only what \`offers\` lists, at most one per message. Claim an offer with \`${REPLICAS_MCP_TOOLS.claimSettingsOffer}\` right before posting it, and post it only when the claim succeeds. When someone declines ("no", "it's fine", "leave it"), record it with \`declined: true\` and drop it; never repeat an ignored offer. When they accept, apply it with the settings tools using the accepting message as confirmation, then confirm what changed in one short line.
14502
+ - **Frustration.** When someone is clearly annoyed that you replied or acted unasked ("wtf why did replicas respond", "stop", "not you", "nobody asked", or \`event=reaction:\u2026\`, a thumbs-down or similar on a reply you posted unasked), claim \`proactivity\` and post one short apology that offers to lower this channel exactly one step. From Balanced or High, offer Low: "Sorry for jumping in. Want me to only reply here when someone mentions me by name?" From Low, offer Mentions only: "Sorry for jumping in. Want me to only reply here when someone @mentions me?" On a yes, set the level you offered, nothing lower. Do nothing else in that thread. When the claim answers \`offer: organization\`, people were frustrated in several channels, so offer the same for every channel instead; when \`requester_is_admin\` is false, say an organization admin can change it for every channel and offer this channel. A thumbs-down on a reply someone asked for is about the answer, not about speaking up, so leave it. An explicit "stop replying in this thread" is still a thread mute.
14503
+ - **Channel instructions.** On \`event=joined\` (you were just added to the channel; reply in that envelope's thread), or when you act in a channel for the first time, and the channel's name or purpose points to a clear role (#triage, #bugs, #incidents, #support, #customer-*, a customer's shared channel), claim \`instructions\` and offer one concrete behavior in one line, such as "This looks like an incident channel. Want me to triage new reports here, check for duplicates, and post findings in the thread?" On \`event=joined\` without a clear role, do nothing at all. Make the same kind of offer when you notice you keep handling messages here the same way, or that the channel clearly belongs to a Mothership (offer to send its actionable messages to that Mothership by name). On a yes, save it as the channel's instructions, or as its preset when one fits exactly.
14504
+ - **Tip.** When the envelope has \`tip=true\`, this is the first time someone pinged you in this channel, so end the reply you post with one more line: "_Tip: tell me how you want me to act in this channel._" It is shown once per channel, so never add it otherwise.
14505
+ - **Slack agent defaults.** To change the agent, model, thinking level, goal mode or fast mode used for tasks started from Slack ("use Codex for Slack tasks"), call \`${REPLICAS_MCP_TOOLS.setSlackAgentDefaults}\`; only an organization admin can.
14506
+ - **What can I change?** Read the current settings, then answer with a short list of what applies: how much you speak up here or in every channel (Mentions only, Low, Balanced, High; raising a channel above Mentions only and the every-channel default need an admin), instructions or a preset for this channel, sending this channel's requests to a Mothership, which Linear teams you triage (an admin starts one), and the agent defaults for Slack tasks (admin). Say each one's current value.`;
14497
14507
 
14498
14508
  // ../shared/src/mothership-events.ts
14499
14509
  var MOTHERSHIP_EVENT_KINDS = ["finished", "ready", "needs_attention", "merged", "closed", "archived"];
@@ -19739,6 +19749,21 @@ var scoutSetOrganizationProactivityToolInputSchema = scoutSlackConfirmationSchem
19739
19749
  var scoutDeleteChannelPresetToolInputSchema = scoutSlackConfirmationSchema.extend({
19740
19750
  preset_id: z25.string().describe(`Id of the preset to delete, from \`${REPLICAS_MCP_TOOLS.listChannelSettings}\`.`)
19741
19751
  });
19752
+ var RESET_TO_DEFAULT = "default";
19753
+ var resettable = (schema, description) => z25.union([schema, z25.literal(RESET_TO_DEFAULT)]).optional().describe(`${description} \`${RESET_TO_DEFAULT}\` falls back to the organization default. Omit to keep it.`);
19754
+ var scoutSetSlackAgentDefaultsToolInputSchema = scoutSlackConfirmationSchema.extend({
19755
+ agent_provider: resettable(z25.enum(AGENT), "Agent for Slack-triggered workspaces. Changing it without `model` resets the model to that agent's default."),
19756
+ model: resettable(z25.string(), "Model id for that agent; the default is the agent's own."),
19757
+ thinking_level: resettable(z25.enum(VALID_THINKING_LEVELS), "Thinking level."),
19758
+ goal_mode: resettable(z25.boolean(), "Goal mode."),
19759
+ fast_mode: resettable(z25.boolean(), "Fast mode.")
19760
+ });
19761
+ var scoutClaimSettingsOfferToolInputSchema = z25.object({
19762
+ channel_id: slackChannelIdSchema,
19763
+ kind: z25.enum(SCOUT_SETTINGS_OFFERS).describe("`proactivity`: offering a lower level after frustration. `instructions`: offering channel instructions or a preset. `organization_proactivity`: offering to lower the workspace default; only decline it, the server claims it for you."),
19764
+ user_id: z25.string().optional().describe("The envelope's `user_id`. Required for `proactivity`, so the server can say whether they are an organization admin."),
19765
+ declined: z25.boolean().optional().describe("true when the person declined an offer you already made, so it is not made again.")
19766
+ });
19742
19767
 
19743
19768
  // ../shared/src/routes/plugin-catalog.ts
19744
19769
  var EXPLICIT_PLUGIN_CATALOG = [
@@ -20098,6 +20123,14 @@ var PLUGIN_CATALOG = [
20098
20123
  // ../shared/src/routes/user.ts
20099
20124
  var PROFILE_AVATAR_MAX_SIZE_BYTES = 5 * 1024 * 1024;
20100
20125
 
20126
+ // ../shared/src/routes/web-auth.ts
20127
+ import { z as z26 } from "zod";
20128
+ var webAuthRedeemResponseSchema = z26.object({
20129
+ path: z26.string(),
20130
+ organizationId: z26.string().nullable(),
20131
+ session: z26.object({ access_token: z26.string(), refresh_token: z26.string(), user: z26.object({ id: z26.string(), email: z26.string() }) }).nullable()
20132
+ });
20133
+
20101
20134
  // ../shared/src/routes/client-state.ts
20102
20135
  var MAX_CLIENT_STATE_REQUEST_BYTES = 5 * 1024 * 1024;
20103
20136
  var MAX_CLIENT_STATE_BYTES_PER_USER = 10 * 1024 * 1024;
@@ -20118,81 +20151,81 @@ var promptHistoryClientStateKey = orgUserClientStateKey(PROMPT_HISTORY_CLIENT_ST
20118
20151
  var workspaceSearchOpensClientStateKey = orgUserClientStateKey(WORKSPACE_SEARCH_OPENS_CLIENT_STATE_KEY_PREFIX);
20119
20152
 
20120
20153
  // ../shared/src/routes/workspace-events.ts
20121
- import { z as z26 } from "zod";
20122
- var workspaceTurnCompletionSchema = z26.object({
20123
- workspaceName: z26.string(),
20124
- completedAt: z26.string(),
20125
- processing: z26.boolean().optional(),
20126
- pullRequestFeedback: z26.boolean().optional(),
20127
- attention: z26.object({ reason: z26.enum(CHAT_ATTENTION_REASONS), userId: z26.string() }).optional()
20154
+ import { z as z27 } from "zod";
20155
+ var workspaceTurnCompletionSchema = z27.object({
20156
+ workspaceName: z27.string(),
20157
+ completedAt: z27.string(),
20158
+ processing: z27.boolean().optional(),
20159
+ pullRequestFeedback: z27.boolean().optional(),
20160
+ attention: z27.object({ reason: z27.enum(CHAT_ATTENTION_REASONS), userId: z27.string() }).optional()
20128
20161
  });
20129
- var workspaceChangedEventSchema = z26.discriminatedUnion("type", [
20130
- z26.object({
20131
- type: z26.literal("workspace.changed"),
20132
- workspaceId: z26.string(),
20133
- workspace: z26.object({ status: z26.enum(WORKSPACE_STATUSES), last_activity_at: z26.string().nullable() }).optional(),
20162
+ var workspaceChangedEventSchema = z27.discriminatedUnion("type", [
20163
+ z27.object({
20164
+ type: z27.literal("workspace.changed"),
20165
+ workspaceId: z27.string(),
20166
+ workspace: z27.object({ status: z27.enum(WORKSPACE_STATUSES), last_activity_at: z27.string().nullable() }).optional(),
20134
20167
  completion: workspaceTurnCompletionSchema.optional(),
20135
- ts: z26.string()
20168
+ ts: z27.string()
20136
20169
  }),
20137
- z26.object({
20138
- type: z26.literal("workspace.chat.changed"),
20139
- workspaceId: z26.string(),
20140
- chatId: z26.string(),
20141
- ts: z26.string()
20170
+ z27.object({
20171
+ type: z27.literal("workspace.chat.changed"),
20172
+ workspaceId: z27.string(),
20173
+ chatId: z27.string(),
20174
+ ts: z27.string()
20142
20175
  }),
20143
- z26.object({
20144
- type: z26.literal("workspace.chat.advanced"),
20145
- workspaceId: z26.string(),
20146
- chatId: z26.string(),
20147
- afterCursor: z26.string().optional(),
20148
- processing: z26.boolean(),
20149
- ts: z26.string()
20176
+ z27.object({
20177
+ type: z27.literal("workspace.chat.advanced"),
20178
+ workspaceId: z27.string(),
20179
+ chatId: z27.string(),
20180
+ afterCursor: z27.string().optional(),
20181
+ processing: z27.boolean(),
20182
+ ts: z27.string()
20150
20183
  }),
20151
- z26.object({ type: z26.literal("presence.changed"), ts: z26.string() }),
20152
- z26.object({
20153
- type: z26.literal("mobile-testing.changed"),
20154
- workspaceId: z26.string(),
20155
- ts: z26.string()
20184
+ z27.object({ type: z27.literal("presence.changed"), ts: z27.string() }),
20185
+ z27.object({
20186
+ type: z27.literal("mobile-testing.changed"),
20187
+ workspaceId: z27.string(),
20188
+ ts: z27.string()
20156
20189
  }),
20157
- z26.object({
20158
- type: z26.literal("variable-request.changed"),
20159
- workspaceId: z26.string(),
20160
- ts: z26.string()
20190
+ z27.object({
20191
+ type: z27.literal("variable-request.changed"),
20192
+ workspaceId: z27.string(),
20193
+ ts: z27.string()
20161
20194
  }),
20162
- z26.object({
20163
- type: z26.literal("pull-request.changed"),
20164
- prUrl: z26.string(),
20165
- ts: z26.string()
20195
+ z27.object({
20196
+ type: z27.literal("pull-request.changed"),
20197
+ prUrl: z27.string(),
20198
+ ts: z27.string()
20166
20199
  }),
20167
- z26.object({
20168
- type: z26.literal("mothership.subagent.changed"),
20169
- workspaceId: z26.string(),
20170
- subagent: z26.object({ id: z26.string(), name: z26.string(), prUrl: z26.string().nullable() }),
20171
- ts: z26.string()
20200
+ z27.object({
20201
+ type: z27.literal("mothership.subagent.changed"),
20202
+ workspaceId: z27.string(),
20203
+ subagent: z27.object({ id: z27.string(), name: z27.string(), prUrl: z27.string().nullable() }),
20204
+ ts: z27.string()
20172
20205
  }),
20173
- z26.object({ type: z26.literal("needs-you.changed"), workspaceId: z26.string().nullable(), ts: z26.string() })
20206
+ z27.object({ type: z27.literal("needs-you.changed"), workspaceId: z27.string().nullable(), ts: z27.string() })
20174
20207
  ]);
20175
20208
 
20176
20209
  // ../shared/src/routes/presence.ts
20177
- import { z as z27 } from "zod";
20178
- var presenceStatusSchema = z27.enum(["online", "typing"]);
20179
- var presenceLocationSchema = z27.object({
20180
- workspaceId: z27.string().optional()
20210
+ import { z as z28 } from "zod";
20211
+ var presenceStatusSchema = z28.enum(["online", "typing"]);
20212
+ var presenceLocationSchema = z28.object({
20213
+ workspaceId: z28.string().optional()
20181
20214
  });
20182
- var presenceEntrySchema = z27.object({
20183
- userId: z27.string(),
20215
+ var presenceEntrySchema = z28.object({
20216
+ userId: z28.string(),
20184
20217
  status: presenceStatusSchema,
20185
20218
  location: presenceLocationSchema,
20186
- ts: z27.string()
20219
+ ts: z28.string()
20187
20220
  });
20188
- var updatePresenceRequestSchema = z27.object({
20221
+ var updatePresenceRequestSchema = z28.object({
20189
20222
  status: presenceStatusSchema,
20190
20223
  location: presenceLocationSchema.optional()
20191
20224
  });
20192
20225
 
20193
20226
  // ../shared/src/routes/review-messages.ts
20194
- import { z as z28 } from "zod";
20195
- var sendPullRequestReviewMessageRequestSchema = z28.object({
20227
+ import { z as z29 } from "zod";
20228
+ var sendPullRequestReviewMessageRequestSchema = z29.object({
20196
20229
  ...sendChatMessageRequestSchema.pick({
20197
20230
  message: true,
20198
20231
  messageId: true,
@@ -20205,8 +20238,8 @@ var sendPullRequestReviewMessageRequestSchema = z28.object({
20205
20238
  ultrafastMode: true
20206
20239
  }).shape,
20207
20240
  /** Starts a new chat instead of continuing the PR's review chat. The provider only applies to a new chat. */
20208
- newChat: z28.boolean().optional(),
20209
- provider: z28.enum(VALID_AGENT_PROVIDERS).optional()
20241
+ newChat: z29.boolean().optional(),
20242
+ provider: z29.enum(VALID_AGENT_PROVIDERS).optional()
20210
20243
  });
20211
20244
 
20212
20245
  // ../shared/src/audit-log.ts
@@ -20427,30 +20460,30 @@ function isSkillRegistryManifest(value) {
20427
20460
  }
20428
20461
 
20429
20462
  // ../shared/src/routes/variable-requests.ts
20430
- import { z as z29 } from "zod";
20463
+ import { z as z30 } from "zod";
20431
20464
  var VARIABLE_REQUEST_WAIT = { defaultMs: 10 * 6e4, maxMs: 30 * 6e4, pollMs: 3e3, waiterStaleMs: 15e3 };
20432
20465
  var VARIABLE_REQUEST_DESTINATIONS = ["environment", "workspace"];
20433
- var requestedVariableSchema = z29.object({
20434
- key: z29.string().regex(VARIABLE_KEY_RE, "must be a valid environment variable name").max(ENVIRONMENT_SETUP_LIMITS.variableKeyChars),
20435
- required: z29.boolean(),
20436
- replace: z29.boolean().optional()
20466
+ var requestedVariableSchema = z30.object({
20467
+ key: z30.string().regex(VARIABLE_KEY_RE, "must be a valid environment variable name").max(ENVIRONMENT_SETUP_LIMITS.variableKeyChars),
20468
+ required: z30.boolean(),
20469
+ replace: z30.boolean().optional()
20437
20470
  });
20438
- var requestedVariablesSchema = z29.array(requestedVariableSchema).min(1, "must not be empty").max(ENVIRONMENT_SETUP_LIMITS.variables).refine((variables) => new Set(variables.map((variable) => variable.key)).size === variables.length, "must have unique keys");
20439
- var createVariableRequestSchema = z29.object({
20471
+ var requestedVariablesSchema = z30.array(requestedVariableSchema).min(1, "must not be empty").max(ENVIRONMENT_SETUP_LIMITS.variables).refine((variables) => new Set(variables.map((variable) => variable.key)).size === variables.length, "must have unique keys");
20472
+ var createVariableRequestSchema = z30.object({
20440
20473
  variables: requestedVariablesSchema,
20441
- reason: z29.string().trim().max(500).nullish().transform((value) => value || null),
20442
- wait: z29.boolean().default(true)
20474
+ reason: z30.string().trim().max(500).nullish().transform((value) => value || null),
20475
+ wait: z30.boolean().default(true)
20443
20476
  });
20444
- var respondVariableRequestSchema = z29.discriminatedUnion("action", [
20445
- z29.object({
20446
- action: z29.literal("provide"),
20447
- destination: z29.enum(VARIABLE_REQUEST_DESTINATIONS),
20477
+ var respondVariableRequestSchema = z30.discriminatedUnion("action", [
20478
+ z30.object({
20479
+ action: z30.literal("provide"),
20480
+ destination: z30.enum(VARIABLE_REQUEST_DESTINATIONS),
20448
20481
  /** Defaults to the workspace's environment, so older clients keep saving there. */
20449
- environment_ids: z29.array(z29.string().uuid()).optional(),
20450
- overwrite: z29.boolean().optional(),
20451
- values: z29.record(z29.string().regex(VARIABLE_KEY_RE), z29.string())
20482
+ environment_ids: z30.array(z30.string().uuid()).optional(),
20483
+ overwrite: z30.boolean().optional(),
20484
+ values: z30.record(z30.string().regex(VARIABLE_KEY_RE), z30.string())
20452
20485
  }),
20453
- z29.object({ action: z29.literal("skip") })
20486
+ z30.object({ action: z30.literal("skip") })
20454
20487
  ]);
20455
20488
 
20456
20489
  export {
@@ -10,15 +10,15 @@ import {
10
10
  resolveDiffBase,
11
11
  runGitCommand,
12
12
  setAgentCredentialSnapshot
13
- } from "./chunk-CV5S6JD3.js";
13
+ } from "./chunk-5MGEDUHN.js";
14
14
  import {
15
15
  AppServerProcess,
16
16
  buildCodexAgentEnv
17
- } from "./chunk-DJL6X2TB.js";
17
+ } from "./chunk-7L7HH3N5.js";
18
18
  import {
19
19
  SUBPROCESS_MAX_BUFFER,
20
20
  execFileAsync
21
- } from "./chunk-JIMWWWQ3.js";
21
+ } from "./chunk-2FY2VKXN.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-CECME6HB.js";
59
+ } from "./chunk-7UHY3XGQ.js";
60
60
 
61
61
  // src/managers/codex-token-manager.ts
62
62
  import { promises as fs } from "fs";
@@ -319,7 +319,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
319
319
  await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
320
320
  await this.applyCredentialsResponse(data);
321
321
  setAgentCredentialSnapshot("codex", data);
322
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-G4DONJ2V.js");
322
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-WNFNHLT6.js");
323
323
  await restartCodexAspHostIfRunning2();
324
324
  });
325
325
  await this.start(true);
@@ -341,7 +341,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
341
341
  const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
342
342
  await this.applyCredentialsResponse(data);
343
343
  if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
344
- const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-G4DONJ2V.js");
344
+ const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-WNFNHLT6.js");
345
345
  await restartCodexAspHostIfRunning2();
346
346
  }
347
347
  setAgentCredentialSnapshot("codex", data);
@@ -6,7 +6,7 @@ import {
6
6
  getOriginDefaultBranch,
7
7
  monolithRequest,
8
8
  runGitCommand
9
- } from "./chunk-CV5S6JD3.js";
9
+ } from "./chunk-5MGEDUHN.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-CECME6HB.js";
17
+ } from "./chunk-7UHY3XGQ.js";
18
18
 
19
19
  // src/services/command-protection-service.ts
20
20
  import { readFile, stat } from "fs/promises";
@@ -5,7 +5,7 @@ import {
5
5
  extractCommandProtectionCommandText,
6
6
  isRecord,
7
7
  parseCodeHostPrUrl
8
- } from "./chunk-CECME6HB.js";
8
+ } from "./chunk-7UHY3XGQ.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-R77AXNYK.js";
7
- import "./chunk-CV5S6JD3.js";
8
- import "./chunk-JIMWWWQ3.js";
6
+ } from "./chunk-SKAH2W4B.js";
7
+ import "./chunk-5MGEDUHN.js";
8
+ import "./chunk-2FY2VKXN.js";
9
9
  import {
10
10
  isRecord
11
11
  } from "./chunk-UZSNFLDQ.js";
12
- import "./chunk-CECME6HB.js";
12
+ import "./chunk-7UHY3XGQ.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-WTBSFSQS.js";
17
+ } from "./chunk-5RTWRMTP.js";
18
18
  import {
19
19
  AppServerProcess,
20
20
  buildCodexAgentEnv
21
- } from "./chunk-DJL6X2TB.js";
22
- import "./chunk-JIMWWWQ3.js";
21
+ } from "./chunk-7L7HH3N5.js";
22
+ import "./chunk-2FY2VKXN.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-CECME6HB.js";
32
+ } from "./chunk-7UHY3XGQ.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-R77AXNYK.js";
30
+ } from "./chunk-SKAH2W4B.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-WTBSFSQS.js";
68
+ } from "./chunk-5RTWRMTP.js";
69
69
  import {
70
70
  publishedPullRequestUrls
71
- } from "./chunk-RCUKLSL3.js";
71
+ } from "./chunk-VXFJJOIJ.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-FGCYK6NL.js";
146
+ } from "./chunk-LO7VRVDR.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-CV5S6JD3.js";
156
+ } from "./chunk-5MGEDUHN.js";
157
157
  import {
158
158
  getCodexModelProvider
159
- } from "./chunk-DJL6X2TB.js";
159
+ } from "./chunk-7L7HH3N5.js";
160
160
  import {
161
161
  SUBPROCESS_MAX_BUFFER,
162
162
  execAsync,
163
163
  execFileAsync
164
- } from "./chunk-JIMWWWQ3.js";
164
+ } from "./chunk-2FY2VKXN.js";
165
165
  import {
166
166
  isRecord as isRecord2
167
167
  } from "./chunk-UZSNFLDQ.js";
@@ -422,7 +422,7 @@ import {
422
422
  workspaceTokenRequestSchema,
423
423
  workspaceTokenResponseSchema,
424
424
  wrapInTag
425
- } from "./chunk-CECME6HB.js";
425
+ } from "./chunk-7UHY3XGQ.js";
426
426
  import {
427
427
  cloneMcpConfig,
428
428
  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-RCUKLSL3.js";
6
+ } from "./chunk-VXFJJOIJ.js";
7
7
  import {
8
8
  isRecord
9
9
  } from "./chunk-UZSNFLDQ.js";
10
10
  import {
11
11
  shouldRefreshPullRequests
12
- } from "./chunk-CECME6HB.js";
12
+ } from "./chunk-7UHY3XGQ.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-CECME6HB.js";
14
+ } from "./chunk-7UHY3XGQ.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.1357",
3
+ "version": "0.1.1359",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",