git-a2a 1.1.0 → 1.2.0-rc.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-a2a",
3
- "version": "1.1.0",
3
+ "version": "1.2.0-rc.2",
4
4
  "description": "Import git modules together with their owning agents",
5
5
  "mcpName": "io.github.neprel/git-a2a",
6
6
  "license": "MIT",
@@ -19,11 +19,11 @@
19
19
  "skills/"
20
20
  ],
21
21
  "optionalDependencies": {
22
- "@git-a2a/darwin-amd64": "1.1.0",
23
- "@git-a2a/darwin-arm64": "1.1.0",
24
- "@git-a2a/linux-amd64": "1.1.0",
25
- "@git-a2a/linux-arm64": "1.1.0",
26
- "@git-a2a/windows-amd64": "1.1.0",
27
- "@git-a2a/windows-arm64": "1.1.0"
22
+ "@git-a2a/darwin-amd64": "1.2.0-rc.2",
23
+ "@git-a2a/darwin-arm64": "1.2.0-rc.2",
24
+ "@git-a2a/linux-amd64": "1.2.0-rc.2",
25
+ "@git-a2a/linux-arm64": "1.2.0-rc.2",
26
+ "@git-a2a/windows-amd64": "1.2.0-rc.2",
27
+ "@git-a2a/windows-arm64": "1.2.0-rc.2"
28
28
  }
29
29
  }
@@ -3,7 +3,7 @@ name: git-a2a
3
3
  description: Use git-a2a to consume or author a dependency on a Git repository together with its owner, resolve who owns a dependency, inspect or repair an AGENTS.md module roster, or edit and validate a2amodule.yml manifest.
4
4
  compatibility: requires git ≥ 2.25 and the git-a2a CLI
5
5
  metadata:
6
- version: "1.1.0"
6
+ version: "1.2.0"
7
7
  ---
8
8
 
9
9
  # git-a2a
@@ -18,6 +18,8 @@ Start with `git-a2a usage`. Use `--json` on read commands when structured output
18
18
 
19
19
  1. Run `git-a2a doctor` and inspect the current `git-a2a status -v`.
20
20
  2. Add the owner's Git URL with `git-a2a add URL`; one resolved commit must drive every ecosystem.
21
+ Add `--vendor submodule|copy` only when the consumer deliberately owns a local materialisation;
22
+ use `--vendor-path` for a non-default location.
21
23
  3. Run `git-a2a sync` to opt into the managed AGENTS.md roster.
22
24
  4. Inspect public knowledge with `git-a2a show ID --surface`.
23
25
  5. Before committing, run `git-a2a status`, the repository tests, and review the manifest, lock,
@@ -49,6 +51,7 @@ consequences. Do not guess an open-vocabulary token's behavior.
49
51
  - `git-a2a update --check`: report upstream movement; exit 1 means an update exists.
50
52
  - `git-a2a update`: move the lock and every supported ecosystem together.
51
53
  - `git-a2a set ID --ref REF`: deliberately change source/ref policy.
54
+ - `git-a2a set ID --vendor submodule|copy` / `--no-vendor`: change consumer-owned local source mode.
52
55
  - `git-a2a pin ID` / `git-a2a unpin ID --ref REF`: freeze or resume tracking.
53
56
  - `git-a2a wire ID`: repair native dependency entries from manifest and lock.
54
57
 
@@ -41,9 +41,14 @@ a2amodule.yml: valid
41
41
  ## add
42
42
 
43
43
  `git-a2a add URL [--id ID] [--path DIR] [--track locked|floating] [--wire LIST|--no-wire]
44
- [--no-refresh]`
44
+ [--vendor submodule|copy] [--vendor-path PATH] [--no-refresh]`
45
45
  fetches the remote manifest, resolves one commit, wires detected ecosystems, writes the lock,
46
- and snapshots cards. `--no-refresh` edits project manifests but skips package-manager Refresh.
46
+ and snapshots cards. `--vendor` explicitly materialises the locked source as a submodule or copy;
47
+ its default path is `deps/<id>`, overridden by `--vendor-path`. `--no-refresh` edits project
48
+ manifests but skips package-manager Refresh.
49
+ Vendored native exports use local path forms (npm `file:`, Cargo `path`, Go `replace`, uv/Pub/Mix
50
+ `path`, Composer `type: path`); build-system adapters generate owned local integration files.
51
+ Meson requires `--vendor-path subprojects/<id>`.
47
52
  Missing optional toolchains warn but do not prevent the manifest edit.
48
53
  Exit `1` covers fetch/wiring failure and `2` invalid arguments.
49
54
 
@@ -55,8 +60,10 @@ added acme-lib at ea1e8656ad1e6eaeef81759c10969e64defdd9ce
55
60
  ## set
56
61
 
57
62
  `git-a2a set ID [--git URL] [--ref REF] [--path DIR] [--track locked|floating] [--id NEW-ID]
58
- [--dry-run] [--no-refresh]` transactionally changes a dependency source or identity and rewires
59
- it. `--no-refresh` skips package-manager Refresh. Exit `1`
63
+ [--vendor submodule|copy|--no-vendor] [--vendor-path PATH] [--force] [--dry-run] [--no-refresh]`
64
+ transactionally changes a dependency source, identity, or vendoring choice and rewires it.
65
+ `--force` explicitly permits replacing dirty vendored content; `--no-refresh` skips
66
+ package-manager Refresh. Exit `1`
60
67
  means the transaction failed and rolled back; exit `2` means the ID/options did not resolve.
61
68
 
