@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.
- package/README.md +1 -1
- package/dist/remy.js +225 -96
- 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
|
|
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
|
-
|
|
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
|
|
33397
|
+
async function createSession({
|
|
33284
33398
|
client,
|
|
33285
33399
|
input
|
|
33286
33400
|
}) {
|
|
33287
|
-
const parsedInput =
|
|
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.
|
|
33410
|
+
...parsedInput.agent ? {
|
|
33297
33411
|
agent: {
|
|
33298
|
-
provider:
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
34386
|
-
reasoningEffort:
|
|
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
|
|
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.
|
|
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
|
-
|
|
42125
|
-
|
|
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.
|
|
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
|
-
|
|
42186
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
42864
|
-
if (!
|
|
42865
|
-
throw new Error(
|
|
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") {
|