replicas-cli 0.2.659 → 0.2.661

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