0101-agents 0.1.6 → 0.1.7
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 +12 -0
- package/bin/cli.js +45 -5
- package/package.json +1 -1
package/README.md
ADDED
package/bin/cli.js
CHANGED
|
@@ -353,9 +353,46 @@ async function cmdStart(args) {
|
|
|
353
353
|
// Artifacts can declare how `start` launches via manifest.start. The runner
|
|
354
354
|
// sets "npm start"; agents leave it unset and fall through to launching
|
|
355
355
|
// Claude Code below.
|
|
356
|
+
//
|
|
357
|
+
// For the runner specifically we accept an optional `[slug] [cli]` so
|
|
358
|
+
// power users can run multiple bots in parallel terminals without touching
|
|
359
|
+
// .env. The runner derives STATE_DIR from AGENT_DIR, so per-agent state is
|
|
360
|
+
// automatic — we only need to override AGENT_DIR here.
|
|
361
|
+
//
|
|
362
|
+
// start runner → npm start (Telegram, AGENT_DIR from .env)
|
|
363
|
+
// start runner cli → npm start -- --cli (CLI, AGENT_DIR from .env)
|
|
364
|
+
// start runner marketer → npm start (Telegram, AGENT_DIR=~/0101/marketer)
|
|
365
|
+
// start runner marketer cli → npm start -- --cli (CLI, AGENT_DIR=~/0101/marketer)
|
|
366
|
+
// start runner --cli → same as `start runner cli` (long-form flag)
|
|
367
|
+
// start runner -- --cli → same (explicit separator)
|
|
356
368
|
const startCmd = readManifest(agent).start
|
|
357
369
|
if (startCmd) {
|
|
358
|
-
|
|
370
|
+
let extra = args.slice(1)
|
|
371
|
+
if (extra[0] === '--') extra = extra.slice(1)
|
|
372
|
+
|
|
373
|
+
// Optional [slug] [mode] positionals — `cli` is a reserved mode keyword
|
|
374
|
+
// (no real agent will ever be named "cli"). Anything else that doesn't
|
|
375
|
+
// start with `-` is treated as a slug. Verified installed before we spawn.
|
|
376
|
+
let slug = null
|
|
377
|
+
if (extra[0] && extra[0] !== 'cli' && !extra[0].startsWith('-')) {
|
|
378
|
+
slug = extra.shift()
|
|
379
|
+
if (!existsSync(agentInstallDir(slug))) {
|
|
380
|
+
die(`${slug} is not installed. Try: 0101-agents install ${slug}`)
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
extra = extra.map(a => (a === 'cli' ? '--cli' : a))
|
|
384
|
+
|
|
385
|
+
// Override AGENT_DIR per invocation when a slug is given. The runner's
|
|
386
|
+
// config.ts derives STATE_DIR from basename(AGENT_DIR), so the per-agent
|
|
387
|
+
// state/lockfile/incoming dirs follow automatically.
|
|
388
|
+
const childEnv = { ...process.env }
|
|
389
|
+
if (slug) {
|
|
390
|
+
childEnv.AGENT_DIR = agentInstallDir(slug)
|
|
391
|
+
info(`runner: agent=${slug}`)
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
const full = extra.length > 0 ? `${startCmd} -- ${extra.join(' ')}` : startCmd
|
|
395
|
+
const child = spawn(full, { cwd: dir, stdio: 'inherit', shell: true, env: childEnv })
|
|
359
396
|
child.on('error', (e) => die(`Failed to start: ${e.message}`))
|
|
360
397
|
child.on('exit', (code) => process.exit(code ?? 0))
|
|
361
398
|
return
|
|
@@ -410,10 +447,13 @@ Commands:
|
|
|
410
447
|
${bold('help')} Show this message
|
|
411
448
|
|
|
412
449
|
Examples:
|
|
413
|
-
0101-agents start marketer
|
|
414
|
-
0101-agents start marketer --tg
|
|
415
|
-
0101-agents start marketer --resume
|
|
416
|
-
0101-agents start
|
|
450
|
+
0101-agents start marketer Open in Claude Code
|
|
451
|
+
0101-agents start marketer --tg Run as a Telegram channel bot via Claude Code
|
|
452
|
+
0101-agents start marketer --resume Resume the last Claude Code session
|
|
453
|
+
0101-agents start runner Telegram bot via 0101-runner (uses .env)
|
|
454
|
+
0101-agents start runner cli Chat with the agent in this terminal
|
|
455
|
+
0101-agents start runner marketer Run a Telegram bot for marketer (multi-bot)
|
|
456
|
+
0101-agents start runner marketer cli Terminal chat for marketer
|
|
417
457
|
|
|
418
458
|
Install dir: ${INSTALL_ROOT}
|
|
419
459
|
Config: ${CONFIG_PATH}`)
|