juno-code 1.0.31 → 1.0.32
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/dist/bin/cli.js +43 -4
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +43 -4
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -3
- package/dist/index.mjs.map +1 -1
- package/dist/templates/services/claude.py +14 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -75,7 +75,7 @@ var __export = (target, all) => {
|
|
|
75
75
|
exports.version = void 0;
|
|
76
76
|
var init_version = __esm({
|
|
77
77
|
"src/version.ts"() {
|
|
78
|
-
exports.version = "1.0.
|
|
78
|
+
exports.version = "1.0.32";
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
function isHeadlessEnvironment() {
|
|
@@ -4468,6 +4468,8 @@ var ENV_VAR_MAPPING = {
|
|
|
4468
4468
|
JUNO_CODE_MCP_RETRIES: "mcpRetries",
|
|
4469
4469
|
JUNO_CODE_MCP_SERVER_PATH: "mcpServerPath",
|
|
4470
4470
|
JUNO_CODE_MCP_SERVER_NAME: "mcpServerName",
|
|
4471
|
+
// Hook settings
|
|
4472
|
+
JUNO_CODE_HOOK_COMMAND_TIMEOUT: "hookCommandTimeout",
|
|
4471
4473
|
// TUI settings
|
|
4472
4474
|
JUNO_CODE_INTERACTIVE: "interactive",
|
|
4473
4475
|
JUNO_CODE_HEADLESS_MODE: "headlessMode",
|
|
@@ -4491,6 +4493,8 @@ var LEGACY_ENV_VAR_MAPPING = {
|
|
|
4491
4493
|
JUNO_TASK_MCP_RETRIES: "mcpRetries",
|
|
4492
4494
|
JUNO_TASK_MCP_SERVER_PATH: "mcpServerPath",
|
|
4493
4495
|
JUNO_TASK_MCP_SERVER_NAME: "mcpServerName",
|
|
4496
|
+
// Hook settings
|
|
4497
|
+
JUNO_TASK_HOOK_COMMAND_TIMEOUT: "hookCommandTimeout",
|
|
4494
4498
|
// TUI settings
|
|
4495
4499
|
JUNO_TASK_INTERACTIVE: "interactive",
|
|
4496
4500
|
JUNO_TASK_HEADLESS_MODE: "headlessMode",
|
|
@@ -4522,6 +4526,8 @@ var JunoTaskConfigSchema = zod.z.object({
|
|
|
4522
4526
|
mcpRetries: zod.z.number().int().min(0).max(10).describe("Number of retries for MCP operations"),
|
|
4523
4527
|
mcpServerPath: zod.z.string().optional().describe("Path to MCP server executable (auto-discovered if not specified)"),
|
|
4524
4528
|
mcpServerName: zod.z.string().optional().describe('Named MCP server to connect to (e.g., "roundtable-ai")'),
|
|
4529
|
+
// Hook settings
|
|
4530
|
+
hookCommandTimeout: zod.z.number().int().min(1e3).max(36e5).optional().describe("Timeout for individual hook commands in milliseconds (default: 300000 = 5 minutes)"),
|
|
4525
4531
|
// TUI settings
|
|
4526
4532
|
interactive: zod.z.boolean().describe("Enable interactive mode"),
|
|
4527
4533
|
headlessMode: zod.z.boolean().describe("Enable headless mode (no TUI)"),
|
|
@@ -6582,7 +6588,8 @@ var hookLogger = logger.child("SYSTEM" /* SYSTEM */, { component: "hooks" });
|
|
|
6582
6588
|
async function executeHook(hookType, hooks, context = {}, options = {}) {
|
|
6583
6589
|
const startTime = Date.now();
|
|
6584
6590
|
const {
|
|
6585
|
-
commandTimeout =
|
|
6591
|
+
commandTimeout = 3e5,
|
|
6592
|
+
// 5 minutes default (increased from 30s to support long-running hook scripts)
|
|
6586
6593
|
env: env2 = {},
|
|
6587
6594
|
continueOnError = true,
|
|
6588
6595
|
logContext = "SYSTEM" /* SYSTEM */
|
|
@@ -6657,8 +6664,12 @@ async function executeHook(hookType, hooks, context = {}, options = {}) {
|
|
|
6657
6664
|
env: execEnv,
|
|
6658
6665
|
// Capture both stdout and stderr
|
|
6659
6666
|
all: true,
|
|
6660
|
-
reject: false
|
|
6667
|
+
reject: false,
|
|
6661
6668
|
// Don't throw on non-zero exit codes
|
|
6669
|
+
// Use input: '' to provide empty stdin and properly close it (sends EOF)
|
|
6670
|
+
// This prevents commands from hanging waiting for stdin while still
|
|
6671
|
+
// allowing internal pipe operations to work correctly
|
|
6672
|
+
input: ""
|
|
6662
6673
|
});
|
|
6663
6674
|
const duration = Date.now() - commandStartTime;
|
|
6664
6675
|
const success2 = result2.exitCode === 0;
|
|
@@ -7179,6 +7190,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7179
7190
|
maxIterations: context.request.maxIterations,
|
|
7180
7191
|
instruction: context.request.instruction
|
|
7181
7192
|
}
|
|
7193
|
+
}, {
|
|
7194
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7182
7195
|
});
|
|
7183
7196
|
}
|
|
7184
7197
|
} catch (error) {
|
|
@@ -7211,6 +7224,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7211
7224
|
duration: context.endTime ? context.endTime.getTime() - context.startTime.getTime() : 0,
|
|
7212
7225
|
success: context.status === "completed" /* COMPLETED */
|
|
7213
7226
|
}
|
|
7227
|
+
}, {
|
|
7228
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7214
7229
|
});
|
|
7215
7230
|
}
|
|
7216
7231
|
} catch (error) {
|
|
@@ -7262,6 +7277,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7262
7277
|
maxIterations: context.request.maxIterations,
|
|
7263
7278
|
subagent: context.request.subagent
|
|
7264
7279
|
}
|
|
7280
|
+
}, {
|
|
7281
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7265
7282
|
});
|
|
7266
7283
|
}
|
|
7267
7284
|
} catch (error) {
|
|
@@ -7279,6 +7296,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7279
7296
|
...context.request.allowedTools !== void 0 && { allowedTools: context.request.allowedTools },
|
|
7280
7297
|
...context.request.appendAllowedTools !== void 0 && { appendAllowedTools: context.request.appendAllowedTools },
|
|
7281
7298
|
...context.request.disallowedTools !== void 0 && { disallowedTools: context.request.disallowedTools },
|
|
7299
|
+
...context.request.resume !== void 0 && { resume: context.request.resume },
|
|
7300
|
+
...context.request.continueConversation !== void 0 && { continueConversation: context.request.continueConversation },
|
|
7282
7301
|
iteration: iterationNumber
|
|
7283
7302
|
},
|
|
7284
7303
|
timeout: context.request.timeoutMs || this.engineConfig.config.mcpTimeout,
|
|
@@ -7326,6 +7345,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7326
7345
|
duration: iterationResult.duration,
|
|
7327
7346
|
toolCallStatus: iterationResult.toolResult.status
|
|
7328
7347
|
}
|
|
7348
|
+
}, {
|
|
7349
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7329
7350
|
});
|
|
7330
7351
|
}
|
|
7331
7352
|
} catch (error) {
|
|
@@ -7374,6 +7395,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7374
7395
|
error: mcpError.message,
|
|
7375
7396
|
errorType: mcpError.type
|
|
7376
7397
|
}
|
|
7398
|
+
}, {
|
|
7399
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7377
7400
|
});
|
|
7378
7401
|
}
|
|
7379
7402
|
} catch (hookError) {
|
|
@@ -7730,6 +7753,12 @@ function createExecutionRequest(options) {
|
|
|
7730
7753
|
if (options.mcpServerName !== void 0) {
|
|
7731
7754
|
result.mcpServerName = options.mcpServerName;
|
|
7732
7755
|
}
|
|
7756
|
+
if (options.resume !== void 0) {
|
|
7757
|
+
result.resume = options.resume;
|
|
7758
|
+
}
|
|
7759
|
+
if (options.continueConversation !== void 0) {
|
|
7760
|
+
result.continueConversation = options.continueConversation;
|
|
7761
|
+
}
|
|
7733
7762
|
return result;
|
|
7734
7763
|
}
|
|
7735
7764
|
|