c8ctl-plugin-nano 1.25.0 → 1.25.1

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.
Files changed (2) hide show
  1. package/c8ctl-plugin.js +8 -6
  2. package/package.json +8 -8
package/c8ctl-plugin.js CHANGED
@@ -1730,13 +1730,14 @@ function resolveAssignInputs(req, flags) {
1730
1730
  * capabilities are the remaining positionals and/or `--capabilities a,b`.
1731
1731
  * Capabilities are unioned with the profile's existing set (additive; assign
1732
1732
  * never removes a role) and the updated rank×capability job-type matrix is
1733
- * printed. Re-run `work` to pick up the new job types.
1733
+ * printed. Running workers hot-reload the new job types within ~1.5s — no
1734
+ * restart needed.
1734
1735
  */
1735
1736
  async function assignCapabilities(req, flags) {
1736
1737
  const logger = getLogger();
1737
1738
  const { name, incomingRaw } = resolveAssignInputs(req, flags);
1738
1739
  if (!name) {
1739
- logger.error('Usage: c8ctl nano assign <profileName> [<capability> ...] [--name <n>] [--capabilities <a,b>]');
1740
+ logger.error('Usage: c8ctl nano assign <profileName> <cap[,cap...]> [--name <n>] [--capabilities <a,b>]');
1740
1741
  logger.info('Grant new capabilities to an existing hire. List profiles with: c8ctl nano hire --list');
1741
1742
  process.exit(1);
1742
1743
  }
@@ -1747,7 +1748,7 @@ async function assignCapabilities(req, flags) {
1747
1748
 
1748
1749
  if (normalizeCapabilities(incomingRaw).length === 0) {
1749
1750
  logger.error('Provide at least one capability to assign.');
1750
- logger.info(`Example: c8ctl nano assign ${name} code-review testing`);
1751
+ logger.info(`Example: c8ctl nano assign ${name} code-review,testing`);
1751
1752
  process.exit(1);
1752
1753
  }
1753
1754
 
@@ -1778,7 +1779,7 @@ async function assignCapabilities(req, flags) {
1778
1779
  logger.info(`Assigned to "${name}" [${profile.rank}]: +${added.join(', ')}`);
1779
1780
  logger.info(` capabilities: ${profile.capabilities.join(', ')}`);
1780
1781
  logger.info(` job types (${matrix.length}): ${matrix.join(' ')}`);
1781
- logger.info(`Restart its workers to pick up the new roles: c8ctl nano work ${name}`);
1782
+ logger.info(`Running workers pick this up automatically within ~1.5s no restart needed.`);
1782
1783
  }
1783
1784
 
1784
1785
  /**
@@ -6240,6 +6241,7 @@ export const metadata = {
6240
6241
  { command: 'c8ctl nano hire --name coder --rank senior --command copilot --env COPILOT_ENABLE_ALL_TOOLS=1', description: 'Persist a harness startup env var (e.g. permissions) on the profile' },
6241
6242
  { command: 'c8ctl nano hire --list', description: 'List hired agent profiles' },
6242
6243
  { command: 'c8ctl nano hire --name coder --rank senior --command "agent-harness" --sandbox docker --image ghcr.io/acme/agent:1', description: 'Create a profile that runs each job in a throwaway Docker container' },
6244
+ { command: 'c8ctl nano assign reviewer code-review,testing', description: 'Grant more capabilities (comma-separated, like hire) to an existing hire — additive; running workers hot-reload it' },
6243
6245
  { command: 'c8ctl nano work reviewer', description: 'Spawn Nano job workers for the "reviewer" profile and poll for work' },
6244
6246
  { command: 'c8ctl nano work coder --sandbox docker --image ghcr.io/acme/agent:1', description: 'Run jobs in isolated containers with disk-hygiene reaping' },
6245
6247
  { command: 'c8ctl nano supervisor start --worker reviewer --worker coder', description: 'Start a detached supervisor managing several workers from one terminal' },
@@ -6465,7 +6467,7 @@ function printUsage() {
6465
6467
  console.log(' c8ctl nano config');
6466
6468
  console.log(' c8ctl nano update [--check]');
6467
6469
  console.log(' c8ctl nano hire [--name <n>] [--rank <r>] [--command <c>] [--arg <switch> ...] [--model <m>] [--capabilities <a,b>] [--sandbox none|docker|podman] [--image <ref>] [--env NAME=VALUE ...] [--list]');
6468
- console.log(' c8ctl nano assign <profileName> [<capability> ...] [--name <n>] [--capabilities <a,b>]');
6470
+ console.log(' c8ctl nano assign <profileName> <cap[,cap...]> [--name <n>] [--capabilities <a,b>]');
6469
6471
  console.log(' c8ctl nano work <profileName> [--arg <switch> ...] [--max-parallel <n>] [--recovery-window <ms>] [--idle-timeout <ms>] [--job-timeout <ms>] [--poll-timeout <ms>] [--job-type <token> ...] [--sandbox none|docker|podman] [--image <ref>] [--env NAME=VALUE ...] [--secret-resolver host] [--min-free-mb <n>] [--clone-timeout <ms>] [--keep-runs] [--stream]');
6470
6472
  console.log(' c8ctl nano supervisor [start|status|add|remove|restart|stop|logs|attach] ... (manage many workers from one terminal)');
6471
6473
  console.log('');
@@ -6482,7 +6484,7 @@ function printUsage() {
6482
6484
  console.log(' config Show current configuration and on-disk locations');
6483
6485
  console.log(' update Pull the latest published nano release (--check to only report)');
6484
6486
  console.log(' hire Create a CLI agent worker profile (rank + capabilities → job-type matrix)');
6485
- console.log(' assign Grant new capabilities (roles) to an existing hire (additive)');
6487
+ console.log(' assign Grant new capabilities (roles) to an existing hire (additive; comma-separated; workers hot-reload)');
6486
6488
  console.log(' work Run a hired profile as Nano job workers, polling for work until Ctrl-C');
6487
6489
  console.log(' supervisor Run/manage a fleet of workers from one terminal (detachable console + non-interactive control)');
6488
6490
  console.log('');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c8ctl-plugin-nano",
3
- "version": "1.25.0",
3
+ "version": "1.25.1",
4
4
  "type": "module",
5
5
  "description": "c8ctl plugin to start, inspect, and stop a local Nano BPM (nanobpmn) cluster",
6
6
  "main": "c8ctl-plugin.js",
@@ -47,12 +47,12 @@
47
47
  "semantic-release": "^25.0.3"
48
48
  },
49
49
  "optionalDependencies": {
50
- "@nanobpm/c8ctl-plugin-nano-darwin-arm64": "1.25.0",
51
- "@nanobpm/c8ctl-plugin-nano-darwin-x64": "1.25.0",
52
- "@nanobpm/c8ctl-plugin-nano-linux-x64": "1.25.0",
53
- "@nanobpm/c8ctl-plugin-nano-linux-arm64": "1.25.0",
54
- "@nanobpm/c8ctl-plugin-nano-linux-armv7": "1.25.0",
55
- "@nanobpm/c8ctl-plugin-nano-linux-armv6": "1.25.0",
56
- "@nanobpm/c8ctl-plugin-nano-win32-x64": "1.25.0"
50
+ "@nanobpm/c8ctl-plugin-nano-darwin-arm64": "1.25.1",
51
+ "@nanobpm/c8ctl-plugin-nano-darwin-x64": "1.25.1",
52
+ "@nanobpm/c8ctl-plugin-nano-linux-x64": "1.25.1",
53
+ "@nanobpm/c8ctl-plugin-nano-linux-arm64": "1.25.1",
54
+ "@nanobpm/c8ctl-plugin-nano-linux-armv7": "1.25.1",
55
+ "@nanobpm/c8ctl-plugin-nano-linux-armv6": "1.25.1",
56
+ "@nanobpm/c8ctl-plugin-nano-win32-x64": "1.25.1"
57
57
  }
58
58
  }