@piagent/platform 1.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.
Files changed (159) hide show
  1. package/.gitattributes +7 -0
  2. package/AGENTS.md +31 -0
  3. package/CHANGELOG.md +296 -0
  4. package/CODE_OF_CONDUCT.md +36 -0
  5. package/CONTRIBUTING.md +66 -0
  6. package/LICENSE +21 -0
  7. package/README.md +588 -0
  8. package/SECURITY.md +38 -0
  9. package/adapters/backend-api/profile.json +88 -0
  10. package/adapters/be-readonly-fe/profile.json +120 -0
  11. package/adapters/data/profile.json +88 -0
  12. package/adapters/devops/profile.json +92 -0
  13. package/adapters/docs/profile.json +74 -0
  14. package/adapters/fullstack/profile.json +94 -0
  15. package/adapters/generic/profile.json +95 -0
  16. package/adapters/mobile/profile.json +87 -0
  17. package/adapters/node-typescript/profile.json +76 -0
  18. package/adapters/python/profile.json +75 -0
  19. package/adapters/web-frontend/profile.json +101 -0
  20. package/catalog/capabilities.json +206 -0
  21. package/docs/architecture.md +64 -0
  22. package/docs/auto-delegation-policy.md +192 -0
  23. package/docs/capability-packs.md +234 -0
  24. package/docs/command-reference-vietnamese.md +484 -0
  25. package/docs/context-window-policy.md +85 -0
  26. package/docs/distribution-standard.md +229 -0
  27. package/docs/herdr-workflow.md +58 -0
  28. package/docs/mcp-and-tools.md +316 -0
  29. package/docs/memory-policy.md +164 -0
  30. package/docs/model-options.md +165 -0
  31. package/docs/oauth-providers.md +53 -0
  32. package/docs/operator-manual-vietnamese.md +1080 -0
  33. package/docs/package-architecture-notes.md +101 -0
  34. package/docs/project-adapters.md +174 -0
  35. package/docs/project-onboarding.md +135 -0
  36. package/docs/publishing-for-teams.md +64 -0
  37. package/docs/quality-benchmark.md +74 -0
  38. package/docs/quickstart-vietnamese.md +350 -0
  39. package/docs/release-install-policy.md +223 -0
  40. package/docs/runtime-harness-standard.md +118 -0
  41. package/docs/runtime-policy-design.md +132 -0
  42. package/docs/runtime-quality-baseline.md +257 -0
  43. package/docs/security-redaction-benchmark.md +56 -0
  44. package/docs/security-threat-model.md +66 -0
  45. package/docs/subagent-orchestration-capabilities.md +104 -0
  46. package/docs/subagents-and-multiagent.md +346 -0
  47. package/docs/task-implementation-contract.md +200 -0
  48. package/docs/team-onboarding.md +333 -0
  49. package/docs/usage-observability.md +130 -0
  50. package/docs/vercel-docs-site.md +115 -0
  51. package/docs/workflow-recipes.md +125 -0
  52. package/docs-site/assets/piagent-logo.svg +35 -0
  53. package/docs-site/favicon.svg +18 -0
  54. package/docs-site/index.html +1613 -0
  55. package/docs-site/vercel.json +24 -0
  56. package/evals/fixtures/action-proposal.invalid.json +34 -0
  57. package/evals/fixtures/action-proposal.valid.json +34 -0
  58. package/evals/fixtures/capability-pack.invalid.json +123 -0
  59. package/evals/fixtures/capability-pack.valid.json +123 -0
  60. package/evals/fixtures/capability-recipe.invalid.json +81 -0
  61. package/evals/fixtures/capability-recipe.valid.json +82 -0
  62. package/evals/fixtures/context-index.invalid.json +25 -0
  63. package/evals/fixtures/context-index.valid.json +25 -0
  64. package/evals/fixtures/eval-scenario.invalid.json +40 -0
  65. package/evals/fixtures/eval-scenario.valid.json +45 -0
  66. package/evals/fixtures/project-profile.invalid.json +88 -0
  67. package/evals/fixtures/project-profile.valid.json +95 -0
  68. package/evals/fixtures/task-contract.invalid.json +73 -0
  69. package/evals/fixtures/task-contract.valid.json +74 -0
  70. package/evals/golden/enforcement-decisions.json +329 -0
  71. package/evals/scenarios/capability-resolution.json +45 -0
  72. package/package.json +132 -0
  73. package/packages/piagent-core/README.md +147 -0
  74. package/packages/piagent-core/capabilities/capability-core.js +1023 -0
  75. package/packages/piagent-core/capabilities/capability-sources.js +265 -0
  76. package/packages/piagent-core/extensions/guard-io.js +45 -0
  77. package/packages/piagent-core/extensions/guard-shell-analysis.ts +558 -0
  78. package/packages/piagent-core/extensions/guard-types.ts +406 -0
  79. package/packages/piagent-core/extensions/piagent-guard.ts +5760 -0
  80. package/packages/piagent-core/extensions/policy-core.js +1070 -0
  81. package/packages/piagent-core/extensions/redaction-core.js +4 -0
  82. package/packages/piagent-core/extensions/runtime-evidence.js +215 -0
  83. package/packages/piagent-core/package.json +46 -0
  84. package/packages/piagent-core/policies/base-policy.json +249 -0
  85. package/packages/piagent-core/prompts/be-to-fe.md +82 -0
  86. package/packages/piagent-core/prompts/commit.md +27 -0
  87. package/packages/piagent-core/prompts/discuss.md +35 -0
  88. package/packages/piagent-core/prompts/memory-policy.md +52 -0
  89. package/packages/piagent-core/prompts/model-options.md +68 -0
  90. package/packages/piagent-core/prompts/onboard-project.md +147 -0
  91. package/packages/piagent-core/prompts/piagent-commands.md +68 -0
  92. package/packages/piagent-core/prompts/plan.md +35 -0
  93. package/packages/piagent-core/prompts/platform-improve.md +69 -0
  94. package/packages/piagent-core/prompts/pr.md +26 -0
  95. package/packages/piagent-core/prompts/review.md +38 -0
  96. package/packages/piagent-core/prompts/scout.md +50 -0
  97. package/packages/piagent-core/prompts/task.md +69 -0
  98. package/packages/piagent-core/security/sensitive-data.js +187 -0
  99. package/packages/piagent-core/skills/piagent-ops/SKILL.md +44 -0
  100. package/packages/piagent-core/skills/piagent-source-cache/SKILL.md +59 -0
  101. package/packages/piagent-core/skills/piagent-source-cache/checkout-source-repo.sh +144 -0
  102. package/packages/piagent-core/subagents/piagent-oracle.md +29 -0
  103. package/packages/piagent-core/subagents/piagent-planner.md +46 -0
  104. package/packages/piagent-core/subagents/piagent-reviewer.md +48 -0
  105. package/packages/piagent-core/subagents/piagent-scout.md +37 -0
  106. package/packages/piagent-core/subagents/piagent-worker.md +44 -0
  107. package/packs/engineering-base/pack.json +123 -0
  108. package/packs/engineering-base/recipes/bounded-change.json +82 -0
  109. package/packs/web-delivery/pack.json +72 -0
  110. package/packs/web-delivery/recipes/verified-web-change.json +57 -0
  111. package/schemas/action-proposal.schema.json +90 -0
  112. package/schemas/capability-pack.schema.json +190 -0
  113. package/schemas/capability-recipe.schema.json +72 -0
  114. package/schemas/context-index.schema.json +258 -0
  115. package/schemas/eval-scenario.schema.json +67 -0
  116. package/schemas/project-profile.schema.json +555 -0
  117. package/schemas/task-contract.schema.json +314 -0
  118. package/scripts/audit-runtime-host.sh +78 -0
  119. package/scripts/bootstrap-local.sh +25 -0
  120. package/scripts/capability-catalog.mjs +290 -0
  121. package/scripts/check-runtime-advisories.mjs +114 -0
  122. package/scripts/configure-mcp.sh +301 -0
  123. package/scripts/configure-model-scope.sh +143 -0
  124. package/scripts/configure-subagents.sh +241 -0
  125. package/scripts/import-agent-instructions.mjs +199 -0
  126. package/scripts/init-project.sh +369 -0
  127. package/scripts/install-global.sh +532 -0
  128. package/scripts/link-project.sh +25 -0
  129. package/scripts/migrate-project-state.mjs +176 -0
  130. package/scripts/pi-auto.sh +79 -0
  131. package/scripts/pi-model-catalog.sh +154 -0
  132. package/scripts/pi-session-stats.sh +135 -0
  133. package/scripts/piagent-cli.mjs +53 -0
  134. package/scripts/profile-doctor.sh +238 -0
  135. package/scripts/quality-benchmark.sh +185 -0
  136. package/scripts/redaction-benchmark.mjs +227 -0
  137. package/scripts/runtime-policy-smoke.sh +48 -0
  138. package/scripts/setup.sh +425 -0
  139. package/scripts/team-doctor.sh +461 -0
  140. package/scripts/verify-local.sh +540 -0
  141. package/scripts/verify-release-identity.mjs +85 -0
  142. package/scripts/verify-vercel-link.mjs +64 -0
  143. package/templates/global/mcp.json +9 -0
  144. package/templates/global/settings.json +37 -0
  145. package/templates/project/.mcp.json +9 -0
  146. package/templates/project/.pi/context-index.json +25 -0
  147. package/templates/project/.pi/gitignore.template +22 -0
  148. package/templates/project/.pi/mcp.json +9 -0
  149. package/templates/project/.pi/memory/MEMORY.md +11 -0
  150. package/templates/project/.pi/memory/memory_summary.md +9 -0
  151. package/templates/project/.pi/piagent-profile.json +107 -0
  152. package/templates/project/.pi/project-context.md +30 -0
  153. package/templates/project/.pi/settings.json +17 -0
  154. package/templates/project/.pi/task-contract.template.json +74 -0
  155. package/templates/project/.pi/tech-context/README.md +7 -0
  156. package/templates/project/.pi/tech-stack.json +10 -0
  157. package/templates/project/AGENTS.md +34 -0
  158. package/templates/project/REVIEW_GUIDELINES.md +23 -0
  159. package/types/pi-runtime-shims.d.ts +13 -0
