@nebulacomponents/citable 0.1.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +2 -2
  3. package/dist/universal/.agents/skills/citable/VERSION +1 -1
  4. package/dist/universal/.agents/skills/citable/manifest.json +5 -5
  5. package/dist/universal/.agents/skills/citable/schemas/finding.schema.json +253 -50
  6. package/dist/universal/.claude/skills/citable/VERSION +1 -1
  7. package/dist/universal/.claude/skills/citable/manifest.json +5 -5
  8. package/dist/universal/.claude/skills/citable/schemas/finding.schema.json +253 -50
  9. package/dist/universal/.cursor/skills/citable/VERSION +1 -1
  10. package/dist/universal/.cursor/skills/citable/manifest.json +5 -5
  11. package/dist/universal/.cursor/skills/citable/schemas/finding.schema.json +253 -50
  12. package/dist/universal/.gemini/skills/citable/VERSION +1 -1
  13. package/dist/universal/.gemini/skills/citable/manifest.json +5 -5
  14. package/dist/universal/.gemini/skills/citable/schemas/finding.schema.json +253 -50
  15. package/dist/universal/.github/skills/citable/VERSION +1 -1
  16. package/dist/universal/.github/skills/citable/manifest.json +5 -5
  17. package/dist/universal/.github/skills/citable/schemas/finding.schema.json +253 -50
  18. package/dist/universal/.kiro/skills/citable/VERSION +1 -1
  19. package/dist/universal/.kiro/skills/citable/manifest.json +5 -5
  20. package/dist/universal/.kiro/skills/citable/schemas/finding.schema.json +253 -50
  21. package/dist/universal/.opencode/skills/citable/VERSION +1 -1
  22. package/dist/universal/.opencode/skills/citable/manifest.json +5 -5
  23. package/dist/universal/.opencode/skills/citable/schemas/finding.schema.json +253 -50
  24. package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
  25. package/dist/universal/.pi/agent/skills/citable/manifest.json +5 -5
  26. package/dist/universal/.pi/agent/skills/citable/schemas/finding.schema.json +253 -50
  27. package/dist/universal/.qoder/skills/citable/VERSION +1 -1
  28. package/dist/universal/.qoder/skills/citable/manifest.json +5 -5
  29. package/dist/universal/.qoder/skills/citable/schemas/finding.schema.json +253 -50
  30. package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
  31. package/dist/universal/.rovodev/skills/citable/manifest.json +5 -5
  32. package/dist/universal/.rovodev/skills/citable/schemas/finding.schema.json +253 -50
  33. package/dist/universal/.trae/skills/citable/VERSION +1 -1
  34. package/dist/universal/.trae/skills/citable/manifest.json +5 -5
  35. package/dist/universal/.trae/skills/citable/schemas/finding.schema.json +253 -50
  36. package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
  37. package/dist/universal/.trae-cn/skills/citable/manifest.json +5 -5
  38. package/dist/universal/.trae-cn/skills/citable/schemas/finding.schema.json +253 -50
  39. package/dist/universal/manifest.json +51 -51
  40. package/package.json +4 -1
  41. package/schemas/finding.schema.json +253 -50
  42. package/src/crawler/fetch.js +42 -9
  43. package/src/detectors/agent.js +495 -0
  44. package/src/detectors/cwv.js +171 -0
  45. package/src/detectors/framework.js +1 -1
  46. package/src/detectors/hreflang.js +164 -0
  47. package/src/detectors/index.js +4 -1
  48. package/src/installer/index.js +7 -2
@@ -3,54 +3,184 @@
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Finding",
5
5
  "type": "object",
