@meistrari/remy-cli 1.22.0-rc.0 → 1.22.0-rc.1

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 (3) hide show
  1. package/README.md +1 -1
  2. package/dist/remy.js +225 -96
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -126,7 +126,7 @@ The interactive dashboard is the recommended path. Use these commands when a scr
126
126
  remy new --repository owner/repository "Add a health check endpoint"
127
127
  ```
128
128
 
129
- Repeat `--repository` to select more repositories from the same GitHub installation. If you do not select a repository, supply `--installation <github-installation-id>`. Repeat `--attach <path>` to upload files or directories; the 20 MiB per-attachment limit is measured directly for a file and across all regular files before compressing a directory. Remy sends each accepted directory as a gzip-compressed tar archive. Direct creation uses `medium` reasoning unless `--reasoning-effort` overrides it; omit `--model` to use the server's `gpt-6-astra` default. `remy new` creates the session from the prompt and flags, then opens it when the terminal is interactive.
129
+ Repeat `--repository` to select more repositories from the same GitHub installation. If you do not select a repository, supply `--installation <github-installation-id>`. Repeat `--attach <path>` to upload files or directories; the 20 MiB per-attachment limit is measured directly for a file and across all regular files before compressing a directory. Remy sends each accepted directory as a gzip-compressed tar archive. Direct creation uses `medium` reasoning unless `--reasoning-effort` overrides it; omit `--model` to use the server's Codex `gpt-6-astra` default. `--model` accepts a Codex model (`gpt-6-astra`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-5.5`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.2`) or a Claude model (`claude-opus-5-5`, `claude-sonnet-5`, `claude-fable-5-1`); the model chooses the session's harness, which stays fixed for the session. For example, `remy new --model claude-opus-5-5 --repository owner/repository "Add a health check endpoint"` starts a Claude session. In the interactive wizard, press `m` on the confirm step to cycle through every harness's models, shown as `Codex · GPT 6.0 Astra` or `Claude · Opus 5.5`. `remy new` creates the session from the prompt and flags, then opens it when the terminal is interactive.
130
130
 
131
131
  The branch-suggestion flow belongs to the interactive new-session wizard (`remy`, then `n`). Direct `remy new` creation does not analyze continuation references.
132
132
 
package/dist/remy.js CHANGED
@@ -32412,6 +32412,7 @@ var agentCommandSchema = zod_default2.union([
32412
32412
  stopAgentCommandSchema,
32413
32413
  respondUserInputAgentCommandSchema
32414
32414
  ]);
32415
+
32415
32416
  // ../../packages/agents-protocol/src/agent-model.ts
32416
32417
  var codexModelIds = [
32417
32418
  "gpt-6-astra",
@@ -32424,6 +32425,11 @@ var codexModelIds = [
32424
32425
  "gpt-5.2"
32425
32426
  ];
32426
32427
  var claudeModelIds = [
32428
+ "claude-opus-5-5",
32429
+ "claude-sonnet-5",
32430
+ "claude-fable-5-1",
32431
+ "claude-opus-5",
32432
+ "claude-fable-5",
32427
32433
  "sonnet",
32428
32434
  "claude-opus-4-8",
32429
32435
  "opus",
@@ -32450,6 +32456,178 @@ var codexModelIdSchema = zod_default2.enum(codexModelIds);
32450
32456
  var claudeModelIdSchema = zod_default2.enum(claudeModelIds);
32451
32457
  var agentModelIdSchema = zod_default2.union([codexModelIdSchema, claudeModelIdSchema]);
32452
32458
 
32459
+ // ../../packages/agents-protocol/src/agent-presentation.ts
32460
+ var CODEX_CONTEXT_WINDOW = 272000;
32461
+ var codexModelPresentation = {
32462
+ "gpt-6-astra": {
32463
+ label: "GPT 6.0 Astra",
32464
+ description: "Our most capable model for complex, demanding work.",
32465
+ relativeCost: 5,
32466
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32467
+ isMultiModal: true
32468
+ },
32469
+ "gpt-5.6-sol": {
32470
+ label: "GPT 5.6 Sol",
32471
+ description: "Reliable agentic workhorse for everyday tasks.",
32472
+ relativeCost: 5,
32473
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32474
+ isMultiModal: true
32475
+ },
32476
+ "gpt-5.6-terra": {
32477
+ label: "GPT 5.6 Terra",
32478
+ description: "Balanced agentic coding model for everyday work.",
32479
+ relativeCost: 3,
32480
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32481
+ isMultiModal: true
32482
+ },
32483
+ "gpt-5.6-luna": {
32484
+ label: "GPT 5.6 Luna",
32485
+ description: "Fast and affordable agentic coding model.",
32486
+ relativeCost: 2,
32487
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32488
+ isMultiModal: true
32489
+ },
32490
+ "gpt-5.5": {
32491
+ label: "GPT 5.5",
32492
+ description: "Proven previous-generation model for coding and general work.",
32493
+ relativeCost: 4,
32494
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32495
+ isMultiModal: true
32496
+ },
32497
+ "gpt-5.4": {
32498
+ label: "GPT 5.4",
32499
+ description: "Strong model for everyday coding.",
32500
+ relativeCost: 3,
32501
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32502
+ isMultiModal: true
32503
+ },
32504
+ "gpt-5.4-mini": {
32505
+ label: "GPT 5.4 Mini",
32506
+ description: "Small, fast, and cost-efficient model for simpler coding tasks.",
32507
+ relativeCost: 2,
32508
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32509
+ isMultiModal: true
32510
+ },
32511
+ "gpt-5.2": {
32512
+ label: "GPT-5.2",
32513
+ description: "Optimized for professional work and long-running agents.",
32514
+ relativeCost: 3,
32515
+ maxInputTokens: CODEX_CONTEXT_WINDOW,
32516
+ isMultiModal: true
32517
+ }
32518
+ };
32519
+ var CLAUDE_CONTEXT_WINDOW = 1e6;
32520
+ var claudeModelPresentation = {
32521
+ "claude-opus-5-5": {
32522
+ label: "Opus 5.5",
32523
+ description: "Best for everyday, complex tasks.",
32524
+ relativeCost: 4,
32525
+ maxInputTokens: CLAUDE_CONTEXT_WINDOW,
32526
+ maxOutputTokens: 128000,
32527
+ isMultiModal: true
32528
+ },
32529
+ "claude-sonnet-5": {
32530
+ label: "Sonnet 5",
32531
+ description: "Efficient for routine coding tasks.",
32532
+ relativeCost: 2,
32533
+ maxInputTokens: CLAUDE_CONTEXT_WINDOW,
32534
+ maxOutputTokens: 64000,
32535
+ isMultiModal: true
32536
+ },
32537
+ "claude-fable-5-1": {
32538
+ label: "Fable 5.1",
32539
+ description: "Most intelligent generally available Claude model.",
32540
+ relativeCost: 5,
32541
+ maxInputTokens: CLAUDE_CONTEXT_WINDOW,
32542
+ maxOutputTokens: 64000,
32543
+ isMultiModal: true
32544
+ }
32545
+ };
32546
+ var agentReasoningEffortPresentation = {
32547
+ low: { label: "Low", description: "Fast responses with lighter reasoning" },
32548
+ medium: { label: "Medium", description: "Balances speed and reasoning depth for everyday tasks" },
32549
+ high: { label: "High", description: "Greater reasoning depth for complex problems" },
32550
+ xhigh: { label: "Extra high", description: "Extra high reasoning depth for complex problems" },
32551
+ max: { label: "Max", description: "Maximum reasoning depth for the hardest problems" }
32552
+ };
32553
+ var selectableAgentReasoningEfforts = ["low", "medium", "high", "xhigh"];
32554
+
32555
+ // ../../packages/agents-protocol/src/agent-catalog.ts
32556
+ var selectableCodexModelIds = codexModelIds;
32557
+ var selectableClaudeModelIds = [
32558
+ "claude-opus-5-5",
32559
+ "claude-sonnet-5",
32560
+ "claude-fable-5-1"
32561
+ ];
32562
+ var agentHarnesses = {
32563
+ codex: {
32564
+ provider: "codex",
32565
+ label: "Codex",
32566
+ models: selectableCodexModelIds,
32567
+ defaultModel: "gpt-6-astra",
32568
+ modelPresentation: codexModelPresentation
32569
+ },
32570
+ claude: {
32571
+ provider: "claude",
32572
+ label: "Claude",
32573
+ models: selectableClaudeModelIds,
32574
+ defaultModel: "claude-opus-5-5",
32575
+ modelPresentation: claudeModelPresentation
32576
+ }
32577
+ };
32578
+ var agentHarnessOrder = ["codex", "claude"];
32579
+ var codexAgentSelectionSchema = zod_default2.strictObject({
32580
+ provider: zod_default2.literal("codex"),
32581
+ model: zod_default2.enum(selectableCodexModelIds),
32582
+ reasoningEffort: agentReasoningEffortSchema
32583
+ });
32584
+ var claudeAgentSelectionSchema = zod_default2.strictObject({
32585
+ provider: zod_default2.literal("claude"),
32586
+ model: zod_default2.enum(selectableClaudeModelIds),
32587
+ reasoningEffort: agentReasoningEffortSchema
32588
+ });
32589
+ var agentSelectionSchema = zod_default2.discriminatedUnion("provider", [
32590
+ codexAgentSelectionSchema,
32591
+ claudeAgentSelectionSchema
32592
+ ]);
32593
+ var storedAgentSelectionSchema = zod_default2.discriminatedUnion("provider", [
32594
+ zod_default2.strictObject({
32595
+ provider: zod_default2.literal("codex"),
32596
+ model: codexModelIdSchema,
32597
+ reasoningEffort: agentReasoningEffortSchema
32598
+ }),
32599
+ zod_default2.strictObject({
32600
+ provider: zod_default2.literal("claude"),
32601
+ model: claudeModelIdSchema,
32602
+ reasoningEffort: agentReasoningEffortSchema
32603
+ })
32604
+ ]);
32605
+ var wireModelIdsByProvider = {
32606
+ codex: new Set(codexModelIds),
32607
+ claude: new Set(claudeModelIds)
32608
+ };
32609
+ var defaultAgentSelection = {
32610
+ provider: "codex",
32611
+ model: "gpt-6-astra",
32612
+ reasoningEffort: "medium"
32613
+ };
32614
+ var selectableModelIdsByProvider = {
32615
+ codex: new Set(selectableCodexModelIds),
32616
+ claude: new Set(selectableClaudeModelIds)
32617
+ };
32618
+ function agentHarnessForModel(model) {
32619
+ return agentHarnessOrder.find((provider) => isSelectableAgentModel(provider, model));
32620
+ }
32621
+ function isSelectableAgentModel(provider, model) {
32622
+ return selectableModelIdsByProvider[provider].has(model);
32623
+ }
32624
+ var selectableModelPresentationById = new Map([
32625
+ ...selectableCodexModelIds.map((model) => [model, codexModelPresentation[model]]),
32626
+ ...selectableClaudeModelIds.map((model) => [model, claudeModelPresentation[model]])
32627
+ ]);
32628
+ function selectableAgentModelPresentation(model) {
32629
+ return selectableModelPresentationById.get(model);
32630
+ }
32453
32631
  // ../../packages/agents-protocol/src/agent-metadata.ts
32454
32632
  var metadataShape = {
32455
32633
  sessionId: zod_default2.string().min(1),
@@ -33000,74 +33178,6 @@ var agentEventSchema = zod_default2.discriminatedUnion("type", [
33000
33178
  errorAgentEventSchema
33001
33179
  ]);
33002
33180
  var agentEventTypes = agentEventSchema.options.map((schema) => schema.shape.type.value);
33003
- // ../../packages/agents-protocol/src/agent-presentation.ts
33004
- var CODEX_CONTEXT_WINDOW = 272000;
33005
- var codexModelPresentation = {
33006
- "gpt-6-astra": {
33007
- label: "GPT 6.0 Astra",
33008
- description: "Our most capable model for complex, demanding work.",
33009
- relativeCost: 5,
33010
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33011
- isMultiModal: true
33012
- },
33013
- "gpt-5.6-sol": {
33014
- label: "GPT 5.6 Sol",
33015
- description: "Reliable agentic workhorse for everyday tasks.",
33016
- relativeCost: 5,
33017
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33018
- isMultiModal: true
33019
- },
33020
- "gpt-5.6-terra": {
33021
- label: "GPT 5.6 Terra",
33022
- description: "Balanced agentic coding model for everyday work.",
33023
- relativeCost: 3,
33024
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33025
- isMultiModal: true
33026
- },
33027
- "gpt-5.6-luna": {
33028
- label: "GPT 5.6 Luna",
33029
- description: "Fast and affordable agentic coding model.",
33030
- relativeCost: 2,
33031
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33032
- isMultiModal: true
33033
- },
33034
- "gpt-5.5": {
33035
- label: "GPT 5.5",
33036
- description: "Proven previous-generation model for coding and general work.",
33037
- relativeCost: 4,
33038
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33039
- isMultiModal: true
33040
- },
33041
- "gpt-5.4": {
33042
- label: "GPT 5.4",
33043
- description: "Strong model for everyday coding.",
33044
- relativeCost: 3,
33045
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33046
- isMultiModal: true
33047
- },
33048
- "gpt-5.4-mini": {
33049
- label: "GPT 5.4 Mini",
33050
- description: "Small, fast, and cost-efficient model for simpler coding tasks.",
33051
- relativeCost: 2,
33052
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33053
- isMultiModal: true
33054
- },
33055
- "gpt-5.2": {
33056
- label: "GPT-5.2",
33057
- description: "Optimized for professional work and long-running agents.",
33058
- relativeCost: 3,
33059
- maxInputTokens: CODEX_CONTEXT_WINDOW,
33060
- isMultiModal: true
33061
- }
33062
- };
33063
- var agentReasoningEffortPresentation = {
33064
- low: { label: "Low", description: "Fast responses with lighter reasoning" },
33065
- medium: { label: "Medium", description: "Balances speed and reasoning depth for everyday tasks" },
33066
- high: { label: "High", description: "Greater reasoning depth for complex problems" },
33067
- xhigh: { label: "Extra high", description: "Extra high reasoning depth for complex problems" },
33068
- max: { label: "Max", description: "Maximum reasoning depth for the hardest problems" }
33069
- };
33070
- var selectableAgentReasoningEfforts = ["low", "medium", "high", "xhigh"];
33071
33181
  // ../../packages/coding-agent-client/src/sessions.ts
33072
33182
  var reasoningEffortSchema = exports_external2.enum(selectableAgentReasoningEfforts);
33073
33183
  var sessionStatusSchema = exports_external2.enum(["open", "completed", "failed", "cancelled"]);
@@ -33145,7 +33255,12 @@ var sessionConnectionSchema = exports_external2.discriminatedUnion("status", [
33145
33255
  target: exports_external2.strictObject({ channel_id: exports_external2.string().min(1), thread_ts: exports_external2.string().min(1) })
33146
33256
  })
33147
33257
  ]);
33148
- var createCodexSessionInputSchema = exports_external2.strictObject({
33258
+ var createSessionAgentInputSchema = exports_external2.strictObject({
33259
+ provider: agentProviderIdSchema,
33260
+ model: exports_external2.string().min(1).optional(),
33261
+ reasoningEffort: reasoningEffortSchema.optional()
33262
+ }).refine((agent) => agent.model === undefined || isSelectableAgentModel(agent.provider, agent.model), { message: "model must be a selectable model of the selected provider", path: ["model"] });
33263
+ var createSessionInputSchema = exports_external2.strictObject({
33149
33264
  installationId: exports_external2.string().min(1),
33150
33265
  repositoryIds: exports_external2.array(exports_external2.string().min(1)),
33151
33266
  repositoryBranchOverrides: exports_external2.array(exports_external2.strictObject({
@@ -33154,8 +33269,7 @@ var createCodexSessionInputSchema = exports_external2.strictObject({
33154
33269
  })).optional(),
33155
33270
  prompt: exports_external2.string().refine((value) => value.trim().length > 0),
33156
33271
  fileIds: exports_external2.array(exports_external2.string().min(1)),
33157
- model: codexModelIdSchema.optional(),
33158
- reasoningEffort: reasoningEffortSchema.optional(),
33272
+ agent: createSessionAgentInputSchema.optional(),
33159
33273
  mcps: exports_external2.array(exports_external2.string().min(1)).optional(),
33160
33274
  idempotencyKey: exports_external2.string().min(1).max(128)
33161
33275
  });
@@ -33280,11 +33394,11 @@ var sessionListResponseSchema = exports_external2.strictObject({
33280
33394
  next_cursor: exports_external2.string().nullable(),
33281
33395
  total: exports_external2.number().int().nonnegative()
33282
33396
  });
33283
- async function createCodexSession({
33397
+ async function createSession({
33284
33398
  client,
33285
33399
  input
33286
33400
  }) {
33287
- const parsedInput = createCodexSessionInputSchema.parse(input);
33401
+ const parsedInput = createSessionInputSchema.parse(input);
33288
33402
  const response = await client.request("/v1/sessions", {
33289
33403
  method: "POST",
33290
33404
  headers: {
@@ -33293,11 +33407,11 @@ async function createCodexSession({
33293
33407
  },
33294
33408
  body: JSON.stringify({
33295
33409
  github_installation_id: parsedInput.installationId,
33296
- ...parsedInput.model || parsedInput.reasoningEffort ? {
33410
+ ...parsedInput.agent ? {
33297
33411
  agent: {
33298
- provider: "codex",
33299
- ...parsedInput.model ? { model: parsedInput.model } : {},
33300
- ...parsedInput.reasoningEffort ? { reasoning_effort: parsedInput.reasoningEffort } : {}
33412
+ provider: parsedInput.agent.provider,
33413
+ ...parsedInput.agent.model ? { model: parsedInput.agent.model } : {},
33414
+ ...parsedInput.agent.reasoningEffort ? { reasoning_effort: parsedInput.agent.reasoningEffort } : {}
33301
33415
  }
33302
33416
  } : {},
33303
33417
  repositories: parsedInput.repositoryIds.map((repositoryId) => {
@@ -34237,7 +34351,7 @@ function formatSessionJson({
34237
34351
  `;
