@chrok/braid 0.1.2 → 0.2.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.
- package/CHANGELOG.md +167 -16
- package/README.md +232 -149
- package/ROADMAP.md +77 -27
- package/SECURITY.md +7 -3
- package/dist/adapters/openai.js +4 -4
- package/dist/budgets.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/merge-tools.d.ts +1 -1
- package/dist/merge-tools.js +8 -8
- package/dist/runtime.d.ts +4 -2
- package/dist/runtime.js +396 -227
- package/dist/types.d.ts +142 -19
- package/dist/validate.d.ts +7 -1
- package/dist/validate.js +143 -13
- package/dist/workspaces.d.ts +15 -2
- package/dist/workspaces.js +172 -88
- package/docs/benchmark.md +3 -0
- package/docs/compatibility.md +44 -3
- package/docs/examples.md +2 -1
- package/docs/execution-control.md +160 -0
- package/docs/releasing.md +66 -1
- package/docs/repository-settings.md +41 -2
- package/docs/resource-limits.md +15 -5
- package/examples/code-review.ts +3 -3
- package/examples/execution-control.ts +38 -0
- package/examples/failure-handling.ts +2 -2
- package/package.json +10 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,26 +2,153 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.2.0 — 2026-10-02
|
|
6
|
+
|
|
7
|
+
### Features and breaking changes
|
|
8
|
+
|
|
9
|
+
- Separate editable node definitions from unique execution instances, preserving
|
|
10
|
+
captured prompts, policies, predecessor identities, and historical results
|
|
11
|
+
([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
|
|
12
|
+
- Support bounded structured loops with explicit decision feedback, finite round
|
|
13
|
+
limits, fresh worktrees per visit, and no overlapping/nested rounds
|
|
14
|
+
([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
|
|
15
|
+
- Add `startBraid`, revision-checked live updates, `pauseAfter`, and atomic
|
|
16
|
+
update/resume. Pi adds `braid_update`, `braid_resume`, exact execution retrieval,
|
|
17
|
+
iteration-aware reminders, and live topology updates
|
|
18
|
+
([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
|
|
19
|
+
- Derive successor worktrees from predecessor checkpoints, including read-only
|
|
20
|
+
executions. Split isolated `merge` from source-checkout `integrate`; remove
|
|
21
|
+
automatic final integration. Workspace keys and merge dispositions use
|
|
22
|
+
`executionId`; sources remain reusable until final cleanup
|
|
23
|
+
([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
|
|
24
|
+
- Make invocation failures optional by default. Captured `requireSuccess: true`
|
|
25
|
+
failures abort siblings and fail the job after writes/checkpoint/cleanup drain.
|
|
26
|
+
Add a finite `maxExecutions` budget shared across loops and live updates
|
|
27
|
+
([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
|
|
28
|
+
- Add submission-local `promptTemplates` and explicit template-reference prompts
|
|
29
|
+
to core and Pi's `braid` tool. Core expands `{{name}}` placeholders using literal
|
|
30
|
+
string variables, validates every rendered prompt before execution, and keeps
|
|
31
|
+
existing plain-string/default merge prompts and runner contracts. Shared
|
|
32
|
+
instructions no longer need repeating in each node's tool-call arguments
|
|
33
|
+
([#33](https://github.com/Epsirom/braid/pull/33)) — @Epsirom.
|
|
34
|
+
- Add opt-in `notifyOnCompletion` on execute, decision, and merge nodes. Pi sends
|
|
35
|
+
parent reminders on node success/failure, including timeout/cancellation of
|
|
36
|
+
running nodes, with delivery acknowledgement and dropped-message retries.
|
|
37
|
+
Skipped nodes stay silent; whole-job reminders remain enabled. Add
|
|
38
|
+
`braid_status({jobId, nodeId})` for full intermediate outputs/errors, with
|
|
39
|
+
overflow results saved to a private temporary file. Live graph
|
|
40
|
+
controls are now available through the execution-control API above
|
|
41
|
+
([#34](https://github.com/Epsirom/braid/pull/34),
|
|
42
|
+
[#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
|
|
43
|
+
|
|
44
|
+
See the [0.1 → 0.2 migration guide](docs/compatibility.md#migrating-from-01-to-02)
|
|
45
|
+
before upgrading: use `integrate` for source-checkout writes, add explicit final
|
|
46
|
+
integration, use execution IDs for historical results and merge dispositions,
|
|
47
|
+
and set `requireSuccess: true` where failures must stop the whole run.
|
|
48
|
+
|
|
49
|
+
### Maintenance
|
|
50
|
+
|
|
51
|
+
- Refresh repository/package descriptions and discovery keywords for mutable
|
|
52
|
+
agent graphs, bounded loops, and explicit workspace integration. Add npm links
|
|
53
|
+
and version badges, distinguish 0.2 source from published 0.1.3, and align the
|
|
54
|
+
roadmap and release checklist with the new execution contract
|
|
55
|
+
([#36](https://github.com/Epsirom/braid/pull/36)) — @Epsirom.
|
|
56
|
+
- Update `@types/node` from 22.20.2 to 22.20.4
|
|
57
|
+
([#17](https://github.com/Epsirom/braid/pull/17)) — @dependabot[bot].
|
|
58
|
+
|
|
59
|
+
### New Contributors
|
|
60
|
+
|
|
61
|
+
No first-time human contributors in this release.
|
|
62
|
+
|
|
63
|
+
[Full comparison](https://github.com/Epsirom/braid/compare/v0.1.3...v0.2.0).
|
|
64
|
+
|
|
65
|
+
## 0.1.3 — 2026-09-29
|
|
66
|
+
|
|
67
|
+
### Features and fixes
|
|
68
|
+
|
|
69
|
+
- Add per-node `workspace: "read-only" | "worktree"` for execute/decision nodes.
|
|
70
|
+
Read-only nodes inspect the live source directory with Git inspection, without
|
|
71
|
+
writable tools, snapshots, worktrees, or merge sources. Existing defaults are
|
|
72
|
+
preserved. Pi's braid tool guides analysis/review/routing/synthesis to read-only
|
|
73
|
+
nodes and implementation to worktrees; explicit read-only workspace metadata
|
|
74
|
+
is included in results and events
|
|
75
|
+
([#28](https://github.com/Epsirom/braid/pull/28)) — @Epsirom.
|
|
76
|
+
- Skip the automatic merge agent when all remaining workspaces match their
|
|
77
|
+
snapshots, preserving analysis-only terminal outputs and original node errors.
|
|
78
|
+
Mixed runs pass only changed sources to the automatic merge. Unchanged sources
|
|
79
|
+
retain recovery refs pointing to their snapshots without empty checkpoint
|
|
80
|
+
commits; explicit merge nodes still run even for unchanged sources
|
|
81
|
+
([#27](https://github.com/Epsirom/braid/pull/27)) — @Epsirom.
|
|
82
|
+
- Prevent Pi TUI crashes in narrow terminals by truncating the flowchart fallback
|
|
83
|
+
message to the terminal width
|
|
84
|
+
([#24](https://github.com/Epsirom/braid/pull/24)) — @powerfooI
|
|
85
|
+
(**First-time contributor**).
|
|
86
|
+
|
|
87
|
+
### Maintenance
|
|
88
|
+
|
|
89
|
+
- Scan fork pull requests with CodeQL advanced setup so external contributions
|
|
90
|
+
can satisfy the required security checks
|
|
91
|
+
([#25](https://github.com/Epsirom/braid/pull/25)) — @Epsirom.
|
|
92
|
+
- Make timeout coverage independent of workspace timing
|
|
93
|
+
([#26](https://github.com/Epsirom/braid/pull/26)) — @Epsirom.
|
|
94
|
+
|
|
95
|
+
### New Contributors
|
|
96
|
+
|
|
97
|
+
- Thanks to @powerfooI for their first contribution in
|
|
98
|
+
[#24](https://github.com/Epsirom/braid/pull/24)!
|
|
99
|
+
|
|
100
|
+
[Full comparison](https://github.com/Epsirom/braid/compare/v0.1.2...v0.1.3).
|
|
101
|
+
|
|
5
102
|
## 0.1.2 — 2026-09-27
|
|
6
103
|
|
|
104
|
+
### Features and fixes
|
|
105
|
+
|
|
7
106
|
- Make Pi depend on the exact `@chrok/braid` version instead of bundling core.
|
|
8
|
-
Export shared model-adapter helpers from the existing root entry point
|
|
107
|
+
Export shared model-adapter helpers from the existing root entry point
|
|
108
|
+
([#19](https://github.com/Epsirom/braid/pull/19)) — @Epsirom.
|
|
109
|
+
|
|
110
|
+
### Build and release maintenance
|
|
111
|
+
|
|
9
112
|
- Use one npm workspace lockfile and a development-only local core link; test
|
|
10
|
-
Pi-only installation against the unpublished core tarball outside the checkout
|
|
11
|
-
|
|
113
|
+
Pi-only installation against the unpublished core tarball outside the checkout
|
|
114
|
+
([#19](https://github.com/Epsirom/braid/pull/19)) — @Epsirom.
|
|
115
|
+
- Wait for core registry metadata and tarball availability before publishing Pi
|
|
116
|
+
([#19](https://github.com/Epsirom/braid/pull/19)) — @Epsirom.
|
|
117
|
+
|
|
118
|
+
### New Contributors
|
|
119
|
+
|
|
120
|
+
No first-time human contributors in this release.
|
|
121
|
+
|
|
122
|
+
[Full comparison](https://github.com/Epsirom/braid/compare/v0.1.1...v0.1.2).
|
|
12
123
|
|
|
13
124
|
## 0.1.1 — 2026-09-27
|
|
14
125
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
for deliberate compatibility changes across both packages.
|
|
126
|
+
### Features and fixes
|
|
127
|
+
|
|
18
128
|
- Clarify Pi tool and context guidance for parallel implementation and merge
|
|
19
129
|
nodes; describe read-only filesystem access by the node's assigned workspace
|
|
20
|
-
instead of assuming its directory is outside Git
|
|
130
|
+
instead of assuming its directory is outside Git
|
|
131
|
+
([#15](https://github.com/Epsirom/braid/pull/15)) — @Epsirom.
|
|
21
132
|
- Trim OpenAI-compatible base URL trailing slashes in linear time, avoiding
|
|
22
|
-
excessive regular-expression backtracking on long internal slash sequences
|
|
133
|
+
excessive regular-expression backtracking on long internal slash sequences
|
|
134
|
+
([#14](https://github.com/Epsirom/braid/pull/14)) — @Epsirom.
|
|
135
|
+
|
|
136
|
+
### Maintenance
|
|
137
|
+
|
|
138
|
+
- Validate the Pi integration against Pi 0.87.1; update GitHub Actions and tsx
|
|
139
|
+
([#16](https://github.com/Epsirom/braid/pull/16)) — @Epsirom.
|
|
140
|
+
- Group routine dependency updates and reserve Node/TypeScript major upgrades
|
|
141
|
+
for deliberate compatibility changes across both packages
|
|
142
|
+
([#16](https://github.com/Epsirom/braid/pull/16)) — @Epsirom.
|
|
23
143
|
- Protect the main branch and version tags; document repository governance,
|
|
24
|
-
CodeQL checks, Actions restrictions, and immutable releases
|
|
144
|
+
CodeQL checks, Actions restrictions, and immutable releases
|
|
145
|
+
([#14](https://github.com/Epsirom/braid/pull/14)) — @Epsirom.
|
|
146
|
+
|
|
147
|
+
### New Contributors
|
|
148
|
+
|
|
149
|
+
No first-time human contributors in this release.
|
|
150
|
+
|
|
151
|
+
[Full comparison](https://github.com/Epsirom/braid/compare/v0.1.0...v0.1.1).
|
|
25
152
|
|
|
26
153
|
## 0.1.0 — 2026-09-27
|
|
27
154
|
|
|
@@ -29,18 +156,42 @@ Initial public release. Publication is tracked in
|
|
|
29
156
|
[GitHub releases](https://github.com/Epsirom/braid/releases).
|
|
30
157
|
|
|
31
158
|
- Framework-independent DAG runtime with conditional decisions, bounded
|
|
32
|
-
concurrency, explicit joins, failure propagation, and isolated node context
|
|
159
|
+
concurrency, explicit joins, failure propagation, and isolated node context
|
|
160
|
+
([initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e))
|
|
161
|
+
— @Epsirom (**First-time contributor**).
|
|
33
162
|
- Caller cancellation, node/graph deadlines, immutable events, partial results,
|
|
34
|
-
model overrides, and provider-reported token accounting
|
|
35
|
-
|
|
163
|
+
model overrides, and provider-reported token accounting
|
|
164
|
+
([initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e)) — @Epsirom.
|
|
165
|
+
- OpenAI-compatible Chat Completions runner with validated decision tool calls
|
|
166
|
+
([initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e)) — @Epsirom.
|
|
36
167
|
- Pi background jobs, completion reminders, cancellation, guarded worker tools,
|
|
37
|
-
and a live flow panel
|
|
168
|
+
and a live flow panel
|
|
169
|
+
([573a2a4](https://github.com/Epsirom/braid/commit/573a2a4c4b240ad29ce7ed7c2ef1d063187a49c8),
|
|
170
|
+
[#4](https://github.com/Epsirom/braid/pull/4)). The Pi package includes the
|
|
171
|
+
matching core runtime ([#5](https://github.com/Epsirom/braid/pull/5)) — @Epsirom.
|
|
38
172
|
- Core-managed Git worktrees, checkpoint/backup refs, agent-driven merge nodes,
|
|
39
|
-
failure context on unconditional edges
|
|
173
|
+
failure context on unconditional edges
|
|
174
|
+
([#4](https://github.com/Epsirom/braid/pull/4)), and optional Pi tool budgets
|
|
175
|
+
with finite-budget reminders ([#3](https://github.com/Epsirom/braid/pull/3)) — @Epsirom.
|
|
176
|
+
|
|
177
|
+
### Packaging and maintenance
|
|
178
|
+
|
|
40
179
|
- Clean package builds, isolated tarball checks, CI for Node and supported
|
|
41
|
-
operating systems, and an npm trusted-publishing workflow
|
|
180
|
+
operating systems, and an npm trusted-publishing workflow
|
|
181
|
+
([#5](https://github.com/Epsirom/braid/pull/5)) — @Epsirom.
|
|
42
182
|
- Install guides, runnable offline examples, compatibility and resource-limit
|
|
43
|
-
documentation, scheduler benchmarks, and contribution/security policies
|
|
183
|
+
documentation, scheduler benchmarks, and contribution/security policies
|
|
184
|
+
([#5](https://github.com/Epsirom/braid/pull/5)) — @Epsirom.
|
|
185
|
+
|
|
186
|
+
### New Contributors
|
|
187
|
+
|
|
188
|
+
- Thanks to @Epsirom for starting the project with the
|
|
189
|
+
[initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e)
|
|
190
|
+
and contributing [#3](https://github.com/Epsirom/braid/pull/3),
|
|
191
|
+
[#4](https://github.com/Epsirom/braid/pull/4), and
|
|
192
|
+
[#5](https://github.com/Epsirom/braid/pull/5).
|
|
193
|
+
|
|
194
|
+
[Release history](https://github.com/Epsirom/braid/commits/v0.1.0).
|
|
44
195
|
|
|
45
196
|
Limitations: no persistent jobs, retries, token/spend budgets, streaming core
|
|
46
197
|
responses, graph mutation, nested runs, or sandboxing. See the roadmap and
|