@nanobpm/nano-workforce 0.151.1 → 0.153.0

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.
@@ -92,6 +92,29 @@ jobs:
92
92
  # blocker, and a self-proving canary asserts the oracle's red path genuinely fires so the gate can
93
93
  # never rot into a vacuous green while the corpus is parked. Hermetic (in-process wasm engine, no
94
94
  # sockets), so it runs on every PR/push as its own job.
95
+ # install.sh onboarding script (issues #576 + #583): POSIX-sh cleanliness + a
96
+ # hermetic smoke test asserting the emitted command sequence (phase 1) and the
97
+ # phase-2 console call flow (dry-run + a stubbed-console live run). The script
98
+ # is served from `main` for `curl … | sh`, so a broken change is live the
99
+ # instant it merges — this gate keeps that surface honest.
100
+ install-script:
101
+ name: install.sh (shellcheck + dry-run smoke)
102
+ runs-on: ubuntu-latest
103
+ steps:
104
+ - name: Checkout
105
+ uses: actions/checkout@v4
106
+
107
+ - name: Setup Node.js
108
+ uses: actions/setup-node@v4
109
+ with:
110
+ node-version: "24"
111
+
112
+ - name: shellcheck (POSIX sh)
113
+ run: shellcheck -s sh install.sh test/install-smoke.sh
114
+
115
+ - name: Smoke test (dry-run sequence + stubbed-console phase 2)
116
+ run: sh test/install-smoke.sh
117
+
95
118
  derivation-parity:
96
119
  name: derivation parity (nwf corpus regression guard)
97
120
  runs-on: ubuntu-latest
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [0.153.0](https://github.com/nanobpm/nano-workforce/compare/v0.152.0...v0.153.0) (2026-08-29)
2
+
3
+ ### Features
4
+
5
+ * **onboarding:** install-script phase 2 — install, scaffold, configure & run the Workforce app ([#598](https://github.com/nanobpm/nano-workforce/issues/598)) ([e86f9ca](https://github.com/nanobpm/nano-workforce/commit/e86f9ca292998481e1fd194859832e9040bf0b51)), closes [nanobpm/nano-workforce#583](https://github.com/nanobpm/nano-workforce/issues/583) [Magikcraft/nano-bpm#1036](https://github.com/Magikcraft/nano-bpm/issues/1036) [#583](https://github.com/nanobpm/nano-workforce/issues/583)
6
+
7
+ ## [0.152.0](https://github.com/nanobpm/nano-workforce/compare/v0.151.1...v0.152.0) (2026-08-28)
8
+
9
+ ### Features
10
+
11
+ * **onboarding:** one-command install script — hire your coding harnesses and bring up a Nano workforce ([#597](https://github.com/nanobpm/nano-workforce/issues/597)) ([73b840b](https://github.com/nanobpm/nano-workforce/commit/73b840bbb3c602e83d4cac6990e69d0b77ed0344)), closes [jwulf/c8ctl-plugin-nano#117](https://github.com/jwulf/c8ctl-plugin-nano/issues/117) [#576](https://github.com/nanobpm/nano-workforce/issues/576)
12
+
1
13
  ## [0.151.1](https://github.com/nanobpm/nano-workforce/compare/v0.151.0...v0.151.1) (2026-08-28)
2
14
 
3
15
  ### Bug Fixes
package/README.md CHANGED
@@ -79,6 +79,62 @@ You can also run Nano Workforce directly, outside Studio, against a running Nano
79
79
  engine. This is the second-class path — no left-rail integration or update UI — but
80
80
  it's the same app and the same behaviour.
81
81
 
82
+ ### Install with one command
83
+
84
+ If you already have one or more coding-agent CLIs installed (`kimi`, `qwen`,
85
+ `copilot`, `claude`, `pi`), one command takes you from there to a **running Nano
86
+ Workforce**: engine, a supervised workforce of hired agents, **and the Nano
87
+ Workforce app itself, installed, configured, and running**:
88
+
89
+ ```sh
90
+ curl -fsSL https://raw.githubusercontent.com/nanobpm/nano-workforce/main/install.sh | sh
91
+ ```
92
+
93
+ **Phase 1 — engine + workforce.** It installs `@camunda8/cli` and the
94
+ `c8ctl-plugin-nano` plugin, installs shell completion, detects which of your
95
+ harnesses are installed, lets you multi-select which to hire (with a model and an
96
+ instance count each), hires each with `--rank senior --protocol acp --permission
97
+ yolo`, composes a declarative **workforce manifest** (`c8 nano workforce add`),
98
+ and brings it up (`c8 nano start` then `c8 nano workforce start`).
99
+
100
+ **Phase 2 — the app.** It then talks to the nano console the engine brought up to
101
+ install the `@nanobpm/nano-workforce` extension, scaffold a **Workforce** project
102
+ from the `nano-workforce` template, write its `ProjectConfig.env` (including
103
+ `NANO_WORKFORCE_BASE_URL` set to the console origin + `/console/app-view/Workforce`
104
+ so the fleet's hooks resolve through the proxy — see [Fleet
105
+ networking](#fleet-networking-remote-workers)), and run it. It confirms readiness
106
+ by polling the app's own `GET /app/api/version` through the proxy, then prints the
107
+ cockpit URL, the Tasks inbox, the Delivery Graphs page, and the `/app/api/agent` +
108
+ `/app/mcp` pointers. Pass `--skip-app` to stop after phase 1.
109
+
110
+ > ⚠️ The hired agents run **unattended** with `--permission yolo` — full tool
111
+ > access (shell, file writes, network) as your user on this host. The script shows
112
+ > a confirmation summary before it hires anything (and before it installs the app);
113
+ > pass `--yes` to skip both.
114
+
115
+ Prompts read from `/dev/tty`, so the `curl … | sh` pipe works interactively. It is
116
+ also fully scriptable and safe to re-run (it converges rather than duplicating — an
117
+ existing project is configured and run, never re-scaffolded):
118
+
119
+ ```sh
120
+ # Non-interactive (CI / re-provisioning); repeatable --harness <name>[:<model>][:<instances>]
121
+ curl -fsSL https://raw.githubusercontent.com/nanobpm/nano-workforce/main/install.sh | sh -s -- --harness copilot:gpt-5.4:5 --harness claude:opus:1 --yes
122
+
123
+ # Name the app's project, or stop after phase 1 (engine + workforce only)
124
+ curl -fsSL .../install.sh | sh -s -- --harness copilot:gpt-5.4:5 --yes --project-name Workforce
125
+ curl -fsSL .../install.sh | sh -s -- --harness copilot:gpt-5.4:5 --yes --skip-app
126
+
127
+ # Preview every command (including the console API calls) without changing anything
128
+ curl -fsSL https://raw.githubusercontent.com/nanobpm/nano-workforce/main/install.sh | sh -s -- --harness copilot:gpt-5.4:1 --dry-run
129
+ ```
130
+
131
+ `qwen` must always be given an explicit model (it stalls without one). With no
132
+ controlling terminal and no `--harness`, the script exits with usage rather than
133
+ hanging. Phase 2 needs the engine's console reachable (the default `c8 nano start`
134
+ `studio` mode); an unreachable console is reported as an early failure that changes
135
+ nothing. Because it is served from `main`, a merged change to `install.sh` is live
136
+ immediately.
137
+
82
138
  ### Prerequisites
83
139
 
84
140
  - A running **Nano gateway/engine** (default `http://localhost:8080`) — what the app