@spoolway/win32-x64 0.2.0 → 0.3.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/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  <a href="https://github.com/marvingygas/spoolway/releases/latest"><img alt="release" src="https://img.shields.io/github/v/release/marvingygas/spoolway?style=flat-square&label=release&labelColor=3f3f46&color=18181b"></a>
12
12
  </p>
13
13
 
14
- Minimalistic command line state machine for turning coding agents into a pipeline you can actually reason about. No dependencies, terminal native. Runs headless or controls supported multiplexers. Worktree management and built-in support for GitHub's stacked pull requests.
14
+ Minimalistic command line state machine for turning coding agents into a pipeline you can actually reason about. No dependencies, terminal native. Runs headless or in a supported multiplexer. Manages worktrees and opens GitHub stacked pull requests.
15
15
 
16
16
  Supported providers:
17
17
 
@@ -26,36 +26,33 @@ Supported multiplexers:
26
26
 
27
27
  ## Why
28
28
 
29
- Running one coding agent is easy. Running five is tab-juggling: which one is done, which
30
- one is stuck, and which one is quietly rewriting a file another one needs. The order lives
31
- in your head, and it stops the moment you look away.
29
+ Running one coding agent is easy. Running five is hard: which one is done, which one is
30
+ stuck, and which one is rewriting a file another one needs. The order lives in your head.
32
31
 
33
- It replaces the orchestrating agent that is supposed to keep everything together — and
34
- sometimes does. spoolway won't surprise you with a bill or an opinion.
32
+ spoolway replaces the orchestrating agent that keeps everything together. It has no model
33
+ inside, so it never surprises you with a bill or an opinion.
35
34
 
36
35
  ## Features
37
36
 
38
- - **A dispatcher with no model in it.** Every scheduling decision is mechanical a
39
- counter, a timestamp, a position in the pipeline file. It never drifts, costs nothing,
40
- and is safe to interrupt at any point.
37
+ - **A dispatcher with no model in it.** Every scheduling decision is a counter, a
38
+ timestamp, or a position in the pipeline file. It costs nothing and is safe to interrupt.
41
39
  - **Any mix of agents.** Each step names its own agent and model: a local model for
42
- implementation, a cloud model for review, a shell command for the test suite.
43
- - **A worktree per task.** Every task builds on its own branch in its own checkout, so
44
- parallel tasks never step on each other.
40
+ implementation, a cloud model for review, a shell command for the tests.
41
+ - **A worktree per task.** Every task works on its own branch in its own checkout.
42
+ Parallel tasks never touch each other's files.
45
43
  - **Stacked pull requests.** A dependent task's branch is cut from its dependency's
46
- branch, so a chain of tasks arrives as one ordered stack of PRs. Nothing merges itself;
47
- you land the stack. Optional, and driven by **`spoolway stack`**.
48
- - **Session reuse.** A step can resume its prompt's earlier conversation instead of
49
- paying to rebuild context, bounded by how full the model's window already is.
50
- - **Unattended runs.** Overnight, nothing parks for a person: blocked work is resumed by
51
- an unblocker prompt, with a token or dollar ceiling as the brake.
52
- - **Trials.** Fork a whole group into one arm per task, each on its own pipeline, and queue
53
- them together, then read the arms side by side in eval.
54
- - **Routines.** Keep the tasks you run over and over in `.spoolway/routines/`.
55
- - **Jobs.** Run a routine on a cron schedule. The dispatcher fires it from its own pass, so
56
- nightly work needs nothing but a dispatcher left running.
57
- - **Eval built in.** Every lane's spend and outcome land in a ledger, so you can see what
58
- your last pipeline edit did to pass rate and price.
44
+ branch. A chain of tasks arrives as one ordered stack of PRs. You land the stack.
45
+ Optional, driven by **`spoolway stack`**.
46
+ - **Session reuse.** A step can resume its prompt's earlier conversation. It stops
47
+ reusing when the model's window is too full.
48
+ - **Unattended runs.** Overnight, an unblocker prompt resumes blocked work. A token or
49
+ dollar ceiling stops the run.
50
+ - **Trials.** Fork a group into one arm per task, each on its own pipeline, and compare
51
+ the arms in eval.
52
+ - **Routines.** Keep the tasks you run more than once in `.spoolway/routines/`.
53
+ - **Jobs.** Run a routine on a cron schedule. A running dispatcher fires it.
54
+ - **Eval built in.** Every lane's spend and outcome go into a ledger. You see what your
55
+ last pipeline edit did to pass rate and price.
59
56
 
60
57
  ## Install
61
58
 
@@ -63,10 +60,9 @@ sometimes does. spoolway won't surprise you with a bill or an opinion.
63
60
  npm install -g spoolway
64
61
  ```
65
62
 
66
- A prebuilt binary, not a Node program the package is a thin wrapper that runs it. Linux
67
- (x64, arm64, musl), macOS (Apple Silicon, Intel) and Windows (x64, experimental). Successful
68
- self-updates show what changed, and `spoolway whats-new` reads the installed release notes
69
- offline from any directory.
63
+ The package is a small wrapper around a prebuilt binary. It runs on Linux (x64, arm64,
64
+ musl), macOS (Apple Silicon, Intel) and Windows (x64, experimental). `spoolway update` shows
65
+ what changed, and `spoolway whats-new` prints the release notes offline.
70
66
 
71
67
  From source instead, in a clone of this repository:
72
68
 
@@ -84,24 +80,20 @@ Platform notes and requirements in full: **[Installation and setup](docs/install
84
80
  spoolway init
85
81
  ```
86
82
 
87
- `spoolway doctor` checks that everything the configured pipeline needs is actually
88
- present, any time you want to confirm the project would run.
83
+ `spoolway doctor` checks that everything the configured pipeline needs is present.
89
84
 
90
85
  ### 2. Plan, or create queueable spoolway tasks directly
91
86
 
92
- Tell the `/spoolway-plan` skill what you want built. It argues the shape with you until
93
- every question is settled, and writes the result as one plan page. Approve the page and it
94
- cuts the plan into tasks.
87
+ Tell the `/spoolway-plan` skill what you want built. It talks the shape through with you
88
+ and writes one plan page. Approve the page and it cuts the plan into tasks.
95
89
 
96
90
  <img src="docs/screenshots/plan.png" alt="a plan page written by /spoolway-plan">
97
91
 
98
- Already know the shape you want? `/spoolway-tasks` skips the argument and cuts the task
99
- documents straight away.
92
+ If you already know the shape, `/spoolway-tasks` cuts the task documents straight away.
100
93
 
101
- **Both skills are optional.** A task is only a Markdown file in
102
- `~/.spoolway/<project>/pending/`, so anything that writes Markdown can produce one an
103
- issue exporter, a script, or a model you already talk to. The following command prints
104
- the frontmatter a task document must carry:
94
+ **Both skills are optional.** A task is a Markdown file in `~/.spoolway/<project>/pending/`.
95
+ An issue exporter, a script, or any model can write one. This command prints the
96
+ frontmatter a task document must carry:
105
97
 
106
98
  ```
107
99
  spoolway task contract
@@ -115,11 +107,10 @@ spoolway queue
115
107
 
116
108
  <img src="docs/screenshots/queue.png" alt="the queue screen">
117
109
 
118
- *The queue screen lists the groups on the left and previews the selected group's tasks on the
119
- right. Each task names its own pipeline. `enter` queues what is checked and offers to start
120
- dispatching on the spot. `g` gates a task on the fly, `p` forks one across several pipelines as
121
- a trial, `s` saves a group as a routine, and `r` opens the routines you keep in
122
- `.spoolway/routines/`.*
110
+ *The queue screen lists groups on the left and the selected group's tasks on the right.
111
+ Each task names its own pipeline. `enter` queues what is checked and offers to start
112
+ dispatching. `g` gates a task, `p` forks a group into a trial, `s` saves a group as a
113
+ routine, and `r` opens the routines in `.spoolway/routines/`.*
123
114
 
124
115
  ### 4. Dispatch
125
116
 
@@ -129,10 +120,10 @@ spoolway dispatch # watch the board, and step in only where you are needed
129
120
 
130
121
  <img src="docs/screenshots/dispatch.png" alt="the dispatcher board">
131
122
 
132
- *One row per task, grouped by `group:`. The board says what each lane is spending as it
133
- spends it, what every queued task is waiting on, and which tasks are paused for you. NEXT
134
- distinguishes a lane holding a question from a task waiting to be resumed past a gate. The
135
- ledger at the bottom shows the slots in use and every scheduled job with its next firing.*
123
+ *One row per task, grouped by `group:`. The board shows what each lane is spending, what
124
+ every queued task waits on, and which tasks are paused for you. NEXT tells a lane holding a
125
+ question apart from a task waiting at a gate. The bottom line shows the slots in use and
126
+ every scheduled job with its next firing.*
136
127
 
137
128
  Every task on the board is in one of a few states:
138
129
 
@@ -147,14 +138,12 @@ Every task on the board is in one of a few states:
147
138
 
148
139
  ### 5. Calibrate
149
140
 
150
- The `/spoolway-calibrate` skill reads your archived tasks and the spend ledger over them, and
151
- works out what actually cost you loops and money a prompt that keeps sending work back, a
152
- step running on a model far bigger than it needs.
141
+ The `/spoolway-calibrate` skill reads your archived tasks, their step-level evaluation results
142
+ and the spend ledger. It compares them with the prompts, pipelines and settings that produced
143
+ them. The comparison explains review failures, blocked sessions and wasted loops.
153
144
 
154
- It walks each finding with you, with the arithmetic behind it. The ones you keep are cut
155
- into tasks of their own, so the fix to your pipeline goes through the same line as
156
- everything else. This is how a pipeline that blocks constantly turns into one that runs
157
- unattended.
145
+ It walks each finding with you, with the numbers behind it. It applies the prompt and pipeline
146
+ changes you pick.
158
147
 
159
148
  ## A task is what travels the line, and you define it
160
149
 
@@ -175,8 +164,8 @@ depends_on:
175
164
  ## References
176
165
  ```
