@opacedev/astro-ai-content-checker 0.3.1

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 (185) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/LICENSE +9 -0
  3. package/README.md +236 -0
  4. package/SBOM.cdx.json +172 -0
  5. package/SECURITY.md +9 -0
  6. package/THIRD_PARTY_NOTICES.md +36 -0
  7. package/dist/build-report-html.d.ts +3 -0
  8. package/dist/highlight.js +155 -0
  9. package/dist/index.d.ts +6 -0
  10. package/dist/index.js +43 -0
  11. package/dist/options.d.ts +21 -0
  12. package/dist/options.js +6 -0
  13. package/dist/receipt.d.ts +15 -0
  14. package/dist/receipt.js +100 -0
  15. package/dist/report.d.ts +55 -0
  16. package/dist/report.js +12 -0
  17. package/dist/sections.js +181 -0
  18. package/dist/share.d.ts +47 -0
  19. package/dist/share.js +72 -0
  20. package/dist/shared-EX54KI6H.js +1503 -0
  21. package/dist/shared-MMXWTX2U.js +43 -0
  22. package/dist/toolbar.js +13478 -0
  23. package/node_modules/@opacedev/ai-content-checker-browser/LICENSE +21 -0
  24. package/node_modules/@opacedev/ai-content-checker-browser/README.md +145 -0
  25. package/node_modules/@opacedev/ai-content-checker-browser/dist/dom/visible-text.d.ts +14 -0
  26. package/node_modules/@opacedev/ai-content-checker-browser/dist/dom/visible-text.js +47 -0
  27. package/node_modules/@opacedev/ai-content-checker-browser/dist/index.d.ts +3 -0
  28. package/node_modules/@opacedev/ai-content-checker-browser/dist/index.js +99 -0
  29. package/node_modules/@opacedev/ai-content-checker-browser/dist/worker/client.d.ts +12 -0
  30. package/node_modules/@opacedev/ai-content-checker-browser/dist/worker/client.js +17 -0
  31. package/node_modules/@opacedev/ai-content-checker-browser/dist/worker/entry.d.ts +1 -0
  32. package/node_modules/@opacedev/ai-content-checker-browser/dist/worker/entry.js +3984 -0
  33. package/node_modules/@opacedev/ai-content-checker-browser/dist/worker/protocol.d.ts +30 -0
  34. package/node_modules/@opacedev/ai-content-checker-browser/dist/worker/protocol.js +1 -0
  35. package/node_modules/@opacedev/ai-content-checker-browser/package.json +60 -0
  36. package/node_modules/@opacedev/ai-content-checker-contracts/LICENSE +21 -0
  37. package/node_modules/@opacedev/ai-content-checker-contracts/README.md +93 -0
  38. package/node_modules/@opacedev/ai-content-checker-contracts/dist/index.d.ts +58 -0
  39. package/node_modules/@opacedev/ai-content-checker-contracts/dist/index.js +17 -0
  40. package/node_modules/@opacedev/ai-content-checker-contracts/package.json +57 -0
  41. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/analysis-request.schema.d.ts +44 -0
  42. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/analysis-result.schema.d.ts +122 -0
  43. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/candidate.schema.d.ts +81 -0
  44. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/capabilities.schema.d.ts +24 -0
  45. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/checker-result.schema.d.ts +342 -0
  46. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/common.schema.d.ts +10 -0
  47. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/envelope.schema.d.ts +14 -0
  48. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/gate-result.schema.d.ts +19 -0
  49. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/integrity-receipt.schema.d.ts +122 -0
  50. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/job.schema.d.ts +188 -0
  51. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/method-result.schema.d.ts +39 -0
  52. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/pattern-finding.schema.d.ts +26 -0
  53. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/protected-span.schema.d.ts +35 -0
  54. package/node_modules/@opacedev/ai-content-checker-contracts/src/generated/rewrite-request.schema.d.ts +65 -0
  55. package/node_modules/@opacedev/ai-content-checker-contracts/src/index.ts +63 -0
  56. package/node_modules/@opacedev/ai-content-checker-contracts/src/semantic-validation.mjs +32 -0
  57. package/node_modules/@opacedev/ai-content-checker-core/LICENSE +21 -0
  58. package/node_modules/@opacedev/ai-content-checker-core/README.md +186 -0
  59. package/node_modules/@opacedev/ai-content-checker-core/dist/bundle.js +4744 -0
  60. package/node_modules/@opacedev/ai-content-checker-core/dist/capabilities.d.ts +16 -0
  61. package/node_modules/@opacedev/ai-content-checker-core/dist/capabilities.js +7 -0
  62. package/node_modules/@opacedev/ai-content-checker-core/dist/diff/diff.d.ts +17 -0
  63. package/node_modules/@opacedev/ai-content-checker-core/dist/diff/diff.js +76 -0
  64. package/node_modules/@opacedev/ai-content-checker-core/dist/fixes/preview.d.ts +27 -0
  65. package/node_modules/@opacedev/ai-content-checker-core/dist/fixes/preview.js +47 -0
  66. package/node_modules/@opacedev/ai-content-checker-core/dist/gates/policy.d.ts +14 -0
  67. package/node_modules/@opacedev/ai-content-checker-core/dist/gates/policy.js +16 -0
  68. package/node_modules/@opacedev/ai-content-checker-core/dist/index.d.ts +15 -0
  69. package/node_modules/@opacedev/ai-content-checker-core/dist/index.js +15 -0
  70. package/node_modules/@opacedev/ai-content-checker-core/dist/inspect.d.ts +8 -0
  71. package/node_modules/@opacedev/ai-content-checker-core/dist/inspect.js +84 -0
  72. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-gb-v1.d.ts +12 -0
  73. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-gb-v1.js +68 -0
  74. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v2-data.d.ts +73 -0
  75. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v2-data.js +499 -0
  76. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v2.d.ts +76 -0
  77. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v2.js +1067 -0
  78. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v3-data.d.ts +165 -0
  79. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v3-data.js +614 -0
  80. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v3.d.ts +19 -0
  81. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v3.js +542 -0
  82. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v4-corpus.d.ts +40 -0
  83. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v4-corpus.js +40 -0
  84. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v4-data.d.ts +138 -0
  85. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v4-data.js +200 -0
  86. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v4.d.ts +71 -0
  87. package/node_modules/@opacedev/ai-content-checker-core/dist/patterns/en-signals-v4.js +388 -0
  88. package/node_modules/@opacedev/ai-content-checker-core/dist/protected/extract.d.ts +17 -0
  89. package/node_modules/@opacedev/ai-content-checker-core/dist/protected/extract.js +75 -0
  90. package/node_modules/@opacedev/ai-content-checker-core/dist/protected/validate.d.ts +3 -0
  91. package/node_modules/@opacedev/ai-content-checker-core/dist/protected/validate.js +17 -0
  92. package/node_modules/@opacedev/ai-content-checker-core/dist/provenance/c2pa-text.d.ts +55 -0
  93. package/node_modules/@opacedev/ai-content-checker-core/dist/provenance/c2pa-text.js +86 -0
  94. package/node_modules/@opacedev/ai-content-checker-core/dist/receipts/build.d.ts +48 -0
  95. package/node_modules/@opacedev/ai-content-checker-core/dist/receipts/build.js +61 -0
  96. package/node_modules/@opacedev/ai-content-checker-core/dist/report/checker-result.d.ts +241 -0
  97. package/node_modules/@opacedev/ai-content-checker-core/dist/report/checker-result.js +419 -0
  98. package/node_modules/@opacedev/ai-content-checker-core/dist/source/offsets.d.ts +34 -0
  99. package/node_modules/@opacedev/ai-content-checker-core/dist/source/offsets.js +51 -0
  100. package/node_modules/@opacedev/ai-content-checker-core/dist/source/utf8.d.ts +3 -0
  101. package/node_modules/@opacedev/ai-content-checker-core/dist/source/utf8.js +58 -0
  102. package/node_modules/@opacedev/ai-content-checker-core/dist/source/visible-text.d.ts +12 -0
  103. package/node_modules/@opacedev/ai-content-checker-core/dist/source/visible-text.js +30 -0
  104. package/node_modules/@opacedev/ai-content-checker-core/dist/unicode/data.d.ts +22 -0
  105. package/node_modules/@opacedev/ai-content-checker-core/dist/unicode/data.js +137 -0
  106. package/node_modules/@opacedev/ai-content-checker-core/dist/unicode/inspect.d.ts +16 -0
  107. package/node_modules/@opacedev/ai-content-checker-core/dist/unicode/inspect.js +84 -0
  108. package/node_modules/@opacedev/ai-content-checker-core/dist/verdict/combine.d.ts +162 -0
  109. package/node_modules/@opacedev/ai-content-checker-core/dist/verdict/combine.js +501 -0
  110. package/node_modules/@opacedev/ai-content-checker-core/package.json +62 -0
  111. package/node_modules/canonicalize/LICENSE +201 -0
  112. package/node_modules/canonicalize/README.md +65 -0
  113. package/node_modules/canonicalize/bin/canonicalize.js +17 -0
  114. package/node_modules/canonicalize/lib/canonicalize.d.ts +2 -0
  115. package/node_modules/canonicalize/lib/canonicalize.js +74 -0
  116. package/node_modules/canonicalize/package.json +64 -0
  117. package/node_modules/entities/LICENSE +11 -0
  118. package/node_modules/entities/lib/decode.d.ts +211 -0
  119. package/node_modules/entities/lib/decode.d.ts.map +1 -0
  120. package/node_modules/entities/lib/decode.js +536 -0
  121. package/node_modules/entities/lib/decode.js.map +1 -0
  122. package/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
  123. package/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
  124. package/node_modules/entities/lib/decode_codepoint.js +76 -0
  125. package/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  126. package/node_modules/entities/lib/encode.d.ts +22 -0
  127. package/node_modules/entities/lib/encode.d.ts.map +1 -0
  128. package/node_modules/entities/lib/encode.js +77 -0
  129. package/node_modules/entities/lib/encode.js.map +1 -0
  130. package/node_modules/entities/lib/escape.d.ts +43 -0
  131. package/node_modules/entities/lib/escape.d.ts.map +1 -0
  132. package/node_modules/entities/lib/escape.js +122 -0
  133. package/node_modules/entities/lib/escape.js.map +1 -0
  134. package/node_modules/entities/lib/esm/decode.d.ts +211 -0
  135. package/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
  136. package/node_modules/entities/lib/esm/decode.js +496 -0
  137. package/node_modules/entities/lib/esm/decode.js.map +1 -0
  138. package/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
  139. package/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
  140. package/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
  141. package/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  142. package/node_modules/entities/lib/esm/encode.d.ts +22 -0
  143. package/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
  144. package/node_modules/entities/lib/esm/encode.js +69 -0
  145. package/node_modules/entities/lib/esm/encode.js.map +1 -0
  146. package/node_modules/entities/lib/esm/escape.d.ts +43 -0
  147. package/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
  148. package/node_modules/entities/lib/esm/escape.js +116 -0
  149. package/node_modules/entities/lib/esm/escape.js.map +1 -0
  150. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
  151. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  152. package/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
  153. package/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  154. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
  155. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  156. package/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
  157. package/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  158. package/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
  159. package/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
  160. package/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
  161. package/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
  162. package/node_modules/entities/lib/esm/index.d.ts +96 -0
  163. package/node_modules/entities/lib/esm/index.d.ts.map +1 -0
  164. package/node_modules/entities/lib/esm/index.js +99 -0
  165. package/node_modules/entities/lib/esm/index.js.map +1 -0
  166. package/node_modules/entities/lib/esm/package.json +1 -0
  167. package/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
  168. package/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
  169. package/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  170. package/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  171. package/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
  172. package/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
  173. package/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  174. package/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  175. package/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
  176. package/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
  177. package/node_modules/entities/lib/generated/encode-html.js +12 -0
  178. package/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  179. package/node_modules/entities/lib/index.d.ts +96 -0
  180. package/node_modules/entities/lib/index.d.ts.map +1 -0
  181. package/node_modules/entities/lib/index.js +126 -0
  182. package/node_modules/entities/lib/index.js.map +1 -0
  183. package/node_modules/entities/package.json +90 -0
  184. package/node_modules/entities/readme.md +122 -0
  185. package/package.json +91 -0
