@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.
@@ -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 on one machine
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 switching a recipe off on your machine never removes it for anyone else.
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. To switch one off only on some machines, write
392
- `enabled` in a `conf.d` file of your own that sorts after 510; a later file wins over the managed one:
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. Always-pull changes what
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
- [Switch a subscription off on one machine](repositories-consuming.md#switch-a-subscription-off-on-one-machine)).
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: No added repository publishes the recipe 'workflow/nope'.
13
- Repositories searched: qa-recipes, sous-recipes.
14
- Add the repository that publishes it with 'sous repo add <url>', then try again.
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.15",
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.15"
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.15",
50
- "@sous-io/documents": "1.0.15",
51
- "@sous-io/plugin-authoring": "1.0.15",
52
- "@sous-io/plugin-claude-code": "1.0.15",
53
- "@sous-io/plugin-cli": "1.0.15",
54
- "@sous-io/plugin-confd": "1.0.15",
55
- "@sous-io/plugin-config-files": "1.0.15",
56
- "@sous-io/plugin-expressions": "1.0.15",
57
- "@sous-io/plugin-formats": "1.0.15",
58
- "@sous-io/plugin-git": "1.0.15",
59
- "@sous-io/plugin-github": "1.0.15",
60
- "@sous-io/plugin-gitlab": "1.0.15",
61
- "@sous-io/plugin-build": "1.0.15",
62
- "@sous-io/plugin-harnesses": "1.0.15",
63
- "@sous-io/plugin-compiler": "1.0.15",
64
- "@sous-io/plugin-host": "1.0.15",
65
- "@sous-io/plugin-inspect": "1.0.15",
66
- "@sous-io/plugin-liquid": "1.0.15",
67
- "@sous-io/plugin-init": "1.0.15",
68
- "@sous-io/plugin-mcp": "1.0.15",
69
- "@sous-io/plugin-local": "1.0.15",
70
- "@sous-io/plugin-memories": "1.0.15",
71
- "@sous-io/plugin-npm": "1.0.15",
72
- "@sous-io/plugin-pnpm": "1.0.15",
73
- "@sous-io/plugin-recipe-answers": "1.0.15",
74
- "@sous-io/plugin-refs": "1.0.15",
75
- "@sous-io/plugin-yarn": "1.0.15",
76
- "@sous-io/plugin-update": "1.0.15",
77
- "@sous-io/plugin-skills": "1.0.15",
78
- "@sous-io/plugin-variables": "1.0.15",
79
- "@sous-io/plugin-recipes": "1.0.15"
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"
@@ -11,7 +11,7 @@ formatVersion: 1
11
11
 
12
12
  namespace: core
13
13
  name: sous-skills
14
- version: 1.0.15
14
+ version: 1.0.16
15
15
 
16
16
  description: >-
17
17
  The skills that teach an agent what sous is and how it works: which files sous