@agentproto/corpus-cli 0.1.0-alpha.1 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +26 -8
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.mjs +15 -4
- package/dist/index.mjs.map +1 -1
- package/dist/specs/resources/aip-10/draft/KNOWLEDGE.schema.json +457 -0
- package/dist/specs/resources/aip-11/draft/LESSON.schema.json +149 -0
- package/dist/specs/resources/aip-12/draft/PLAYBOOK.schema.json +349 -0
- package/dist/specs/resources/aip-13/draft/WORK_ITEM.schema.json +547 -0
- package/dist/specs/resources/aip-14/draft/TOOL.schema.json +169 -0
- package/dist/specs/resources/aip-15/draft/WORKFLOW.schema.json +356 -0
- package/dist/specs/resources/aip-16/draft/IO.schema.json +64 -0
- package/dist/specs/resources/aip-17/draft/RUNNER.schema.json +81 -0
- package/dist/specs/resources/aip-18/draft/COLLECTION.schema.json +436 -0
- package/dist/specs/resources/aip-19/draft/SECRETS.schema.json +261 -0
- package/dist/specs/resources/aip-20/draft/WORK.schema.json +371 -0
- package/dist/specs/resources/aip-21/draft/AGENCY.schema.json +454 -0
- package/dist/specs/resources/aip-22/draft/OFFICE.schema.json +390 -0
- package/dist/specs/resources/aip-23/draft/IDENTITY.schema.json +358 -0
- package/dist/specs/resources/aip-24/draft/ASSEMBLY.schema.json +411 -0
- package/dist/specs/resources/aip-25/draft/PERSONA.schema.json +257 -0
- package/dist/specs/resources/aip-26/draft/CODE.schema.json +172 -0
- package/dist/specs/resources/aip-28/draft/INTENT.schema.json +215 -0
- package/dist/specs/resources/aip-29/draft/CLI.schema.json +339 -0
- package/dist/specs/resources/aip-3/draft/SKILL.schema.json +206 -0
- package/dist/specs/resources/aip-30/draft/DRIVER.schema.json +237 -0
- package/dist/specs/resources/aip-31/draft/HTTP.schema.json +80 -0
- package/dist/specs/resources/aip-32/draft/MCP.schema.json +88 -0
- package/dist/specs/resources/aip-33/draft/SDK.schema.json +60 -0
- package/dist/specs/resources/aip-34/draft/WORKSPACE.schema.json +252 -0
- package/dist/specs/resources/aip-35/draft/STORAGE.schema.json +237 -0
- package/dist/specs/resources/aip-36/draft/SANDBOX.schema.json +246 -0
- package/dist/specs/resources/aip-38/draft/POLICY.schema.json +217 -0
- package/dist/specs/resources/aip-39/draft/ACTION.schema.json +134 -0
- package/dist/specs/resources/aip-4/draft/DESIGN.schema.json +189 -0
- package/dist/specs/resources/aip-40/draft/EXTENSION.schema.json +116 -0
- package/dist/specs/resources/aip-41/draft/ROUTINE.schema.json +345 -0
- package/dist/specs/resources/aip-42/draft/AGENT.schema.json +268 -0
- package/dist/specs/resources/aip-44/draft/ACP.schema.json +170 -0
- package/dist/specs/resources/aip-45/draft/AGENT-CLI.schema.json +371 -0
- package/dist/specs/resources/aip-47/draft/ROLE.schema.json +199 -0
- package/dist/specs/resources/aip-48/draft/MultiAgentRuntime.schema.json +108 -0
- package/dist/specs/resources/aip-5/draft/TEMPLATE.schema.json +231 -0
- package/dist/specs/resources/aip-6/draft/COMPANY.schema.json +268 -0
- package/dist/specs/resources/aip-7/draft/GOVERNANCE.schema.json +581 -0
- package/dist/specs/resources/aip-8/draft/AGENCY.schema.json +518 -0
- package/dist/specs/resources/aip-9/draft/OPERATOR.schema.json +297 -0
- package/package.json +4 -4
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentproto.sh/docs/aip-34/WORKSPACE.schema.json",
|
|
4
|
+
"title": "WORKSPACE.md frontmatter — agentworkspace/v1 (workspace identity)",
|
|
5
|
+
"description": "Validates the YAML frontmatter portion of an AIP-34 WORKSPACE.md manifest. Composes the AIP-35 STORAGE block (required), AIP-36 SANDBOX block (optional), AIP-26 CODE block (optional), AIP-23 identity-ref block (optional).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["schema", "id", "version", "name", "owner", "storage"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"schema": {
|
|
11
|
+
"const": "workspace/v1"
|
|
12
|
+
},
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^@[a-z0-9][a-z0-9-]*/[a-z0-9][a-z0-9-]*$",
|
|
16
|
+
"description": "Globally addressable id `@<owner-slug>/<workspace-slug>`. Lowercase kebab-case, immutable across the workspace's lifetime."
|
|
17
|
+
},
|
|
18
|
+
"version": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(?:[-+][\\w.\\-]+)?$",
|
|
21
|
+
"description": "Spec version of THIS file. Bump on breaking shape change."
|
|
22
|
+
},
|
|
23
|
+
"name": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"maxLength": 80,
|
|
27
|
+
"description": "Human-readable display name."
|
|
28
|
+
},
|
|
29
|
+
"description": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"maxLength": 2000,
|
|
32
|
+
"description": "One-paragraph purpose."
|
|
33
|
+
},
|
|
34
|
+
"owner": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"required": ["type", "id", "slug"],
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"properties": {
|
|
39
|
+
"type": { "enum": ["guild", "user", "org"] },
|
|
40
|
+
"id": { "type": "string", "minLength": 1 },
|
|
41
|
+
"slug": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"minLength": 1,
|
|
44
|
+
"pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$",
|
|
45
|
+
"description": "Owner-side slug. MUST match the slug suffix of the workspace `id`."
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"storage": {
|
|
50
|
+
"$ref": "#/$defs/storageRef",
|
|
51
|
+
"description": "AIP-35 STORAGE block. Required. Inline / ref / file."
|
|
52
|
+
},
|
|
53
|
+
"sandbox": {
|
|
54
|
+
"$ref": "#/$defs/sandboxRef",
|
|
55
|
+
"description": "AIP-36 SANDBOX block. Optional — when absent, command-execution tools MUST be unavailable."
|
|
56
|
+
},
|
|
57
|
+
"code": {
|
|
58
|
+
"$ref": "#/$defs/codeRef",
|
|
59
|
+
"description": "AIP-26 CODE block. Optional — when present, the workspace IS a code-workspace / repo (codespace pattern)."
|
|
60
|
+
},
|
|
61
|
+
"identity": {
|
|
62
|
+
"$ref": "#/$defs/identityRefBlock",
|
|
63
|
+
"description": "AIP-23 identity-ref — default identity for sub-blocks. Sub-blocks (storage, sandbox, code) may override."
|
|
64
|
+
},
|
|
65
|
+
"policy": {
|
|
66
|
+
"$ref": "#/$defs/policyRefBlock",
|
|
67
|
+
"description": "AIP-38 POLICY block — access grants, defaults, limits, requirements. Composable inline / ref / file / array."
|
|
68
|
+
},
|
|
69
|
+
"defaults": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"additionalProperties": true,
|
|
72
|
+
"properties": {
|
|
73
|
+
"read_only": { "type": "boolean" }
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"publish": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"additionalProperties": false,
|
|
79
|
+
"properties": {
|
|
80
|
+
"template": { "type": "boolean", "default": false },
|
|
81
|
+
"registry": { "type": "string" },
|
|
82
|
+
"visibility": {
|
|
83
|
+
"enum": ["private", "unlisted", "public"],
|
|
84
|
+
"default": "private"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"tags": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": { "type": "string" },
|
|
91
|
+
"default": []
|
|
92
|
+
},
|
|
93
|
+
"created_at": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"format": "date-time"
|
|
96
|
+
},
|
|
97
|
+
"metadata": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"additionalProperties": true
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"$defs": {
|
|
103
|
+
"storageRef": {
|
|
104
|
+
"anyOf": [
|
|
105
|
+
{
|
|
106
|
+
"type": "object",
|
|
107
|
+
"required": ["inline"],
|
|
108
|
+
"additionalProperties": false,
|
|
109
|
+
"properties": {
|
|
110
|
+
"inline": {
|
|
111
|
+
"$ref": "https://agentproto.sh/schemas/aip-35/STORAGE.schema.json"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"type": "object",
|
|
117
|
+
"required": ["ref"],
|
|
118
|
+
"additionalProperties": false,
|
|
119
|
+
"properties": { "ref": { "type": "string", "minLength": 1 } }
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"type": "object",
|
|
123
|
+
"required": ["file"],
|
|
124
|
+
"additionalProperties": false,
|
|
125
|
+
"properties": { "file": { "type": "string", "minLength": 1 } }
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
"sandboxRef": {
|
|
130
|
+
"anyOf": [
|
|
131
|
+
{
|
|
132
|
+
"type": "object",
|
|
133
|
+
"required": ["inline"],
|
|
134
|
+
"additionalProperties": false,
|
|
135
|
+
"properties": {
|
|
136
|
+
"inline": {
|
|
137
|
+
"$ref": "https://agentproto.sh/schemas/aip-36/SANDBOX.schema.json"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"type": "object",
|
|
143
|
+
"required": ["ref"],
|
|
144
|
+
"additionalProperties": false,
|
|
145
|
+
"properties": { "ref": { "type": "string", "minLength": 1 } }
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "object",
|
|
149
|
+
"required": ["file"],
|
|
150
|
+
"additionalProperties": false,
|
|
151
|
+
"properties": { "file": { "type": "string", "minLength": 1 } }
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
"codeRef": {
|
|
156
|
+
"anyOf": [
|
|
157
|
+
{
|
|
158
|
+
"type": "object",
|
|
159
|
+
"required": ["inline"],
|
|
160
|
+
"additionalProperties": false,
|
|
161
|
+
"properties": {
|
|
162
|
+
"inline": { "type": "object" }
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"type": "object",
|
|
167
|
+
"required": ["ref"],
|
|
168
|
+
"additionalProperties": false,
|
|
169
|
+
"properties": { "ref": { "type": "string", "minLength": 1 } }
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"type": "object",
|
|
173
|
+
"required": ["file"],
|
|
174
|
+
"additionalProperties": false,
|
|
175
|
+
"properties": { "file": { "type": "string", "minLength": 1 } }
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"identityRefBlock": {
|
|
180
|
+
"anyOf": [
|
|
181
|
+
{ "$ref": "#/$defs/identityRefEntry" },
|
|
182
|
+
{
|
|
183
|
+
"type": "array",
|
|
184
|
+
"items": { "$ref": "#/$defs/identityRefEntry" },
|
|
185
|
+
"minItems": 1
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
"policyRefEntry": {
|
|
190
|
+
"anyOf": [
|
|
191
|
+
{ "$ref": "https://agentproto.sh/schemas/aip-38/POLICY.schema.json" },
|
|
192
|
+
{
|
|
193
|
+
"type": "object",
|
|
194
|
+
"required": ["ref"],
|
|
195
|
+
"additionalProperties": false,
|
|
196
|
+
"properties": { "ref": { "type": "string", "minLength": 1 } }
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"type": "object",
|
|
200
|
+
"required": ["file"],
|
|
201
|
+
"additionalProperties": false,
|
|
202
|
+
"properties": { "file": { "type": "string", "minLength": 1 } }
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
"policyRefBlock": {
|
|
207
|
+
"anyOf": [
|
|
208
|
+
{ "$ref": "#/$defs/policyRefEntry" },
|
|
209
|
+
{
|
|
210
|
+
"type": "array",
|
|
211
|
+
"items": { "$ref": "#/$defs/policyRefEntry" },
|
|
212
|
+
"minItems": 1
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"identityRefEntry": {
|
|
217
|
+
"anyOf": [
|
|
218
|
+
{
|
|
219
|
+
"type": "object",
|
|
220
|
+
"required": ["name", "email"],
|
|
221
|
+
"additionalProperties": true,
|
|
222
|
+
"properties": {
|
|
223
|
+
"name": { "type": "string", "minLength": 1 },
|
|
224
|
+
"email": { "type": "string", "minLength": 1 },
|
|
225
|
+
"avatar": { "type": "string" },
|
|
226
|
+
"gpg_key": { "type": "string" },
|
|
227
|
+
"role": { "type": "string" },
|
|
228
|
+
"metadata": { "type": "object" }
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"type": "object",
|
|
233
|
+
"required": ["ref"],
|
|
234
|
+
"additionalProperties": true,
|
|
235
|
+
"properties": {
|
|
236
|
+
"ref": { "type": "string", "minLength": 1 },
|
|
237
|
+
"role": { "type": "string" }
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"type": "object",
|
|
242
|
+
"required": ["file"],
|
|
243
|
+
"additionalProperties": true,
|
|
244
|
+
"properties": {
|
|
245
|
+
"file": { "type": "string", "minLength": 1 },
|
|
246
|
+
"role": { "type": "string" }
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentproto.sh/schemas/aip-35/STORAGE.schema.json",
|
|
4
|
+
"title": "STORAGE.md frontmatter — agentstorage/v1 (filesystem policy block)",
|
|
5
|
+
"description": "Validates the YAML frontmatter portion of an AIP-35 STORAGE.md manifest, OR the inline form embedded in any other manifest's `storage:` block. Filesystem-only — sandbox-shaped backends (e2b/modal/...) live in AIP-36 SANDBOX.md.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["provider", "config"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"schema": {
|
|
11
|
+
"const": "storage/v1",
|
|
12
|
+
"description": "Standalone-only. Identifies the doctype + version. Absent when the block is inlined in another manifest."
|
|
13
|
+
},
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^@[a-z0-9][a-z0-9-]*/[a-z0-9][a-z0-9-]*$",
|
|
17
|
+
"description": "Standalone-only. Globally addressable id `@<owner-slug>/<storage-slug>`."
|
|
18
|
+
},
|
|
19
|
+
"version": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(?:[-+][\\w.\\-]+)?$",
|
|
22
|
+
"description": "Standalone-only. Spec version of THIS file. Bump on breaking shape change."
|
|
23
|
+
},
|
|
24
|
+
"provider": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1,
|
|
27
|
+
"description": "Backend kind. Day-1 enumerated set: cloud-bucket | self-bucket | github | local-fs | dev-local | mastra-s3 | mastra-azure. Hosts MAY register additional ids; the schema accepts any non-empty string and host-side validation narrows."
|
|
28
|
+
},
|
|
29
|
+
"config": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"description": "Provider-specific connection fields. Shape varies per provider (see AIP-35 §Provider config shapes)."
|
|
32
|
+
},
|
|
33
|
+
"sync": {
|
|
34
|
+
"$ref": "#/$defs/syncBlock",
|
|
35
|
+
"description": "Sync semantics. Lifecycle triggers reference AIP-37 event names."
|
|
36
|
+
},
|
|
37
|
+
"auth": {
|
|
38
|
+
"$ref": "#/$defs/authBlock",
|
|
39
|
+
"description": "Reference to AIP-19 SECRETS.md (or future ENV.md) for credentials."
|
|
40
|
+
},
|
|
41
|
+
"identity": {
|
|
42
|
+
"$ref": "#/$defs/identityRefBlock",
|
|
43
|
+
"description": "AIP-23 identity-ref block — commit author(s) for syncing providers (github). Supports multi-attribution (primary + co-authors)."
|
|
44
|
+
},
|
|
45
|
+
"policy": {
|
|
46
|
+
"$ref": "#/$defs/policyRefBlock",
|
|
47
|
+
"description": "AIP-38 POLICY block — access grants on storage actions."
|
|
48
|
+
},
|
|
49
|
+
"exclude": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": { "type": "string" },
|
|
52
|
+
"default": [],
|
|
53
|
+
"description": "Paths NOT mirrored to the backing store. Glob-ish, prefix-matched."
|
|
54
|
+
},
|
|
55
|
+
"read_only": {
|
|
56
|
+
"type": "boolean",
|
|
57
|
+
"default": false,
|
|
58
|
+
"description": "Reject writes at the storage layer."
|
|
59
|
+
},
|
|
60
|
+
"metadata": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"additionalProperties": true,
|
|
63
|
+
"description": "Free-form, namespaced. Authors MAY stash adapter-specific hints under namespaced keys."
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"$defs": {
|
|
67
|
+
"syncBlock": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"additionalProperties": false,
|
|
70
|
+
"properties": {
|
|
71
|
+
"mode": {
|
|
72
|
+
"enum": ["canonical", "pull-push", "watch"],
|
|
73
|
+
"default": "canonical"
|
|
74
|
+
},
|
|
75
|
+
"pull": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"additionalProperties": false,
|
|
78
|
+
"properties": {
|
|
79
|
+
"on": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"minLength": 1,
|
|
82
|
+
"description": "AIP-37 lifecycle event name. Standard: workspace-open | turn-start | manual. Aliases (per-turn, each-write) resolve via AIP-37."
|
|
83
|
+
},
|
|
84
|
+
"ttl_seconds": {
|
|
85
|
+
"type": "integer",
|
|
86
|
+
"minimum": 1,
|
|
87
|
+
"description": "Cache validity for pull-push providers (e.g. github clone)."
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"commit": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"additionalProperties": false,
|
|
94
|
+
"properties": {
|
|
95
|
+
"on": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"description": "AIP-37 event name. Common: each-write | per-turn | per-conversation | manual."
|
|
99
|
+
},
|
|
100
|
+
"batch_window_ms": {
|
|
101
|
+
"type": "integer",
|
|
102
|
+
"minimum": 0,
|
|
103
|
+
"description": "Debounce window for each-write commit mode."
|
|
104
|
+
},
|
|
105
|
+
"message_template": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "Template for commit message. Provider-specific tokens (e.g. {{operator}}, {{summary}})."
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"push": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"additionalProperties": false,
|
|
114
|
+
"properties": {
|
|
115
|
+
"on": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"minLength": 1,
|
|
118
|
+
"description": "AIP-37 event name. Common: per-commit | per-turn | per-conversation | manual."
|
|
119
|
+
},
|
|
120
|
+
"branch_policy": {
|
|
121
|
+
"enum": ["main", "per-conversation", "per-turn"],
|
|
122
|
+
"description": "Github only. Where commits land."
|
|
123
|
+
},
|
|
124
|
+
"pr_policy": {
|
|
125
|
+
"enum": ["none", "auto", "manual"],
|
|
126
|
+
"description": "Github only. Whether to open PRs automatically."
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"conflict": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"additionalProperties": false,
|
|
133
|
+
"properties": {
|
|
134
|
+
"policy": {
|
|
135
|
+
"enum": ["rebase", "merge", "abort", "manual", "last-writer-wins", "split-conflicts"]
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"authBlock": {
|
|
142
|
+
"type": "object",
|
|
143
|
+
"additionalProperties": false,
|
|
144
|
+
"properties": {
|
|
145
|
+
"ref": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"minLength": 1,
|
|
148
|
+
"description": "Path or registry slug pointing to a SECRETS.md (or future ENV.md) inventory."
|
|
149
|
+
},
|
|
150
|
+
"state": {
|
|
151
|
+
"type": "object",
|
|
152
|
+
"additionalProperties": false,
|
|
153
|
+
"properties": {
|
|
154
|
+
"env": {
|
|
155
|
+
"type": "array",
|
|
156
|
+
"items": { "type": "string" },
|
|
157
|
+
"description": "Env-var names this consumer expects to be revealed from the referenced inventory."
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"identityRefBlock": {
|
|
164
|
+
"description": "AIP-23 §'Identity reference block'. Single entry or array (multi-attribution).",
|
|
165
|
+
"anyOf": [
|
|
166
|
+
{ "$ref": "#/$defs/identityRefEntry" },
|
|
167
|
+
{
|
|
168
|
+
"type": "array",
|
|
169
|
+
"items": { "$ref": "#/$defs/identityRefEntry" },
|
|
170
|
+
"minItems": 1
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"policyRefEntry": {
|
|
175
|
+
"anyOf": [
|
|
176
|
+
{ "$ref": "https://agentproto.sh/schemas/aip-38/POLICY.schema.json" },
|
|
177
|
+
{
|
|
178
|
+
"type": "object",
|
|
179
|
+
"required": ["ref"],
|
|
180
|
+
"additionalProperties": false,
|
|
181
|
+
"properties": { "ref": { "type": "string", "minLength": 1 } }
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"type": "object",
|
|
185
|
+
"required": ["file"],
|
|
186
|
+
"additionalProperties": false,
|
|
187
|
+
"properties": { "file": { "type": "string", "minLength": 1 } }
|
|
188
|
+
}
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
"policyRefBlock": {
|
|
192
|
+
"anyOf": [
|
|
193
|
+
{ "$ref": "#/$defs/policyRefEntry" },
|
|
194
|
+
{
|
|
195
|
+
"type": "array",
|
|
196
|
+
"items": { "$ref": "#/$defs/policyRefEntry" },
|
|
197
|
+
"minItems": 1
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
"identityRefEntry": {
|
|
202
|
+
"anyOf": [
|
|
203
|
+
{
|
|
204
|
+
"type": "object",
|
|
205
|
+
"required": ["name", "email"],
|
|
206
|
+
"additionalProperties": true,
|
|
207
|
+
"properties": {
|
|
208
|
+
"name": { "type": "string", "minLength": 1 },
|
|
209
|
+
"email": { "type": "string", "minLength": 1 },
|
|
210
|
+
"avatar": { "type": "string" },
|
|
211
|
+
"gpg_key": { "type": "string" },
|
|
212
|
+
"role": { "type": "string" },
|
|
213
|
+
"metadata": { "type": "object" }
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"type": "object",
|
|
218
|
+
"required": ["ref"],
|
|
219
|
+
"additionalProperties": true,
|
|
220
|
+
"properties": {
|
|
221
|
+
"ref": { "type": "string", "minLength": 1 },
|
|
222
|
+
"role": { "type": "string" }
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"type": "object",
|
|
227
|
+
"required": ["file"],
|
|
228
|
+
"additionalProperties": true,
|
|
229
|
+
"properties": {
|
|
230
|
+
"file": { "type": "string", "minLength": 1 },
|
|
231
|
+
"role": { "type": "string" }
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
]
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|