juno-code 1.0.50 → 1.0.51
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 +100 -8
- package/dist/bin/cli.js +2431 -1280
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +2413 -1262
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/index.d.mts +23 -12
- package/dist/index.d.ts +23 -12
- package/dist/index.js +40 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +40 -11
- package/dist/index.mjs.map +1 -1
- package/dist/templates/scripts/install_requirements.sh +14 -2
- package/dist/templates/scripts/kanban.sh +7 -0
- package/dist/templates/services/README.md +23 -4
- package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
- package/dist/templates/services/pi.py +657 -29
- package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +7 -0
- package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +7 -0
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -19,6 +19,8 @@ interface JunoTaskConfig {
|
|
|
19
19
|
defaultSubagent: SubagentType;
|
|
20
20
|
defaultMaxIterations: number;
|
|
21
21
|
defaultModel?: string;
|
|
22
|
+
/** Optional per-subagent default model overrides */
|
|
23
|
+
defaultModels?: Partial<Record<SubagentType, string>>;
|
|
22
24
|
defaultBackend: BackendType;
|
|
23
25
|
mainTask?: string;
|
|
24
26
|
logLevel: LogLevel;
|
|
@@ -91,6 +93,7 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
91
93
|
defaultBackend: z.ZodEnum<["shell"]>;
|
|
92
94
|
defaultMaxIterations: z.ZodNumber;
|
|
93
95
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
96
|
+
defaultModels: z.ZodOptional<z.ZodRecord<z.ZodEnum<["claude", "cursor", "codex", "gemini", "pi"]>, z.ZodString>>;
|
|
94
97
|
mainTask: z.ZodOptional<z.ZodString>;
|
|
95
98
|
logLevel: z.ZodEnum<["error", "warn", "info", "debug", "trace"]>;
|
|
96
99
|
logFile: z.ZodOptional<z.ZodString>;
|
|
@@ -118,9 +121,11 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
118
121
|
skipHooks: z.ZodOptional<z.ZodBoolean>;
|
|
119
122
|
}, "strict", z.ZodTypeAny, {
|
|
120
123
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
121
|
-
defaultBackend?: "shell";
|
|
122
|
-
defaultMaxIterations?: number;
|
|
123
124
|
defaultModel?: string;
|
|
125
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
126
|
+
defaultMaxIterations?: number;
|
|
127
|
+
defaultBackend?: "shell";
|
|
128
|
+
mainTask?: string;
|
|
124
129
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
125
130
|
logFile?: string;
|
|
126
131
|
verbose?: number;
|
|
@@ -135,7 +140,6 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
135
140
|
headlessMode?: boolean;
|
|
136
141
|
workingDirectory?: string;
|
|
137
142
|
sessionDirectory?: string;
|
|
138
|
-
mainTask?: string;
|
|
139
143
|
envFilePath?: string;
|
|
140
144
|
envFileCopied?: boolean;
|
|
141
145
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
|
@@ -144,9 +148,11 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
144
148
|
skipHooks?: boolean;
|
|
145
149
|
}, {
|
|
146
150
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
147
|
-
defaultBackend?: "shell";
|
|
148
|
-
defaultMaxIterations?: number;
|
|
149
151
|
defaultModel?: string;
|
|
152
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
153
|
+
defaultMaxIterations?: number;
|
|
154
|
+
defaultBackend?: "shell";
|
|
155
|
+
mainTask?: string;
|
|
150
156
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
151
157
|
logFile?: string;
|
|
152
158
|
verbose?: unknown;
|
|
@@ -161,7 +167,6 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
161
167
|
headlessMode?: boolean;
|
|
162
168
|
workingDirectory?: string;
|
|
163
169
|
sessionDirectory?: string;
|
|
164
|
-
mainTask?: string;
|
|
165
170
|
envFilePath?: string;
|
|
166
171
|
envFileCopied?: boolean;
|
|
167
172
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
|
@@ -732,6 +737,8 @@ interface ExecutionRequest {
|
|
|
732
737
|
readonly continueConversation?: boolean;
|
|
733
738
|
/** Extended thinking level (forwarded to shell backend --thinking flag) */
|
|
734
739
|
readonly thinking?: string;
|
|
740
|
+
/** Run Pi subagent in interactive live mode (forwarded to shell backend --live flag) */
|
|
741
|
+
readonly live?: boolean;
|
|
735
742
|
}
|
|
736
743
|
/**
|
|
737
744
|
* Execution result interface for completed executions
|
|
@@ -1188,6 +1195,7 @@ declare function createExecutionRequest(options: {
|
|
|
1188
1195
|
resume?: string;
|
|
1189
1196
|
continueConversation?: boolean;
|
|
1190
1197
|
thinking?: string;
|
|
1198
|
+
live?: boolean;
|
|
1191
1199
|
}): ExecutionRequest;
|
|
1192
1200
|
|
|
1193
1201
|
/** Session metadata */
|
|
@@ -2026,6 +2034,7 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2026
2034
|
defaultBackend: z.ZodEnum<["shell"]>;
|
|
2027
2035
|
defaultMaxIterations: z.ZodNumber;
|
|
2028
2036
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
2037
|
+
defaultModels: z.ZodOptional<z.ZodRecord<z.ZodEnum<["claude", "cursor", "codex", "gemini", "pi"]>, z.ZodString>>;
|
|
2029
2038
|
mainTask: z.ZodOptional<z.ZodString>;
|
|
2030
2039
|
logLevel: z.ZodEnum<["error", "warn", "info", "debug", "trace"]>;
|
|
2031
2040
|
logFile: z.ZodOptional<z.ZodString>;
|
|
@@ -2053,9 +2062,11 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2053
2062
|
skipHooks: z.ZodOptional<z.ZodBoolean>;
|
|
2054
2063
|
}, "strict", z.ZodTypeAny, {
|
|
2055
2064
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
2056
|
-
defaultBackend?: "shell";
|
|
2057
|
-
defaultMaxIterations?: number;
|
|
2058
2065
|
defaultModel?: string;
|
|
2066
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
2067
|
+
defaultMaxIterations?: number;
|
|
2068
|
+
defaultBackend?: "shell";
|
|
2069
|
+
mainTask?: string;
|
|
2059
2070
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
2060
2071
|
logFile?: string;
|
|
2061
2072
|
verbose?: number;
|
|
@@ -2070,7 +2081,6 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2070
2081
|
headlessMode?: boolean;
|
|
2071
2082
|
workingDirectory?: string;
|
|
2072
2083
|
sessionDirectory?: string;
|
|
2073
|
-
mainTask?: string;
|
|
2074
2084
|
envFilePath?: string;
|
|
2075
2085
|
envFileCopied?: boolean;
|
|
2076
2086
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
|
@@ -2079,9 +2089,11 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2079
2089
|
skipHooks?: boolean;
|
|
2080
2090
|
}, {
|
|
2081
2091
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
2082
|
-
defaultBackend?: "shell";
|
|
2083
|
-
defaultMaxIterations?: number;
|
|
2084
2092
|
defaultModel?: string;
|
|
2093
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
2094
|
+
defaultMaxIterations?: number;
|
|
2095
|
+
defaultBackend?: "shell";
|
|
2096
|
+
mainTask?: string;
|
|
2085
2097
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
2086
2098
|
logFile?: string;
|
|
2087
2099
|
verbose?: unknown;
|
|
@@ -2096,7 +2108,6 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2096
2108
|
headlessMode?: boolean;
|
|
2097
2109
|
workingDirectory?: string;
|
|
2098
2110
|
sessionDirectory?: string;
|
|
2099
|
-
mainTask?: string;
|
|
2100
2111
|
envFilePath?: string;
|
|
2101
2112
|
envFileCopied?: boolean;
|
|
2102
2113
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ interface JunoTaskConfig {
|
|
|
19
19
|
defaultSubagent: SubagentType;
|
|
20
20
|
defaultMaxIterations: number;
|
|
21
21
|
defaultModel?: string;
|
|
22
|
+
/** Optional per-subagent default model overrides */
|
|
23
|
+
defaultModels?: Partial<Record<SubagentType, string>>;
|
|
22
24
|
defaultBackend: BackendType;
|
|
23
25
|
mainTask?: string;
|
|
24
26
|
logLevel: LogLevel;
|
|
@@ -91,6 +93,7 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
91
93
|
defaultBackend: z.ZodEnum<["shell"]>;
|
|
92
94
|
defaultMaxIterations: z.ZodNumber;
|
|
93
95
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
96
|
+
defaultModels: z.ZodOptional<z.ZodRecord<z.ZodEnum<["claude", "cursor", "codex", "gemini", "pi"]>, z.ZodString>>;
|
|
94
97
|
mainTask: z.ZodOptional<z.ZodString>;
|
|
95
98
|
logLevel: z.ZodEnum<["error", "warn", "info", "debug", "trace"]>;
|
|
96
99
|
logFile: z.ZodOptional<z.ZodString>;
|
|
@@ -118,9 +121,11 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
118
121
|
skipHooks: z.ZodOptional<z.ZodBoolean>;
|
|
119
122
|
}, "strict", z.ZodTypeAny, {
|
|
120
123
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
121
|
-
defaultBackend?: "shell";
|
|
122
|
-
defaultMaxIterations?: number;
|
|
123
124
|
defaultModel?: string;
|
|
125
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
126
|
+
defaultMaxIterations?: number;
|
|
127
|
+
defaultBackend?: "shell";
|
|
128
|
+
mainTask?: string;
|
|
124
129
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
125
130
|
logFile?: string;
|
|
126
131
|
verbose?: number;
|
|
@@ -135,7 +140,6 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
135
140
|
headlessMode?: boolean;
|
|
136
141
|
workingDirectory?: string;
|
|
137
142
|
sessionDirectory?: string;
|
|
138
|
-
mainTask?: string;
|
|
139
143
|
envFilePath?: string;
|
|
140
144
|
envFileCopied?: boolean;
|
|
141
145
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
|
@@ -144,9 +148,11 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
144
148
|
skipHooks?: boolean;
|
|
145
149
|
}, {
|
|
146
150
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
147
|
-
defaultBackend?: "shell";
|
|
148
|
-
defaultMaxIterations?: number;
|
|
149
151
|
defaultModel?: string;
|
|
152
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
153
|
+
defaultMaxIterations?: number;
|
|
154
|
+
defaultBackend?: "shell";
|
|
155
|
+
mainTask?: string;
|
|
150
156
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
151
157
|
logFile?: string;
|
|
152
158
|
verbose?: unknown;
|
|
@@ -161,7 +167,6 @@ declare const JunoTaskConfigSchema: z.ZodObject<{
|
|
|
161
167
|
headlessMode?: boolean;
|
|
162
168
|
workingDirectory?: string;
|
|
163
169
|
sessionDirectory?: string;
|
|
164
|
-
mainTask?: string;
|
|
165
170
|
envFilePath?: string;
|
|
166
171
|
envFileCopied?: boolean;
|
|
167
172
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
|
@@ -732,6 +737,8 @@ interface ExecutionRequest {
|
|
|
732
737
|
readonly continueConversation?: boolean;
|
|
733
738
|
/** Extended thinking level (forwarded to shell backend --thinking flag) */
|
|
734
739
|
readonly thinking?: string;
|
|
740
|
+
/** Run Pi subagent in interactive live mode (forwarded to shell backend --live flag) */
|
|
741
|
+
readonly live?: boolean;
|
|
735
742
|
}
|
|
736
743
|
/**
|
|
737
744
|
* Execution result interface for completed executions
|
|
@@ -1188,6 +1195,7 @@ declare function createExecutionRequest(options: {
|
|
|
1188
1195
|
resume?: string;
|
|
1189
1196
|
continueConversation?: boolean;
|
|
1190
1197
|
thinking?: string;
|
|
1198
|
+
live?: boolean;
|
|
1191
1199
|
}): ExecutionRequest;
|
|
1192
1200
|
|
|
1193
1201
|
/** Session metadata */
|
|
@@ -2026,6 +2034,7 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2026
2034
|
defaultBackend: z.ZodEnum<["shell"]>;
|
|
2027
2035
|
defaultMaxIterations: z.ZodNumber;
|
|
2028
2036
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
2037
|
+
defaultModels: z.ZodOptional<z.ZodRecord<z.ZodEnum<["claude", "cursor", "codex", "gemini", "pi"]>, z.ZodString>>;
|
|
2029
2038
|
mainTask: z.ZodOptional<z.ZodString>;
|
|
2030
2039
|
logLevel: z.ZodEnum<["error", "warn", "info", "debug", "trace"]>;
|
|
2031
2040
|
logFile: z.ZodOptional<z.ZodString>;
|
|
@@ -2053,9 +2062,11 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2053
2062
|
skipHooks: z.ZodOptional<z.ZodBoolean>;
|
|
2054
2063
|
}, "strict", z.ZodTypeAny, {
|
|
2055
2064
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
2056
|
-
defaultBackend?: "shell";
|
|
2057
|
-
defaultMaxIterations?: number;
|
|
2058
2065
|
defaultModel?: string;
|
|
2066
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
2067
|
+
defaultMaxIterations?: number;
|
|
2068
|
+
defaultBackend?: "shell";
|
|
2069
|
+
mainTask?: string;
|
|
2059
2070
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
2060
2071
|
logFile?: string;
|
|
2061
2072
|
verbose?: number;
|
|
@@ -2070,7 +2081,6 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2070
2081
|
headlessMode?: boolean;
|
|
2071
2082
|
workingDirectory?: string;
|
|
2072
2083
|
sessionDirectory?: string;
|
|
2073
|
-
mainTask?: string;
|
|
2074
2084
|
envFilePath?: string;
|
|
2075
2085
|
envFileCopied?: boolean;
|
|
2076
2086
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
|
@@ -2079,9 +2089,11 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2079
2089
|
skipHooks?: boolean;
|
|
2080
2090
|
}, {
|
|
2081
2091
|
defaultSubagent?: "claude" | "cursor" | "codex" | "gemini" | "pi";
|
|
2082
|
-
defaultBackend?: "shell";
|
|
2083
|
-
defaultMaxIterations?: number;
|
|
2084
2092
|
defaultModel?: string;
|
|
2093
|
+
defaultModels?: Partial<Record<"claude" | "cursor" | "codex" | "gemini" | "pi", string>>;
|
|
2094
|
+
defaultMaxIterations?: number;
|
|
2095
|
+
defaultBackend?: "shell";
|
|
2096
|
+
mainTask?: string;
|
|
2085
2097
|
logLevel?: "error" | "warn" | "info" | "debug" | "trace";
|
|
2086
2098
|
logFile?: string;
|
|
2087
2099
|
verbose?: unknown;
|
|
@@ -2096,7 +2108,6 @@ declare const ConfigValidationSchema: z.ZodObject<{
|
|
|
2096
2108
|
headlessMode?: boolean;
|
|
2097
2109
|
workingDirectory?: string;
|
|
2098
2110
|
sessionDirectory?: string;
|
|
2099
|
-
mainTask?: string;
|
|
2100
2111
|
envFilePath?: string;
|
|
2101
2112
|
envFileCopied?: boolean;
|
|
2102
2113
|
hooks?: Partial<Record<"START_RUN" | "START_ITERATION" | "END_ITERATION" | "END_RUN" | "ON_STALE", {
|
package/dist/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var __export = (target, all) => {
|
|
|
62
62
|
exports.version = void 0;
|
|
63
63
|
var init_version = __esm({
|
|
64
64
|
"src/version.ts"() {
|
|
65
|
-
exports.version = "1.0.
|
|
65
|
+
exports.version = "1.0.51";
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
|
|
@@ -1025,6 +1025,9 @@ var init_shell_backend = __esm({
|
|
|
1025
1025
|
if (isPython && subagentType === "pi" && request.arguments?.project_path) {
|
|
1026
1026
|
args.push("--cd", String(request.arguments.project_path));
|
|
1027
1027
|
}
|
|
1028
|
+
if (isPython && subagentType === "pi" && request.arguments?.live === true) {
|
|
1029
|
+
args.push("--live");
|
|
1030
|
+
}
|
|
1028
1031
|
if (isPython && this.config.debug) {
|
|
1029
1032
|
args.push("--verbose");
|
|
1030
1033
|
}
|
|
@@ -1042,12 +1045,19 @@ var init_shell_backend = __esm({
|
|
|
1042
1045
|
`Environment variables: ${Object.keys(env2).filter((k) => k.startsWith("JUNO_") || k.startsWith("PI_")).join(", ")}`
|
|
1043
1046
|
);
|
|
1044
1047
|
}
|
|
1048
|
+
const isPiLiveMode = isPython && subagentType === "pi" && request.arguments?.live === true;
|
|
1049
|
+
const shouldAttachLiveTerminal = isPiLiveMode && process.stdout.isTTY === true;
|
|
1050
|
+
if (this.config.debug && isPiLiveMode) {
|
|
1051
|
+
engineLogger.debug(
|
|
1052
|
+
`Pi live mode stdio: ${shouldAttachLiveTerminal ? "inherit (interactive TTY or stdout-tty fallback)" : "pipe (headless/non-TTY)"}`
|
|
1053
|
+
);
|
|
1054
|
+
}
|
|
1045
1055
|
const child = child_process.spawn(command, args, {
|
|
1046
1056
|
env: env2,
|
|
1047
1057
|
cwd: this.config.workingDirectory,
|
|
1048
|
-
stdio: ["pipe", "pipe", "pipe"]
|
|
1058
|
+
stdio: shouldAttachLiveTerminal ? "inherit" : ["pipe", "pipe", "pipe"]
|
|
1049
1059
|
});
|
|
1050
|
-
if (child.stdin) {
|
|
1060
|
+
if (!shouldAttachLiveTerminal && child.stdin) {
|
|
1051
1061
|
child.stdin.end();
|
|
1052
1062
|
}
|
|
1053
1063
|
let stdout2 = "";
|
|
@@ -1735,6 +1745,16 @@ function getDefaultHooksJson(indent = 2) {
|
|
|
1735
1745
|
return JSON.stringify(DEFAULT_HOOKS, null, indent);
|
|
1736
1746
|
}
|
|
1737
1747
|
|
|
1748
|
+
// src/core/subagent-models.ts
|
|
1749
|
+
init_version();
|
|
1750
|
+
var SUBAGENT_DEFAULT_MODELS = {
|
|
1751
|
+
claude: ":sonnet",
|
|
1752
|
+
codex: ":codex",
|
|
1753
|
+
gemini: ":pro",
|
|
1754
|
+
cursor: "auto",
|
|
1755
|
+
pi: ":pi"
|
|
1756
|
+
};
|
|
1757
|
+
|
|
1738
1758
|
// src/core/config.ts
|
|
1739
1759
|
var ENV_VAR_MAPPING = {
|
|
1740
1760
|
// Core settings
|
|
@@ -1784,6 +1804,7 @@ var JunoTaskConfigSchema = zod.z.object({
|
|
|
1784
1804
|
defaultBackend: BackendTypeSchema.describe("Default backend to use for task execution"),
|
|
1785
1805
|
defaultMaxIterations: zod.z.number().int().min(1).max(1e3).describe("Default maximum number of iterations for task execution"),
|
|
1786
1806
|
defaultModel: zod.z.string().optional().describe("Default model to use for the subagent"),
|
|
1807
|
+
defaultModels: zod.z.record(SubagentTypeSchema, zod.z.string()).optional().describe("Optional per-subagent default model overrides"),
|
|
1787
1808
|
// Project metadata
|
|
1788
1809
|
mainTask: zod.z.string().optional().describe("Main task objective for the project"),
|
|
1789
1810
|
// Logging settings
|
|
@@ -1839,6 +1860,7 @@ var DEFAULT_CONFIG = {
|
|
|
1839
1860
|
defaultSubagent: "claude",
|
|
1840
1861
|
defaultBackend: "shell",
|
|
1841
1862
|
defaultMaxIterations: 1,
|
|
1863
|
+
defaultModels: { ...SUBAGENT_DEFAULT_MODELS },
|
|
1842
1864
|
// Logging settings
|
|
1843
1865
|
logLevel: "info",
|
|
1844
1866
|
verbose: 1,
|
|
@@ -2154,7 +2176,7 @@ function parseEnvFileContent(content) {
|
|
|
2154
2176
|
const quote = value[0];
|
|
2155
2177
|
value = value.slice(1, -1);
|
|
2156
2178
|
if (quote === '"') {
|
|
2157
|
-
value = value.replace(/\\n/g, "\n").replace(/\\r/g, "\r").replace(/\\t/g, " ");
|
|
2179
|
+
value = value.replace(/\\n/g, "\n").replace(/\\r/g, "\r").replace(/\\t/g, " ").replace(/\\"/g, '"').replace(/\\\\/g, "\\");
|
|
2158
2180
|
}
|
|
2159
2181
|
} else {
|
|
2160
2182
|
const inlineCommentIndex = value.indexOf(" #");
|
|
@@ -2243,13 +2265,16 @@ async function ensureHooksConfig(baseDir) {
|
|
|
2243
2265
|
}
|
|
2244
2266
|
if (!existingConfig.defaultModel) {
|
|
2245
2267
|
const subagent = existingConfig.defaultSubagent || "claude";
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
existingConfig.defaultModel
|
|
2268
|
+
existingConfig.defaultModel = SUBAGENT_DEFAULT_MODELS[subagent] || SUBAGENT_DEFAULT_MODELS.claude;
|
|
2269
|
+
needsUpdate = true;
|
|
2270
|
+
}
|
|
2271
|
+
if (!existingConfig.defaultModels || typeof existingConfig.defaultModels !== "object" || Array.isArray(existingConfig.defaultModels)) {
|
|
2272
|
+
const baseDefaults = { ...SUBAGENT_DEFAULT_MODELS };
|
|
2273
|
+
const subagent = existingConfig.defaultSubagent || "claude";
|
|
2274
|
+
if (typeof existingConfig.defaultModel === "string") {
|
|
2275
|
+
baseDefaults[subagent] = existingConfig.defaultModel;
|
|
2276
|
+
}
|
|
2277
|
+
existingConfig.defaultModels = baseDefaults;
|
|
2253
2278
|
needsUpdate = true;
|
|
2254
2279
|
}
|
|
2255
2280
|
if (existingConfig.defaultMaxIterations === 50) {
|
|
@@ -3122,6 +3147,7 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
3122
3147
|
continueConversation: context.request.continueConversation
|
|
3123
3148
|
},
|
|
3124
3149
|
...context.request.thinking !== void 0 && { thinking: context.request.thinking },
|
|
3150
|
+
...context.request.live !== void 0 && { live: context.request.live },
|
|
3125
3151
|
iteration: iterationNumber
|
|
3126
3152
|
},
|
|
3127
3153
|
timeout: context.request.timeoutMs || this.engineConfig.config.mcpTimeout,
|
|
@@ -3717,6 +3743,9 @@ function createExecutionRequest(options) {
|
|
|
3717
3743
|
if (options.thinking !== void 0) {
|
|
3718
3744
|
result.thinking = options.thinking;
|
|
3719
3745
|
}
|
|
3746
|
+
if (options.live !== void 0) {
|
|
3747
|
+
result.live = options.live;
|
|
3748
|
+
}
|
|
3720
3749
|
return result;
|
|
3721
3750
|
}
|
|
3722
3751
|
|