62
69
  ```text
@@ -100,10 +107,11 @@ npm: wired acme-lib
100
107
 
101
108
  ## update
102
109
 
103
- `git-a2a update [ID ...] [--check] [--review|--no-review] [--follow-moves] [--no-refresh]`
110
+ `git-a2a update [ID ...] [--check] [--review|--no-review] [--follow-moves] [--force] [--no-refresh]`
104
111
  resolves upstream refs and transactionally updates changed dependencies. `--check` only reports
105
112
  availability; `--review` prints manifest/surface diffs; `--no-refresh` skips package-manager
106
- Refresh; moves require explicit `--follow-moves`. Exit `1`
113
+ Refresh; moves require explicit `--follow-moves`. Dirty or drifted vendored content refuses an
114
+ update unless `--force` makes replacement explicit. Exit `1`
107
115
  means updates exist in check mode or an update failed; exit `2` means no dependency resolved.
108
116
 
109
117
  ```text
@@ -114,9 +122,10 @@ acme-lib: ea1e8656ad1e -> 3ad806dc575c
114
122
 
115
123
  ## remove
116
124
 
117
- `git-a2a remove ID [--keep-wiring]` removes the manifest/lock/cache entry and normally unwires
118
- all owned package-manager entries. Exit `1` means removal failed; exit `2` means the ID/options
119
- did not resolve.
125
+ `git-a2a remove ID [--keep-wiring] [--force]` removes the manifest/lock/cache entry, its vendored
126
+ tree, and normally unwires all owned package-manager entries. Dirty or drifted vendored content
127
+ is retained unless `--force` explicitly permits its deletion. Exit `1` means removal failed;
128
+ exit `2` means the ID/options did not resolve.
120
129
 
121
130
  After any successful `add`, `update`, `set`, `pin`, `unpin`, `wire`, or `remove`, an existing
122
131
  `AGENTS.md` managed block is rendered again as the final mutation. These commands never create a
@@ -132,8 +141,11 @@ removed acme-lib (cache deleted; it can be recreated by add)
132
141
  `git-a2a fetch [ID ...] [--surface] [--json]` restores disposable
133
142
  `.git-a2a/cache` content from the exact commits and hashes in `a2amodule.lock`. Without IDs it
134
143
  fetches every dependency; `--surface` also restores a declared surface whose tree hash is already
135
- recorded in the lock. It never resolves a moving ref and never changes the manifest, lock, or
136
- package-manager files. Missing/incomplete lock entries and hash mismatches exit `1`; invalid
144
+ recorded in the lock. A declared vendored checkout is also restored and verified from the lock.
145
+ For submodule mode this is equivalent to an exact locked `git submodule update --init`; copy mode
146
+ is reconstructed from locked Git tree bytes.
147
+ It never resolves a moving ref and never changes the manifest, lock, or package-manager files.
148
+ Missing/incomplete lock entries and hash mismatches exit `1`; invalid
137
149
  options or an empty dependency set exit `2`.
138
150
 
139
151
  ```text
@@ -191,7 +203,9 @@ acme-lib owner github-issue issue=https://github.com/acme/lib/issues/42
191
203
  `git-a2a status [ID ...] [--offline] [--json] [-v]` checks upstream, manifest/cache hashes,
192
204
  wiring, cards/trust, and rendered blocks. The table contains dependencies only; the consuming
193
205
  module is summarized below it. A repository that has not run `sync` has roster/SYNC `none`, which
194
- is healthy; `stale` means an existing managed block differs. `-v` adds own-module findings,
206
+ is healthy; `stale` means an existing managed block differs. Human output adds `VENDOR` only
207
+ when at least one dependency is vendored; it reports `none`, a pinned submodule, a copy, missing
208
+ state, or drift. JSON always includes `vendor`. `-v` adds own-module findings,
195
209
  prerequisite state, and adapter verification labels. Any unhealthy dependency or own-module
196
210
  check exits `1`; no match exits `2`.
197
211
 
@@ -300,7 +314,9 @@ formatted 3 file(s)
300
314
 
301
315
  `git-a2a doctor [--json]` reports Git and every toolchain required by detected ecosystems and
302
316
  wired dependencies, including version, PATH status, and platform installation hints. It never
303
- installs anything. Missing required Refresh tools exit `1`.
317
+ installs anything. Vendored dependencies also report their materialisation state; an uninitialised
318
+ submodule points to `git submodule update --init` or `git-a2a wire`. Missing required Refresh
319
+ tools exit `1`.
304
320
 
305
321
  ```text
306
322
  $ git-a2a doctor
@@ -11,7 +11,7 @@ declared object boundary and are preserved; other unknown keys are validation er
11
11
  - Type: integer; required.
12
12
  - Default: exactly `1`.
13
13
  - Allowed values: exact value `1`.
