@aiwg/cli 2026.10.3 → 2026.10.5
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/README.md +2 -2
- package/agentic/code/providers/model-capabilities.v1.json +96 -4
- package/bin/aiwg.mjs +50 -27
- package/dist/src/agents/grounding/knowledge-base.js +54 -6
- package/dist/src/artifacts/browser-export.js +6 -0
- package/dist/src/artifacts/checksum-manifest.js +1 -0
- package/dist/src/artifacts/citation-parser.js +173 -92
- package/dist/src/artifacts/citation-table-schema.js +59 -0
- package/dist/src/artifacts/cli.js +69 -18
- package/dist/src/artifacts/corpus-tools/snapshot.js +1 -1
- package/dist/src/artifacts/corpus-tools/vision-extract.js +2 -0
- package/dist/src/artifacts/corpus-views/ref-parser.js +3 -1
- package/dist/src/artifacts/corpus-views/renderers.js +3 -3
- package/dist/src/artifacts/discovery-eval.js +6 -4
- package/dist/src/artifacts/fortemi-core-query-adapter.js +36 -3
- package/dist/src/artifacts/fortemi-core-sync.js +166 -40
- package/dist/src/artifacts/framework-capabilities.js +171 -0
- package/dist/src/artifacts/framework-index-paths.js +73 -0
- package/dist/src/artifacts/framework-source-digest.js +75 -0
- package/dist/src/artifacts/index-builder.js +286 -131
- package/dist/src/artifacts/index-files.js +132 -18
- package/dist/src/artifacts/index-preparation.js +130 -0
- package/dist/src/artifacts/index-refresh.js +591 -0
- package/dist/src/artifacts/index-worker.mjs +11 -0
- package/dist/src/artifacts/prebuilt-build-lock.js +47 -4
- package/dist/src/artifacts/prebuilt-deployment.js +46 -0
- package/dist/src/artifacts/prebuilt-relations.js +80 -0
- package/dist/src/artifacts/query-engine.js +410 -88
- package/dist/src/artifacts/relations-builder.js +168 -0
- package/dist/src/artifacts/relations.js +148 -0
- package/dist/src/artifacts/stats.js +5 -2
- package/dist/src/artifacts/types.js +30 -10
- package/dist/src/artifacts/watcher.js +1 -1
- package/dist/src/auth/credential-store.js +2 -1
- package/dist/src/catalog/cli.d.mts +5 -0
- package/dist/src/channel/manager.d.mts +20 -0
- package/dist/src/channel/manager.mjs +19 -2
- package/dist/src/cli/command-log.js +2 -3
- package/dist/src/cli/handlers/artifacts.js +3 -0
- package/dist/src/cli/handlers/auth.js +3 -0
- package/dist/src/cli/handlers/decision.js +19 -12
- package/dist/src/cli/handlers/diagnose.js +4 -3
- package/dist/src/cli/handlers/effect.js +4 -2
- package/dist/src/cli/handlers/evidence.js +3 -0
- package/dist/src/cli/handlers/help.js +1 -0
- package/dist/src/cli/handlers/index.js +3 -1
- package/dist/src/cli/handlers/init.js +4 -1
- package/dist/src/cli/handlers/lint.js +5 -0
- package/dist/src/cli/handlers/models.js +104 -8
- package/dist/src/cli/handlers/ralph-launcher.js +2 -0
- package/dist/src/cli/handlers/refresh.js +12 -0
- package/dist/src/cli/handlers/resource-versions.js +3 -0
- package/dist/src/cli/handlers/rules.js +195 -0
- package/dist/src/cli/handlers/run.js +4 -0
- package/dist/src/cli/handlers/runtime-info.js +1 -2
- package/dist/src/cli/handlers/script-runner.js +3 -2
- package/dist/src/cli/handlers/session.js +19 -9
- package/dist/src/cli/handlers/sessions.js +137 -43
- package/dist/src/cli/handlers/setup-manifest.js +39 -44
- package/dist/src/cli/handlers/setup.js +41 -0
- package/dist/src/cli/handlers/steward.js +11 -0
- package/dist/src/cli/handlers/subcommands.js +57 -2
- package/dist/src/cli/handlers/uhp.js +3 -0
- package/dist/src/cli/handlers/use.js +294 -55
- package/dist/src/cli/handlers/utilities.js +26 -10
- package/dist/src/cli/handlers/version.js +8 -0
- package/dist/src/cli/router.js +15 -1
- package/dist/src/cli/services/deployment-verification.js +19 -9
- package/dist/src/cli/services/provider-prepare-coordinator.js +24 -0
- package/dist/src/cli/skill-usage.js +2 -3
- package/dist/src/config/aiwg-config.js +87 -37
- package/dist/src/config/cli.js +111 -5
- package/dist/src/config/decision-config.js +106 -0
- package/dist/src/config/dispatch-thresholds-runtime.d.mts +8 -0
- package/dist/src/config/gitignore.js +50 -0
- package/dist/src/config/index-graph-overrides.js +36 -0
- package/dist/src/config/project-artifacts-health.d.mts +37 -0
- package/dist/src/config/project-artifacts-runtime.d.mts +16 -0
- package/dist/src/config/user-config-dir.d.mts +9 -0
- package/dist/src/config/user-config.js +2 -1
- package/dist/src/config/user-registry.js +23 -15
- package/dist/src/config/user-state.js +7 -0
- package/dist/src/decision/ask.js +203 -43
- package/dist/src/decision/context-live-qualification.js +2 -2
- package/dist/src/decision/driver.js +13 -8
- package/dist/src/decision/ensemble/aggregate.js +23 -10
- package/dist/src/decision/ensemble-study/multifact-study.js +6 -2
- package/dist/src/decision/entry.js +2 -15
- package/dist/src/decision/graph-live-qualification.js +1 -1
- package/dist/src/decision/graph-run.js +9 -0
- package/dist/src/decision/heldout/collector.js +5 -13
- package/dist/src/decision/heldout/contract.js +30 -7
- package/dist/src/decision/jev-credentials.js +15 -1
- package/dist/src/decision/ledger.js +131 -28
- package/dist/src/decision/offload-activation.js +137 -0
- package/dist/src/decision/offload.js +550 -0
- package/dist/src/decision/qualification/load.js +4 -6
- package/dist/src/decision/savings.js +28 -0
- package/dist/src/effects/types.js +5 -1
- package/dist/src/effects/verifiers/git.js +2 -1
- package/dist/src/effects/verifiers/tracker.js +26 -14
- package/dist/src/extensions/commands/definitions.js +19 -0
- package/dist/src/extensions/project-local-remove.js +36 -1
- package/dist/src/gates/providers/loader.js +61 -17
- package/dist/src/installation/manager-command.d.mts +18 -0
- package/dist/src/installation/manager-command.mjs +14 -2
- package/dist/src/installation/manager.d.mts +49 -0
- package/dist/src/installation/manager.mjs +78 -3
- package/dist/src/issues/cli.js +4 -4
- package/dist/src/issues/local.js +24 -5
- package/dist/src/jobs/runner.js +1 -1
- package/dist/src/lint/cli.js +27 -1
- package/dist/src/lint/loader.js +2 -1
- package/dist/src/lint/reporters.js +25 -1
- package/dist/src/lint/rule-activation.js +43 -0
- package/dist/src/lint/runner.js +137 -62
- package/dist/src/mcp/adapters/codex-runtime.js +7 -1
- package/dist/src/mcp/claude-install.d.mts +4 -0
- package/dist/src/mcp/claude-install.mjs +41 -0
- package/dist/src/mcp/cli.d.mts +1 -0
- package/dist/src/mcp/cli.mjs +36 -11
- package/dist/src/mcp/config-file.d.mts +28 -0
- package/dist/src/mcp/config-layers.d.mts +36 -0
- package/dist/src/mcp/credentials.d.mts +51 -0
- package/dist/src/mcp/grok-build-config.d.mts +6 -0
- package/dist/src/mcp/grok-build-config.mjs +1 -1
- package/dist/src/mcp/helpers.mjs +3 -2
- package/dist/src/mcp/muse-native-config.d.mts +13 -0
- package/dist/src/mcp/muse-native-config.mjs +1 -0
- package/dist/src/mcp/omp-config.d.mts +4 -0
- package/dist/src/mcp/registry.js +3 -93
- package/dist/src/mcp/registry.mjs +3 -87
- package/dist/src/mcp/server-config.d.mts +3 -0
- package/dist/src/mcp/server-config.mjs +89 -0
- package/dist/src/mcp/server.mjs +37 -375
- package/dist/src/mcp/test-simple.mjs +2 -1
- package/dist/src/mcp/toml-editor.d.mts +4 -0
- package/dist/src/mcp/toml-string.d.mts +1 -0
- package/dist/src/mcp/toml-strip-mcp.d.mts +1 -0
- package/dist/src/mcp/tool-filters.d.mts +46 -0
- package/dist/src/mcp/tools/decision.mjs +12 -11
- package/dist/src/mcp/tools/discovery.mjs +62 -55
- package/dist/src/mcp/tools/orchestration.mjs +12 -2
- package/dist/src/mcp/tools/worker-invoke.mjs +1340 -23
- package/dist/src/mcp/tools/worker-shell-control.mjs +52 -21
- package/dist/src/mcp/tools/worker-stdin-runtime.mjs +3 -3
- package/dist/src/mission-protocol/codecs.js +8 -0
- package/dist/src/models/config-loader.js +7 -2
- package/dist/src/models/model-capabilities.v1.json +96 -4
- package/dist/src/models/model-discovery.js +76 -11
- package/dist/src/models/provider-policy.js +101 -7
- package/dist/src/models/qualification-digest.d.mts +2 -0
- package/dist/src/models/resolver.js +12 -10
- package/dist/src/models/worker-direct-readiness.js +65 -44
- package/dist/src/models/worker-dispatch-offer.js +3 -3
- package/dist/src/models/worker-health-readiness.js +16 -3
- package/dist/src/models/worker-installation.d.mts +39 -0
- package/dist/src/models/worker-installation.mjs +135 -28
- package/dist/src/process/bounded-child-process.d.mts +84 -0
- package/dist/src/process/bounded-child-process.mjs +43 -0
- package/dist/src/process/cli-command.d.mts +16 -0
- package/dist/src/process/signal-child.d.mts +6 -0
- package/dist/src/process/signal-child.mjs +7 -0
- package/dist/src/providers/deployed-skill-roots.js +20 -0
- package/dist/src/providers/grok-build-acp.js +3 -2
- package/dist/src/providers/grok-build-headless.js +12 -4
- package/dist/src/providers/grok-build-inspect.js +1 -0
- package/dist/src/providers/omp-agent.d.mts +8 -0
- package/dist/src/providers/omp-diagnostics.d.mts +1 -0
- package/dist/src/providers/omp-paths.d.mts +13 -0
- package/dist/src/providers/skill-ownership.d.mts +9 -0
- package/dist/src/providers/skill-ownership.mjs +88 -0
- package/dist/src/rules/activation.d.mts +21 -0
- package/dist/src/rules/activation.mjs +62 -0
- package/dist/src/rules/inline-budget.d.mts +26 -0
- package/dist/src/rules/inline-budget.mjs +66 -0
- package/dist/src/rules/inventory.js +129 -0
- package/dist/src/rules/pin-state.js +73 -0
- package/dist/src/rules/pins.d.mts +14 -0
- package/dist/src/rules/pins.mjs +112 -0
- package/dist/src/rules/rule-frontmatter.schema.json +197 -0
- package/dist/src/serve/mission-conductor.js +38 -12
- package/dist/src/serve/worker-invocation.js +30 -10
- package/dist/src/serve/worker-stdin-frame.d.mts +10 -0
- package/dist/src/sessions/adapter-registry.js +23 -19
- package/dist/src/sessions/adapters/claude.js +39 -54
- package/dist/src/sessions/adapters/codex.js +95 -67
- package/dist/src/sessions/adapters/copilot.js +4 -4
- package/dist/src/sessions/adapters/cursor.js +40 -57
- package/dist/src/sessions/adapters/deepseek-harness.js +15 -12
- package/dist/src/sessions/adapters/factory.js +31 -27
- package/dist/src/sessions/adapters/generic.js +10 -10
- package/dist/src/sessions/adapters/grok-build.js +11 -11
- package/dist/src/sessions/adapters/grokbot.js +24 -13
- package/dist/src/sessions/adapters/hermes.js +27 -29
- package/dist/src/sessions/adapters/muse-workspace-scan.js +31 -11
- package/dist/src/sessions/adapters/muse.js +150 -93
- package/dist/src/sessions/adapters/omp.js +28 -14
- package/dist/src/sessions/adapters/openclaw.js +89 -79
- package/dist/src/sessions/adapters/opencode.js +27 -24
- package/dist/src/sessions/adapters/openhuman.js +18 -60
- package/dist/src/sessions/adapters/pi.js +29 -14
- package/dist/src/sessions/adapters/warp.js +3 -3
- package/dist/src/sessions/adapters/windsurf.js +19 -48
- package/dist/src/sessions/batch-contracts.js +16 -8
- package/dist/src/sessions/batch-import.js +252 -12
- package/dist/src/sessions/contracts.js +50 -3
- package/dist/src/sessions/coverage-preflight.js +27 -2
- package/dist/src/sessions/export-plan.js +4 -3
- package/dist/src/sessions/import-exclusions.js +72 -0
- package/dist/src/sessions/import-lease.js +34 -18
- package/dist/src/sessions/import-limits.js +37 -0
- package/dist/src/sessions/importer.js +60 -38
- package/dist/src/sessions/lifecycle.js +45 -0
- package/dist/src/sessions/policy.js +145 -26
- package/dist/src/sessions/readers.js +106 -53
- package/dist/src/sessions/refresh.js +105 -0
- package/dist/src/sessions/repository.js +151 -54
- package/dist/src/sessions/workspace-discovery.js +292 -60
- package/dist/src/sessions/workspace-matching.js +107 -0
- package/dist/src/skills/importer.js +1 -0
- package/dist/src/smiths/context-pipeline/aiwg-md.js +11 -0
- package/dist/src/smiths/context-pipeline/claude-hook.js +3 -26
- package/dist/src/smiths/context-pipeline/finalization.js +6 -5
- package/dist/src/smiths/context-pipeline/generator.js +21 -4
- package/dist/src/smiths/context-pipeline/parallelism-section.js +7 -15
- package/dist/src/smiths/mcpsmith/generator.js +1 -1
- package/dist/src/smiths/toolsmith/runtime-discovery.d.mts +10 -0
- package/dist/src/smiths/toolsmith/runtime-discovery.mjs +76 -18
- package/dist/src/storage/backends/fs.js +18 -76
- package/dist/src/storage/backends/obsidian.js +1 -0
- package/dist/src/tracker/forge-http.js +2 -1
- package/dist/src/update/checker.d.mts +2 -0
- package/dist/src/update/service.d.mts +22 -0
- package/dist/src/utils/contained-filesystem.d.mts +37 -0
- package/dist/src/utils/contained-filesystem.mjs +683 -0
- package/dist/src/utils/temporary-directory.js +36 -0
- package/dist/src/writing/example-generator.js +1 -1
- package/package.json +15 -2
- package/schemas/models/model-catalog.v1.schema.json +1 -1
- package/schemas/models/provider-model-capabilities.v1.schema.json +6 -0
- package/tools/_resolve-impl.mjs +13 -15
- package/tools/agents/deploy-agents.mjs +49 -21
- package/tools/agents/providers/base.mjs +104 -134
- package/tools/agents/providers/claude.mjs +8 -24
- package/tools/agents/providers/codex.mjs +18 -11
- package/tools/agents/providers/cursor.mjs +19 -18
- package/tools/agents/providers/grok-build.mjs +3 -1
- package/tools/agents/providers/hermes.mjs +57 -47
- package/tools/agents/providers/openclaw.mjs +9 -4
- package/tools/agents/providers/pi.mjs +5 -0
- package/tools/agents/providers/provider-prepare-channel.mjs +5 -0
- package/tools/agents/providers/provider-prepare-coordinator.mjs +247 -0
- package/tools/agents/providers/provider-prepare-worker.mjs +84 -0
- package/tools/agents/providers/rule-delivery.mjs +1270 -0
- package/tools/agents/providers/warp.mjs +20 -26
- package/tools/cli/decision-offload-report.mjs +40 -0
- package/tools/cli/workspace-status.mjs +862 -0
- package/tools/plugin/package-plugins.mjs +186 -8
- package/tools/plugin/plugin-links.mjs +114 -0
- package/tools/providers/antigravity-transport.mjs +3 -1
- package/tools/providers/deepseek-harness-transport.mjs +6 -4
- package/tools/providers/omp-transport.mjs +4 -2
- package/tools/ralph-external/lib/consecutive-failure-circuit-breaker.mjs +1748 -0
- package/tools/ralph-external/lib/launcher-recovery-evidence.mjs +55 -0
- package/tools/ralph-external/lib/omp-adapter.mjs +1 -1
- package/tools/ralph-external/lib/pi-adapter.mjs +0 -4
- package/tools/ralph-external/lib/provider-adapter.mjs +59 -1
- package/tools/ralph-external/lib/recovery-probe.mjs +72 -0
- package/tools/ralph-external/lib/session-environment.mjs +28 -0
- package/tools/ralph-external/lib/systemd-client.mjs +49 -0
- package/tools/ralph-external/lib/worker-health.mjs +1 -1
- package/tools/ralph-external/lib/worker-isolation.mjs +717 -0
- package/tools/ralph-external/lib/worker-overflow.mjs +50 -0
- package/tools/ralph-external/process-monitor.mjs +1017 -0
- package/tools/ralph-external/session-launcher.mjs +5057 -0
- package/tools/scripts/resource-preflight.mjs +541 -0
- package/tools/skills/deploy-skills-codex.mjs +2 -1
- package/vscode-extension/schemas/aiwg.config.v1.json +1194 -231
|
@@ -6,6 +6,84 @@
|
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"properties": {
|
|
9
|
+
"decision": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"enabled": { "type": "boolean", "default": false, "description": "Enable the decision runtime. AIWG_DECISION_ENABLED overrides project config, then user config." },
|
|
13
|
+
"ask": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"passes": { "type": "integer", "minimum": 1, "maximum": 9007199254740991, "default": 5 },
|
|
17
|
+
"escalation_passes": { "type": "integer", "minimum": 1, "maximum": 9007199254740991, "description": "Total passes after a problematic first round; must be >= passes (validated by the loader). Defaults to twice passes (10 for the default of 5)." },
|
|
18
|
+
"min_agreement": { "type": "number", "minimum": 0, "maximum": 1, "description": "Opt in to agreement acceptance after at least passes successful samples. Omit to retain confidence-only acceptance." },
|
|
19
|
+
"agreement_confidence_floor": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.55, "description": "Minimum mean confidence for agreement acceptance; has no effect unless min_agreement is set." },
|
|
20
|
+
"cost": {
|
|
21
|
+
"type": "object", "additionalProperties": false,
|
|
22
|
+
"properties": {
|
|
23
|
+
"llm_per_mtok": { "type": "number", "minimum": 0, "maximum": 1000000, "default": 15, "description": "Planning USD per million frontier tokens, blended input/output rate." },
|
|
24
|
+
"jev_per_mtok": { "type": "number", "minimum": 0, "maximum": 1000000, "default": 0.2, "description": "Planning USD per million Jev tokens, blended input/output rate." }
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"savings": {
|
|
28
|
+
"type": "object", "additionalProperties": false,
|
|
29
|
+
"properties": {
|
|
30
|
+
"caller_model_class": { "type": "string", "enum": ["standard", "reasoning"], "default": "reasoning" },
|
|
31
|
+
"reasoning_tokens": { "type": "integer", "minimum": 0, "maximum": 1000000, "description": "Override reasoning allowance: standard defaults to 256, reasoning to 1024." },
|
|
32
|
+
"output_tokens": { "type": "integer", "minimum": 0, "maximum": 1000000, "default": 128 }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"sessions": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"codex_roots": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"minLength": 1
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"discovery_manifests": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"import": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"properties": {
|
|
59
|
+
"exclude": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"default": [],
|
|
62
|
+
"items": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"minLength": 1,
|
|
65
|
+
"pattern": "^(?:/.*|~(?:/.*)?|[^\\s/*?\\\\~][^/*?\\\\~]*)$"
|
|
66
|
+
},
|
|
67
|
+
"description": "Native session IDs or absolute path globs (*, **, ?); ~ expands to home. AIWG_SESSIONS_IMPORT_EXCLUDE and repeatable --exclude add entries. Excluded sources are skipped before reading."
|
|
68
|
+
},
|
|
69
|
+
"max_record_bytes": {
|
|
70
|
+
"type": "integer",
|
|
71
|
+
"minimum": 1,
|
|
72
|
+
"maximum": 9007199254740991,
|
|
73
|
+
"default": 67108864,
|
|
74
|
+
"description": "Maximum bytes per imported record (default 64 MiB). Overridden by AIWG_SESSIONS_IMPORT_MAX_RECORD_BYTES, then --max-record-bytes."
|
|
75
|
+
},
|
|
76
|
+
"max_source_bytes": {
|
|
77
|
+
"type": "integer",
|
|
78
|
+
"minimum": 0,
|
|
79
|
+
"maximum": 9007199254740991,
|
|
80
|
+
"default": 1073741824,
|
|
81
|
+
"description": "Maximum bytes per imported source (default 1 GiB); 0 means unlimited and streamed. Overridden by AIWG_SESSIONS_IMPORT_MAX_SOURCE_BYTES, then --max-source-bytes."
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
9
87
|
"$schema": {
|
|
10
88
|
"type": "string",
|
|
11
89
|
"description": "JSON Schema reference"
|
|
@@ -13,31 +91,56 @@
|
|
|
13
91
|
"version": {
|
|
14
92
|
"type": "string",
|
|
15
93
|
"description": "AIWG config format version",
|
|
16
|
-
"examples": [
|
|
94
|
+
"examples": [
|
|
95
|
+
"1"
|
|
96
|
+
]
|
|
17
97
|
},
|
|
18
98
|
"project": {
|
|
19
99
|
"description": "Project identity and data classification. A bare string is the project name; the object form adds classification and handling policy.",
|
|
20
100
|
"oneOf": [
|
|
21
|
-
{
|
|
101
|
+
{
|
|
102
|
+
"type": "string",
|
|
103
|
+
"description": "Project name"
|
|
104
|
+
},
|
|
22
105
|
{
|
|
23
106
|
"type": "object",
|
|
24
107
|
"additionalProperties": false,
|
|
25
108
|
"properties": {
|
|
26
|
-
"name": {
|
|
27
|
-
|
|
109
|
+
"name": {
|
|
110
|
+
"type": "string"
|
|
111
|
+
},
|
|
112
|
+
"description": {
|
|
113
|
+
"type": "string"
|
|
114
|
+
},
|
|
28
115
|
"classification": {
|
|
29
116
|
"type": "string",
|
|
30
|
-
"enum": [
|
|
117
|
+
"enum": [
|
|
118
|
+
"private",
|
|
119
|
+
"sanitized",
|
|
120
|
+
"public"
|
|
121
|
+
],
|
|
31
122
|
"description": "What the repository holds. 'private' defaults every handling flag to false."
|
|
32
123
|
},
|
|
33
|
-
"pii": {
|
|
124
|
+
"pii": {
|
|
125
|
+
"type": "boolean",
|
|
126
|
+
"description": "Repository holds personally identifiable information"
|
|
127
|
+
},
|
|
34
128
|
"handling": {
|
|
35
129
|
"type": "object",
|
|
36
130
|
"additionalProperties": false,
|
|
37
131
|
"properties": {
|
|
38
|
-
"excerptable": {
|
|
39
|
-
|
|
40
|
-
|
|
132
|
+
"excerptable": {
|
|
133
|
+
"type": "boolean",
|
|
134
|
+
"description": "May content be quoted outside the repo?"
|
|
135
|
+
},
|
|
136
|
+
"publishable": {
|
|
137
|
+
"type": "boolean",
|
|
138
|
+
"description": "May content be published?"
|
|
139
|
+
},
|
|
140
|
+
"mirror": {
|
|
141
|
+
"type": "boolean",
|
|
142
|
+
"description": "May the repo be mirrored to a secondary remote?"
|
|
143
|
+
}
|
|
41
144
|
}
|
|
42
145
|
}
|
|
43
146
|
}
|
|
@@ -100,25 +203,44 @@
|
|
|
100
203
|
"properties": {
|
|
101
204
|
"canonical": {
|
|
102
205
|
"type": "string",
|
|
103
|
-
"enum": [
|
|
206
|
+
"enum": [
|
|
207
|
+
"aiwg"
|
|
208
|
+
],
|
|
104
209
|
"default": "aiwg",
|
|
105
210
|
"description": "Durable source of truth. Presentation destinations never replace this artifact."
|
|
106
211
|
},
|
|
107
212
|
"provider_native": {
|
|
108
213
|
"type": "string",
|
|
109
|
-
"enum": [
|
|
214
|
+
"enum": [
|
|
215
|
+
"disabled",
|
|
216
|
+
"explicit-only",
|
|
217
|
+
"project-default"
|
|
218
|
+
],
|
|
110
219
|
"default": "explicit-only",
|
|
111
220
|
"description": "Whether provider-native destinations are disabled, require an explicit task request, or may be selected by a declared project default."
|
|
112
221
|
},
|
|
113
222
|
"destinations": {
|
|
114
223
|
"type": "object",
|
|
115
|
-
"propertyNames": {
|
|
224
|
+
"propertyNames": {
|
|
225
|
+
"pattern": "^[a-z0-9][a-z0-9.-]*$"
|
|
226
|
+
},
|
|
116
227
|
"additionalProperties": {
|
|
117
228
|
"type": "object",
|
|
118
229
|
"additionalProperties": false,
|
|
119
230
|
"properties": {
|
|
120
|
-
"enabled": {
|
|
121
|
-
|
|
231
|
+
"enabled": {
|
|
232
|
+
"type": "boolean",
|
|
233
|
+
"default": true
|
|
234
|
+
},
|
|
235
|
+
"use_when": {
|
|
236
|
+
"type": "string",
|
|
237
|
+
"enum": [
|
|
238
|
+
"disabled",
|
|
239
|
+
"user-requested",
|
|
240
|
+
"project-default"
|
|
241
|
+
],
|
|
242
|
+
"default": "user-requested"
|
|
243
|
+
}
|
|
122
244
|
}
|
|
123
245
|
}
|
|
124
246
|
}
|
|
@@ -129,50 +251,118 @@
|
|
|
129
251
|
"description": "Experimental Unified Harness Protocol client configuration. Credentials are references only and are resolved at request time.",
|
|
130
252
|
"additionalProperties": false,
|
|
131
253
|
"properties": {
|
|
132
|
-
"enabled": {
|
|
254
|
+
"enabled": {
|
|
255
|
+
"type": "boolean",
|
|
256
|
+
"default": false
|
|
257
|
+
},
|
|
133
258
|
"profiles": {
|
|
134
259
|
"type": "object",
|
|
135
|
-
"propertyNames": {
|
|
260
|
+
"propertyNames": {
|
|
261
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
262
|
+
},
|
|
136
263
|
"additionalProperties": {
|
|
137
264
|
"type": "object",
|
|
138
265
|
"additionalProperties": false,
|
|
139
|
-
"required": [
|
|
266
|
+
"required": [
|
|
267
|
+
"endpoint",
|
|
268
|
+
"version",
|
|
269
|
+
"credential",
|
|
270
|
+
"experimental"
|
|
271
|
+
],
|
|
140
272
|
"properties": {
|
|
141
|
-
"endpoint": {
|
|
142
|
-
|
|
273
|
+
"endpoint": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"format": "uri",
|
|
276
|
+
"pattern": "^https?://"
|
|
277
|
+
},
|
|
278
|
+
"version": {
|
|
279
|
+
"const": "2026-08-11"
|
|
280
|
+
},
|
|
143
281
|
"credential": {
|
|
144
282
|
"type": "object",
|
|
145
283
|
"additionalProperties": false,
|
|
146
|
-
"required": [
|
|
284
|
+
"required": [
|
|
285
|
+
"source",
|
|
286
|
+
"name"
|
|
287
|
+
],
|
|
147
288
|
"properties": {
|
|
148
|
-
"source": {
|
|
149
|
-
|
|
289
|
+
"source": {
|
|
290
|
+
"const": "env"
|
|
291
|
+
},
|
|
292
|
+
"name": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"pattern": "^[A-Z_][A-Z0-9_]*$"
|
|
295
|
+
}
|
|
150
296
|
}
|
|
151
297
|
},
|
|
152
|
-
"defaultHarness": {
|
|
153
|
-
|
|
154
|
-
|
|
298
|
+
"defaultHarness": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"pattern": "^chrn_[A-Za-z0-9_-]+$"
|
|
301
|
+
},
|
|
302
|
+
"defaultModel": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$"
|
|
305
|
+
},
|
|
306
|
+
"experimental": {
|
|
307
|
+
"const": true
|
|
308
|
+
},
|
|
155
309
|
"trust": {
|
|
156
310
|
"type": "object",
|
|
157
311
|
"additionalProperties": false,
|
|
158
312
|
"properties": {
|
|
159
|
-
"allowedHosts": {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
313
|
+
"allowedHosts": {
|
|
314
|
+
"type": "array",
|
|
315
|
+
"items": {
|
|
316
|
+
"type": "string"
|
|
317
|
+
},
|
|
318
|
+
"uniqueItems": true
|
|
319
|
+
},
|
|
320
|
+
"allowPrivateNetwork": {
|
|
321
|
+
"type": "boolean",
|
|
322
|
+
"default": false
|
|
323
|
+
},
|
|
324
|
+
"allowInsecureLoopback": {
|
|
325
|
+
"type": "boolean",
|
|
326
|
+
"default": false
|
|
327
|
+
},
|
|
328
|
+
"allowRedirects": {
|
|
329
|
+
"type": "boolean",
|
|
330
|
+
"default": false
|
|
331
|
+
}
|
|
163
332
|
}
|
|
164
333
|
},
|
|
165
334
|
"limits": {
|
|
166
335
|
"type": "object",
|
|
167
336
|
"additionalProperties": false,
|
|
168
337
|
"properties": {
|
|
169
|
-
"requestTimeoutMs": {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
"
|
|
174
|
-
|
|
175
|
-
|
|
338
|
+
"requestTimeoutMs": {
|
|
339
|
+
"type": "integer",
|
|
340
|
+
"minimum": 1
|
|
341
|
+
},
|
|
342
|
+
"inactivityTimeoutMs": {
|
|
343
|
+
"type": "integer",
|
|
344
|
+
"minimum": 1
|
|
345
|
+
},
|
|
346
|
+
"maxTaskSeconds": {
|
|
347
|
+
"type": "integer",
|
|
348
|
+
"minimum": 1
|
|
349
|
+
},
|
|
350
|
+
"maxUploadBytes": {
|
|
351
|
+
"type": "integer",
|
|
352
|
+
"minimum": 1
|
|
353
|
+
},
|
|
354
|
+
"maxArtifactBytes": {
|
|
355
|
+
"type": "integer",
|
|
356
|
+
"minimum": 1
|
|
357
|
+
},
|
|
358
|
+
"maxArtifactCount": {
|
|
359
|
+
"type": "integer",
|
|
360
|
+
"minimum": 1
|
|
361
|
+
},
|
|
362
|
+
"maxRetries": {
|
|
363
|
+
"type": "integer",
|
|
364
|
+
"minimum": 1
|
|
365
|
+
}
|
|
176
366
|
}
|
|
177
367
|
}
|
|
178
368
|
}
|
|
@@ -209,7 +399,7 @@
|
|
|
209
399
|
},
|
|
210
400
|
"remotes": {
|
|
211
401
|
"type": "object",
|
|
212
|
-
"description": "Repo origin topology
|
|
402
|
+
"description": "Repo origin topology \u2014 declares primary (CI/issues/PRs) and secondary remotes (#994)",
|
|
213
403
|
"additionalProperties": false,
|
|
214
404
|
"properties": {
|
|
215
405
|
"primary": {
|
|
@@ -222,7 +412,11 @@
|
|
|
222
412
|
},
|
|
223
413
|
"issue_provider": {
|
|
224
414
|
"type": "string",
|
|
225
|
-
"enum": [
|
|
415
|
+
"enum": [
|
|
416
|
+
"gitea",
|
|
417
|
+
"github",
|
|
418
|
+
"local"
|
|
419
|
+
],
|
|
226
420
|
"description": "Explicit issue-tracker provider for self-hosted or local trackers when the remote URL is ambiguous."
|
|
227
421
|
},
|
|
228
422
|
"ci": {
|
|
@@ -239,7 +433,11 @@
|
|
|
239
433
|
},
|
|
240
434
|
"customer_issue_provider": {
|
|
241
435
|
"type": "string",
|
|
242
|
-
"enum": [
|
|
436
|
+
"enum": [
|
|
437
|
+
"gitea",
|
|
438
|
+
"github",
|
|
439
|
+
"local"
|
|
440
|
+
],
|
|
243
441
|
"description": "Explicit provider hint for the customer-facing issue tracker."
|
|
244
442
|
},
|
|
245
443
|
"customer_tracker_actor": {
|
|
@@ -283,7 +481,11 @@
|
|
|
283
481
|
"description": "Map remote URLs, owner/repo slugs, remote names, or 'local' to collaborator, maintainer, or admin.",
|
|
284
482
|
"additionalProperties": {
|
|
285
483
|
"type": "string",
|
|
286
|
-
"enum": [
|
|
484
|
+
"enum": [
|
|
485
|
+
"collaborator",
|
|
486
|
+
"maintainer",
|
|
487
|
+
"admin"
|
|
488
|
+
]
|
|
287
489
|
},
|
|
288
490
|
"examples": [
|
|
289
491
|
{
|
|
@@ -297,12 +499,16 @@
|
|
|
297
499
|
},
|
|
298
500
|
"delivery": {
|
|
299
501
|
"type": "object",
|
|
300
|
-
"description": "Repo control / delivery policy
|
|
502
|
+
"description": "Repo control / delivery policy \u2014 how AIWG agents are expected to ship code (#995)",
|
|
301
503
|
"additionalProperties": false,
|
|
302
504
|
"properties": {
|
|
303
505
|
"mode": {
|
|
304
506
|
"type": "string",
|
|
305
|
-
"enum": [
|
|
507
|
+
"enum": [
|
|
508
|
+
"direct",
|
|
509
|
+
"feature-branch",
|
|
510
|
+
"pr-required"
|
|
511
|
+
],
|
|
306
512
|
"description": "How agents deliver code. direct = commit/push to default_branch; feature-branch = push branch, no PR; pr-required = branch + PR (default)"
|
|
307
513
|
},
|
|
308
514
|
"default_branch": {
|
|
@@ -325,7 +531,12 @@
|
|
|
325
531
|
},
|
|
326
532
|
"merge_style": {
|
|
327
533
|
"type": "string",
|
|
328
|
-
"enum": [
|
|
534
|
+
"enum": [
|
|
535
|
+
"rebase-merge",
|
|
536
|
+
"squash",
|
|
537
|
+
"merge",
|
|
538
|
+
"fast-forward-only"
|
|
539
|
+
],
|
|
329
540
|
"description": "Merge style. Defaults to 'rebase-merge'."
|
|
330
541
|
},
|
|
331
542
|
"delete_branch_on_merge": {
|
|
@@ -354,7 +565,11 @@
|
|
|
354
565
|
},
|
|
355
566
|
"force_push_policy": {
|
|
356
567
|
"type": "string",
|
|
357
|
-
"enum": [
|
|
568
|
+
"enum": [
|
|
569
|
+
"never",
|
|
570
|
+
"own-branch-only",
|
|
571
|
+
"allowed"
|
|
572
|
+
],
|
|
358
573
|
"description": "Force-push policy. Default 'never'."
|
|
359
574
|
},
|
|
360
575
|
"auto_close_issues": {
|
|
@@ -817,23 +1032,32 @@
|
|
|
817
1032
|
},
|
|
818
1033
|
"index": {
|
|
819
1034
|
"type": "object",
|
|
820
|
-
"description": "Artifact-index configuration
|
|
1035
|
+
"description": "Artifact-index configuration \u2014 graph definitions (#1491). Consolidated here from the legacy .aiwg/config.yaml per ADR adr-index-config-consolidation.",
|
|
821
1036
|
"additionalProperties": false,
|
|
822
1037
|
"properties": {
|
|
823
1038
|
"graphs": {
|
|
824
1039
|
"type": "object",
|
|
825
1040
|
"description": "Index graph definitions. Each key (except 'indices') is a JSON node/edge graph (IndexGraphDef); 'indices' holds the markdown-view manifest (IndexMarkdownIndices) rendered by corpus-index-build.",
|
|
826
1041
|
"properties": {
|
|
827
|
-
"indices": {
|
|
1042
|
+
"indices": {
|
|
1043
|
+
"$ref": "#/definitions/IndexMarkdownIndices"
|
|
1044
|
+
}
|
|
828
1045
|
},
|
|
829
|
-
"additionalProperties": {
|
|
1046
|
+
"additionalProperties": {
|
|
1047
|
+
"$ref": "#/definitions/IndexGraphDef"
|
|
1048
|
+
}
|
|
830
1049
|
},
|
|
831
1050
|
"graphOverrides": {
|
|
832
1051
|
"type": "object",
|
|
833
1052
|
"description": "Safely adapts supported built-in graphs without redefining their identity or storage semantics.",
|
|
834
1053
|
"additionalProperties": false,
|
|
835
1054
|
"properties": {
|
|
836
|
-
"
|
|
1055
|
+
"project": {
|
|
1056
|
+
"$ref": "#/definitions/IndexBuiltinGraphOverride"
|
|
1057
|
+
},
|
|
1058
|
+
"codebase": {
|
|
1059
|
+
"$ref": "#/definitions/IndexBuiltinGraphOverride"
|
|
1060
|
+
}
|
|
837
1061
|
}
|
|
838
1062
|
},
|
|
839
1063
|
"userIndices": {
|
|
@@ -868,7 +1092,9 @@
|
|
|
868
1092
|
"additionalProperties": {
|
|
869
1093
|
"type": "object",
|
|
870
1094
|
"additionalProperties": false,
|
|
871
|
-
"required": [
|
|
1095
|
+
"required": [
|
|
1096
|
+
"path"
|
|
1097
|
+
],
|
|
872
1098
|
"properties": {
|
|
873
1099
|
"path": {
|
|
874
1100
|
"type": "string",
|
|
@@ -876,12 +1102,17 @@
|
|
|
876
1102
|
},
|
|
877
1103
|
"backend": {
|
|
878
1104
|
"type": "string",
|
|
879
|
-
"enum": [
|
|
1105
|
+
"enum": [
|
|
1106
|
+
"local",
|
|
1107
|
+
"fortemi-core"
|
|
1108
|
+
],
|
|
880
1109
|
"description": "Preferred backend for this root. AIWG still builds the local graph before Fortemi sync."
|
|
881
1110
|
},
|
|
882
1111
|
"extensions": {
|
|
883
1112
|
"type": "array",
|
|
884
|
-
"items": {
|
|
1113
|
+
"items": {
|
|
1114
|
+
"type": "string"
|
|
1115
|
+
},
|
|
885
1116
|
"description": "File extensions to index. Defaults to markdown, YAML, and JSON."
|
|
886
1117
|
}
|
|
887
1118
|
}
|
|
@@ -916,7 +1147,10 @@
|
|
|
916
1147
|
"description": "Stores to write. project = .aiwg/telemetry/cli-commands.jsonl; global = XDG state.",
|
|
917
1148
|
"items": {
|
|
918
1149
|
"type": "string",
|
|
919
|
-
"enum": [
|
|
1150
|
+
"enum": [
|
|
1151
|
+
"project",
|
|
1152
|
+
"global"
|
|
1153
|
+
]
|
|
920
1154
|
},
|
|
921
1155
|
"uniqueItems": true
|
|
922
1156
|
},
|
|
@@ -947,7 +1181,10 @@
|
|
|
947
1181
|
"description": "Stores to write. project = .aiwg/telemetry/skill-usage.jsonl; global = XDG state.",
|
|
948
1182
|
"items": {
|
|
949
1183
|
"type": "string",
|
|
950
|
-
"enum": [
|
|
1184
|
+
"enum": [
|
|
1185
|
+
"project",
|
|
1186
|
+
"global"
|
|
1187
|
+
]
|
|
951
1188
|
},
|
|
952
1189
|
"uniqueItems": true
|
|
953
1190
|
},
|
|
@@ -963,18 +1200,139 @@
|
|
|
963
1200
|
},
|
|
964
1201
|
"setup": {
|
|
965
1202
|
"type": "object",
|
|
966
|
-
"description": "Setup/onboarding preferences (#3050)
|
|
1203
|
+
"description": "Setup/onboarding preferences (#3050) \u2014 answers to opt-in offers presented during `aiwg init` / `aiwg setup project`. Not worker policy; kept separate from the frozen `parallelism` contract fragment (B-OG-29).",
|
|
967
1204
|
"additionalProperties": false,
|
|
968
1205
|
"properties": {
|
|
969
1206
|
"worker_dispatch_offer": {
|
|
970
1207
|
"type": "string",
|
|
971
|
-
"enum": [
|
|
1208
|
+
"enum": [
|
|
1209
|
+
"declined"
|
|
1210
|
+
],
|
|
972
1211
|
"description": "Set to 'declined' when a person said no to the parallelism.worker_dispatch opt-in offer. Suppresses the offer and its hints until cleared."
|
|
973
1212
|
}
|
|
974
1213
|
}
|
|
975
1214
|
},
|
|
976
1215
|
"gates": {
|
|
977
1216
|
"$ref": "#/definitions/GatesConfig"
|
|
1217
|
+
},
|
|
1218
|
+
"rules": {
|
|
1219
|
+
"type": "object",
|
|
1220
|
+
"additionalProperties": false,
|
|
1221
|
+
"properties": {
|
|
1222
|
+
"inline_budget_tokens": {
|
|
1223
|
+
"type": "integer",
|
|
1224
|
+
"minimum": 0,
|
|
1225
|
+
"maximum": 9007199254740991,
|
|
1226
|
+
"default": 64000,
|
|
1227
|
+
"description": "Startup lint guard, estimated UTF-8 bytes / 4. AIWG_RULES_INLINE_BUDGET_TOKENS overrides this value; 0 disables only this guard, never provider hard caps."
|
|
1228
|
+
},
|
|
1229
|
+
"pin_groups": {
|
|
1230
|
+
"type": "object",
|
|
1231
|
+
"propertyNames": {
|
|
1232
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
1233
|
+
"not": {
|
|
1234
|
+
"enum": [
|
|
1235
|
+
"__proto__",
|
|
1236
|
+
"prototype",
|
|
1237
|
+
"constructor"
|
|
1238
|
+
]
|
|
1239
|
+
}
|
|
1240
|
+
},
|
|
1241
|
+
"additionalProperties": {
|
|
1242
|
+
"type": "array",
|
|
1243
|
+
"minItems": 1,
|
|
1244
|
+
"items": {
|
|
1245
|
+
"type": "string",
|
|
1246
|
+
"minLength": 1
|
|
1247
|
+
},
|
|
1248
|
+
"uniqueItems": true
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1251
|
+
"always_load": {
|
|
1252
|
+
"type": "array",
|
|
1253
|
+
"items": {
|
|
1254
|
+
"type": "object",
|
|
1255
|
+
"minProperties": 1,
|
|
1256
|
+
"additionalProperties": false,
|
|
1257
|
+
"properties": {
|
|
1258
|
+
"rules": {
|
|
1259
|
+
"type": "array",
|
|
1260
|
+
"minItems": 1,
|
|
1261
|
+
"items": {
|
|
1262
|
+
"type": "string",
|
|
1263
|
+
"minLength": 1
|
|
1264
|
+
},
|
|
1265
|
+
"uniqueItems": true
|
|
1266
|
+
},
|
|
1267
|
+
"enforcement": {
|
|
1268
|
+
"type": "array",
|
|
1269
|
+
"minItems": 1,
|
|
1270
|
+
"uniqueItems": true,
|
|
1271
|
+
"items": {
|
|
1272
|
+
"enum": [
|
|
1273
|
+
"critical",
|
|
1274
|
+
"high",
|
|
1275
|
+
"medium",
|
|
1276
|
+
"low"
|
|
1277
|
+
]
|
|
1278
|
+
}
|
|
1279
|
+
},
|
|
1280
|
+
"capabilities": {
|
|
1281
|
+
"type": "array",
|
|
1282
|
+
"minItems": 1,
|
|
1283
|
+
"items": {
|
|
1284
|
+
"type": "string",
|
|
1285
|
+
"minLength": 1
|
|
1286
|
+
},
|
|
1287
|
+
"uniqueItems": true
|
|
1288
|
+
},
|
|
1289
|
+
"group": {
|
|
1290
|
+
"type": "string",
|
|
1291
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
1292
|
+
"not": {
|
|
1293
|
+
"enum": [
|
|
1294
|
+
"__proto__",
|
|
1295
|
+
"prototype",
|
|
1296
|
+
"constructor"
|
|
1297
|
+
]
|
|
1298
|
+
}
|
|
1299
|
+
},
|
|
1300
|
+
"all": {
|
|
1301
|
+
"const": true
|
|
1302
|
+
}
|
|
1303
|
+
},
|
|
1304
|
+
"allOf": [
|
|
1305
|
+
{
|
|
1306
|
+
"if": {
|
|
1307
|
+
"required": [
|
|
1308
|
+
"all"
|
|
1309
|
+
],
|
|
1310
|
+
"properties": {
|
|
1311
|
+
"all": {
|
|
1312
|
+
"const": true
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
},
|
|
1316
|
+
"then": {
|
|
1317
|
+
"maxProperties": 1
|
|
1318
|
+
}
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"not": {
|
|
1322
|
+
"required": [
|
|
1323
|
+
"group",
|
|
1324
|
+
"capabilities"
|
|
1325
|
+
],
|
|
1326
|
+
"properties": {
|
|
1327
|
+
"group": {},
|
|
1328
|
+
"capabilities": {}
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
]
|
|
1333
|
+
}
|
|
1334
|
+
}
|
|
1335
|
+
}
|
|
978
1336
|
}
|
|
979
1337
|
},
|
|
980
1338
|
"definitions": {
|
|
@@ -1233,8 +1591,16 @@
|
|
|
1233
1591
|
}
|
|
1234
1592
|
},
|
|
1235
1593
|
"anyOf": [
|
|
1236
|
-
{
|
|
1237
|
-
|
|
1594
|
+
{
|
|
1595
|
+
"required": [
|
|
1596
|
+
"pack"
|
|
1597
|
+
]
|
|
1598
|
+
},
|
|
1599
|
+
{
|
|
1600
|
+
"required": [
|
|
1601
|
+
"packRef"
|
|
1602
|
+
]
|
|
1603
|
+
}
|
|
1238
1604
|
]
|
|
1239
1605
|
}
|
|
1240
1606
|
},
|
|
@@ -1243,7 +1609,11 @@
|
|
|
1243
1609
|
"description": "Outcome ceilings keyed by binding metadata.id, plus '*' as the project-wide default applied to every binding. A per-study key may only tighten the '*' default; a binding declaring a looser ceiling is refused at resolution.",
|
|
1244
1610
|
"additionalProperties": {
|
|
1245
1611
|
"type": "string",
|
|
1246
|
-
"enum": [
|
|
1612
|
+
"enum": [
|
|
1613
|
+
"PROMOTE",
|
|
1614
|
+
"HOLD",
|
|
1615
|
+
"ROLLBACK"
|
|
1616
|
+
]
|
|
1247
1617
|
}
|
|
1248
1618
|
}
|
|
1249
1619
|
}
|
|
@@ -1252,7 +1622,11 @@
|
|
|
1252
1622
|
"type": "object",
|
|
1253
1623
|
"description": "Pin over a registered gate pack whose composed gates all become project floors. Version and authored digest are verified at resolution.",
|
|
1254
1624
|
"additionalProperties": false,
|
|
1255
|
-
"required": [
|
|
1625
|
+
"required": [
|
|
1626
|
+
"id",
|
|
1627
|
+
"version",
|
|
1628
|
+
"digest"
|
|
1629
|
+
],
|
|
1256
1630
|
"properties": {
|
|
1257
1631
|
"id": {
|
|
1258
1632
|
"type": "string",
|
|
@@ -1273,21 +1647,44 @@
|
|
|
1273
1647
|
"Authorization": {
|
|
1274
1648
|
"type": "object",
|
|
1275
1649
|
"additionalProperties": false,
|
|
1276
|
-
"required": [
|
|
1650
|
+
"required": [
|
|
1651
|
+
"version",
|
|
1652
|
+
"default_effect",
|
|
1653
|
+
"resources",
|
|
1654
|
+
"permissions",
|
|
1655
|
+
"roles",
|
|
1656
|
+
"assignments"
|
|
1657
|
+
],
|
|
1277
1658
|
"properties": {
|
|
1278
|
-
"version": {
|
|
1279
|
-
|
|
1659
|
+
"version": {
|
|
1660
|
+
"const": "1"
|
|
1661
|
+
},
|
|
1662
|
+
"default_effect": {
|
|
1663
|
+
"const": "deny"
|
|
1664
|
+
},
|
|
1280
1665
|
"resources": {
|
|
1281
1666
|
"type": "object",
|
|
1282
1667
|
"additionalProperties": {
|
|
1283
1668
|
"type": "object",
|
|
1284
1669
|
"additionalProperties": false,
|
|
1285
|
-
"required": [
|
|
1670
|
+
"required": [
|
|
1671
|
+
"type",
|
|
1672
|
+
"value"
|
|
1673
|
+
],
|
|
1286
1674
|
"properties": {
|
|
1287
|
-
"type": {
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
"
|
|
1675
|
+
"type": {
|
|
1676
|
+
"type": "string"
|
|
1677
|
+
},
|
|
1678
|
+
"value": {
|
|
1679
|
+
"type": "string"
|
|
1680
|
+
},
|
|
1681
|
+
"provider": {
|
|
1682
|
+
"type": "string"
|
|
1683
|
+
},
|
|
1684
|
+
"locator_env": {
|
|
1685
|
+
"type": "string",
|
|
1686
|
+
"pattern": "^[A-Z][A-Z0-9_]*$"
|
|
1687
|
+
}
|
|
1291
1688
|
}
|
|
1292
1689
|
}
|
|
1293
1690
|
},
|
|
@@ -1296,12 +1693,35 @@
|
|
|
1296
1693
|
"additionalProperties": {
|
|
1297
1694
|
"type": "object",
|
|
1298
1695
|
"additionalProperties": false,
|
|
1299
|
-
"required": [
|
|
1696
|
+
"required": [
|
|
1697
|
+
"actions",
|
|
1698
|
+
"resource_types"
|
|
1699
|
+
],
|
|
1300
1700
|
"properties": {
|
|
1301
|
-
"actions": {
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1701
|
+
"actions": {
|
|
1702
|
+
"type": "array",
|
|
1703
|
+
"minItems": 1,
|
|
1704
|
+
"items": {
|
|
1705
|
+
"type": "string"
|
|
1706
|
+
}
|
|
1707
|
+
},
|
|
1708
|
+
"resource_types": {
|
|
1709
|
+
"type": "array",
|
|
1710
|
+
"minItems": 1,
|
|
1711
|
+
"items": {
|
|
1712
|
+
"type": "string"
|
|
1713
|
+
}
|
|
1714
|
+
},
|
|
1715
|
+
"effect": {
|
|
1716
|
+
"type": "string",
|
|
1717
|
+
"enum": [
|
|
1718
|
+
"allow",
|
|
1719
|
+
"deny"
|
|
1720
|
+
]
|
|
1721
|
+
},
|
|
1722
|
+
"description": {
|
|
1723
|
+
"type": "string"
|
|
1724
|
+
}
|
|
1305
1725
|
}
|
|
1306
1726
|
}
|
|
1307
1727
|
},
|
|
@@ -1310,12 +1730,31 @@
|
|
|
1310
1730
|
"additionalProperties": {
|
|
1311
1731
|
"type": "object",
|
|
1312
1732
|
"additionalProperties": false,
|
|
1313
|
-
"required": [
|
|
1733
|
+
"required": [
|
|
1734
|
+
"permissions"
|
|
1735
|
+
],
|
|
1314
1736
|
"properties": {
|
|
1315
|
-
"permissions": {
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1737
|
+
"permissions": {
|
|
1738
|
+
"type": "array",
|
|
1739
|
+
"items": {
|
|
1740
|
+
"type": "string"
|
|
1741
|
+
}
|
|
1742
|
+
},
|
|
1743
|
+
"inherits": {
|
|
1744
|
+
"type": "array",
|
|
1745
|
+
"items": {
|
|
1746
|
+
"type": "string"
|
|
1747
|
+
}
|
|
1748
|
+
},
|
|
1749
|
+
"boundaries": {
|
|
1750
|
+
"type": "array",
|
|
1751
|
+
"items": {
|
|
1752
|
+
"type": "string"
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
"description": {
|
|
1756
|
+
"type": "string"
|
|
1757
|
+
}
|
|
1319
1758
|
}
|
|
1320
1759
|
}
|
|
1321
1760
|
},
|
|
@@ -1325,8 +1764,18 @@
|
|
|
1325
1764
|
"type": "object",
|
|
1326
1765
|
"additionalProperties": false,
|
|
1327
1766
|
"properties": {
|
|
1328
|
-
"permissions": {
|
|
1329
|
-
|
|
1767
|
+
"permissions": {
|
|
1768
|
+
"type": "array",
|
|
1769
|
+
"items": {
|
|
1770
|
+
"type": "string"
|
|
1771
|
+
}
|
|
1772
|
+
},
|
|
1773
|
+
"resources": {
|
|
1774
|
+
"type": "array",
|
|
1775
|
+
"items": {
|
|
1776
|
+
"type": "string"
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1330
1779
|
}
|
|
1331
1780
|
}
|
|
1332
1781
|
},
|
|
@@ -1335,27 +1784,75 @@
|
|
|
1335
1784
|
"items": {
|
|
1336
1785
|
"type": "object",
|
|
1337
1786
|
"additionalProperties": false,
|
|
1338
|
-
"required": [
|
|
1787
|
+
"required": [
|
|
1788
|
+
"id",
|
|
1789
|
+
"subjects",
|
|
1790
|
+
"roles",
|
|
1791
|
+
"scope"
|
|
1792
|
+
],
|
|
1339
1793
|
"properties": {
|
|
1340
|
-
"id": {
|
|
1794
|
+
"id": {
|
|
1795
|
+
"type": "string"
|
|
1796
|
+
},
|
|
1341
1797
|
"subjects": {
|
|
1342
|
-
"type": "array",
|
|
1798
|
+
"type": "array",
|
|
1799
|
+
"minItems": 1,
|
|
1343
1800
|
"items": {
|
|
1344
|
-
"type": "object",
|
|
1801
|
+
"type": "object",
|
|
1802
|
+
"additionalProperties": false,
|
|
1803
|
+
"required": [
|
|
1804
|
+
"kind",
|
|
1805
|
+
"id"
|
|
1806
|
+
],
|
|
1345
1807
|
"properties": {
|
|
1346
|
-
"kind": {
|
|
1347
|
-
|
|
1808
|
+
"kind": {
|
|
1809
|
+
"type": "string",
|
|
1810
|
+
"enum": [
|
|
1811
|
+
"user",
|
|
1812
|
+
"group",
|
|
1813
|
+
"service",
|
|
1814
|
+
"workload"
|
|
1815
|
+
]
|
|
1816
|
+
},
|
|
1817
|
+
"id": {
|
|
1818
|
+
"type": "string"
|
|
1819
|
+
}
|
|
1348
1820
|
}
|
|
1349
1821
|
}
|
|
1350
1822
|
},
|
|
1351
|
-
"roles": {
|
|
1823
|
+
"roles": {
|
|
1824
|
+
"type": "array",
|
|
1825
|
+
"minItems": 1,
|
|
1826
|
+
"items": {
|
|
1827
|
+
"type": "string"
|
|
1828
|
+
}
|
|
1829
|
+
},
|
|
1352
1830
|
"scope": {
|
|
1353
|
-
"type": "object",
|
|
1354
|
-
"
|
|
1831
|
+
"type": "object",
|
|
1832
|
+
"additionalProperties": false,
|
|
1833
|
+
"required": [
|
|
1834
|
+
"resources"
|
|
1835
|
+
],
|
|
1836
|
+
"properties": {
|
|
1837
|
+
"resources": {
|
|
1838
|
+
"type": "array",
|
|
1839
|
+
"minItems": 1,
|
|
1840
|
+
"items": {
|
|
1841
|
+
"type": "string"
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
},
|
|
1846
|
+
"conditions": {
|
|
1847
|
+
"type": "object"
|
|
1355
1848
|
},
|
|
1356
|
-
"
|
|
1357
|
-
|
|
1358
|
-
|
|
1849
|
+
"expires_at": {
|
|
1850
|
+
"type": "string",
|
|
1851
|
+
"format": "date-time"
|
|
1852
|
+
},
|
|
1853
|
+
"justification": {
|
|
1854
|
+
"type": "string"
|
|
1855
|
+
}
|
|
1359
1856
|
}
|
|
1360
1857
|
}
|
|
1361
1858
|
},
|
|
@@ -1363,9 +1860,15 @@
|
|
|
1363
1860
|
"type": "object",
|
|
1364
1861
|
"additionalProperties": false,
|
|
1365
1862
|
"properties": {
|
|
1366
|
-
"aws_iam": {
|
|
1367
|
-
|
|
1368
|
-
|
|
1863
|
+
"aws_iam": {
|
|
1864
|
+
"$ref": "#/definitions/ProviderPermissionMappings"
|
|
1865
|
+
},
|
|
1866
|
+
"entra_id": {
|
|
1867
|
+
"$ref": "#/definitions/ProviderPermissionMappings"
|
|
1868
|
+
},
|
|
1869
|
+
"openbao": {
|
|
1870
|
+
"$ref": "#/definitions/ProviderPermissionMappings"
|
|
1871
|
+
}
|
|
1369
1872
|
}
|
|
1370
1873
|
}
|
|
1371
1874
|
}
|
|
@@ -1375,24 +1878,58 @@
|
|
|
1375
1878
|
"items": {
|
|
1376
1879
|
"type": "object",
|
|
1377
1880
|
"additionalProperties": false,
|
|
1378
|
-
"required": [
|
|
1881
|
+
"required": [
|
|
1882
|
+
"stable_id"
|
|
1883
|
+
],
|
|
1379
1884
|
"properties": {
|
|
1380
|
-
"stable_id": {
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
"
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
"
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
"
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1885
|
+
"stable_id": {
|
|
1886
|
+
"type": "string"
|
|
1887
|
+
},
|
|
1888
|
+
"provider_id": {
|
|
1889
|
+
"type": "string"
|
|
1890
|
+
},
|
|
1891
|
+
"principal": {
|
|
1892
|
+
"type": "string"
|
|
1893
|
+
},
|
|
1894
|
+
"scope": {
|
|
1895
|
+
"type": "string"
|
|
1896
|
+
},
|
|
1897
|
+
"actions": {
|
|
1898
|
+
"type": "array",
|
|
1899
|
+
"items": {
|
|
1900
|
+
"type": "string"
|
|
1901
|
+
}
|
|
1902
|
+
},
|
|
1903
|
+
"resources": {
|
|
1904
|
+
"type": "array",
|
|
1905
|
+
"items": {
|
|
1906
|
+
"type": "string"
|
|
1907
|
+
}
|
|
1908
|
+
},
|
|
1909
|
+
"conditions": {
|
|
1910
|
+
"type": "object"
|
|
1911
|
+
},
|
|
1912
|
+
"token_ttl": {
|
|
1913
|
+
"type": "string"
|
|
1914
|
+
},
|
|
1915
|
+
"token_max_ttl": {
|
|
1916
|
+
"type": "string"
|
|
1917
|
+
},
|
|
1918
|
+
"secret_id_ttl": {
|
|
1919
|
+
"type": "string"
|
|
1920
|
+
},
|
|
1921
|
+
"secret_id_num_uses": {
|
|
1922
|
+
"type": "integer",
|
|
1923
|
+
"minimum": 0
|
|
1924
|
+
},
|
|
1925
|
+
"locator_env": {
|
|
1926
|
+
"type": "string",
|
|
1927
|
+
"pattern": "^[A-Z][A-Z0-9_]*$"
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1930
|
+
}
|
|
1931
|
+
},
|
|
1932
|
+
"Workspace": {
|
|
1396
1933
|
"type": "object",
|
|
1397
1934
|
"additionalProperties": false,
|
|
1398
1935
|
"properties": {
|
|
@@ -1416,7 +1953,11 @@
|
|
|
1416
1953
|
"WorkspaceRepo": {
|
|
1417
1954
|
"type": "object",
|
|
1418
1955
|
"additionalProperties": false,
|
|
1419
|
-
"required": [
|
|
1956
|
+
"required": [
|
|
1957
|
+
"name",
|
|
1958
|
+
"path",
|
|
1959
|
+
"allowed"
|
|
1960
|
+
],
|
|
1420
1961
|
"properties": {
|
|
1421
1962
|
"name": {
|
|
1422
1963
|
"type": "string",
|
|
@@ -1435,12 +1976,24 @@
|
|
|
1435
1976
|
"description": "Explicit member capabilities. Unlisted actions and unlisted paths are denied regardless of filesystem writability.",
|
|
1436
1977
|
"items": {
|
|
1437
1978
|
"type": "string",
|
|
1438
|
-
"enum": [
|
|
1979
|
+
"enum": [
|
|
1980
|
+
"read",
|
|
1981
|
+
"write",
|
|
1982
|
+
"commit",
|
|
1983
|
+
"push",
|
|
1984
|
+
"issue-comment",
|
|
1985
|
+
"service-action",
|
|
1986
|
+
"destructive"
|
|
1987
|
+
]
|
|
1439
1988
|
}
|
|
1440
1989
|
},
|
|
1441
1990
|
"provider": {
|
|
1442
1991
|
"type": "string",
|
|
1443
|
-
"enum": [
|
|
1992
|
+
"enum": [
|
|
1993
|
+
"gitea",
|
|
1994
|
+
"github",
|
|
1995
|
+
"gitlab"
|
|
1996
|
+
],
|
|
1444
1997
|
"description": "Optional hint for self-hosted domains that cannot be classified from their remote URL. Detectable remotes take precedence."
|
|
1445
1998
|
},
|
|
1446
1999
|
"notes": {
|
|
@@ -1453,7 +2006,10 @@
|
|
|
1453
2006
|
"type": "object",
|
|
1454
2007
|
"description": "A named public HTTP(S) resource. Credentials embedded in URLs are rejected by runtime validation.",
|
|
1455
2008
|
"additionalProperties": false,
|
|
1456
|
-
"required": [
|
|
2009
|
+
"required": [
|
|
2010
|
+
"label",
|
|
2011
|
+
"url"
|
|
2012
|
+
],
|
|
1457
2013
|
"properties": {
|
|
1458
2014
|
"label": {
|
|
1459
2015
|
"type": "string",
|
|
@@ -1491,14 +2047,30 @@
|
|
|
1491
2047
|
"type": "object",
|
|
1492
2048
|
"description": "Provider-neutral workflow semantics for one tracker-native label.",
|
|
1493
2049
|
"additionalProperties": false,
|
|
1494
|
-
"required": [
|
|
2050
|
+
"required": [
|
|
2051
|
+
"name",
|
|
2052
|
+
"category",
|
|
2053
|
+
"description",
|
|
2054
|
+
"requires_human",
|
|
2055
|
+
"blocks_automation"
|
|
2056
|
+
],
|
|
1495
2057
|
"allOf": [
|
|
1496
2058
|
{
|
|
1497
2059
|
"if": {
|
|
1498
|
-
"properties": {
|
|
1499
|
-
|
|
2060
|
+
"properties": {
|
|
2061
|
+
"blocks_automation": {
|
|
2062
|
+
"const": true
|
|
2063
|
+
}
|
|
2064
|
+
},
|
|
2065
|
+
"required": [
|
|
2066
|
+
"blocks_automation"
|
|
2067
|
+
]
|
|
1500
2068
|
},
|
|
1501
|
-
"then": {
|
|
2069
|
+
"then": {
|
|
2070
|
+
"required": [
|
|
2071
|
+
"resume_when"
|
|
2072
|
+
]
|
|
2073
|
+
}
|
|
1502
2074
|
}
|
|
1503
2075
|
],
|
|
1504
2076
|
"properties": {
|
|
@@ -1512,14 +2084,33 @@
|
|
|
1512
2084
|
"description": "Optional provider-specific strings that preserve this semantic role.",
|
|
1513
2085
|
"additionalProperties": false,
|
|
1514
2086
|
"properties": {
|
|
1515
|
-
"gitea": {
|
|
1516
|
-
|
|
1517
|
-
|
|
2087
|
+
"gitea": {
|
|
2088
|
+
"type": "string",
|
|
2089
|
+
"minLength": 1
|
|
2090
|
+
},
|
|
2091
|
+
"github": {
|
|
2092
|
+
"type": "string",
|
|
2093
|
+
"minLength": 1
|
|
2094
|
+
},
|
|
2095
|
+
"local": {
|
|
2096
|
+
"type": "string",
|
|
2097
|
+
"minLength": 1
|
|
2098
|
+
}
|
|
1518
2099
|
}
|
|
1519
2100
|
},
|
|
1520
2101
|
"category": {
|
|
1521
2102
|
"type": "string",
|
|
1522
|
-
"enum": [
|
|
2103
|
+
"enum": [
|
|
2104
|
+
"type",
|
|
2105
|
+
"area",
|
|
2106
|
+
"priority",
|
|
2107
|
+
"lifecycle",
|
|
2108
|
+
"blocked-reason",
|
|
2109
|
+
"review-approval",
|
|
2110
|
+
"ownership",
|
|
2111
|
+
"automation-eligibility",
|
|
2112
|
+
"human-interaction"
|
|
2113
|
+
],
|
|
1523
2114
|
"description": "Informative role family used for search, audit, batching, and work selection."
|
|
1524
2115
|
},
|
|
1525
2116
|
"description": {
|
|
@@ -1557,12 +2148,19 @@
|
|
|
1557
2148
|
},
|
|
1558
2149
|
"via": {
|
|
1559
2150
|
"type": "string",
|
|
1560
|
-
"enum": [
|
|
2151
|
+
"enum": [
|
|
2152
|
+
"tea",
|
|
2153
|
+
"gh",
|
|
2154
|
+
"mcp",
|
|
2155
|
+
"api"
|
|
2156
|
+
],
|
|
1561
2157
|
"description": "Tooling route to use for tracker writes."
|
|
1562
2158
|
},
|
|
1563
2159
|
"forbid_actors": {
|
|
1564
2160
|
"type": "array",
|
|
1565
|
-
"items": {
|
|
2161
|
+
"items": {
|
|
2162
|
+
"type": "string"
|
|
2163
|
+
},
|
|
1566
2164
|
"description": "Forge logins that must not author delivery mutations."
|
|
1567
2165
|
}
|
|
1568
2166
|
}
|
|
@@ -1577,7 +2175,10 @@
|
|
|
1577
2175
|
},
|
|
1578
2176
|
"protocol": {
|
|
1579
2177
|
"type": "string",
|
|
1580
|
-
"enum": [
|
|
2178
|
+
"enum": [
|
|
2179
|
+
"ssh",
|
|
2180
|
+
"https"
|
|
2181
|
+
],
|
|
1581
2182
|
"description": "Transport used by the primary remote."
|
|
1582
2183
|
},
|
|
1583
2184
|
"helper": {
|
|
@@ -1610,7 +2211,11 @@
|
|
|
1610
2211
|
"properties": {
|
|
1611
2212
|
"format": {
|
|
1612
2213
|
"type": "string",
|
|
1613
|
-
"enum": [
|
|
2214
|
+
"enum": [
|
|
2215
|
+
"openpgp",
|
|
2216
|
+
"ssh",
|
|
2217
|
+
"x509"
|
|
2218
|
+
],
|
|
1614
2219
|
"description": "Signing key format."
|
|
1615
2220
|
},
|
|
1616
2221
|
"key": {
|
|
@@ -1627,7 +2232,11 @@
|
|
|
1627
2232
|
},
|
|
1628
2233
|
"enforce": {
|
|
1629
2234
|
"type": "string",
|
|
1630
|
-
"enum": [
|
|
2235
|
+
"enum": [
|
|
2236
|
+
"commits",
|
|
2237
|
+
"tags",
|
|
2238
|
+
"all"
|
|
2239
|
+
],
|
|
1631
2240
|
"description": "Which delivery artifacts require signing."
|
|
1632
2241
|
}
|
|
1633
2242
|
}
|
|
@@ -1636,34 +2245,100 @@
|
|
|
1636
2245
|
"type": "object",
|
|
1637
2246
|
"description": "A JSON node/edge index graph (mirrors GraphConfig in src/artifacts/types.ts).",
|
|
1638
2247
|
"additionalProperties": false,
|
|
1639
|
-
"required": [
|
|
2248
|
+
"required": [
|
|
2249
|
+
"scanDirs"
|
|
2250
|
+
],
|
|
1640
2251
|
"properties": {
|
|
1641
|
-
"type": {
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
"
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
2252
|
+
"type": {
|
|
2253
|
+
"type": "string",
|
|
2254
|
+
"description": "Graph type identifier (defaults to the graph's key name)."
|
|
2255
|
+
},
|
|
2256
|
+
"scanDirs": {
|
|
2257
|
+
"type": "array",
|
|
2258
|
+
"items": {
|
|
2259
|
+
"type": "string"
|
|
2260
|
+
},
|
|
2261
|
+
"minItems": 1,
|
|
2262
|
+
"description": "Directories to scan, relative to project root (required)."
|
|
2263
|
+
},
|
|
2264
|
+
"extensions": {
|
|
2265
|
+
"type": "array",
|
|
2266
|
+
"items": {
|
|
2267
|
+
"type": "string"
|
|
2268
|
+
},
|
|
2269
|
+
"description": "File extensions to index. Default: ['.md', '.yaml', '.json']."
|
|
2270
|
+
},
|
|
2271
|
+
"shared": {
|
|
2272
|
+
"type": "boolean",
|
|
2273
|
+
"description": "Whether the graph is shared across projects. Default false."
|
|
2274
|
+
},
|
|
2275
|
+
"defaultBuild": {
|
|
2276
|
+
"type": "boolean",
|
|
2277
|
+
"description": "Include in `aiwg index build` with no --graph. Default true."
|
|
2278
|
+
},
|
|
2279
|
+
"nodeStrategy": {
|
|
2280
|
+
"type": "string",
|
|
2281
|
+
"enum": [
|
|
2282
|
+
"default",
|
|
2283
|
+
"filename-metadata"
|
|
2284
|
+
],
|
|
2285
|
+
"description": "Node creation strategy."
|
|
2286
|
+
},
|
|
2287
|
+
"filenamePattern": {
|
|
2288
|
+
"type": "string",
|
|
2289
|
+
"description": "Named-capture regex for the filename-metadata strategy."
|
|
2290
|
+
},
|
|
2291
|
+
"graphBackend": {
|
|
2292
|
+
"type": "string",
|
|
2293
|
+
"enum": [
|
|
2294
|
+
"json",
|
|
2295
|
+
"graphology",
|
|
2296
|
+
"sqlite"
|
|
2297
|
+
],
|
|
2298
|
+
"description": "Graph storage backend. Default 'json'."
|
|
2299
|
+
},
|
|
2300
|
+
"description": {
|
|
2301
|
+
"type": "string",
|
|
2302
|
+
"description": "Human-facing note (metadata; not consumed by the builder)."
|
|
2303
|
+
},
|
|
1650
2304
|
"edgeExtraction": {
|
|
1651
2305
|
"type": "object",
|
|
1652
2306
|
"additionalProperties": false,
|
|
1653
|
-
"required": [
|
|
2307
|
+
"required": [
|
|
2308
|
+
"parser",
|
|
2309
|
+
"edges"
|
|
2310
|
+
],
|
|
1654
2311
|
"properties": {
|
|
1655
|
-
"parser": {
|
|
2312
|
+
"parser": {
|
|
2313
|
+
"type": "string",
|
|
2314
|
+
"enum": [
|
|
2315
|
+
"citation-sidecar"
|
|
2316
|
+
],
|
|
2317
|
+
"description": "Edge-extraction parser."
|
|
2318
|
+
},
|
|
1656
2319
|
"edges": {
|
|
1657
2320
|
"type": "array",
|
|
1658
2321
|
"items": {
|
|
1659
2322
|
"type": "object",
|
|
1660
2323
|
"additionalProperties": false,
|
|
1661
|
-
"required": [
|
|
2324
|
+
"required": [
|
|
2325
|
+
"type",
|
|
2326
|
+
"source",
|
|
2327
|
+
"target"
|
|
2328
|
+
],
|
|
1662
2329
|
"properties": {
|
|
1663
|
-
"type": {
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
"
|
|
2330
|
+
"type": {
|
|
2331
|
+
"type": "string"
|
|
2332
|
+
},
|
|
2333
|
+
"source": {
|
|
2334
|
+
"type": "string"
|
|
2335
|
+
},
|
|
2336
|
+
"target": {
|
|
2337
|
+
"type": "string"
|
|
2338
|
+
},
|
|
2339
|
+
"skipEmpty": {
|
|
2340
|
+
"type": "boolean"
|
|
2341
|
+
}
|
|
1667
2342
|
}
|
|
1668
2343
|
}
|
|
1669
2344
|
}
|
|
@@ -1674,24 +2349,56 @@
|
|
|
1674
2349
|
"items": {
|
|
1675
2350
|
"type": "object",
|
|
1676
2351
|
"additionalProperties": false,
|
|
1677
|
-
"required": [
|
|
2352
|
+
"required": [
|
|
2353
|
+
"scanDir",
|
|
2354
|
+
"matchOn",
|
|
2355
|
+
"nodeKey",
|
|
2356
|
+
"mergeFields"
|
|
2357
|
+
],
|
|
1678
2358
|
"properties": {
|
|
1679
|
-
"scanDir": {
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
"
|
|
2359
|
+
"scanDir": {
|
|
2360
|
+
"type": "string"
|
|
2361
|
+
},
|
|
2362
|
+
"matchOn": {
|
|
2363
|
+
"type": "string"
|
|
2364
|
+
},
|
|
2365
|
+
"nodeKey": {
|
|
2366
|
+
"type": "string"
|
|
2367
|
+
},
|
|
2368
|
+
"mergeFields": {
|
|
2369
|
+
"type": "array",
|
|
2370
|
+
"items": {
|
|
2371
|
+
"type": "string"
|
|
2372
|
+
}
|
|
2373
|
+
}
|
|
1683
2374
|
}
|
|
1684
2375
|
}
|
|
1685
2376
|
},
|
|
1686
2377
|
"embedding": {
|
|
1687
2378
|
"type": "object",
|
|
1688
2379
|
"additionalProperties": false,
|
|
1689
|
-
"required": [
|
|
2380
|
+
"required": [
|
|
2381
|
+
"enabled"
|
|
2382
|
+
],
|
|
1690
2383
|
"properties": {
|
|
1691
|
-
"enabled": {
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
"
|
|
2384
|
+
"enabled": {
|
|
2385
|
+
"type": "boolean"
|
|
2386
|
+
},
|
|
2387
|
+
"model": {
|
|
2388
|
+
"type": "string"
|
|
2389
|
+
},
|
|
2390
|
+
"topK": {
|
|
2391
|
+
"type": "integer",
|
|
2392
|
+
"minimum": 1
|
|
2393
|
+
},
|
|
2394
|
+
"rebuildOn": {
|
|
2395
|
+
"type": "string",
|
|
2396
|
+
"enum": [
|
|
2397
|
+
"content-change",
|
|
2398
|
+
"always",
|
|
2399
|
+
"never"
|
|
2400
|
+
]
|
|
2401
|
+
}
|
|
1695
2402
|
}
|
|
1696
2403
|
}
|
|
1697
2404
|
}
|
|
@@ -1701,31 +2408,71 @@
|
|
|
1701
2408
|
"description": "Operator-controlled scan fields for an immutable built-in graph. Present fields replace the detected/default values.",
|
|
1702
2409
|
"additionalProperties": false,
|
|
1703
2410
|
"properties": {
|
|
1704
|
-
"scanDirs": {
|
|
1705
|
-
|
|
2411
|
+
"scanDirs": {
|
|
2412
|
+
"type": "array",
|
|
2413
|
+
"items": {
|
|
2414
|
+
"type": "string"
|
|
2415
|
+
},
|
|
2416
|
+
"minItems": 1
|
|
2417
|
+
},
|
|
2418
|
+
"extensions": {
|
|
2419
|
+
"type": "array",
|
|
2420
|
+
"items": {
|
|
2421
|
+
"type": "string"
|
|
2422
|
+
},
|
|
2423
|
+
"minItems": 1
|
|
2424
|
+
}
|
|
1706
2425
|
}
|
|
1707
2426
|
},
|
|
1708
2427
|
"IndexMarkdownIndices": {
|
|
1709
2428
|
"type": "object",
|
|
1710
2429
|
"description": "Markdown-view manifest rendered by the corpus-index-build skill (build.py). The builder consumes each manifest entry's `name` (renderer selector) and optional `output`.",
|
|
1711
2430
|
"additionalProperties": false,
|
|
1712
|
-
"required": [
|
|
2431
|
+
"required": [
|
|
2432
|
+
"manifest"
|
|
2433
|
+
],
|
|
1713
2434
|
"properties": {
|
|
1714
|
-
"scanDirs": {
|
|
1715
|
-
|
|
1716
|
-
|
|
2435
|
+
"scanDirs": {
|
|
2436
|
+
"type": "array",
|
|
2437
|
+
"items": {
|
|
2438
|
+
"type": "string"
|
|
2439
|
+
}
|
|
2440
|
+
},
|
|
2441
|
+
"extensions": {
|
|
2442
|
+
"type": "array",
|
|
2443
|
+
"items": {
|
|
2444
|
+
"type": "string"
|
|
2445
|
+
}
|
|
2446
|
+
},
|
|
2447
|
+
"defaultBuild": {
|
|
2448
|
+
"type": "boolean"
|
|
2449
|
+
},
|
|
1717
2450
|
"manifest": {
|
|
1718
2451
|
"type": "array",
|
|
1719
2452
|
"description": "Ordered list of markdown views to render.",
|
|
1720
2453
|
"items": {
|
|
1721
2454
|
"type": "object",
|
|
1722
2455
|
"additionalProperties": false,
|
|
1723
|
-
"required": [
|
|
2456
|
+
"required": [
|
|
2457
|
+
"name"
|
|
2458
|
+
],
|
|
1724
2459
|
"properties": {
|
|
1725
|
-
"name": {
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
2460
|
+
"name": {
|
|
2461
|
+
"type": "string",
|
|
2462
|
+
"description": "Renderer selector (by-topic, by-year, authors, by-venue, by-method, by-model-size, training-pipeline, citation-network, by-author, by-org, by-bridge, unprofiled-hubs)."
|
|
2463
|
+
},
|
|
2464
|
+
"output": {
|
|
2465
|
+
"type": "string",
|
|
2466
|
+
"description": "Output path. Default indices/<name>.md."
|
|
2467
|
+
},
|
|
2468
|
+
"description": {
|
|
2469
|
+
"type": "string",
|
|
2470
|
+
"description": "Human-facing note (metadata)."
|
|
2471
|
+
},
|
|
2472
|
+
"source": {
|
|
2473
|
+
"type": "string",
|
|
2474
|
+
"description": "Human-facing note (metadata)."
|
|
2475
|
+
}
|
|
1729
2476
|
}
|
|
1730
2477
|
}
|
|
1731
2478
|
}
|
|
@@ -1735,7 +2482,9 @@
|
|
|
1735
2482
|
"type": "object",
|
|
1736
2483
|
"description": "A non-primary git remote (mirror, upstream, publishing target)",
|
|
1737
2484
|
"additionalProperties": false,
|
|
1738
|
-
"required": [
|
|
2485
|
+
"required": [
|
|
2486
|
+
"name"
|
|
2487
|
+
],
|
|
1739
2488
|
"properties": {
|
|
1740
2489
|
"name": {
|
|
1741
2490
|
"type": "string",
|
|
@@ -1756,142 +2505,320 @@
|
|
|
1756
2505
|
"description": "Versioned, surface-aware forge-content threat-assessment policy. Missing configuration resolves to aiwg:balanced compatibility behavior.",
|
|
1757
2506
|
"additionalProperties": false,
|
|
1758
2507
|
"properties": {
|
|
1759
|
-
"schemaVersion": {
|
|
1760
|
-
|
|
1761
|
-
|
|
2508
|
+
"schemaVersion": {
|
|
2509
|
+
"type": "string",
|
|
2510
|
+
"const": "1"
|
|
2511
|
+
},
|
|
2512
|
+
"mode": {
|
|
2513
|
+
"$ref": "#/definitions/ThreatAssessmentMode"
|
|
2514
|
+
},
|
|
2515
|
+
"defaultProfile": {
|
|
2516
|
+
"type": "string",
|
|
2517
|
+
"minLength": 1
|
|
2518
|
+
},
|
|
1762
2519
|
"surfaces": {
|
|
1763
2520
|
"type": "object",
|
|
1764
2521
|
"additionalProperties": false,
|
|
1765
2522
|
"properties": {
|
|
1766
|
-
"issue-title": {
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
"
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
"
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
"
|
|
2523
|
+
"issue-title": {
|
|
2524
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2525
|
+
},
|
|
2526
|
+
"issue-body": {
|
|
2527
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2528
|
+
},
|
|
2529
|
+
"issue-comment": {
|
|
2530
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2531
|
+
},
|
|
2532
|
+
"pull-request-title": {
|
|
2533
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2534
|
+
},
|
|
2535
|
+
"pull-request-body": {
|
|
2536
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2537
|
+
},
|
|
2538
|
+
"pull-request-diff-summary": {
|
|
2539
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2540
|
+
},
|
|
2541
|
+
"review-comment": {
|
|
2542
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2543
|
+
},
|
|
2544
|
+
"release-note": {
|
|
2545
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2546
|
+
},
|
|
2547
|
+
"handoff": {
|
|
2548
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2549
|
+
},
|
|
2550
|
+
"outbound-maintainer-comment": {
|
|
2551
|
+
"$ref": "#/definitions/ThreatSurfacePolicy"
|
|
2552
|
+
}
|
|
1776
2553
|
}
|
|
1777
2554
|
},
|
|
1778
2555
|
"profiles": {
|
|
1779
2556
|
"type": "object",
|
|
1780
|
-
"propertyNames": {
|
|
1781
|
-
|
|
2557
|
+
"propertyNames": {
|
|
2558
|
+
"pattern": "^(?!aiwg:)(?!trusted$)(?!audit$)(?!balanced$)(?!strict$)(?!high-assurance$)[a-z][a-z0-9-]*$"
|
|
2559
|
+
},
|
|
2560
|
+
"additionalProperties": {
|
|
2561
|
+
"$ref": "#/definitions/ThreatProfile"
|
|
2562
|
+
}
|
|
1782
2563
|
},
|
|
1783
2564
|
"rulePacks": {
|
|
1784
2565
|
"type": "object",
|
|
1785
|
-
"propertyNames": {
|
|
1786
|
-
|
|
2566
|
+
"propertyNames": {
|
|
2567
|
+
"pattern": "^(?!aiwg:)[a-z][a-z0-9-]*$"
|
|
2568
|
+
},
|
|
2569
|
+
"additionalProperties": {
|
|
2570
|
+
"$ref": "#/definitions/ThreatRulePack"
|
|
2571
|
+
}
|
|
1787
2572
|
},
|
|
1788
2573
|
"statements": {
|
|
1789
2574
|
"type": "array",
|
|
1790
|
-
"items": {
|
|
2575
|
+
"items": {
|
|
2576
|
+
"$ref": "#/definitions/ThreatStatement"
|
|
2577
|
+
}
|
|
1791
2578
|
}
|
|
1792
2579
|
}
|
|
1793
2580
|
},
|
|
1794
2581
|
"ThreatAssessmentMode": {
|
|
1795
2582
|
"type": "string",
|
|
1796
|
-
"enum": [
|
|
2583
|
+
"enum": [
|
|
2584
|
+
"off",
|
|
2585
|
+
"audit",
|
|
2586
|
+
"enforce"
|
|
2587
|
+
]
|
|
1797
2588
|
},
|
|
1798
2589
|
"ThreatSeverity": {
|
|
1799
2590
|
"type": "string",
|
|
1800
|
-
"enum": [
|
|
2591
|
+
"enum": [
|
|
2592
|
+
"informational",
|
|
2593
|
+
"low",
|
|
2594
|
+
"moderate",
|
|
2595
|
+
"high",
|
|
2596
|
+
"critical"
|
|
2597
|
+
]
|
|
1801
2598
|
},
|
|
1802
2599
|
"ThreatSurfacePolicy": {
|
|
1803
2600
|
"type": "object",
|
|
1804
2601
|
"additionalProperties": false,
|
|
1805
2602
|
"properties": {
|
|
1806
|
-
"mode": {
|
|
1807
|
-
|
|
2603
|
+
"mode": {
|
|
2604
|
+
"$ref": "#/definitions/ThreatAssessmentMode"
|
|
2605
|
+
},
|
|
2606
|
+
"profile": {
|
|
2607
|
+
"type": "string",
|
|
2608
|
+
"minLength": 1
|
|
2609
|
+
}
|
|
1808
2610
|
}
|
|
1809
2611
|
},
|
|
1810
2612
|
"ThreatThresholds": {
|
|
1811
2613
|
"type": "object",
|
|
1812
2614
|
"additionalProperties": false,
|
|
1813
2615
|
"properties": {
|
|
1814
|
-
"flag": {
|
|
1815
|
-
|
|
1816
|
-
|
|
2616
|
+
"flag": {
|
|
2617
|
+
"$ref": "#/definitions/ThreatSeverity"
|
|
2618
|
+
},
|
|
2619
|
+
"requireAuthorization": {
|
|
2620
|
+
"$ref": "#/definitions/ThreatSeverity"
|
|
2621
|
+
},
|
|
2622
|
+
"reject": {
|
|
2623
|
+
"$ref": "#/definitions/ThreatSeverity"
|
|
2624
|
+
}
|
|
1817
2625
|
}
|
|
1818
2626
|
},
|
|
1819
2627
|
"ThreatProfile": {
|
|
1820
2628
|
"type": "object",
|
|
1821
2629
|
"additionalProperties": false,
|
|
1822
2630
|
"properties": {
|
|
1823
|
-
"version": {
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
"
|
|
1828
|
-
|
|
1829
|
-
|
|
2631
|
+
"version": {
|
|
2632
|
+
"type": "string",
|
|
2633
|
+
"minLength": 1
|
|
2634
|
+
},
|
|
2635
|
+
"extends": {
|
|
2636
|
+
"type": "array",
|
|
2637
|
+
"items": {
|
|
2638
|
+
"type": "string",
|
|
2639
|
+
"minLength": 1
|
|
2640
|
+
}
|
|
2641
|
+
},
|
|
2642
|
+
"mode": {
|
|
2643
|
+
"$ref": "#/definitions/ThreatAssessmentMode"
|
|
2644
|
+
},
|
|
2645
|
+
"description": {
|
|
2646
|
+
"type": "string"
|
|
2647
|
+
},
|
|
2648
|
+
"thresholds": {
|
|
2649
|
+
"$ref": "#/definitions/ThreatThresholds"
|
|
2650
|
+
},
|
|
2651
|
+
"ruleSets": {
|
|
2652
|
+
"type": "array",
|
|
2653
|
+
"items": {
|
|
2654
|
+
"type": "string",
|
|
2655
|
+
"minLength": 1
|
|
2656
|
+
}
|
|
2657
|
+
},
|
|
2658
|
+
"statements": {
|
|
2659
|
+
"type": "array",
|
|
2660
|
+
"items": {
|
|
2661
|
+
"$ref": "#/definitions/ThreatStatement"
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
1830
2664
|
}
|
|
1831
2665
|
},
|
|
1832
2666
|
"ThreatRulePack": {
|
|
1833
2667
|
"type": "object",
|
|
1834
2668
|
"additionalProperties": false,
|
|
1835
|
-
"required": [
|
|
2669
|
+
"required": [
|
|
2670
|
+
"version",
|
|
2671
|
+
"rules"
|
|
2672
|
+
],
|
|
1836
2673
|
"properties": {
|
|
1837
|
-
"version": {
|
|
1838
|
-
|
|
2674
|
+
"version": {
|
|
2675
|
+
"type": "string",
|
|
2676
|
+
"minLength": 1
|
|
2677
|
+
},
|
|
2678
|
+
"description": {
|
|
2679
|
+
"type": "string"
|
|
2680
|
+
},
|
|
1839
2681
|
"rules": {
|
|
1840
2682
|
"type": "array",
|
|
1841
2683
|
"minItems": 1,
|
|
1842
|
-
"items": {
|
|
2684
|
+
"items": {
|
|
2685
|
+
"$ref": "#/definitions/ThreatRule"
|
|
2686
|
+
}
|
|
1843
2687
|
}
|
|
1844
2688
|
}
|
|
1845
2689
|
},
|
|
1846
2690
|
"ThreatRule": {
|
|
1847
2691
|
"type": "object",
|
|
1848
2692
|
"additionalProperties": false,
|
|
1849
|
-
"required": [
|
|
2693
|
+
"required": [
|
|
2694
|
+
"id",
|
|
2695
|
+
"severity",
|
|
2696
|
+
"patterns"
|
|
2697
|
+
],
|
|
1850
2698
|
"properties": {
|
|
1851
|
-
"id": {
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
"
|
|
2699
|
+
"id": {
|
|
2700
|
+
"type": "string",
|
|
2701
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
2702
|
+
},
|
|
2703
|
+
"severity": {
|
|
2704
|
+
"$ref": "#/definitions/ThreatSeverity"
|
|
2705
|
+
},
|
|
2706
|
+
"likelihood": {
|
|
2707
|
+
"type": "integer",
|
|
2708
|
+
"minimum": 1,
|
|
2709
|
+
"maximum": 5
|
|
2710
|
+
},
|
|
2711
|
+
"impact": {
|
|
2712
|
+
"type": "integer",
|
|
2713
|
+
"minimum": 1,
|
|
2714
|
+
"maximum": 5
|
|
2715
|
+
},
|
|
2716
|
+
"taxonomy": {
|
|
2717
|
+
"type": "array",
|
|
2718
|
+
"items": {
|
|
2719
|
+
"type": "string"
|
|
2720
|
+
}
|
|
2721
|
+
},
|
|
1856
2722
|
"patterns": {
|
|
1857
2723
|
"type": "array",
|
|
1858
2724
|
"minItems": 1,
|
|
1859
|
-
"items": {
|
|
2725
|
+
"items": {
|
|
2726
|
+
"type": "string",
|
|
2727
|
+
"minLength": 1,
|
|
2728
|
+
"maxLength": 500
|
|
2729
|
+
}
|
|
1860
2730
|
}
|
|
1861
2731
|
}
|
|
1862
2732
|
},
|
|
1863
2733
|
"ThreatStatement": {
|
|
1864
2734
|
"type": "object",
|
|
1865
2735
|
"additionalProperties": false,
|
|
1866
|
-
"required": [
|
|
2736
|
+
"required": [
|
|
2737
|
+
"id",
|
|
2738
|
+
"effect",
|
|
2739
|
+
"reason"
|
|
2740
|
+
],
|
|
1867
2741
|
"allOf": [
|
|
1868
2742
|
{
|
|
1869
|
-
"if": {
|
|
2743
|
+
"if": {
|
|
2744
|
+
"properties": {
|
|
2745
|
+
"effect": {
|
|
2746
|
+
"const": "suppress"
|
|
2747
|
+
}
|
|
2748
|
+
}
|
|
2749
|
+
},
|
|
1870
2750
|
"then": {
|
|
1871
|
-
"required": [
|
|
2751
|
+
"required": [
|
|
2752
|
+
"signals",
|
|
2753
|
+
"when",
|
|
2754
|
+
"riskAcceptance"
|
|
2755
|
+
],
|
|
1872
2756
|
"properties": {
|
|
1873
|
-
"signals": {
|
|
2757
|
+
"signals": {
|
|
2758
|
+
"minItems": 1
|
|
2759
|
+
},
|
|
1874
2760
|
"when": {
|
|
1875
2761
|
"anyOf": [
|
|
1876
|
-
{
|
|
1877
|
-
|
|
1878
|
-
|
|
2762
|
+
{
|
|
2763
|
+
"required": [
|
|
2764
|
+
"surface"
|
|
2765
|
+
]
|
|
2766
|
+
},
|
|
2767
|
+
{
|
|
2768
|
+
"required": [
|
|
2769
|
+
"semanticContext"
|
|
2770
|
+
]
|
|
2771
|
+
},
|
|
2772
|
+
{
|
|
2773
|
+
"required": [
|
|
2774
|
+
"requestedAction"
|
|
2775
|
+
]
|
|
2776
|
+
}
|
|
1879
2777
|
]
|
|
1880
2778
|
}
|
|
1881
2779
|
}
|
|
1882
2780
|
}
|
|
1883
2781
|
},
|
|
1884
2782
|
{
|
|
1885
|
-
"if": {
|
|
1886
|
-
|
|
2783
|
+
"if": {
|
|
2784
|
+
"properties": {
|
|
2785
|
+
"effect": {
|
|
2786
|
+
"const": "set-severity"
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
},
|
|
2790
|
+
"then": {
|
|
2791
|
+
"required": [
|
|
2792
|
+
"severity"
|
|
2793
|
+
]
|
|
2794
|
+
}
|
|
1887
2795
|
}
|
|
1888
2796
|
],
|
|
1889
2797
|
"properties": {
|
|
1890
|
-
"id": {
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
"
|
|
2798
|
+
"id": {
|
|
2799
|
+
"type": "string",
|
|
2800
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
2801
|
+
},
|
|
2802
|
+
"effect": {
|
|
2803
|
+
"type": "string",
|
|
2804
|
+
"enum": [
|
|
2805
|
+
"suppress",
|
|
2806
|
+
"set-severity"
|
|
2807
|
+
]
|
|
2808
|
+
},
|
|
2809
|
+
"signals": {
|
|
2810
|
+
"type": "array",
|
|
2811
|
+
"items": {
|
|
2812
|
+
"type": "string"
|
|
2813
|
+
}
|
|
2814
|
+
},
|
|
2815
|
+
"severity": {
|
|
2816
|
+
"$ref": "#/definitions/ThreatSeverity"
|
|
2817
|
+
},
|
|
2818
|
+
"reason": {
|
|
2819
|
+
"type": "string",
|
|
2820
|
+
"minLength": 1
|
|
2821
|
+
},
|
|
1895
2822
|
"when": {
|
|
1896
2823
|
"type": "object",
|
|
1897
2824
|
"additionalProperties": false,
|
|
@@ -1900,24 +2827,60 @@
|
|
|
1900
2827
|
"type": "array",
|
|
1901
2828
|
"items": {
|
|
1902
2829
|
"type": "string",
|
|
1903
|
-
"enum": [
|
|
2830
|
+
"enum": [
|
|
2831
|
+
"issue-title",
|
|
2832
|
+
"issue-body",
|
|
2833
|
+
"issue-comment",
|
|
2834
|
+
"pull-request-title",
|
|
2835
|
+
"pull-request-body",
|
|
2836
|
+
"pull-request-diff-summary",
|
|
2837
|
+
"review-comment",
|
|
2838
|
+
"release-note",
|
|
2839
|
+
"handoff",
|
|
2840
|
+
"outbound-maintainer-comment"
|
|
2841
|
+
]
|
|
1904
2842
|
}
|
|
1905
2843
|
},
|
|
1906
2844
|
"semanticContext": {
|
|
1907
2845
|
"type": "array",
|
|
1908
|
-
"items": {
|
|
2846
|
+
"items": {
|
|
2847
|
+
"type": "string",
|
|
2848
|
+
"enum": [
|
|
2849
|
+
"requested",
|
|
2850
|
+
"negative",
|
|
2851
|
+
"quoted",
|
|
2852
|
+
"documentation"
|
|
2853
|
+
]
|
|
2854
|
+
}
|
|
1909
2855
|
},
|
|
1910
|
-
"requestedAction": {
|
|
2856
|
+
"requestedAction": {
|
|
2857
|
+
"type": "array",
|
|
2858
|
+
"items": {
|
|
2859
|
+
"type": "string"
|
|
2860
|
+
}
|
|
2861
|
+
}
|
|
1911
2862
|
}
|
|
1912
2863
|
},
|
|
1913
2864
|
"riskAcceptance": {
|
|
1914
2865
|
"type": "object",
|
|
1915
2866
|
"additionalProperties": false,
|
|
1916
|
-
"required": [
|
|
2867
|
+
"required": [
|
|
2868
|
+
"acceptedBy",
|
|
2869
|
+
"rationale"
|
|
2870
|
+
],
|
|
1917
2871
|
"properties": {
|
|
1918
|
-
"acceptedBy": {
|
|
1919
|
-
|
|
1920
|
-
|
|
2872
|
+
"acceptedBy": {
|
|
2873
|
+
"type": "string",
|
|
2874
|
+
"minLength": 1
|
|
2875
|
+
},
|
|
2876
|
+
"rationale": {
|
|
2877
|
+
"type": "string",
|
|
2878
|
+
"minLength": 1
|
|
2879
|
+
},
|
|
2880
|
+
"expiresAt": {
|
|
2881
|
+
"type": "string",
|
|
2882
|
+
"format": "date-time"
|
|
2883
|
+
}
|
|
1921
2884
|
}
|
|
1922
2885
|
}
|
|
1923
2886
|
}
|