6
- "required": ["finding_id", "detector_id", "run_id", "timestamp", "discipline", "subject", "observation", "classification", "remediation", "verification", "status"],
6
+ "required": [
7
+ "finding_id",
8
+ "detector_id",
9
+ "run_id",
10
+ "timestamp",
11
+ "discipline",
12
+ "subject",
13
+ "observation",
14
+ "classification",
15
+ "remediation",
16
+ "verification",
17
+ "status"
18
+ ],
7
19
  "properties": {
8
- "finding_id": { "$ref": "citable://schemas/common.defs.json#/definitions/id" },
9
- "detector_id": { "$ref": "citable://schemas/common.defs.json#/definitions/id" },
10
- "run_id": { "type": "string" },
11
- "timestamp": { "type": "string" },
12
- "discipline": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": ["seo", "aeo", "geo"] } },
20
+ "finding_id": {
21
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
22
+ },
23
+ "detector_id": {
24
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
25
+ },
26
+ "run_id": {
27
+ "type": "string"
28
+ },
29
+ "timestamp": {
30
+ "type": "string"
31
+ },
32
+ "discipline": {
33
+ "type": "array",
34
+ "minItems": 1,
35
+ "items": {
36
+ "type": "string",
37
+ "enum": [
38
+ "seo",
39
+ "aeo",
40
+ "geo",
41
+ "agent-readiness"
42
+ ]
43
+ }
44
+ },
13
45
  "subject": {
14
46
  "type": "object",
15
- "required": ["type", "identifier"],
47
+ "required": [
48
+ "type",
49
+ "identifier"
50
+ ],
16
51
  "properties": {
17
- "type": { "type": "string", "enum": ["url", "page", "source_file", "registry_entry", "site", "schema_block", "link", "crawler", "claim", "evidence", "entity", "prompt", "query", "experiment", "run"] },
18
- "identifier": { "type": "string" },
19
- "url": { "type": "string" },
20
- "source_file": { "type": "string" },
21
- "source_location": { "type": "string" },
22
- "rendered_selector": { "type": "string" }
52
+ "type": {
53
+ "type": "string",
54
+ "enum": [
55
+ "url",
56
+ "page",
57
+ "source_file",
58
+ "registry_entry",
59
+ "site",
60
+ "schema_block",
61
+ "link",
62
+ "crawler",
63
+ "claim",
64
+ "evidence",
65
+ "entity",
66
+ "prompt",
67
+ "query",
68
+ "experiment",
69
+ "run",
70
+ "file"
71
+ ]
72
+ },
73
+ "identifier": {
74
+ "type": "string"
75
+ },
76
+ "url": {
77
+ "type": "string"
78
+ },
79
+ "source_file": {
80
+ "type": "string"
81
+ },
82
+ "source_location": {
83
+ "type": "string"
84
+ },
85
+ "rendered_selector": {
86
+ "type": "string"
87
+ }
23
88
  }
24
89
  },
25
90
  "observation": {
26
91
  "type": "object",
27
- "required": ["summary", "evidence"],
92
+ "required": [
93
+ "summary",
94
+ "evidence"
95
+ ],
28
96
  "properties": {
29
- "summary": { "type": "string", "minLength": 1 },
30
- "evidence": { "type": "array", "minItems": 1, "items": { "type": "string" } },
97
+ "summary": {
98
+ "type": "string",
99
+ "minLength": 1
100
+ },
101
+ "evidence": {
102
+ "type": "array",
103
+ "minItems": 1,
104
+ "items": {
105
+ "type": "string"
106
+ }
107
+ },
31
108
  "captured_value": {},
32
109
  "expected_value": {}
33
110
  }
34
111
  },
35
112
  "classification": {
36
113
  "type": "object",
37
- "required": ["finding_type", "severity", "confidence", "deterministic", "impact"],
114
+ "required": [
115
+ "finding_type",
116
+ "severity",
117
+ "confidence",
118
+ "deterministic",
119
+ "impact"
120
+ ],
38
121
  "properties": {
39
- "finding_type": { "type": "string", "enum": ["deterministic_observation", "evidence_backed_semantic_finding", "probabilistic_inference", "strategic_hypothesis", "experiment_result", "untestable_condition"] },
40
- "severity": { "type": "string", "enum": ["critical", "high", "medium", "low", "informational", "experimental"] },
41
- "confidence": { "type": "string", "enum": ["confirmed", "high", "medium", "low", "unknown"] },
42
- "deterministic": { "type": "boolean" },
122
+ "finding_type": {
123
+ "type": "string",
124
+ "enum": [
125
+ "deterministic_observation",
126
+ "evidence_backed_semantic_finding",
127
+ "probabilistic_inference",
128
+ "strategic_hypothesis",
129
+ "experiment_result",
130
+ "untestable_condition"
131
+ ]
132
+ },
133
+ "severity": {
134
+ "type": "string",
135
+ "enum": [
136
+ "critical",
137
+ "high",
138
+ "medium",
139
+ "low",
140
+ "informational",
141
+ "experimental"
142
+ ]
143
+ },
144
+ "confidence": {
145
+ "type": "string",
146
+ "enum": [
147
+ "confirmed",
148
+ "high",
149
+ "medium",
150
+ "low",
151
+ "unknown"
152
+ ]
153
+ },
154
+ "deterministic": {
155
+ "type": "boolean"
156
+ },
43
157
  "impact": {
44
158
  "type": "object",
45
159
  "properties": {
46
- "retrieval": { "$ref": "#/definitions/impactLevel" },
47
- "ranking": { "$ref": "#/definitions/impactLevel" },
48
- "citation": { "$ref": "#/definitions/impactLevel" },
49
- "representation": { "$ref": "#/definitions/impactLevel" },
50
- "legal": { "$ref": "#/definitions/impactLevel" },
51
- "reputational": { "$ref": "#/definitions/impactLevel" },
52
- "conversion": { "$ref": "#/definitions/impactLevel" },
53
- "maintainability": { "$ref": "#/definitions/impactLevel" }
160
+ "retrieval": {
161
+ "$ref": "#/definitions/impactLevel"
162
+ },
163
+ "ranking": {
164
+ "$ref": "#/definitions/impactLevel"
165
+ },
166
+ "citation": {
167
+ "$ref": "#/definitions/impactLevel"
168
+ },
169
+ "representation": {
170
+ "$ref": "#/definitions/impactLevel"
171
+ },
172
+ "legal": {
173
+ "$ref": "#/definitions/impactLevel"
174
+ },
175
+ "reputational": {
176
+ "$ref": "#/definitions/impactLevel"
177
+ },
178
+ "conversion": {
179
+ "$ref": "#/definitions/impactLevel"
180
+ },
181
+ "maintainability": {
182
+ "$ref": "#/definitions/impactLevel"
183
+ }
54
184
  }
55
185
  }
56
186
  }
@@ -58,44 +188,117 @@
58
188
  "reasoning": {
59
189
  "type": "object",
60
190
  "properties": {
61
- "applicable_requirement": { "type": "string" },
62
- "explanation": { "type": "string" },
63
- "assumptions": { "type": "array", "items": { "type": "string" } },
64
- "limitations": { "type": "array", "items": { "type": "string" } }
191
+ "applicable_requirement": {
192
+ "type": "string"
193
+ },
194
+ "explanation": {
195
+ "type": "string"
196
+ },
197
+ "assumptions": {
198
+ "type": "array",
199
+ "items": {
200
+ "type": "string"
201
+ }
202
+ },
203
+ "limitations": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "string"
207
+ }
208
+ }
65
209
  }
66
210
  },
