@nebulacomponents/citable 1.18.1 → 1.19.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.
- package/CHANGELOG.md +76 -0
- package/dist/universal/.agents/skills/citable/SKILL.md +1 -1
- package/dist/universal/.agents/skills/citable/VERSION +1 -1
- package/dist/universal/.agents/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.agents/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.agents/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.agents/skills/citable/manifest.json +15 -10
- package/dist/universal/.agents/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.agents/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.agents/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.agents/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.agents/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.agents/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.agents/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.claude/agents/citable/manifest.json +2 -2
- package/dist/universal/.claude/skills/citable/SKILL.md +1 -1
- package/dist/universal/.claude/skills/citable/VERSION +1 -1
- package/dist/universal/.claude/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.claude/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.claude/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.claude/skills/citable/manifest.json +15 -10
- package/dist/universal/.claude/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.claude/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.claude/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.claude/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.claude/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.claude/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.claude/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.cursor/skills/citable/SKILL.md +1 -1
- package/dist/universal/.cursor/skills/citable/VERSION +1 -1
- package/dist/universal/.cursor/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.cursor/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.cursor/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.cursor/skills/citable/manifest.json +15 -10
- package/dist/universal/.cursor/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.cursor/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.cursor/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.cursor/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.cursor/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.cursor/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.cursor/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.gemini/skills/citable/SKILL.md +1 -1
- package/dist/universal/.gemini/skills/citable/VERSION +1 -1
- package/dist/universal/.gemini/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.gemini/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.gemini/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.gemini/skills/citable/manifest.json +15 -10
- package/dist/universal/.gemini/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.gemini/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.gemini/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.gemini/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.gemini/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.gemini/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.gemini/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.github/skills/citable/SKILL.md +1 -1
- package/dist/universal/.github/skills/citable/VERSION +1 -1
- package/dist/universal/.github/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.github/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.github/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.github/skills/citable/manifest.json +15 -10
- package/dist/universal/.github/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.github/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.github/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.github/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.github/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.github/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.github/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.kiro/skills/citable/SKILL.md +1 -1
- package/dist/universal/.kiro/skills/citable/VERSION +1 -1
- package/dist/universal/.kiro/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.kiro/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.kiro/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.kiro/skills/citable/manifest.json +15 -10
- package/dist/universal/.kiro/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.kiro/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.kiro/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.kiro/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.kiro/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.kiro/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.kiro/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.opencode/skills/citable/SKILL.md +1 -1
- package/dist/universal/.opencode/skills/citable/VERSION +1 -1
- package/dist/universal/.opencode/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.opencode/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.opencode/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.opencode/skills/citable/manifest.json +15 -10
- package/dist/universal/.opencode/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.opencode/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.opencode/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.opencode/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.opencode/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.opencode/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.opencode/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.pi/agent/skills/citable/SKILL.md +1 -1
- package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
- package/dist/universal/.pi/agent/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.pi/agent/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.pi/agent/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.pi/agent/skills/citable/manifest.json +15 -10
- package/dist/universal/.pi/agent/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.pi/agent/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.qoder/skills/citable/SKILL.md +1 -1
- package/dist/universal/.qoder/skills/citable/VERSION +1 -1
- package/dist/universal/.qoder/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.qoder/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.qoder/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.qoder/skills/citable/manifest.json +15 -10
- package/dist/universal/.qoder/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.qoder/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.qoder/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.qoder/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.qoder/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.qoder/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.qoder/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.rovodev/skills/citable/SKILL.md +1 -1
- package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
- package/dist/universal/.rovodev/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.rovodev/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.rovodev/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.rovodev/skills/citable/manifest.json +15 -10
- package/dist/universal/.rovodev/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.rovodev/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.rovodev/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.rovodev/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.rovodev/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.rovodev/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.rovodev/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.trae/skills/citable/SKILL.md +1 -1
- package/dist/universal/.trae/skills/citable/VERSION +1 -1
- package/dist/universal/.trae/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.trae/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.trae/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.trae/skills/citable/manifest.json +15 -10
- package/dist/universal/.trae/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.trae/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.trae/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.trae/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.trae/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.trae/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.trae/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.trae-cn/skills/citable/SKILL.md +1 -1
- package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
- package/dist/universal/.trae-cn/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.trae-cn/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.trae-cn/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.trae-cn/skills/citable/manifest.json +15 -10
- package/dist/universal/.trae-cn/skills/citable/schemas/browser-evidence-plan.schema.json +186 -3
- package/dist/universal/.trae-cn/skills/citable/schemas/browser-network-events.schema.json +142 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/browser-runtime-events.schema.json +112 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/browser-state-observations.schema.json +97 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/manifest.json +184 -124
- package/package.json +2 -1
- package/schemas/browser-evidence-plan.schema.json +186 -3
- package/schemas/browser-network-events.schema.json +142 -0
- package/schemas/browser-runtime-events.schema.json +112 -0
- package/schemas/browser-state-observations.schema.json +97 -0
- package/schemas/cro-report.schema.json +112 -0
- package/schemas/search-report.schema.json +99 -0
- package/schemas/sow.schema.json +3 -2
- package/skill/SKILL.md +1 -1
- package/skill/commands/artifact-interchange.md +5 -0
- package/skill/commands/remediation.md +1 -1
- package/skill/commands/sow.md +2 -2
- package/src/analysis/behavioral.js +5 -4
- package/src/analysis/eeat.js +10 -9
- package/src/analysis/offpage.js +19 -36
- package/src/analysis/readiness.js +8 -2
- package/src/artifacts/verifyCustomerArtifact.js +283 -0
- package/src/cli/index.js +8 -1
- package/src/observations/browser/correlation.js +83 -0
- package/src/observations/browser/networkCollector.js +413 -0
- package/src/observations/browser/runtimeEventCollector.js +337 -0
- package/src/observations/browser/sanitizer.js +322 -0
- package/src/observations/browser/stateCollector.js +386 -0
- package/src/observations/browserJourney.js +131 -3
- package/src/reporting/executiveCroReport.js +393 -229
- package/src/reporting/executiveExport.js +6 -2
- package/src/reporting/executiveSearchReport.js +519 -271
- package/src/shared/domainUtils.js +140 -0
- package/src/shared/epistemicStatus.js +111 -0
- package/src/shared/evidenceSourceResolver.js +286 -0
- package/src/shared/htmlEscape.js +65 -0
- package/src/shared/runPackageVerifier.js +153 -0
- package/src/sow/admissibilityGate.js +20 -2
- package/src/sow/generateSow.js +125 -159
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "citable://schemas/cro-report.schema.json",
|
|
4
|
+
"title": "Enterprise CRO & Journey Intelligence Executive Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"fact_status",
|
|
8
|
+
"report_title",
|
|
9
|
+
"client_name",
|
|
10
|
+
"target_domain",
|
|
11
|
+
"generated_at",
|
|
12
|
+
"overall_conversion_readiness",
|
|
13
|
+
"pillars",
|
|
14
|
+
"evidence_register",
|
|
15
|
+
"decision_summary",
|
|
16
|
+
"generation_provenance"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"$schema": { "type": "string" },
|
|
20
|
+
"fact_status": { "type": "string" },
|
|
21
|
+
"epistemic_status": { "type": "string" },
|
|
22
|
+
"report_title": { "type": "string" },
|
|
23
|
+
"client_name": { "type": "string" },
|
|
24
|
+
"target_domain": { "type": "string" },
|
|
25
|
+
"generated_at": { "type": "string" },
|
|
26
|
+
"overall_conversion_readiness": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
27
|
+
"epistemological_framework": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"properties": {
|
|
30
|
+
"observation": { "type": "string" },
|
|
31
|
+
"hypothesis": { "type": "string" },
|
|
32
|
+
"causation": { "type": "string" },
|
|
33
|
+
"unknowns": { "type": "string" }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"pillars": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"required": [
|
|
39
|
+
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
|
|
40
|
+
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
|
|
41
|
+
"21", "22", "23", "24", "25"
|
|
42
|
+
],
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"patternProperties": {
|
|
45
|
+
"^[0-9]+$": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"required": ["name", "data"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"name": { "type": "string" },
|
|
50
|
+
"data": {}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"evidence_register": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"required": ["evidence_id", "source", "methodology", "confidence_level"],
|
|
60
|
+
"properties": {
|
|
61
|
+
"evidence_id": { "type": "string", "pattern": "^EVD-CRO-[0-9]+$" },
|
|
62
|
+
"source": { "type": "string" },
|
|
63
|
+
"title": { "type": "string" },
|
|
64
|
+
"observation_date": { "type": "string" },
|
|
65
|
+
"methodology": { "type": "string" },
|
|
66
|
+
"confidence_level": { "type": "string" },
|
|
67
|
+
"data_snapshot": {}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"decision_summary": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"required": [
|
|
74
|
+
"observed_conversion_failures",
|
|
75
|
+
"evidence_supported_hypotheses",
|
|
76
|
+
"causal_findings",
|
|
77
|
+
"unresolved_unknowns",
|
|
78
|
+
"recommended_interventions"
|
|
79
|
+
],
|
|
80
|
+
"properties": {
|
|
81
|
+
"observed_conversion_failures": { "type": "array", "items": { "type": "string" } },
|
|
82
|
+
"evidence_supported_hypotheses": { "type": "array", "items": { "type": "string" } },
|
|
83
|
+
"causal_findings": { "type": "array", "items": { "type": "string" } },
|
|
84
|
+
"unresolved_unknowns": { "type": "array", "items": { "type": "string" } },
|
|
85
|
+
"recommended_interventions": { "type": "array", "items": { "type": "string" } }
|
|
86
|
+
},
|
|
87
|
+
"additionalProperties": false
|
|
88
|
+
},
|
|
89
|
+
"generation_provenance": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"required": [
|
|
92
|
+
"generated_at",
|
|
93
|
+
"generator_version",
|
|
94
|
+
"generation_mode",
|
|
95
|
+
"source_type",
|
|
96
|
+
"synthetic_evidence"
|
|
97
|
+
],
|
|
98
|
+
"properties": {
|
|
99
|
+
"generated_at": { "type": "string" },
|
|
100
|
+
"generator_version": { "type": "string" },
|
|
101
|
+
"generation_mode": { "type": "string", "enum": ["CONTRACTUAL", "DRAFT", "NON_CONTRACTUAL_SAMPLE"] },
|
|
102
|
+
"source_type": { "type": "string" },
|
|
103
|
+
"source_identifier": { "type": ["string", "null"] },
|
|
104
|
+
"source_findings_count": { "type": "integer", "minimum": 0 },
|
|
105
|
+
"integrity_hash": { "type": ["string", "null"] },
|
|
106
|
+
"synthetic_evidence": { "type": "boolean" }
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "citable://schemas/search-report.schema.json",
|
|
4
|
+
"title": "Enterprise Search Intelligence & Governance Executive Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"fact_status",
|
|
8
|
+
"report_title",
|
|
9
|
+
"client_name",
|
|
10
|
+
"target_domain",
|
|
11
|
+
"generated_at",
|
|
12
|
+
"overall_readiness_score",
|
|
13
|
+
"pillars",
|
|
14
|
+
"evidence_register",
|
|
15
|
+
"decision_summary",
|
|
16
|
+
"generation_provenance"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"$schema": { "type": "string" },
|
|
20
|
+
"fact_status": { "type": "string" },
|
|
21
|
+
"epistemic_status": { "type": "string" },
|
|
22
|
+
"report_title": { "type": "string" },
|
|
23
|
+
"client_name": { "type": "string" },
|
|
24
|
+
"target_domain": { "type": "string" },
|
|
25
|
+
"generated_at": { "type": "string" },
|
|
26
|
+
"overall_readiness_score": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
27
|
+
"pillars": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"required": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"],
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"patternProperties": {
|
|
32
|
+
"^[0-9]+$": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["name", "data"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"name": { "type": "string" },
|
|
37
|
+
"data": {}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"evidence_register": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"required": ["evidence_id", "source", "methodology", "confidence_level"],
|
|
47
|
+
"properties": {
|
|
48
|
+
"evidence_id": { "type": "string", "pattern": "^EVD-SRCH-[0-9]+$" },
|
|
49
|
+
"source": { "type": "string" },
|
|
50
|
+
"title": { "type": "string" },
|
|
51
|
+
"observation_date": { "type": "string" },
|
|
52
|
+
"methodology": { "type": "string" },
|
|
53
|
+
"confidence_level": { "type": "string" },
|
|
54
|
+
"data_snapshot": {}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"decision_summary": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": [
|
|
61
|
+
"confirmed_findings",
|
|
62
|
+
"inferred_opportunities",
|
|
63
|
+
"unresolved_unknowns",
|
|
64
|
+
"strategic_risks",
|
|
65
|
+
"actions_requiring_leadership_approval"
|
|
66
|
+
],
|
|
67
|
+
"properties": {
|
|
68
|
+
"confirmed_findings": { "type": "array", "items": { "type": "string" } },
|
|
69
|
+
"inferred_opportunities": { "type": "array", "items": { "type": "string" } },
|
|
70
|
+
"unresolved_unknowns": { "type": "array", "items": { "type": "string" } },
|
|
71
|
+
"strategic_risks": { "type": "array", "items": { "type": "string" } },
|
|
72
|
+
"actions_requiring_leadership_approval": { "type": "array", "items": { "type": "string" } }
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
},
|
|
76
|
+
"generation_provenance": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"required": [
|
|
79
|
+
"generated_at",
|
|
80
|
+
"generator_version",
|
|
81
|
+
"generation_mode",
|
|
82
|
+
"source_type",
|
|
83
|
+
"synthetic_evidence"
|
|
84
|
+
],
|
|
85
|
+
"properties": {
|
|
86
|
+
"generated_at": { "type": "string" },
|
|
87
|
+
"generator_version": { "type": "string" },
|
|
88
|
+
"generation_mode": { "type": "string", "enum": ["CONTRACTUAL", "DRAFT", "NON_CONTRACTUAL_SAMPLE"] },
|
|
89
|
+
"source_type": { "type": "string" },
|
|
90
|
+
"source_identifier": { "type": ["string", "null"] },
|
|
91
|
+
"source_findings_count": { "type": "integer", "minimum": 0 },
|
|
92
|
+
"integrity_hash": { "type": ["string", "null"] },
|
|
93
|
+
"synthetic_evidence": { "type": "boolean" }
|
|
94
|
+
},
|
|
95
|
+
"additionalProperties": false
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"additionalProperties": false
|
|
99
|
+
}
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"additionalProperties": false
|
|
54
54
|
},
|
|
55
|
-
"effective_date": { "type": "string" },
|
|
55
|
+
"effective_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" },
|
|
56
56
|
"term_days": { "type": "integer", "minimum": 1 },
|
|
57
57
|
"currency": { "type": "string", "enum": ["USD"] },
|
|
58
58
|
"currency_minor_unit_exponent": { "type": "integer", "enum": [2] },
|
|
@@ -377,7 +377,8 @@
|
|
|
377
377
|
"evidence_ids": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
|
|
378
378
|
"severity": { "type": "string" },
|
|
379
379
|
"target_subject": { "type": "string" },
|
|
380
|
-
"acceptance_criteria": { "type": "string" }
|
|
380
|
+
"acceptance_criteria": { "type": "string" },
|
|
381
|
+
"acceptance_basis": { "type": "string" }
|
|
381
382
|
},
|
|
382
383
|
"additionalProperties": false
|
|
383
384
|
}
|
|
@@ -7,7 +7,7 @@ description: >
|
|
|
7
7
|
generative engine optimization, structured data governance, claim substantiation,
|
|
8
8
|
crawler policy, entity consistency, content discoverability, or wants a site audited
|
|
9
9
|
for how search and AI systems will retrieve, understand, cite, or recommend it.
|
|
10
|
-
version: 1.
|
|
10
|
+
version: 1.19.0
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Citable — evidence and change control for search and AI citation readiness
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.19.0
|
|
@@ -7,6 +7,7 @@ external workspaces without changing its canonical bytes.
|
|
|
7
7
|
citable artifacts export <run-id> --output <directory>
|
|
8
8
|
citable artifacts verify --input <directory>
|
|
9
9
|
citable artifacts import --input <directory>
|
|
10
|
+
citable artifacts verify-customer <file>
|
|
10
11
|
```
|
|
11
12
|
|
|
12
13
|
An export contains the original run package plus
|
|
@@ -26,3 +27,7 @@ was authentic, that external observations were representative or complete, or
|
|
|
26
27
|
that an intervention caused an outcome. Hosted tenancy, authentication,
|
|
27
28
|
storage, retention, billing, scheduling, and dashboards are outside this
|
|
28
29
|
contract.
|
|
30
|
+
|
|
31
|
+
Use `citable artifacts verify-customer <file>` to validate customer deliverables
|
|
32
|
+
(SOW, Search, and CRO JSON reports) against their JSON Schemas, verify arithmetic
|
|
33
|
+
consistency (e.g. minor-unit fee totals), and reject unescaped script or event handler injections.
|
|
@@ -12,7 +12,7 @@ The remediation suite provides safe, gated code fixes for deterministic technica
|
|
|
12
12
|
|
|
13
13
|
## 1. Safe Patch Application (`citable remediate`)
|
|
14
14
|
|
|
15
|
-
1. **Framework Detection**: Identifies target source syntax (`jsx`, `tsx`, `vue`, `html`). Fails closed on unknown or ambiguous frameworks.
|
|
15
|
+
1. **Framework Detection**: Identifies target source syntax (`jsx`, `tsx`, `vue`, `svelte`, `html`). Fails closed on unknown or ambiguous frameworks.
|
|
16
16
|
2. **Idempotent AST Patching**: Patches are mathematically verified to be idempotent (`applyPatchDetailed`): applying the patch a second time produces an identical AST (a fixed point).
|
|
17
17
|
3. **Structural Validation Gate**: Runs `validatePatchedSource` to confirm that the patch does not break AST structure, introduce syntax errors, or alter unrelated code blocks.
|
|
18
18
|
4. **Confidence Threshold**: Computes an explicit multi-factor confidence score (`computeConfidence`). `--write` is refused if confidence falls below `0.70`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
command: /citable sow generate [--target <dir|url>] [--run <id>] [--budget <amount>] [--budget-minor <cents>] [--format md|html|json] [--output <path>] [--sample] [--draft]
|
|
3
|
-
purpose: Generate a contractually binding, evidence-traceable enterprise Statement of Work (SOW) from verified audit findings through a formal
|
|
3
|
+
purpose: Generate a contractually binding, evidence-traceable enterprise Statement of Work (SOW) from verified audit findings through a formal 8-gate scope admissibility filter and 7-column traceability matrix.
|
|
4
4
|
preconditions: [at least one finalized audit run with verified findings or live target; sample mode required for synthetic demonstrations]
|
|
5
5
|
failure_behaviour: absent or unverified findings in contractual mode -> NoFindingsError; all findings refused -> NoAdmissibleRequirementsError; non-existent run -> RunNotFoundError; negative or sub-cent budget -> BudgetCalculationError; invariant drift -> SowInvariantError
|
|
6
6
|
artifacts_created: [SOW.md, SOW.html, or SOW.json at specified output path]
|
|
@@ -34,7 +34,7 @@ Acceptance Test (automated closed-loop detector rerun)
|
|
|
34
34
|
|
|
35
35
|
## 2. The Scope Admissibility Gate
|
|
36
36
|
|
|
37
|
-
Audit findings do NOT automatically become contractual obligations. Every candidate finding must pass
|
|
37
|
+
Audit findings do NOT automatically become contractual obligations. Every candidate finding must pass 8 admissibility gates:
|
|
38
38
|
|
|
39
39
|
| Gate | Verification Check | Failure Refusal Code | Contractual Handling |
|
|
40
40
|
| :--- | :--- | :--- | :--- |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "citable",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"managedBy": "citable-cli",
|
|
5
5
|
"provider": "cursor",
|
|
6
6
|
"providerName": "Cursor",
|
|
7
7
|
"scope": "bundle",
|
|
8
|
-
"sourcePackage": "@nebulacomponents/citable@1.
|
|
8
|
+
"sourcePackage": "@nebulacomponents/citable@1.19.0",
|
|
9
9
|
"variantPath": ".cursor/skills/citable",
|
|
10
10
|
"agentProfiles": {
|
|
11
11
|
"status": "unsupported",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"agents/citable-semantic-reviewer.md": "sha256:77582263a048ea41ae3f7ee326dbd036222fab81ed83bda98034ec83ee21ef2e",
|
|
18
18
|
"agents/citable-sow-architect.md": "sha256:d55cf8bc2ab8f364c0d95ec39fc44406684110d1e4d1ff2e34702ded003094b4",
|
|
19
19
|
"commands/action-findings.md": "sha256:b1d5c4d8d8b1092bc73b99430bea0a2e460031658e42bed33eb94da9a3c0e48f",
|
|
20
|
-
"commands/artifact-interchange.md": "sha256:
|
|
20
|
+
"commands/artifact-interchange.md": "sha256:300062880e141b80ce23024c0a9b309e93a1e2aeb87e22a68860d27388a3acb7",
|
|
21
21
|
"commands/delivery.md": "sha256:3b29250f9e9f84442812e320a70d5d2784b4286e91af3866f99cb6062a85a10f",
|
|
22
22
|
"commands/field-validation.md": "sha256:4f24b2758eef746d704b218364f1e45ee9e07418c8ae111081b1fd41f93dde2d",
|
|
23
23
|
"commands/governance.md": "sha256:41792a2a08930c604cc7b635c23fb3cbdeebc5af610ef38c795f1a412c4a0816",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"commands/page-work.md": "sha256:965a66e59bdf7b0da482d26fade53b3d265885ece5d463fe83b0789ebefaef3e",
|
|
30
30
|
"commands/plan-audit.md": "sha256:69875c9654e13b84566dafb16afe5afe08cffb9f3bded1f2d8d2261ae871c869",
|
|
31
31
|
"commands/README.md": "sha256:683b226020582dd93e24a2fb59ce6264735f44eb26353f977153034a615f871c",
|
|
32
|
-
"commands/remediation.md": "sha256:
|
|
32
|
+
"commands/remediation.md": "sha256:f2a90608079d823b8192aa7acad8a60c923ac02b4e01e5ca653f45e9f52c7998",
|
|
33
33
|
"commands/reporting.md": "sha256:f560f3c8349fcdaf6d3c3a27968016e20ef42ef2473292f7b83260cfb4b3b2e6",
|
|
34
34
|
"commands/reviews.md": "sha256:902904aaa405fe5724cf0662c7a5a36eab9a4fe0eb81cbd95ffa2fff946e0ac8",
|
|
35
|
-
"commands/sow.md": "sha256:
|
|
35
|
+
"commands/sow.md": "sha256:caf4b7e4b9f0e801fbc86f40e6efb8a057d1243dc488b0bc629b8fb2b90c6933",
|
|
36
36
|
"commands/validate-render.md": "sha256:a8e1d04d40b84d57c35039250d98c6a7302cd44a148a8c3b9d9cfb92678c4347",
|
|
37
37
|
"policies/crawler-policy-template.md": "sha256:15c88a4eeb21f53f71e5250dd3eb2d2791a814b304eaefce8bb30e2bdf2e2e59",
|
|
38
38
|
"references/aeo-geo-validation.md": "sha256:4b0041764f2fdbfbff1e1a2907eaed02cf0aef491254a9c98ec9250ff1084e80",
|
|
@@ -59,7 +59,10 @@
|
|
|
59
59
|
"schemas/artifact-interchange.schema.json": "sha256:c6f628934c8a1b8ea2996e03c2c5abd46c2a0e74c680b0a43e44c2343dc9aa21",
|
|
60
60
|
"schemas/assumption.schema.json": "sha256:31a0f44bbf1d207e013961ec4c39eea85c3ae9efde1485b5e26084562c816844",
|
|
61
61
|
"schemas/bing-webmaster.schema.json": "sha256:8357c518a8cb4ccd1def2da38950fbba68270e2b1613ad522b50c568a3b8538f",
|
|
62
|
-
"schemas/browser-evidence-plan.schema.json": "sha256:
|
|
62
|
+
"schemas/browser-evidence-plan.schema.json": "sha256:1df677fb08338b832d93af2aabec565ef8d621c820cbc77f847dc1c94a814256",
|
|
63
|
+
"schemas/browser-network-events.schema.json": "sha256:aa71380998df74cff929316d7c76332a74c16cd08504214cdb2b86d9d793fee5",
|
|
64
|
+
"schemas/browser-runtime-events.schema.json": "sha256:ff9b6e486ca5a72a6613a4e3e479cd11bcadff52c7481df125aa1670f404a7e4",
|
|
65
|
+
"schemas/browser-state-observations.schema.json": "sha256:7748b9ed7110834e19c1827bd125c0d0cdb50e2dd89a713da03cd643e9c72843",
|
|
63
66
|
"schemas/canonical-index-import.schema.json": "sha256:ef633662cb30873242ca356443bc4835afe56bb020208e8f42fa47ac8047b66e",
|
|
64
67
|
"schemas/claim.schema.json": "sha256:ce79ccbfa34ece9b7a309a6962522ea06a1f44c468b4c472b5c376554a788537",
|
|
65
68
|
"schemas/cli-output-envelope.schema.json": "sha256:6964e8f2f43618bfd0d7a3f5344b37ebc26f04779796bb8ff4675b935b6208c3",
|
|
@@ -71,6 +74,7 @@
|
|
|
71
74
|
"schemas/corroboration-import.schema.json": "sha256:927983d0590f1ec569e86195d2031be0cd212f9436ff98acca468cbae108d85e",
|
|
72
75
|
"schemas/crawler-identity.schema.json": "sha256:e1e3e6da203a8bc49fba8f9bbde525368891db022d542fc615b677401825351d",
|
|
73
76
|
"schemas/crawler.schema.json": "sha256:1a113dfb80bc6cde904c3ea648c82ea1d88fe50f2c1a0e7175d44abba28ac64e",
|
|
77
|
+
"schemas/cro-report.schema.json": "sha256:270cfe946d3dce007672c5fd5e052f07e3322c85a2bfcc0cd47f34ce569f2fb1",
|
|
74
78
|
"schemas/customer-outcome.schema.json": "sha256:c0cdfee31a692feadb31dc6be734d45ae178ee53f28349c2a9e7504bdfcf9e50",
|
|
75
79
|
"schemas/decision.schema.json": "sha256:7c30f3ad83a6aa0b67ecc51ac6691e5e041b633d01bab17cee2b5218d926204e",
|
|
76
80
|
"schemas/deployment-receipt.schema.json": "sha256:789455907e7f3039fd55ee5b2568e09871128f513f5ddfe1f3afac1a4dd6b2bd",
|
|
@@ -111,13 +115,14 @@
|
|
|
111
115
|
"schemas/sampling-plan.schema.json": "sha256:005f70f149baaacd7de698548d556d3e401c630978748271b0e14a74726dd413",
|
|
112
116
|
"schemas/scenario.schema.json": "sha256:3f5bc2032d08f973600db068f475176a0e4706b33be42f99c778fe755a0ff38b",
|
|
113
117
|
"schemas/schedule.schema.json": "sha256:645df065bf33577a960c0bf8bb97e141e9326840303569468dae8a553d468482",
|
|
118
|
+
"schemas/search-report.schema.json": "sha256:0ae2dad77cf3c6f2abac22a8180d66bde8ebd044ed6324a56329cd12a3c898f2",
|
|
114
119
|
"schemas/source-identity-chain.schema.json": "sha256:a65d9c12eaed1bd6b637c66a2f9362c17287fdfcb454d8676fb611d2d28aa019",
|
|
115
|
-
"schemas/sow.schema.json": "sha256:
|
|
120
|
+
"schemas/sow.schema.json": "sha256:3a3fd6048a747a9bc0cfaea98920376b043616a33c953a9eb8b74d0ae32dded0",
|
|
116
121
|
"schemas/variance.schema.json": "sha256:68389f64f0a3be13ff8951e8eefba9a5c31d0738325cb47e37c1a8435bea48f0",
|
|
117
122
|
"scripts/README.md": "sha256:9eee4e8beb4579a183bd714c9dd24b83abd020753eada5caeffae004739d60b5",
|
|
118
|
-
"SKILL.md": "sha256:
|
|
123
|
+
"SKILL.md": "sha256:70629652ec22ece59e4ddef9198ce9e77f9d4da74eab14a4ccdf99d67c393ab1",
|
|
119
124
|
"templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
|
|
120
|
-
"VERSION": "sha256:
|
|
125
|
+
"VERSION": "sha256:c55c898de5079ee498d5f051b29815688154292df4d72ab91f1edb5497ac4e6e"
|
|
121
126
|
},
|
|
122
|
-
"treeHash": "sha256:
|
|
127
|
+
"treeHash": "sha256:0343fe90b5b631f5405e5c6390355f4fc6f926d0cf9e49946f3bed921b29ff2e"
|
|
123
128
|
}
|
|
@@ -5,6 +5,181 @@
|
|
|
5
5
|
"type": "object",
|
|
6
6
|
"additionalProperties": false,
|
|
7
7
|
"required": ["schema_version", "plan_id", "target", "profiles", "limitations"],
|
|
8
|
+
"definitions": {
|
|
9
|
+
"network_policy": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"enabled": { "type": "boolean" },
|
|
14
|
+
"allowed_host_patterns": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": { "type": "string", "minLength": 1 }
|
|
17
|
+
},
|
|
18
|
+
"allowed_methods": {
|
|
19
|
+
"type": "array",
|
|
20
|
+
"items": { "type": "string", "enum": ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"] }
|
|
21
|
+
},
|
|
22
|
+
"allowed_resource_types": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": { "type": "string", "enum": ["document", "stylesheet", "image", "media", "font", "script", "texttrack", "xhr", "fetch", "eventsource", "websocket", "manifest", "other"] }
|
|
25
|
+
},
|
|
26
|
+
"capture_request_headers": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": { "type": "string", "minLength": 1 }
|
|
29
|
+
},
|
|
30
|
+
"capture_response_headers": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": { "type": "string", "minLength": 1 }
|
|
33
|
+
},
|
|
34
|
+
"capture_query_params": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": { "type": "string", "minLength": 1 }
|
|
37
|
+
},
|
|
38
|
+
"capture_payload": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": false,
|
|
41
|
+
"properties": {
|
|
42
|
+
"request_body": { "type": "boolean" },
|
|
43
|
+
"response_body": { "type": "boolean" },
|
|
44
|
+
"allowed_json_fields": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": { "type": "string", "minLength": 1 }
|
|
47
|
+
},
|
|
48
|
+
"hash_only": { "type": "boolean" },
|
|
49
|
+
"max_bytes": { "type": "integer", "minimum": 0, "maximum": 65536 }
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"max_events": { "type": "integer", "minimum": 1, "maximum": 1000 },
|
|
53
|
+
"max_field_size": { "type": "integer", "minimum": 1, "maximum": 8192 },
|
|
54
|
+
"settling_timeout_ms": { "type": "integer", "minimum": 0, "maximum": 5000 }
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"state_policy": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"properties": {
|
|
61
|
+
"enabled": { "type": "boolean" },
|
|
62
|
+
"checkpoints": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"items": { "type": "string", "enum": ["initial", "step", "final"] }
|
|
65
|
+
},
|
|
66
|
+
"capture_url": { "type": "boolean" },
|
|
67
|
+
"allowed_query_params": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": { "type": "string", "minLength": 1 }
|
|
70
|
+
},
|
|
71
|
+
"capture_referrer": { "type": "boolean" },
|
|
72
|
+
"capture_navigation": { "type": "boolean" },
|
|
73
|
+
"cookies": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": false,
|
|
76
|
+
"properties": {
|
|
77
|
+
"allowed_names": {
|
|
78
|
+
"type": "array",
|
|
79
|
+
"items": { "type": "string", "minLength": 1 }
|
|
80
|
+
},
|
|
81
|
+
"mode": { "enum": ["presence_only", "hash_only", "allowlist_values"] },
|
|
82
|
+
"max_keys": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"local_storage": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"properties": {
|
|
89
|
+
"allowed_keys": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"items": { "type": "string", "minLength": 1 }
|
|
92
|
+
},
|
|
93
|
+
"mode": { "enum": ["presence_only", "hash_only", "allowlist_values"] },
|
|
94
|
+
"max_keys": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"session_storage": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"additionalProperties": false,
|
|
100
|
+
"properties": {
|
|
101
|
+
"allowed_keys": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": { "type": "string", "minLength": 1 }
|
|
104
|
+
},
|
|
105
|
+
"mode": { "enum": ["presence_only", "hash_only", "allowlist_values"] },
|
|
106
|
+
"max_keys": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"globals": {
|
|
110
|
+
"type": "array",
|
|
111
|
+
"items": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"additionalProperties": false,
|
|
114
|
+
"required": ["name", "expression"],
|
|
115
|
+
"properties": {
|
|
116
|
+
"name": { "type": "string", "pattern": "^[a-zA-Z0-9_.-]+$" },
|
|
117
|
+
"expression": { "type": "string", "pattern": "^[a-zA-Z0-9_$.\\[\\]'\"]+$" },
|
|
118
|
+
"mode": { "enum": ["presence_only", "type_only", "hash_only", "scalar_value"] }
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"dom_queries": {
|
|
123
|
+
"type": "array",
|
|
124
|
+
"items": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"additionalProperties": false,
|
|
127
|
+
"required": ["name", "selector", "property"],
|
|
128
|
+
"properties": {
|
|
129
|
+
"name": { "type": "string", "pattern": "^[a-zA-Z0-9_.-]+$" },
|
|
130
|
+
"selector": { "type": "string", "minLength": 1 },
|
|
131
|
+
"property": { "enum": ["presence", "visible", "text_hash", "text_length", "text_content", "attribute_value"] },
|
|
132
|
+
"attribute_name": { "type": "string" }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"max_observations": { "type": "integer", "minimum": 1, "maximum": 500 },
|
|
137
|
+
"max_value_length": { "type": "integer", "minimum": 1, "maximum": 4096 }
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"runtime_event_policy": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"additionalProperties": false,
|
|
143
|
+
"properties": {
|
|
144
|
+
"enabled": { "type": "boolean" },
|
|
145
|
+
"sources": {
|
|
146
|
+
"type": "array",
|
|
147
|
+
"minItems": 1,
|
|
148
|
+
"items": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"additionalProperties": false,
|
|
151
|
+
"required": ["source_id", "type"],
|
|
152
|
+
"properties": {
|
|
153
|
+
"source_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
|
|
154
|
+
"type": { "enum": ["global_array", "window_event", "custom_stream"] },
|
|
155
|
+
"global_name": { "type": "string", "pattern": "^[a-zA-Z0-9_.]+$" },
|
|
156
|
+
"event_name": { "type": "string", "minLength": 1 },
|
|
157
|
+
"event_name_key": { "type": "string", "minLength": 1 }
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"allowed_event_names": {
|
|
162
|
+
"type": "array",
|
|
163
|
+
"items": { "type": "string", "minLength": 1 }
|
|
164
|
+
},
|
|
165
|
+
"allowed_fields": {
|
|
166
|
+
"type": "array",
|
|
167
|
+
"items": { "type": "string", "minLength": 1 }
|
|
168
|
+
},
|
|
169
|
+
"hash_fields": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"items": { "type": "string", "minLength": 1 }
|
|
172
|
+
},
|
|
173
|
+
"redact_fields": {
|
|
174
|
+
"type": "array",
|
|
175
|
+
"items": { "type": "string", "minLength": 1 }
|
|
176
|
+
},
|
|
177
|
+
"max_events": { "type": "integer", "minimum": 1, "maximum": 1000 },
|
|
178
|
+
"max_payload_depth": { "type": "integer", "minimum": 1, "maximum": 10 },
|
|
179
|
+
"max_field_size": { "type": "integer", "minimum": 1, "maximum": 4096 }
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
},
|
|
8
183
|
"properties": {
|
|
9
184
|
"schema_version": { "const": 1 },
|
|
10
185
|
"plan_id": { "type": "string", "pattern": "^BROWSER-PLAN-[A-Z0-9_-]+$" },
|
|
@@ -16,13 +191,16 @@
|
|
|
16
191
|
"properties": {
|
|
17
192
|
"policy_id": { "type": "string", "pattern": "^RENDER-POLICY-[A-Z0-9_-]+$" },
|
|
18
193
|
"review_owner": { "type": "string", "minLength": 1 },
|
|
19
|
-
"min_text_retention_ratio": { "
|
|
194
|
+
"min_text_retention_ratio": { "number": 0, "minimum": 0, "maximum": 1 },
|
|
20
195
|
"require_heading_parity": { "type": "boolean" },
|
|
21
196
|
"require_link_parity": { "type": "boolean" },
|
|
22
197
|
"require_structured_data_parity": { "type": "boolean" },
|
|
23
198
|
"limitations": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
|
|
24
199
|
}
|
|
25
200
|
},
|
|
201
|
+
"network_policy": { "$ref": "#/definitions/network_policy" },
|
|
202
|
+
"state_policy": { "$ref": "#/definitions/state_policy" },
|
|
203
|
+
"runtime_event_policy": { "$ref": "#/definitions/runtime_event_policy" },
|
|
26
204
|
"profiles": {
|
|
27
205
|
"type": "array",
|
|
28
206
|
"minItems": 1,
|
|
@@ -63,6 +241,9 @@
|
|
|
63
241
|
"locale": { "type": "string", "minLength": 2 },
|
|
64
242
|
"consent_state": { "enum": ["not_present", "denied", "granted", "unresolved", "unknown"] },
|
|
65
243
|
"authentication_state": { "enum": ["anonymous", "owner_authenticated", "unresolved", "unknown"] },
|
|
244
|
+
"network_policy": { "$ref": "#/definitions/network_policy" },
|
|
245
|
+
"state_policy": { "$ref": "#/definitions/state_policy" },
|
|
246
|
+
"runtime_event_policy": { "$ref": "#/definitions/runtime_event_policy" },
|
|
66
247
|
"steps": {
|
|
67
248
|
"type": "array",
|
|
68
249
|
"items": {
|
|
@@ -71,13 +252,15 @@
|
|
|
71
252
|
"required": ["step_id", "action", "locator", "value_env", "key", "url", "required", "capture_screenshot"],
|
|
72
253
|
"properties": {
|
|
73
254
|
"step_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
|
|
74
|
-
"action": { "enum": ["navigate", "click", "fill", "select_option", "check", "press", "wait_for", "assert_visible", "scroll"] },
|
|
255
|
+
"action": { "enum": ["navigate", "click", "fill", "select_option", "check", "press", "wait_for", "assert_visible", "scroll", "checkpoint"] },
|
|
75
256
|
"locator": { "type": ["string", "null"] },
|
|
76
257
|
"value_env": { "type": ["string", "null"], "pattern": "^[A-Z][A-Z0-9_]*$" },
|
|
77
258
|
"key": { "type": ["string", "null"] },
|
|
78
259
|
"url": { "type": ["string", "null"], "format": "uri" },
|
|
79
260
|
"required": { "type": "boolean" },
|
|
80
|
-
"capture_screenshot": { "type": "boolean" }
|
|
261
|
+
"capture_screenshot": { "type": "boolean" },
|
|
262
|
+
"checkpoint_id": { "type": ["string", "null"], "pattern": "^[a-z0-9][a-z0-9_-]*$" },
|
|
263
|
+
"state_checkpoint": { "type": ["boolean", "null"] }
|
|
81
264
|
}
|
|
82
265
|
}
|
|
83
266
|
},
|