14
- - Normative source: [`spec/_.hint:100`](../spec/_.hint#L100).
14
+ - Normative source: [`spec/_.hint:110`](../spec/_.hint#L110).
15
15
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
16
16
 
17
17
  Behavior and consequence:
@@ -24,7 +24,7 @@ sees a larger value than it knows must refuse the file (exit 2), not guess.
24
24
  - Type: object; required.
25
25
  - Default: none declared.
26
26
  - Allowed values: schema type plus the normative behavior in this entry.
27
- - Normative source: [`spec/_.hint:105`](../spec/_.hint#L105).
27
+ - Normative source: [`spec/_.hint:115`](../spec/_.hint#L115).
28
28
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
29
29
 
30
30
  Behavior and consequence:
@@ -36,7 +36,7 @@ object; the module description. See [#module](../spec/_.hint).
36
36
  - Type: array of object; optional.
37
37
  - Default: none declared.
38
38
  - Allowed values: schema type plus the normative behavior in this entry.
39
- - Normative source: [`spec/_.hint:109`](../spec/_.hint#L109).
39
+ - Normative source: [`spec/_.hint:119`](../spec/_.hint#L119).
40
40
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
41
41
 
42
42
  Behavior and consequence:
@@ -49,19 +49,32 @@ as a plain library" — still importable, nobody to ask.
49
49
  - Type: object; optional.
50
50
  - Default: none declared.
51
51
  - Allowed values: schema type plus the normative behavior in this entry.
52
- - Normative source: [`spec/_.hint:114`](../spec/_.hint#L114).
52
+ - Normative source: [`spec/_.hint:124`](../spec/_.hint#L124).
53
53
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
54
54
 
55
55
  Behavior and consequence:
56
56
 
57
57
  object, see [#policy](../spec/_.hint). Routing defaults and consumer permissions.
58
58
 
59
+ ## `settings`
60
+
61
+ - Type: object; optional.
62
+ - Default: none declared.
63
+ - Allowed values: schema type plus the normative behavior in this entry.
64
+ - Normative source: [`spec/_.hint:128`](../spec/_.hint#L128).
65
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
66
+
67
+ Behavior and consequence:
68
+
69
+ object, see [#settings](../spec/_.hint). Consumer-local defaults; owners of dependencies never read
70
+ these settings from a consumer.
71
+
59
72
  ## `dependencies`
60
73
 
61
74
  - Type: array of object; optional.
62
75
  - Default: none declared.
63
76
  - Allowed values: schema type plus the normative behavior in this entry.
64
- - Normative source: [`spec/_.hint:118`](../spec/_.hint#L118).
77
+ - Normative source: [`spec/_.hint:133`](../spec/_.hint#L133).
65
78
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
66
79
 
67
80
  Behavior and consequence:
@@ -73,7 +86,7 @@ list, see [#dependency](../spec/_.hint). Modules this module depends on.
73
86
  - Type: string; required.
74
87
  - Default: none declared.
75
88
  - Allowed values: pattern `^[a-z0-9][a-z0-9._-]{0,63}$`.
76
- - Normative source: [`spec/_.hint:124`](../spec/_.hint#L124).
89
+ - Normative source: [`spec/_.hint:159`](../spec/_.hint#L159).
77
90
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
78
91
 
79
92
  Behavior and consequence:
@@ -88,7 +101,7 @@ breaking change for every consumer.
88
101
  - Type: string; optional.
89
102
  - Default: `module.id`.
90
103
  - Allowed values: schema type plus the normative behavior in this entry.
91
- - Normative source: [`spec/_.hint:131`](../spec/_.hint#L131).
104
+ - Normative source: [`spec/_.hint:166`](../spec/_.hint#L166).
92
105
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
93
106
 
94
107
  Behavior and consequence:
@@ -100,7 +113,7 @@ string. Display name. Defaults to `id`.
100
113
  - Type: string; optional.
101
114
  - Default: none declared.
102
115
  - Allowed values: schema type plus the normative behavior in this entry.
103
- - Normative source: [`spec/_.hint:135`](../spec/_.hint#L135).
116
+ - Normative source: [`spec/_.hint:170`](../spec/_.hint#L170).
104
117
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
105
118
 
106
119
  Behavior and consequence:
@@ -114,7 +127,7 @@ expects. Whitespace is normalised when rendered.
114
127
  - Type: array of string; optional.
115
128
  - Default: none declared.
116
129
  - Allowed values: open vocabulary; see the known-values table in this entry.
117
- - Normative source: [`spec/_.hint:141`](../spec/_.hint#L141).
130
+ - Normative source: [`spec/_.hint:176`](../spec/_.hint#L176).
118
131
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
119
132
 
120
133
  Behavior and consequence:
@@ -137,7 +150,7 @@ Known values:
137
150
  - Type: string; optional.
138
151
  - Default: none declared.
139
152
  - Allowed values: minimum length 1.
140
- - Normative source: [`spec/_.hint:147`](../spec/_.hint#L147).
153
+ - Normative source: [`spec/_.hint:182`](../spec/_.hint#L182).
141
154
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
142
155
 
143
156
  Behavior and consequence:
@@ -150,7 +163,7 @@ published beyond the manifest.
150
163
  - Type: string; optional.
151
164
  - Default: none declared.
152
165
  - Allowed values: schema type plus the normative behavior in this entry.
153
- - Normative source: [`spec/_.hint:152`](../spec/_.hint#L152).
166
+ - Normative source: [`spec/_.hint:187`](../spec/_.hint#L187).
154
167
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
155
168
 
156
169
  Behavior and consequence:
@@ -165,7 +178,7 @@ to whoever maintains the copy. Informative; never used to fetch.
165
178
  - Type: object; optional.
166
179
  - Default: none declared.
167
180
  - Allowed values: schema type plus the normative behavior in this entry.
168
- - Normative source: [`spec/_.hint:159`](../spec/_.hint#L159).
181
+ - Normative source: [`spec/_.hint:194`](../spec/_.hint#L194).
169
182
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
170
183
 
171
184
  Behavior and consequence:
@@ -180,7 +193,7 @@ source silently.
180
193
  - Type: string; optional.
181
194
  - Default: none declared.
182
195
  - Allowed values: schema type plus the normative behavior in this entry.
183
- - Normative source: [`spec/_.hint:166`](../spec/_.hint#L166).
196
+ - Normative source: [`spec/_.hint:201`](../spec/_.hint#L201).
184
197
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
185
198
 
186
199
  Behavior and consequence:
@@ -192,7 +205,7 @@ string; URL of human documentation.
192
205
  - Type: object; optional.
193
206
  - Default: none declared.
194
207
  - Allowed values: schema type plus the normative behavior in this entry.
195
- - Normative source: [`spec/_.hint:170`](../spec/_.hint#L170).
208
+ - Normative source: [`spec/_.hint:205`](../spec/_.hint#L205).
196
209
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
197
210
 
198
211
  Behavior and consequence:
@@ -207,7 +220,7 @@ module without naming one.
207
220
  - Type: array of object; optional.
208
221
  - Default: none declared.
209
222
  - Allowed values: schema type plus the normative behavior in this entry.
210
- - Normative source: [`spec/_.hint:177`](../spec/_.hint#L177).
223
+ - Normative source: [`spec/_.hint:212`](../spec/_.hint#L212).
211
224
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
212
225
 
213
226
  Behavior and consequence:
@@ -226,7 +239,7 @@ dist"). Ecosystem-specific keys are allowed under `x-<ecosystem>-*`.
226
239
  - Type: string; required.
227
240
  - Default: none declared.
228
241
  - Allowed values: schema type plus the normative behavior in this entry.
229
- - Normative source: [`spec/_.hint:193`](../spec/_.hint#L193).
242
+ - Normative source: [`spec/_.hint:228`](../spec/_.hint#L228).
230
243
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
231
244
 
232
245
  Behavior and consequence:
@@ -239,7 +252,7 @@ consumers remain on the current source until an explicit `set --git`.
239
252
  - Type: string; optional.
240
253
  - Default: `.`.
241
254
  - Allowed values: minimum length 1.
242
- - Normative source: [`spec/_.hint:198`](../spec/_.hint#L198).
255
+ - Normative source: [`spec/_.hint:233`](../spec/_.hint#L233).
243
256
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
244
257
 
245
258
  Behavior and consequence:
@@ -252,7 +265,7 @@ it changes the destination module root offered with the new Git URL.
252
265
  - Type: string; optional.
253
266
  - Default: none declared.
254
267
  - Allowed values: schema type plus the normative behavior in this entry.
255
- - Normative source: [`spec/_.hint:203`](../spec/_.hint#L203).
268
+ - Normative source: [`spec/_.hint:238`](../spec/_.hint#L238).
256
269
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
257
270
 
258
271
  Behavior and consequence:
@@ -265,7 +278,7 @@ the guidance, never the source automatically.
265
278
  - Type: string; optional.
266
279
  - Default: none declared.
267
280
  - Allowed values: schema type plus the normative behavior in this entry.
268
- - Normative source: [`spec/_.hint:212`](../spec/_.hint#L212).
281
+ - Normative source: [`spec/_.hint:247`](../spec/_.hint#L247).
269
282
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
270
283
 
271
284
  Behavior and consequence:
@@ -278,7 +291,7 @@ Changing it affects future adds; existing consumers retain their declared ref un
278
291
  - Type: boolean; optional.
279
292
  - Default: `false`.
280
293
  - Allowed values: schema type plus the normative behavior in this entry.
281
- - Normative source: [`spec/_.hint:217`](../spec/_.hint#L217).
294
+ - Normative source: [`spec/_.hint:252`](../spec/_.hint#L252).
282
295
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
283
296
 
284
297
  Behavior and consequence:
@@ -291,7 +304,7 @@ Changing it changes what consumers may reasonably select with `set --ref`; it do
291
304
  - Type: string; optional.
292
305
  - Default: none declared.
293
306
  - Allowed values: schema type plus the normative behavior in this entry.
294
- - Normative source: [`spec/_.hint:222`](../spec/_.hint#L222).
307
+ - Normative source: [`spec/_.hint:257`](../spec/_.hint#L257).
295
308
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
296
309
 
297
310
  Behavior and consequence:
@@ -304,7 +317,7 @@ only and does not resolve or move a dependency.
304
317
  - Type: string; required.
305
318
  - Default: none declared.
306
319
  - Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
307
- - Normative source: [`spec/_.hint:231`](../spec/_.hint#L231).
320
+ - Normative source: [`spec/_.hint:266`](../spec/_.hint#L266).
308
321
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
309
322
 
310
323
  Behavior and consequence:
@@ -321,13 +334,14 @@ Known values:
321
334
  | `pypi` | Wires a Git dependency in pyproject.toml through uv. | Selects the Python distribution name and adapter. | Accepted; without an adapter it remains published metadata and cannot be wired. |
322
335
  | `golang` | Wires the Go module at the locked commit with go.mod edits. | Selects the Go import path and adapter. | Accepted; without an adapter it remains published metadata and cannot be wired. |
323
336
  | `cargo`, `swift`, `pub`, `gem`, `composer`, `hex`, `hackage`, `zig`, `clojure`, `nix` | Uses the matching native Git-dependency adapter. | Selects a different native manifest and package identity. | Accepted; without an adapter it remains published metadata and cannot be wired. |
337
+ | `cmake`, `gradle`, `msbuild`, `maven`, `meson` | Uses a vendored integration adapter and generated include when the dependency is vendored. | Selects the build-system integration and generated file. | Accepted; without an adapter it remains published metadata and cannot be wired. |
324
338
 
325
339
  ## `module.exports[].name`
326
340
 
327
341
  - Type: string; required.
328
342
  - Default: none declared.
329
343
  - Allowed values: minimum length 1.
330
- - Normative source: [`spec/_.hint:237`](../spec/_.hint#L237).
344
+ - Normative source: [`spec/_.hint:272`](../spec/_.hint#L272).
331
345
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
332
346
 
333
347
  Behavior and consequence:
@@ -340,7 +354,7 @@ consumer from the old native entry to the new one on the next mutation or `wire`
340
354
  - Type: string; optional.
341
355
  - Default: the module directory (`.`).
342
356
  - Allowed values: minimum length 1.
343
- - Normative source: [`spec/_.hint:242`](../spec/_.hint#L242).
357
+ - Normative source: [`spec/_.hint:277`](../spec/_.hint#L277).
344
358
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
345
359
 
346
360
  Behavior and consequence:
@@ -353,7 +367,7 @@ Changing it changes the Git subdirectory expression; unsupported adapters report
353
367
  - Type: string; optional.
354
368
  - Default: none declared.
355
369
  - Allowed values: schema type plus the normative behavior in this entry.
356
- - Normative source: [`spec/_.hint:247`](../spec/_.hint#L247).
370
+ - Normative source: [`spec/_.hint:282`](../spec/_.hint#L282).
357
371
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
358
372
 
359
373
  Behavior and consequence:
@@ -366,7 +380,7 @@ guidance but does not itself alter adapter behavior.
366
380
  - Type: string; required.
367
381
  - Default: none declared.
368
382
  - Allowed values: minimum length 1.
369
- - Normative source: [`spec/_.hint:256`](../spec/_.hint#L256).
383
+ - Normative source: [`spec/_.hint:291`](../spec/_.hint#L291).
370
384
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
371
385
 
372
386
  Behavior and consequence:
@@ -384,7 +398,7 @@ on a bare name being globally unique.
384
398
  - Type: string; required.
385
399
  - Default: none declared.
386
400
  - Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
387
- - Normative source: [`spec/_.hint:266`](../spec/_.hint#L266).
401
+ - Normative source: [`spec/_.hint:301`](../spec/_.hint#L301).
388
402
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
389
403
 
390
404
  Behavior and consequence:
@@ -408,7 +422,7 @@ Known values:
408
422
  - Type: array of string; optional.
409
423
  - Default: `["**"]`.
410
424
  - Allowed values: schema type plus the normative behavior in this entry.
411
- - Normative source: [`spec/_.hint:272`](../spec/_.hint#L272).
425
+ - Normative source: [`spec/_.hint:307`](../spec/_.hint#L307).
412
426
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
413
427
 
414
428
  Behavior and consequence:
@@ -422,7 +436,7 @@ then declared order.
422
436
  - Type: string; optional.
423
437
  - Default: none declared.
424
438
  - Allowed values: minimum length 1.
425
- - Normative source: [`spec/_.hint:278`](../spec/_.hint#L278).
439
+ - Normative source: [`spec/_.hint:313`](../spec/_.hint#L313).
426
440
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
427
441
 
428
442
  Behavior and consequence:
@@ -436,7 +450,7 @@ the authority for `description`, `skills`, interfaces and security; git-a2a snap
436
450
  - Type: string; optional.
437
451
  - Default: none declared.
438
452
  - Allowed values: schema type plus the normative behavior in this entry.
439
- - Normative source: [`spec/_.hint:284`](../spec/_.hint#L284).
453
+ - Normative source: [`spec/_.hint:319`](../spec/_.hint#L319).
440
454
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
441
455
 
442
456
  Behavior and consequence:
@@ -449,7 +463,7 @@ ask it about …"). Never a copy of the card's description.
449
463
  - Type: array of object; optional.
450
464
  - Default: none declared.
451
465
  - Allowed values: open vocabulary; see the known-values table in this entry.
452
- - Normative source: [`spec/_.hint:289`](../spec/_.hint#L289).
466
+ - Normative source: [`spec/_.hint:324`](../spec/_.hint#L324).
453
467
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
454
468
 
455
469
  Behavior and consequence:
@@ -464,7 +478,7 @@ on"), plus kind-specific keys. Order expresses preference within an intent.
464
478
  - Type: object; optional.
465
479
  - Default: none declared.
466
480
  - Allowed values: schema type plus the normative behavior in this entry.
467
- - Normative source: [`spec/_.hint:296`](../spec/_.hint#L296).
481
+ - Normative source: [`spec/_.hint:331`](../spec/_.hint#L331).
468
482
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
469
483
 
470
484
  Behavior and consequence:
@@ -484,7 +498,7 @@ but prints a trust warning. JWKS responses are timeout-bounded and cached only i
484
498
  - Type: array of string; required.
485
499
  - Default: none declared.
486
500
  - Allowed values: minimum 1 item(s); open vocabulary; see the known-values table in this entry.
487
- - Normative source: [`spec/_.hint:313`](../spec/_.hint#L313).
501
+ - Normative source: [`spec/_.hint:348`](../spec/_.hint#L348).
488
502
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
489
503
 
490
504
  Behavior and consequence:
@@ -509,7 +523,7 @@ Known values:
509
523
  - Type: string; required.
510
524
  - Default: none declared.
511
525
  - Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
512
- - Normative source: [`spec/_.hint:319`](../spec/_.hint#L319).
526
+ - Normative source: [`spec/_.hint:354`](../spec/_.hint#L354).
513
527
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
514
528
 
515
529
  Behavior and consequence:
@@ -540,7 +554,7 @@ error, and cannot be delivered by `contact` until a driver exists.
540
554
  - Type: string; optional.
541
555
  - Default: none declared.
542
556
  - Allowed values: schema type plus the normative behavior in this entry.
543
- - Normative source: [`spec/_.hint:325`](../spec/_.hint#L325).
557
+ - Normative source: [`spec/_.hint:360`](../spec/_.hint#L360).
544
558
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
545
559
 
546
560
  Behavior and consequence:
@@ -553,7 +567,7 @@ guidance, not routing priority or delivery mechanics.
553
567
  - Type: string; optional.
554
568
  - Default: none declared.
555
569
  - Allowed values: schema type plus the normative behavior in this entry.
556
- - Normative source: [`spec/_.hint:330`](../spec/_.hint#L330).
570
+ - Normative source: [`spec/_.hint:365`](../spec/_.hint#L365).
557
571
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
558
572
 
559
573
  Behavior and consequence:
@@ -566,7 +580,7 @@ destination; for A2A it is the JSON-RPC endpoint.
566
580
  - Type: string; optional.
567
581
  - Default: none declared.
568
582
  - Allowed values: schema type plus the normative behavior in this entry.
569
- - Normative source: [`spec/_.hint:335`](../spec/_.hint#L335).
583
+ - Normative source: [`spec/_.hint:370`](../spec/_.hint#L370).
570
584
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
571
585
 
572
586
  Behavior and consequence:
@@ -579,7 +593,7 @@ the A2A target skill without changing the endpoint.
579
593
  - Type: string; optional.
580
594
  - Default: none declared.
581
595
  - Allowed values: schema type plus the normative behavior in this entry.
582
- - Normative source: [`spec/_.hint:340`](../spec/_.hint#L340).
596
+ - Normative source: [`spec/_.hint:375`](../spec/_.hint#L375).
583
597
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
584
598
 
585
599
  Behavior and consequence:
@@ -592,7 +606,7 @@ instruction; the reference CLI does not send email.
592
606
  - Type: string; optional.
593
607
  - Default: none declared.
594
608
  - Allowed values: schema type plus the normative behavior in this entry.
595
- - Normative source: [`spec/_.hint:345`](../spec/_.hint#L345).
609
+ - Normative source: [`spec/_.hint:380`](../spec/_.hint#L380).
596
610
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
597
611
 
598
612
  Behavior and consequence:
@@ -605,7 +619,7 @@ the printed instruction.
605
619
  - Type: string; optional.
606
620
  - Default: none declared.
607
621
  - Allowed values: schema type plus the normative behavior in this entry.
608
- - Normative source: [`spec/_.hint:350`](../spec/_.hint#L350).
622
+ - Normative source: [`spec/_.hint:385`](../spec/_.hint#L385).
609
623
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
610
624
 
611
625
  Behavior and consequence:
@@ -618,7 +632,7 @@ the repository where the issue driver delivers the request.
618
632
  - Type: array of string; optional.
619
633
  - Default: none declared.
620
634
  - Allowed values: schema type plus the normative behavior in this entry.
621
- - Normative source: [`spec/_.hint:355`](../spec/_.hint#L355).
635
+ - Normative source: [`spec/_.hint:390`](../spec/_.hint#L390).
622
636
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
623
637
 
624
638
  Behavior and consequence:
@@ -631,7 +645,7 @@ created; a missing label is a delivery error from the host.
631
645
  - Type: string; optional.
632
646
  - Default: none declared.
633
647
  - Allowed values: schema type plus the normative behavior in this entry.
634
- - Normative source: [`spec/_.hint:360`](../spec/_.hint#L360).
648
+ - Normative source: [`spec/_.hint:395`](../spec/_.hint#L395).
635
649
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
636
650
 
637
651
  Behavior and consequence:
@@ -644,7 +658,7 @@ host template without changing routing.
644
658
  - Type: string; optional.
645
659
  - Default: none declared.
646
660
  - Allowed values: schema type plus the normative behavior in this entry.
647
- - Normative source: [`spec/_.hint:365`](../spec/_.hint#L365).
661
+ - Normative source: [`spec/_.hint:400`](../spec/_.hint#L400).
648
662
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
649
663
 
650
664
  Behavior and consequence:
@@ -657,7 +671,7 @@ instruction.
657
671
  - Type: string; optional.
658
672
  - Default: none declared.
659
673
  - Allowed values: schema type plus the normative behavior in this entry.
660
- - Normative source: [`spec/_.hint:370`](../spec/_.hint#L370).
674
+ - Normative source: [`spec/_.hint:405`](../spec/_.hint#L405).
661
675
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
662
676
 
663
677
  Behavior and consequence:
@@ -670,7 +684,7 @@ instruction.
670
684
  - Type: string; optional.
671
685
  - Default: none declared.
672
686
  - Allowed values: schema type plus the normative behavior in this entry.
673
- - Normative source: [`spec/_.hint:375`](../spec/_.hint#L375).
687
+ - Normative source: [`spec/_.hint:410`](../spec/_.hint#L410).
674
688
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
675
689
 
676
690
  Behavior and consequence:
@@ -683,7 +697,7 @@ destination; chat contacts are instruction-only.
683
697
  - Type: string; optional.
684
698
  - Default: none declared.
685
699
  - Allowed values: schema type plus the normative behavior in this entry.
686
- - Normative source: [`spec/_.hint:380`](../spec/_.hint#L380).
700
+ - Normative source: [`spec/_.hint:415`](../spec/_.hint#L415).
687
701
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
688
702
 
689
703
  Behavior and consequence:
@@ -696,7 +710,7 @@ told to address.
696
710
  - Type: string; optional.
697
711
  - Default: none declared.
698
712
  - Allowed values: schema type plus the normative behavior in this entry.
699
- - Normative source: [`spec/_.hint:385`](../spec/_.hint#L385).
713
+ - Normative source: [`spec/_.hint:420`](../spec/_.hint#L420).
700
714
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
701
715
 
702
716
  Behavior and consequence:
@@ -709,7 +723,7 @@ printed chat destination.
709
723
  - Type: boolean; optional.
710
724
  - Default: `false`.
711
725
  - Allowed values: schema type plus the normative behavior in this entry.
712
- - Normative source: [`spec/_.hint:394`](../spec/_.hint#L394).
726
+ - Normative source: [`spec/_.hint:429`](../spec/_.hint#L429).
713
727
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
714
728
 
715
729
  Behavior and consequence:
@@ -722,7 +736,7 @@ cards make `status` fail and make `update` warn while retaining the dependency u
722
736
  - Type: boolean; optional.
723
737
  - Default: unstated.
724
738
  - Allowed values: schema type plus the normative behavior in this entry.
725
- - Normative source: [`spec/_.hint:399`](../spec/_.hint#L399).
739
+ - Normative source: [`spec/_.hint:434`](../spec/_.hint#L434).
726
740
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
727
741
 
728
742
  Behavior and consequence:
@@ -735,7 +749,7 @@ changes published contact policy only; the reference CLI does not enforce organi
735
749
  - Type: object; optional.
736
750
  - Default: unlisted intents route to `owner`.
737
751
  - Allowed values: schema type plus the normative behavior in this entry.
738
- - Normative source: [`spec/_.hint:431`](../spec/_.hint#L431).
752
+ - Normative source: [`spec/_.hint:466`](../spec/_.hint#L466).
739
753
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
740
754
 
741
755
  Behavior and consequence:
@@ -769,7 +783,7 @@ Known values:
769
783
  - Type: object; optional.
770
784
  - Default: none declared.
771
785
  - Allowed values: open vocabulary; see the known-values table in this entry.
772
- - Normative source: [`spec/_.hint:438`](../spec/_.hint#L438).
786
+ - Normative source: [`spec/_.hint:473`](../spec/_.hint#L473).
773
787
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
774
788
 
775
789
  Behavior and consequence:
@@ -784,7 +798,7 @@ consumer's roster block so an agent sees the boundary before it acts. Defaults w
784
798
  - Type: string; optional.
785
799
  - Default: none declared.
786
800
  - Allowed values: schema type plus the normative behavior in this entry.
787
- - Normative source: [`spec/_.hint:445`](../spec/_.hint#L445).
801
+ - Normative source: [`spec/_.hint:480`](../spec/_.hint#L480).
788
802
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
789
803
 
790
804
  Behavior and consequence:
@@ -796,7 +810,7 @@ string. Anything else consumers must know, verbatim.
796
810
  - Type: array of string; optional.
797
811
  - Default: `[read-surface, ask]`.
798
812
  - Allowed values: schema type plus the normative behavior in this entry.
799
- - Normative source: [`spec/_.hint:453`](../spec/_.hint#L453).
813
+ - Normative source: [`spec/_.hint:488`](../spec/_.hint#L488).
800
814
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
801
815
 
802
816
  Behavior and consequence:
@@ -819,7 +833,7 @@ Known values:
819
833
  - Type: array of string; optional.
820
834
  - Default: `[commit]`.
821
835
  - Allowed values: schema type plus the normative behavior in this entry.
822
- - Normative source: [`spec/_.hint:459`](../spec/_.hint#L459).
836
+ - Normative source: [`spec/_.hint:494`](../spec/_.hint#L494).
823
837
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
824
838
 
825
839
  Behavior and consequence:
@@ -837,12 +851,40 @@ Known values:
837
851
  | `open-issue`, `propose-change` | Tells consumers they may request owner-side work. | Adding/removing it changes the rendered boundary only. | Accepted and rendered verbatim; git-a2a does not enforce authorization. |
838
852
  | `commit`, `edit-spec`, `release` | Common `may-not` boundaries for owner-controlled changes. | Adding/removing one changes the prohibition shown in the roster. | Accepted and rendered verbatim; downstream agents must obey it. |
839
853
 
854
+ ## `settings.vendor-dir`
855
+
856
+ - Type: string; optional.
857
+ - Default: `deps`.
858
+ - Allowed values: minimum length 1.
859
+ - Normative source: [`spec/_.hint:141`](../spec/_.hint#L141).
860
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
861
+
862
+ Behavior and consequence:
863
+
864
+ string, optional relative path, default `deps`. Parent directory used when a vendored dependency
865
+ does not declare `vendor.path`. `vendor/` is deliberately not the default because Go and Composer
866
+ assign their own semantics to that name. Changing it moves only dependencies that use the default;
867
+ explicit `vendor.path` values remain unchanged. It obeys all vendored-path safety rules.
868
+
869
+ ## `settings.sync-targets`
870
+
871
+ - Type: array of string; optional.
872
+ - Default: none declared.
873
+ - Allowed values: schema type plus the normative behavior in this entry.
874
+ - Normative source: [`spec/_.hint:148`](../spec/_.hint#L148).
875
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
876
+
877
+ Behavior and consequence:
878
+
879
+ list of relative paths, optional. Additional files whose managed roster block `sync` maintains.
880
+ Changing the list changes sync destinations, not dependency resolution or vendoring.
881
+
840
882
  ## `dependencies[].id`
841
883
 
842
884
  - Type: string; optional.
843
885
  - Default: none declared.
844
886
  - Allowed values: pattern `^[a-z0-9][a-z0-9._-]{0,63}$`.
845
- - Normative source: [`spec/_.hint:469`](../spec/_.hint#L469).
887
+ - Normative source: [`spec/_.hint:504`](../spec/_.hint#L504).
846
888
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
847
889
 
848
890
  Behavior and consequence:
@@ -855,7 +897,7 @@ manifest); the lock is keyed on it.
855
897
  - Type: string; required.
856
898
  - Default: none declared.
857
899
  - Allowed values: minimum length 1.
858
- - Normative source: [`spec/_.hint:474`](../spec/_.hint#L474).
900
+ - Normative source: [`spec/_.hint:509`](../spec/_.hint#L509).
859
901
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
860
902
 
861
903
  Behavior and consequence:
@@ -868,7 +910,7 @@ Stored exactly as given; credentials are never stored.
868
910
  - Type: string; optional.
869
911
  - Default: the owner's `release.channel`, otherwise remote HEAD.
870
912
  - Allowed values: minimum length 1.
871
- - Normative source: [`spec/_.hint:479`](../spec/_.hint#L479).
913
+ - Normative source: [`spec/_.hint:514`](../spec/_.hint#L514).
872
914
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
873
915
 
874
916
  Behavior and consequence:
@@ -887,7 +929,7 @@ the new source and pin together.
887
929
  - Type: string; optional.
888
930
  - Default: `.`.
889
931
  - Allowed values: minimum length 1.
890
- - Normative source: [`spec/_.hint:490`](../spec/_.hint#L490).
932
+ - Normative source: [`spec/_.hint:525`](../spec/_.hint#L525).
891
933
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
892
934
 
893
935
  Behavior and consequence:
@@ -899,7 +941,7 @@ string. Subdirectory containing the dependency's `a2amodule.yml` (monorepo). Def
899
941
  - Type: string; optional.
900
942
  - Default: `locked`.
901
943
  - Allowed values: one of `locked`, `floating`.
902
- - Normative source: [`spec/_.hint:494`](../spec/_.hint#L494).
944
+ - Normative source: [`spec/_.hint:529`](../spec/_.hint#L529).
903
945
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
904
946
 
905
947
  Behavior and consequence:
@@ -920,7 +962,7 @@ Known values:
920
962
  - Type: array of string; optional.
921
963
  - Default: all matching detected ecosystems.
922
964
  - Allowed values: schema type plus the normative behavior in this entry.
923
- - Normative source: [`spec/_.hint:500`](../spec/_.hint#L500).
965
+ - Normative source: [`spec/_.hint:535`](../spec/_.hint#L535).
924
966
  - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
925
967
 
926
968
  Behavior and consequence:
@@ -934,6 +976,64 @@ only for an ecosystem named explicitly in `wire`. Wiring is repairable at any ti
934
976
  (`git-a2a wire [ID]` re-applies every adapter from the lock, idempotently) — a half-wired
935
977
  dependency is a state the tool can always see and always fix, never one it hides.
936
978
 
979
+ ## `dependencies[].vendor`
980
+
981
+ - Type: object; optional.
982
+ - Default: none declared.
983
+ - Allowed values: schema type plus the normative behavior in this entry.
984
+ - Normative source: [`spec/_.hint:546`](../spec/_.hint#L546).
985
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
986
+
987
+ Behavior and consequence:
988
+
989
+ object, optional, see [#vendor](../spec/_.hint). Its presence explicitly asks the tool to materialise
990
+ the locked source tree in this consumer; a dependency is never vendored implicitly.
991
+
992
+ ## `dependencies[].vendor.mode`
993
+
994
+ - Type: string; optional.
995
+ - Default: `submodule`.
996
+ - Allowed values: one of `submodule`, `copy`.
997
+ - Normative source: [`spec/_.hint:560`](../spec/_.hint#L560).
998
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
999
+
1000
+ Behavior and consequence:
1001
+
1002
+ `submodule` (default) or `copy`. `submodule` records a Git gitlink at the locked commit and may
1003
+ initialise nested submodules. `copy` records a plain Git-metadata-free tree. Changing mode replaces
1004
+ one representation with the other transactionally; unknown values are rejected.
1005
+
1006
+ ## `dependencies[].vendor.path`
1007
+
1008
+ - Type: string; optional.
1009
+ - Default: `<settings.vendor-dir>/<dependency-id>`.
1010
+ - Allowed values: minimum length 1.
1011
+ - Normative source: [`spec/_.hint:566`](../spec/_.hint#L566).
1012
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
1013
+
1014
+ Behavior and consequence:
1015
+
1016
+ string, optional relative path. Default `<settings.vendor-dir>/<dependency-id>`, normally
1017
+ `deps/<id>`. After slash normalisation it must be `..`-free and non-absolute; it must not be
1018
+ `.git`, `.git-a2a`, or inside either; must not equal or be inside `module.surface`; must not overlap
1019
+ another dependency's vendor path; and no existing path component may be a symlink. For submodule
1020
+ mode it must not already be tracked or be a submodule registered with another URL. Validation
1021
+ reports violations and never silently rewrites the path.
1022
+
1023
+ ## `dependencies[].vendor.recursive`
1024
+
1025
+ - Type: boolean; optional.
1026
+ - Default: `false`.
1027
+ - Allowed values: schema type plus the normative behavior in this entry.
1028
+ - Normative source: [`spec/_.hint:575`](../spec/_.hint#L575).
1029
+ - Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
1030
+
1031
+ Behavior and consequence:
1032
+
1033
+ boolean, optional, default `false`. In submodule mode, initialise the dependency's own nested
1034
+ submodules. In copy mode `true` is invalid because a Git tree contains nested gitlinks, not their
1035
+ content. Changing it changes only nested-submodule initialisation.
1036
+
937
1037
  ## Extension fields
938
1038
 
939
1039
  At every schema object that declares `patternProperties`, keys beginning with `x-` are