@nebulacomponents/citable 1.18.2 → 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 +46 -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/manifest.json +9 -6
- 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/.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/manifest.json +9 -6
- 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/.cursor/skills/citable/SKILL.md +1 -1
- package/dist/universal/.cursor/skills/citable/VERSION +1 -1
- package/dist/universal/.cursor/skills/citable/manifest.json +9 -6
- 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/.gemini/skills/citable/SKILL.md +1 -1
- package/dist/universal/.gemini/skills/citable/VERSION +1 -1
- package/dist/universal/.gemini/skills/citable/manifest.json +9 -6
- 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/.github/skills/citable/SKILL.md +1 -1
- package/dist/universal/.github/skills/citable/VERSION +1 -1
- package/dist/universal/.github/skills/citable/manifest.json +9 -6
- 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/.kiro/skills/citable/SKILL.md +1 -1
- package/dist/universal/.kiro/skills/citable/VERSION +1 -1
- package/dist/universal/.kiro/skills/citable/manifest.json +9 -6
- 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/.opencode/skills/citable/SKILL.md +1 -1
- package/dist/universal/.opencode/skills/citable/VERSION +1 -1
- package/dist/universal/.opencode/skills/citable/manifest.json +9 -6
- 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/.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/manifest.json +9 -6
- 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/.qoder/skills/citable/SKILL.md +1 -1
- package/dist/universal/.qoder/skills/citable/VERSION +1 -1
- package/dist/universal/.qoder/skills/citable/manifest.json +9 -6
- 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/.rovodev/skills/citable/SKILL.md +1 -1
- package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
- package/dist/universal/.rovodev/skills/citable/manifest.json +9 -6
- 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/.trae/skills/citable/SKILL.md +1 -1
- package/dist/universal/.trae/skills/citable/VERSION +1 -1
- package/dist/universal/.trae/skills/citable/manifest.json +9 -6
- 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-cn/skills/citable/SKILL.md +1 -1
- package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
- package/dist/universal/.trae-cn/skills/citable/manifest.json +9 -6
- 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/manifest.json +112 -76
- package/package.json +1 -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/skill/SKILL.md +1 -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 +1 -1
- package/src/reporting/executiveSearchReport.js +1 -1
- package/src/sow/generateSow.js +1 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "citable://schemas/browser-state-observations.schema.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Browser state observations evidence artifact",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version",
|
|
9
|
+
"plan_id",
|
|
10
|
+
"profile_id",
|
|
11
|
+
"collected_at",
|
|
12
|
+
"capture_policy",
|
|
13
|
+
"summary",
|
|
14
|
+
"checkpoints"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema_version": { "const": 1 },
|
|
18
|
+
"plan_id": { "type": "string" },
|
|
19
|
+
"profile_id": { "type": "string" },
|
|
20
|
+
"collected_at": { "type": "string", "format": "date-time" },
|
|
21
|
+
"capture_policy": { "type": "object" },
|
|
22
|
+
"summary": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["total_checkpoints", "total_observations", "truncated"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"total_checkpoints": { "type": "integer", "minimum": 0 },
|
|
28
|
+
"total_observations": { "type": "integer", "minimum": 0 },
|
|
29
|
+
"collector_status": { "enum": ["complete", "truncated", "failed"] },
|
|
30
|
+
"truncated": { "type": "boolean" },
|
|
31
|
+
"truncation_reason": { "type": ["string", "null"] }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"checkpoints": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"required": [
|
|
40
|
+
"checkpoint_id",
|
|
41
|
+
"sequence",
|
|
42
|
+
"timing",
|
|
43
|
+
"correlation",
|
|
44
|
+
"state"
|
|
45
|
+
],
|
|
46
|
+
"properties": {
|
|
47
|
+
"checkpoint_id": { "type": "string" },
|
|
48
|
+
"sequence": { "type": "integer", "minimum": 1 },
|
|
49
|
+
"timing": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"additionalProperties": false,
|
|
52
|
+
"required": ["monotonic_offset_ms", "timestamp"],
|
|
53
|
+
"properties": {
|
|
54
|
+
"monotonic_offset_ms": { "type": "number", "minimum": 0 },
|
|
55
|
+
"timestamp": { "type": "string", "format": "date-time" }
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"correlation": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"required": ["step_id", "step_sequence"],
|
|
62
|
+
"properties": {
|
|
63
|
+
"step_id": { "type": ["string", "null"] },
|
|
64
|
+
"step_sequence": { "type": ["integer", "null"] }
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"state": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"additionalProperties": false,
|
|
70
|
+
"required": ["url"],
|
|
71
|
+
"properties": {
|
|
72
|
+
"url": { "type": "string" },
|
|
73
|
+
"query_params": { "type": ["object", "null"] },
|
|
74
|
+
"referrer": { "type": ["string", "null"] },
|
|
75
|
+
"navigation_type": { "type": ["string", "null"] },
|
|
76
|
+
"cookies": { "type": ["object", "null"] },
|
|
77
|
+
"local_storage": { "type": ["object", "null"] },
|
|
78
|
+
"session_storage": { "type": ["object", "null"] },
|
|
79
|
+
"globals": { "type": ["object", "null"] },
|
|
80
|
+
"dom_queries": { "type": ["object", "null"] }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"disposition": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"additionalProperties": false,
|
|
86
|
+
"required": ["observation_status", "redacted_count", "unavailable_items"],
|
|
87
|
+
"properties": {
|
|
88
|
+
"observation_status": { "enum": ["observed", "partially_observed", "truncated", "unavailable"] },
|
|
89
|
+
"redacted_count": { "type": "integer", "minimum": 0 },
|
|
90
|
+
"unavailable_items": { "type": "array", "items": { "type": "string" } }
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "citable-agent-profiles",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"managedBy": "citable-cli",
|
|
5
5
|
"provider": "claude",
|
|
6
|
-
"sourcePackage": "@nebulacomponents/citable@1.
|
|
6
|
+
"sourcePackage": "@nebulacomponents/citable@1.19.0",
|
|
7
7
|
"files": {
|
|
8
8
|
"citable-auditor.md": "sha256:06fe8d84834b2c09b7e7083aa6f57e94e837e0643dbe4ead4bbecf651fb41cad",
|
|
9
9
|
"citable-remediator.md": "sha256:c990e929f411fc2f2de3aca759333502c956e96924b3a0f809ab0927062623dc",
|
|
@@ -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
|
|
@@ -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": "claude",
|
|
6
6
|
"providerName": "Claude Code",
|
|
7
7
|
"scope": "bundle",
|
|
8
|
-
"sourcePackage": "@nebulacomponents/citable@1.
|
|
8
|
+
"sourcePackage": "@nebulacomponents/citable@1.19.0",
|
|
9
9
|
"variantPath": ".claude/skills/citable",
|
|
10
10
|
"agentProfiles": {
|
|
11
11
|
"status": "available",
|
|
@@ -66,7 +66,10 @@
|
|
|
66
66
|
"schemas/artifact-interchange.schema.json": "sha256:c6f628934c8a1b8ea2996e03c2c5abd46c2a0e74c680b0a43e44c2343dc9aa21",
|
|
67
67
|
"schemas/assumption.schema.json": "sha256:31a0f44bbf1d207e013961ec4c39eea85c3ae9efde1485b5e26084562c816844",
|
|
68
68
|
"schemas/bing-webmaster.schema.json": "sha256:8357c518a8cb4ccd1def2da38950fbba68270e2b1613ad522b50c568a3b8538f",
|
|
69
|
-
"schemas/browser-evidence-plan.schema.json": "sha256:
|
|
69
|
+
"schemas/browser-evidence-plan.schema.json": "sha256:1df677fb08338b832d93af2aabec565ef8d621c820cbc77f847dc1c94a814256",
|
|
70
|
+
"schemas/browser-network-events.schema.json": "sha256:aa71380998df74cff929316d7c76332a74c16cd08504214cdb2b86d9d793fee5",
|
|
71
|
+
"schemas/browser-runtime-events.schema.json": "sha256:ff9b6e486ca5a72a6613a4e3e479cd11bcadff52c7481df125aa1670f404a7e4",
|
|
72
|
+
"schemas/browser-state-observations.schema.json": "sha256:7748b9ed7110834e19c1827bd125c0d0cdb50e2dd89a713da03cd643e9c72843",
|
|
70
73
|
"schemas/canonical-index-import.schema.json": "sha256:ef633662cb30873242ca356443bc4835afe56bb020208e8f42fa47ac8047b66e",
|
|
71
74
|
"schemas/claim.schema.json": "sha256:ce79ccbfa34ece9b7a309a6962522ea06a1f44c468b4c472b5c376554a788537",
|
|
72
75
|
"schemas/cli-output-envelope.schema.json": "sha256:6964e8f2f43618bfd0d7a3f5344b37ebc26f04779796bb8ff4675b935b6208c3",
|
|
@@ -124,9 +127,9 @@
|
|
|
124
127
|
"schemas/sow.schema.json": "sha256:3a3fd6048a747a9bc0cfaea98920376b043616a33c953a9eb8b74d0ae32dded0",
|
|
125
128
|
"schemas/variance.schema.json": "sha256:68389f64f0a3be13ff8951e8eefba9a5c31d0738325cb47e37c1a8435bea48f0",
|
|
126
129
|
"scripts/README.md": "sha256:9eee4e8beb4579a183bd714c9dd24b83abd020753eada5caeffae004739d60b5",
|
|
127
|
-
"SKILL.md": "sha256:
|
|
130
|
+
"SKILL.md": "sha256:70629652ec22ece59e4ddef9198ce9e77f9d4da74eab14a4ccdf99d67c393ab1",
|
|
128
131
|
"templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
|
|
129
|
-
"VERSION": "sha256:
|
|
132
|
+
"VERSION": "sha256:c55c898de5079ee498d5f051b29815688154292df4d72ab91f1edb5497ac4e6e"
|
|
130
133
|
},
|
|
131
|
-
"treeHash": "sha256:
|
|
134
|
+
"treeHash": "sha256:0343fe90b5b631f5405e5c6390355f4fc6f926d0cf9e49946f3bed921b29ff2e"
|
|
132
135
|
}
|
|
@@ -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
|
},
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "citable://schemas/browser-network-events.schema.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Browser network activity evidence artifact",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version",
|
|
9
|
+
"plan_id",
|
|
10
|
+
"profile_id",
|
|
11
|
+
"collected_at",
|
|
12
|
+
"capture_policy",
|
|
13
|
+
"summary",
|
|
14
|
+
"events"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema_version": { "const": 1 },
|
|
18
|
+
"plan_id": { "type": "string" },
|
|
19
|
+
"profile_id": { "type": "string" },
|
|
20
|
+
"collected_at": { "type": "string", "format": "date-time" },
|
|
21
|
+
"capture_policy": { "type": "object" },
|
|
22
|
+
"summary": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["total_requests", "successful_responses", "failed_requests", "filtered_requests", "truncated", "status_codes"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"total_requests": { "type": "integer", "minimum": 0 },
|
|
28
|
+
"successful_responses": { "type": "integer", "minimum": 0 },
|
|
29
|
+
"failed_requests": { "type": "integer", "minimum": 0 },
|
|
30
|
+
"filtered_requests": { "type": "integer", "minimum": 0 },
|
|
31
|
+
"in_flight_requests": { "type": "integer", "minimum": 0 },
|
|
32
|
+
"collector_status": { "enum": ["complete", "truncated", "failed"] },
|
|
33
|
+
"truncated": { "type": "boolean" },
|
|
34
|
+
"truncation_reason": { "type": ["string", "null"] },
|
|
35
|
+
"status_codes": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": { "type": "integer" }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"events": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"items": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"required": [
|
|
47
|
+
"sequence",
|
|
48
|
+
"transaction_id",
|
|
49
|
+
"direction",
|
|
50
|
+
"phase",
|
|
51
|
+
"timing",
|
|
52
|
+
"correlation",
|
|
53
|
+
"request"
|
|
54
|
+
],
|
|
55
|
+
"properties": {
|
|
56
|
+
"sequence": { "type": "integer", "minimum": 1 },
|
|
57
|
+
"transaction_id": { "type": "string" },
|
|
58
|
+
"direction": { "enum": ["request", "response"] },
|
|
59
|
+
"phase": { "enum": ["request_sent", "response_received", "failed", "redirect"] },
|
|
60
|
+
"timing": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"additionalProperties": false,
|
|
63
|
+
"required": ["monotonic_offset_ms", "timestamp"],
|
|
64
|
+
"properties": {
|
|
65
|
+
"monotonic_offset_ms": { "type": "number", "minimum": 0 },
|
|
66
|
+
"timestamp": { "type": "string", "format": "date-time" }
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"correlation": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"additionalProperties": false,
|
|
72
|
+
"required": ["step_id", "step_sequence", "attribution_phase"],
|
|
73
|
+
"properties": {
|
|
74
|
+
"step_id": { "type": ["string", "null"] },
|
|
75
|
+
"step_sequence": { "type": ["integer", "null"] },
|
|
76
|
+
"checkpoint_id": { "type": ["string", "null"] },
|
|
77
|
+
"attribution_phase": { "enum": ["initial", "during_step", "between_steps", "post_journey", "ambiguous_async"] },
|
|
78
|
+
"initiated_step_id": { "type": ["string", "null"] },
|
|
79
|
+
"completed_step_id": { "type": ["string", "null"] },
|
|
80
|
+
"ambiguous_async": { "type": "boolean" }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"request": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"additionalProperties": false,
|
|
86
|
+
"required": ["url", "method", "scheme", "host", "path", "resource_type"],
|
|
87
|
+
"properties": {
|
|
88
|
+
"url": { "type": "string" },
|
|
89
|
+
"method": { "type": "string" },
|
|
90
|
+
"scheme": { "type": "string" },
|
|
91
|
+
"host": { "type": "string" },
|
|
92
|
+
"path": { "type": "string" },
|
|
93
|
+
"resource_type": { "type": "string" },
|
|
94
|
+
"query": { "type": ["object", "null"] },
|
|
95
|
+
"query_status": { "enum": ["captured", "not_requested", "filtered", "none_present", "redacted"] },
|
|
96
|
+
"headers": { "type": ["object", "null"] },
|
|
97
|
+
"headers_status": { "enum": ["captured", "not_requested", "filtered", "redacted"] },
|
|
98
|
+
"payload_hash": { "type": ["string", "null"] },
|
|
99
|
+
"payload_bytes": { "type": ["integer", "null"] },
|
|
100
|
+
"payload_fields": { "type": ["object", "null"] },
|
|
101
|
+
"payload_status": { "enum": ["not_requested", "captured", "filtered", "truncated", "unavailable", "hash_only"] }
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"response": {
|
|
105
|
+
"type": ["object", "null"],
|
|
106
|
+
"additionalProperties": false,
|
|
107
|
+
"properties": {
|
|
108
|
+
"status": { "type": "integer" },
|
|
109
|
+
"status_text": { "type": "string" },
|
|
110
|
+
"headers": { "type": ["object", "null"] },
|
|
111
|
+
"headers_status": { "enum": ["captured", "not_requested", "filtered", "redacted"] },
|
|
112
|
+
"mime_type": { "type": ["string", "null"] },
|
|
113
|
+
"body_hash": { "type": ["string", "null"] },
|
|
114
|
+
"body_bytes": { "type": ["integer", "null"] },
|
|
115
|
+
"body_fields": { "type": ["object", "null"] },
|
|
116
|
+
"body_status": { "enum": ["not_requested", "captured", "filtered", "truncated", "unavailable", "hash_only"] },
|
|
117
|
+
"redirect_url": { "type": ["string", "null"] },
|
|
118
|
+
"from_cache": { "type": "boolean" }
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"failure": {
|
|
122
|
+
"type": ["object", "null"],
|
|
123
|
+
"additionalProperties": false,
|
|
124
|
+
"properties": {
|
|
125
|
+
"error_text": { "type": "string" }
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"disposition": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"additionalProperties": false,
|
|
131
|
+
"required": ["capture_status", "redacted_count", "filtered_fields"],
|
|
132
|
+
"properties": {
|
|
133
|
+
"capture_status": { "enum": ["captured", "filtered", "redacted", "truncated", "error"] },
|
|
134
|
+
"redacted_count": { "type": "integer", "minimum": 0 },
|
|
135
|
+
"filtered_fields": { "type": "array", "items": { "type": "string" } }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "citable://schemas/browser-runtime-events.schema.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Browser runtime events evidence artifact",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version",
|
|
9
|
+
"plan_id",
|
|
10
|
+
"profile_id",
|
|
11
|
+
"collected_at",
|
|
12
|
+
"capture_policy",
|
|
13
|
+
"summary",
|
|
14
|
+
"events"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema_version": { "const": 1 },
|
|
18
|
+
"plan_id": { "type": "string" },
|
|
19
|
+
"profile_id": { "type": "string" },
|
|
20
|
+
"collected_at": { "type": "string", "format": "date-time" },
|
|
21
|
+
"capture_policy": { "type": "object" },
|
|
22
|
+
"summary": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["total_events", "by_source", "by_event_name", "truncated"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"total_events": { "type": "integer", "minimum": 0 },
|
|
28
|
+
"filtered_events": { "type": "integer", "minimum": 0 },
|
|
29
|
+
"collector_status": { "enum": ["complete", "truncated", "failed"] },
|
|
30
|
+
"by_source": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": { "type": "integer" }
|
|
33
|
+
},
|
|
34
|
+
"by_event_name": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": { "type": "integer" }
|
|
37
|
+
},
|
|
38
|
+
"truncated": { "type": "boolean" },
|
|
39
|
+
"truncation_reason": { "type": ["string", "null"] },
|
|
40
|
+
"collector_health": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"properties": {
|
|
44
|
+
"status": { "type": "string" },
|
|
45
|
+
"queue_replaced": { "type": "boolean" },
|
|
46
|
+
"push_replaced": { "type": "boolean" },
|
|
47
|
+
"polling_fallback_used": { "type": "boolean" },
|
|
48
|
+
"supported_contexts": { "type": "array", "items": { "type": "string" } },
|
|
49
|
+
"unsupported_contexts": { "type": "array", "items": { "type": "string" } }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"events": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"additionalProperties": false,
|
|
59
|
+
"required": [
|
|
60
|
+
"sequence",
|
|
61
|
+
"source_id",
|
|
62
|
+
"event_name",
|
|
63
|
+
"timing",
|
|
64
|
+
"correlation",
|
|
65
|
+
"payload"
|
|
66
|
+
],
|
|
67
|
+
"properties": {
|
|
68
|
+
"sequence": { "type": "integer", "minimum": 1 },
|
|
69
|
+
"source_id": { "type": "string" },
|
|
70
|
+
"event_name": { "type": "string" },
|
|
71
|
+
"occurrence_index": { "type": "integer", "minimum": 1 },
|
|
72
|
+
"timing": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"additionalProperties": false,
|
|
75
|
+
"required": ["monotonic_offset_ms", "timestamp"],
|
|
76
|
+
"properties": {
|
|
77
|
+
"monotonic_offset_ms": { "type": "number", "minimum": 0 },
|
|
78
|
+
"timestamp": { "type": "string", "format": "date-time" }
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"correlation": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"additionalProperties": false,
|
|
84
|
+
"required": ["step_id", "step_sequence", "attribution_phase"],
|
|
85
|
+
"properties": {
|
|
86
|
+
"step_id": { "type": ["string", "null"] },
|
|
87
|
+
"step_sequence": { "type": ["integer", "null"] },
|
|
88
|
+
"checkpoint_id": { "type": ["string", "null"] },
|
|
89
|
+
"attribution_phase": { "enum": ["initial", "during_step", "between_steps", "post_journey", "ambiguous_async"] },
|
|
90
|
+
"initiated_step_id": { "type": ["string", "null"] },
|
|
91
|
+
"completed_step_id": { "type": ["string", "null"] },
|
|
92
|
+
"ambiguous_async": { "type": "boolean" }
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"payload": {
|
|
96
|
+
"type": "object"
|
|
97
|
+
},
|
|
98
|
+
"disposition": {
|
|
99
|
+
"type": "object",
|
|
100
|
+
"additionalProperties": false,
|
|
101
|
+
"required": ["capture_status", "redacted_count", "filtered_fields"],
|
|
102
|
+
"properties": {
|
|
103
|
+
"capture_status": { "enum": ["captured", "filtered", "redacted", "truncated"] },
|
|
104
|
+
"redacted_count": { "type": "integer", "minimum": 0 },
|
|
105
|
+
"filtered_fields": { "type": "array", "items": { "type": "string" } }
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|