@@ -0,0 +1,555 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/Vt-mmm/piagent/schemas/project-profile.schema.json",
4
+ "title": "Pi Agent Project Profile",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "projectId",
9
+ "displayName",
10
+ "mode",
11
+ "rootMarkers",
12
+ "protectedPaths",
13
+ "requiredContext",
14
+ "verifyCommands",
15
+ "mcpCapabilities"
16
+ ],
17
+ "properties": {
18
+ "schemaVersion": {
19
+ "type": "integer",
20
+ "const": 1
21
+ },
22
+ "projectId": {
23
+ "type": "string",
24
+ "minLength": 1,
25
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
26
+ },
27
+ "displayName": {
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "mode": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "permissionProfile": {
36
+ "description": "Runtime permission profile. workspace-write is the default; trusted-full-access still keeps Piagent protected-path and destructive/external confirmation gates.",
37
+ "enum": [
38
+ "read-only",
39
+ "workspace-write",
40
+ "trusted-full-access"
41
+ ]
42
+ },
43
+ "rootMarkers": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string",
47
+ "minLength": 1
48
+ },
49
+ "minItems": 1
50
+ },
51
+ "protectedPaths": {
52
+ "type": "array",
53
+ "items": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ }
57
+ },
58
+ "shellProtectedPaths": {
59
+ "type": "array",
60
+ "description": "Optional bash-specific protected path globs. These block shell access only, not path-tool read/write. If omitted, project protectedPaths also apply to bash path extraction. If provided for legacy profiles, keep write-sensitive paths in protectedPaths or readOnlyPaths as well.",
61
+ "items": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ }
65
+ },
66
+ "readOnlyPaths": {
67
+ "type": "array",
68
+ "description": "Paths that may be inspected with read/grep/find/ls but must not be modified; shell access is blocked automatically for these paths.",
69
+ "items": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ }
73
+ },
74
+ "requiredContext": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string",
78
+ "minLength": 1
79
+ }
80
+ },
81
+ "taskModes": {
82
+ "type": "object"
83
+ },
84
+ "verifyCommands": {
85
+ "type": "object",
86
+ "minProperties": 1,
87
+ "additionalProperties": {
88
+ "type": "array",
89
+ "items": {
90
+ "type": "string",
91
+ "minLength": 1
92
+ },
93
+ "minItems": 1
94
+ }
95
+ },
96
+ "mcpCapabilities": {
97
+ "type": "array",
98
+ "uniqueItems": true,
99
+ "items": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ }
103
+ },
104
+ "capabilityPacks": {
105
+ "type": "array",
106
+ "uniqueItems": true,
107
+ "items": {
108
+ "type": "object",
109
+ "additionalProperties": false,
110
+ "required": [
111
+ "name",
112
+ "version"
113
+ ],
114
+ "properties": {
115
+ "name": {
116
+ "type": "string",
117
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
118
+ },
119
+ "version": {
120
+ "type": "string",
121
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$"
122
+ }
123
+ }
124
+ }
125
+ },
126
+ "capabilitySources": {
127
+ "description": "Directories outside the platform that provide capability packs. Each source declares exactly one of path (a directory inside this project) or source (an exact npm or git release vendored into .pi/capability-vendor). Declaring a source does not grant anything: its packs still have to pass capabilityPolicy.",
128
+ "type": "array",
129
+ "maxItems": 16,
130
+ "uniqueItems": true,
131
+ "items": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "required": [
135
+ "name"
136
+ ],
137
+ "oneOf": [
138
+ {
139
+ "required": [
140
+ "path"
141
+ ]
142
+ },
143
+ {
144
+ "required": [
145
+ "source"
146
+ ]
147
+ }
148
+ ],
149
+ "properties": {
150
+ "name": {
151
+ "type": "string",
152
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
153
+ },
154
+ "path": {
155
+ "type": "string",
156
+ "minLength": 1,
157
+ "maxLength": 512
158
+ },
159
+ "source": {
160
+ "type": "string",
161
+ "minLength": 1,
162
+ "maxLength": 512,
163
+ "pattern": "^(?:npm|git):"
164
+ }
165
+ }
166
+ }
167
+ },
168
+ "capabilityPolicy": {
169
+ "type": "object",
170
+ "additionalProperties": false,
171
+ "required": [
172
+ "allowedOwners",
173
+ "allowedLifecycles",
174
+ "allowedFilesystemRead",
175
+ "allowedFilesystemWrite",
176
+ "allowedNetworkDomains",
177
+ "allowedExternalActions"
178
+ ],
179
+ "properties": {
180
+ "allowedOwners": {
181
+ "type": "array",
182
+ "uniqueItems": true,
183
+ "items": {
184
+ "type": "string",
185
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
186
+ }
187
+ },
188
+ "allowedLifecycles": {
189
+ "type": "array",
190
+ "uniqueItems": true,
191
+ "items": {
192
+ "enum": [
193
+ "experimental",
194
+ "stable",
195
+ "deprecated"
196
+ ]
197
+ }
198
+ },
199
+ "allowedFilesystemRead": {
200
+ "type": "array",
201
+ "maxItems": 128,
202
+ "uniqueItems": true,
203
+ "items": {
204
+ "type": "string",
205
+ "minLength": 1,
206
+ "maxLength": 256
207
+ }
208
+ },
209
+ "allowedFilesystemWrite": {
210
+ "type": "array",
211
+ "maxItems": 128,
212
+ "uniqueItems": true,
213
+ "items": {
214
+ "type": "string",
215
+ "minLength": 1,
216
+ "maxLength": 256
217
+ }
218
+ },
219
+ "allowedNetworkDomains": {
220
+ "type": "array",
221
+ "uniqueItems": true,
222
+ "items": {
223
+ "type": "string",
224
+ "pattern": "^(?:\\*\\.)?[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$"
225
+ }
226
+ },
227
+ "allowedExternalActions": {
228
+ "type": "array",
229
+ "uniqueItems": true,
230
+ "items": {
231
+ "enum": [
232
+ "git-push",
233
+ "github-pull-request",
234
+ "github-issue",
235
+ "release",
236
+ "publish",
237
+ "deploy",
238
+ "database-change",
239
+ "external-provider-write"
240
+ ]
241
+ }
242
+ }
243
+ }
244
+ },
245
+ "memory": {
246
+ "type": "object",
247
+ "properties": {
248
+ "enabled": {
249
+ "type": "boolean"
250
+ },
251
+ "mode": {
252
+ "enum": [
253
+ "off",
254
+ "manual",
255
+ "assisted",
256
+ "external-package"
257
+ ]
258
+ },
259
+ "scope": {
260
+ "enum": [
261
+ "project",
262
+ "global",
263
+ "hybrid"
264
+ ]
265
+ },
266
+ "summaryFile": {
267
+ "type": "string",
268
+ "minLength": 1
269
+ },
270
+ "handbookFile": {
271
+ "type": "string",
272
+ "minLength": 1
273
+ },
274
+ "localDir": {
275
+ "type": "string",
276
+ "minLength": 1
277
+ },
278
+ "readBeforeTask": {
279
+ "type": "boolean"
280
+ },
281
+ "writePolicy": {
282
+ "enum": [
283
+ "explicit-only",
284
+ "task-trace",
285
+ "session-summary"
286
+ ]
287
+ },
288
+ "maxInjectedChars": {
289
+ "type": "integer",
290
+ "minimum": 0
291
+ },
292
+ "externalPackages": {
293
+ "type": "array",
294
+ "items": {
295
+ "type": "string",
296
+ "minLength": 1
297
+ }
298
+ }
299
+ },
300
+ "additionalProperties": false
301
+ },
302
+ "contextIndex": {
303
+ "type": "object",
304
+ "description": "Compact advisory project context index. This is not a security boundary or source of truth; it helps agents navigate profile/project/tech/task context with citations.",
305
+ "properties": {
306
+ "enabled": {
307
+ "type": "boolean"
308
+ },
309
+ "path": {
310
+ "type": "string",
311
+ "minLength": 1
312
+ },
313
+ "writePolicy": {
314
+ "enum": [
315
+ "onboarding-record",
316
+ "approved-workflow",
317
+ "off"
318
+ ]
319
+ },
320
+ "requireCitations": {
321
+ "type": "boolean"
322
+ },
323
+ "maxNodes": {
324
+ "type": "integer",
325
+ "minimum": 1,
326
+ "maximum": 500
327
+ },
328
+ "maxEdges": {
329
+ "type": "integer",
330
+ "minimum": 0,
331
+ "maximum": 1000
332
+ },
333
+ "includeTechStack": {
334
+ "type": "boolean"
335
+ },
336
+ "includeMemoryPointers": {
337
+ "type": "boolean"
338
+ }
339
+ },
340
+ "additionalProperties": false
341
+ },
342
+ "orchestration": {
343
+ "type": "object",
344
+ "description": "Solo-first orchestration policy for subagent usage, review lenses, model-role guidance, and Field Guide memory.",
345
+ "properties": {
346
+ "defaultMode": {
347
+ "enum": [
348
+ "solo-first",
349
+ "bounded-subagents",
350
+ "parallel-readonly"
351
+ ]
352
+ },
353
+ "maxConcurrentSubagents": {
354
+ "type": "integer",
355
+ "minimum": 0,
356
+ "maximum": 6
357
+ },
358
+ "defaultReviewLenses": {
359
+ "type": "array",
360
+ "uniqueItems": true,
361
+ "items": {
362
+ "enum": [
363
+ "correctness",
364
+ "tests",
365
+ "scope",
366
+ "security",
367
+ "docs",
368
+ "release",
369
+ "package"
370
+ ]
371
+ }
372
+ },
373
+ "roleModelGuidance": {
374
+ "type": "object",
375
+ "properties": {
376
+ "planner": {
377
+ "type": "string",
378
+ "minLength": 1
379
+ },
380
+ "worker": {
381
+ "type": "string",
382
+ "minLength": 1
383
+ },
384
+ "reviewer": {
385
+ "type": "string",
386
+ "minLength": 1
387
+ },
388
+ "watchdog": {
389
+ "type": "string",
390
+ "minLength": 1
391
+ }
392
+ },
393
+ "additionalProperties": false
394
+ },
395
+ "fieldGuide": {
396
+ "type": "object",
397
+ "properties": {
398
+ "enabled": {
399
+ "type": "boolean"
400
+ },
401
+ "path": {
402
+ "type": "string",
403
+ "minLength": 1
404
+ },
405
+ "maxLines": {
406
+ "type": "integer",
407
+ "minimum": 0,
408
+ "maximum": 200
409
+ },
410
+ "writePolicy": {
411
+ "enum": [
412
+ "explicit-only",
413
+ "approved-workflow"
414
+ ]
415
+ },
416
+ "readBeforeTask": {
417
+ "type": "boolean"
418
+ }
419
+ },
420
+ "additionalProperties": false
421
+ }
422
+ },
423
+ "additionalProperties": false
424
+ },
425
+ "techStack": {
426
+ "type": "object",
427
+ "description": "Selected project tech stack, stored as a Context7-ready manifest and concise per-tech snapshots.",
428
+ "properties": {
429
+ "provider": {
430
+ "enum": [
431
+ "context7"
432
+ ]
433
+ },
434
+ "manifest": {
435
+ "type": "string",
436
+ "minLength": 1
437
+ },
438
+ "contextDir": {
439
+ "type": "string",
440
+ "minLength": 1
441
+ },
442
+ "updatedAt": {
443
+ "type": "string",
444
+ "minLength": 1
445
+ },
446
+ "roles": {
447
+ "type": "object",
448
+ "properties": {
449
+ "frontend": {
450
+ "type": "array",
451
+ "items": {
452
+ "type": "string",
453
+ "minLength": 1
454
+ },
455
+ "uniqueItems": true
456
+ },
457
+ "backend": {
458
+ "type": "array",
459
+ "items": {
460
+ "type": "string",
461
+ "minLength": 1
462
+ },
463
+ "uniqueItems": true
464
+ },
465
+ "database": {
466
+ "type": "array",
467
+ "items": {
468
+ "type": "string",
469
+ "minLength": 1
470
+ },
471
+ "uniqueItems": true
472
+ },
473
+ "mobile": {
474
+ "type": "array",
475
+ "items": {
476
+ "type": "string",
477
+ "minLength": 1
478
+ },
479
+ "uniqueItems": true
480
+ },
481
+ "devops": {
482
+ "type": "array",
483
+ "items": {
484
+ "type": "string",
485
+ "minLength": 1
486
+ },
487
+ "uniqueItems": true
488
+ },
489
+ "data": {
490
+ "type": "array",
491
+ "items": {
492
+ "type": "string",
493
+ "minLength": 1
494
+ },
495
+ "uniqueItems": true
496
+ },
497
+ "docs": {
498
+ "type": "array",
499
+ "items": {
500
+ "type": "string",
501
+ "minLength": 1
502
+ },
503
+ "uniqueItems": true
504
+ },
505
+ "runtime": {
506
+ "type": "array",
507
+ "items": {
508
+ "type": "string",
509
+ "minLength": 1
510
+ },
511
+ "uniqueItems": true
512
+ }
513
+ },
514
+ "additionalProperties": false
515
+ }
516
+ },
517
+ "additionalProperties": false
518
+ },
519
+ "runtimePolicy": {
520
+ "type": "object",
521
+ "properties": {
522
+ "execPolicy": {
523
+ "enum": [
524
+ "off",
525
+ "advisory",
526
+ "enforce"
527
+ ]
528
+ },
529
+ "contextBudget": {
530
+ "enum": [
531
+ "off",
532
+ "advisory",
533
+ "enforce"
534
+ ]
535
+ },
536
+ "toolRegistry": {
537
+ "enum": [
538
+ "off",
539
+ "advisory",
540
+ "enforce"
541
+ ]
542
+ },
543
+ "finalGate": {
544
+ "enum": [
545
+ "off",
546
+ "advisory",
547
+ "enforce"
548
+ ]
549
+ }
550
+ },
551
+ "additionalProperties": false
552
+ }
553
+ },
554
+ "additionalProperties": true
555
+ }