replicas-cli 0.2.659 → 0.2.660

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.
Files changed (2) hide show
  1. package/dist/index.cjs +34 -10
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -7718,6 +7718,9 @@ function isValidAgentProvider(value) {
7718
7718
  function isValidCodingAgentProvider(value) {
7719
7719
  return VALID_CODING_AGENT_PROVIDERS.some((provider) => provider === value);
7720
7720
  }
7721
+ function isValidRelayBaseProvider(value) {
7722
+ return VALID_RELAY_BASE_PROVIDERS.some((provider) => provider === value);
7723
+ }
7721
7724
  var AGENT_PROVIDER_OPTIONS = [
7722
7725
  {
7723
7726
  value: "claude",
@@ -22436,6 +22439,7 @@ function isCredentialScope(value) {
22436
22439
  var fallbackHarnessStepSchema = external_exports.object({
22437
22440
  kind: external_exports.literal("harness"),
22438
22441
  provider: external_exports.enum(VALID_AGENT_PROVIDERS),
22442
+ relayBaseProvider: external_exports.enum(VALID_RELAY_BASE_PROVIDERS).optional(),
22439
22443
  model: external_exports.string().min(1),
22440
22444
  thinkingLevel: external_exports.enum(VALID_THINKING_LEVELS).optional()
22441
22445
  });
@@ -22748,6 +22752,7 @@ var chatForkInfoSchema = external_exports.object({
22748
22752
  });
22749
22753
  var forkChatRequestSchema = external_exports.object({
22750
22754
  provider: external_exports.enum(VALID_AGENT_PROVIDERS),
22755
+ relayBaseProvider: external_exports.enum(VALID_RELAY_BASE_PROVIDERS).optional(),
22751
22756
  model: external_exports.string().min(1).optional(),
22752
22757
  thinkingLevel: external_exports.enum(VALID_THINKING_LEVELS).optional(),
22753
22758
  title: external_exports.string().min(1).max(200).optional(),
@@ -22811,6 +22816,9 @@ function coerceAuthFallbackPayload(payload) {
22811
22816
  }
22812
22817
 
22813
22818
  // ../shared/src/engine/v1.ts
22819
+ function getChatExecutionProvider(chat) {
22820
+ return chat.provider === "relay" ? chat.relayBaseProvider ?? DEFAULT_RELAY_BASE_PROVIDER : chat.provider;
22821
+ }
22814
22822
  var createChatRequestSchema = external_exports.object({
22815
22823
  id: external_exports.string().uuid().optional(),
22816
22824
  createdAt: external_exports.string().datetime().optional(),
@@ -24771,6 +24779,7 @@ var REPLICAS_AGENT_ABILITIES = Object.keys(
24771
24779
  // ../shared/src/routes/preferences.ts
24772
24780
  var EMPTY_AGENT_DEFAULT_SETTINGS = {
24773
24781
  agent_provider: null,
24782
+ relay_base_provider: null,
24774
24783
  model: null,
24775
24784
  thinking_level: null,
24776
24785
  goal_mode: null,
@@ -27259,7 +27268,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
27259
27268
  });
27260
27269
 
27261
27270
  // ../shared/src/cli-version.ts
27262
- var CLI_VERSION = "0.2.659";
27271
+ var CLI_VERSION = "0.2.660";
27263
27272
 
27264
27273
  // ../shared/src/version.ts
27265
27274
  function compareVersions(v1, v2) {
@@ -27697,35 +27706,50 @@ function validateAgentSelection(body, existing, modelCatalogs = {}) {
27697
27706
  }
27698
27707
  }
27699
27708
  const effectiveAgent = agentProvider !== void 0 ? agentProvider : existing.agentProvider;
27700
- const agentChanged = agentProvider !== void 0 && agentProvider !== existing.agentProvider;
27709
+ let relayBaseProvider = body.relay_base_provider;
27710
+ if (relayBaseProvider != null && !isValidRelayBaseProvider(relayBaseProvider)) {
27711
+ return createErrorResult({ message: `Invalid relay_base_provider: must be one of ${VALID_RELAY_BASE_PROVIDERS.join(", ")}` });
27712
+ }
27713
+ if (relayBaseProvider && effectiveAgent !== "relay") {
27714
+ return createErrorResult({ message: "relay_base_provider is only valid when agent_provider is relay" });
27715
+ }
27716
+ if (agentProvider !== void 0 && agentProvider !== "relay" && relayBaseProvider === void 0 && existing.relayBaseProvider) {
27717
+ relayBaseProvider = null;
27718
+ }
27719
+ const effectiveRelayBase = relayBaseProvider !== void 0 ? relayBaseProvider : existing.relayBaseProvider;
27720
+ const agentChanged = agentProvider !== void 0 && agentProvider !== existing.agentProvider || relayBaseProvider !== void 0 && relayBaseProvider !== (existing.relayBaseProvider ?? null);
27721
+ const executionAgent = effectiveAgent ? getChatExecutionProvider({ provider: effectiveAgent, relayBaseProvider: effectiveRelayBase ?? existing.inheritedRelayBaseProvider }) : effectiveAgent;
27701
27722
  let model = body.model;
27702
27723
  if (agentChanged && model === void 0 && existing.model) {
27703
27724
  model = null;
27704
27725
  }
27726
+ let thinkingLevel = body.thinking_level;
27727
+ if (agentChanged && thinkingLevel === void 0 && existing.thinkingLevel && executionAgent && !getThinkingLevelOptions(executionAgent).includes(existing.thinkingLevel)) {
27728
+ thinkingLevel = null;
27729
+ }
27705
27730
  if (model !== void 0 && model !== null) {
27706
27731
  if (typeof model !== "string" || model.trim().length === 0) {
27707
27732
  return createErrorResult({ message: "model must be a non-empty string" });
27708
27733
  }
27709
27734
  model = normalizeClaudeModel(model) ?? model;
27710
- if (!effectiveAgent) {
27735
+ if (!executionAgent) {
27711
27736
  return createErrorResult({ message: "Cannot set model without an agent_provider (the model would be applied against the org default agent and may not be valid for it)" });
27712
27737
  }
27713
- const allowed = getAgentModelOptions(effectiveAgent, modelCatalogs);
27714
- if (!isAgentModelAllowed(effectiveAgent, model, modelCatalogs)) {
27715
- return createErrorResult({ message: `Invalid model "${model}" for agent ${effectiveAgent}. Valid models: ${allowed.join(", ")}` });
27738
+ const allowed = getAgentModelOptions(executionAgent, modelCatalogs);
27739
+ if (!isAgentModelAllowed(executionAgent, model, modelCatalogs)) {
27740
+ return createErrorResult({ message: `Invalid model "${model}" for agent ${executionAgent}. Valid models: ${allowed.join(", ")}` });
27716
27741
  }
27717
27742
  }
27718
- const thinkingLevel = body.thinking_level;
27719
27743
  if (thinkingLevel !== void 0 && thinkingLevel !== null) {
27720
27744
  if (!effectiveAgent && isProviderSpecificThinkingLevel(thinkingLevel)) {
27721
27745
  return createErrorResult({ message: `Cannot set ${thinkingLevel} without an agent_provider` });
27722
27746
  }
27723
- if (!isValidThinkingLevel(thinkingLevel) || effectiveAgent && !getThinkingLevelOptions(effectiveAgent).includes(thinkingLevel)) {
27724
- const validLevels = effectiveAgent ? getThinkingLevelOptions(effectiveAgent) : VALID_THINKING_LEVELS;
27747
+ if (!isValidThinkingLevel(thinkingLevel) || executionAgent && !getThinkingLevelOptions(executionAgent).includes(thinkingLevel)) {
27748
+ const validLevels = executionAgent ? getThinkingLevelOptions(executionAgent) : VALID_THINKING_LEVELS;
27725
27749
  return createErrorResult({ message: `Invalid thinking_level: must be one of ${validLevels.join(", ")}` });
27726
27750
  }
27727
27751
  }
27728
- return createSuccessResult({ agentProvider, model, thinkingLevel });
27752
+ return createSuccessResult({ agentProvider, relayBaseProvider, model, thinkingLevel });
27729
27753
  }
27730
27754
 
27731
27755
  // ../shared/src/automations/github/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.659",
3
+ "version": "0.2.660",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {