@colony2/c2j 0.0.81 → 0.0.83
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 +21 -35
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,29 +84,23 @@ See [Extension ops](EXTENSION_OPS.md) for authoring, publishing, and invoking pr
|
|
|
84
84
|
## Nix package
|
|
85
85
|
|
|
86
86
|
The Nix package contains only the `c2j` executable, with no Node/npm wrapper or
|
|
87
|
-
bundled tool runtimes. Linux and macOS
|
|
88
|
-
|
|
89
|
-
GitHub asset publication succeed, Nix and npm publish in parallel from the same
|
|
90
|
-
release tag.
|
|
87
|
+
bundled tool runtimes. The package definition supports Linux and macOS on x86-64
|
|
88
|
+
and ARM64 for local builds. CI does not build or publish the Nix package.
|
|
91
89
|
|
|
92
90
|
```bash
|
|
93
|
-
cachix use colony2
|
|
94
91
|
nix run github:colony-2/c2j/main#c2j -- version
|
|
95
92
|
# Install into your profile:
|
|
96
93
|
nix profile add github:colony-2/c2j/main#c2j
|
|
97
94
|
```
|
|
98
95
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
commit
|
|
102
|
-
|
|
103
|
-
the execution environment when needed.
|
|
96
|
+
Pin a commit instead of `main` for reproducible builds. New revisions may require
|
|
97
|
+
local compilation because there is no automatic Cachix publication. `main` builds
|
|
98
|
+
report `unstable-<commit>` as their version. Runtime tools such as Git, Nix, pnpm,
|
|
99
|
+
and uv are supplied separately by the execution environment when needed.
|
|
104
100
|
|
|
105
101
|
Maintainers: `nix build .#c2j` builds the executable; `nix flake check` also runs
|
|
106
102
|
its installation checks. After changing Go dependencies, update `vendorHash` in
|
|
107
|
-
`nix/package.nix` to the hash reported by a build with `lib.fakeHash`.
|
|
108
|
-
all four platforms, pushes with `CACHIX_COLONY2_AUTHKEY`, verifies downloads into
|
|
109
|
-
an empty store with builds disabled, and pins each commit's package in Cachix.
|
|
103
|
+
`nix/package.nix` to the hash reported by a build with `lib.fakeHash`.
|
|
110
104
|
|
|
111
105
|
## Quick Start
|
|
112
106
|
|
|
@@ -137,13 +131,12 @@ If the current directory does not resolve as a cell, either:
|
|
|
137
131
|
- create `.c2j/config.yaml`, or
|
|
138
132
|
- pass `--cell <repo-or-path>` explicitly to `submit` or `list`
|
|
139
133
|
|
|
140
|
-
### 2. Submit and run a build
|
|
134
|
+
### 2. Submit and run a build job
|
|
141
135
|
|
|
142
|
-
|
|
136
|
+
Submissions use the build recipe:
|
|
143
137
|
|
|
144
138
|
```bash
|
|
145
139
|
c2j submit "Implement the new endpoint" --run --embed
|
|
146
|
-
c2j submit "Improve retry behavior" --evolve --run --embed
|
|
147
140
|
```
|
|
148
141
|
|
|
149
142
|
That does all of the following:
|
|
@@ -235,46 +228,39 @@ npx skills add colony-2/c2j
|
|
|
235
228
|
|
|
236
229
|
### Basic forms
|
|
237
230
|
|
|
238
|
-
Submit a build job
|
|
231
|
+
Submit a build job:
|
|
239
232
|
|
|
240
233
|
```bash
|
|
241
234
|
c2j submit "Implement the new endpoint" --embed
|
|
242
|
-
c2j submit "Implement the new endpoint" --build --embed
|
|
243
|
-
c2j submit "Improve the retry behavior" --evolve --embed
|
|
244
235
|
```
|
|
245
236
|
|
|
246
|
-
|
|
237
|
+
Submissions use the name `build` through the existing recipe resolution system. At execution time, c2j first looks for `.c2j/recipes/build.yaml` in the **target cell's repository**, at its configured ref. This also applies to `--cell`; the submitting project's recipes do not override another target cell's recipes. As with other named recipes, uncommitted files are not used.
|
|
247
238
|
|
|
248
|
-
If that recipe file is absent, c2j resolves
|
|
239
|
+
If that recipe file is absent, c2j resolves the shared recipe instead:
|
|
249
240
|
|
|
250
241
|
- `git+https://github.com/colony-2/recipes.git//build.yaml@main`
|
|
251
|
-
- `git+https://github.com/colony-2/recipes.git//evolve.yaml@main`
|
|
252
242
|
|
|
253
|
-
The shared repository must provide `build.yaml`
|
|
243
|
+
The shared repository must provide `build.yaml` at its root on `main`. This recipe is not bundled with c2j; until published, jobs needing the fallback cannot execute. Missing refs, authentication/network failures, and invalid recipes remain errors rather than triggering fallback. Resolution is pinned and cached by the existing job execution machinery. A shared recipe still operates on the target cell's worktree.
|
|
254
244
|
|
|
255
245
|
Every submission requires a non-empty prompt, passed as `inputs.prompt`. Omit the argument in a terminal to enter it interactively:
|
|
256
246
|
|
|
257
247
|
```bash
|
|
258
|
-
c2j submit --
|
|
248
|
+
c2j submit --embed
|
|
259
249
|
```
|
|
260
250
|
|
|
261
251
|
For automation, provide the positional prompt or a string `prompt` in `--inputs-json`/`--inputs-file`; missing prompts with non-terminal stdin fail immediately. Interactive prompts go to stderr, so `--json` stdout stays machine-readable.
|
|
262
252
|
|
|
263
|
-
### Build
|
|
253
|
+
### Build input contract
|
|
264
254
|
|
|
265
|
-
|
|
255
|
+
Build submissions include `type: build` alongside the prompt:
|
|
266
256
|
|
|
267
257
|
```json
|
|
268
258
|
{"prompt": "Implement the new endpoint", "type": "build"}
|
|
269
259
|
```
|
|
270
260
|
|
|
271
|
-
|
|
272
|
-
{"prompt": "Improve retry behavior", "type": "evolve"}
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
`type` is derived from the selected recipe, not used to select it: use `--evolve` to submit an evolve job. A matching `type` in `--inputs-json` or `--inputs-file` is accepted; a conflicting or non-string value is rejected before submission. The same contract applies to target-cell recipes and shared fallbacks, including explicit selection of the names `build` and `evolve`.
|
|
261
|
+
`type` is fixed to `"build"` for build submissions; it does not select a recipe. A matching `type` in `--inputs-json` or `--inputs-file` is accepted; a conflicting or non-string value is rejected before submission. The same contract applies to target-cell recipes and shared fallbacks, including explicit selection of the name `build`.
|
|
276
262
|
|
|
277
|
-
|
|
263
|
+
The build recipe must declare these inputs and bind them for recipe logic:
|
|
278
264
|
|
|
279
265
|
```yaml
|
|
280
266
|
input_schema:
|
|
@@ -306,7 +292,7 @@ Submit and run immediately:
|
|
|
306
292
|
c2j submit "Review the changes" --advanced-recipe-file ./recipes/review.yaml --run --embed
|
|
307
293
|
```
|
|
308
294
|
|
|
309
|
-
`--advanced-recipe` accepts a target-cell recipe name or explicit git selector. `--advanced-recipe-file` embeds a local YAML file, including uncommitted changes. These flags are mutually exclusive
|
|
295
|
+
`--advanced-recipe` accepts a target-cell recipe name or explicit git selector. `--advanced-recipe-file` embeds a local YAML file, including uncommitted changes. These flags are mutually exclusive. The old `--recipe`/`--recipe-file` flags remain hidden, deprecated aliases on `submit`; `c2j test` retains its existing flag names. Custom names and explicit selectors do not get a hosted fallback; only the name `build` does.
|
|
310
296
|
|
|
311
297
|
Custom recipes submitted through the CLI must also declare the prompt in their input schema:
|
|
312
298
|
|
|
@@ -391,7 +377,7 @@ c2j submit "Implement the new endpoint" --self --embed
|
|
|
391
377
|
Use another cell explicitly:
|
|
392
378
|
|
|
393
379
|
```bash
|
|
394
|
-
c2j submit "Improve retry behavior"
|
|
380
|
+
c2j submit "Improve retry behavior" \
|
|
395
381
|
--cell github.com/colony-2/root \
|
|
396
382
|
--embed
|
|
397
383
|
```
|
|
@@ -791,7 +777,7 @@ c2j submit "Run the requested task" \
|
|
|
791
777
|
|
|
792
778
|
## Gotchas
|
|
793
779
|
|
|
794
|
-
- `--
|
|
780
|
+
- `--advanced-recipe` and `--advanced-recipe-file` are mutually exclusive on `submit`
|
|
795
781
|
- `--json` and `--run` are mutually exclusive on `submit`
|
|
796
782
|
- `--inputs-json` and `--inputs-file` are mutually exclusive
|
|
797
783
|
- `--self` and `--cell` are mutually exclusive
|