67
211
  "remediation": {
68
212
  "type": "object",
69
- "required": ["preferred"],
213
+ "required": [
214
+ "preferred"
215
+ ],
70
216
  "properties": {
71
- "preferred": { "type": "string" },
72
- "alternatives": { "type": "array", "items": { "type": "string" } },
73
- "unsafe_shortcuts": { "type": "array", "items": { "type": "string" } },
74
- "owner": { "type": ["string", "null"] },
75
- "review_required": { "type": "boolean" }
217
+ "preferred": {
218
+ "type": "string"
219
+ },
220
+ "alternatives": {
221
+ "type": "array",
222
+ "items": {
223
+ "type": "string"
224
+ }
225
+ },
226
+ "unsafe_shortcuts": {
227
+ "type": "array",
228
+ "items": {
229
+ "type": "string"
230
+ }
231
+ },
232
+ "owner": {
233
+ "type": [
234
+ "string",
235
+ "null"
236
+ ]
237
+ },
238
+ "review_required": {
239
+ "type": "boolean"
240
+ }
76
241
  }
77
242
  },
78
243
  "verification": {
79
244
  "type": "object",
80
- "required": ["method"],
245
+ "required": [
246
+ "method"
247
+ ],
81
248
  "properties": {
82
- "method": { "type": "string" },
83
- "expected_result": { "type": "string" },
84
- "detector_to_rerun": { "type": "string" }
249
+ "method": {
250
+ "type": "string"
251
+ },
252
+ "expected_result": {
253
+ "type": "string"
254
+ },
255
+ "detector_to_rerun": {
256
+ "type": "string"
257
+ }
85
258
  }
86
259
  },
