@sous-io/sous 1.0.15 → 1.0.16
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/dist/sous.js +41 -37
- package/docs/markdown/repositories-consuming.md +14 -5
- package/docs/markdown/repositories-file-formats.md +1 -1
- package/docs/markdown/repositories-providers.md +7 -0
- package/docs/markdown/repositories-troubleshooting.md +9 -3
- package/docs/markdown/repositories.md +2 -1
- package/package.json +33 -33
- package/recipes/core/sous-skills/sous.recipe.yaml +1 -1
|
@@ -376,20 +376,27 @@ there is no entry to delete: the one sous provides comes back on the next run, s
|
|
|
376
376
|
opt-out outlives it. `sous subscription add core` clears it again. If you remove `core`, make sure
|
|
377
377
|
something else tells your agents not to edit generated files.
|
|
378
378
|
|
|
379
|
-
## Switch a subscription off
|
|
379
|
+
## Switch a subscription off
|
|
380
380
|
|
|
381
381
|
A subscription stays in the config with `enabled: false`, so the opt-out is visible. A switched-off
|
|
382
382
|
subscription is not built: the recipes reached only through it are skipped, the outputs they wrote are
|
|
383
383
|
pruned, and their variables are neither asked nor required. Their pins stay in the committed lockfile,
|
|
384
|
-
so
|
|
384
|
+
so a machine that switches a recipe off never removes it from the lockfile for anyone else.
|
|
385
385
|
|
|
386
386
|
```bash
|
|
387
387
|
sous subscription disable tool-usage/automated-browser-tasks
|
|
388
388
|
sous subscription enable tool-usage/automated-browser-tasks
|
|
389
389
|
```
|
|
390
390
|
|
|
391
|
-
Both edit `.sous/conf.d/510-subscriptions.jsonc` by key.
|
|
392
|
-
|
|
391
|
+
Both edit `.sous/conf.d/510-subscriptions.jsonc` by key. That file is committed, so once the change is
|
|
392
|
+
committed the subscription is switched off, or back on, for **everyone** using the project. `disable`
|
|
393
|
+
writes `"enabled": false`; `enable` removes it again, so the file goes back to what it held before.
|
|
394
|
+
|
|
395
|
+
### On one machine only
|
|
396
|
+
|
|
397
|
+
To switch one off only on some machines, write `enabled` in a `conf.d` file of your own that sorts
|
|
398
|
+
after 510, and keep that file out of git if it is for your machine alone; a later file wins over the
|
|
399
|
+
managed one:
|
|
393
400
|
|
|
394
401
|
```jsonc
|
|
395
402
|
// .sous/conf.d/610-mac.jsonc
|
|
@@ -442,7 +449,9 @@ rather than stopping the build, and the build prints a warning naming it before
|
|
|
442
449
|
A build holds the versions the lockfile pins and does not talk to the network on every run. Sous
|
|
443
450
|
asks a repository for a newer index only when it has never asked, when the freshness window has
|
|
444
451
|
lapsed (`store.freshnessSeconds`, five minutes by default), or when a command forces it; a failed
|
|
445
|
-
check never breaks a build, because the cached index is used instead.
|
|
452
|
+
check never breaks a build, because the cached index is used instead. When a recipe or a version
|
|
453
|
+
is missing from the cached index, sous asks upstream once more before reporting it, so a recipe
|
|
454
|
+
released moments ago is found straight away. Always-pull changes what
|
|
446
455
|
happens after that check, not how often it happens: a repository or subscription marked
|
|
447
456
|
`alwaysPull` takes a newer in-range version rather than the locked one; set it with
|
|
448
457
|
`--always-pull`, or on either entry in the config. Without it, `sous subscription update` is how a
|
|
@@ -478,7 +478,7 @@ old `.json` name is read as a fallback and migrates on the next write: the `.jso
|
|
|
478
478
|
|
|
479
479
|
No file is special to sous when it reads the config: a `conf.d` file of your own that sorts after 510 can
|
|
480
480
|
override a subscription the managed file lists, such as switching it off on one machine (see
|
|
481
|
-
[
|
|
481
|
+
[On one machine only](repositories-consuming.md#on-one-machine-only)).
|
|
482
482
|
|
|
483
483
|
## Where to go next
|
|
484
484
|
|
|
@@ -161,6 +161,13 @@ https://raw.githubusercontent.com/<owner>/<name>/HEAD/sous.index.json
|
|
|
161
161
|
https://<gitlab host>/api/v4/projects/<owner>%2F<name>/repository/files/sous.index.json/raw?ref=HEAD
|
|
162
162
|
```
|
|
163
163
|
|
|
164
|
+
GitHub's raw host can answer with a copy it cached for up to five minutes. When sous must see the
|
|
165
|
+
current index (a `--latest` read, or a recipe missing from its cached copy, which is how a recipe
|
|
166
|
+
released moments ago looks), it reads GitHub's contents API without a token instead
|
|
167
|
+
(`https://api.github.com/repos/<owner>/<name>/contents/sous.index.json`), and tries the raw host only
|
|
168
|
+
if nothing else answers. GitHub allows 60 such requests an hour from one address, so ordinary reads
|
|
169
|
+
never use it. GitLab's API always answers with the current file.
|
|
170
|
+
|
|
164
171
|
A token is looked for in these places, in this order, and a missing one is skipped:
|
|
165
172
|
|
|
166
173
|
1. the environment: `GITHUB_TOKEN` for GitHub, `GITLAB_TOKEN` for GitLab;
|
|
@@ -9,11 +9,17 @@ lines under the first sentence of a failure, because that is where the remedy is
|
|
|
9
9
|
## A repository this project does not trust
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
|
-
Error:
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Error: None of this project's repositories publishes the recipe 'workflow/nope'.
|
|
13
|
+
Checked just now: qa-recipes, sous-recipes.
|
|
14
|
+
Check the spelling, or run 'sous repo search nope' to look for it. If a repository this project
|
|
15
|
+
has not added publishes it, add that one with 'sous repo add <url>'.
|
|
15
16
|
```
|
|
16
17
|
|
|
18
|
+
Before sous reports this, it reads every added repository's index upstream once, so a recipe
|
|
19
|
+
released moments ago is found rather than reported missing. A repository it could not reach just
|
|
20
|
+
then is listed under `Could not be checked just now`, and only the copy of its index that sous
|
|
21
|
+
already had was searched.
|
|
22
|
+
|
|
17
23
|
A browsing command given a qualified ref whose qualifier is unknown says `This project trusts no
|
|
18
24
|
repository called 'acme'`; a subscribe says `Sous does not know where the repository 'acme' lives,
|
|
19
25
|
so it cannot add it for you`, and prints the `sous repo add <url> --name acme` line to run. Either
|
|
@@ -205,7 +205,8 @@ plugin included, until the repository is trusted.
|
|
|
205
205
|
A subscription can be switched off on one machine and left on for everyone else, for example from
|
|
206
206
|
a `conf.d` file of your own. A switched-off subscription is not built: its outputs are pruned, its
|
|
207
207
|
variables are not asked, and its pins stay in the committed lockfile. `sous subscription disable <ref>`
|
|
208
|
-
and `sous subscription enable <ref>` switch one off and on
|
|
208
|
+
and `sous subscription enable <ref>` switch one off and on for everyone, because they edit the
|
|
209
|
+
committed `conf.d/510-subscriptions.jsonc`.
|
|
209
210
|
|
|
210
211
|
## The official repository, and the built-in core
|
|
211
212
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sous-io/sous",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "Compiles AI coding agent configuration (CLAUDE.md, skills, memories) from LiquidJS templates",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -39,44 +39,44 @@
|
|
|
39
39
|
"sous.config.schema.json"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@sous-io/plugin-api": "1.0.
|
|
42
|
+
"@sous-io/plugin-api": "1.0.16"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"esbuild": "^0.27.4",
|
|
46
46
|
"jsonc-parser": "^3.3.1",
|
|
47
47
|
"yaml": "^2.9.0",
|
|
48
48
|
"zod": "^4.4.3",
|
|
49
|
-
"@sous-io/core": "1.0.
|
|
50
|
-
"@sous-io/
|
|
51
|
-
"@sous-io/plugin-
|
|
52
|
-
"@sous-io/
|
|
53
|
-
"@sous-io/plugin-
|
|
54
|
-
"@sous-io/plugin-
|
|
55
|
-
"@sous-io/plugin-
|
|
56
|
-
"@sous-io/plugin-
|
|
57
|
-
"@sous-io/plugin-formats": "1.0.
|
|
58
|
-
"@sous-io/plugin-
|
|
59
|
-
"@sous-io/plugin-
|
|
60
|
-
"@sous-io/plugin-
|
|
61
|
-
"@sous-io/plugin-
|
|
62
|
-
"@sous-io/plugin-harnesses": "1.0.
|
|
63
|
-
"@sous-io/plugin-
|
|
64
|
-
"@sous-io/plugin-host": "1.0.
|
|
65
|
-
"@sous-io/plugin-inspect": "1.0.
|
|
66
|
-
"@sous-io/plugin-liquid": "1.0.
|
|
67
|
-
"@sous-io/plugin-init": "1.0.
|
|
68
|
-
"@sous-io/plugin-
|
|
69
|
-
"@sous-io/plugin-
|
|
70
|
-
"@sous-io/plugin-memories": "1.0.
|
|
71
|
-
"@sous-io/plugin-npm": "1.0.
|
|
72
|
-
"@sous-io/plugin-
|
|
73
|
-
"@sous-io/plugin-
|
|
74
|
-
"@sous-io/plugin-
|
|
75
|
-
"@sous-io/plugin-
|
|
76
|
-
"@sous-io/plugin-
|
|
77
|
-
"@sous-io/plugin-
|
|
78
|
-
"@sous-io/plugin-variables": "1.0.
|
|
79
|
-
"@sous-io/plugin-
|
|
49
|
+
"@sous-io/core": "1.0.16",
|
|
50
|
+
"@sous-io/plugin-authoring": "1.0.16",
|
|
51
|
+
"@sous-io/plugin-build": "1.0.16",
|
|
52
|
+
"@sous-io/documents": "1.0.16",
|
|
53
|
+
"@sous-io/plugin-claude-code": "1.0.16",
|
|
54
|
+
"@sous-io/plugin-cli": "1.0.16",
|
|
55
|
+
"@sous-io/plugin-compiler": "1.0.16",
|
|
56
|
+
"@sous-io/plugin-confd": "1.0.16",
|
|
57
|
+
"@sous-io/plugin-formats": "1.0.16",
|
|
58
|
+
"@sous-io/plugin-expressions": "1.0.16",
|
|
59
|
+
"@sous-io/plugin-config-files": "1.0.16",
|
|
60
|
+
"@sous-io/plugin-git": "1.0.16",
|
|
61
|
+
"@sous-io/plugin-gitlab": "1.0.16",
|
|
62
|
+
"@sous-io/plugin-harnesses": "1.0.16",
|
|
63
|
+
"@sous-io/plugin-github": "1.0.16",
|
|
64
|
+
"@sous-io/plugin-host": "1.0.16",
|
|
65
|
+
"@sous-io/plugin-inspect": "1.0.16",
|
|
66
|
+
"@sous-io/plugin-liquid": "1.0.16",
|
|
67
|
+
"@sous-io/plugin-init": "1.0.16",
|
|
68
|
+
"@sous-io/plugin-local": "1.0.16",
|
|
69
|
+
"@sous-io/plugin-mcp": "1.0.16",
|
|
70
|
+
"@sous-io/plugin-memories": "1.0.16",
|
|
71
|
+
"@sous-io/plugin-npm": "1.0.16",
|
|
72
|
+
"@sous-io/plugin-recipe-answers": "1.0.16",
|
|
73
|
+
"@sous-io/plugin-pnpm": "1.0.16",
|
|
74
|
+
"@sous-io/plugin-recipes": "1.0.16",
|
|
75
|
+
"@sous-io/plugin-refs": "1.0.16",
|
|
76
|
+
"@sous-io/plugin-skills": "1.0.16",
|
|
77
|
+
"@sous-io/plugin-update": "1.0.16",
|
|
78
|
+
"@sous-io/plugin-variables": "1.0.16",
|
|
79
|
+
"@sous-io/plugin-yarn": "1.0.16"
|
|
80
80
|
},
|
|
81
81
|
"engines": {
|
|
82
82
|
"node": ">=22"
|