177
166
 
178
- **The frontmatter is spoolway's, the body is yours.** spoolway never reads the body; it is
179
- what the agent works from, written from a skeleton you own.
167
+ **The frontmatter is spoolway's, the body is yours.** spoolway never reads the body. The
168
+ agent works from it, and you own the skeleton it is written from.
180
169
 
181
170
  ## The pipeline is a file
182
171
 
@@ -232,17 +221,17 @@ steps:
232
221
  on_fail: blocked
233
222
  ```
234
223
 
235
- **You do not have to write one by hand.** The `/spoolway-config` skill writes a pipeline
236
- for you, and edits the one you already have.
224
+ **You do not have to write one by hand.** The `/spoolway-config` skill writes and edits
225
+ pipelines for you.
237
226
 
238
227
  ## Jobs
239
228
 
240
- A job runs a routine on a schedule. It is three things: a cron expression, a pipeline, and a
241
- routine you saved under `.spoolway/routines/`.
229
+ A job runs a routine on a schedule. It has three parts: a cron expression, a pipeline, and a
230
+ routine saved under `.spoolway/routines/`.
242
231
 
243
- spoolway has no clock of its own. The dispatcher fires a due job at the top of its pass, and
244
- while any job is enabled it stays up on an empty queue instead of exiting. A `spoolway dispatch`
245
- left running overnight is all a job needs.
232
+ The dispatcher fires a due job at the start of its pass. While any job is enabled, the
233
+ dispatcher stays up on an empty queue. A `spoolway dispatch` left running overnight is all a
234
+ job needs.
246
235
 
247
236
  ```
248
237
  spoolway jobs # the screen: write, edit, pause, delete, or fire a job
@@ -252,11 +241,11 @@ spoolway jobs run <name> # fire one now, ignoring its schedule
252
241
 
253
242
  <img src="docs/screenshots/jobs.png" alt="the jobs screen">
254
243
 
255
- *The jobs screen. `n` walks three choices: the routine, the cron expression, and the pipeline.
256
- A job fires once per matching minute and skips a window while its previous run is still in the
257
- queue. A window that passes while no dispatcher is running is not caught up later.*
244
+ *The jobs screen. `n` asks for three things: the routine, the cron expression, and the
245
+ pipeline. A job fires once per matching minute. It skips a window while its previous run is
246
+ still in the queue. A window that passes while no dispatcher runs is not caught up later.*
258
247
 
259
- A job is a few lines of TOML. Yours live in `~/.spoolway/<project>/jobs.toml`. Put one in
248
+ A job is a few lines of TOML in `~/.spoolway/<project>/jobs.toml`. Put one in
260
249
  `.spoolway/jobs.toml` inside the checkout to share it with the team.
261
250
 