87
260
  "status": {
88
261
  "type": "object",
89
- "required": ["state"],
262
+ "required": [
263
+ "state"
264
+ ],
90
265
  "properties": {
91
- "state": { "type": "string", "enum": ["open", "acknowledged", "in_remediation", "resolved", "accepted_risk", "false_positive"] },
92
- "first_seen": { "type": "string" },
93
- "last_seen": { "type": "string" },
94
- "resolved_at": { "type": ["string", "null"] }
266
+ "state": {
267
+ "type": "string",
268
+ "enum": [
269
+ "open",
270
+ "acknowledged",
271
+ "in_remediation",
272
+ "resolved",
273
+ "accepted_risk",
274
+ "false_positive"
275
+ ]
276
+ },
277
+ "first_seen": {
278
+ "type": "string"
279
+ },
280
+ "last_seen": {
281
+ "type": "string"
282
+ },
283
+ "resolved_at": {
284
+ "type": [
285
+ "string",
286
+ "null"
287
+ ]
288
+ }
95
289
  }
96
290
  }
97
291
  },
98
292
  "definitions": {
99
- "impactLevel": { "type": "string", "enum": ["none", "low", "medium", "high", "unknown"] }
293
+ "impactLevel": {
294
+ "type": "string",
295
+ "enum": [
296
+ "none",
297
+ "low",
298
+ "medium",
299
+ "high",
300
+ "unknown"
301
+ ]
302
+ }
100
303
  }
101
- }
304
+ }
@@ -1 +1 @@
1
- 0.1.0
1
+ 1.1.0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "citable",
3
- "version": "0.1.0",
3
+ "version": "1.1.0",
4
4
  "managedBy": "citable-cli",
5
5
  "provider": "cursor",
6
6
  "providerName": "Cursor",
7
7
  "scope": "bundle",
8
- "sourcePackage": "@nebulacomponents/citable@0.1.0",
8
+ "sourcePackage": "@nebulacomponents/citable@1.1.0",
9
9
  "variantPath": ".cursor/skills/citable",
10
10
  "files": {
11
11
  "commands/ingest.md": "sha256:cf35659aecd9d0e160909003efdbe056864fc5d824c71b4ef0ee801ce07ff598",
@@ -38,7 +38,7 @@
38
38
  "schemas/entity.schema.json": "sha256:12f9222122255c86059185bc66e528e2828b430f7abc5683e6759774eb555553",
39
39
  "schemas/evidence.schema.json": "sha256:a78d39cd1d66c89198b0ecc9af48c8d3d8659c7b5cbb9f96c43d18fcf2b4aeb7",
40
40
  "schemas/experiment.schema.json": "sha256:704ea5c14cd4409c3a1806b8b1c124bcd9f2fe9e313dfa93662889bed0cb6441",
41
- "schemas/finding.schema.json": "sha256:2366bbbd0f6359ecc8d262979b159811ad10d2eaacc4816d5075bc6f7e9efc13",
41
+ "schemas/finding.schema.json": "sha256:85907cd04cd8d2fe24a1e618e0df7160f6d56aa1818db501f345aebce5eb5edb",
42
42
  "schemas/page.schema.json": "sha256:195d2f91d67550627c7047fd8e98d08dc386bc5858a02239d6c23b99193eaac2",
43
43
  "schemas/project.schema.json": "sha256:ea48fdb6480f7047ba4594bd5908bc1f79c1ad6b9a2c204df900959b5f203dc6",
44
44
  "schemas/prompt-result.schema.json": "sha256:b55be47d7d58d7b1dd8c3b1e849e24e55216212c592cde7eb836953379b85737",
@@ -48,7 +48,7 @@
48
48
  "scripts/README.md": "sha256:1c3e952950ef353849621b07c5f615bf7cd20cc5654da4635492a7bd6384e747",
49
49
  "SKILL.md": "sha256:637bb755bca6a2225c5b69edab0b8be7dff294e784d7ce25cec23546b847324c",
50
50
  "templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
51
- "VERSION": "sha256:e9dd8507f4bf0c6f42458e41aea833ad0bd3f6127272335eee9bf4d58541ed67"
51
+ "VERSION": "sha256:1575e1af4a95f12f70b4ee6a6adce8160953d93ea17dc2611b90883ccc3ad3b8"
52
52
  },
53
- "treeHash": "sha256:7b3f30bfd6e7c79f549a4ca9a2269a32afa899a995437ed9b1b8d7e86d562bf2"
53
+ "treeHash": "sha256:1984fdb279446bdc9e2c81673a1c521564d6ed9f0cc74e8eee62e7cacb7c2843"
54
54
  }