@orchagent/cli 0.3.41 → 0.3.42
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/commands/init.js +1 -2
- package/dist/commands/publish.js +11 -0
- package/dist/commands/run.js +7 -0
- package/dist/lib/bundle.js +10 -8
- package/package.json +1 -1
package/dist/commands/init.js
CHANGED
|
@@ -110,7 +110,7 @@ ${runExample}
|
|
|
110
110
|
|
|
111
111
|
| Field | Type | Description |
|
|
112
112
|
|-------|------|-------------|
|
|
113
|
-
|
|
|
113
|
+
| \`${type === 'agentic' ? 'task' : 'input'}\` | string | ${type === 'agentic' ? 'The task to perform' : 'The input to process'} |
|
|
114
114
|
|
|
115
115
|
## Output
|
|
116
116
|
|
|
@@ -125,7 +125,6 @@ const AGENTIC_MANIFEST_TEMPLATE = `{
|
|
|
125
125
|
"type": "agentic",
|
|
126
126
|
"supported_providers": ["anthropic"],
|
|
127
127
|
"max_turns": 25,
|
|
128
|
-
"timeout_seconds": 300,
|
|
129
128
|
"custom_tools": [
|
|
130
129
|
{
|
|
131
130
|
"name": "run_tests",
|
package/dist/commands/publish.js
CHANGED
|
@@ -349,11 +349,21 @@ function registerPublishCommand(program) {
|
|
|
349
349
|
if (manifest.type === 'agentic') {
|
|
350
350
|
// Validate custom_tools format
|
|
351
351
|
if (manifest.custom_tools) {
|
|
352
|
+
const reservedNames = new Set(['bash', 'read_file', 'write_file', 'list_files', 'submit_result']);
|
|
353
|
+
const seenNames = new Set();
|
|
352
354
|
for (const tool of manifest.custom_tools) {
|
|
353
355
|
if (!tool.name || !tool.command) {
|
|
354
356
|
throw new errors_1.CliError(`Invalid custom_tool: each tool must have 'name' and 'command' fields.\n` +
|
|
355
357
|
`Found: ${JSON.stringify(tool)}`);
|
|
356
358
|
}
|
|
359
|
+
if (reservedNames.has(tool.name)) {
|
|
360
|
+
throw new errors_1.CliError(`Custom tool '${tool.name}' conflicts with a built-in tool name.\n` +
|
|
361
|
+
`Reserved names: ${[...reservedNames].join(', ')}`);
|
|
362
|
+
}
|
|
363
|
+
if (seenNames.has(tool.name)) {
|
|
364
|
+
throw new errors_1.CliError(`Duplicate custom tool name: '${tool.name}'`);
|
|
365
|
+
}
|
|
366
|
+
seenNames.add(tool.name);
|
|
357
367
|
}
|
|
358
368
|
}
|
|
359
369
|
// Validate max_turns
|
|
@@ -620,6 +630,7 @@ function registerPublishCommand(program) {
|
|
|
620
630
|
entrypoint: manifest.type === 'agentic' ? undefined : manifest.entrypoint,
|
|
621
631
|
exclude: manifest.bundle?.exclude,
|
|
622
632
|
include: includePatterns.length > 0 ? includePatterns : undefined,
|
|
633
|
+
skipEntrypointCheck: manifest.type === 'agentic',
|
|
623
634
|
});
|
|
624
635
|
process.stdout.write(` Created bundle: ${bundleResult.fileCount} files, ${(bundleResult.sizeBytes / 1024).toFixed(1)}KB\n`);
|
|
625
636
|
// Validate bundle size
|
package/dist/commands/run.js
CHANGED
|
@@ -903,6 +903,13 @@ Paid Agents:
|
|
|
903
903
|
` Install for AI tools: orchagent skill install ${org}/${parsed.agent}\n` +
|
|
904
904
|
` Use with an agent: orchagent run <agent> --skills ${org}/${parsed.agent}`);
|
|
905
905
|
}
|
|
906
|
+
// Agentic agents require a sandbox with tool use — cannot run locally
|
|
907
|
+
if (agentData.type === 'agentic') {
|
|
908
|
+
throw new errors_1.CliError('Agentic agents cannot be run locally.\n\n' +
|
|
909
|
+
'Agentic agents require a sandbox environment with tool use capabilities.\n\n' +
|
|
910
|
+
'Use server execution instead:\n' +
|
|
911
|
+
` orchagent call ${org}/${parsed.agent}@${parsed.version} --data '{"task": "..."}'`);
|
|
912
|
+
}
|
|
906
913
|
// Check for dependencies (orchestrator agents)
|
|
907
914
|
if (agentData.dependencies && agentData.dependencies.length > 0) {
|
|
908
915
|
const depStatuses = await (0, spinner_1.withSpinner)('Checking dependencies...', async () => checkDependencies(resolved, agentData.dependencies), { successText: `Found ${agentData.dependencies.length} dependencies` });
|
package/dist/lib/bundle.js
CHANGED
|
@@ -119,14 +119,16 @@ async function createCodeBundle(sourceDir, outputPath, options = {}) {
|
|
|
119
119
|
if (!stat.isDirectory()) {
|
|
120
120
|
throw new Error(`Source path is not a directory: ${sourceDir}`);
|
|
121
121
|
}
|
|
122
|
-
// Verify entrypoint exists if specified
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
// Verify entrypoint exists if specified (skip for agentic agents that have no code)
|
|
123
|
+
if (!options.skipEntrypointCheck) {
|
|
124
|
+
const entrypoint = options.entrypoint || 'main.py';
|
|
125
|
+
const entrypointPath = path_1.default.join(sourceDir, entrypoint);
|
|
126
|
+
try {
|
|
127
|
+
await promises_1.default.access(entrypointPath);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
throw new Error(`Entrypoint file not found: ${entrypoint}`);
|
|
131
|
+
}
|
|
130
132
|
}
|
|
131
133
|
// Create output directory if needed
|
|
132
134
|
const outputDir = path_1.default.dirname(outputPath);
|