262
251
  ```toml
@@ -268,24 +257,22 @@ routine = "nightly" # a folder or a single .md under .spoolway/routines/
268
257
 
269
258
  ### Routines
270
259
 
271
- A routine is work you run more than once. Queueing a group deletes its documents from
272
- `pending/`, so repeatable tasks live in `.spoolway/routines/` instead, tracked in git. Press `s`
273
- on a group in the queue screen to save it there, and `r` to browse and queue what is saved.
274
- Every queued copy gets a fresh id, so a routine can run again without colliding with its last
275
- run. The saved files are never changed.
260
+ A routine is work you run more than once. It lives in `.spoolway/routines/`, tracked in git.
261
+ Press `s` on a group in the queue screen to save it there, and `r` to browse and queue what is
262
+ saved. Every queued copy gets a fresh id, so a routine can run again. The saved files are
263
+ never changed.
276
264
 
277
265
  ### Trials
278
266
 
279
267
  A trial answers one question: which pipeline does this task best? Press `p` on a group in the
280
- queue screen, pick a pipeline per task, and tick any steps to skip. Every task becomes one arm,
281
- queued under its chosen pipeline, and all arms share one trial id. Read them side by side with
268
+ queue screen, pick a pipeline per task, and tick any steps to skip. Every task becomes one arm
269
+ under its chosen pipeline, and all arms share one trial id. Compare them with
282
270
  `spoolway eval --runs --trial <id>`. An arm never pushes a branch or opens a pull request. When
283
- the last arm finishes, every arm's copy is removed, and only the source group and the ledger
284
- rows stay.
271
+ the last arm finishes, every arm's copy is removed. The source group and the ledger rows stay.
285
272
 
286
273
  ## Issue tracker
287
274
 
288
- Use event hooks to sync with project management tools. GitHub and Jira sample scripts are shipped.
275
+ Event hooks sync tasks with an issue tracker. Sample scripts for GitHub and Jira ship with `spoolway init`.
289
276
 
290
277
  | Event | When it fires |
291
278
  |---|---|
@@ -297,15 +284,15 @@ Use event hooks to sync with project management tools. GitHub and Jira sample sc
297
284
  | `done` | A task finishes |
298
285
 
299
286
  **The two shipped scripts are samples.** `spoolway init` writes `github.sh` and `jira.sh` into
300
- `.spoolway/hooks/` the `.ps1` pair on a native Windows install.
287
+ `.spoolway/hooks/`. A native Windows install gets the `.ps1` pair.
301
288
 
302
289
  See **[Issue Tracking](docs/configuration.md#issue_tracking--a-hook-fired-on-four-task-events)**.
303
290
 
304
291
  ## Configurable per project
305
292
 
306
- - Unattended mode delegates **`blocked`** tasks to a prompt you define. It clears
307
- obstacles on its own and keeps your pipeline running while nobody is watching.
308
- - Set a specific model for generating pipelines.
293
+ - Unattended mode hands **`blocked`** tasks to a prompt you define, so the pipeline keeps
294
+ running while nobody is watching.
295
+ - Set a model for generating pipelines.
309
296
 
310
297
  ```toml
311
298
  [dispatch]
@@ -376,8 +363,8 @@ See **[Configuration](docs/configuration.md)**.
376
363
 
377
364
  ## Eval every run
378
365
 
379
- Every lane's transcript is read when it settles and banked to a ledger: tokens, cost, wall
380
- time, and what the lane reported. Every edit to your pipelines, prompts or config mints a
366
+ When a lane finishes, its transcript is read and written to a ledger: tokens, cost, wall
367
+ time, and what the lane reported. Every edit to your pipelines, prompts or config creates a
381
368
  new version, so you can see what your last change did to pass rate and price.
382
369
 
383
370
  ```
@@ -386,13 +373,13 @@ spoolway eval
386
373
 
387
374
  <img src="docs/screenshots/eval.png" alt="the eval screen">
388
375
 
389
- *The eval screen on its runs view, one row per attempt at a task `tab` cycles the three
390
- views: the version comparisons per pipeline and per step, and this one. `f` filters, `e`
391
- exports CSV.*
376
+ *The eval screen on its runs view, one row per attempt at a task. `tab` cycles the views: per
377
+ pipeline, per step, runs, per watched directory, and per session outside the lanes. `f` filters,
378
+ `e` exports CSV.*
392
379
 
393
380
  ## Documentation
394
381
 
395
- See **[Documentation index](DOCS.md)**.
382
+ See **[Documentation index](DOCS.md)**.
396
383
 
397
384
  ## License
398
385
 
package/bin/spoolway.exe CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spoolway/win32-x64",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "spoolway binary for win32 x64",
5
5
  "license": "MIT",
6
6
  "author": "Marvin Gygas",