git-a2a 1.0.1 → 1.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,944 @@
|
|
|
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:100`](../spec/_.hint#L100).
|
|
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.
|
|
21
|
+
|
|
22
|
+
## `module`
|
|
23
|
+
|
|
24
|
+
- Type: object; required.
|
|
25
|
+
- Default: none declared.
|
|
26
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
27
|
+
- Normative source: [`spec/_.hint:105`](../spec/_.hint#L105).
|
|
28
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
29
|
+
|
|
30
|
+
Behavior and consequence:
|
|
31
|
+
|
|
32
|
+
object; the module description. See [#module](../spec/_.hint).
|
|
33
|
+
|
|
34
|
+
## `agents`
|
|
35
|
+
|
|
36
|
+
- Type: array of object; optional.
|
|
37
|
+
- Default: none declared.
|
|
38
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
39
|
+
- Normative source: [`spec/_.hint:109`](../spec/_.hint#L109).
|
|
40
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
41
|
+
|
|
42
|
+
Behavior and consequence:
|
|
43
|
+
|
|
44
|
+
list of agent bindings, see [#agent](../spec/_.hint). Empty or absent means "no agent owns this; treat
|
|
45
|
+
as a plain library" — still importable, nobody to ask.
|
|
46
|
+
|
|
47
|
+
## `policy`
|
|
48
|
+
|
|
49
|
+
- Type: object; optional.
|
|
50
|
+
- Default: none declared.
|
|
51
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
52
|
+
- Normative source: [`spec/_.hint:114`](../spec/_.hint#L114).
|
|
53
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
54
|
+
|
|
55
|
+
Behavior and consequence:
|
|
56
|
+
|
|
57
|
+
object, see [#policy](../spec/_.hint). Routing defaults and consumer permissions.
|
|
58
|
+
|
|
59
|
+
## `dependencies`
|
|
60
|
+
|
|
61
|
+
- Type: array of object; optional.
|
|
62
|
+
- Default: none declared.
|
|
63
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
64
|
+
- Normative source: [`spec/_.hint:118`](../spec/_.hint#L118).
|
|
65
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
66
|
+
|
|
67
|
+
Behavior and consequence:
|
|
68
|
+
|
|
69
|
+
list, see [#dependency](../spec/_.hint). Modules this module depends on.
|
|
70
|
+
|
|
71
|
+
## `module.id`
|
|
72
|
+
|
|
73
|
+
- Type: string; required.
|
|
74
|
+
- Default: none declared.
|
|
75
|
+
- Allowed values: pattern `^[a-z0-9][a-z0-9._-]{0,63}$`.
|
|
76
|
+
- Normative source: [`spec/_.hint:124`](../spec/_.hint#L124).
|
|
77
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
78
|
+
|
|
79
|
+
Behavior and consequence:
|
|
80
|
+
|
|
81
|
+
string, required. Stable identifier, `^[a-z0-9][a-z0-9._-]{0,63}$`. Consumers refer to the
|
|
82
|
+
dependency by this id and the lock keys on it; `add` verifies that the fetched manifest's `id`
|
|
83
|
+
equals the id the consumer expected (when given) and otherwise adopts it. Renaming an id is a
|
|
84
|
+
breaking change for every consumer.
|
|
85
|
+
|
|
86
|
+
## `module.name`
|
|
87
|
+
|
|
88
|
+
- Type: string; optional.
|
|
89
|
+
- Default: `module.id`.
|
|
90
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
91
|
+
- Normative source: [`spec/_.hint:131`](../spec/_.hint#L131).
|
|
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. Display name. Defaults to `id`.
|
|
97
|
+
|
|
98
|
+
## `module.description`
|
|
99
|
+
|
|
100
|
+
- Type: string; optional.
|
|
101
|
+
- Default: none declared.
|
|
102
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
103
|
+
- Normative source: [`spec/_.hint:135`](../spec/_.hint#L135).
|
|
104
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
105
|
+
|
|
106
|
+
Behavior and consequence:
|
|
107
|
+
|
|
108
|
+
string, recommended. One paragraph answering "what is this and what is it for" — it is what a
|
|
109
|
+
consumer's agent reads in its roster, so it should also say what kind of questions the owner
|
|
110
|
+
expects. Whitespace is normalised when rendered.
|
|
111
|
+
|
|
112
|
+
## `module.languages`
|
|
113
|
+
|
|
114
|
+
- Type: array of string; optional.
|
|
115
|
+
- Default: none declared.
|
|
116
|
+
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
117
|
+
- Normative source: [`spec/_.hint:141`](../spec/_.hint#L141).
|
|
118
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
119
|
+
|
|
120
|
+
Behavior and consequence:
|
|
121
|
+
|
|
122
|
+
list of strings, open vocabulary and informative. Known tokens and their behavior are in
|
|
123
|
+
`vocabulary_languages`. Not used for wiring; `exports` is. Changing it changes discovery metadata
|
|
124
|
+
only; unknown values are accepted and preserved.
|
|
125
|
+
|
|
126
|
+
Known values:
|
|
127
|
+
|
|
128
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
129
|
+
| --- | --- | --- | --- |
|
|
130
|
+
| `typescript` | Reports TypeScript as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
131
|
+
| `python` | Reports Python as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
132
|
+
| `go` | Reports Go as module metadata. | Changes discovery/documentation only; wiring still follows exports. | Accepted and preserved as informative metadata. |
|
|
133
|
+
| `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. |
|
|
134
|
+
|
|
135
|
+
## `module.surface`
|
|
136
|
+
|
|
137
|
+
- Type: string; optional.
|
|
138
|
+
- Default: none declared.
|
|
139
|
+
- Allowed values: minimum length 1.
|
|
140
|
+
- Normative source: [`spec/_.hint:147`](../spec/_.hint#L147).
|
|
141
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
142
|
+
|
|
143
|
+
Behavior and consequence:
|
|
144
|
+
|
|
145
|
+
string; relative directory path. Published content for consumers. Absent means nothing is
|
|
146
|
+
published beyond the manifest.
|
|
147
|
+
|
|
148
|
+
## `module.repository`
|
|
149
|
+
|
|
150
|
+
- Type: string; optional.
|
|
151
|
+
- Default: none declared.
|
|
152
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
153
|
+
- Normative source: [`spec/_.hint:152`](../spec/_.hint#L152).
|
|
154
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
155
|
+
|
|
156
|
+
Behavior and consequence:
|
|
157
|
+
|
|
158
|
+
string; the canonical git URL of this module as its owner declares it. Lets a consumer that
|
|
159
|
+
obtained the module from elsewhere (a fork, a mirror, a copy) see that it is not on the
|
|
160
|
+
canonical source — and that the `agents` listed may belong to the original owner rather than
|
|
161
|
+
to whoever maintains the copy. Informative; never used to fetch.
|
|
162
|
+
|
|
163
|
+
## `module.moved-to`
|
|
164
|
+
|
|
165
|
+
- Type: object; optional.
|
|
166
|
+
- Default: none declared.
|
|
167
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
168
|
+
- Normative source: [`spec/_.hint:159`](../spec/_.hint#L159).
|
|
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
|
+
object, optional: `git` (string, required; the new canonical URL), `path` (string), `notes`
|
|
174
|
+
(string). An owner leaves it in the last manifest at the old location when the module moves.
|
|
175
|
+
Consumers are told on `update` and follow it only on explicit request; a tool never switches a
|
|
176
|
+
source silently.
|
|
177
|
+
|
|
178
|
+
## `module.docs`
|
|
179
|
+
|
|
180
|
+
- Type: string; optional.
|
|
181
|
+
- Default: none declared.
|
|
182
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
183
|
+
- Normative source: [`spec/_.hint:166`](../spec/_.hint#L166).
|
|
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
|
+
string; URL of human documentation.
|
|
189
|
+
|
|
190
|
+
## `module.release`
|
|
191
|
+
|
|
192
|
+
- Type: object; optional.
|
|
193
|
+
- Default: none declared.
|
|
194
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
195
|
+
- Normative source: [`spec/_.hint:170`](../spec/_.hint#L170).
|
|
196
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
197
|
+
|
|
198
|
+
Behavior and consequence:
|
|
199
|
+
|
|
200
|
+
object: `channel` (string, the ref consumers should follow by default, e.g. `main`), `tags`
|
|
201
|
+
(boolean, whether semver tags are published), `notes` (string, free text, e.g. "main is the only
|
|
202
|
+
release channel"). `release.channel` is the default `ref` a consumer gets when it adds this
|
|
203
|
+
module without naming one.
|
|
204
|
+
|
|
205
|
+
## `module.exports`
|
|
206
|
+
|
|
207
|
+
- Type: array of object; optional.
|
|
208
|
+
- Default: none declared.
|
|
209
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
210
|
+
- Normative source: [`spec/_.hint:177`](../spec/_.hint#L177).
|
|
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
|
+
list of export entries; how to import this module per ecosystem. Each entry: `ecosystem`
|
|
216
|
+
(string, required; use package-url type names: `npm`, `pypi`, `golang`, `cargo`, `maven`,
|
|
217
|
+
`nuget`, `swift`, `cocoapods`, `pub`, `gem`, `composer`, `hex`, `hackage`, …), `name` (string,
|
|
218
|
+
required; the name the ecosystem imports: npm package name, PEP 503 distribution name, Go module
|
|
219
|
+
path, crate name, Maven `group:artifact`), `path` (string, optional; subdirectory containing the
|
|
220
|
+
ecosystem's own manifest, default the module directory), `notes` (string, optional; anything a
|
|
221
|
+
wiring tool or agent must know, e.g. "vanity import path, needs replace", "prepare script builds
|
|
222
|
+
dist"). Ecosystem-specific keys are allowed under `x-<ecosystem>-*`.
|
|
223
|
+
|
|
224
|
+
## `module.moved-to.git`
|
|
225
|
+
|
|
226
|
+
- Type: string; required.
|
|
227
|
+
- Default: none declared.
|
|
228
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
229
|
+
- Normative source: [`spec/_.hint:193`](../spec/_.hint#L193).
|
|
230
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
231
|
+
|
|
232
|
+
Behavior and consequence:
|
|
233
|
+
|
|
234
|
+
string, required. New canonical Git URL. Changing it changes the destination offered to users;
|
|
235
|
+
consumers remain on the current source until an explicit `set --git`.
|
|
236
|
+
|
|
237
|
+
## `module.moved-to.path`
|
|
238
|
+
|
|
239
|
+
- Type: string; optional.
|
|
240
|
+
- Default: `.`.
|
|
241
|
+
- Allowed values: minimum length 1.
|
|
242
|
+
- Normative source: [`spec/_.hint:198`](../spec/_.hint#L198).
|
|
243
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
244
|
+
|
|
245
|
+
Behavior and consequence:
|
|
246
|
+
|
|
247
|
+
string, optional relative path, default `.`. Subdirectory containing the moved module. Changing
|
|
248
|
+
it changes the destination module root offered with the new Git URL.
|
|
249
|
+
|
|
250
|
+
## `module.moved-to.notes`
|
|
251
|
+
|
|
252
|
+
- Type: string; optional.
|
|
253
|
+
- Default: none declared.
|
|
254
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
255
|
+
- Normative source: [`spec/_.hint:203`](../spec/_.hint#L203).
|
|
256
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
257
|
+
|
|
258
|
+
Behavior and consequence:
|
|
259
|
+
|
|
260
|
+
string, optional. Human migration context printed with the move notice. Changing it changes only
|
|
261
|
+
the guidance, never the source automatically.
|
|
262
|
+
|
|
263
|
+
## `module.release.channel`
|
|
264
|
+
|
|
265
|
+
- Type: string; optional.
|
|
266
|
+
- Default: none declared.
|
|
267
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
268
|
+
- Normative source: [`spec/_.hint:212`](../spec/_.hint#L212).
|
|
269
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
270
|
+
|
|
271
|
+
Behavior and consequence:
|
|
272
|
+
|
|
273
|
+
string, optional. Default ref used by `add` when the consumer supplies no ref, commonly `main`.
|
|
274
|
+
Changing it affects future adds; existing consumers retain their declared ref until `set`.
|
|
275
|
+
|
|
276
|
+
## `module.release.tags`
|
|
277
|
+
|
|
278
|
+
- Type: boolean; optional.
|
|
279
|
+
- Default: `false`.
|
|
280
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
281
|
+
- Normative source: [`spec/_.hint:217`](../spec/_.hint#L217).
|
|
282
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
283
|
+
|
|
284
|
+
Behavior and consequence:
|
|
285
|
+
|
|
286
|
+
boolean, optional, default `false`. Declares whether the owner publishes semantic-version tags.
|
|
287
|
+
Changing it changes what consumers may reasonably select with `set --ref`; it does not create tags.
|
|
288
|
+
|
|
289
|
+
## `module.release.notes`
|
|
290
|
+
|
|
291
|
+
- Type: string; optional.
|
|
292
|
+
- Default: none declared.
|
|
293
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
294
|
+
- Normative source: [`spec/_.hint:222`](../spec/_.hint#L222).
|
|
295
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
296
|
+
|
|
297
|
+
Behavior and consequence:
|
|
298
|
+
|
|
299
|
+
string, optional. Free release-channel guidance shown to consumers. Changing it changes guidance
|
|
300
|
+
only and does not resolve or move a dependency.
|
|
301
|
+
|
|
302
|
+
## `module.exports[].ecosystem`
|
|
303
|
+
|
|
304
|
+
- Type: string; required.
|
|
305
|
+
- Default: none declared.
|
|
306
|
+
- Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
|
|
307
|
+
- Normative source: [`spec/_.hint:231`](../spec/_.hint#L231).
|
|
308
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
309
|
+
|
|
310
|
+
Behavior and consequence:
|
|
311
|
+
|
|
312
|
+
string, required, open vocabulary. Known values and adapter behavior are in
|
|
313
|
+
`vocabulary_ecosystems`. Changing it selects a different adapter and therefore a different native
|
|
314
|
+
manifest; an unknown value remains valid published metadata but has no wiring adapter.
|
|
315
|
+
|
|
316
|
+
Known values:
|
|
317
|
+
|
|
318
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
319
|
+
| --- | --- | --- | --- |
|
|
320
|
+
| `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. |
|
|
321
|
+
| `pypi` | Wires a Git dependency in pyproject.toml through uv. | Selects the Python distribution name and adapter. | Accepted; without an adapter it remains published metadata and cannot be wired. |
|
|
322
|
+
| `golang` | Wires the Go module at the locked commit with go.mod edits. | Selects the Go import path and adapter. | Accepted; without an adapter it remains published metadata and cannot be wired. |
|
|
323
|
+
| `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. |
|
|
324
|
+
|
|
325
|
+
## `module.exports[].name`
|
|
326
|
+
|
|
327
|
+
- Type: string; required.
|
|
328
|
+
- Default: none declared.
|
|
329
|
+
- Allowed values: minimum length 1.
|
|
330
|
+
- Normative source: [`spec/_.hint:237`](../spec/_.hint#L237).
|
|
331
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
332
|
+
|
|
333
|
+
Behavior and consequence:
|
|
334
|
+
|
|
335
|
+
string, required. Native package/import name in the named ecosystem. Changing it rewires the
|
|
336
|
+
consumer from the old native entry to the new one on the next mutation or `wire`.
|
|
337
|
+
|
|
338
|
+
## `module.exports[].path`
|
|
339
|
+
|
|
340
|
+
- Type: string; optional.
|
|
341
|
+
- Default: the module directory (`.`).
|
|
342
|
+
- Allowed values: minimum length 1.
|
|
343
|
+
- Normative source: [`spec/_.hint:242`](../spec/_.hint#L242).
|
|
344
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
345
|
+
|
|
346
|
+
Behavior and consequence:
|
|
347
|
+
|
|
348
|
+
string, optional relative path, default `.`. Subdirectory containing the ecosystem package.
|
|
349
|
+
Changing it changes the Git subdirectory expression; unsupported adapters report `not wired`.
|
|
350
|
+
|
|
351
|
+
## `module.exports[].notes`
|
|
352
|
+
|
|
353
|
+
- Type: string; optional.
|
|
354
|
+
- Default: none declared.
|
|
355
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
356
|
+
- Normative source: [`spec/_.hint:247`](../spec/_.hint#L247).
|
|
357
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
358
|
+
|
|
359
|
+
Behavior and consequence:
|
|
360
|
+
|
|
361
|
+
string, optional. Export-specific facts shown to tools and agents. Changing it changes published
|
|
362
|
+
guidance but does not itself alter adapter behavior.
|
|
363
|
+
|
|
364
|
+
## `agents[].name`
|
|
365
|
+
|
|
366
|
+
- Type: string; required.
|
|
367
|
+
- Default: none declared.
|
|
368
|
+
- Allowed values: minimum length 1.
|
|
369
|
+
- Normative source: [`spec/_.hint:256`](../spec/_.hint#L256).
|
|
370
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
371
|
+
|
|
372
|
+
Behavior and consequence:
|
|
373
|
+
|
|
374
|
+
string, required. The agent's own name — must equal `name` in its A2A card when a card is given.
|
|
375
|
+
An agent may appear in many modules (one agent, many repositories) and a module may list many
|
|
376
|
+
agents (one repository, many agents), so `name` must be stable across repositories. Identity
|
|
377
|
+
for de-duplication across modules is the `card` URL when present, else `name`; two bindings in
|
|
378
|
+
different modules with the same card URL are the same agent, and tools may merge what they know
|
|
379
|
+
about it. Names are scoped to whoever controls the card URL, so a public ecosystem never relies
|
|
380
|
+
on a bare name being globally unique.
|
|
381
|
+
|
|
382
|
+
## `agents[].role`
|
|
383
|
+
|
|
384
|
+
- Type: string; required.
|
|
385
|
+
- Default: none declared.
|
|
386
|
+
- Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
|
|
387
|
+
- Normative source: [`spec/_.hint:266`](../spec/_.hint#L266).
|
|
388
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
389
|
+
|
|
390
|
+
Behavior and consequence:
|
|
391
|
+
|
|
392
|
+
string, required, open vocabulary. A role says what the agent owns for this module; core values
|
|
393
|
+
and routing consequences are in `vocabulary_roles`. Unknown roles are accepted and participate in
|
|
394
|
+
routing when `policy.intents` names the same token.
|
|
395
|
+
|
|
396
|
+
Known values:
|
|
397
|
+
|
|
398
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
399
|
+
| --- | --- | --- | --- |
|
|
400
|
+
| `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. |
|
|
401
|
+
| `maintainer` | Routes intents mapped to a maintainer. | Changes which bindings match those intents. | Accepted and routed when policy names the same token. |
|
|
402
|
+
| `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. |
|
|
403
|
+
| `reviewer` | Routes review ownership. | Changes which bindings match review policy. | Accepted and routed when policy names the same token. |
|
|
404
|
+
| `support` | Routes support ownership. | Changes which bindings match support policy. | Accepted and routed when policy names the same token. |
|
|
405
|
+
|
|
406
|
+
## `agents[].scope`
|
|
407
|
+
|
|
408
|
+
- Type: array of string; optional.
|
|
409
|
+
- Default: `["**"]`.
|
|
410
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
411
|
+
- Normative source: [`spec/_.hint:272`](../spec/_.hint#L272).
|
|
412
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
413
|
+
|
|
414
|
+
Behavior and consequence:
|
|
415
|
+
|
|
416
|
+
list of glob patterns relative to the module directory. What this agent answers for and may
|
|
417
|
+
change. Default `["**"]`. Two agents may overlap; resolution prefers the more specific match,
|
|
418
|
+
then declared order.
|
|
419
|
+
|
|
420
|
+
## `agents[].card`
|
|
421
|
+
|
|
422
|
+
- Type: string; optional.
|
|
423
|
+
- Default: none declared.
|
|
424
|
+
- Allowed values: minimum length 1.
|
|
425
|
+
- Normative source: [`spec/_.hint:278`](../spec/_.hint#L278).
|
|
426
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
427
|
+
|
|
428
|
+
Behavior and consequence:
|
|
429
|
+
|
|
430
|
+
string. URL of the agent's A2A Agent Card (`https://…/.well-known/agent-card.json`) or a
|
|
431
|
+
repository-relative path to a card file (A2A "direct configuration"). When present the card is
|
|
432
|
+
the authority for `description`, `skills`, interfaces and security; git-a2a snapshots it.
|
|
433
|
+
|
|
434
|
+
## `agents[].description`
|
|
435
|
+
|
|
436
|
+
- Type: string; optional.
|
|
437
|
+
- Default: none declared.
|
|
438
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
439
|
+
- Normative source: [`spec/_.hint:284`](../spec/_.hint#L284).
|
|
440
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
441
|
+
|
|
442
|
+
Behavior and consequence:
|
|
443
|
+
|
|
444
|
+
string. Only when no card is available or to add module-specific wording ("for this repository,
|
|
445
|
+
ask it about …"). Never a copy of the card's description.
|
|
446
|
+
|
|
447
|
+
## `agents[].contacts`
|
|
448
|
+
|
|
449
|
+
- Type: array of object; optional.
|
|
450
|
+
- Default: none declared.
|
|
451
|
+
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
452
|
+
- Normative source: [`spec/_.hint:289`](../spec/_.hint#L289).
|
|
453
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
454
|
+
|
|
455
|
+
Behavior and consequence:
|
|
456
|
+
|
|
457
|
+
ordered list. Each contact: `intents` (list of strings, required; `"*"` allowed), `kind`
|
|
458
|
+
(string, required; open vocabulary, see [#contact\_kinds](../spec/_.hint)), `note` (string,
|
|
459
|
+
optional; free-text instructions shown verbatim to the asker, e.g. "state the version you are
|
|
460
|
+
on"), plus kind-specific keys. Order expresses preference within an intent.
|
|
461
|
+
|
|
462
|
+
## `agents[].trust`
|
|
463
|
+
|
|
464
|
+
- Type: object; optional.
|
|
465
|
+
- Default: none declared.
|
|
466
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
467
|
+
- Normative source: [`spec/_.hint:296`](../spec/_.hint#L296).
|
|
468
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
469
|
+
|
|
470
|
+
Behavior and consequence:
|
|
471
|
+
|
|
472
|
+
object, optional: `signatures` (boolean, whether the card is JWS-signed and must verify),
|
|
473
|
+
`accepts-external` (boolean, whether requests from agents outside the owner's organisation are
|
|
474
|
+
welcome), `x-*`. Defaults: no verification required, external not stated.
|
|
475
|
+
|
|
476
|
+
When `signatures: true`, at least one A2A Agent Card detached JWS signature must verify over the
|
|
477
|
+
RFC 8785 canonical card with the top-level `signatures` member excluded. The protected header
|
|
478
|
+
identifies the algorithm, key id, and JWKS URL. An unsigned card, an invalid signature, or an
|
|
479
|
+
unavailable key with no local cache makes `status` fail; `update` retains the dependency update
|
|
480
|
+
but prints a trust warning. JWKS responses are timeout-bounded and cached only in `.git-a2a/`.
|
|
481
|
+
|
|
482
|
+
## `agents[].contacts[].intents`
|
|
483
|
+
|
|
484
|
+
- Type: array of string; required.
|
|
485
|
+
- Default: none declared.
|
|
486
|
+
- Allowed values: minimum 1 item(s); open vocabulary; see the known-values table in this entry.
|
|
487
|
+
- Normative source: [`spec/_.hint:313`](../spec/_.hint#L313).
|
|
488
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
489
|
+
|
|
490
|
+
Behavior and consequence:
|
|
491
|
+
|
|
492
|
+
list of strings, required and non-empty, open vocabulary; `"*"` is the fallback. Changing the
|
|
493
|
+
list changes which requests may select this contact. Core values, fallback behavior, and unknown
|
|
494
|
+
handling are in `vocabulary_intents`.
|
|
495
|
+
|
|
496
|
+
Known values:
|
|
497
|
+
|
|
498
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
499
|
+
| --- | --- | --- | --- |
|
|
500
|
+
| `question` | Routes a request for explanation; defaults to role `owner`. | Selects contacts declaring `question` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
501
|
+
| `change` | Routes a proposed behavior/API change. | Selects contacts declaring `change` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
502
|
+
| `bug` | Routes a defect report. | Selects contacts declaring `bug` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
503
|
+
| `review` | Routes a review request. | Selects contacts declaring `review` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
504
|
+
| `incident` | Routes an operational incident. | Selects contacts declaring `incident` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
505
|
+
| `*` | 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. |
|
|
506
|
+
|
|
507
|
+
## `agents[].contacts[].kind`
|
|
508
|
+
|
|
509
|
+
- Type: string; required.
|
|
510
|
+
- Default: none declared.
|
|
511
|
+
- Allowed values: minimum length 1; open vocabulary; see the known-values table in this entry.
|
|
512
|
+
- Normative source: [`spec/_.hint:319`](../spec/_.hint#L319).
|
|
513
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
514
|
+
|
|
515
|
+
Behavior and consequence:
|
|
516
|
+
|
|
517
|
+
string, required, open vocabulary. Changing it selects another delivery driver or instruction
|
|
518
|
+
renderer and changes which kind-specific fields are valid. Known values and unknown handling are
|
|
519
|
+
in `contact_kinds`.
|
|
520
|
+
|
|
521
|
+
Known values:
|
|
522
|
+
|
|
523
|
+
The kind vocabulary is open; these kinds have defined keys and delivery behavior:
|
|
524
|
+
|
|
525
|
+
| Kind | Allowed kind-specific keys | Driver or instruction | Consequence of changing it | Unknown kind |
|
|
526
|
+
| --- | --- | --- | --- | --- |
|
|
527
|
+
| `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. |
|
|
528
|
+
| `github-issue` | `repo`, optional `labels`, `template` | Creates an issue through `gh`, then GitHub REST fallback. | Changes the repository, labels, or issue template. | Accepted, but no delivery driver is selected. |
|
|
529
|
+
| `gitlab-issue` | `repo`, optional `labels`, `template` | Prints an instruction; no reference delivery driver. | Changes the instructed issue destination. | Accepted, but no delivery driver is selected. |
|
|
530
|
+
| `email` | `address`, optional `subject-prefix` | Prints an email instruction; does not send mail. | Changes the instructed recipient or subject. | Accepted, but no delivery driver is selected. |
|
|
531
|
+
| `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. |
|
|
532
|
+
| `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. |
|
|
533
|
+
| `url` | `url`, optional `note` | Prints the URL instruction. | Changes the instructed destination. | Accepted, but no delivery driver is selected. |
|
|
534
|
+
|
|
535
|
+
An unknown kind is rendered as `kind: <value>` with its extension keys, is never a validation
|
|
536
|
+
error, and cannot be delivered by `contact` until a driver exists.
|
|
537
|
+
|
|
538
|
+
## `agents[].contacts[].note`
|
|
539
|
+
|
|
540
|
+
- Type: string; optional.
|
|
541
|
+
- Default: none declared.
|
|
542
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
543
|
+
- Normative source: [`spec/_.hint:325`](../spec/_.hint#L325).
|
|
544
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
545
|
+
|
|
546
|
+
Behavior and consequence:
|
|
547
|
+
|
|
548
|
+
string, optional. Instructions printed verbatim after the route. Changing it changes the asker's
|
|
549
|
+
guidance, not routing priority or delivery mechanics.
|
|
550
|
+
|
|
551
|
+
## `agents[].contacts[].url`
|
|
552
|
+
|
|
553
|
+
- Type: string; optional.
|
|
554
|
+
- Default: none declared.
|
|
555
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
556
|
+
- Normative source: [`spec/_.hint:330`](../spec/_.hint#L330).
|
|
557
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
558
|
+
|
|
559
|
+
Behavior and consequence:
|
|
560
|
+
|
|
561
|
+
string, optional for `a2a`, `jira`, and `url`. Changing it changes the service or instruction
|
|
562
|
+
destination; for A2A it is the JSON-RPC endpoint.
|
|
563
|
+
|
|
564
|
+
## `agents[].contacts[].skill`
|
|
565
|
+
|
|
566
|
+
- Type: string; optional.
|
|
567
|
+
- Default: none declared.
|
|
568
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
569
|
+
- Normative source: [`spec/_.hint:335`](../spec/_.hint#L335).
|
|
570
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
571
|
+
|
|
572
|
+
Behavior and consequence:
|
|
573
|
+
|
|
574
|
+
string, optional for `a2a`. Skill identifier requested from the remote agent. Changing it changes
|
|
575
|
+
the A2A target skill without changing the endpoint.
|
|
576
|
+
|
|
577
|
+
## `agents[].contacts[].address`
|
|
578
|
+
|
|
579
|
+
- Type: string; optional.
|
|
580
|
+
- Default: none declared.
|
|
581
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
582
|
+
- Normative source: [`spec/_.hint:340`](../spec/_.hint#L340).
|
|
583
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
584
|
+
|
|
585
|
+
Behavior and consequence:
|
|
586
|
+
|
|
587
|
+
string, optional for `email`. Destination email address. Changing it changes the printed email
|
|
588
|
+
instruction; the reference CLI does not send email.
|
|
589
|
+
|
|
590
|
+
## `agents[].contacts[].subject-prefix`
|
|
591
|
+
|
|
592
|
+
- Type: string; optional.
|
|
593
|
+
- Default: none declared.
|
|
594
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
595
|
+
- Normative source: [`spec/_.hint:345`](../spec/_.hint#L345).
|
|
596
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
597
|
+
|
|
598
|
+
Behavior and consequence:
|
|
599
|
+
|
|
600
|
+
string, optional for `email`. Prefix suggested for the email subject. Changing it changes only
|
|
601
|
+
the printed instruction.
|
|
602
|
+
|
|
603
|
+
## `agents[].contacts[].repo`
|
|
604
|
+
|
|
605
|
+
- Type: string; optional.
|
|
606
|
+
- Default: none declared.
|
|
607
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
608
|
+
- Normative source: [`spec/_.hint:350`](../spec/_.hint#L350).
|
|
609
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
610
|
+
|
|
611
|
+
Behavior and consequence:
|
|
612
|
+
|
|
613
|
+
string, optional for `github-issue` and `gitlab-issue`, in `owner/name` form. Changing it changes
|
|
614
|
+
the repository where the issue driver delivers the request.
|
|
615
|
+
|
|
616
|
+
## `agents[].contacts[].labels`
|
|
617
|
+
|
|
618
|
+
- Type: array of string; optional.
|
|
619
|
+
- Default: none declared.
|
|
620
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
621
|
+
- Normative source: [`spec/_.hint:355`](../spec/_.hint#L355).
|
|
622
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
623
|
+
|
|
624
|
+
Behavior and consequence:
|
|
625
|
+
|
|
626
|
+
list of strings, optional for issue kinds. Changing it changes labels requested when an issue is
|
|
627
|
+
created; a missing label is a delivery error from the host.
|
|
628
|
+
|
|
629
|
+
## `agents[].contacts[].template`
|
|
630
|
+
|
|
631
|
+
- Type: string; optional.
|
|
632
|
+
- Default: none declared.
|
|
633
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
634
|
+
- Normative source: [`spec/_.hint:360`](../spec/_.hint#L360).
|
|
635
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
636
|
+
|
|
637
|
+
Behavior and consequence:
|
|
638
|
+
|
|
639
|
+
string, optional for issue kinds. Issue form/template name. Changing it changes the requested
|
|
640
|
+
host template without changing routing.
|
|
641
|
+
|
|
642
|
+
## `agents[].contacts[].project`
|
|
643
|
+
|
|
644
|
+
- Type: string; optional.
|
|
645
|
+
- Default: none declared.
|
|
646
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
647
|
+
- Normative source: [`spec/_.hint:365`](../spec/_.hint#L365).
|
|
648
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
649
|
+
|
|
650
|
+
Behavior and consequence:
|
|
651
|
+
|
|
652
|
+
string, optional for `jira`. Project key. Changing it changes the Jira project named in the
|
|
653
|
+
instruction.
|
|
654
|
+
|
|
655
|
+
## `agents[].contacts[].issue-type`
|
|
656
|
+
|
|
657
|
+
- Type: string; optional.
|
|
658
|
+
- Default: none declared.
|
|
659
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
660
|
+
- Normative source: [`spec/_.hint:370`](../spec/_.hint#L370).
|
|
661
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
662
|
+
|
|
663
|
+
Behavior and consequence:
|
|
664
|
+
|
|
665
|
+
string, optional for `jira`. Issue type. Changing it changes the Jira issue kind named in the
|
|
666
|
+
instruction.
|
|
667
|
+
|
|
668
|
+
## `agents[].contacts[].channel`
|
|
669
|
+
|
|
670
|
+
- Type: string; optional.
|
|
671
|
+
- Default: none declared.
|
|
672
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
673
|
+
- Normative source: [`spec/_.hint:375`](../spec/_.hint#L375).
|
|
674
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
675
|
+
|
|
676
|
+
Behavior and consequence:
|
|
677
|
+
|
|
678
|
+
string, optional for chat kinds. Channel name or id. Changing it changes the printed chat
|
|
679
|
+
destination; chat contacts are instruction-only.
|
|
680
|
+
|
|
681
|
+
## `agents[].contacts[].handle`
|
|
682
|
+
|
|
683
|
+
- Type: string; optional.
|
|
684
|
+
- Default: none declared.
|
|
685
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
686
|
+
- Normative source: [`spec/_.hint:380`](../spec/_.hint#L380).
|
|
687
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
688
|
+
|
|
689
|
+
Behavior and consequence:
|
|
690
|
+
|
|
691
|
+
string, optional for chat kinds. Agent mention or handle. Changing it changes whom the asker is
|
|
692
|
+
told to address.
|
|
693
|
+
|
|
694
|
+
## `agents[].contacts[].server`
|
|
695
|
+
|
|
696
|
+
- Type: string; optional.
|
|
697
|
+
- Default: none declared.
|
|
698
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
699
|
+
- Normative source: [`spec/_.hint:385`](../spec/_.hint#L385).
|
|
700
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
701
|
+
|
|
702
|
+
Behavior and consequence:
|
|
703
|
+
|
|
704
|
+
string, optional for chat kinds. Workspace or server URL/name. Changing it disambiguates the
|
|
705
|
+
printed chat destination.
|
|
706
|
+
|
|
707
|
+
## `agents[].trust.signatures`
|
|
708
|
+
|
|
709
|
+
- Type: boolean; optional.
|
|
710
|
+
- Default: `false`.
|
|
711
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
712
|
+
- Normative source: [`spec/_.hint:394`](../spec/_.hint#L394).
|
|
713
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
714
|
+
|
|
715
|
+
Behavior and consequence:
|
|
716
|
+
|
|
717
|
+
boolean, optional, default `false`. When changed to `true`, unsigned, invalid, or unverifiable
|
|
718
|
+
cards make `status` fail and make `update` warn while retaining the dependency update.
|
|
719
|
+
|
|
720
|
+
## `agents[].trust.accepts-external`
|
|
721
|
+
|
|
722
|
+
- Type: boolean; optional.
|
|
723
|
+
- Default: unstated.
|
|
724
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
725
|
+
- Normative source: [`spec/_.hint:399`](../spec/_.hint#L399).
|
|
726
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
727
|
+
|
|
728
|
+
Behavior and consequence:
|
|
729
|
+
|
|
730
|
+
boolean, optional, default unstated. Declares whether outside agents are welcome. Changing it
|
|
731
|
+
changes published contact policy only; the reference CLI does not enforce organisation identity.
|
|
732
|
+
|
|
733
|
+
## `policy.intents`
|
|
734
|
+
|
|
735
|
+
- Type: object; optional.
|
|
736
|
+
- Default: unlisted intents route to `owner`.
|
|
737
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
738
|
+
- Normative source: [`spec/_.hint:431`](../spec/_.hint#L431).
|
|
739
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
740
|
+
|
|
741
|
+
Behavior and consequence:
|
|
742
|
+
|
|
743
|
+
map intent → role. Which role answers which intent by default. Absent intents default to
|
|
744
|
+
`owner`. Example: `change: spec` sends change requests to the specification agent rather than
|
|
745
|
+
the coder — the pattern where engineers have full autonomy inside their repository and none
|
|
746
|
+
outside it, and the manager owns the WHAT.
|
|
747
|
+
|
|
748
|
+
Known values:
|
|
749
|
+
|
|
750
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
751
|
+
| --- | --- | --- | --- |
|
|
752
|
+
| `question` | Routes a request for explanation; defaults to role `owner`. | Selects contacts declaring `question` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
753
|
+
| `change` | Routes a proposed behavior/API change. | Selects contacts declaring `change` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
754
|
+
| `bug` | Routes a defect report. | Selects contacts declaring `bug` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
755
|
+
| `review` | Routes a review request. | Selects contacts declaring `review` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
756
|
+
| `incident` | Routes an operational incident. | Selects contacts declaring `incident` or `*`. | Accepted; policy and contacts can route any matching token. |
|
|
757
|
+
| `*` | 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. |
|
|
758
|
+
|
|
759
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
760
|
+
| --- | --- | --- | --- |
|
|
761
|
+
| `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. |
|
|
762
|
+
| `maintainer` | Routes intents mapped to a maintainer. | Changes which bindings match those intents. | Accepted and routed when policy names the same token. |
|
|
763
|
+
| `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. |
|
|
764
|
+
| `reviewer` | Routes review ownership. | Changes which bindings match review policy. | Accepted and routed when policy names the same token. |
|
|
765
|
+
| `support` | Routes support ownership. | Changes which bindings match support policy. | Accepted and routed when policy names the same token. |
|
|
766
|
+
|
|
767
|
+
## `policy.consumers`
|
|
768
|
+
|
|
769
|
+
- Type: object; optional.
|
|
770
|
+
- Default: none declared.
|
|
771
|
+
- Allowed values: open vocabulary; see the known-values table in this entry.
|
|
772
|
+
- Normative source: [`spec/_.hint:438`](../spec/_.hint#L438).
|
|
773
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
774
|
+
|
|
775
|
+
Behavior and consequence:
|
|
776
|
+
|
|
777
|
+
object: `may` and `may-not`, lists of tokens from an open vocabulary (`read-surface`, `ask`,
|
|
778
|
+
`open-issue`, `propose-change`, `commit`, `edit-spec`, `release`, …). Rendered verbatim into the
|
|
779
|
+
consumer's roster block so an agent sees the boundary before it acts. Defaults when absent:
|
|
780
|
+
`may: [read-surface, ask]`, `may-not: [commit]`.
|
|
781
|
+
|
|
782
|
+
## `policy.notes`
|
|
783
|
+
|
|
784
|
+
- Type: string; optional.
|
|
785
|
+
- Default: none declared.
|
|
786
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
787
|
+
- Normative source: [`spec/_.hint:445`](../spec/_.hint#L445).
|
|
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
|
+
string. Anything else consumers must know, verbatim.
|
|
793
|
+
|
|
794
|
+
## `policy.consumers.may`
|
|
795
|
+
|
|
796
|
+
- Type: array of string; optional.
|
|
797
|
+
- Default: `[read-surface, ask]`.
|
|
798
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
799
|
+
- Normative source: [`spec/_.hint:453`](../spec/_.hint#L453).
|
|
800
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
801
|
+
|
|
802
|
+
Behavior and consequence:
|
|
803
|
+
|
|
804
|
+
list of strings, optional, default `[read-surface, ask]`. Changing it changes the allowed actions
|
|
805
|
+
rendered into consumer AGENTS.md rosters; the CLI reports the boundary but does not become an
|
|
806
|
+
authorization service. Known values and unknown handling are in `vocabulary_consumers`.
|
|
807
|
+
|
|
808
|
+
Known values:
|
|
809
|
+
|
|
810
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
811
|
+
| --- | --- | --- | --- |
|
|
812
|
+
| `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. |
|
|
813
|
+
| `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. |
|
|
814
|
+
| `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. |
|
|
815
|
+
| `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. |
|
|
816
|
+
|
|
817
|
+
## `policy.consumers.may-not`
|
|
818
|
+
|
|
819
|
+
- Type: array of string; optional.
|
|
820
|
+
- Default: `[commit]`.
|
|
821
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
822
|
+
- Normative source: [`spec/_.hint:459`](../spec/_.hint#L459).
|
|
823
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
824
|
+
|
|
825
|
+
Behavior and consequence:
|
|
826
|
+
|
|
827
|
+
list of strings, optional, default `[commit]`. Changing it changes the prohibited actions rendered
|
|
828
|
+
into consumer rosters; downstream agents remain responsible for obeying the declaration. Known
|
|
829
|
+
values and unknown handling are in `vocabulary_consumers`.
|
|
830
|
+
|
|
831
|
+
Known values:
|
|
832
|
+
|
|
833
|
+
| Known value | What the tool does | Consequence of changing it | Unknown value |
|
|
834
|
+
| --- | --- | --- | --- |
|
|
835
|
+
| `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. |
|
|
836
|
+
| `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. |
|
|
837
|
+
| `open-issue`, `propose-change` | Tells consumers they may request owner-side work. | Adding/removing it changes the rendered boundary only. | Accepted and rendered verbatim; git-a2a does not enforce authorization. |
|
|
838
|
+
| `commit`, `edit-spec`, `release` | Common `may-not` boundaries for owner-controlled changes. | Adding/removing one changes the prohibition shown in the roster. | Accepted and rendered verbatim; downstream agents must obey it. |
|
|
839
|
+
|
|
840
|
+
## `dependencies[].id`
|
|
841
|
+
|
|
842
|
+
- Type: string; optional.
|
|
843
|
+
- Default: none declared.
|
|
844
|
+
- Allowed values: pattern `^[a-z0-9][a-z0-9._-]{0,63}$`.
|
|
845
|
+
- Normative source: [`spec/_.hint:469`](../spec/_.hint#L469).
|
|
846
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
847
|
+
|
|
848
|
+
Behavior and consequence:
|
|
849
|
+
|
|
850
|
+
string. The dependency's `module.id`. Required after `add` (the CLI fills it from the fetched
|
|
851
|
+
manifest); the lock is keyed on it.
|
|
852
|
+
|
|
853
|
+
## `dependencies[].git`
|
|
854
|
+
|
|
855
|
+
- Type: string; required.
|
|
856
|
+
- Default: none declared.
|
|
857
|
+
- Allowed values: minimum length 1.
|
|
858
|
+
- Normative source: [`spec/_.hint:474`](../spec/_.hint#L474).
|
|
859
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
860
|
+
|
|
861
|
+
Behavior and consequence:
|
|
862
|
+
|
|
863
|
+
string, required. The git URL (`ssh://`, `https://`, `git@host:path` scp form, `file://`).
|
|
864
|
+
Stored exactly as given; credentials are never stored.
|
|
865
|
+
|
|
866
|
+
## `dependencies[].ref`
|
|
867
|
+
|
|
868
|
+
- Type: string; optional.
|
|
869
|
+
- Default: the owner's `release.channel`, otherwise remote HEAD.
|
|
870
|
+
- Allowed values: minimum length 1.
|
|
871
|
+
- Normative source: [`spec/_.hint:479`](../spec/_.hint#L479).
|
|
872
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
873
|
+
|
|
874
|
+
Behavior and consequence:
|
|
875
|
+
|
|
876
|
+
string. Branch, tag or commit to follow. Default: the dependency's `release.channel`, else the
|
|
877
|
+
remote HEAD. Resolution: a 40-hex string is a commit; a full refname (`refs/heads/x`,
|
|
878
|
+
`refs/tags/x`) is exactly that; a short name is resolved in git's own order — `refs/tags/<ref>`
|
|
879
|
+
before `refs/heads/<ref>` — and an ambiguity is reported with the name chosen. A commit ref
|
|
880
|
+
implies `track: locked`. Changing `ref`, `git` or `path` of an existing dependency is an
|
|
881
|
+
ordinary edit (`git-a2a set`): identity is `module.id`, so the fetched manifest must carry the
|
|
882
|
+
same id unless the consumer explicitly accepts a different one; every wired ecosystem follows
|
|
883
|
+
the new source and pin together.
|
|
884
|
+
|
|
885
|
+
## `dependencies[].path`
|
|
886
|
+
|
|
887
|
+
- Type: string; optional.
|
|
888
|
+
- Default: `.`.
|
|
889
|
+
- Allowed values: minimum length 1.
|
|
890
|
+
- Normative source: [`spec/_.hint:490`](../spec/_.hint#L490).
|
|
891
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
892
|
+
|
|
893
|
+
Behavior and consequence:
|
|
894
|
+
|
|
895
|
+
string. Subdirectory containing the dependency's `a2amodule.yml` (monorepo). Default `.`.
|
|
896
|
+
|
|
897
|
+
## `dependencies[].track`
|
|
898
|
+
|
|
899
|
+
- Type: string; optional.
|
|
900
|
+
- Default: `locked`.
|
|
901
|
+
- Allowed values: one of `locked`, `floating`.
|
|
902
|
+
- Normative source: [`spec/_.hint:494`](../spec/_.hint#L494).
|
|
903
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
904
|
+
|
|
905
|
+
Behavior and consequence:
|
|
906
|
+
|
|
907
|
+
`locked` (default) or `floating`, a closed vocabulary described in `vocabulary_track`. Every mode
|
|
908
|
+
still records one observed commit in the lock. Changing the mode rewrites supported native
|
|
909
|
+
dependency forms; unknown values are rejected.
|
|
910
|
+
|
|
911
|
+
Known values:
|
|
912
|
+
|
|
913
|
+
| Value | What the tool does | Consequence of changing it | Unknown value |
|
|
914
|
+
| --- | --- | --- | --- |
|
|
915
|
+
| `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. |
|
|
916
|
+
| `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. |
|
|
917
|
+
|
|
918
|
+
## `dependencies[].wire`
|
|
919
|
+
|
|
920
|
+
- Type: array of string; optional.
|
|
921
|
+
- Default: all matching detected ecosystems.
|
|
922
|
+
- Allowed values: schema type plus the normative behavior in this entry.
|
|
923
|
+
- Normative source: [`spec/_.hint:500`](../spec/_.hint#L500).
|
|
924
|
+
- Example: see the [public library manifest](https://github.com/neprel/git-a2a-demo-acme-lib/blob/main/a2amodule.yml) and [consumer manifest](https://github.com/neprel/git-a2a-demo-acme-app/blob/main/a2amodule.yml).
|
|
925
|
+
|
|
926
|
+
Behavior and consequence:
|
|
927
|
+
|
|
928
|
+
list of ecosystems to wire, or absent for "every export that matches a manifest detected in this
|
|
929
|
+
repository". An empty list means "record the dependency, wire nothing". When `wire` is absent
|
|
930
|
+
and an export cannot be expressed in its ecosystem (the ecosystem has no git form for that URL,
|
|
931
|
+
no subdirectory support, a floating ref it cannot store), the tool wires what it can, reports
|
|
932
|
+
the rest as `not wired: <reason>` and `status` shows that ecosystem as `unwired`; it is an error
|
|
933
|
+
only for an ecosystem named explicitly in `wire`. Wiring is repairable at any time
|
|
934
|
+
(`git-a2a wire [ID]` re-applies every adapter from the lock, idempotently) — a half-wired
|
|
935
|
+
dependency is a state the tool can always see and always fix, never one it hides.
|
|
936
|
+
|
|
937
|
+
## Extension fields
|
|
938
|
+
|
|
939
|
+
At every schema object that declares `patternProperties`, keys beginning with `x-` are
|
|
940
|
+
extensions. The CLI preserves them; changing one changes only the extension consumer's
|
|
941
|
+
behavior. A known object rejects every other unknown key.
|
|
942
|
+
|
|
943
|
+
For an authoring sequence rather than field-by-field lookup, read the
|
|
944
|
+
[owner's guide](authoring.md).
|