@brokkai/brokk-town-linux-x64 0.6.2 → 0.6.3
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/BUILD.json +1 -1
- package/README.md +101 -7
- package/bin/bbb +0 -0
- package/bin/bfb +0 -0
- package/bin/bib +0 -0
- package/bin/brb +0 -0
- package/bin/brv +0 -0
- package/bin/bt +0 -0
- package/bots/feature-bot/licenses/THIRD_PARTY_NOTICES.txt +2 -2
- package/bots/review-bot/licenses/THIRD_PARTY_NOTICES.txt +21 -2
- package/bundle.json +10 -10
- package/licenses/THIRD_PARTY_NOTICES.txt +21 -2
- package/package.json +1 -1
package/BUILD.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit": "
|
|
1
|
+
{"commit": "8c221ceb2c10c36e4c6c02f8c6e485872a7fee67", "tag": "v0.6.3-town", "target": "linux-amd64"}
|
package/README.md
CHANGED
|
@@ -4,6 +4,13 @@ Brokk Town is a local service that coordinates independent repository bots throu
|
|
|
4
4
|
private worker processes. Use the browser to watch and control work, or the CLI
|
|
5
5
|
for scripts. Everything runs on your machine.
|
|
6
6
|
|
|
7
|
+
The browser has two themes. The default is the town; Frontline draws every
|
|
8
|
+
repository as a base flying one of three armies — humans, humanoid aliens or a
|
|
9
|
+
swarm — and every committed delivery as a strike between its installations. The
|
|
10
|
+
theme is a look, not a lever: it reads the same snapshot, keeps the theme and
|
|
11
|
+
any race chosen for a base in that browser, and never changes what Town does or writes
|
|
12
|
+
to GitHub.
|
|
13
|
+
|
|
7
14
|
## Build and run
|
|
8
15
|
|
|
9
16
|
```sh
|
|
@@ -13,7 +20,9 @@ make build
|
|
|
13
20
|
./bin/bt web --demo
|
|
14
21
|
```
|
|
15
22
|
|
|
16
|
-
Bare `bt` runs in the foreground and prints its browser URL.
|
|
23
|
+
Bare `bt` runs in the foreground and prints its browser URL. The URL carries the
|
|
24
|
+
access key, so it is printed only to a terminal; redirected output and the
|
|
25
|
+
background service's log point to `bt web` instead. Ctrl+C, SIGTERM or
|
|
17
26
|
SIGHUP stops Town, its bots and their agent processes. Closing the browser does
|
|
18
27
|
not stop the service. Demo mode is isolated and never invokes bots, agents or GitHub.
|
|
19
28
|
|
|
@@ -177,6 +186,51 @@ what it enforces. Where usage or cost is missing, Town Hall prints "not
|
|
|
177
186
|
reported"; it never shows absent telemetry as zero. Attempts whose elapsed time
|
|
178
187
|
never arrived are counted and reported separately rather than billed as free.
|
|
179
188
|
|
|
189
|
+
### Quiet hours
|
|
190
|
+
|
|
191
|
+
Quiet hours are weekly windows in which Town starts no new agent work and
|
|
192
|
+
makes none of its own GitHub writes: no filing, repairing, reviewing, merging
|
|
193
|
+
or releasing. Set a default for every town, give one town its own windows, or
|
|
194
|
+
opt one town out:
|
|
195
|
+
|
|
196
|
+
```sh
|
|
197
|
+
# Service default: weeknights and weekends.
|
|
198
|
+
./bin/bt settings --quiet-hours "mon-fri 19:00-07:00; weekends 00:00-24:00"
|
|
199
|
+
./bin/bt settings --quiet-hours none # remove the service default
|
|
200
|
+
# One town's own windows, none at all, or back to the service default.
|
|
201
|
+
./bin/bt settings --repo BrokkAi/my-project --quiet-hours "daily 12:00-13:00"
|
|
202
|
+
./bin/bt settings --repo BrokkAi/my-project --quiet-hours none
|
|
203
|
+
./bin/bt settings --repo BrokkAi/my-project --quiet-hours default
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Each window is `DAYS HH:MM-HH:MM`, joined with `;`. Days are `mon` through
|
|
207
|
+
`sun`, ranges such as `mon-fri` or `fri-mon`, or `daily`, `weekdays` and
|
|
208
|
+
`weekends`, and name the day a window starts. An end at or before the start runs
|
|
209
|
+
past midnight into the next day, and `24:00` ends a window at midnight.
|
|
210
|
+
Overlapping windows count as one. A window with no day, an unknown day, a time
|
|
211
|
+
that is not `HH:MM`, or the same start and end is refused with the reason. The
|
|
212
|
+
browser edits the same schedules: the service default under Capacity, and a
|
|
213
|
+
town's own in Town settings. Config files take `"quiet_hours": [{"days":
|
|
214
|
+
["mon"], "start": "19:00", "end": "07:00"}]` at the top level for the default
|
|
215
|
+
and in a town entry for its own, where `[]` opts the town out.
|
|
216
|
+
|
|
217
|
+
Windows are read on the local clock of the machine running Town, by the clock
|
|
218
|
+
on the wall: a window holds through a daylight-saving change, an hour the clock
|
|
219
|
+
skips is never quiet, and an hour it repeats is quiet both times.
|
|
220
|
+
|
|
221
|
+
Inside a window, work already running finishes as it would after Pause, and
|
|
222
|
+
the repository inventory keeps running so uncertain writes are still
|
|
223
|
+
reconciled. Town leaves closing declined issues and retired pull requests and
|
|
224
|
+
filing review follow-ups for the first inventory after the window. Issues you
|
|
225
|
+
submit yourself are still posted. Houses stay awake: the browser shows them as
|
|
226
|
+
*quiet* rather than paused, the town header reads "Quiet hours · until …",
|
|
227
|
+
Town Hall explains the hold, and `bt status` carries the same `quiet_hours`
|
|
228
|
+
state for each town. When the window ends, scheduling resumes on its own with
|
|
229
|
+
each house's usual cadence; nothing missed is replayed. Pause and quiet hours
|
|
230
|
+
are independent and both survive a restart: a paused house stays paused after
|
|
231
|
+
the window, and a woken one resumes. Release Bot's own release quiet period
|
|
232
|
+
(`--release-quiet-seconds`) is unrelated and keeps working as before.
|
|
233
|
+
|
|
180
234
|
For each profile, select any agent from the
|
|
181
235
|
[official ACP registry](https://agentclientprotocol.com/get-started/registry),
|
|
182
236
|
plus **Anvil**, **Muse ACP**, **Draupnir**, or a custom ACP command. The full
|
|
@@ -273,8 +327,14 @@ To remove a town, choose **Settings → Delete town** and confirm, or run:
|
|
|
273
327
|
Deletion cancels its workers, cancels queued issue submissions, and removes it
|
|
274
328
|
from the browser and terminal. GitHub repositories, issues, and PRs are preserved.
|
|
275
329
|
Local history, uncertain writes, and private worktrees remain as recovery records.
|
|
276
|
-
Adding the same repository again restores that history and its previous
|
|
277
|
-
with automation paused and the reporter enabled.
|
|
330
|
+
Adding the same repository again restores that history and its previous
|
|
331
|
+
settings, with automation paused and the reporter enabled. A merge policy or
|
|
332
|
+
harness/agent choice given with the add replaces the previous one; budgets, work
|
|
333
|
+
policies, bot profiles, funnels and the branch are kept. A deleted town listed in
|
|
334
|
+
`bt serve --config` is restored with the file's settings, and one named by
|
|
335
|
+
`bt serve --repo` with its previous settings; `bt serve` prints a notice. A town
|
|
336
|
+
that already worked on one branch cannot be restored onto another. Deleting a
|
|
337
|
+
town that is already deleted reports `unknown town`. Wait for stopping workers to
|
|
278
338
|
finish before restoring a town.
|
|
279
339
|
|
|
280
340
|
## How work moves
|
|
@@ -343,7 +403,8 @@ limit its authority to publish while forbidding its release-preparation PR merge
|
|
|
343
403
|
Town pauses Release Bot and rejects attempts to start or retry it under this policy.
|
|
344
404
|
`all` also permits eligible external PRs. Town-managed merges require current clean Town evidence, GitHub mergeability, required checks
|
|
345
405
|
and approvals. Town uses an expected-head squash merge, without admin bypass.
|
|
346
|
-
Change this at any time under **Town Settings → External contributions
|
|
406
|
+
Change this at any time under **Town Settings → External contributions**, or
|
|
407
|
+
with `./bin/bt settings --repo BrokkAi/my-project --merge-policy manual`.
|
|
347
408
|
Repositories that require a merge queue or prohibit squash merging need manual
|
|
348
409
|
merges for now. GitHub is the final authority at write time.
|
|
349
410
|
|
|
@@ -361,7 +422,10 @@ Configuration is a JSON array for town-only files. Each entry supplies `repo`, o
|
|
|
361
422
|
`merge_policy`, `simplifier_mode`, optional `review_close_severity` (`P1`, `P2`
|
|
362
423
|
or `P3`, default `P2`), optional `budget`, optional `bot_policies`,
|
|
363
424
|
`poll_seconds`, `report_seconds`, and `max_cycles`. The example
|
|
364
|
-
lists all required values.
|
|
425
|
+
lists all required values. A config-file entry gets no defaults for
|
|
426
|
+
`merge_policy`, `poll_seconds`, `report_seconds`, or `max_cycles`: omitting any
|
|
427
|
+
of them rejects the file. The defaults quoted below apply to towns added with
|
|
428
|
+
`bt add` or the browser. To persist global capacity alongside the town list,
|
|
365
429
|
use the object form `{"max_workers": 2, "towns": [...]}`; the legacy array form
|
|
366
430
|
remains accepted. When `serve --config` includes `max_workers`, that value
|
|
367
431
|
overrides the persisted service setting in the same atomic state update; an
|
|
@@ -390,7 +454,9 @@ Repo-bot and issue/review scheduling use `poll_seconds` (default 60). Quiet repo
|
|
|
390
454
|
use `report_seconds` (1800). Bug-bot, feature-bot, and simplifier-bot run at most every 30 minutes; mayor-bot
|
|
391
455
|
writes a bulletin at most every `bulletin_seconds` (21600) and only after something merged; release-bot
|
|
392
456
|
checks every five minutes and retains its own quiet window, minimum gap, and
|
|
393
|
-
batching decisions. Each worker attempt
|
|
457
|
+
batching decisions. Each worker attempt, including the repo inventory, has a
|
|
458
|
+
two-hour deadline, and each GitHub call Town makes itself, such as the merge
|
|
459
|
+
gate's read, gives up after one minute. A pull request
|
|
394
460
|
gets one fix round and two attempts per revision at any step; `max_cycles` is
|
|
395
461
|
accepted for compatibility but no longer extends that.
|
|
396
462
|
|
|
@@ -500,10 +566,38 @@ the reported failure and ask Town to lift the budget:
|
|
|
500
566
|
|
|
501
567
|
The next release run first calls the bot's `POST /v1/retry` worker API, which
|
|
502
568
|
resets the pending release's attempt budget in its own workspace, then resumes
|
|
503
|
-
the same release.
|
|
569
|
+
the same release. Unlike a task retry, a release retry also starts the release
|
|
570
|
+
house if it was paused. Town never edits the bot's private state. The pinned Release
|
|
504
571
|
Bot must advertise the `retry` capability; older pins report that plainly.
|
|
505
572
|
Use `bt status` to inspect saved details and GitHub to resolve conflicts.
|
|
506
573
|
|
|
574
|
+
### Snoozing one task
|
|
575
|
+
|
|
576
|
+
To set one issue or pull request aside without pausing its house, snooze it
|
|
577
|
+
until a chosen time. Open the task in the browser and choose **Snooze…**, or:
|
|
578
|
+
|
|
579
|
+
```sh
|
|
580
|
+
./bin/bt defer --repo BrokkAi/my-project --task pr:123 --until 2d --reason "waiting on the vendor fix"
|
|
581
|
+
./bin/bt defer --repo BrokkAi/my-project --task issue:45 --until 2026-10-01T09:00:00Z
|
|
582
|
+
./bin/bt undefer --repo BrokkAi/my-project --task pr:123
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
`--until` takes an RFC 3339 time or a delay from now (`90m`, `4h`, `2d`); the
|
|
586
|
+
resume time must be in the future and within 366 days, and the reason is one
|
|
587
|
+
line of at most 200 characters. The house keeps working the rest of its queue.
|
|
588
|
+
Until the resume time, no agent starts for the snoozed task: Issue, Review and
|
|
589
|
+
Simplifier Bots skip it, Mayor Bot does not judge it, and Town does not merge
|
|
590
|
+
it. A run already under way when you snooze finishes. The Mayor can still decide
|
|
591
|
+
a snoozed arrival by hand.
|
|
592
|
+
|
|
593
|
+
The task shows as **Snoozed** with its reason and resume time in the browser
|
|
594
|
+
and in `bt status` (`deferred_until`, `defer_reason`). Snoozed is distinct from
|
|
595
|
+
blocked and failed, so a snoozed task does not appear in the inbox. At the
|
|
596
|
+
resume time Town clears the snooze, wakes the house and records the event; the
|
|
597
|
+
snooze is saved state, so it survives a restart and repository reconciliation.
|
|
598
|
+
Resume now (`bt undefer`) makes the task eligible immediately. Finished work
|
|
599
|
+
(merged, closed, declined, or an implemented issue) cannot be snoozed.
|
|
600
|
+
|
|
507
601
|
The HTTP listener accepts loopback IPs only (default `127.0.0.1:8099`). Host,
|
|
508
602
|
origin, and bearer key checks protect the local API. A browser supporting WebMCP
|
|
509
603
|
can list towns and navigate to a house through optional page tools. Unsupported
|
package/bin/bbb
CHANGED
|
Binary file
|
package/bin/bfb
CHANGED
|
Binary file
|
package/bin/bib
CHANGED
|
Binary file
|
package/bin/brb
CHANGED
|
Binary file
|
package/bin/brv
CHANGED
|
Binary file
|
package/bin/bt
CHANGED
|
Binary file
|
|
@@ -8,9 +8,9 @@ Node.js and Python interpreters are installed separately and are not bundled.
|
|
|
8
8
|
|
|
9
9
|
==============================================================================
|
|
10
10
|
|
|
11
|
-
github.com/BrokkAi/acp-go v0.
|
|
11
|
+
github.com/BrokkAi/acp-go v0.10.0
|
|
12
12
|
License: Apache-2.0
|
|
13
|
-
Source: https://github.com/BrokkAi/acp-go/tree/v0.
|
|
13
|
+
Source: https://github.com/BrokkAi/acp-go/tree/v0.10.0
|
|
14
14
|
|
|
15
15
|
==============================================================================
|
|
16
16
|
|
|
@@ -8,9 +8,9 @@ Node.js and Python interpreters are installed separately and are not bundled.
|
|
|
8
8
|
|
|
9
9
|
==============================================================================
|
|
10
10
|
|
|
11
|
-
github.com/BrokkAi/acp-go v0.1
|
|
11
|
+
github.com/BrokkAi/acp-go v0.8.1
|
|
12
12
|
License: Apache-2.0
|
|
13
|
-
Source: https://github.com/BrokkAi/acp-go/tree/v0.1
|
|
13
|
+
Source: https://github.com/BrokkAi/acp-go/tree/v0.8.1
|
|
14
14
|
|
|
15
15
|
==============================================================================
|
|
16
16
|
|
|
@@ -221,6 +221,25 @@ Source: https://github.com/BrokkAi/acp-go/tree/v0.1.0
|
|
|
221
221
|
|
|
222
222
|
==============================================================================
|
|
223
223
|
|
|
224
|
+
--- github.com/BrokkAi/acp-go/NOTICE ---
|
|
225
|
+
|
|
226
|
+
acp-go
|
|
227
|
+
Copyright 2026 Brokk.ai and contributors
|
|
228
|
+
|
|
229
|
+
This project is licensed under the Apache License, Version 2.0.
|
|
230
|
+
See LICENSE for the full terms. Third-party terms and attribution are
|
|
231
|
+
provided in licenses/THIRD_PARTY_NOTICES.txt.
|
|
232
|
+
|
|
233
|
+
Originally developed as part of BrokkAi/release-bot.
|
|
234
|
+
|
|
235
|
+
The pinned Agent Client Protocol JSON Schema artifacts in schema/
|
|
236
|
+
(schema.json, meta.json, VERSION) are distributed by the ACP project
|
|
237
|
+
(https://github.com/agentclientprotocol/agent-client-protocol) under the
|
|
238
|
+
Apache License 2.0. The generated code in schema/*_gen.go derives from
|
|
239
|
+
those artifacts.
|
|
240
|
+
|
|
241
|
+
==============================================================================
|
|
242
|
+
|
|
224
243
|
github.com/rivo/uniseg v0.4.7
|
|
225
244
|
License: MIT AND Unicode-3.0
|
|
226
245
|
Source: https://github.com/rivo/uniseg/tree/v0.4.7
|
package/bundle.json
CHANGED
|
@@ -3,32 +3,32 @@
|
|
|
3
3
|
"bug": {
|
|
4
4
|
"project": "bug-bot",
|
|
5
5
|
"command": "bbb",
|
|
6
|
-
"version": "0.
|
|
7
|
-
"source_commit": "
|
|
6
|
+
"version": "0.6.0",
|
|
7
|
+
"source_commit": "29d20411d60b0eab94910346efef28d42c9c66ac"
|
|
8
8
|
},
|
|
9
9
|
"feature": {
|
|
10
10
|
"project": "feature-bot",
|
|
11
11
|
"command": "bfb",
|
|
12
|
-
"version": "0.
|
|
13
|
-
"source_commit": "
|
|
12
|
+
"version": "0.4.0",
|
|
13
|
+
"source_commit": "4c9cc8cd7dced2c065a5e43c3d875683d0534087"
|
|
14
14
|
},
|
|
15
15
|
"issue": {
|
|
16
16
|
"project": "issue-bot",
|
|
17
17
|
"command": "bib",
|
|
18
|
-
"version": "0.5.
|
|
19
|
-
"source_commit": "
|
|
18
|
+
"version": "0.5.9",
|
|
19
|
+
"source_commit": "88ed397f9862f2c069372b15ef24282ec3bf4ed9"
|
|
20
20
|
},
|
|
21
21
|
"review": {
|
|
22
22
|
"project": "review-bot",
|
|
23
23
|
"command": "brv",
|
|
24
|
-
"version": "0.2.
|
|
25
|
-
"source_commit": "
|
|
24
|
+
"version": "0.2.9",
|
|
25
|
+
"source_commit": "c940c1888346d6d77ad88257cec8946ed8adb90b"
|
|
26
26
|
},
|
|
27
27
|
"release": {
|
|
28
28
|
"project": "release-bot",
|
|
29
29
|
"command": "brb",
|
|
30
|
-
"version": "0.
|
|
31
|
-
"source_commit": "
|
|
30
|
+
"version": "0.8.0",
|
|
31
|
+
"source_commit": "328694104cb6ce20d8276a79a517ff75809a12e8"
|
|
32
32
|
},
|
|
33
33
|
"repo": {
|
|
34
34
|
"project": "repo-bot",
|
|
@@ -8,9 +8,9 @@ Node.js and Python interpreters are installed separately and are not bundled.
|
|
|
8
8
|
|
|
9
9
|
==============================================================================
|
|
10
10
|
|
|
11
|
-
github.com/BrokkAi/acp-go v0.1
|
|
11
|
+
github.com/BrokkAi/acp-go v0.8.1
|
|
12
12
|
License: Apache-2.0
|
|
13
|
-
Source: https://github.com/BrokkAi/acp-go/tree/v0.1
|
|
13
|
+
Source: https://github.com/BrokkAi/acp-go/tree/v0.8.1
|
|
14
14
|
|
|
15
15
|
==============================================================================
|
|
16
16
|
|
|
@@ -221,6 +221,25 @@ Source: https://github.com/BrokkAi/acp-go/tree/v0.1.0
|
|
|
221
221
|
|
|
222
222
|
==============================================================================
|
|
223
223
|
|
|
224
|
+
--- github.com/BrokkAi/acp-go/NOTICE ---
|
|
225
|
+
|
|
226
|
+
acp-go
|
|
227
|
+
Copyright 2026 Brokk.ai and contributors
|
|
228
|
+
|
|
229
|
+
This project is licensed under the Apache License, Version 2.0.
|
|
230
|
+
See LICENSE for the full terms. Third-party terms and attribution are
|
|
231
|
+
provided in licenses/THIRD_PARTY_NOTICES.txt.
|
|
232
|
+
|
|
233
|
+
Originally developed as part of BrokkAi/release-bot.
|
|
234
|
+
|
|
235
|
+
The pinned Agent Client Protocol JSON Schema artifacts in schema/
|
|
236
|
+
(schema.json, meta.json, VERSION) are distributed by the ACP project
|
|
237
|
+
(https://github.com/agentclientprotocol/agent-client-protocol) under the
|
|
238
|
+
Apache License 2.0. The generated code in schema/*_gen.go derives from
|
|
239
|
+
those artifacts.
|
|
240
|
+
|
|
241
|
+
==============================================================================
|
|
242
|
+
|
|
224
243
|
Go runtime and standard library (BSD-3-Clause)
|
|
225
244
|
Source: https://go.googlesource.com/go/+/refs/tags/go1.27.1/LICENSE
|
|
226
245
|
|
package/package.json
CHANGED