bullswarm 0.10.8 → 0.10.9
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/AGENTS.md +1 -1
- package/CHANGELOG.md +22 -0
- package/package.json +1 -1
- package/skill/SKILL.md +8 -0
- package/src/cli.js +3 -5
- package/src/help.js +1222 -119
- package/src/integrate.js +2 -8
- package/src/strategy-cli.js +7 -19
- package/src/workflow/cli.js +11 -26
- package/src/workflow/draft-cli.js +12 -32
- package/src/workflow/runner.js +113 -21
- package/src/workflow/runs-cli.js +5 -16
- package/src/workflow/runtime.js +21 -2
- package/src/workflow/validate.js +1 -0
- package/src/workflow/watch-cli.js +24 -4
package/AGENTS.md
CHANGED
|
@@ -37,7 +37,7 @@ content. Published as `bullswarm` on npm.
|
|
|
37
37
|
## Development
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
npm test #
|
|
40
|
+
npm test # full suite, no network needed (meters read from cache)
|
|
41
41
|
node bin/bullswarm.js doctor --json # readiness report
|
|
42
42
|
node bin/bullswarm.js workflow list # discover workflows
|
|
43
43
|
node bin/bullswarm.js workflow runs # ongoing workflow instances
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# bullswarm changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.9 — planner self-correction and honest silence
|
|
4
|
+
|
|
5
|
+
- An invalid or non-JSON orchestrator decision no longer fails the run. The
|
|
6
|
+
runtime feeds the exact validator issues, the rejected proposal, and a
|
|
7
|
+
response excerpt back to the same orchestrator thread for bounded corrective
|
|
8
|
+
turns (`settings.maxPlannerCorrections`, default 2, emits
|
|
9
|
+
`decision.correction_requested`), then benches that pool as orchestrator for
|
|
10
|
+
the rest of the run and escalates to one other eligible pool
|
|
11
|
+
(`decision.orchestrator_escalated`), and only then settles on a qualified
|
|
12
|
+
`completed_with_concerns`/`blocked` outcome. The decide action's ledger status
|
|
13
|
+
now agrees with that outcome (`failed_retryable` while correcting,
|
|
14
|
+
`failed_terminal` on exhaustion) instead of reporting `succeeded`.
|
|
15
|
+
- The planner prompt now shows complete `run`, `fanout` (`items` +
|
|
16
|
+
`stepTemplate.prompt` with `{{item}}`), and `verify` (`review`) skeletons, so
|
|
17
|
+
the first proposal can match what `decision.js` validates.
|
|
18
|
+
- `workflow watch` separates two silences: `quiet` counts durable workflow
|
|
19
|
+
events, and a new `agent output … ago` figure (JSONL `transportQuietForSec`)
|
|
20
|
+
counts raw output from live agents, so a thinking agent and a dead one look
|
|
21
|
+
different on the same heartbeat line.
|
|
22
|
+
- Removed the dead thin-leaf help renderer left over from the help unification
|
|
23
|
+
and stopped hard-coding the test count in AGENTS.md.
|
|
24
|
+
|
|
3
25
|
## 0.10.8 — quieter monitoring and resilient orchestration
|
|
4
26
|
|
|
5
27
|
- Made `workflow watch` aggregate low-level activity into compact interval
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -335,6 +335,14 @@ execute -> observe -> decide -> validate proposal -> append -> execute -> observ
|
|
|
335
335
|
Allowed planner decisions are `proceed`, `complete`, `needs_more_work`,
|
|
336
336
|
`retry`, `escalate`, `wait_for_approval`, and `stop`. Expansion decisions must
|
|
337
337
|
contain bounded actions; malformed or over-budget output executes nothing.
|
|
338
|
+
A malformed or non-JSON decision does not fail the run: the runtime returns
|
|
339
|
+
the exact validator issues to the same orchestrator thread for up to
|
|
340
|
+
`settings.maxPlannerCorrections` (default 2) corrective turns
|
|
341
|
+
(`decision.correction_requested` events), then benches that pool as
|
|
342
|
+
orchestrator for the rest of the run and tries one other eligible pool
|
|
343
|
+
(`decision.orchestrator_escalated`), and only then settles on a qualified
|
|
344
|
+
`completed_with_concerns`/`blocked` outcome. Safety bounds (`maxActions`,
|
|
345
|
+
`maxItemsPerExpansion`) still terminate immediately with a qualified outcome.
|
|
338
346
|
`complete` still requires successful delivery and verification. `stop` returns
|
|
339
347
|
`completed_with_concerns` with a ready best-effort artifact when useful work
|
|
340
348
|
exists, or `blocked` when it does not; neither hides failed verification.
|
package/src/cli.js
CHANGED
|
@@ -17,7 +17,7 @@ import { release } from './lib/release.js';
|
|
|
17
17
|
import { cmdWorkflow } from './workflow/cli.js';
|
|
18
18
|
import { cmdStrategy, maybeRefreshStrategy } from './strategy-cli.js';
|
|
19
19
|
import { cmdIntegrate, installIntegration } from './integrate.js';
|
|
20
|
-
import { helpForArgs } from './help.js';
|
|
20
|
+
import { helpForArgs, usageLine } from './help.js';
|
|
21
21
|
import { resolveDispatchModel } from './lib/strategy.js';
|
|
22
22
|
|
|
23
23
|
export function getBullswarmDir() {
|
|
@@ -474,9 +474,7 @@ export async function main(argv) {
|
|
|
474
474
|
case 'release':
|
|
475
475
|
return cmdRelease(opts);
|
|
476
476
|
default:
|
|
477
|
-
console.error(
|
|
478
|
-
`unknown verb "${verb}". try: setup | integrate | run | health | pools | strategy | doctor | workflow | runs | version | release`,
|
|
479
|
-
);
|
|
477
|
+
console.error(`unknown verb "${verb}". Run "bullswarm --help" for the list of commands.`);
|
|
480
478
|
return 2;
|
|
481
479
|
}
|
|
482
480
|
}
|
|
@@ -486,7 +484,7 @@ export async function main(argv) {
|
|
|
486
484
|
function cmdRelease(opts) {
|
|
487
485
|
const kind = opts.rest[0];
|
|
488
486
|
if (!['patch', 'minor', 'major'].includes(kind)) {
|
|
489
|
-
console.error(
|
|
487
|
+
console.error(`usage: ${usageLine(['release'])}`);
|
|
490
488
|
return 2;
|
|
491
489
|
}
|
|
492
490
|
try {
|