@@ -0,0 +1,342 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * A surface-neutral result and export contract. It keeps AI-pattern, text-integrity/provenance and editorial readings independent and carries the route and resource controls that produced the result.
10
+ */
11
+ export type OpaceAIContentIntegrityCheckerResult = {
12
+ [k: string]: unknown;
13
+ } & {
14
+ schema_version: "1.0";
15
+ contract_version: string;
16
+ result_id: string;
17
+ profile: "full_checker" | "primitive";
18
+ generated_at: string;
19
+ contains_content: boolean;
20
+ source: SourceSummary;
21
+ route: Route;
22
+ axes: Axes;
23
+ sections: Section[];
24
+ methods: HttpsSchemasOpaceAgencyContentIntegrityV1MethodResultSchemaJson[];
25
+ provenance: Provenance;
26
+ exports: Exports;
27
+ abuse_controls: AbuseControls;
28
+ /**
29
+ * @minItems 1
30
+ */
31
+ limitations: [string, ...string[]];
32
+ [k: string]: unknown;
33
+ };
34
+ export type AiPatternAxis = {
35
+ [k: string]: unknown;
36
+ } & {
37
+ assessment_status: "assessed" | "not_assessed" | "withheld" | "error";
38
+ method_status:
39
+ "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
40
+ source: string | null;
41
+ raw_score: number | null;
42
+ raw_margin: number | null;
43
+ display_score: string | null;
44
+ score_scale: "zero_to_one_pattern_similarity";
45
+ level: AiLevel | null;
46
+ primary_display_threshold: number | null;
47
+ secondary_display_threshold: number | null;
48
+ flagged: boolean | null;
49
+ flag_reason: "primary" | "secondary" | null;
50
+ strongest_section_index: number | null;
51
+ reason: string;
52
+ /**
53
+ * @minItems 1
54
+ */
55
+ limitations: [string, ...string[]];
56
+ [k: string]: unknown;
57
+ };
58
+ export type AiLevel =
59
+ "signal-strongly-ai" | "signal-likely-ai" | "signal-potentially-ai" | "signal-unclear" | "signal-likely-human";
60
+ export type Section = Section1 & {
61
+ /**
62
+ * Zero-based engine index. Presentation layers add one for reader-facing section numbers.
63
+ */
64
+ index: number;
65
+ start_utf16: number;
66
+ end_utf16: number;
67
+ word_count: number;
68
+ raw_score: number;
69
+ /**
70
+ * Raw Cycle-5 AI-logit minus human-logit margin used by margin-v1. It is not a displayed probability.
71
+ */
72
+ raw_margin: number;
73
+ display_score: string;
74
+ level: AiLevel;
75
+ band_id: "very_likely_ai" | "uncertain" | "likely_human" | "very_likely_human";
76
+ passage?: string;
77
+ locator?: {
78
+ content_hash: string;
79
+ start_utf16: number;
80
+ end_utf16: number;
81
+ [k: string]: unknown;
82
+ };
83
+ evidence: Evidence[];
84
+ [k: string]: unknown;
85
+ };
86
+ export type Section1 =
87
+ | {
88
+ passage: string;
89
+ [k: string]: unknown;
90
+ }
91
+ | {
92
+ locator: {
93
+ [k: string]: unknown;
94
+ };
95
+ [k: string]: unknown;
96
+ };
97
+ export type HttpsSchemasOpaceAgencyContentIntegrityV1MethodResultSchemaJson = {
98
+ [k: string]: unknown;
99
+ } & {
100
+ id: string;
101
+ category: "detector" | "watermark" | "provenance" | "unicode" | "pattern" | "fidelity";
102
+ provider_or_method: string;
103
+ version: string;
104
+ status: "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
105
+ availability?: "available" | "restricted" | "not_available";
106
+ native_outcome?: string;
107
+ score: number | null;
108
+ score_scale?: {
109
+ [k: string]: unknown;
110
+ } | null;
111
+ threshold: {
112
+ [k: string]: unknown;
113
+ } | null;
114
+ segments: {
115
+ [k: string]: unknown;
116
+ }[];
117
+ evidence: {
118
+ [k: string]: unknown;
119
+ }[];
120
+ /**
121
+ * @minItems 1
122
+ */
123
+ limitations: [string, ...string[]];
124
+ started_at: string;
125
+ completed_at: string;
126
+ privacy_route: "browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok";
127
+ [k: string]: unknown;
128
+ };
129
+ export type ControlState = "enforced" | "not_applicable" | "not_configured";
130
+
131
+ export interface SourceSummary {
132
+ content_hash: string;
133
+ normalised_hash: string;
134
+ content_type: "plain_text" | "html" | "markdown";
135
+ language: string;
136
+ word_count: number;
137
+ character_count: number;
138
+ section_count: number;
139
+ [k: string]: unknown;
140
+ }
141
+ export interface Route {
142
+ kind: "browser_model" | "eu_server" | "wordpress_same_site" | "loopback_engine" | "deterministic_only";
143
+ location: string;
144
+ content_transfer: "none" | "same_site" | "loopback" | "eu_server";
145
+ privacy_route: "browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok";
146
+ retention: {
147
+ source: "none" | "request_only" | "session" | "job";
148
+ result: "none" | "session" | "receipt" | "job";
149
+ statement?: string;
150
+ [k: string]: unknown;
151
+ };
152
+ consent: "not_required" | "explicit";
153
+ model: null | Cycle5Model;
154
+ transport?: {
155
+ endpoint_class?: string;
156
+ region?: string | null;
157
+ requests?: number;
158
+ words_sent?: number;
159
+ processed?: string;
160
+ retained?: string;
161
+ [k: string]: unknown;
162
+ };
163
+ [k: string]: unknown;
164
+ }
165
+ export interface Cycle5Model {
166
+ identity: string;
167
+ registry_identity: string | null;
168
+ precision: "fp32" | "int8" | "other";
169
+ artefact_hash?: string | null;
170
+ segmentation_contract: string;
171
+ input_contract: string;
172
+ features_contract: string;
173
+ scoring_contract: string;
174
+ flag_rule: {
175
+ expression: string;
176
+ primary_margin: number;
177
+ secondary_gap: number;
178
+ [k: string]: unknown;
179
+ };
180
+ [k: string]: unknown;
181
+ }
182
+ export interface Axes {
183
+ ai_pattern: AiPatternAxis;
184
+ text_integrity: {
185
+ method_status:
186
+ "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
187
+ reading: "clean" | "attention" | "manipulated" | "inconclusive" | "error";
188
+ reason: string;
189
+ findings: {
190
+ [k: string]: unknown;
191
+ }[];
192
+ /**
193
+ * @minItems 1
194
+ */
195
+ limitations: [string, ...string[]];
196
+ [k: string]: unknown;
197
+ };
198
+ editorial: {
199
+ method_status:
200
+ "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
201
+ reading: "none" | "some" | "many" | "not_assessed" | "error";
202
+ reason: string;
203
+ findings: {
204
+ [k: string]: unknown;
205
+ }[];
206
+ /**
207
+ * @minItems 1
208
+ */
209
+ limitations: [string, ...string[]];
210
+ [k: string]: unknown;
211
+ };
212
+ [k: string]: unknown;
213
+ }
214
+ export interface Evidence {
215
+ id: string;
216
+ kind:
217
+ "trained_model" | "measured_pattern" | "editorial_rule" | "character" | "provenance" | "watermark" | "limitation";
218
+ summary: string;
219
+ detail?: string;
220
+ basis?: string;
221
+ [k: string]: unknown;
222
+ }
223
+ export interface Provenance {
224
+ protected_facts: {
225
+ count: number;
226
+ categories: string[];
227
+ [k: string]: unknown;
228
+ };
229
+ c2pa_text: {
230
+ status: "present" | "absent" | "invalid" | "untrusted" | "not_run" | "unsupported" | "error";
231
+ wrapper_protected: boolean;
232
+ /**
233
+ * @minItems 1
234
+ */
235
+ limitations: [string, ...string[]];
236
+ [k: string]: unknown;
237
+ };
238
+ c2pa_files: {
239
+ file_hash: string;
240
+ media_type: string;
241
+ status: "present" | "absent" | "invalid" | "untrusted" | "not_run" | "unsupported" | "error";
242
+ trust: "trusted" | "untrusted" | "not_validated" | "not_applicable";
243
+ /**
244
+ * @minItems 1
245
+ */
246
+ limitations: [string, ...string[]];
247
+ [k: string]: unknown;
248
+ }[];
249
+ watermarks: {
250
+ method_id: string;
251
+ method_status:
252
+ "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
253
+ key_scope: "public_test" | "provider_private" | "none";
254
+ outcome: "detected" | "not_detected" | "not_available" | "not_supported" | "not_run" | "error";
255
+ /**
256
+ * @minItems 1
257
+ */
258
+ limitations: [string, ...string[]];
259
+ [k: string]: unknown;
260
+ }[];
261
+ safe_fixes: {
262
+ preview_first: true;
263
+ explicit_approval_required: true;
264
+ automatic_homoglyph_replacement: false;
265
+ c2pa_wrapper_protected: true;
266
+ [k: string]: unknown;
267
+ };
268
+ [k: string]: unknown;
269
+ }
270
+ export interface Exports {
271
+ receipt: {
272
+ available: boolean;
273
+ contains_content: false;
274
+ canonicalisation: "RFC8785" | "none";
275
+ payload_hash?: string | null;
276
+ [k: string]: unknown;
277
+ };
278
+ share: {
279
+ available: boolean;
280
+ contains_content: false;
281
+ payload: null | SharePayload;
282
+ [k: string]: unknown;
283
+ };
284
+ report: {
285
+ available: boolean;
286
+ format: "pdf" | "html" | "json" | "jsonl" | "none";
287
+ contains_content: boolean;
288
+ explicit_user_action: boolean;
289
+ complete_evidence: boolean;
290
+ product_identity: string;
291
+ support_destination: string;
292
+ [k: string]: unknown;
293
+ };
294
+ [k: string]: unknown;
295
+ }
296
+ export interface SharePayload {
297
+ version: 1;
298
+ result_id: string;
299
+ level: AiLevel;
300
+ display_score: string;
301
+ sections: {
302
+ index: number;
303
+ raw_score: number;
304
+ display_score: string;
305
+ level: AiLevel;
306
+ [k: string]: unknown;
307
+ }[];
308
+ word_count: number;
309
+ date: string;
310
+ model_version: string;
311
+ honesty_line: string;
312
+ contains_content: false;
313
+ [k: string]: unknown;
314
+ }
315
+ export interface AbuseControls {
316
+ max_words: number | null;
317
+ max_characters: number | null;
318
+ max_request_bytes: number | null;
319
+ explicit_capture: ControlState;
320
+ consent_before_transfer: ControlState;
321
+ refuse_not_truncate: ControlState;
322
+ cancellation: ControlState;
323
+ channel_authentication:
324
+ | "browser_pow_token"
325
+ | "chrome_extension_challenge_token"
326
+ | "wordpress_challenge_token"
327
+ | "same_site_nonce"
328
+ | "loopback_bearer"
329
+ | "not_applicable"
330
+ | "not_configured";
331
+ proof_of_work: ControlState;
332
+ origin_validation: ControlState;
333
+ per_ip_limit: ControlState;
334
+ per_site_limit: ControlState;
335
+ per_connection_limit: ControlState;
336
+ global_inference_limit: ControlState;
337
+ request_body_logging: "excluded" | "not_applicable" | "not_configured";
338
+ unexpected_network_requests: "blocked" | "not_applicable" | "not_configured";
339
+ fallback: ControlState;
340
+ kill_switch: ControlState;
341
+ [k: string]: unknown;
342
+ }
@@ -0,0 +1,10 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export interface OACICommonContractDefinitions {
9
+ [k: string]: unknown;
10
+ }
@@ -0,0 +1,14 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export interface HttpsSchemasOpaceAgencyContentIntegrityV1EnvelopeSchemaJson {
9
+ schema_version: "1.0";
10
+ contract_version: string;
11
+ request_id: string;
12
+ created_at: string;
13
+ [k: string]: unknown;
14
+ }
@@ -0,0 +1,19 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export interface HttpsSchemasOpaceAgencyContentIntegrityV1GateResultSchemaJson {
9
+ id: string;
10
+ version: string;
11
+ status: "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
12
+ hard: boolean;
13
+ summary: string;
14
+ failures: {
15
+ [k: string]: unknown;
16
+ }[];
17
+ limitations: string[];
18
+ [k: string]: unknown;
19
+ }
@@ -0,0 +1,122 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export type HttpsSchemasOpaceAgencyContentIntegrityV1IntegrityReceiptSchemaJson = {
9
+ [k: string]: unknown;
10
+ } & {
11
+ schema_version: "1.0";
12
+ contract_version: string;
13
+ product_version: string;
14
+ receipt_id: string;
15
+ created_at: string;
16
+ source: {
17
+ content_hash: string;
18
+ normalised_hash: string;
19
+ content_type: "plain_text" | "html" | "markdown";
20
+ language: string;
21
+ word_count: number;
22
+ content?: string;
23
+ [k: string]: unknown;
24
+ };
25
+ policy: {
26
+ id: string;
27
+ version: string;
28
+ requested_checks: string[];
29
+ allowed_routes: ("browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok")[];
30
+ retain_content: boolean;
31
+ [k: string]: unknown;
32
+ };
33
+ methods: HttpsSchemasOpaceAgencyContentIntegrityV1MethodResultSchemaJson[];
34
+ rewrite: null | {
35
+ source_hash: string;
36
+ candidate_hash: string;
37
+ generator: {
38
+ route: "browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok";
39
+ provider: string;
40
+ model: string;
41
+ prompt_template: string;
42
+ parameters?: {
43
+ [k: string]: unknown;
44
+ };
45
+ [k: string]: unknown;
46
+ };
47
+ gates: HttpsSchemasOpaceAgencyContentIntegrityV1GateResultSchemaJson[];
48
+ selected_candidate: string | null;
49
+ source_content?: string;
50
+ candidate_content?: string;
51
+ [k: string]: unknown;
52
+ };
53
+ approval: {
54
+ actor_id?: string;
55
+ at?: string;
56
+ scope: "whole" | "sentences" | "none";
57
+ sentence_ids?: string[];
58
+ [k: string]: unknown;
59
+ };
60
+ /**
61
+ * @minItems 1
62
+ */
63
+ limitations: [string, ...string[]];
64
+ contains_content: boolean;
65
+ integrity: {
66
+ canonicalisation: "RFC8785";
67
+ payload_hash: string;
68
+ signature?: {
69
+ algorithm: string;
70
+ key_id: string;
71
+ value: string;
72
+ [k: string]: unknown;
73
+ };
74
+ [k: string]: unknown;
75
+ };
76
+ [k: string]: unknown;
77
+ };
78
+ export type HttpsSchemasOpaceAgencyContentIntegrityV1MethodResultSchemaJson = {
79
+ [k: string]: unknown;
80
+ } & {
81
+ id: string;
82
+ category: "detector" | "watermark" | "provenance" | "unicode" | "pattern" | "fidelity";
83
+ provider_or_method: string;
84
+ version: string;
85
+ status: "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
86
+ availability?: "available" | "restricted" | "not_available";
87
+ native_outcome?: string;
88
+ score: number | null;
89
+ score_scale?: {
90
+ [k: string]: unknown;
91
+ } | null;
92
+ threshold: {
93
+ [k: string]: unknown;
94
+ } | null;
95
+ segments: {
96
+ [k: string]: unknown;
97
+ }[];
98
+ evidence: {
99
+ [k: string]: unknown;
100
+ }[];
101
+ /**
102
+ * @minItems 1
103
+ */
104
+ limitations: [string, ...string[]];
105
+ started_at: string;
106
+ completed_at: string;
107
+ privacy_route: "browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok";
108
+ [k: string]: unknown;
109
+ };
110
+
111
+ export interface HttpsSchemasOpaceAgencyContentIntegrityV1GateResultSchemaJson {
112
+ id: string;
113
+ version: string;
114
+ status: "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
115
+ hard: boolean;
116
+ summary: string;
117
+ failures: {
118
+ [k: string]: unknown;
119
+ }[];
120
+ limitations: string[];
121
+ [k: string]: unknown;
122
+ }
@@ -0,0 +1,188 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export type HttpsSchemasOpaceAgencyContentIntegrityV1MethodResultSchemaJson = {
9
+ [k: string]: unknown;
10
+ } & {
11
+ [k: string]: unknown;
12
+ } & {
13
+ id: string;
14
+ category: "detector" | "watermark" | "provenance" | "unicode" | "pattern" | "fidelity";
15
+ provider_or_method: string;
16
+ version: string;
17
+ status: "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
18
+ availability?: "available" | "restricted" | "not_available";
19
+ native_outcome?: string;
20
+ score: number | null;
21
+ score_scale?: {
22
+ [k: string]: unknown;
23
+ } | null;
24
+ threshold: {
25
+ [k: string]: unknown;
26
+ } | null;
27
+ segments: {
28
+ [k: string]: unknown;
29
+ }[];
30
+ evidence: {
31
+ [k: string]: unknown;
32
+ }[];
33
+ /**
34
+ * @minItems 1
35
+ */
36
+ limitations: [string, ...string[]];
37
+ started_at: string;
38
+ completed_at: string;
39
+ privacy_route: "browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok";
40
+ [k: string]: unknown;
41
+ };
42
+
43
+ export interface HttpsSchemasOpaceAgencyContentIntegrityV1JobSchemaJson {
44
+ schema_version: "1.0";
45
+ contract_version: string;
46
+ job_id: string;
47
+ request_id: string;
48
+ state:
49
+ | "accepted"
50
+ | "validating"
51
+ | "protecting"
52
+ | "generating"
53
+ | "gating"
54
+ | "scoring"
55
+ | "ready_for_review"
56
+ | "approved"
57
+ | "completed_without_approval"
58
+ | "cancelling"
59
+ | "cancelled"
60
+ | "failed"
61
+ | "interrupted";
62
+ transitions: {
63
+ state:
64
+ | "accepted"
65
+ | "validating"
66
+ | "protecting"
67
+ | "generating"
68
+ | "gating"
69
+ | "scoring"
70
+ | "ready_for_review"
71
+ | "approved"
72
+ | "completed_without_approval"
73
+ | "cancelling"
74
+ | "cancelled"
75
+ | "failed"
76
+ | "interrupted";
77
+ at: string;
78
+ attempt: number;
79
+ method_id?: string;
80
+ message: string;
81
+ [k: string]: unknown;
82
+ }[];
83
+ /**
84
+ * @maxItems 5
85
+ */
86
+ candidates:
87
+ | []
88
+ | [HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson]
89
+ | [
90
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
91
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson
92
+ ]
93
+ | [
94
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
95
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
96
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson
97
+ ]
98
+ | [
99
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
100
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
101
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
102
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson
103
+ ]
104
+ | [
105
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
106
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
107
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
108
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson,
109
+ HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson
110
+ ];
111
+ error?: Error;
112
+ created_at: string;
113
+ updated_at: string;
114
+ [k: string]: unknown;
115
+ }
116
+ export interface HttpsSchemasOpaceAgencyContentIntegrityV1CandidateSchemaJson {
117
+ id: string;
118
+ job_id: string;
119
+ ordinal: number;
120
+ content: string;
121
+ content_hash: string;
122
+ generator: {
123
+ route: "browser" | "wordpress_local" | "local_service" | "hub_provider" | "commercial_byok";
124
+ provider: string;
125
+ model: string;
126
+ prompt_template: string;
127
+ parameters: {
128
+ [k: string]: unknown;
129
+ };
130
+ [k: string]: unknown;
131
+ };
132
+ gates: HttpsSchemasOpaceAgencyContentIntegrityV1GateResultSchemaJson[];
133
+ methods: HttpsSchemasOpaceAgencyContentIntegrityV1MethodResultSchemaJson[];
134
+ diff: {
135
+ version: string;
136
+ change_count: number;
137
+ segments: unknown[];
138
+ [k: string]: unknown;
139
+ };
140
+ eligible: boolean;
141
+ rejection_reasons: string[];
142
+ created_at: string;
143
+ [k: string]: unknown;
144
+ }
145
+ export interface HttpsSchemasOpaceAgencyContentIntegrityV1GateResultSchemaJson {
146
+ id: string;
147
+ version: string;
148
+ status: "pass" | "attention" | "fail" | "inconclusive" | "unsupported" | "not_configured" | "not_run" | "error";
149
+ hard: boolean;
150
+ summary: string;
151
+ failures: {
152
+ [k: string]: unknown;
153
+ }[];
154
+ limitations: string[];
155
+ [k: string]: unknown;
156
+ }
157
+ export interface Error {
158
+ code:
159
+ | "invalid_request"
160
+ | "request_too_large"
161
+ | "unsupported_schema"
162
+ | "contract_incompatible"
163
+ | "permission_denied"
164
+ | "object_not_found"
165
+ | "route_not_allowed"
166
+ | "consent_required"
167
+ | "method_unsupported"
168
+ | "method_not_configured"
169
+ | "engine_unreachable"
170
+ | "engine_auth_failed"
171
+ | "model_unavailable"
172
+ | "provider_not_configured"
173
+ | "provider_error"
174
+ | "rate_limited"
175
+ | "job_timeout"
176
+ | "job_cancelled"
177
+ | "candidate_invalid"
178
+ | "fidelity_failed"
179
+ | "receipt_save_failed"
180
+ | "retention_delete_failed"
181
+ | "internal_error";
182
+ message: string;
183
+ retryable: boolean;
184
+ details?: {
185
+ [k: string]: unknown;
186
+ };
187
+ [k: string]: unknown;
188
+ }