@brokkai/brokk-town-linux-arm64 0.1.0 → 0.1.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.
- package/BUILD.json +1 -1
- package/README.md +75 -28
- package/bin/bt +0 -0
- package/package.json +1 -1
package/BUILD.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit": "
|
|
1
|
+
{"commit": "8222b017b527bd9879b1261370f64c12e297f8b4", "tag": "v0.1.2", "target": "linux-arm64"}
|
package/README.md
CHANGED
|
@@ -70,12 +70,19 @@ a commit shipped. Columns, prompts and transitions are not programmable.
|
|
|
70
70
|
## Installation and releases
|
|
71
71
|
|
|
72
72
|
Source is published at [BrokkAi/brokk-town](https://github.com/BrokkAi/brokk-town).
|
|
73
|
-
The
|
|
73
|
+
The stable release is available from [GitHub](https://github.com/BrokkAi/brokk-town/releases/tag/v0.1.1)
|
|
74
|
+
and npm:
|
|
74
75
|
|
|
75
76
|
```sh
|
|
76
|
-
npm install -g @brokkai/brokk-town
|
|
77
|
+
npm install -g @brokkai/brokk-town
|
|
77
78
|
```
|
|
78
79
|
|
|
80
|
+
While the service is running, Town checks npm outside its input and render loops.
|
|
81
|
+
When a newer stable release is available, the browser offers an **Upgrade Town**
|
|
82
|
+
button and the TUI offers `u`. After confirmation, the service installs that exact
|
|
83
|
+
version and asks for a restart. A failed or offline check never interrupts local
|
|
84
|
+
operation.
|
|
85
|
+
|
|
79
86
|
You can also build from source as above or install the current branch:
|
|
80
87
|
|
|
81
88
|
```sh
|
|
@@ -84,8 +91,8 @@ go install github.com/BrokkAi/brokk-town/cmd/bt@master
|
|
|
84
91
|
|
|
85
92
|
The release pipeline builds checksum-verified Linux/macOS archives for amd64 and
|
|
86
93
|
arm64, plus `@brokkai/brokk-town` and four native npm packages. All packages carry
|
|
87
|
-
the project license, attribution, and complete third-party notices. The
|
|
88
|
-
|
|
94
|
+
the project license, attribution, and complete third-party notices. The supported
|
|
95
|
+
installer commands are:
|
|
89
96
|
|
|
90
97
|
```sh
|
|
91
98
|
sh install.sh # From a checkout; defaults to ~/.local/bin
|
|
@@ -100,24 +107,17 @@ for first-release setup, access checks, publishing, and recovery.
|
|
|
100
107
|
|
|
101
108
|
## Connect real repositories
|
|
102
109
|
|
|
103
|
-
Install and authenticate `git`, GitHub CLI (`gh`), your chosen
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
@brokkai/feature-bot@0.1.1 \
|
|
115
|
-
@brokkai/issue-bot@0.5.1 \
|
|
116
|
-
@brokkai/review-bot@0.2.1 \
|
|
117
|
-
@brokkai/release-bot@0.5.1
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Checksum-verified native bot releases are equally supported. The worker uses
|
|
110
|
+
Install and authenticate `git`, GitHub CLI (`gh`), Node.js/npm, and your chosen
|
|
111
|
+
coding agent. Town does not require a separate bot installation: each dispatch
|
|
112
|
+
uses `npx --yes` with an exact compatible release of bug-bot, feature-bot,
|
|
113
|
+
issue-bot, review-bot, or release-bot, then communicates with it over a private
|
|
114
|
+
Unix socket. Town never selects an ambient or floating bot version.
|
|
115
|
+
Each bot's Settings panel shows its current pin. **Check for bot update** reads
|
|
116
|
+
npm's stable tag, and **Use VERSION** stages that exact version for the Mayor to
|
|
117
|
+
save. The pin changes only for that town and takes effect on the bot's next run;
|
|
118
|
+
capability and reported-version checks still run before any repository work.
|
|
119
|
+
|
|
120
|
+
The worker uses
|
|
121
121
|
standard-library HTTP/JSON, negotiates protocol and capabilities before work,
|
|
122
122
|
streams contiguous progress events, and returns explicit typed results. It never
|
|
123
123
|
requires Town to parse bot-private state. See
|
|
@@ -128,11 +128,10 @@ requires Node.js and `npx`. Choose another harness in Settings as described belo
|
|
|
128
128
|
Git must already be able to clone and push your GitHub repositories; Town uses
|
|
129
129
|
the current Git/gh credentials.
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
through durable bot state and GitHub reconciliation.
|
|
131
|
+
Town resolves and hashes the `npx` executable for every dispatch and rechecks it
|
|
132
|
+
and the pinned bot's reported version afterward. A mid-dispatch executable or
|
|
133
|
+
version change fails uncertainly and is resolved through durable bot state and
|
|
134
|
+
GitHub reconciliation.
|
|
136
135
|
|
|
137
136
|
```sh
|
|
138
137
|
./bin/bt serve --repo BrokkAi/my-project
|
|
@@ -295,6 +294,13 @@ Animation never initiates a GitHub write. Reconnecting does not replay previousl
|
|
|
295
294
|
seen deliveries. External PRs receive reviews but their branches are left to their
|
|
296
295
|
authors; only locally recorded Town-created branches enter automatic repair.
|
|
297
296
|
|
|
297
|
+
New external issues and PRs first wait at Town Hall for a durable Mayoral
|
|
298
|
+
decision. **Admit** sends the work to Issue Bot or Review Bot; **Decline** keeps
|
|
299
|
+
Town from acting on it without changing GitHub. Feature Bot proposals follow the
|
|
300
|
+
same route by default and can be exempted in **Town Settings → External
|
|
301
|
+
contributions**. The browser provides the primary decision UX; scripts may use
|
|
302
|
+
`bt admit --repo OWNER/REPO --task issue:123` or `bt decline ...`.
|
|
303
|
+
|
|
298
304
|
A review is bound to the exact base, head, PR description, and discussion snapshot. A suppressed
|
|
299
305
|
duplicate comment is still a finding to check. Complete coverage, explicit
|
|
300
306
|
resolution of every concern, and validation evidence are required for a clean
|
|
@@ -304,6 +310,7 @@ repair cycles become visible tasks needing attention.
|
|
|
304
310
|
The default merge policy is `bot`: auto-merge eligible Town-created PRs. `manual`
|
|
305
311
|
leaves merging to the operator; `all` also permits eligible external PRs. Town-managed merges require current clean Town evidence, GitHub mergeability, required checks
|
|
306
312
|
and approvals. Town uses an expected-head squash merge, without admin bypass.
|
|
313
|
+
Change this at any time under **Town Settings → External contributions**.
|
|
307
314
|
Repositories that require a merge queue or prohibit squash merging need manual
|
|
308
315
|
merges for now. GitHub is the final authority at write time.
|
|
309
316
|
|
|
@@ -318,7 +325,8 @@ bot profiles, verification command, and policy, then run:
|
|
|
318
325
|
|
|
319
326
|
Configuration is a JSON array for town-only files. Each entry supplies `repo`, optional `branch` and
|
|
320
327
|
`harness`, `agent`, optional `bot_agents`, optional `verify` argument vector,
|
|
321
|
-
`merge_policy`, `poll_seconds`, `report_seconds`, and
|
|
328
|
+
`merge_policy`, `mayoral_feature_review`, `poll_seconds`, `report_seconds`, and
|
|
329
|
+
`max_cycles`. The example
|
|
322
330
|
lists all required values. To persist global capacity alongside the town list,
|
|
323
331
|
use the object form `{"max_workers": 2, "towns": [...]}`; the legacy array form
|
|
324
332
|
remains accepted. When `serve --config` includes `max_workers`, that value
|
|
@@ -362,6 +370,45 @@ local key in a URL fragment. `connection.json` and state snapshots are mode 0600
|
|
|
362
370
|
Private agent commands, environment, and authentication configuration are omitted
|
|
363
371
|
from public configuration snapshots for both town defaults and bot profiles;
|
|
364
372
|
each bot's effective harness, model, and effort are visible.
|
|
373
|
+
|
|
374
|
+
### Source funnels
|
|
375
|
+
|
|
376
|
+
Optional `funnels` make issue intake source-neutral. Each named funnel declares a
|
|
377
|
+
provider, validated location/filter, a local credential reference, explicit
|
|
378
|
+
priority policy, overlap policy, and allowlisted lifecycle mappings. Credential
|
|
379
|
+
references are resolved by adapters at request time; secret values never enter
|
|
380
|
+
Town state, model prompts, events, logs, or public snapshots. Public state shows
|
|
381
|
+
the safe funnel configuration and each normalized item's source identity, URL,
|
|
382
|
+
revision, external state, eligibility, capabilities, priority policy, last sync,
|
|
383
|
+
and typed outcome.
|
|
384
|
+
|
|
385
|
+
GitHub funnels support query, `selected_issues`, and comma-separated
|
|
386
|
+
`include_labels`/`exclude_labels`. Focused selections are read by issue identity
|
|
387
|
+
instead of relying on search indexing. `working` and `blocked` mappings translate
|
|
388
|
+
the normalized lifecycle into confirmed label changes. Slack is the second real
|
|
389
|
+
adapter: it reads a configured channel through paginated Web API calls and maps
|
|
390
|
+
configured lifecycle actions to reactions plus bounded thread replies. Slack
|
|
391
|
+
tokens are obtained from a private resolver immediately before each request.
|
|
392
|
+
Read-only funnels and empty per-transition mappings stay visibly unsupported.
|
|
393
|
+
|
|
394
|
+
Funnels also recognize provider-native done signals on inbound reads. A Slack
|
|
395
|
+
message with a present `:white_check_mark:` or `:heavy_check_mark:` reaction is
|
|
396
|
+
normalized as **Done**; a GitHub issue whose state is `closed` is normalized as
|
|
397
|
+
**Closed**. Both remain in the durable inventory with their source provenance,
|
|
398
|
+
but become ineligible and leave the worker queue. A GitHub selector must include
|
|
399
|
+
closed issues (for example `is:issue`, not `is:issue is:open`) if Town is to
|
|
400
|
+
observe that transition. Done is based only on an explicit item state or reaction;
|
|
401
|
+
an incomplete or empty inventory never closes missing work by implication.
|
|
402
|
+
|
|
403
|
+
Lifecycle mutations use a durable intent before the provider call. A lost
|
|
404
|
+
response remains `uncertain`; reconciliation is read-only and absence of a
|
|
405
|
+
receipt never permits a duplicate label, reaction, comment, or thread reply.
|
|
406
|
+
Incomplete reads, partial discovery, authentication failures, rate limits,
|
|
407
|
+
unsupported actions, and uncertain writes remain distinct outcomes. Funnel
|
|
408
|
+
declaration order is never scheduling priority. Overlapping source identities
|
|
409
|
+
are retained, deduplicated, or rejected only according to the explicit overlap
|
|
410
|
+
policy. Demo and tests use synthetic or fake providers and perform no live source
|
|
411
|
+
or agent automation. See the complete JSON example for GitHub and Slack shapes.
|
|
365
412
|
Local logs and worktrees can contain repository content; keep this directory private.
|
|
366
413
|
|
|
367
414
|
If a push or merge response is lost, Town checks GitHub rather than assuming
|
package/bin/bt
CHANGED
|
Binary file
|
package/package.json
CHANGED