juno-code 1.0.30 → 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 +73 -12
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +73 -12
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/index.js +40 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +40 -3
- package/dist/index.mjs.map +1 -1
- package/dist/templates/services/claude.py +77 -17
- 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) {
|
|
@@ -7276,7 +7293,11 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7276
7293
|
...context.request.model !== void 0 && { model: context.request.model },
|
|
7277
7294
|
...context.request.agents !== void 0 && { agents: context.request.agents },
|
|
7278
7295
|
...context.request.tools !== void 0 && { tools: context.request.tools },
|
|
7296
|
+
...context.request.allowedTools !== void 0 && { allowedTools: context.request.allowedTools },
|
|
7297
|
+
...context.request.appendAllowedTools !== void 0 && { appendAllowedTools: context.request.appendAllowedTools },
|
|
7279
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 },
|
|
7280
7301
|
iteration: iterationNumber
|
|
7281
7302
|
},
|
|
7282
7303
|
timeout: context.request.timeoutMs || this.engineConfig.config.mcpTimeout,
|
|
@@ -7324,6 +7345,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7324
7345
|
duration: iterationResult.duration,
|
|
7325
7346
|
toolCallStatus: iterationResult.toolResult.status
|
|
7326
7347
|
}
|
|
7348
|
+
}, {
|
|
7349
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7327
7350
|
});
|
|
7328
7351
|
}
|
|
7329
7352
|
} catch (error) {
|
|
@@ -7372,6 +7395,8 @@ var ExecutionEngine = class extends events.EventEmitter {
|
|
|
7372
7395
|
error: mcpError.message,
|
|
7373
7396
|
errorType: mcpError.type
|
|
7374
7397
|
}
|
|
7398
|
+
}, {
|
|
7399
|
+
commandTimeout: this.engineConfig.config.hookCommandTimeout
|
|
7375
7400
|
});
|
|
7376
7401
|
}
|
|
7377
7402
|
} catch (hookError) {
|
|
@@ -7716,12 +7741,24 @@ function createExecutionRequest(options) {
|
|
|
7716
7741
|
if (options.tools !== void 0) {
|
|
7717
7742
|
result.tools = options.tools;
|
|
7718
7743
|
}
|
|
7744
|
+
if (options.allowedTools !== void 0) {
|
|
7745
|
+
result.allowedTools = options.allowedTools;
|
|
7746
|
+
}
|
|
7747
|
+
if (options.appendAllowedTools !== void 0) {
|
|
7748
|
+
result.appendAllowedTools = options.appendAllowedTools;
|
|
7749
|
+
}
|
|
7719
7750
|
if (options.disallowedTools !== void 0) {
|
|
7720
7751
|
result.disallowedTools = options.disallowedTools;
|
|
7721
7752
|
}
|
|
7722
7753
|
if (options.mcpServerName !== void 0) {
|
|
7723
7754
|
result.mcpServerName = options.mcpServerName;
|
|
7724
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
|
+
}
|
|
7725
7762
|
return result;
|
|
7726
7763
|
}
|
|
7727
7764
|
|