@brokkai/brokk-town 0.6.0 → 0.6.2

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/README.md +69 -2
  2. package/package.json +5 -5
package/README.md CHANGED
@@ -110,6 +110,73 @@ the Mayor as decision maker and shows Simplifier Bot's advice on every pending
110
110
  arrival. Auto lets the bot's assessment route routine work without a separate
111
111
  Mayoral decision, including closing low-value complex issues.
112
112
 
113
+ ### What each bot takes on
114
+
115
+ Each house can be told what work to accept and how much of it to produce. Every
116
+ setting here is one the bot already supports, and a house refuses a setting it
117
+ cannot honour rather than accepting it and ignoring it:
118
+
119
+ | Setting | Flag | Houses |
120
+ | --- | --- | --- |
121
+ | Required labels | `--labels` | bug, feature, issue, review, simplifier |
122
+ | Excluded labels | `--exclude-labels` | issue, review |
123
+ | One selected item | `--only` | issue (an issue number), review (a PR number) |
124
+ | Discovery focus | `--focus` | bug, feature, review |
125
+ | Per-run limit | `--limit` | bug/feature (issues filed), review (findings), simplifier (proposals), repo (repair attempts per revision), hall (bulletin items) |
126
+ | Attempts per item | `--attempts` | bug, feature, issue, review, release |
127
+ | Verification command | `--verify` | every house; overrides the town's `verify` |
128
+ | Release cadence, preflight, required workflows and assets | `--release-*` | release |
129
+
130
+ ```sh
131
+ ./bin/bt settings --repo BrokkAi/my-project --role issue --labels agent-ready --exclude-labels needs-discussion
132
+ ./bin/bt settings --repo BrokkAi/my-project --role issue --only 412
133
+ ./bin/bt settings --repo BrokkAi/my-project --role bug --focus 'the storage layer' --limit 3
134
+ ./bin/bt settings --repo BrokkAi/my-project --role review --verify '["make","review-check"]'
135
+ ./bin/bt settings --repo BrokkAi/my-project --role release --release-quiet-seconds 900 --release-burst 10 --release-burst-window-seconds 3600 --release-triage on
136
+ ./bin/bt settings --repo BrokkAi/my-project --role issue --clear-policy
137
+ ```
138
+
139
+ Config-file towns take the same settings under `bot_policies`, keyed by house;
140
+ the example lists every supported field. A town that sets none behaves exactly
141
+ as it did before these settings existed.
142
+
143
+ Town applies the same filters to its own queue that it sends to the bot, so the
144
+ queue you read is the queue the house will take from. Filtered work is not
145
+ hidden: each house's inspector states its policy, counts the inventory it holds
146
+ back, and marks each held item, so you can always see what your own filter
147
+ excluded. A house whose bundled bot is too old to read a policy is refused the
148
+ dispatch with the bot and version named, instead of running unfiltered.
149
+
150
+ ### Agent budgets
151
+
152
+ A town can bound how much automation it starts in a repeating accounting period:
153
+
154
+ ```sh
155
+ ./bin/bt settings --repo BrokkAi/my-project --budget-period day --budget-attempts 40 --budget-agent-minutes 600
156
+ ./bin/bt settings --repo BrokkAi/my-project --budget-period none
157
+ ```
158
+
159
+ The period is `day`, `week`, or `month` on your local clock, and at least one of
160
+ `--budget-attempts` or `--budget-agent-minutes` is required. Config-file towns
161
+ take the same settings as `"budget": {"period": "day", "max_attempts": 40,
162
+ "max_agent_minutes": 600}`.
163
+
164
+ Town charges the budget for every attempt that started an agent. A repository
165
+ inventory reads GitHub without one and is never charged; a branch repair is.
166
+ When a ceiling is reached, Town stops dispatching new agent work for that town
167
+ and says so in Town Hall with the time the period resets. Work already running
168
+ finishes normally, cancellation and saved work are untouched, and the repository
169
+ inventory keeps running so uncertain writes can still be reconciled. Other towns
170
+ are unaffected: a budget is per town, not per worker slot.
171
+
172
+ **Town cannot cap token or dollar spend.** No bundled agent harness reports usage
173
+ back through the worker protocol -- the acp-go runner hands a bot the agent's
174
+ final text and nothing else -- so Town would be enforcing a limit against numbers
175
+ it never receives. Attempts and agent minutes are what it measures, so those are
176
+ what it enforces. Where usage or cost is missing, Town Hall prints "not
177
+ reported"; it never shows absent telemetry as zero. Attempts whose elapsed time
178
+ never arrived are counted and reported separately rather than billed as free.
179
+
113
180
  For each profile, select any agent from the
114
181
  [official ACP registry](https://agentclientprotocol.com/get-started/registry),
115
182
  plus **Anvil**, **Muse ACP**, **Draupnir**, or a custom ACP command. The full
@@ -292,8 +359,8 @@ bot profiles, verification command, and policy, then run:
292
359
  Configuration is a JSON array for town-only files. Each entry supplies `repo`, optional `branch` and
293
360
  `harness`, `agent`, optional `bot_agents`, optional `verify` argument vector,
294
361
  `merge_policy`, `simplifier_mode`, optional `review_close_severity` (`P1`, `P2`
295
- or `P3`, default `P2`), `poll_seconds`, `report_seconds`, and
296
- `max_cycles`. The example
362
+ or `P3`, default `P2`), optional `budget`, optional `bot_policies`,
363
+ `poll_seconds`, `report_seconds`, and `max_cycles`. The example
297
364
  lists all required values. To persist global capacity alongside the town list,
298
365
  use the object form `{"max_workers": 2, "towns": [...]}`; the legacy array form
299
366
  remains accepted. When `serve --config` includes `max_workers`, that value
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.0",
2
+ "version": "0.6.2",
3
3
  "license": "Apache-2.0",
4
4
  "repository": {
5
5
  "type": "git",
@@ -25,9 +25,9 @@
25
25
  "arm64"
26
26
  ],
27
27
  "optionalDependencies": {
28
- "@brokkai/brokk-town-linux-x64": "0.6.0",
29
- "@brokkai/brokk-town-linux-arm64": "0.6.0",
30
- "@brokkai/brokk-town-darwin-x64": "0.6.0",
31
- "@brokkai/brokk-town-darwin-arm64": "0.6.0"
28
+ "@brokkai/brokk-town-linux-x64": "0.6.2",
29
+ "@brokkai/brokk-town-linux-arm64": "0.6.2",
30
+ "@brokkai/brokk-town-darwin-x64": "0.6.2",
31
+ "@brokkai/brokk-town-darwin-arm64": "0.6.2"
32
32
  }
33
33
  }