34238
34352
  }
34239
34353
  // src/version.ts
34240
- var remyCliVersion = "1.22.0-rc.0";
34354
+ var remyCliVersion = "1.22.0-rc.1";
34241
34355
 
34242
34356
  // src/self-update.ts
34243
34357
  import { spawn } from "child_process";
@@ -34374,16 +34488,26 @@ async function confirmCliUpdate({ version: version5, signal, interrupt }) {
34374
34488
 
34375
34489
  // src/session-agent-options.ts
34376
34490
  function newSessionModelLabel(model) {
34377
- return codexModelPresentation[model].label;
34491
+ const provider = newSessionModelHarness(model);
34492
+ return `${agentHarnesses[provider].label} \xB7 ${selectableAgentModelPresentation(model)?.label ?? model}`;
34378
34493
  }
34379
34494
  function newSessionReasoningEffortLabel(effort) {
34380
34495
  return agentReasoningEffortPresentation[effort].label;
34381
34496
  }
34382
- var newSessionModels = codexModelIds;
34497
+ function newSessionModelHarness(model) {
34498
+ const provider = agentHarnessForModel(model);
34499
+ if (!provider)
34500
+ throw new Error(`Model ${model} is not offered by any harness.`);
34501
+ return provider;
34502
+ }
34503
+ var newSessionModels = agentHarnessOrder.flatMap((provider) => agentHarnesses[provider].models);
34383
34504
  var newSessionReasoningEfforts = selectableAgentReasoningEfforts;
34505
+ function parseNewSessionModel(value) {
34506
+ return newSessionModels.find((model) => model === value);
34507
+ }
34384
34508
  var defaultNewSessionAgent = {
34385
- model: "gpt-6-astra",
34386
- reasoningEffort: "medium"
34509
+ model: defaultAgentSelection.model,
34510
+ reasoningEffort: defaultAgentSelection.reasoningEffort
34387
34511
  };
34388
34512
 
34389
34513
  // src/sessions/session-controller.ts
@@ -37911,7 +38035,7 @@ async function createNewSessionWizard({
37911
38035
  const attachmentStatus = attachmentFeedback ? renderAttachmentFeedback(attachmentFeedback) : undefined;
37912
38036
  if (step === "prompt") {
37913
38037
  const parts = [
37914
- new StyledText7([stepHeader("New remote Codex session")]),
38038
+ new StyledText7([stepHeader("New remote session")]),
37915
38039
  stringToStyledText3("Describe the work you want Remy to do. Press Enter to continue; Esc back.")
37916
38040
  ];
37917
38041
  if (attachmentText.chunks.length > 0)
@@ -42114,15 +42238,18 @@ async function createNewSession({
42114
42238
  });
42115
42239
  fileIds.push(uploaded.fileId);
42116
42240
  }
42117
- const created = await operations.createCodexSession({
42241
+ const created = await operations.createSession({
42118
42242
  client: operations.client,
42119
42243
  input: {
42120
42244
  installationId,
42121
42245
  repositoryIds: repositories.map((repository) => repository.id),
42122
42246
  prompt: command.prompt,
42123
42247
  fileIds,
42124
- ...command.model ? { model: command.model } : {},
42125
- reasoningEffort: command.reasoningEffort ?? defaultNewSessionAgent.reasoningEffort,
42248
+ agent: {
42249
+ provider: command.model ? newSessionModelHarness(command.model) : defaultAgentSelection.provider,
42250
+ ...command.model ? { model: command.model } : {},
42251
+ reasoningEffort: command.reasoningEffort ?? defaultNewSessionAgent.reasoningEffort
42252
+ },
42126
42253
  idempotencyKey: randomUUID5()
42127
42254
  }
42128
42255
  });
@@ -42174,7 +42301,7 @@ async function createFromTuiDraft({
42174
42301
  throw new Error("A non-empty prompt is required before a session can be created.");
42175
42302
  if (draft.repositories.some((repository) => repository.githubInstallationId !== draft.githubInstallationId))
42176
42303
  throw new Error("All selected repositories must belong to the same GitHub installation.");
42177
- return await operations.createCodexSession({
42304
+ return await operations.createSession({
42178
42305
  client: operations.client,
42179
42306
  input: {
42180
42307
  installationId: draft.githubInstallationId,
@@ -42182,8 +42309,11 @@ async function createFromTuiDraft({
42182
42309
  repositoryBranchOverrides: draft.repositoryBranchOverrides ?? [],
42183
42310
  prompt: draft.prompt,
42184
42311
  fileIds: draft.attachments.map((attachment) => attachment.fileId),
42185
- model: draft.model,
42186
- reasoningEffort: draft.reasoningEffort,
42312
+ agent: {
42313
+ provider: newSessionModelHarness(draft.model),
42314
+ model: draft.model,
42315
+ reasoningEffort: draft.reasoningEffort
42316
+ },
42187
42317
  idempotencyKey: randomUUID5()
42188
42318
  }
42189
42319
  });
@@ -42519,7 +42649,7 @@ async function createSessionOperations(dependencies, { onAuthenticated } = {}) {
42519
42649
  suggestRepositories: dependencies.suggestRepositories ?? (async () => await Promise.reject(new Error("Missing remote repository suggestions operation."))),
42520
42650
  suggestBranches: dependencies.suggestBranches ?? (async () => await Promise.reject(new Error("Missing remote branch suggestions operation."))),
42521
42651
  reserveAndUploadFile: dependencies.reserveAndUploadFile ?? reserveAndUploadFile,
42522
- createCodexSession: dependencies.createCodexSession ?? createCodexSession,
42652
+ createSession: dependencies.createSession ?? createSession,
42523
42653
  appendSessionMessage: dependencies.appendSessionMessage ?? appendSessionMessage,
42524
42654
  cancelSession: dependencies.cancelSession ?? cancelSession,
42525
42655
  completeSession: dependencies.completeSession ?? completeSession,
@@ -42540,7 +42670,7 @@ async function createSessionOperations(dependencies, { onAuthenticated } = {}) {
42540
42670
  suggestRepositories: dependencies.suggestRepositories ?? createRepositorySuggester({ client }),
42541
42671
  suggestBranches: dependencies.suggestBranches ?? createBranchSuggester({ client }),
42542
42672
  reserveAndUploadFile: dependencies.reserveAndUploadFile ?? reserveAndUploadFile,
42543
- createCodexSession: dependencies.createCodexSession ?? createCodexSession,
42673
+ createSession: dependencies.createSession ?? createSession,
42544
42674
  appendSessionMessage: dependencies.appendSessionMessage ?? appendSessionMessage,
42545
42675
  cancelSession: dependencies.cancelSession ?? cancelSession,
42546
42676
  completeSession: dependencies.completeSession ?? completeSession,
@@ -42747,7 +42877,7 @@ Create a remote coding session from the prompt and flags. In an interactive term
42747
42877
  Options:
42748
42878
  --repository <owner/name> Select a repository; repeat for more repositories
42749
42879
  --installation <id> Select a GitHub installation
42750
- --model <name> Select an agent model
42880
+ --model <name> Select a Codex or Claude model; it sets the harness
42751
42881
  --reasoning-effort <low|medium|high|xhigh> Select agent reasoning effort
42752
42882
  --attach <path> Upload a file or directory (20 MiB max); repeat as needed
42753
42883
  --no-tui Do not open the interactive terminal view
@@ -42860,10 +42990,9 @@ function parseNewCommand(argv) {
42860
42990
  } else if (token === "--attach") {
42861
42991
  attachments.push(value);
42862
42992
  } else if (token === "--model") {
42863
- const parsedModel = codexModelIdSchema.safeParse(value);
42864
- if (!parsedModel.success)
42865
- throw new Error("--model must name a supported Codex model.");
42866
- model = parsedModel.data;
42993
+ model = parseNewSessionModel(value);
42994
+ if (!model)
42995
+ throw new Error(`--model must name a supported model: ${newSessionModels.join(", ")}.`);
42867
42996
  } else if (token === "--installation") {
42868
42997
  installationId = value;
42869
42998
  } else if (token === "--reasoning-effort") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/remy-cli",
3
- "version": "1.22.0-rc.0",
3
+ "version": "1.22.0-rc.1",
4
4
  "description": "Remy, the Coding Agent terminal client.",
5
5
  "type": "module",
6
6
  "bin": {