rafcode 3.0.0 → 3.8.0
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/.claude/settings.local.json +3 -1
- package/CLAUDE.md +0 -1
- package/RAF/38-dual-wielder/decisions.md +9 -0
- package/RAF/38-dual-wielder/input.md +6 -1
- package/RAF/38-dual-wielder/outcomes/8-e2e-test-codex-provider.md +139 -0
- package/RAF/38-dual-wielder/plans/8-e2e-test-codex-provider.md +95 -0
- package/RAF/39-pathless-rover/decisions.md +16 -0
- package/RAF/39-pathless-rover/input.md +2 -0
- package/RAF/39-pathless-rover/outcomes/1-fix-codex-stream-renderer.md +21 -0
- package/RAF/39-pathless-rover/outcomes/2-wire-provider-flag.md +28 -0
- package/RAF/39-pathless-rover/outcomes/3-remove-worktree-flag-do.md +41 -0
- package/RAF/39-pathless-rover/outcomes/4-remove-worktree-flag-plan-amend.md +30 -0
- package/RAF/39-pathless-rover/outcomes/5-update-prompts-and-docs.md +26 -0
- package/RAF/39-pathless-rover/plans/1-fix-codex-stream-renderer.md +43 -0
- package/RAF/39-pathless-rover/plans/2-wire-provider-flag.md +48 -0
- package/RAF/39-pathless-rover/plans/3-remove-worktree-flag-do.md +41 -0
- package/RAF/39-pathless-rover/plans/4-remove-worktree-flag-plan-amend.md +43 -0
- package/RAF/39-pathless-rover/plans/5-update-prompts-and-docs.md +31 -0
- package/RAF/40-numeric-order-fix/decisions.md +7 -0
- package/RAF/40-numeric-order-fix/input.md +19 -0
- package/RAF/40-numeric-order-fix/outcomes/1-fix-numeric-sort-order.md +18 -0
- package/RAF/40-numeric-order-fix/outcomes/2-add-npm-keywords.md +10 -0
- package/RAF/40-numeric-order-fix/plans/1-fix-numeric-sort-order.md +48 -0
- package/RAF/40-numeric-order-fix/plans/2-add-npm-keywords.md +23 -0
- package/RAF/41-echo-chamber/decisions.md +13 -0
- package/RAF/41-echo-chamber/input.md +4 -0
- package/RAF/41-echo-chamber/outcomes/1-update-codex-model-defaults.md +24 -0
- package/RAF/41-echo-chamber/outcomes/2-e2e-test-codex-provider.md +74 -0
- package/RAF/41-echo-chamber/plans/1-update-codex-model-defaults.md +28 -0
- package/RAF/41-echo-chamber/plans/2-e2e-test-codex-provider.md +103 -0
- package/RAF/42-patch-parade/decisions.md +29 -0
- package/RAF/42-patch-parade/input.md +9 -0
- package/RAF/42-patch-parade/outcomes/1-fix-codex-model-resolution.md +36 -0
- package/RAF/42-patch-parade/outcomes/2-fix-provider-aware-name-generation.md +31 -0
- package/RAF/42-patch-parade/outcomes/3-fix-codex-error-event-rendering.md +32 -0
- package/RAF/42-patch-parade/outcomes/4-update-cli-help-docs.md +28 -0
- package/RAF/42-patch-parade/outcomes/5-update-default-codex-models-to-gpt-5-4.md +33 -0
- package/RAF/42-patch-parade/outcomes/6-unify-model-config-schema.md +89 -0
- package/RAF/42-patch-parade/plans/1-fix-codex-model-resolution.md +35 -0
- package/RAF/42-patch-parade/plans/2-fix-provider-aware-name-generation.md +38 -0
- package/RAF/42-patch-parade/plans/3-fix-codex-error-event-rendering.md +32 -0
- package/RAF/42-patch-parade/plans/4-update-cli-help-docs.md +31 -0
- package/RAF/42-patch-parade/plans/5-update-default-codex-models-to-gpt-5-4.md +35 -0
- package/RAF/42-patch-parade/plans/6-unify-model-config-schema.md +46 -0
- package/RAF/43-swiss-army/decisions.md +34 -0
- package/RAF/43-swiss-army/input.md +7 -0
- package/RAF/43-swiss-army/outcomes/1-fix-model-validation.md +21 -0
- package/RAF/43-swiss-army/outcomes/2-update-commit-format.md +31 -0
- package/RAF/43-swiss-army/outcomes/3-wire-reasoning-effort.md +28 -0
- package/RAF/43-swiss-army/outcomes/4-remove-provider-flag.md +27 -0
- package/RAF/43-swiss-army/outcomes/5-config-wizard-validation.md +23 -0
- package/RAF/43-swiss-army/outcomes/6-add-fast-mode.md +32 -0
- package/RAF/43-swiss-army/outcomes/7-config-preset.md +31 -0
- package/RAF/43-swiss-army/plans/1-fix-model-validation.md +38 -0
- package/RAF/43-swiss-army/plans/2-update-commit-format.md +46 -0
- package/RAF/43-swiss-army/plans/3-wire-reasoning-effort.md +39 -0
- package/RAF/43-swiss-army/plans/4-remove-provider-flag.md +43 -0
- package/RAF/43-swiss-army/plans/5-config-wizard-validation.md +42 -0
- package/RAF/43-swiss-army/plans/6-add-fast-mode.md +46 -0
- package/RAF/43-swiss-army/plans/7-config-preset.md +51 -0
- package/RAF/44-config-api-change/decisions.md +22 -0
- package/RAF/44-config-api-change/input.md +5 -0
- package/RAF/44-config-api-change/outcomes/1-restructure-config-subcommands.md +19 -0
- package/RAF/44-config-api-change/outcomes/2-move-preset-under-config.md +17 -0
- package/RAF/44-config-api-change/outcomes/3-update-existing-tests-for-config-api.md +14 -0
- package/RAF/44-config-api-change/outcomes/4-update-config-command-docs.md +11 -0
- package/RAF/44-config-api-change/outcomes/5-fix-codex-name-generation.md +18 -0
- package/RAF/44-config-api-change/plans/1-restructure-config-subcommands.md +37 -0
- package/RAF/44-config-api-change/plans/2-move-preset-under-config.md +38 -0
- package/RAF/44-config-api-change/plans/3-update-existing-tests-for-config-api.md +38 -0
- package/RAF/44-config-api-change/plans/4-update-config-command-docs.md +36 -0
- package/RAF/44-config-api-change/plans/5-fix-codex-name-generation.md +49 -0
- package/RAF/45-signal-cairn/decisions.md +7 -0
- package/RAF/45-signal-cairn/input.md +2 -0
- package/RAF/45-signal-cairn/outcomes/1-rename-provider-to-harness.md +19 -0
- package/RAF/45-signal-cairn/outcomes/2-normalize-model-display-names.md +18 -0
- package/RAF/45-signal-cairn/plans/1-rename-provider-to-harness.md +40 -0
- package/RAF/45-signal-cairn/plans/2-normalize-model-display-names.md +41 -0
- package/RAF/45-signal-lantern/decisions.md +10 -0
- package/RAF/45-signal-lantern/input.md +2 -0
- package/RAF/45-signal-lantern/outcomes/1-add-effort-and-fast-to-do-model-display.md +15 -0
- package/RAF/45-signal-lantern/outcomes/2-capture-codex-post-run-token-usage.md +15 -0
- package/RAF/45-signal-lantern/outcomes/3-show-codex-token-summaries-without-fake-cost.md +14 -0
- package/RAF/45-signal-lantern/plans/1-add-effort-and-fast-to-do-model-display.md +38 -0
- package/RAF/45-signal-lantern/plans/2-capture-codex-post-run-token-usage.md +37 -0
- package/RAF/45-signal-lantern/plans/3-show-codex-token-summaries-without-fake-cost.md +40 -0
- package/RAF/46-lantern-arc/decisions.md +19 -0
- package/RAF/46-lantern-arc/input.md +6 -0
- package/RAF/46-lantern-arc/outcomes/1-remove-spark-alias.md +16 -0
- package/RAF/46-lantern-arc/outcomes/2-clean-up-worktree-plan-command.md +30 -0
- package/RAF/46-lantern-arc/outcomes/3-fix-token-usage-accumulation.md +32 -0
- package/RAF/46-lantern-arc/outcomes/4-display-effort-in-compact-mode.md +22 -0
- package/RAF/46-lantern-arc/outcomes/5-codex-fast-mode-research.md +38 -0
- package/RAF/46-lantern-arc/outcomes/6-optimize-llm-prompts.md +39 -0
- package/RAF/46-lantern-arc/plans/1-remove-spark-alias.md +38 -0
- package/RAF/46-lantern-arc/plans/2-clean-up-worktree-plan-command.md +33 -0
- package/RAF/46-lantern-arc/plans/3-fix-token-usage-accumulation.md +33 -0
- package/RAF/46-lantern-arc/plans/4-display-effort-in-compact-mode.md +28 -0
- package/RAF/46-lantern-arc/plans/5-codex-fast-mode-research.md +34 -0
- package/RAF/46-lantern-arc/plans/6-optimize-llm-prompts.md +48 -0
- package/RAF/47-signal-trim/decisions.md +13 -0
- package/RAF/47-signal-trim/input.md +2 -0
- package/RAF/47-signal-trim/plans/1-remove-cache-from-status.md +73 -0
- package/README.md +50 -63
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +47 -49
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/do.d.ts +2 -0
- package/dist/commands/do.d.ts.map +1 -1
- package/dist/commands/do.js +91 -230
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +54 -259
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/preset.d.ts +3 -0
- package/dist/commands/preset.d.ts.map +1 -0
- package/dist/commands/preset.js +158 -0
- package/dist/commands/preset.js.map +1 -0
- package/dist/core/claude-runner.d.ts +2 -0
- package/dist/core/claude-runner.d.ts.map +1 -1
- package/dist/core/claude-runner.js +36 -12
- package/dist/core/claude-runner.js.map +1 -1
- package/dist/core/codex-runner.d.ts +1 -0
- package/dist/core/codex-runner.d.ts.map +1 -1
- package/dist/core/codex-runner.js +26 -7
- package/dist/core/codex-runner.js.map +1 -1
- package/dist/core/failure-analyzer.js +2 -1
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/git.d.ts +2 -2
- package/dist/core/git.d.ts.map +1 -1
- package/dist/core/git.js +53 -3
- package/dist/core/git.js.map +1 -1
- package/dist/core/project-manager.d.ts.map +1 -1
- package/dist/core/project-manager.js +2 -2
- package/dist/core/project-manager.js.map +1 -1
- package/dist/core/pull-request.js +5 -5
- package/dist/core/pull-request.js.map +1 -1
- package/dist/core/runner-factory.d.ts +4 -4
- package/dist/core/runner-factory.d.ts.map +1 -1
- package/dist/core/runner-factory.js +8 -8
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/runner-interface.d.ts +1 -1
- package/dist/core/runner-types.d.ts +17 -4
- package/dist/core/runner-types.d.ts.map +1 -1
- package/dist/core/state-derivation.js +3 -3
- package/dist/core/state-derivation.js.map +1 -1
- package/dist/parsers/codex-stream-renderer.d.ts +28 -4
- package/dist/parsers/codex-stream-renderer.d.ts.map +1 -1
- package/dist/parsers/codex-stream-renderer.js +110 -0
- package/dist/parsers/codex-stream-renderer.js.map +1 -1
- package/dist/prompts/amend.d.ts +0 -1
- package/dist/prompts/amend.d.ts.map +1 -1
- package/dist/prompts/amend.js +31 -104
- package/dist/prompts/amend.js.map +1 -1
- package/dist/prompts/execution.d.ts.map +1 -1
- package/dist/prompts/execution.js +17 -34
- package/dist/prompts/execution.js.map +1 -1
- package/dist/prompts/planning.d.ts.map +1 -1
- package/dist/prompts/planning.js +23 -123
- package/dist/prompts/planning.js.map +1 -1
- package/dist/types/config.d.ts +33 -32
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +14 -28
- package/dist/types/config.js.map +1 -1
- package/dist/utils/config.d.ts +36 -16
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +209 -104
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/name-generator.d.ts.map +1 -1
- package/dist/utils/name-generator.js +25 -12
- package/dist/utils/name-generator.js.map +1 -1
- package/dist/utils/paths.d.ts +5 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +9 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/terminal-symbols.d.ts +15 -2
- package/dist/utils/terminal-symbols.d.ts.map +1 -1
- package/dist/utils/terminal-symbols.js +36 -4
- package/dist/utils/terminal-symbols.js.map +1 -1
- package/dist/utils/token-tracker.d.ts +6 -1
- package/dist/utils/token-tracker.d.ts.map +1 -1
- package/dist/utils/token-tracker.js +84 -51
- package/dist/utils/token-tracker.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -2
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +4 -25
- package/dist/utils/validation.js.map +1 -1
- package/package.json +7 -2
- package/src/commands/config.ts +60 -63
- package/src/commands/do.ts +96 -262
- package/src/commands/plan.ts +55 -279
- package/src/commands/preset.ts +186 -0
- package/src/core/claude-runner.ts +45 -5
- package/src/core/codex-runner.ts +32 -7
- package/src/core/failure-analyzer.ts +2 -1
- package/src/core/git.ts +57 -3
- package/src/core/project-manager.ts +2 -1
- package/src/core/pull-request.ts +5 -5
- package/src/core/runner-factory.ts +9 -9
- package/src/core/runner-interface.ts +1 -1
- package/src/core/runner-types.ts +17 -4
- package/src/core/state-derivation.ts +3 -3
- package/src/parsers/codex-stream-renderer.ts +149 -4
- package/src/prompts/amend.ts +30 -105
- package/src/prompts/config-docs.md +206 -62
- package/src/prompts/execution.ts +17 -34
- package/src/prompts/planning.ts +23 -124
- package/src/types/config.ts +47 -59
- package/src/utils/config.ts +248 -115
- package/src/utils/name-generator.ts +29 -13
- package/src/utils/paths.ts +10 -0
- package/src/utils/terminal-symbols.ts +46 -6
- package/src/utils/token-tracker.ts +96 -57
- package/src/utils/validation.ts +5 -30
- package/tests/unit/amend-prompt.test.ts +3 -2
- package/tests/unit/claude-runner-interactive.test.ts +21 -3
- package/tests/unit/claude-runner.test.ts +39 -0
- package/tests/unit/codex-runner.test.ts +163 -0
- package/tests/unit/codex-stream-renderer.test.ts +127 -0
- package/tests/unit/command-output.test.ts +57 -0
- package/tests/unit/commit-planning-artifacts-worktree.test.ts +24 -7
- package/tests/unit/commit-planning-artifacts.test.ts +26 -4
- package/tests/unit/config-command.test.ts +215 -303
- package/tests/unit/config.test.ts +319 -235
- package/tests/unit/dependency-integration.test.ts +27 -1
- package/tests/unit/do-model-display.test.ts +35 -0
- package/tests/unit/execution-prompt.test.ts +49 -19
- package/tests/unit/name-generator.test.ts +82 -12
- package/tests/unit/plan-command-auto-flag.test.ts +7 -10
- package/tests/unit/plan-command.test.ts +14 -17
- package/tests/unit/planning-prompt.test.ts +9 -8
- package/tests/unit/terminal-symbols.test.ts +94 -3
- package/tests/unit/token-tracker.test.ts +180 -1
- package/tests/unit/validation.test.ts +9 -41
- package/tests/unit/worktree-flag-override.test.ts +0 -186
package/dist/utils/config.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as os from 'node:os';
|
|
4
|
-
import { DEFAULT_CONFIG, DEFAULT_RAF_CONFIG, VALID_MODEL_ALIASES, VALID_CODEX_MODEL_ALIASES,
|
|
4
|
+
import { DEFAULT_CONFIG, DEFAULT_RAF_CONFIG, VALID_MODEL_ALIASES, VALID_CODEX_MODEL_ALIASES, VALID_HARNESSES, FULL_MODEL_ID_PATTERN, } from '../types/config.js';
|
|
5
|
+
import { logger } from './logger.js';
|
|
5
6
|
const CONFIG_DIR = path.join(os.homedir(), '.raf');
|
|
6
7
|
const CONFIG_FILENAME = 'raf.config.json';
|
|
7
8
|
export function getConfigPath() {
|
|
@@ -15,16 +16,24 @@ export function getClaudeSettingsPath() {
|
|
|
15
16
|
}
|
|
16
17
|
// ---- Validation ----
|
|
17
18
|
const VALID_TOP_LEVEL_KEYS = new Set([
|
|
18
|
-
'
|
|
19
|
+
'models', 'effortMapping',
|
|
19
20
|
'timeout', 'maxRetries', 'autoCommit',
|
|
20
21
|
'worktree', 'syncMainBranch', 'commitFormat', 'display',
|
|
21
22
|
]);
|
|
23
|
+
/** Keys that were removed in the schema migration. Rejected with a helpful error. */
|
|
24
|
+
const REMOVED_KEYS = {
|
|
25
|
+
provider: 'Top-level "provider" has been removed. Use "harness" inside each "models" and "effortMapping" entry instead.',
|
|
26
|
+
codexModels: '"codexModels" has been removed. Use "models" with harness-aware entries (e.g. { "model": "gpt-5.4", "harness": "codex" }) instead.',
|
|
27
|
+
codexEffortMapping: '"codexEffortMapping" has been removed. Use "effortMapping" with harness-aware entries instead.',
|
|
28
|
+
};
|
|
22
29
|
const VALID_MODEL_KEYS = new Set([
|
|
23
30
|
'plan', 'execute', 'nameGeneration', 'failureAnalysis', 'prGeneration', 'config',
|
|
24
31
|
]);
|
|
25
32
|
const VALID_EFFORT_MAPPING_KEYS = new Set(['low', 'medium', 'high']);
|
|
26
33
|
const VALID_COMMIT_FORMAT_KEYS = new Set(['task', 'plan', 'amend', 'prefix']);
|
|
27
34
|
const VALID_DISPLAY_KEYS = new Set(['showCacheTokens']);
|
|
35
|
+
const VALID_MODEL_ENTRY_KEYS = new Set(['model', 'harness', 'reasoningEffort', 'fast']);
|
|
36
|
+
const VALID_REASONING_EFFORTS = new Set(['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max']);
|
|
28
37
|
export class ConfigValidationError extends Error {
|
|
29
38
|
constructor(message) {
|
|
30
39
|
super(message);
|
|
@@ -38,26 +47,26 @@ function checkUnknownKeys(obj, validKeys, prefix) {
|
|
|
38
47
|
}
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
|
-
/** Regex for raw Codex model IDs (e.g., `gpt-5.4`, `gpt-5.3-codex
|
|
50
|
+
/** Regex for raw Codex model IDs (e.g., `gpt-5.4`, `gpt-5.3-codex`). Requires dot-separated version. */
|
|
42
51
|
const CODEX_MODEL_ID_PATTERN = /^gpt-\d+\.\d+(-.+)*$/;
|
|
43
52
|
/**
|
|
44
53
|
* Check whether a string is a valid model name.
|
|
45
54
|
* Accepts:
|
|
46
55
|
* - Claude short aliases: sonnet, haiku, opus
|
|
47
56
|
* - Claude full IDs: claude-opus-4-6
|
|
48
|
-
* - Codex short aliases:
|
|
49
|
-
* - Raw Codex model IDs: gpt-5.4, gpt-5.3-codex
|
|
57
|
+
* - Codex short aliases: codex, gpt54
|
|
58
|
+
* - Raw Codex model IDs: gpt-5.4, gpt-5.3-codex
|
|
50
59
|
* - Harness-prefixed format: claude/opus, codex/gpt-5.4
|
|
51
60
|
*/
|
|
52
61
|
export function isValidModelName(value) {
|
|
53
|
-
// Harness-prefixed format:
|
|
62
|
+
// Harness-prefixed format: harness/model
|
|
54
63
|
const prefixMatch = value.match(/^(claude|codex)\/(.+)$/);
|
|
55
64
|
if (prefixMatch) {
|
|
56
|
-
const [,
|
|
57
|
-
if (
|
|
65
|
+
const [, harness, model] = prefixMatch;
|
|
66
|
+
if (harness === 'claude') {
|
|
58
67
|
return VALID_MODEL_ALIASES.includes(model) || FULL_MODEL_ID_PATTERN.test(model);
|
|
59
68
|
}
|
|
60
|
-
if (
|
|
69
|
+
if (harness === 'codex') {
|
|
61
70
|
return VALID_CODEX_MODEL_ALIASES.includes(model) || CODEX_MODEL_ID_PATTERN.test(model);
|
|
62
71
|
}
|
|
63
72
|
}
|
|
@@ -72,36 +81,94 @@ export function isValidModelName(value) {
|
|
|
72
81
|
return false;
|
|
73
82
|
}
|
|
74
83
|
/**
|
|
75
|
-
* Parse a model spec string into its
|
|
76
|
-
* - `codex/gpt-5.4` -> {
|
|
77
|
-
* - `claude/opus` -> {
|
|
78
|
-
* - `opus` -> {
|
|
79
|
-
* - `gpt-5.4` -> {
|
|
84
|
+
* Parse a model spec string into its harness and model components.
|
|
85
|
+
* - `codex/gpt-5.4` -> { harness: 'codex', model: 'gpt-5.4' }
|
|
86
|
+
* - `claude/opus` -> { harness: 'claude', model: 'opus' }
|
|
87
|
+
* - `opus` -> { harness: 'claude', model: 'opus' } (defaults to claude)
|
|
88
|
+
* - `gpt-5.4` -> { harness: 'codex', model: 'gpt-5.4' } (inferred from model format)
|
|
80
89
|
*/
|
|
81
90
|
export function parseModelSpec(modelSpec) {
|
|
82
91
|
const prefixMatch = modelSpec.match(/^(claude|codex)\/(.+)$/);
|
|
83
92
|
if (prefixMatch) {
|
|
84
|
-
return {
|
|
93
|
+
return { harness: prefixMatch[1], model: prefixMatch[2] };
|
|
85
94
|
}
|
|
86
|
-
// Infer
|
|
95
|
+
// Infer harness from model format
|
|
87
96
|
if (VALID_CODEX_MODEL_ALIASES.includes(modelSpec) || CODEX_MODEL_ID_PATTERN.test(modelSpec)) {
|
|
88
|
-
return {
|
|
97
|
+
return { harness: 'codex', model: modelSpec };
|
|
89
98
|
}
|
|
90
99
|
// Default to claude
|
|
91
|
-
return {
|
|
100
|
+
return { harness: 'claude', model: modelSpec };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Validate a model entry object: { model, harness, reasoningEffort? }
|
|
104
|
+
*/
|
|
105
|
+
function validateModelEntry(obj, prefix) {
|
|
106
|
+
if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
|
|
107
|
+
throw new ConfigValidationError(`${prefix} must be a model entry object (e.g. { "model": "opus", "harness": "claude" })`);
|
|
108
|
+
}
|
|
109
|
+
const entry = obj;
|
|
110
|
+
checkUnknownKeys(entry, VALID_MODEL_ENTRY_KEYS, prefix);
|
|
111
|
+
if (entry.model === undefined) {
|
|
112
|
+
throw new ConfigValidationError(`${prefix}.model is required`);
|
|
113
|
+
}
|
|
114
|
+
if (typeof entry.model !== 'string' || !isValidModelName(entry.model)) {
|
|
115
|
+
throw new ConfigValidationError(`${prefix}.model must be a valid model name (e.g. opus, sonnet, gpt-5.4, claude-opus-4-6)`);
|
|
116
|
+
}
|
|
117
|
+
if (entry.harness === undefined) {
|
|
118
|
+
throw new ConfigValidationError(`${prefix}.harness is required`);
|
|
119
|
+
}
|
|
120
|
+
if (typeof entry.harness !== 'string' || !VALID_HARNESSES.includes(entry.harness)) {
|
|
121
|
+
throw new ConfigValidationError(`${prefix}.harness must be one of: ${VALID_HARNESSES.join(', ')}`);
|
|
122
|
+
}
|
|
123
|
+
if (entry.reasoningEffort !== undefined) {
|
|
124
|
+
if (typeof entry.reasoningEffort !== 'string' || !VALID_REASONING_EFFORTS.has(entry.reasoningEffort)) {
|
|
125
|
+
throw new ConfigValidationError(`${prefix}.reasoningEffort must be one of: none, minimal, low, medium, high, xhigh, max`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (entry.fast !== undefined) {
|
|
129
|
+
if (typeof entry.fast !== 'boolean') {
|
|
130
|
+
throw new ConfigValidationError(`${prefix}.fast must be a boolean`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function getCodexFastWarning(prefix) {
|
|
135
|
+
return `${prefix}.fast is enabled but ignored because Codex does not support fast mode`;
|
|
136
|
+
}
|
|
137
|
+
function collectModelEntryWarnings(obj, prefix, warnings) {
|
|
138
|
+
if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const entry = obj;
|
|
142
|
+
if (entry.harness === 'codex' && entry.fast === true) {
|
|
143
|
+
warnings.push(getCodexFastWarning(prefix));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export function collectConfigValidationWarnings(config) {
|
|
147
|
+
const warnings = [];
|
|
148
|
+
if (config.models && typeof config.models === 'object') {
|
|
149
|
+
for (const [key, value] of Object.entries(config.models)) {
|
|
150
|
+
collectModelEntryWarnings(value, `models.${key}`, warnings);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (config.effortMapping && typeof config.effortMapping === 'object') {
|
|
154
|
+
for (const [key, value] of Object.entries(config.effortMapping)) {
|
|
155
|
+
collectModelEntryWarnings(value, `effortMapping.${key}`, warnings);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return warnings;
|
|
92
159
|
}
|
|
93
160
|
export function validateConfig(config) {
|
|
94
161
|
if (config === null || typeof config !== 'object' || Array.isArray(config)) {
|
|
95
162
|
throw new ConfigValidationError('Config must be a JSON object');
|
|
96
163
|
}
|
|
97
164
|
const obj = config;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
throw new ConfigValidationError(`provider must be one of: ${VALID_HARNESS_PROVIDERS.join(', ')}`);
|
|
165
|
+
// Check for removed keys first (helpful error messages)
|
|
166
|
+
for (const [key, message] of Object.entries(REMOVED_KEYS)) {
|
|
167
|
+
if (key in obj) {
|
|
168
|
+
throw new ConfigValidationError(message);
|
|
103
169
|
}
|
|
104
170
|
}
|
|
171
|
+
checkUnknownKeys(obj, VALID_TOP_LEVEL_KEYS, '');
|
|
105
172
|
// models
|
|
106
173
|
if (obj.models !== undefined) {
|
|
107
174
|
if (typeof obj.models !== 'object' || obj.models === null || Array.isArray(obj.models)) {
|
|
@@ -110,9 +177,7 @@ export function validateConfig(config) {
|
|
|
110
177
|
const models = obj.models;
|
|
111
178
|
checkUnknownKeys(models, VALID_MODEL_KEYS, 'models');
|
|
112
179
|
for (const [key, val] of Object.entries(models)) {
|
|
113
|
-
|
|
114
|
-
throw new ConfigValidationError(`models.${key} must be a short alias (${VALID_MODEL_ALIASES.join(', ')}) or a full model ID (e.g., claude-sonnet-4-5-20250929)`);
|
|
115
|
-
}
|
|
180
|
+
validateModelEntry(val, `models.${key}`);
|
|
116
181
|
}
|
|
117
182
|
}
|
|
118
183
|
// effortMapping
|
|
@@ -123,35 +188,7 @@ export function validateConfig(config) {
|
|
|
123
188
|
const effortMapping = obj.effortMapping;
|
|
124
189
|
checkUnknownKeys(effortMapping, VALID_EFFORT_MAPPING_KEYS, 'effortMapping');
|
|
125
190
|
for (const [key, val] of Object.entries(effortMapping)) {
|
|
126
|
-
|
|
127
|
-
throw new ConfigValidationError(`effortMapping.${key} must be a short alias (${VALID_MODEL_ALIASES.join(', ')}) or a full model ID (e.g., claude-sonnet-4-5-20250929)`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
// codexModels
|
|
132
|
-
if (obj.codexModels !== undefined) {
|
|
133
|
-
if (typeof obj.codexModels !== 'object' || obj.codexModels === null || Array.isArray(obj.codexModels)) {
|
|
134
|
-
throw new ConfigValidationError('codexModels must be an object');
|
|
135
|
-
}
|
|
136
|
-
const codexModels = obj.codexModels;
|
|
137
|
-
checkUnknownKeys(codexModels, VALID_MODEL_KEYS, 'codexModels');
|
|
138
|
-
for (const [key, val] of Object.entries(codexModels)) {
|
|
139
|
-
if (typeof val !== 'string' || !isValidModelName(val)) {
|
|
140
|
-
throw new ConfigValidationError(`codexModels.${key} must be a valid model name (e.g., gpt-5.4, gpt-5.3-codex-spark)`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
// codexEffortMapping
|
|
145
|
-
if (obj.codexEffortMapping !== undefined) {
|
|
146
|
-
if (typeof obj.codexEffortMapping !== 'object' || obj.codexEffortMapping === null || Array.isArray(obj.codexEffortMapping)) {
|
|
147
|
-
throw new ConfigValidationError('codexEffortMapping must be an object');
|
|
148
|
-
}
|
|
149
|
-
const codexEffortMapping = obj.codexEffortMapping;
|
|
150
|
-
checkUnknownKeys(codexEffortMapping, VALID_EFFORT_MAPPING_KEYS, 'codexEffortMapping');
|
|
151
|
-
for (const [key, val] of Object.entries(codexEffortMapping)) {
|
|
152
|
-
if (typeof val !== 'string' || !isValidModelName(val)) {
|
|
153
|
-
throw new ConfigValidationError(`codexEffortMapping.${key} must be a valid model name (e.g., gpt-5.4, gpt-5.3-codex-spark)`);
|
|
154
|
-
}
|
|
191
|
+
validateModelEntry(val, `effortMapping.${key}`);
|
|
155
192
|
}
|
|
156
193
|
}
|
|
157
194
|
// timeout
|
|
@@ -213,21 +250,54 @@ export function validateConfig(config) {
|
|
|
213
250
|
return config;
|
|
214
251
|
}
|
|
215
252
|
// ---- Deep merge ----
|
|
253
|
+
/** Deep-merge a single model entry: user override replaces the default entirely. */
|
|
254
|
+
function mergeModelEntry(defaultEntry, override) {
|
|
255
|
+
const normalizedEntry = (entry) => {
|
|
256
|
+
if (entry.harness !== 'codex') {
|
|
257
|
+
return entry;
|
|
258
|
+
}
|
|
259
|
+
const { fast: _ignored, ...rest } = entry;
|
|
260
|
+
return rest;
|
|
261
|
+
};
|
|
262
|
+
if (override && typeof override === 'object' && !Array.isArray(override)) {
|
|
263
|
+
const o = override;
|
|
264
|
+
return normalizedEntry({
|
|
265
|
+
model: typeof o.model === 'string' ? o.model : defaultEntry.model,
|
|
266
|
+
harness: typeof o.harness === 'string' ? o.harness : defaultEntry.harness,
|
|
267
|
+
...(o.reasoningEffort !== undefined
|
|
268
|
+
? { reasoningEffort: o.reasoningEffort }
|
|
269
|
+
: defaultEntry.reasoningEffort !== undefined
|
|
270
|
+
? { reasoningEffort: defaultEntry.reasoningEffort }
|
|
271
|
+
: {}),
|
|
272
|
+
...(o.fast !== undefined
|
|
273
|
+
? { fast: o.fast }
|
|
274
|
+
: defaultEntry.fast !== undefined
|
|
275
|
+
? { fast: defaultEntry.fast }
|
|
276
|
+
: {}),
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
return normalizedEntry(defaultEntry);
|
|
280
|
+
}
|
|
216
281
|
function deepMerge(defaults, overrides) {
|
|
217
282
|
const result = { ...defaults };
|
|
218
|
-
if (overrides.provider !== undefined)
|
|
219
|
-
result.provider = overrides.provider;
|
|
220
283
|
if (overrides.models) {
|
|
221
|
-
|
|
284
|
+
const m = overrides.models;
|
|
285
|
+
result.models = {
|
|
286
|
+
plan: m.plan ? mergeModelEntry(defaults.models.plan, m.plan) : { ...defaults.models.plan },
|
|
287
|
+
execute: m.execute ? mergeModelEntry(defaults.models.execute, m.execute) : { ...defaults.models.execute },
|
|
288
|
+
nameGeneration: m.nameGeneration ? mergeModelEntry(defaults.models.nameGeneration, m.nameGeneration) : { ...defaults.models.nameGeneration },
|
|
289
|
+
failureAnalysis: m.failureAnalysis ? mergeModelEntry(defaults.models.failureAnalysis, m.failureAnalysis) : { ...defaults.models.failureAnalysis },
|
|
290
|
+
prGeneration: m.prGeneration ? mergeModelEntry(defaults.models.prGeneration, m.prGeneration) : { ...defaults.models.prGeneration },
|
|
291
|
+
config: m.config ? mergeModelEntry(defaults.models.config, m.config) : { ...defaults.models.config },
|
|
292
|
+
};
|
|
222
293
|
}
|
|
223
294
|
if (overrides.effortMapping) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
result.codexEffortMapping = { ...defaults.codexEffortMapping, ...overrides.codexEffortMapping };
|
|
295
|
+
const e = overrides.effortMapping;
|
|
296
|
+
result.effortMapping = {
|
|
297
|
+
low: e.low ? mergeModelEntry(defaults.effortMapping.low, e.low) : { ...defaults.effortMapping.low },
|
|
298
|
+
medium: e.medium ? mergeModelEntry(defaults.effortMapping.medium, e.medium) : { ...defaults.effortMapping.medium },
|
|
299
|
+
high: e.high ? mergeModelEntry(defaults.effortMapping.high, e.high) : { ...defaults.effortMapping.high },
|
|
300
|
+
};
|
|
231
301
|
}
|
|
232
302
|
if (overrides.commitFormat) {
|
|
233
303
|
result.commitFormat = { ...defaults.commitFormat, ...overrides.commitFormat };
|
|
@@ -257,10 +327,19 @@ export function resolveConfig(configPath) {
|
|
|
257
327
|
if (!fs.existsSync(filePath)) {
|
|
258
328
|
return {
|
|
259
329
|
...DEFAULT_CONFIG,
|
|
260
|
-
models: {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
330
|
+
models: {
|
|
331
|
+
plan: { ...DEFAULT_CONFIG.models.plan },
|
|
332
|
+
execute: { ...DEFAULT_CONFIG.models.execute },
|
|
333
|
+
nameGeneration: { ...DEFAULT_CONFIG.models.nameGeneration },
|
|
334
|
+
failureAnalysis: { ...DEFAULT_CONFIG.models.failureAnalysis },
|
|
335
|
+
prGeneration: { ...DEFAULT_CONFIG.models.prGeneration },
|
|
336
|
+
config: { ...DEFAULT_CONFIG.models.config },
|
|
337
|
+
},
|
|
338
|
+
effortMapping: {
|
|
339
|
+
low: { ...DEFAULT_CONFIG.effortMapping.low },
|
|
340
|
+
medium: { ...DEFAULT_CONFIG.effortMapping.medium },
|
|
341
|
+
high: { ...DEFAULT_CONFIG.effortMapping.high },
|
|
342
|
+
},
|
|
264
343
|
commitFormat: { ...DEFAULT_CONFIG.commitFormat },
|
|
265
344
|
display: { ...DEFAULT_CONFIG.display },
|
|
266
345
|
};
|
|
@@ -268,6 +347,9 @@ export function resolveConfig(configPath) {
|
|
|
268
347
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
269
348
|
const parsed = JSON.parse(content);
|
|
270
349
|
const validated = validateConfig(parsed);
|
|
350
|
+
for (const warning of collectConfigValidationWarnings(validated)) {
|
|
351
|
+
logger.warn(`Config validation warning: ${warning}`);
|
|
352
|
+
}
|
|
271
353
|
return deepMerge(DEFAULT_CONFIG, validated);
|
|
272
354
|
}
|
|
273
355
|
/**
|
|
@@ -298,34 +380,25 @@ export function getResolvedConfig() {
|
|
|
298
380
|
export function resetConfigCache() {
|
|
299
381
|
_cachedConfig = null;
|
|
300
382
|
}
|
|
301
|
-
|
|
383
|
+
/**
|
|
384
|
+
* Get the model entry for a scenario.
|
|
385
|
+
*/
|
|
386
|
+
export function getModel(scenario) {
|
|
302
387
|
const config = getResolvedConfig();
|
|
303
|
-
const effectiveProvider = provider ?? config.provider;
|
|
304
|
-
if (effectiveProvider === 'codex') {
|
|
305
|
-
return config.codexModels[scenario];
|
|
306
|
-
}
|
|
307
388
|
return config.models[scenario];
|
|
308
389
|
}
|
|
309
390
|
/**
|
|
310
391
|
* Get the full effort mapping config.
|
|
311
392
|
*/
|
|
312
|
-
export function getEffortMapping(
|
|
393
|
+
export function getEffortMapping() {
|
|
313
394
|
const config = getResolvedConfig();
|
|
314
|
-
const effectiveProvider = provider ?? config.provider;
|
|
315
|
-
if (effectiveProvider === 'codex') {
|
|
316
|
-
return config.codexEffortMapping;
|
|
317
|
-
}
|
|
318
395
|
return config.effortMapping;
|
|
319
396
|
}
|
|
320
397
|
/**
|
|
321
|
-
* Resolve a task effort level to a model
|
|
398
|
+
* Resolve a task effort level to a model entry using the effort mapping config.
|
|
322
399
|
*/
|
|
323
|
-
export function resolveEffortToModel(effort
|
|
400
|
+
export function resolveEffortToModel(effort) {
|
|
324
401
|
const config = getResolvedConfig();
|
|
325
|
-
const effectiveProvider = provider ?? config.provider;
|
|
326
|
-
if (effectiveProvider === 'codex') {
|
|
327
|
-
return config.codexEffortMapping[effort];
|
|
328
|
-
}
|
|
329
402
|
return config.effortMapping[effort];
|
|
330
403
|
}
|
|
331
404
|
/**
|
|
@@ -338,14 +411,12 @@ const MODEL_TIER_ORDER = {
|
|
|
338
411
|
sonnet: 2,
|
|
339
412
|
opus: 3,
|
|
340
413
|
};
|
|
341
|
-
/** Codex model tier ordering:
|
|
414
|
+
/** Codex model tier ordering: codex (1) < gpt54 (2) */
|
|
342
415
|
const CODEX_MODEL_TIER_ORDER = {
|
|
343
|
-
|
|
344
|
-
'gpt-5.3-codex
|
|
345
|
-
|
|
346
|
-
'gpt-5.
|
|
347
|
-
gpt54: 3,
|
|
348
|
-
'gpt-5.4': 3,
|
|
416
|
+
codex: 1,
|
|
417
|
+
'gpt-5.3-codex': 1,
|
|
418
|
+
gpt54: 2,
|
|
419
|
+
'gpt-5.4': 2,
|
|
349
420
|
};
|
|
350
421
|
/**
|
|
351
422
|
* Get the numeric tier of a model for comparison.
|
|
@@ -375,18 +446,19 @@ export function getModelTier(modelName) {
|
|
|
375
446
|
return 3;
|
|
376
447
|
}
|
|
377
448
|
/**
|
|
378
|
-
* Apply ceiling to a model based on the configured models.execute ceiling.
|
|
379
|
-
* Returns the lower-tier
|
|
449
|
+
* Apply ceiling to a model entry based on the configured models.execute ceiling.
|
|
450
|
+
* Returns the lower-tier entry between the input and the ceiling.
|
|
451
|
+
* When the input exceeds the ceiling, the ceiling entry is returned (including its harness).
|
|
380
452
|
*/
|
|
381
|
-
export function applyModelCeiling(
|
|
382
|
-
const
|
|
383
|
-
const resolvedTier = getModelTier(
|
|
384
|
-
const ceilingTier = getModelTier(
|
|
453
|
+
export function applyModelCeiling(resolved, ceiling) {
|
|
454
|
+
const ceilingEntry = ceiling ?? getModel('execute');
|
|
455
|
+
const resolvedTier = getModelTier(resolved.model);
|
|
456
|
+
const ceilingTier = getModelTier(ceilingEntry.model);
|
|
385
457
|
// If resolved model is above ceiling, use ceiling instead
|
|
386
458
|
if (resolvedTier > ceilingTier) {
|
|
387
|
-
return
|
|
459
|
+
return ceilingEntry;
|
|
388
460
|
}
|
|
389
|
-
return
|
|
461
|
+
return resolved;
|
|
390
462
|
}
|
|
391
463
|
export function getCommitFormat(type) {
|
|
392
464
|
return getResolvedConfig().commitFormat[type];
|
|
@@ -420,12 +492,10 @@ export function getModelShortName(modelId) {
|
|
|
420
492
|
return modelId;
|
|
421
493
|
}
|
|
422
494
|
// Codex short aliases
|
|
423
|
-
if (modelId === '
|
|
495
|
+
if (modelId === 'codex' || modelId === 'gpt54') {
|
|
424
496
|
return modelId;
|
|
425
497
|
}
|
|
426
498
|
// Codex model IDs -> short names
|
|
427
|
-
if (modelId === 'gpt-5.3-codex-spark')
|
|
428
|
-
return 'spark';
|
|
429
499
|
if (modelId === 'gpt-5.3-codex')
|
|
430
500
|
return 'codex';
|
|
431
501
|
if (modelId === 'gpt-5.4')
|
|
@@ -441,6 +511,9 @@ export function getModelShortName(modelId) {
|
|
|
441
511
|
// Unknown format, return as-is
|
|
442
512
|
return modelId;
|
|
443
513
|
}
|
|
514
|
+
function normalizeModelAlias(value) {
|
|
515
|
+
return value.toLowerCase().replace(/^gpt-/, 'gpt').replace(/[^a-z0-9]/g, '');
|
|
516
|
+
}
|
|
444
517
|
/**
|
|
445
518
|
* Mapping of short model aliases to their current full model IDs.
|
|
446
519
|
* These should match the latest Claude model versions.
|
|
@@ -449,10 +522,42 @@ const MODEL_ALIAS_TO_FULL_ID = {
|
|
|
449
522
|
opus: 'claude-opus-4-6',
|
|
450
523
|
sonnet: 'claude-sonnet-4-5-20250929',
|
|
451
524
|
haiku: 'claude-haiku-4-5-20251001',
|
|
452
|
-
spark: 'gpt-5.3-codex-spark',
|
|
453
525
|
codex: 'gpt-5.3-codex',
|
|
454
526
|
gpt54: 'gpt-5.4',
|
|
455
527
|
};
|
|
528
|
+
function getPreferredModelDisplayLabel(alias) {
|
|
529
|
+
const fullId = MODEL_ALIAS_TO_FULL_ID[alias];
|
|
530
|
+
if (!fullId) {
|
|
531
|
+
return alias;
|
|
532
|
+
}
|
|
533
|
+
return normalizeModelAlias(alias) === normalizeModelAlias(fullId) ? fullId : alias;
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* Get the centralized user-facing display label for a model.
|
|
537
|
+
* Keeps concise Claude labels, while normalizing compact aliases like gpt54 -> gpt-5.4.
|
|
538
|
+
*/
|
|
539
|
+
export function getModelDisplayName(modelId) {
|
|
540
|
+
const aliasedDisplay = getPreferredModelDisplayLabel(modelId);
|
|
541
|
+
if (aliasedDisplay !== modelId) {
|
|
542
|
+
return aliasedDisplay;
|
|
543
|
+
}
|
|
544
|
+
const matchingAliases = Object.entries(MODEL_ALIAS_TO_FULL_ID)
|
|
545
|
+
.filter(([, fullId]) => fullId === modelId)
|
|
546
|
+
.map(([alias]) => alias);
|
|
547
|
+
if (matchingAliases.length > 0) {
|
|
548
|
+
const preferredAlias = matchingAliases[matchingAliases.length - 1];
|
|
549
|
+
return getPreferredModelDisplayLabel(preferredAlias);
|
|
550
|
+
}
|
|
551
|
+
return getModelShortName(modelId);
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Format a model label for user-facing logs.
|
|
555
|
+
* Defaults to the centralized display policy, or can opt into explicit full-ID display.
|
|
556
|
+
*/
|
|
557
|
+
export function formatModelDisplay(model, harness, options = {}) {
|
|
558
|
+
const label = options.fullId ? resolveFullModelId(model) : getModelDisplayName(model);
|
|
559
|
+
return options.includeHarness && harness ? `${label} (${harness})` : label;
|
|
560
|
+
}
|
|
456
561
|
/**
|
|
457
562
|
* Resolve a model name to its full model ID.
|
|
458
563
|
* If already a full model ID, returns as-is.
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-generator.d.ts","sourceRoot":"","sources":["../../src/utils/name-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"name-generator.d.ts","sourceRoot":"","sources":["../../src/utils/name-generator.ts"],"names":[],"mappings":"AAmGA;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB9E;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAejF;AAwCD;;GAEG;AACH,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyB1D;AAqBD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -26,19 +26,32 @@ Rules:
|
|
|
26
26
|
- For projects with many unrelated tasks, prefer abstract/metaphorical names
|
|
27
27
|
|
|
28
28
|
Project description:`;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*/
|
|
33
|
-
function runClaudePrint(prompt) {
|
|
34
|
-
return new Promise((resolve) => {
|
|
35
|
-
const model = getModel('nameGeneration');
|
|
36
|
-
const proc = spawn('claude', [
|
|
29
|
+
function buildNameGenerationArgs(harness, model, prompt) {
|
|
30
|
+
if (harness === 'claude') {
|
|
31
|
+
return [
|
|
37
32
|
'--model', model,
|
|
38
33
|
'--no-session-persistence',
|
|
39
34
|
'-p',
|
|
40
35
|
prompt,
|
|
41
|
-
]
|
|
36
|
+
];
|
|
37
|
+
}
|
|
38
|
+
return [
|
|
39
|
+
'exec',
|
|
40
|
+
'--skip-git-repo-check',
|
|
41
|
+
'--ephemeral',
|
|
42
|
+
'--color', 'never',
|
|
43
|
+
'-m', model,
|
|
44
|
+
prompt,
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Run the configured name-generation CLI with the given prompt and return stdout.
|
|
49
|
+
*/
|
|
50
|
+
function runNameGenerationPrint(prompt) {
|
|
51
|
+
return new Promise((resolve) => {
|
|
52
|
+
const entry = getModel('nameGeneration');
|
|
53
|
+
const args = buildNameGenerationArgs(entry.harness, entry.model, prompt);
|
|
54
|
+
const proc = spawn(entry.harness, args, {
|
|
42
55
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
43
56
|
});
|
|
44
57
|
let stdout = '';
|
|
@@ -99,7 +112,7 @@ export async function generateProjectName(description) {
|
|
|
99
112
|
export async function generateProjectNames(description) {
|
|
100
113
|
try {
|
|
101
114
|
const names = await callSonnetForMultipleNames(description);
|
|
102
|
-
if (names.length
|
|
115
|
+
if (names.length > 0) {
|
|
103
116
|
logger.debug(`Generated ${names.length} project names`);
|
|
104
117
|
return names;
|
|
105
118
|
}
|
|
@@ -117,14 +130,14 @@ export async function generateProjectNames(description) {
|
|
|
117
130
|
*/
|
|
118
131
|
async function callSonnetForName(description) {
|
|
119
132
|
const fullPrompt = `${NAME_GENERATION_PROMPT}\n${description}`;
|
|
120
|
-
return
|
|
133
|
+
return runNameGenerationPrint(fullPrompt);
|
|
121
134
|
}
|
|
122
135
|
/**
|
|
123
136
|
* Call the LLM to generate multiple project names.
|
|
124
137
|
*/
|
|
125
138
|
async function callSonnetForMultipleNames(description) {
|
|
126
139
|
const fullPrompt = `${MULTI_NAME_GENERATION_PROMPT}\n${description}`;
|
|
127
|
-
const result = await
|
|
140
|
+
const result = await runNameGenerationPrint(fullPrompt);
|
|
128
141
|
if (!result) {
|
|
129
142
|
return [];
|
|
130
143
|
}
|