git-a2a 1.7.1-rc.4 → 2.0.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.
|
@@ -1,1368 +0,0 @@
|
|
|
1
|
-
<!-- Code generated by tools/gen-reference.py; DO NOT EDIT. -->
|
|
2
|
-
# Manifest field reference
|
|
3
|
-
|
|
4
|
-
This reference is generated from the compiled normative `spec/_.hint` and
|
|
5
|
-
`spec/schema/a2amodule.schema.json`. Run `make docs-check` to detect drift.
|
|
6
|
-
Paths use `[]` for one array entry. Unknown `x-*` extension keys are allowed at every
|
|
7
|
-
declared object boundary and are preserved; other unknown keys are validation errors.
|
|
8
|
-
|
|
9
|
-
## `schema`
|
|
10
|
-
|
|
11
|
-
- Type: integer; required.
|
|
12
|
-
- Default: exactly `1`.
|
|
13
|
-
- Allowed values: exact value `1`.
|
|
14
|
-
- Normative source: [`spec/_.hint:115`](../spec/_.hint#L115).
|
|
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
|
-
|
|
17
|
-
Behavior and consequence:
|
|
18
|
-
|
|
19
|
-
integer; the format version of this file. Value `1` for this specification. A consumer that
|
|
20
|
-
sees a larger value than it knows must refuse the file (exit 2), not guess, with
|
|
21
|
-
`schema <value> is newer than this tool supports (1); upgrade git-a2a`. A smaller or otherwise
|
|
22
|
-
invalid value is an ordinary validation failure (exit 1).
|
|
23
|
-
|
|
24
|
-
## `module`
|
|
25
|
-
|
|
26
|
-
- Type: object; required.
|
|
27
|
-
- Default: none declared.
|
|
28
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
29
|
-
- Normative source: [`spec/_.hint:122`](../spec/_.hint#L122).
|
|
30
|
-
- 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).
|
|
31
|
-
|
|
32
|
-
Behavior and consequence:
|
|
33
|
-
|
|
34
|
-
object; the module description. See [#module](../spec/_.hint).
|
|
35
|
-
|
|
36
|
-
## `agents`
|
|
37
|
-
|
|
38
|
-
- Type: array of object; optional.
|
|
39
|
-
- Default: none declared.
|
|
40
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
41
|
-
- Normative source: [`spec/_.hint:126`](../spec/_.hint#L126).
|
|
42
|
-
- 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).
|
|
43
|
-
|
|
44
|
-
Behavior and consequence:
|
|
45
|
-
|
|
46
|
-
list of agent bindings, see [#agent](../spec/_.hint). Empty or absent means "no agent owns this; treat
|
|
47
|
-
as a plain library" — still importable, nobody to ask.
|
|
48
|
-
|
|
49
|
-
## `policy`
|
|
50
|
-
|
|
51
|
-
- Type: object; optional.
|
|
52
|
-
- Default: none declared.
|
|
53
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
54
|
-
- Normative source: [`spec/_.hint:131`](../spec/_.hint#L131).
|
|
55
|
-
- 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).
|
|
56
|
-
|
|
57
|
-
Behavior and consequence:
|
|
58
|
-
|
|
59
|
-
object, see [#policy](../spec/_.hint). Routing defaults and consumer permissions.
|
|
60
|
-
|
|
61
|
-
## `settings`
|
|
62
|
-
|
|
63
|
-
- Type: object; optional.
|
|
64
|
-
- Default: none declared.
|
|
65
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
66
|
-
- Normative source: [`spec/_.hint:135`](../spec/_.hint#L135).
|
|
67
|
-
- 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).
|
|
68
|
-
|
|
69
|
-
Behavior and consequence:
|
|
70
|
-
|
|
71
|
-
object, see [#settings](../spec/_.hint). Consumer-local defaults; owners of dependencies never read
|
|
72
|
-
these settings from a consumer.
|
|
73
|
-
|
|
74
|
-
## `dependencies`
|
|
75
|
-
|
|
76
|
-
- Type: array of object; optional.
|
|
77
|
-
- Default: none declared.
|
|
78
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
79
|
-
- Normative source: [`spec/_.hint:140`](../spec/_.hint#L140).
|
|
80
|
-
- 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).
|
|
81
|
-
|
|
82
|
-
Behavior and consequence:
|
|
83
|
-
|
|
84
|
-
list, see [#dependency](../spec/_.hint). Modules this module depends on.
|
|
85
|
-
|
|
86
|
-
## `module.id`
|
|
87
|
-
|
|
88
|
-
- Type: string; required.
|
|
89
|
-
- Default: none declared.
|
|
90
|
-
- Allowed values: pattern `^[a-z0-9][a-z0-9._-]{0,63}$`.
|
|
91
|
-
- Normative source: [`spec/_.hint:182`](../spec/_.hint#L182).
|
|
92
|
-
- 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
|
-
|
|
94
|
-
Behavior and consequence:
|
|
95
|
-
|
|
96
|
-
string, required. Stable identifier, `^[a-z0-9][a-z0-9._-]{0,63}$`. Consumers refer to the
|
|
97
|
-
dependency by this id and the lock keys on it; `add` verifies that the fetched manifest's `id`
|
|
98
|
-
equals the id the consumer expected (when given) and otherwise adopts it. Renaming an id is a
|
|
99
|
-
breaking change for every consumer.
|
|
100
|
-
|
|
101
|
-
## `module.name`
|
|
102
|
-
|
|
103
|
-
- Type: string; optional.
|
|
104
|
-
- Default: `module.id`.
|
|
105
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
106
|
-
- Normative source: [`spec/_.hint:189`](../spec/_.hint#L189).
|
|
107
|
-
- 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).
|
|
108
|
-
|
|
109
|
-
Behavior and consequence:
|
|
110
|
-
|
|
111
|
-
string. Display name. Defaults to `id`.
|
|
112
|
-
|
|
113
|
-
## `module.description`
|
|
114
|
-
|
|
115
|
-
- Type: string; optional.
|
|
116
|
-
- Default: none declared.
|
|
117
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
118
|
-
- Normative source: [`spec/_.hint:193`](../spec/_.hint#L193).
|
|
119
|
-
- 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).
|
|
120
|
-
|
|
121
|
-
Behavior and consequence:
|
|
122
|
-
|
|
123
|
-
string, recommended. One paragraph answering "what is this and what is it for" — it is what a
|
|
124
|
-
consumer's agent reads in its roster, so it should also say what kind of questions the owner
|
|
125
|
-
expects. Whitespace is normalised when rendered.
|
|
126
|
-
|
|
127
|
-
## `module.languages`
|
|
128
|
-
|
|
129
|
-
- Type: array of string; optional.
|
|
130
|
-
- Default: none declared.
|
|
131
|
-
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
132
|
-
- Normative source: [`spec/_.hint:199`](../spec/_.hint#L199).
|
|
133
|
-
- 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).
|
|
134
|
-
|
|
135
|
-
Behavior and consequence:
|
|
136
|
-
|
|
137
|
-
list of strings, open vocabulary and informative. Known tokens and their behavior are in
|
|
138
|
-
`vocabulary_languages`. Not used for wiring; `exports` is. Changing it changes discovery metadata
|
|
139
|
-
only; unknown values are accepted and preserved.
|
|
140
|
-
|
|
141
|
-
Known values:
|
|
142
|
-
|
|
143
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
144
|
-
| --- | --- | --- | --- |
|
|
145
|
-
| `typescript` | Reports TypeScript as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
146
|
-
| `python` | Reports Python as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
147
|
-
| `go` | Reports Go as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
148
|
-
| `rust`, `swift`, `dart`, `ruby`, `php`, `elixir`, `haskell`, `zig`, `clojure`, `nix` | Reports the declared language as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
149
|
-
|
|
150
|
-
## `module.surface`
|
|
151
|
-
|
|
152
|
-
- Type: string; optional.
|
|
153
|
-
- Default: none declared.
|
|
154
|
-
- Allowed values: minimum length 1.
|
|
155
|
-
- Normative source: [`spec/_.hint:205`](../spec/_.hint#L205).
|
|
156
|
-
- 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).
|
|
157
|
-
|
|
158
|
-
Behavior and consequence:
|
|
159
|
-
|
|
160
|
-
string; relative directory path. Published content for consumers. Absent means nothing is
|
|
161
|
-
published beyond the manifest.
|
|
162
|
-
|
|
163
|
-
## `module.repository`
|
|
164
|
-
|
|
165
|
-
- Type: string; optional.
|
|
166
|
-
- Default: none declared.
|
|
167
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
168
|
-
- Normative source: [`spec/_.hint:210`](../spec/_.hint#L210).
|
|
169
|
-
- 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
|
-
|
|
171
|
-
Behavior and consequence:
|
|
172
|
-
|
|
173
|
-
string; the canonical git URL of this module as its owner declares it. Lets a consumer that
|
|
174
|
-
obtained the module from elsewhere (a fork, a mirror, a copy) see that it is not on the
|
|
175
|
-
canonical source — and that the `agents` listed may belong to the original owner rather than
|
|
176
|
-
to whoever maintains the copy. Informative; never used to fetch.
|
|
177
|
-
|
|
178
|
-
## `module.moved-to`
|
|
179
|
-
|
|
180
|
-
- Type: object; optional.
|
|
181
|
-
- Default: none declared.
|
|
182
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
183
|
-
- Normative source: [`spec/_.hint:217`](../spec/_.hint#L217).
|
|
184
|
-
- 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
|
-
|
|
186
|
-
Behavior and consequence:
|
|
187
|
-
|
|
188
|
-
object, optional: `git` (string, required; the new canonical URL), `path` (string), `notes`
|
|
189
|
-
(string). An owner leaves it in the last manifest at the old location when the module moves.
|
|
190
|
-
Consumers are told on `update` and follow it only on explicit request; a tool never switches a
|
|
191
|
-
source silently.
|
|
192
|
-
|
|
193
|
-
## `module.docs`
|
|
194
|
-
|
|
195
|
-
- Type: string; optional.
|
|
196
|
-
- Default: none declared.
|
|
197
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
198
|
-
- Normative source: [`spec/_.hint:224`](../spec/_.hint#L224).
|
|
199
|
-
- 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).
|
|
200
|
-
|
|
201
|
-
Behavior and consequence:
|
|
202
|
-
|
|
203
|
-
string; URL of human documentation.
|
|
204
|
-
|
|
205
|
-
## `module.release`
|
|
206
|
-
|
|
207
|
-
- Type: object; optional.
|
|
208
|
-
- Default: none declared.
|
|
209
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
210
|
-
- Normative source: [`spec/_.hint:228`](../spec/_.hint#L228).
|
|
211
|
-
- 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
|
-
|
|
213
|
-
Behavior and consequence:
|
|
214
|
-
|
|
215
|
-
object: `channel` (string, the ref consumers should follow by default, e.g. `main`), `tags`
|
|
216
|
-
(boolean, whether semver tags are published), `notes` (string, free text, e.g. "main is the only
|
|
217
|
-
release channel"). `release.channel` is the default `ref` a consumer gets when it adds this
|
|
218
|
-
module without naming one.
|
|
219
|
-
|
|
220
|
-
## `module.exports`
|
|
221
|
-
|
|
222
|
-
- Type: array of object; optional.
|
|
223
|
-
- Default: none declared.
|
|
224
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
225
|
-
- Normative source: [`spec/_.hint:235`](../spec/_.hint#L235).
|
|
226
|
-
- 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).
|
|
227
|
-
|
|
228
|
-
Behavior and consequence:
|
|
229
|
-
|
|
230
|
-
list of export entries; how to import this module per ecosystem. Each entry: `ecosystem`
|
|
231
|
-
(string, required; use package-url type names: `npm`, `pypi`, `golang`, `cargo`, `maven`,
|
|
232
|
-
`nuget`, `swift`, `cocoapods`, `pub`, `gem`, `composer`, `hex`, `hackage`, …), `name` (string,
|
|
233
|
-
required; the name the ecosystem imports: npm package name, PEP 503 distribution name, Go module
|
|
234
|
-
path, crate name, Maven `group:artifact`), `path` (string, optional; subdirectory containing the
|
|
235
|
-
ecosystem's own manifest, default the module directory), `notes` (string, optional; anything a
|
|
236
|
-
wiring tool or agent must know, e.g. "vanity import path, needs replace", "prepare script builds
|
|
237
|
-
dist"). Ecosystem-specific keys are allowed under `x-<ecosystem>-*`.
|
|
238
|
-
|
|
239
|
-
## `module.moved-to.git`
|
|
240
|
-
|
|
241
|
-
- Type: string; required.
|
|
242
|
-
- Default: none declared.
|
|
243
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
244
|
-
- Normative source: [`spec/_.hint:251`](../spec/_.hint#L251).
|
|
245
|
-
- 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).
|
|
246
|
-
|
|
247
|
-
Behavior and consequence:
|
|
248
|
-
|
|
249
|
-
string, required. New canonical Git URL. Changing it changes the destination offered to users;
|
|
250
|
-
consumers remain on the current source until an explicit `set --git`.
|
|
251
|
-
|
|
252
|
-
## `module.moved-to.path`
|
|
253
|
-
|
|
254
|
-
- Type: string; optional.
|
|
255
|
-
- Default: `.`.
|
|
256
|
-
- Allowed values: minimum length 1.
|
|
257
|
-
- Normative source: [`spec/_.hint:256`](../spec/_.hint#L256).
|
|
258
|
-
- 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).
|
|
259
|
-
|
|
260
|
-
Behavior and consequence:
|
|
261
|
-
|
|
262
|
-
string, optional relative path, default `.`. Subdirectory containing the moved module. Changing
|
|
263
|
-
it changes the destination module root offered with the new Git URL.
|
|
264
|
-
|
|
265
|
-
## `module.moved-to.notes`
|
|
266
|
-
|
|
267
|
-
- Type: string; optional.
|
|
268
|
-
- Default: none declared.
|
|
269
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
270
|
-
- Normative source: [`spec/_.hint:261`](../spec/_.hint#L261).
|
|
271
|
-
- 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).
|
|
272
|
-
|
|
273
|
-
Behavior and consequence:
|
|
274
|
-
|
|
275
|
-
string, optional. Human migration context printed with the move notice. Changing it changes only
|
|
276
|
-
the guidance, never the source automatically.
|
|
277
|
-
|
|
278
|
-
## `module.release.channel`
|
|
279
|
-
|
|
280
|
-
- Type: string; optional.
|
|
281
|
-
- Default: none declared.
|
|
282
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
283
|
-
- Normative source: [`spec/_.hint:270`](../spec/_.hint#L270).
|
|
284
|
-
- 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).
|
|
285
|
-
|
|
286
|
-
Behavior and consequence:
|
|
287
|
-
|
|
288
|
-
string, optional. Default ref used by `add` when the consumer supplies no ref, commonly `main`.
|
|
289
|
-
Changing it affects future adds; existing consumers retain their declared ref until `set`.
|
|
290
|
-
|
|
291
|
-
## `module.release.tags`
|
|
292
|
-
|
|
293
|
-
- Type: boolean; optional.
|
|
294
|
-
- Default: `false`.
|
|
295
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
296
|
-
- Normative source: [`spec/_.hint:275`](../spec/_.hint#L275).
|
|
297
|
-
- 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).
|
|
298
|
-
|
|
299
|
-
Behavior and consequence:
|
|
300
|
-
|
|
301
|
-
boolean, optional, default `false`. Declares whether the owner publishes semantic-version tags.
|
|
302
|
-
Changing it changes what consumers may reasonably select with `set --ref`; it does not create tags.
|
|
303
|
-
|
|
304
|
-
## `module.release.notes`
|
|
305
|
-
|
|
306
|
-
- Type: string; optional.
|
|
307
|
-
- Default: none declared.
|
|
308
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
309
|
-
- Normative source: [`spec/_.hint:280`](../spec/_.hint#L280).
|
|
310
|
-
- 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).
|
|
311
|
-
|
|
312
|
-
Behavior and consequence:
|
|
313
|
-
|
|
314
|
-
string, optional. Free release-channel guidance shown to consumers. Changing it changes guidance
|
|
315
|
-
only and does not resolve or move a dependency.
|
|
316
|
-
|
|
317
|
-
## `module.exports[].ecosystem`
|
|
318
|
-
|
|
319
|
-
- Type: string; required.
|
|
320
|
-
- Default: none declared.
|
|
321
|
-
- Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
|
|
322
|
-
- Normative source: [`spec/_.hint:289`](../spec/_.hint#L289).
|
|
323
|
-
- 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).
|
|
324
|
-
|
|
325
|
-
Behavior and consequence:
|
|
326
|
-
|
|
327
|
-
string, required, open vocabulary. Known values and adapter behavior are in
|
|
328
|
-
`vocabulary_ecosystems`. Changing it selects a different adapter and therefore a different native
|
|
329
|
-
manifest; an unknown value remains valid published metadata but has no wiring adapter.
|
|
330
|
-
|
|
331
|
-
Known values:
|
|
332
|
-
|
|
333
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
334
|
-
| --- | --- | --- | --- |
|
|
335
|
-
| `npm` | Wires a Git dependency in package.json through npm/yarn/pnpm/bun. | Selects the JavaScript package name and adapter. | Accepted; without an adapter it remains published metadata and cannot be wired. |
|
|
336
|
-
| `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. |
|
|
337
|
-
| `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. |
|
|
338
|
-
| `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. |
|
|
339
|
-
| `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. |
|
|
340
|
-
|
|
341
|
-
## `module.exports[].name`
|
|
342
|
-
|
|
343
|
-
- Type: string; required.
|
|
344
|
-
- Default: none declared.
|
|
345
|
-
- Allowed values: minimum length 1.
|
|
346
|
-
- Normative source: [`spec/_.hint:295`](../spec/_.hint#L295).
|
|
347
|
-
- 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).
|
|
348
|
-
|
|
349
|
-
Behavior and consequence:
|
|
350
|
-
|
|
351
|
-
string, required. Native package/import name in the named ecosystem. Changing it rewires the
|
|
352
|
-
consumer from the old native entry to the new one on the next mutation or `wire`.
|
|
353
|
-
|
|
354
|
-
## `module.exports[].path`
|
|
355
|
-
|
|
356
|
-
- Type: string; optional.
|
|
357
|
-
- Default: the module directory (`.`).
|
|
358
|
-
- Allowed values: minimum length 1.
|
|
359
|
-
- Normative source: [`spec/_.hint:300`](../spec/_.hint#L300).
|
|
360
|
-
- 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).
|
|
361
|
-
|
|
362
|
-
Behavior and consequence:
|
|
363
|
-
|
|
364
|
-
string, optional relative path, default `.`. Subdirectory containing the ecosystem package.
|
|
365
|
-
Changing it changes the Git subdirectory expression; unsupported adapters report `not wired`.
|
|
366
|
-
|
|
367
|
-
## `module.exports[].notes`
|
|
368
|
-
|
|
369
|
-
- Type: string; optional.
|
|
370
|
-
- Default: none declared.
|
|
371
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
372
|
-
- Normative source: [`spec/_.hint:305`](../spec/_.hint#L305).
|
|
373
|
-
- 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).
|
|
374
|
-
|
|
375
|
-
Behavior and consequence:
|
|
376
|
-
|
|
377
|
-
string, optional. Export-specific facts shown to tools and agents. Changing it changes published
|
|
378
|
-
guidance but does not itself alter adapter behavior.
|
|
379
|
-
|
|
380
|
-
## `agents[].name`
|
|
381
|
-
|
|
382
|
-
- Type: string; required.
|
|
383
|
-
- Default: none declared.
|
|
384
|
-
- Allowed values: minimum length 1.
|
|
385
|
-
- Normative source: [`spec/_.hint:314`](../spec/_.hint#L314).
|
|
386
|
-
- 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).
|
|
387
|
-
|
|
388
|
-
Behavior and consequence:
|
|
389
|
-
|
|
390
|
-
string, required. The agent's own name — must equal `name` in its A2A card when a card is given.
|
|
391
|
-
An agent may appear in many modules (one agent, many repositories) and a module may list many
|
|
392
|
-
agents (one repository, many agents), so `name` must be stable across repositories. Identity
|
|
393
|
-
for de-duplication across modules is the `card` URL when present, else `name`; two bindings in
|
|
394
|
-
different modules with the same card URL are the same agent, and tools may merge what they know
|
|
395
|
-
about it. Names are scoped to whoever controls the card URL, so a public ecosystem never relies
|
|
396
|
-
on a bare name being globally unique.
|
|
397
|
-
|
|
398
|
-
## `agents[].role`
|
|
399
|
-
|
|
400
|
-
- Type: string; required.
|
|
401
|
-
- Default: none declared.
|
|
402
|
-
- Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
|
|
403
|
-
- Normative source: [`spec/_.hint:324`](../spec/_.hint#L324).
|
|
404
|
-
- 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).
|
|
405
|
-
|
|
406
|
-
Behavior and consequence:
|
|
407
|
-
|
|
408
|
-
string, required, open vocabulary. A role says what the agent owns for this module; core values
|
|
409
|
-
and routing consequences are in `vocabulary_roles`. Unknown roles are accepted and participate in
|
|
410
|
-
routing when `policy.intents` names the same token.
|
|
411
|
-
|
|
412
|
-
Known values:
|
|
413
|
-
|
|
414
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
415
|
-
| --- | --- | --- | --- |
|
|
416
|
-
| `owner` | Default routing target; identifies the agent that commits, merges, and releases. | Requests using the default route select a different binding. | Accepted and routed when policy names the same token. |
|
|
417
|
-
| `maintainer` | Routes intents mapped to a maintainer. | Changes which bindings match those intents. | Accepted and routed when policy names the same token. |
|
|
418
|
-
| `spec` | Routes specification, task, or sequencing ownership. | Changes which bindings match policy entries such as `change: spec`. | Accepted and routed when policy names the same token. |
|
|
419
|
-
| `reviewer` | Routes review ownership. | Changes which bindings match review policy. | Accepted and routed when policy names the same token. |
|
|
420
|
-
| `support` | Routes support ownership. | Changes which bindings match support policy. | Accepted and routed when policy names the same token. |
|
|
421
|
-
|
|
422
|
-
## `agents[].scope`
|
|
423
|
-
|
|
424
|
-
- Type: array of string; optional.
|
|
425
|
-
- Default: `["**"]`.
|
|
426
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
427
|
-
- Normative source: [`spec/_.hint:330`](../spec/_.hint#L330).
|
|
428
|
-
- 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).
|
|
429
|
-
|
|
430
|
-
Behavior and consequence:
|
|
431
|
-
|
|
432
|
-
list of glob patterns relative to the module directory. What this agent answers for and may
|
|
433
|
-
change. Default `["**"]`. Two agents may overlap; resolution prefers the more specific match,
|
|
434
|
-
then declared order.
|
|
435
|
-
|
|
436
|
-
## `agents[].card`
|
|
437
|
-
|
|
438
|
-
- Type: string; optional.
|
|
439
|
-
- Default: none declared.
|
|
440
|
-
- Allowed values: minimum length 1.
|
|
441
|
-
- Normative source: [`spec/_.hint:336`](../spec/_.hint#L336).
|
|
442
|
-
- 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).
|
|
443
|
-
|
|
444
|
-
Behavior and consequence:
|
|
445
|
-
|
|
446
|
-
string. URL of the agent's A2A Agent Card (`https://…/.well-known/agent-card.json`) or a
|
|
447
|
-
repository-relative path to a card file (A2A "direct configuration"). When present the card is
|
|
448
|
-
the authority for `description`, `skills`, interfaces and security; git-a2a snapshots it.
|
|
449
|
-
|
|
450
|
-
## `agents[].description`
|
|
451
|
-
|
|
452
|
-
- Type: string; optional.
|
|
453
|
-
- Default: none declared.
|
|
454
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
455
|
-
- Normative source: [`spec/_.hint:342`](../spec/_.hint#L342).
|
|
456
|
-
- 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).
|
|
457
|
-
|
|
458
|
-
Behavior and consequence:
|
|
459
|
-
|
|
460
|
-
string. Only when no card is available or to add module-specific wording ("for this repository,
|
|
461
|
-
ask it about …"). Never a copy of the card's description.
|
|
462
|
-
|
|
463
|
-
## `agents[].contacts`
|
|
464
|
-
|
|
465
|
-
- Type: array of object; optional.
|
|
466
|
-
- Default: none declared.
|
|
467
|
-
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
468
|
-
- Normative source: [`spec/_.hint:347`](../spec/_.hint#L347).
|
|
469
|
-
- 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).
|
|
470
|
-
|
|
471
|
-
Behavior and consequence:
|
|
472
|
-
|
|
473
|
-
ordered list. Each contact: `intents` (list of strings, required; `"*"` allowed), `kind`
|
|
474
|
-
(string, required; open vocabulary, see [#contact\_kinds](../spec/_.hint)), `note` (string,
|
|
475
|
-
optional; free-text instructions shown verbatim to the asker, e.g. "state the version you are
|
|
476
|
-
on"), plus kind-specific keys. Order expresses preference within an intent.
|
|
477
|
-
|
|
478
|
-
## `agents[].trust`
|
|
479
|
-
|
|
480
|
-
- Type: object; optional.
|
|
481
|
-
- Default: none declared.
|
|
482
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
483
|
-
- Normative source: [`spec/_.hint:354`](../spec/_.hint#L354).
|
|
484
|
-
- 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).
|
|
485
|
-
|
|
486
|
-
Behavior and consequence:
|
|
487
|
-
|
|
488
|
-
object, optional: `signatures` (boolean), `accepts-external` (boolean), `jwks` (list of https
|
|
489
|
-
URLs), `keys` (list of JWK SHA-256 thumbprints, RFC 7638), `origins` (list of origins
|
|
490
|
-
`scheme://host[:port]`), `jwks-max-age` (duration, default `24h`), `x-*`. Defaults: no
|
|
491
|
-
verification required, external not stated, nothing pinned.
|
|
492
|
-
|
|
493
|
-
Verification when `signatures: true`: at least one detached JWS over the RFC 8785 canonical card
|
|
494
|
-
(top-level `signatures` excluded) must verify with a key that is (a) in a JWKS whose URL is listed
|
|
495
|
-
in `jwks`, or (b) whose thumbprint is listed in `keys`, or — only when both lists are empty — (c)
|
|
496
|
-
served by a `jku` with the same origin as the card URL, in which case `validate` and `doctor`
|
|
497
|
-
report "unpinned key source". The first verified `kid` and thumbprint are recorded in the lock
|
|
498
|
-
(`cards-keys`); a different key later is a `status` failure `trust: key changed` until the
|
|
499
|
-
consumer accepts it with `update --accept-keys`. Keys missing from a freshly fetched JWKS no
|
|
500
|
-
longer verify. An unsigned, invalid or unverifiable card makes `status` fail; `update` retains
|
|
501
|
-
the dependency update but prints a trust warning.
|
|
502
|
-
|
|
503
|
-
Origin check (always on, severity depends on `signatures`): the card URL and every
|
|
504
|
-
`supportedInterfaces[].url` must be in `origins` when declared; otherwise their origin must equal
|
|
505
|
-
the origin of `module.repository`, or the card's git-a2a extension `params.repository` must equal
|
|
506
|
-
the dependency's canonical `git`. A mismatch is a failure when `signatures: true` or when the
|
|
507
|
-
consumer requires `card-origin`, a warning otherwise.
|
|
508
|
-
|
|
509
|
-
## `agents[].contacts[].intents`
|
|
510
|
-
|
|
511
|
-
- Type: array of string; required.
|
|
512
|
-
- Default: none declared.
|
|
513
|
-
- Allowed values: minimum 1 item(s); open vocabulary; see the known-values table in this entry.
|
|
514
|
-
- Normative source: [`spec/_.hint:382`](../spec/_.hint#L382).
|
|
515
|
-
- 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).
|
|
516
|
-
|
|
517
|
-
Behavior and consequence:
|
|
518
|
-
|
|
519
|
-
list of strings, required and non-empty, open vocabulary; `"*"` is the fallback. Changing the
|
|
520
|
-
list changes which requests may select this contact. Core values, fallback behavior, and unknown
|
|
521
|
-
handling are in `vocabulary_intents`.
|
|
522
|
-
|
|
523
|
-
Known values:
|
|
524
|
-
|
|
525
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
526
|
-
| --- | --- | --- | --- |
|
|
527
|
-
| `question` | Routes a request for explanation; defaults to role `owner`. | Selects contacts declaring `question` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
528
|
-
| `change` | Routes a proposed behavior/API change. | Selects contacts declaring `change` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
529
|
-
| `bug` | Routes a defect report. | Selects contacts declaring `bug` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
530
|
-
| `review` | Routes a review request. | Selects contacts declaring `review` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
531
|
-
| `incident` | Routes an operational incident. | Selects contacts declaring `incident` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
532
|
-
| `*` | Acts as a contact fallback after exact intent matches. | Broadens that contact to unmatched intents. | Accepted; any other unknown token is an exact-match intent. |
|
|
533
|
-
|
|
534
|
-
## `agents[].contacts[].kind`
|
|
535
|
-
|
|
536
|
-
- Type: string; required.
|
|
537
|
-
- Default: none declared.
|
|
538
|
-
- Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
|
|
539
|
-
- Normative source: [`spec/_.hint:388`](../spec/_.hint#L388).
|
|
540
|
-
- 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).
|
|
541
|
-
|
|
542
|
-
Behavior and consequence:
|
|
543
|
-
|
|
544
|
-
string, required, open vocabulary. Changing it selects another delivery driver or instruction
|
|
545
|
-
renderer and changes which kind-specific fields are valid. Known values and unknown handling are
|
|
546
|
-
in `contact_kinds`.
|
|
547
|
-
|
|
548
|
-
Known values:
|
|
549
|
-
|
|
550
|
-
The kind vocabulary is open; these kinds have defined keys and delivery behavior:
|
|
551
|
-
|
|
552
|
-
| Kind | Allowed kind-specific keys | Driver or instruction | Consequence of changing it | Unknown kind |
|
|
553
|
-
| --- | --- | --- | --- | --- |
|
|
554
|
-
| `a2a` | `url`, optional `skill` | Sends A2A `SendMessage` JSON-RPC 1.0; the only kind derivable from a card. | Changes the JSON-RPC endpoint or target skill. | Accepted, but no delivery driver is selected. |
|
|
555
|
-
| `github-issue` | `repo`, optional `server`, `labels`, `template` | Creates an issue through `gh`, then GitHub REST fallback (`server` selects a GitHub Enterprise host; API base `https://<server>/api/v3` unless `GITHUB_API_URL` overrides). | Changes the repository, host, labels, or issue template. | Accepted, but no delivery driver is selected. |
|
|
556
|
-
| `gitlab-issue` | `repo`, optional `server` (default `gitlab.com`), `labels`, `template` | Creates an issue through `glab`, then GitLab REST fallback (`POST /api/v4/projects/<url-encoded path>/issues`, token from `GITLAB_TOKEN`/`GLAB_TOKEN`). | Changes the project, host, labels, or template. | Accepted, but no delivery driver is selected. |
|
|
557
|
-
| `gitea-issue` | `repo`, `server` (required), optional `labels` | Creates an issue through `tea`, then Gitea/Forgejo REST fallback (`POST /api/v1/repos/<owner>/<repo>/issues`, token from `GITEA_TOKEN`/`FORGEJO_TOKEN`). Covers Gitea, Forgejo and Codeberg. | Changes the instance or repository. | Accepted, but no delivery driver is selected. |
|
|
558
|
-
| `bitbucket-issue` | `repo` (`workspace/slug`), optional `labels` | Prints an instruction with a prefilled deep link; Bitbucket Cloud only — Data Center has no issue tracker. | Changes the instructed destination. | Accepted, but no delivery driver is selected. |
|
|
559
|
-
| `azure-boards` | `organization`, `project`, optional `issue-type` | Prints an `az boards work-item create` instruction. | Changes the instructed organization, project, or type. | Accepted, but no delivery driver is selected. |
|
|
560
|
-
| `http` | `url` (https), optional `method` (default `POST`), `headers` (static literals), `content-type`, `body` | Owner-described request. Instruction by default (rendered as the exact final request); delivered only when the consumer allows the origin in `settings.contact.allow-http`; no credential is ever attached from the declaration. | Changes the described endpoint or payload. | — |
|
|
561
|
-
| `exec` | `command` (argv, bare binary name first), optional `args`, `stdin` (default `{message}`) | Owner-described local invocation. Instruction by default; executed only when the binary name is in the consumer's `settings.contact.allow-exec` and resolves on PATH; argv exec, never a shell; CLI-only — the MCP `contact` tool refuses `exec`. | Changes the described invocation. | — |
|
|
562
|
-
| `email` | `address`, optional `subject-prefix` | Pipes RFC 5322 mail to `sendmail` on consumer PATH; otherwise uses `GITA2A_SMTP_URL=smtps://user@host` with `GITA2A_SMTP_PASSWORD`; otherwise prints an instruction. Coordinates come from the owner and credentials only from the consumer. | Changes the recipient or subject. | Accepted, but no delivery driver is selected. |
|
|
563
|
-
| `jira` | `url`, `project`, optional `issue-type` | Prints a Jira instruction. | Changes the instructed site, project, or issue type. | Accepted, but no delivery driver is selected. |
|
|
564
|
-
| `mattermost`, `slack`, `discord`, `telegram`, `teams` | `channel`, `handle`, optional `server` | Prints a chat instruction. | Changes the instructed workspace, channel, or handle. | Accepted, but no delivery driver is selected. |
|
|
565
|
-
| `url` | `url`, optional `note` | Prints the URL instruction. | Changes the instructed destination. | Accepted, but no delivery driver is selected. |
|
|
566
|
-
|
|
567
|
-
An unknown kind is rendered as `kind: <value>` with its extension keys, is never a validation
|
|
568
|
-
error, and cannot be delivered by `contact` until a driver exists.
|
|
569
|
-
|
|
570
|
-
Issue-kind instructions include a prefilled, URL-encoded and length-capped deep link when the
|
|
571
|
-
forge supports one, so a driverless contact is one click for a human and one request for an
|
|
572
|
-
agent. GitHub, Gitea, and Bitbucket use `…/issues/new?title=…&body=…`; GitLab uses
|
|
573
|
-
`…/-/issues/new?issue[title]=…&issue[description]=…`. The title is the same capped first
|
|
574
|
-
non-empty message line used by delivery drivers, and the body/description is the capped full
|
|
575
|
-
message. Forges without a tracker (Gerrit, Bitbucket Data Center, bare git hosting) are served
|
|
576
|
-
by `email`, `jira`, `url`, or a chat kind — contacts bind to intents, not to where the code is
|
|
577
|
-
hosted.
|
|
578
|
-
|
|
579
|
-
Driver resolution per contact, in order: a consumer-installed plugin executable
|
|
580
|
-
`git-a2a-contact-<kind>` on PATH; the built-in driver; a declared `http`/`exec` invocation the
|
|
581
|
-
consumer has consented to; the rendered instruction. The chosen path is named in the delivery
|
|
582
|
-
record and by `contact --list-drivers`.
|
|
583
|
-
|
|
584
|
-
## `agents[].contacts[].note`
|
|
585
|
-
|
|
586
|
-
- Type: string; optional.
|
|
587
|
-
- Default: none declared.
|
|
588
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
589
|
-
- Normative source: [`spec/_.hint:394`](../spec/_.hint#L394).
|
|
590
|
-
- 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).
|
|
591
|
-
|
|
592
|
-
Behavior and consequence:
|
|
593
|
-
|
|
594
|
-
string, optional. Instructions printed verbatim after the route. Changing it changes the asker's
|
|
595
|
-
guidance, not routing priority or delivery mechanics.
|
|
596
|
-
|
|
597
|
-
## `agents[].contacts[].url`
|
|
598
|
-
|
|
599
|
-
- Type: string; optional.
|
|
600
|
-
- Default: none declared.
|
|
601
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
602
|
-
- Normative source: [`spec/_.hint:399`](../spec/_.hint#L399).
|
|
603
|
-
- 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).
|
|
604
|
-
|
|
605
|
-
Behavior and consequence:
|
|
606
|
-
|
|
607
|
-
string, optional for `a2a`, `jira`, and `url`, required and HTTPS for `http`. Changing it changes
|
|
608
|
-
the service or instruction destination; for A2A it is the JSON-RPC endpoint. `http` templates may
|
|
609
|
-
place non-message placeholders only in query values according to `contact_placeholders`.
|
|
610
|
-
|
|
611
|
-
## `agents[].contacts[].skill`
|
|
612
|
-
|
|
613
|
-
- Type: string; optional.
|
|
614
|
-
- Default: none declared.
|
|
615
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
616
|
-
- Normative source: [`spec/_.hint:405`](../spec/_.hint#L405).
|
|
617
|
-
- 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).
|
|
618
|
-
|
|
619
|
-
Behavior and consequence:
|
|
620
|
-
|
|
621
|
-
string, optional for `a2a`. Skill identifier requested from the remote agent. Changing it changes
|
|
622
|
-
the A2A target skill without changing the endpoint.
|
|
623
|
-
|
|
624
|
-
## `agents[].contacts[].address`
|
|
625
|
-
|
|
626
|
-
- Type: string; optional.
|
|
627
|
-
- Default: none declared.
|
|
628
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
629
|
-
- Normative source: [`spec/_.hint:410`](../spec/_.hint#L410).
|
|
630
|
-
- 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).
|
|
631
|
-
|
|
632
|
-
Behavior and consequence:
|
|
633
|
-
|
|
634
|
-
string, optional for `email`. Destination email address. Changing it changes the recipient.
|
|
635
|
-
The reference CLI pipes RFC 5322 mail to consumer-installed `sendmail`, otherwise uses consumer
|
|
636
|
-
SMTP configuration, otherwise prints the instruction.
|
|
637
|
-
|
|
638
|
-
## `agents[].contacts[].subject-prefix`
|
|
639
|
-
|
|
640
|
-
- Type: string; optional.
|
|
641
|
-
- Default: none declared.
|
|
642
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
643
|
-
- Normative source: [`spec/_.hint:416`](../spec/_.hint#L416).
|
|
644
|
-
- 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).
|
|
645
|
-
|
|
646
|
-
Behavior and consequence:
|
|
647
|
-
|
|
648
|
-
string, optional for `email`. Prefix suggested for the email subject. Changing it changes only
|
|
649
|
-
the printed instruction.
|
|
650
|
-
|
|
651
|
-
## `agents[].contacts[].repo`
|
|
652
|
-
|
|
653
|
-
- Type: string; optional.
|
|
654
|
-
- Default: none declared.
|
|
655
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
656
|
-
- Normative source: [`spec/_.hint:421`](../spec/_.hint#L421).
|
|
657
|
-
- 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).
|
|
658
|
-
|
|
659
|
-
Behavior and consequence:
|
|
660
|
-
|
|
661
|
-
string for `github-issue`, `gitlab-issue`, `gitea-issue`, and `bitbucket-issue`; normally
|
|
662
|
-
`owner/name`, while GitLab permits nested `group/subgroup/name`. Changing it changes the repository
|
|
663
|
-
where the issue driver delivers the request.
|
|
664
|
-
|
|
665
|
-
## `agents[].contacts[].labels`
|
|
666
|
-
|
|
667
|
-
- Type: array of string; optional.
|
|
668
|
-
- Default: none declared.
|
|
669
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
670
|
-
- Normative source: [`spec/_.hint:427`](../spec/_.hint#L427).
|
|
671
|
-
- 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).
|
|
672
|
-
|
|
673
|
-
Behavior and consequence:
|
|
674
|
-
|
|
675
|
-
list of strings, optional for issue kinds. Changing it changes labels requested when an issue is
|
|
676
|
-
created; a missing label is a delivery error from the host.
|
|
677
|
-
|
|
678
|
-
## `agents[].contacts[].template`
|
|
679
|
-
|
|
680
|
-
- Type: string; optional.
|
|
681
|
-
- Default: none declared.
|
|
682
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
683
|
-
- Normative source: [`spec/_.hint:432`](../spec/_.hint#L432).
|
|
684
|
-
- 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).
|
|
685
|
-
|
|
686
|
-
Behavior and consequence:
|
|
687
|
-
|
|
688
|
-
string, optional for issue kinds. Issue form/template name. Changing it changes the requested
|
|
689
|
-
template without changing routing.
|
|
690
|
-
|
|
691
|
-
## `agents[].contacts[].project`
|
|
692
|
-
|
|
693
|
-
- Type: string; optional.
|
|
694
|
-
- Default: none declared.
|
|
695
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
696
|
-
- Normative source: [`spec/_.hint:477`](../spec/_.hint#L477).
|
|
697
|
-
- 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).
|
|
698
|
-
|
|
699
|
-
Behavior and consequence:
|
|
700
|
-
|
|
701
|
-
string for `jira` and `azure-boards`. Project key. Changing it changes the project named in the
|
|
702
|
-
instruction.
|
|
703
|
-
|
|
704
|
-
## `agents[].contacts[].organization`
|
|
705
|
-
|
|
706
|
-
- Type: string; optional.
|
|
707
|
-
- Default: none declared.
|
|
708
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
709
|
-
- Normative source: [`spec/_.hint:437`](../spec/_.hint#L437).
|
|
710
|
-
- 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).
|
|
711
|
-
|
|
712
|
-
Behavior and consequence:
|
|
713
|
-
|
|
714
|
-
string for `azure-boards`. Changing it changes the Azure DevOps organization named by the
|
|
715
|
-
instruction.
|
|
716
|
-
|
|
717
|
-
## `agents[].contacts[].issue-type`
|
|
718
|
-
|
|
719
|
-
- Type: string; optional.
|
|
720
|
-
- Default: none declared.
|
|
721
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
722
|
-
- Normative source: [`spec/_.hint:482`](../spec/_.hint#L482).
|
|
723
|
-
- 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).
|
|
724
|
-
|
|
725
|
-
Behavior and consequence:
|
|
726
|
-
|
|
727
|
-
string, optional for `jira`. Issue type. Changing it changes the Jira issue kind named in the
|
|
728
|
-
instruction.
|
|
729
|
-
|
|
730
|
-
## `agents[].contacts[].channel`
|
|
731
|
-
|
|
732
|
-
- Type: string; optional.
|
|
733
|
-
- Default: none declared.
|
|
734
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
735
|
-
- Normative source: [`spec/_.hint:487`](../spec/_.hint#L487).
|
|
736
|
-
- 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).
|
|
737
|
-
|
|
738
|
-
Behavior and consequence:
|
|
739
|
-
|
|
740
|
-
string, optional for chat kinds. Channel name or id. Changing it changes the printed chat
|
|
741
|
-
destination; chat contacts are instruction-only.
|
|
742
|
-
|
|
743
|
-
## `agents[].contacts[].handle`
|
|
744
|
-
|
|
745
|
-
- Type: string; optional.
|
|
746
|
-
- Default: none declared.
|
|
747
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
748
|
-
- Normative source: [`spec/_.hint:492`](../spec/_.hint#L492).
|
|
749
|
-
- 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).
|
|
750
|
-
|
|
751
|
-
Behavior and consequence:
|
|
752
|
-
|
|
753
|
-
string, optional for chat kinds. Agent mention or handle. Changing it changes whom the asker is
|
|
754
|
-
told to address.
|
|
755
|
-
|
|
756
|
-
## `agents[].contacts[].server`
|
|
757
|
-
|
|
758
|
-
- Type: string; optional.
|
|
759
|
-
- Default: none declared.
|
|
760
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
761
|
-
- Normative source: [`spec/_.hint:497`](../spec/_.hint#L497).
|
|
762
|
-
- 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).
|
|
763
|
-
|
|
764
|
-
Behavior and consequence:
|
|
765
|
-
|
|
766
|
-
string, optional for chat kinds. Workspace or server URL/name. Changing it disambiguates the
|
|
767
|
-
printed chat destination.
|
|
768
|
-
|
|
769
|
-
## `agents[].contacts[].method`
|
|
770
|
-
|
|
771
|
-
- Type: string; optional.
|
|
772
|
-
- Default: none declared.
|
|
773
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
774
|
-
- Normative source: [`spec/_.hint:442`](../spec/_.hint#L442).
|
|
775
|
-
- 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).
|
|
776
|
-
|
|
777
|
-
Behavior and consequence:
|
|
778
|
-
|
|
779
|
-
string, optional for `http`, default `POST`. Changing it changes the exact instructed or allowed
|
|
780
|
-
HTTP request method.
|
|
781
|
-
|
|
782
|
-
## `agents[].contacts[].headers`
|
|
783
|
-
|
|
784
|
-
- Type: object; optional.
|
|
785
|
-
- Default: none declared.
|
|
786
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
787
|
-
- Normative source: [`spec/_.hint:447`](../spec/_.hint#L447).
|
|
788
|
-
- 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
|
-
|
|
790
|
-
Behavior and consequence:
|
|
791
|
-
|
|
792
|
-
map of string to string, optional for `http`. Values are static literals: placeholders are invalid,
|
|
793
|
-
and git-a2a never adds credentials from the declaration or consumer environment.
|
|
794
|
-
|
|
795
|
-
## `agents[].contacts[].content-type`
|
|
796
|
-
|
|
797
|
-
- Type: string; optional.
|
|
798
|
-
- Default: none declared.
|
|
799
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
800
|
-
- Normative source: [`spec/_.hint:452`](../spec/_.hint#L452).
|
|
801
|
-
- 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).
|
|
802
|
-
|
|
803
|
-
Behavior and consequence:
|
|
804
|
-
|
|
805
|
-
string, optional for `http`. It selects the request Content-Type and JSON-aware placeholder
|
|
806
|
-
escaping when it contains `json`.
|
|
807
|
-
|
|
808
|
-
## `agents[].contacts[].body`
|
|
809
|
-
|
|
810
|
-
- Type: string; optional.
|
|
811
|
-
- Default: none declared.
|
|
812
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
813
|
-
- Normative source: [`spec/_.hint:457`](../spec/_.hint#L457).
|
|
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).
|
|
815
|
-
|
|
816
|
-
Behavior and consequence:
|
|
817
|
-
|
|
818
|
-
string template, optional for `http`. It may use every value in `contact_placeholders`, including
|
|
819
|
-
`{message}`; changing it changes the exact instructed or delivered payload.
|
|
820
|
-
|
|
821
|
-
## `agents[].contacts[].command`
|
|
822
|
-
|
|
823
|
-
- Type: array of string; optional.
|
|
824
|
-
- Default: none declared.
|
|
825
|
-
- Allowed values: minimum 1 item(s).
|
|
826
|
-
- Normative source: [`spec/_.hint:462`](../spec/_.hint#L462).
|
|
827
|
-
- 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).
|
|
828
|
-
|
|
829
|
-
Behavior and consequence:
|
|
830
|
-
|
|
831
|
-
list of strings, required for `exec`. The first item is a bare binary name without a path separator;
|
|
832
|
-
remaining items are argv entries. It is never interpreted by a shell.
|
|
833
|
-
|
|
834
|
-
## `agents[].contacts[].args`
|
|
835
|
-
|
|
836
|
-
- Type: array of string; optional.
|
|
837
|
-
- Default: none declared.
|
|
838
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
839
|
-
- Normative source: [`spec/_.hint:467`](../spec/_.hint#L467).
|
|
840
|
-
- 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).
|
|
841
|
-
|
|
842
|
-
Behavior and consequence:
|
|
843
|
-
|
|
844
|
-
list of string templates, optional for `exec`, appended to `command`. It may use every non-message
|
|
845
|
-
placeholder in `contact_placeholders`; changing it changes argv only.
|
|
846
|
-
|
|
847
|
-
## `agents[].contacts[].stdin`
|
|
848
|
-
|
|
849
|
-
- Type: string; optional.
|
|
850
|
-
- Default: none declared.
|
|
851
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
852
|
-
- Normative source: [`spec/_.hint:472`](../spec/_.hint#L472).
|
|
853
|
-
- 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).
|
|
854
|
-
|
|
855
|
-
Behavior and consequence:
|
|
856
|
-
|
|
857
|
-
string template, optional for `exec`, default `{message}`. It may use the complete placeholder set
|
|
858
|
-
and is passed as stdin without shell or environment expansion.
|
|
859
|
-
|
|
860
|
-
## `agents[].trust.signatures`
|
|
861
|
-
|
|
862
|
-
- Type: boolean; optional.
|
|
863
|
-
- Default: `false`.
|
|
864
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
865
|
-
- Normative source: [`spec/_.hint:506`](../spec/_.hint#L506).
|
|
866
|
-
- 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).
|
|
867
|
-
|
|
868
|
-
Behavior and consequence:
|
|
869
|
-
|
|
870
|
-
boolean, optional, default `false`. When changed to `true`, unsigned, invalid, or unverifiable
|
|
871
|
-
cards make `status` fail and make `update` warn while retaining the dependency update.
|
|
872
|
-
|
|
873
|
-
## `agents[].trust.accepts-external`
|
|
874
|
-
|
|
875
|
-
- Type: boolean; optional.
|
|
876
|
-
- Default: unstated.
|
|
877
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
878
|
-
- Normative source: [`spec/_.hint:511`](../spec/_.hint#L511).
|
|
879
|
-
- 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).
|
|
880
|
-
|
|
881
|
-
Behavior and consequence:
|
|
882
|
-
|
|
883
|
-
boolean, optional, default unstated. `false` is enforced by `contact`: a consumer whose
|
|
884
|
-
organisation differs from the owner's is refused (exit 2) unless `--external-ok`; `who` marks the
|
|
885
|
-
agent "(external requests not accepted)". Organisation = origin host plus first path segment of
|
|
886
|
-
`module.repository`, or the values of `settings.organisation` when declared.
|
|
887
|
-
|
|
888
|
-
## `agents[].trust.jwks`
|
|
889
|
-
|
|
890
|
-
- Type: array of string; optional.
|
|
891
|
-
- Default: no pinned JWKS sources.
|
|
892
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
893
|
-
- Normative source: [`spec/_.hint:518`](../spec/_.hint#L518).
|
|
894
|
-
- 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).
|
|
895
|
-
|
|
896
|
-
Behavior and consequence:
|
|
897
|
-
|
|
898
|
-
list of HTTPS URLs, optional. A card signature may use a key served by one of these pinned JWKS
|
|
899
|
-
sources. Changing the list changes the accepted key authorities; a newly selected key is still
|
|
900
|
-
subject to lock key-change review.
|
|
901
|
-
|
|
902
|
-
## `agents[].trust.keys`
|
|
903
|
-
|
|
904
|
-
- Type: array of string; optional.
|
|
905
|
-
- Default: no pinned key thumbprints.
|
|
906
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
907
|
-
- Normative source: [`spec/_.hint:524`](../spec/_.hint#L524).
|
|
908
|
-
- 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).
|
|
909
|
-
|
|
910
|
-
Behavior and consequence:
|
|
911
|
-
|
|
912
|
-
list of RFC 7638 JWK SHA-256 thumbprints, optional. A card signature may use a key matching one
|
|
913
|
-
of these pins regardless of JWKS URL. Changing the list changes the exact accepted public keys.
|
|
914
|
-
|
|
915
|
-
## `agents[].trust.origins`
|
|
916
|
-
|
|
917
|
-
- Type: array of string; optional.
|
|
918
|
-
- Default: repository/card binding rules.
|
|
919
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
920
|
-
- Normative source: [`spec/_.hint:529`](../spec/_.hint#L529).
|
|
921
|
-
- 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).
|
|
922
|
-
|
|
923
|
-
Behavior and consequence:
|
|
924
|
-
|
|
925
|
-
list of `scheme://host[:port]` origins, optional. When present, card and interface URLs must use
|
|
926
|
-
one of these origins. Changing it changes the allowed network identity of the agent binding.
|
|
927
|
-
|
|
928
|
-
## `agents[].trust.jwks-max-age`
|
|
929
|
-
|
|
930
|
-
- Type: string; optional.
|
|
931
|
-
- Default: `24h`.
|
|
932
|
-
- Allowed values: minimum length 1.
|
|
933
|
-
- Normative source: [`spec/_.hint:534`](../spec/_.hint#L534).
|
|
934
|
-
- 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).
|
|
935
|
-
|
|
936
|
-
Behavior and consequence:
|
|
937
|
-
|
|
938
|
-
duration string, optional, default `24h`. Online status refreshes older JWKS cache entries;
|
|
939
|
-
offline status reports their age. Changing it changes refresh freshness, never the cache's
|
|
940
|
-
recoverable status.
|
|
941
|
-
|
|
942
|
-
## `policy.intents`
|
|
943
|
-
|
|
944
|
-
- Type: object; optional.
|
|
945
|
-
- Default: unlisted intents route to `owner`.
|
|
946
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
947
|
-
- Normative source: [`spec/_.hint:599`](../spec/_.hint#L599).
|
|
948
|
-
- 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).
|
|
949
|
-
|
|
950
|
-
Behavior and consequence:
|
|
951
|
-
|
|
952
|
-
map intent → role. Which role answers which intent by default. Absent intents default to
|
|
953
|
-
`owner`. Example: `change: spec` sends change requests to the specification agent rather than
|
|
954
|
-
the coder — the pattern where engineers have full autonomy inside their repository and none
|
|
955
|
-
outside it, and the manager owns the WHAT.
|
|
956
|
-
|
|
957
|
-
Known values:
|
|
958
|
-
|
|
959
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
960
|
-
| --- | --- | --- | --- |
|
|
961
|
-
| `question` | Routes a request for explanation; defaults to role `owner`. | Selects contacts declaring `question` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
962
|
-
| `change` | Routes a proposed behavior/API change. | Selects contacts declaring `change` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
963
|
-
| `bug` | Routes a defect report. | Selects contacts declaring `bug` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
964
|
-
| `review` | Routes a review request. | Selects contacts declaring `review` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
965
|
-
| `incident` | Routes an operational incident. | Selects contacts declaring `incident` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
966
|
-
| `*` | Acts as a contact fallback after exact intent matches. | Broadens that contact to unmatched intents. | Accepted; any other unknown token is an exact-match intent. |
|
|
967
|
-
|
|
968
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
969
|
-
| --- | --- | --- | --- |
|
|
970
|
-
| `owner` | Default routing target; identifies the agent that commits, merges, and releases. | Requests using the default route select a different binding. | Accepted and routed when policy names the same token. |
|
|
971
|
-
| `maintainer` | Routes intents mapped to a maintainer. | Changes which bindings match those intents. | Accepted and routed when policy names the same token. |
|
|
972
|
-
| `spec` | Routes specification, task, or sequencing ownership. | Changes which bindings match policy entries such as `change: spec`. | Accepted and routed when policy names the same token. |
|
|
973
|
-
| `reviewer` | Routes review ownership. | Changes which bindings match review policy. | Accepted and routed when policy names the same token. |
|
|
974
|
-
| `support` | Routes support ownership. | Changes which bindings match support policy. | Accepted and routed when policy names the same token. |
|
|
975
|
-
|
|
976
|
-
## `policy.consumers`
|
|
977
|
-
|
|
978
|
-
- Type: object; optional.
|
|
979
|
-
- Default: none declared.
|
|
980
|
-
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
981
|
-
- Normative source: [`spec/_.hint:606`](../spec/_.hint#L606).
|
|
982
|
-
- 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).
|
|
983
|
-
|
|
984
|
-
Behavior and consequence:
|
|
985
|
-
|
|
986
|
-
object: `may` and `may-not`, lists of tokens from an open vocabulary (`read-surface`, `ask`,
|
|
987
|
-
`open-issue`, `propose-change`, `commit`, `edit-spec`, `release`, …). Rendered verbatim into the
|
|
988
|
-
consumer's roster block so an agent sees the boundary before it acts. Defaults when absent:
|
|
989
|
-
`may: [read-surface, ask]`, `may-not: [commit]`.
|
|
990
|
-
|
|
991
|
-
## `policy.contact-budget`
|
|
992
|
-
|
|
993
|
-
- Type: object; optional.
|
|
994
|
-
- Default: none declared.
|
|
995
|
-
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
996
|
-
- Normative source: [`spec/_.hint:613`](../spec/_.hint#L613).
|
|
997
|
-
- 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).
|
|
998
|
-
|
|
999
|
-
Behavior and consequence:
|
|
1000
|
-
|
|
1001
|
-
map of non-empty string keys to non-empty string values, optional and open vocabulary. It
|
|
1002
|
-
publishes owner expectations such as `per-consumer-daily: "2"` or a `note`; `who` and the roster
|
|
1003
|
-
render the entries in sorted order. The reference CLI does not count or enforce them. Changing a
|
|
1004
|
-
value changes guidance to consumers, not routing or delivery permission.
|
|
1005
|
-
|
|
1006
|
-
## `policy.notes`
|
|
1007
|
-
|
|
1008
|
-
- Type: string; optional.
|
|
1009
|
-
- Default: none declared.
|
|
1010
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1011
|
-
- Normative source: [`spec/_.hint:620`](../spec/_.hint#L620).
|
|
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. Anything else consumers must know, verbatim.
|
|
1017
|
-
|
|
1018
|
-
## `policy.consumers.may`
|
|
1019
|
-
|
|
1020
|
-
- Type: array of string; optional.
|
|
1021
|
-
- Default: `[read-surface, ask]`.
|
|
1022
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1023
|
-
- Normative source: [`spec/_.hint:628`](../spec/_.hint#L628).
|
|
1024
|
-
- 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).
|
|
1025
|
-
|
|
1026
|
-
Behavior and consequence:
|
|
1027
|
-
|
|
1028
|
-
list of strings, optional, default `[read-surface, ask]`. Changing it changes the allowed actions
|
|
1029
|
-
rendered into consumer AGENTS.md rosters; the CLI reports the boundary but does not become an
|
|
1030
|
-
authorization service. Known values and unknown handling are in `vocabulary_consumers`.
|
|
1031
|
-
|
|
1032
|
-
Known values:
|
|
1033
|
-
|
|
1034
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
1035
|
-
| --- | --- | --- | --- |
|
|
1036
|
-
| `read-surface` | Tells consumers they may read the published surface. | Adding/removing it changes the rendered boundary only. | Accepted and rendered verbatim; git-a2a does not enforce authorization. |
|
|
1037
|
-
| `ask` | Tells consumers they may contact an owning agent. | Adding/removing it changes the rendered boundary only. | Accepted and rendered verbatim; git-a2a does not enforce authorization. |
|
|
1038
|
-
| `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. |
|
|
1039
|
-
| `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. |
|
|
1040
|
-
|
|
1041
|
-
## `policy.consumers.may-not`
|
|
1042
|
-
|
|
1043
|
-
- Type: array of string; optional.
|
|
1044
|
-
- Default: `[commit]`.
|
|
1045
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1046
|
-
- Normative source: [`spec/_.hint:634`](../spec/_.hint#L634).
|
|
1047
|
-
- 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).
|
|
1048
|
-
|
|
1049
|
-
Behavior and consequence:
|
|
1050
|
-
|
|
1051
|
-
list of strings, optional, default `[commit]`. Changing it changes the prohibited actions rendered
|
|
1052
|
-
into consumer rosters; downstream agents remain responsible for obeying the declaration. Known
|
|
1053
|
-
values and unknown handling are in `vocabulary_consumers`.
|
|
1054
|
-
|
|
1055
|
-
Known values:
|
|
1056
|
-
|
|
1057
|
-
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
1058
|
-
| --- | --- | --- | --- |
|
|
1059
|
-
| `read-surface` | Tells consumers they may read the published surface. | Adding/removing it changes the rendered boundary only. | Accepted and rendered verbatim; git-a2a does not enforce authorization. |
|
|
1060
|
-
| `ask` | Tells consumers they may contact an owning agent. | Adding/removing it changes the rendered boundary only. | Accepted and rendered verbatim; git-a2a does not enforce authorization. |
|
|
1061
|
-
| `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. |
|
|
1062
|
-
| `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. |
|
|
1063
|
-
|
|
1064
|
-
## `settings.vendor-dir`
|
|
1065
|
-
|
|
1066
|
-
- Type: string; optional.
|
|
1067
|
-
- Default: `deps`.
|
|
1068
|
-
- Allowed values: minimum length 1.
|
|
1069
|
-
- Normative source: [`spec/_.hint:148`](../spec/_.hint#L148).
|
|
1070
|
-
- 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).
|
|
1071
|
-
|
|
1072
|
-
Behavior and consequence:
|
|
1073
|
-
|
|
1074
|
-
string, optional relative path, default `deps`. Parent directory used when a vendored dependency
|
|
1075
|
-
does not declare `vendor.path`. `vendor/` is deliberately not the default because Go and Composer
|
|
1076
|
-
assign their own semantics to that name. Changing it moves only dependencies that use the default;
|
|
1077
|
-
explicit `vendor.path` values remain unchanged. It obeys all vendored-path safety rules.
|
|
1078
|
-
|
|
1079
|
-
## `settings.sync-targets`
|
|
1080
|
-
|
|
1081
|
-
- Type: array of string; optional.
|
|
1082
|
-
- Default: none declared.
|
|
1083
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1084
|
-
- Normative source: [`spec/_.hint:155`](../spec/_.hint#L155).
|
|
1085
|
-
- 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).
|
|
1086
|
-
|
|
1087
|
-
Behavior and consequence:
|
|
1088
|
-
|
|
1089
|
-
list of relative paths, optional. Additional files whose managed roster block `sync` maintains.
|
|
1090
|
-
Changing the list changes sync destinations, not dependency resolution or vendoring.
|
|
1091
|
-
|
|
1092
|
-
## `settings.organisation`
|
|
1093
|
-
|
|
1094
|
-
- Type: array of string; optional.
|
|
1095
|
-
- Default: none declared.
|
|
1096
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1097
|
-
- Normative source: [`spec/_.hint:160`](../spec/_.hint#L160).
|
|
1098
|
-
- 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).
|
|
1099
|
-
|
|
1100
|
-
Behavior and consequence:
|
|
1101
|
-
|
|
1102
|
-
list of strings, optional. Origins or `origin/owner` prefixes that count as "our organisation"
|
|
1103
|
-
for `accepts-external` decisions, e.g. `["https://github.com/neprel", "ssh://git.internal"]`.
|
|
1104
|
-
Default: the origin host and first path segment of `module.repository`. Changing it changes only
|
|
1105
|
-
the external-contact boundary used by `contact`.
|
|
1106
|
-
|
|
1107
|
-
## `settings.contact`
|
|
1108
|
-
|
|
1109
|
-
- Type: object; optional.
|
|
1110
|
-
- Default: none declared.
|
|
1111
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1112
|
-
- Normative source: [`spec/_.hint:167`](../spec/_.hint#L167).
|
|
1113
|
-
- 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).
|
|
1114
|
-
|
|
1115
|
-
Behavior and consequence:
|
|
1116
|
-
|
|
1117
|
-
object, optional: consumer consent for owner-described invocations. `allow-http` — list of
|
|
1118
|
-
origins (`https://host[:port]`); a dependency's `http` contact is delivered only when its URL's
|
|
1119
|
-
origin is listed, otherwise it renders as an instruction. `allow-exec` — list of bare binary
|
|
1120
|
-
names; a dependency's `exec` contact runs only when `command[0]` is listed and resolves on
|
|
1121
|
-
PATH. The lists live in the consumer's own manifest, so consent is authored, reviewed, and
|
|
1122
|
-
versioned by the consumer — never by the dependency. Defaults: empty, meaning instruction-only.
|
|
1123
|
-
|
|
1124
|
-
## `dependencies[].id`
|
|
1125
|
-
|
|
1126
|
-
- Type: string; optional.
|
|
1127
|
-
- Default: none declared.
|
|
1128
|
-
- Allowed values: pattern `^[a-z0-9][a-z0-9._-]{0,63}$`.
|
|
1129
|
-
- Normative source: [`spec/_.hint:688`](../spec/_.hint#L688).
|
|
1130
|
-
- 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).
|
|
1131
|
-
|
|
1132
|
-
Behavior and consequence:
|
|
1133
|
-
|
|
1134
|
-
string. The dependency's `module.id` for an a2a module, or the repository basename for a plain
|
|
1135
|
-
dependency. Required after `add` (the CLI fills it); the lock is keyed on it.
|
|
1136
|
-
|
|
1137
|
-
## `dependencies[].git`
|
|
1138
|
-
|
|
1139
|
-
- Type: string; required.
|
|
1140
|
-
- Default: none declared.
|
|
1141
|
-
- Allowed values: minimum length 1.
|
|
1142
|
-
- Normative source: [`spec/_.hint:693`](../spec/_.hint#L693).
|
|
1143
|
-
- 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).
|
|
1144
|
-
|
|
1145
|
-
Behavior and consequence:
|
|
1146
|
-
|
|
1147
|
-
string, required. The git URL (`ssh://`, `https://`, `git@host:path` scp form, `file://`).
|
|
1148
|
-
Stored exactly as given; credentials are never stored.
|
|
1149
|
-
|
|
1150
|
-
## `dependencies[].ref`
|
|
1151
|
-
|
|
1152
|
-
- Type: string; optional.
|
|
1153
|
-
- Default: the owner's `release.channel`, otherwise remote HEAD.
|
|
1154
|
-
- Allowed values: minimum length 1.
|
|
1155
|
-
- Normative source: [`spec/_.hint:698`](../spec/_.hint#L698).
|
|
1156
|
-
- 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).
|
|
1157
|
-
|
|
1158
|
-
Behavior and consequence:
|
|
1159
|
-
|
|
1160
|
-
string. Branch, tag or commit to follow. Default: the dependency's `release.channel`, else the
|
|
1161
|
-
remote HEAD. Resolution: a 40-hex string is a commit; a full refname (`refs/heads/x`,
|
|
1162
|
-
`refs/tags/x`) is exactly that; a short name is resolved in git's own order — `refs/tags/<ref>`
|
|
1163
|
-
before `refs/heads/<ref>` — and an ambiguity is reported with the name chosen. A commit ref
|
|
1164
|
-
implies `track: locked`. Changing `ref`, `git` or `path` of an existing dependency is an
|
|
1165
|
-
ordinary edit (`git-a2a set`): identity is `module.id`, so the fetched manifest must carry the
|
|
1166
|
-
same id unless the consumer explicitly accepts a different one; every wired ecosystem follows
|
|
1167
|
-
the new source and pin together.
|
|
1168
|
-
|
|
1169
|
-
## `dependencies[].path`
|
|
1170
|
-
|
|
1171
|
-
- Type: string; optional.
|
|
1172
|
-
- Default: `.`.
|
|
1173
|
-
- Allowed values: minimum length 1.
|
|
1174
|
-
- Normative source: [`spec/_.hint:709`](../spec/_.hint#L709).
|
|
1175
|
-
- 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).
|
|
1176
|
-
|
|
1177
|
-
Behavior and consequence:
|
|
1178
|
-
|
|
1179
|
-
string. Subdirectory containing the dependency's `a2amodule.yml` or `a2amodule.yaml`
|
|
1180
|
-
(monorepo), or the adopted plain source root. Default `.`.
|
|
1181
|
-
|
|
1182
|
-
## `dependencies[].track`
|
|
1183
|
-
|
|
1184
|
-
- Type: string; optional.
|
|
1185
|
-
- Default: `locked`.
|
|
1186
|
-
- Allowed values: one of `locked`, `floating`.
|
|
1187
|
-
- Normative source: [`spec/_.hint:714`](../spec/_.hint#L714).
|
|
1188
|
-
- 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).
|
|
1189
|
-
|
|
1190
|
-
Behavior and consequence:
|
|
1191
|
-
|
|
1192
|
-
`locked` (default) or `floating`, a closed vocabulary described in `vocabulary_track`. Every mode
|
|
1193
|
-
still records one observed commit in the lock. Changing the mode rewrites supported native
|
|
1194
|
-
dependency forms; unknown values are rejected.
|
|
1195
|
-
|
|
1196
|
-
Known values:
|
|
1197
|
-
|
|
1198
|
-
| Value | What the tool does | Consequence of changing it | Unknown value |
|
|
1199
|
-
| --- | --- | --- | --- |
|
|
1200
|
-
| `locked` | Pins every supported ecosystem to the one commit recorded in the lock. | Switching to it replaces floating native refs with the resolved commit. | Rejected by validation. |
|
|
1201
|
-
| `floating` | Writes a branch/tag form where the adapter supports it while still recording the observed commit. | Switching to it lets native tools follow the declared ref independently. | Rejected by validation. |
|
|
1202
|
-
|
|
1203
|
-
## `dependencies[].wire`
|
|
1204
|
-
|
|
1205
|
-
- Type: array of string; optional.
|
|
1206
|
-
- Default: all matching detected ecosystems.
|
|
1207
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1208
|
-
- Normative source: [`spec/_.hint:720`](../spec/_.hint#L720).
|
|
1209
|
-
- 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).
|
|
1210
|
-
|
|
1211
|
-
Behavior and consequence:
|
|
1212
|
-
|
|
1213
|
-
list of ecosystems to wire, or absent for "every export that matches a manifest detected in this
|
|
1214
|
-
repository". An empty list means "record the dependency, wire nothing". When `wire` is absent
|
|
1215
|
-
and an export cannot be expressed in its ecosystem (the ecosystem has no git form for that URL,
|
|
1216
|
-
no subdirectory support, a floating ref it cannot store), the tool wires what it can, reports
|
|
1217
|
-
the rest as `not wired: <reason>` and `status` shows that ecosystem as `unwired`; it is an error
|
|
1218
|
-
only for an ecosystem named explicitly in `wire`. Wiring is repairable at any time
|
|
1219
|
-
(`git-a2a wire [ID]` re-applies every adapter from the lock, idempotently) — a half-wired
|
|
1220
|
-
dependency is a state the tool can always see and always fix, never one it hides.
|
|
1221
|
-
|
|
1222
|
-
## `dependencies[].vendor`
|
|
1223
|
-
|
|
1224
|
-
- Type: object; optional.
|
|
1225
|
-
- Default: none declared.
|
|
1226
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1227
|
-
- Normative source: [`spec/_.hint:731`](../spec/_.hint#L731).
|
|
1228
|
-
- 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).
|
|
1229
|
-
|
|
1230
|
-
Behavior and consequence:
|
|
1231
|
-
|
|
1232
|
-
object, optional, see [#vendor](../spec/_.hint). Its presence explicitly asks the tool to materialise
|
|
1233
|
-
the locked source tree in this consumer; a dependency is never vendored implicitly.
|
|
1234
|
-
|
|
1235
|
-
## `dependencies[].shim`
|
|
1236
|
-
|
|
1237
|
-
- Type: object; optional.
|
|
1238
|
-
- Default: none declared.
|
|
1239
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1240
|
-
- Normative source: [`spec/_.hint:683`](../spec/_.hint#L683).
|
|
1241
|
-
- 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).
|
|
1242
|
-
|
|
1243
|
-
Behavior and consequence:
|
|
1244
|
-
|
|
1245
|
-
object, optional, see [#shim](../spec/_.hint). Consumer-authored fallback metadata for a plain Git
|
|
1246
|
-
dependency.
|
|
1247
|
-
|
|
1248
|
-
## `dependencies[].require`
|
|
1249
|
-
|
|
1250
|
-
- Type: object; optional.
|
|
1251
|
-
- Default: none declared.
|
|
1252
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1253
|
-
- Normative source: [`spec/_.hint:736`](../spec/_.hint#L736).
|
|
1254
|
-
- 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).
|
|
1255
|
-
|
|
1256
|
-
Behavior and consequence:
|
|
1257
|
-
|
|
1258
|
-
object, optional, see [#require](../spec/_.hint). It states consumer-side checks that must pass before
|
|
1259
|
-
locking or contacting this dependency. Defaults preserve the permissive behavior.
|
|
1260
|
-
|
|
1261
|
-
## `dependencies[].require.commits`
|
|
1262
|
-
|
|
1263
|
-
- Type: string; optional.
|
|
1264
|
-
- Default: `any`.
|
|
1265
|
-
- Allowed values: one of `any`, `signed`.
|
|
1266
|
-
- Normative source: [`spec/_.hint:771`](../spec/_.hint#L771).
|
|
1267
|
-
- 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).
|
|
1268
|
-
|
|
1269
|
-
Behavior and consequence:
|
|
1270
|
-
|
|
1271
|
-
`any` (default) or `signed`. With `signed`, `add`, `update`, `fetch`, and `set` verify the
|
|
1272
|
-
resolved commit or tag with Git against `signers` before changing the lock. Changing it re-runs
|
|
1273
|
-
the check on the next mutation and on `status`; unknown values are rejected.
|
|
1274
|
-
|
|
1275
|
-
## `dependencies[].require.signers`
|
|
1276
|
-
|
|
1277
|
-
- Type: string; optional.
|
|
1278
|
-
- Default: none declared.
|
|
1279
|
-
- Allowed values: minimum length 1.
|
|
1280
|
-
- Normative source: [`spec/_.hint:777`](../spec/_.hint#L777).
|
|
1281
|
-
- 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).
|
|
1282
|
-
|
|
1283
|
-
Behavior and consequence:
|
|
1284
|
-
|
|
1285
|
-
repository-relative path to a Git `allowed_signers` file, required when `commits: signed`.
|
|
1286
|
-
Changing it changes the trusted SSH/GPG signer set. A failed check leaves the lock untouched;
|
|
1287
|
-
`--insecure-skip-signers` is the explicit override and records `verified: skipped`.
|
|
1288
|
-
|
|
1289
|
-
## `dependencies[].require.cards`
|
|
1290
|
-
|
|
1291
|
-
- Type: string; optional.
|
|
1292
|
-
- Default: `any`.
|
|
1293
|
-
- Allowed values: one of `any`, `signed`.
|
|
1294
|
-
- Normative source: [`spec/_.hint:783`](../spec/_.hint#L783).
|
|
1295
|
-
- 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).
|
|
1296
|
-
|
|
1297
|
-
Behavior and consequence:
|
|
1298
|
-
|
|
1299
|
-
`any` (default) or `signed`. `signed` treats every agent binding in the dependency as if it
|
|
1300
|
-
declared `trust.signatures: true`. Changing it changes whether unsigned or unverifiable cards
|
|
1301
|
-
are accepted; unknown values are rejected.
|
|
1302
|
-
|
|
1303
|
-
## `dependencies[].require.card-origin`
|
|
1304
|
-
|
|
1305
|
-
- Type: boolean; optional.
|
|
1306
|
-
- Default: `false`.
|
|
1307
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1308
|
-
- Normative source: [`spec/_.hint:789`](../spec/_.hint#L789).
|
|
1309
|
-
- 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).
|
|
1310
|
-
|
|
1311
|
-
Behavior and consequence:
|
|
1312
|
-
|
|
1313
|
-
boolean, optional, default `false`. When true, a card or interface origin mismatch is a failure
|
|
1314
|
-
rather than a warning. Changing it changes mismatch severity, not the origin comparison.
|
|
1315
|
-
|
|
1316
|
-
## `dependencies[].vendor.mode`
|
|
1317
|
-
|
|
1318
|
-
- Type: string; optional.
|
|
1319
|
-
- Default: `submodule`.
|
|
1320
|
-
- Allowed values: one of `submodule`, `copy`.
|
|
1321
|
-
- Normative source: [`spec/_.hint:803`](../spec/_.hint#L803).
|
|
1322
|
-
- 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).
|
|
1323
|
-
|
|
1324
|
-
Behavior and consequence:
|
|
1325
|
-
|
|
1326
|
-
`submodule` (default) or `copy`. `submodule` records a Git gitlink at the locked commit and may
|
|
1327
|
-
initialise nested submodules. `copy` records a plain Git-metadata-free tree. Changing mode replaces
|
|
1328
|
-
one representation with the other transactionally; unknown values are rejected.
|
|
1329
|
-
|
|
1330
|
-
## `dependencies[].vendor.path`
|
|
1331
|
-
|
|
1332
|
-
- Type: string; optional.
|
|
1333
|
-
- Default: `<settings.vendor-dir>/<dependency-id>`.
|
|
1334
|
-
- Allowed values: minimum length 1.
|
|
1335
|
-
- Normative source: [`spec/_.hint:809`](../spec/_.hint#L809).
|
|
1336
|
-
- 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).
|
|
1337
|
-
|
|
1338
|
-
Behavior and consequence:
|
|
1339
|
-
|
|
1340
|
-
string, optional relative path. Default `<settings.vendor-dir>/<dependency-id>`, normally
|
|
1341
|
-
`deps/<id>`. After slash normalisation it must be `..`-free and non-absolute; it must not be
|
|
1342
|
-
`.git`, `.git-a2a`, or inside either; must not equal or be inside `module.surface`; must not overlap
|
|
1343
|
-
another dependency's vendor path; and no existing path component may be a symlink. For submodule
|
|
1344
|
-
mode it must not already be tracked or be a submodule registered with another URL. Validation
|
|
1345
|
-
reports violations and never silently rewrites the path.
|
|
1346
|
-
|
|
1347
|
-
## `dependencies[].vendor.recursive`
|
|
1348
|
-
|
|
1349
|
-
- Type: boolean; optional.
|
|
1350
|
-
- Default: `false`.
|
|
1351
|
-
- Allowed values: schema type plus the normative behavior in this entry.
|
|
1352
|
-
- Normative source: [`spec/_.hint:818`](../spec/_.hint#L818).
|
|
1353
|
-
- 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).
|
|
1354
|
-
|
|
1355
|
-
Behavior and consequence:
|
|
1356
|
-
|
|
1357
|
-
boolean, optional, default `false`. In submodule mode, initialise the dependency's own nested
|
|
1358
|
-
submodules. In copy mode `true` is invalid because a Git tree contains nested gitlinks, not their
|
|
1359
|
-
content. Changing it changes only nested-submodule initialisation.
|
|
1360
|
-
|
|
1361
|
-
## Extension fields
|
|
1362
|
-
|
|
1363
|
-
At every schema object that declares `patternProperties`, keys beginning with `x-` are
|
|
1364
|
-
extensions. The CLI preserves them; changing one changes only the extension consumer's
|
|
1365
|
-
behavior. A known object rejects every other unknown key.
|
|
1366
|
-
|
|
1367
|
-
For an authoring sequence rather than field-by-field lookup, read the
|
|
1368
|
-
[owner's guide](authoring.md).
|