@cassiomc1/forgeloop 1.12.0 → 1.14.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 (249) hide show
  1. package/.github/copilot-instructions.md +1 -1
  2. package/AGENTS.md +1 -1
  3. package/AGENT_COMPATIBILITY.md +8 -0
  4. package/CLAUDE.md +1 -1
  5. package/CONTRIBUTING.md +90 -0
  6. package/DOCS_INDEX.md +46 -12
  7. package/ENG/c-development-eng.md +112 -0
  8. package/ENG/cpp-development-eng.md +109 -0
  9. package/ENG/dotnet-aspnetcore-development-eng.md +401 -0
  10. package/ENG/go-development-eng.md +103 -0
  11. package/ENG/java-development-eng.md +125 -0
  12. package/ENG/nodejs-backend-development-eng.md +605 -0
  13. package/ENG/php-development-eng.md +104 -0
  14. package/ENG/rust-development-eng.md +422 -0
  15. package/ENG/sec-code-eng.md +7 -7
  16. package/ENG/sql-development-eng.md +108 -0
  17. package/ENG/swift-development-eng.md +111 -0
  18. package/ENG/typescript-development-eng.md +108 -0
  19. package/EXECUTION_STATE.md +12 -0
  20. package/GUIDE_ROUTER.md +418 -9
  21. package/LOOP_ENGINEERING.md +28 -2
  22. package/ORCHESTRATOR_INTEGRATION.md +9 -5
  23. package/PROTOCOL_INTEGRATION.md +55 -2
  24. package/QUALITY_SCORECARD.md +1 -0
  25. package/README.md +78 -52
  26. package/TERMINOLOGY.md +2 -0
  27. package/THIRD_PARTY_NOTICES.md +19 -7
  28. package/THREAT_MODEL.md +140 -1
  29. package/completions/_forgeloop +22 -4
  30. package/completions/forgeloop.bash +40 -4
  31. package/completions/forgeloop.fish +130 -1
  32. package/docs/ADVISORY_CONTEXT.md +25 -0
  33. package/docs/AGENT_BROWSER_ADAPTER.md +81 -0
  34. package/docs/AGENT_BROWSER_VERIFICATION.md +6 -0
  35. package/docs/AGENT_PROTOCOL_SUMMARY.md +81 -3
  36. package/docs/AGENT_SKILL.md +66 -0
  37. package/docs/ARTIFACT_REFERENCE.md +123 -0
  38. package/docs/AUDIT_UX.md +46 -0
  39. package/docs/BROWSER_VERIFICATION.md +136 -0
  40. package/docs/CLI_REFERENCE.md +392 -10
  41. package/docs/CODE_ATTESTATION.md +2 -2
  42. package/docs/DOCUMENTATION_GUIDE.md +34 -12
  43. package/docs/GETTING_STARTED.md +59 -0
  44. package/docs/JEV_BENCHMARKS.md +31 -0
  45. package/docs/MODEL_ROUTING.md +37 -0
  46. package/docs/OPENSRC_ADAPTER.md +241 -0
  47. package/docs/PACKAGE_CONTENTS.md +60 -19
  48. package/docs/PROVIDERS.md +126 -0
  49. package/docs/PROVIDER_ARCHITECTURE.md +199 -0
  50. package/docs/RECIPES.md +32 -0
  51. package/docs/RELEASE_CHECKLIST.md +66 -5
  52. package/docs/SECURITY_REVIEW.md +71 -0
  53. package/docs/SEMANTIC_DECISION_PLANE.md +71 -0
  54. package/docs/TEST_INTELLIGENCE.md +29 -0
  55. package/docs/TEST_PRUNING.md +14 -0
  56. package/docs/TROUBLESHOOTING.md +298 -3
  57. package/docs/UNIVERSAL_INTEGRATION.md +31 -0
  58. package/docs/assets/diagrams/forgeloop-code-attestation-flow.html +2 -2
  59. package/docs/assets/diagrams/forgeloop-code-attestation-flow.receipt.json +5 -5
  60. package/docs/assets/diagrams/forgeloop-code-attestation-flow.svg +1 -1
  61. package/docs/assets/diagrams/forgeloop-engineering-flow.html +39 -26
  62. package/docs/assets/diagrams/forgeloop-engineering-flow.receipt.json +6 -6
  63. package/docs/assets/diagrams/forgeloop-engineering-flow.svg +26 -26
  64. package/docs/assets/diagrams/forgeloop-verification-trust-flow.html +2 -1
  65. package/docs/assets/diagrams/forgeloop-verification-trust-flow.receipt.json +5 -5
  66. package/docs/assets/diagrams/forgeloop-verification-trust-flow.svg +1 -1
  67. package/docs/diagrams/README.md +13 -9
  68. package/docs/diagrams/forgeloop-code-attestation-flow.workflow.json +1 -1
  69. package/docs/diagrams/forgeloop-engineering-flow.workflow.json +24 -19
  70. package/docs/diagrams/forgeloop-verification-trust-flow.workflow.json +1 -0
  71. package/docs/diagrams/reviews/forgeloop-code-attestation-flow.review.json +4 -4
  72. package/docs/diagrams/reviews/forgeloop-engineering-flow.review.json +4 -4
  73. package/docs/diagrams/reviews/forgeloop-verification-trust-flow.review.json +4 -4
  74. package/docs/documentation-manifest.json +1397 -0
  75. package/docs/protocol-requirements.json +101 -0
  76. package/package.json +46 -4
  77. package/schemas/config.schema.json +14 -0
  78. package/schemas/context-plan.schema.json +18 -0
  79. package/schemas/routing-input.schema.json +1 -1
  80. package/schemas/semantic-decision.schema.json +46 -0
  81. package/schemas/test-utility.schema.json +44 -0
  82. package/scripts/CI_VALIDATORS.md +84 -11
  83. package/scripts/benchmark-jev.mjs +5 -0
  84. package/scripts/benchmark-test-intelligence.mjs +4 -0
  85. package/scripts/generate-agent-protocol-summary.mjs +40 -1
  86. package/scripts/generate-forgeloop-skill.mjs +133 -0
  87. package/scripts/jev-smoke.mjs +19 -0
  88. package/skills/forgeloop/README.md +9 -0
  89. package/skills/forgeloop/SKILL.md +77 -0
  90. package/skills/forgeloop/references/lifecycle.md +9 -0
  91. package/skills/forgeloop/references/recovery.md +7 -0
  92. package/skills/forgeloop/references/verification.md +7 -0
  93. package/src/adapters/agent-browser/assertions.js +47 -0
  94. package/src/adapters/agent-browser/commands.js +54 -0
  95. package/src/adapters/agent-browser/index.js +3 -0
  96. package/src/adapters/agent-browser/locator.js +40 -0
  97. package/src/adapters/agent-browser/process.js +215 -0
  98. package/src/adapters/agent-browser/provider.js +313 -0
  99. package/src/adapters/emulated-services/constants.js +24 -0
  100. package/src/adapters/emulated-services/index.js +7 -0
  101. package/src/adapters/emulated-services/process.js +162 -0
  102. package/src/adapters/emulated-services/provider.js +282 -0
  103. package/src/adapters/opensrc/normalize.js +90 -0
  104. package/src/adapters/opensrc/process.js +248 -0
  105. package/src/adapters/opensrc/provider.js +338 -0
  106. package/src/adapters/opensrc/search.js +264 -0
  107. package/src/adapters/typesafe/client.js +28 -0
  108. package/src/adapters/typesafe/engine.js +63 -0
  109. package/src/adapters/typesafe/normalize.js +41 -0
  110. package/src/cli.js +108 -0
  111. package/src/commands/checkpoint-revalidate.js +176 -0
  112. package/src/commands/context-plan.js +38 -0
  113. package/src/commands/contract-create.js +264 -0
  114. package/src/commands/contract-revise.js +236 -0
  115. package/src/commands/decision-show.js +14 -0
  116. package/src/commands/decision-status.js +22 -0
  117. package/src/commands/discover.js +41 -0
  118. package/src/commands/doctor.js +15 -0
  119. package/src/commands/gate-record.js +205 -0
  120. package/src/commands/gate-revalidate.js +137 -0
  121. package/src/commands/model-route.js +32 -0
  122. package/src/commands/next.js +19 -7
  123. package/src/commands/route.js +146 -18
  124. package/src/commands/semantic-plan.js +17 -0
  125. package/src/commands/task-abandon.js +224 -0
  126. package/src/commands/task-create.js +84 -25
  127. package/src/commands/task-list.js +22 -2
  128. package/src/commands/task-migrate-contract-bootstrap-repair.js +288 -0
  129. package/src/commands/task-repair-contract-bootstrap.js +263 -0
  130. package/src/commands/test-inventory.js +5 -0
  131. package/src/commands/test-prune-plan.js +5 -0
  132. package/src/commands/test-prune-probe.js +5 -0
  133. package/src/commands/test-utility.js +5 -0
  134. package/src/commands/validate-protocol.js +10 -1
  135. package/src/config/guides.json +44 -0
  136. package/src/core/artifact-registry.js +24 -0
  137. package/src/core/audit-ux.js +514 -0
  138. package/src/core/browser-verification/constants.js +149 -0
  139. package/src/core/browser-verification/normalize.js +254 -0
  140. package/src/core/browser-verification/provider.js +519 -0
  141. package/src/core/browser-verification/service.js +115 -0
  142. package/src/core/build-script.js +151 -0
  143. package/src/core/c-cpp-project.js +143 -0
  144. package/src/core/checkpoint-revalidation.js +319 -0
  145. package/src/core/cli-command-definitions.js +249 -1
  146. package/src/core/command-executors.js +115 -3
  147. package/src/core/command-input.js +212 -102
  148. package/src/core/completion-artifacts.js +14 -5
  149. package/src/core/completion.js +4 -6
  150. package/src/core/config.js +3 -0
  151. package/src/core/context-compiler/budget.js +9 -0
  152. package/src/core/context-compiler/candidates.js +39 -0
  153. package/src/core/context-compiler/compiler.js +63 -0
  154. package/src/core/context-compiler/fingerprint.js +11 -0
  155. package/src/core/context-compiler/policy.js +13 -0
  156. package/src/core/context-compiler/result.js +23 -0
  157. package/src/core/contract-bootstrap-recovery.js +655 -0
  158. package/src/core/contract-presets.js +82 -0
  159. package/src/core/contract-revision.js +210 -0
  160. package/src/core/decision/artifact.js +69 -0
  161. package/src/core/decision/benchmarks.js +103 -0
  162. package/src/core/decision/cache.js +27 -0
  163. package/src/core/decision/constants.js +58 -0
  164. package/src/core/decision/cutover.js +34 -0
  165. package/src/core/decision/engine.js +22 -0
  166. package/src/core/decision/errors.js +68 -0
  167. package/src/core/decision/events.js +101 -0
  168. package/src/core/decision/freshness.js +19 -0
  169. package/src/core/decision/normalizers/index.js +115 -0
  170. package/src/core/decision/policy.js +18 -0
  171. package/src/core/decision/projection.js +16 -0
  172. package/src/core/decision/question-registry.js +201 -0
  173. package/src/core/decision/request.js +26 -0
  174. package/src/core/decision/resolver.js +130 -0
  175. package/src/core/decision/result.js +58 -0
  176. package/src/core/decision/service.js +156 -0
  177. package/src/core/decision/state-builder.js +65 -0
  178. package/src/core/decision/task-bindings.js +30 -0
  179. package/src/core/decision/test-provider.js +32 -0
  180. package/src/core/decision/thresholds.js +15 -0
  181. package/src/core/error-codes.js +281 -3
  182. package/src/core/events.js +226 -57
  183. package/src/core/evidence-readiness.js +9 -0
  184. package/src/core/execution-prerequisites.js +14 -0
  185. package/src/core/execution-profile.js +63 -38
  186. package/src/core/filesystem.js +1 -10
  187. package/src/core/gate-provenance.js +124 -0
  188. package/src/core/go-project.js +206 -0
  189. package/src/core/integration-invocation-policy.js +27 -4
  190. package/src/core/integration-resources.js +86 -61
  191. package/src/core/java-project.js +403 -0
  192. package/src/core/model-router/constants.js +10 -0
  193. package/src/core/model-router/policy.js +103 -0
  194. package/src/core/model-router/router.js +37 -0
  195. package/src/core/multi-language-project.js +117 -0
  196. package/src/core/next-action-model.js +58 -0
  197. package/src/core/next-action-phases.js +130 -42
  198. package/src/core/next-action-refresh.js +43 -9
  199. package/src/core/next-action-review-phase.js +7 -2
  200. package/src/core/next-action.js +35 -7
  201. package/src/core/next-explanation.js +63 -0
  202. package/src/core/phase.js +128 -10
  203. package/src/core/php-project.js +85 -0
  204. package/src/core/preflight-consistency.js +23 -9
  205. package/src/core/preflight-loaders.js +37 -5
  206. package/src/core/project-detection.js +1760 -52
  207. package/src/core/protocol-info.js +65 -0
  208. package/src/core/protocol.js +20 -0
  209. package/src/core/reconcile-closure.js +132 -53
  210. package/src/core/recovery-history.js +1 -0
  211. package/src/core/resumability.js +154 -44
  212. package/src/core/route-artifact.js +15 -1
  213. package/src/core/router.js +223 -4
  214. package/src/core/runtime-context.js +118 -61
  215. package/src/core/rust-project.js +400 -0
  216. package/src/core/schema-validation.js +3 -0
  217. package/src/core/security-review/constants.js +64 -0
  218. package/src/core/security-review/normalize.js +245 -0
  219. package/src/core/security-review/provider.js +204 -0
  220. package/src/core/security-review/service.js +134 -0
  221. package/src/core/semantic-planning/constants.js +19 -0
  222. package/src/core/semantic-planning/projection.js +94 -0
  223. package/src/core/semantic-planning/service.js +15 -0
  224. package/src/core/sources.js +37 -0
  225. package/src/core/sql-project.js +141 -0
  226. package/src/core/swift-project.js +200 -0
  227. package/src/core/task-claim-state.js +201 -1
  228. package/src/core/task-conflict-inspection.js +31 -5
  229. package/src/core/task-paths.js +13 -0
  230. package/src/core/task-recovery.js +1 -0
  231. package/src/core/templates.js +3 -0
  232. package/src/core/test-intelligence/benchmarks.js +68 -0
  233. package/src/core/test-intelligence/inventory.js +73 -0
  234. package/src/core/test-intelligence/prune.js +90 -0
  235. package/src/core/test-intelligence/semantic-state.js +15 -0
  236. package/src/core/test-intelligence/service.js +40 -0
  237. package/src/core/test-intelligence/utility.js +50 -0
  238. package/src/core/trace.js +11 -7
  239. package/src/core/transaction.js +1 -0
  240. package/src/core/typescript-project.js +349 -0
  241. package/src/core/xml-structure.js +123 -0
  242. package/src/integration.d.ts +492 -0
  243. package/src/integration.js +54 -0
  244. package/src/providers/README.md +47 -0
  245. package/src/providers/capabilities.js +46 -0
  246. package/src/providers/errors.js +15 -0
  247. package/src/providers/index.js +29 -0
  248. package/src/providers/json-snapshot.js +105 -0
  249. package/src/providers/registry.js +152 -0
@@ -142,11 +142,46 @@ export const E_ADVISORY_CONTEXT_REQUEST_INVALID = "E_ADVISORY_CONTEXT_REQUEST_IN
142
142
  export const E_ADVISORY_CONTEXT_RESULT_INVALID = "E_ADVISORY_CONTEXT_RESULT_INVALID";
143
143
  export const E_ADVISORY_CONTEXT_TIMEOUT = "E_ADVISORY_CONTEXT_TIMEOUT";
144
144
  export const E_ADVISORY_CONTEXT_OUTPUT_LIMIT = "E_ADVISORY_CONTEXT_OUTPUT_LIMIT";
145
+ export const E_BROWSER_VERIFICATION_PROVIDER_INVALID = "E_BROWSER_VERIFICATION_PROVIDER_INVALID";
146
+ export const E_BROWSER_VERIFICATION_PROVIDER_UNAVAILABLE = "E_BROWSER_VERIFICATION_PROVIDER_UNAVAILABLE";
147
+ export const E_BROWSER_VERIFICATION_REQUEST_INVALID = "E_BROWSER_VERIFICATION_REQUEST_INVALID";
148
+ export const E_BROWSER_VERIFICATION_RESULT_INVALID = "E_BROWSER_VERIFICATION_RESULT_INVALID";
149
+ export const E_BROWSER_VERIFICATION_TIMEOUT = "E_BROWSER_VERIFICATION_TIMEOUT";
150
+ export const E_BROWSER_VERIFICATION_OUTPUT_LIMIT = "E_BROWSER_VERIFICATION_OUTPUT_LIMIT";
151
+ export const E_BROWSER_VERIFICATION_ORIGIN_DENIED = "E_BROWSER_VERIFICATION_ORIGIN_DENIED";
152
+ export const E_BROWSER_VERIFICATION_EXECUTION_FAILED = "E_BROWSER_VERIFICATION_EXECUTION_FAILED";
153
+ export const E_BROWSER_VERIFICATION_CANCELLED = "E_BROWSER_VERIFICATION_CANCELLED";
154
+ export const E_BROWSER_VERIFICATION_VERSION_UNSUPPORTED = "E_BROWSER_VERIFICATION_VERSION_UNSUPPORTED";
155
+ export const E_SECURITY_REVIEW_PROVIDER_INVALID = "E_SECURITY_REVIEW_PROVIDER_INVALID";
156
+ export const E_SECURITY_REVIEW_PROVIDER_UNAVAILABLE = "E_SECURITY_REVIEW_PROVIDER_UNAVAILABLE";
157
+ export const E_SECURITY_REVIEW_REQUEST_INVALID = "E_SECURITY_REVIEW_REQUEST_INVALID";
158
+ export const E_SECURITY_REVIEW_RESULT_INVALID = "E_SECURITY_REVIEW_RESULT_INVALID";
159
+ export const E_SECURITY_REVIEW_TIMEOUT = "E_SECURITY_REVIEW_TIMEOUT";
160
+ export const E_SECURITY_REVIEW_CANCELLED = "E_SECURITY_REVIEW_CANCELLED";
161
+ export const E_SECURITY_REVIEW_OUTPUT_LIMIT = "E_SECURITY_REVIEW_OUTPUT_LIMIT";
162
+ export const E_SECURITY_REVIEW_EXECUTION_FAILED = "E_SECURITY_REVIEW_EXECUTION_FAILED";
145
163
  export const E_PORTABLE_CONTEXT_INVALID = "E_PORTABLE_CONTEXT_INVALID";
146
164
  export const E_HANDOFF_ACCEPTANCE_UNBOUND = "E_HANDOFF_ACCEPTANCE_UNBOUND";
147
165
  export const E_HANDOFF_STALE = "E_HANDOFF_STALE";
148
166
  export const E_HANDOFF_ALREADY_ACCEPTED = "E_HANDOFF_ALREADY_ACCEPTED";
149
167
  export const E_HANDOFF_ACCEPTANCE_INCONSISTENT = "E_HANDOFF_ACCEPTANCE_INCONSISTENT";
168
+ export const E_DECISION_ENGINE_UNAVAILABLE = "E_DECISION_ENGINE_UNAVAILABLE";
169
+ export const E_DECISION_ENGINE_AUTH_REQUIRED = "E_DECISION_ENGINE_AUTH_REQUIRED";
170
+ export const E_DECISION_ENGINE_AUTH_INVALID = "E_DECISION_ENGINE_AUTH_INVALID";
171
+ export const E_DECISION_MODEL_UNSUPPORTED = "E_DECISION_MODEL_UNSUPPORTED";
172
+ export const E_DECISION_REQUEST_INVALID = "E_DECISION_REQUEST_INVALID";
173
+ export const E_DECISION_RESULT_INVALID = "E_DECISION_RESULT_INVALID";
174
+ export const E_DECISION_TIMEOUT = "E_DECISION_TIMEOUT";
175
+ export const E_DECISION_RATE_LIMITED = "E_DECISION_RATE_LIMITED";
176
+ export const E_DECISION_STATE_UNSAFE = "E_DECISION_STATE_UNSAFE";
177
+ export const E_DECISION_STATE_LIMIT = "E_DECISION_STATE_LIMIT";
178
+ export const E_DECISION_LOW_CONFIDENCE = "E_DECISION_LOW_CONFIDENCE";
179
+ export const E_DECISION_STALE = "E_DECISION_STALE";
180
+ export const E_DECISION_POLICY_INVALID = "E_DECISION_POLICY_INVALID";
181
+ export const E_DECISION_CACHE_INVALID = "E_DECISION_CACHE_INVALID";
182
+ export const E_DECISION_QUESTION_SET_UNKNOWN = "E_DECISION_QUESTION_SET_UNKNOWN";
183
+ export const E_DECISION_QUESTION_SET_STALE = "E_DECISION_QUESTION_SET_STALE";
184
+ export const E_DECISION_REQUIRED = "E_DECISION_REQUIRED";
150
185
 
151
186
  const STRUCTURAL_QUALITY_ERROR_METADATA = Object.freeze(Object.fromEntries([
152
187
  [E_STRUCTURAL_QUALITY_CONFIGURATION_INVALID, "Correct structuralQuality mode, provider ID, budgets, floors, or optimization limits in .forgeloop/config.json."],
@@ -243,6 +278,14 @@ export const E_TASK_MIGRATION_INVALID = "E_TASK_MIGRATION_INVALID";
243
278
  export const E_TASK_RECOVERY_UNSAFE = "E_TASK_RECOVERY_UNSAFE";
244
279
  export const E_TASK_RECOVERY_INCONSISTENT = "E_TASK_RECOVERY_INCONSISTENT";
245
280
  export const E_LEGACY_RECOVERY_MIGRATION_INVALID = "E_LEGACY_RECOVERY_MIGRATION_INVALID";
281
+ export const E_CONTRACT_BOOTSTRAP_INCONSISTENT = "E_CONTRACT_BOOTSTRAP_INCONSISTENT";
282
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_AVAILABLE = "E_CONTRACT_BOOTSTRAP_REPAIR_AVAILABLE";
283
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_INVALID = "E_CONTRACT_BOOTSTRAP_REPAIR_INVALID";
284
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_UNSAFE = "E_CONTRACT_BOOTSTRAP_REPAIR_UNSAFE";
285
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_AUTHORIZATION_REQUIRED = "E_CONTRACT_BOOTSTRAP_REPAIR_AUTHORIZATION_REQUIRED";
286
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AVAILABLE = "E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AVAILABLE";
287
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_INVALID = "E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_INVALID";
288
+ export const E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AUTHORIZATION_REQUIRED = "E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AUTHORIZATION_REQUIRED";
246
289
  export const E_COMPLETION_OWNERSHIP_UNPROVEN = "E_COMPLETION_OWNERSHIP_UNPROVEN";
247
290
  export const E_TASK_CLAIM_OWNERSHIP_INCONSISTENT = "E_TASK_CLAIM_OWNERSHIP_INCONSISTENT";
248
291
  export const E_TASK_RECOVERY_AUTHORIZATION_REQUIRED = "E_TASK_RECOVERY_AUTHORIZATION_REQUIRED";
@@ -251,6 +294,11 @@ export const E_TASK_RECOVERED = "E_TASK_RECOVERED";
251
294
  export const E_TASK_NOT_RECOVERED = "E_TASK_NOT_RECOVERED";
252
295
  export const E_TASK_RECOVERY_OFFICIAL_PATH_AVAILABLE = "E_TASK_RECOVERY_OFFICIAL_PATH_AVAILABLE";
253
296
  export const E_TASK_ALREADY_RECOVERED = "E_TASK_ALREADY_RECOVERED";
297
+ export const E_TASK_ABANDON_AUTHORIZATION_REQUIRED = "E_TASK_ABANDON_AUTHORIZATION_REQUIRED";
298
+ export const E_TASK_ABANDON_INVALID_STATE = "E_TASK_ABANDON_INVALID_STATE";
299
+ export const E_TASK_ABANDON_INCONSISTENT = "E_TASK_ABANDON_INCONSISTENT";
300
+ export const E_TASK_ALREADY_ABANDONED = "E_TASK_ALREADY_ABANDONED";
301
+ export const E_TASK_ABANDON_UNSAFE = "E_TASK_ABANDON_UNSAFE";
254
302
  export const E_TASK_MIGRATION_IDENTITY_MISMATCH = "E_TASK_MIGRATION_IDENTITY_MISMATCH";
255
303
  export const E_PROTOCOL_MIGRATION_TARGET_UNSUPPORTED = "E_PROTOCOL_MIGRATION_TARGET_UNSUPPORTED";
256
304
 
@@ -287,6 +335,7 @@ export const E_RECONCILE_REQUIREMENT_UNKNOWN = "E_RECONCILE_REQUIREMENT_UNKNOWN"
287
335
  export const E_RECONCILE_EVIDENCE_FAILED = "E_RECONCILE_EVIDENCE_FAILED";
288
336
  export const E_REPOSITORY_CHANGED = "E_REPOSITORY_CHANGED";
289
337
  export const E_STATE_REVALIDATION_REQUIRED = "E_STATE_REVALIDATION_REQUIRED";
338
+ export const E_CHECKPOINT_REVALIDATION_UNSAFE = "E_CHECKPOINT_REVALIDATION_UNSAFE";
290
339
 
291
340
  export const E_ACTION_INVALID = "E_ACTION_INVALID";
292
341
  export const E_ACTION_NOT_FOUND = "E_ACTION_NOT_FOUND";
@@ -366,6 +415,132 @@ const ADVISORY_CONTEXT_AND_HANDOFF_ERROR_METADATA = Object.freeze(Object.fromEnt
366
415
  meaning: "Advisory context output exceeded the configured character or item limit.",
367
416
  safeResolution: "Reduce query scope, limit items, or truncate oversized summaries at the provider.",
368
417
  })],
418
+ [E_BROWSER_VERIFICATION_PROVIDER_INVALID, Object.freeze({
419
+ code: E_BROWSER_VERIFICATION_PROVIDER_INVALID,
420
+ category: "browser-verification",
421
+ classification: "PUBLIC_STABLE",
422
+ meaning: "Browser verification provider configuration or interface implementation is invalid.",
423
+ safeResolution: "Use a provider implementing id, verify(input) with the documented browser-verification contract; verification is optional.",
424
+ })],
425
+ [E_BROWSER_VERIFICATION_PROVIDER_UNAVAILABLE, Object.freeze({
426
+ code: E_BROWSER_VERIFICATION_PROVIDER_UNAVAILABLE,
427
+ category: "browser-verification",
428
+ classification: "PUBLIC_STABLE",
429
+ meaning: "Requested browser verification provider is not registered in runtime context.",
430
+ safeResolution: "Register the provider in runtime context before verify, or proceed without browser verification; provider failure never blocks canonical lifecycle.",
431
+ })],
432
+ [E_BROWSER_VERIFICATION_REQUEST_INVALID, Object.freeze({
433
+ code: E_BROWSER_VERIFICATION_REQUEST_INVALID,
434
+ category: "browser-verification",
435
+ classification: "PUBLIC_STABLE",
436
+ meaning: "Browser verification request failed validation or exceeded budget.",
437
+ safeResolution: "Provide a bounded request with 1-8 https origins, 1-64 steps, 1-64 assertions, and timeoutMs within limits.",
438
+ })],
439
+ [E_BROWSER_VERIFICATION_RESULT_INVALID, Object.freeze({
440
+ code: E_BROWSER_VERIFICATION_RESULT_INVALID,
441
+ category: "browser-verification",
442
+ classification: "PUBLIC_STABLE",
443
+ meaning: "Browser verification provider returned an invalid result structure.",
444
+ safeResolution: "Ensure provider returns a status with bounded assertions, diagnostics, and artifacts, and no authority fields.",
445
+ })],
446
+ [E_BROWSER_VERIFICATION_TIMEOUT, Object.freeze({
447
+ code: E_BROWSER_VERIFICATION_TIMEOUT,
448
+ category: "browser-verification",
449
+ classification: "PUBLIC_STABLE",
450
+ meaning: "Browser verification exceeded its execution timeout.",
451
+ safeResolution: "Use a responsive provider or increase timeout within limits; verification is optional.",
452
+ })],
453
+ [E_BROWSER_VERIFICATION_OUTPUT_LIMIT, Object.freeze({
454
+ code: E_BROWSER_VERIFICATION_OUTPUT_LIMIT,
455
+ category: "browser-verification",
456
+ classification: "PUBLIC_STABLE",
457
+ meaning: "Browser verification output exceeded the configured character or item limit.",
458
+ safeResolution: "Reduce steps, assertions, snapshots, diagnostics, or artifacts at the provider.",
459
+ })],
460
+ [E_BROWSER_VERIFICATION_ORIGIN_DENIED, Object.freeze({
461
+ code: E_BROWSER_VERIFICATION_ORIGIN_DENIED,
462
+ category: "browser-verification",
463
+ classification: "PUBLIC_STABLE",
464
+ meaning: "Browser verification navigation left the request origin allowlist.",
465
+ safeResolution: "Add the intended origin to allowedOrigins or correct the provider navigation result.",
466
+ })],
467
+ [E_BROWSER_VERIFICATION_EXECUTION_FAILED, Object.freeze({
468
+ code: E_BROWSER_VERIFICATION_EXECUTION_FAILED,
469
+ category: "browser-verification",
470
+ classification: "PUBLIC_STABLE",
471
+ meaning: "The optional browser provider process failed without establishing a valid observation.",
472
+ safeResolution: "Inspect the host-provided browser executable and retry; process success is not verification success.",
473
+ })],
474
+ [E_BROWSER_VERIFICATION_CANCELLED, Object.freeze({
475
+ code: E_BROWSER_VERIFICATION_CANCELLED,
476
+ category: "browser-verification",
477
+ classification: "PUBLIC_STABLE",
478
+ meaning: "Browser verification was cancelled by its caller before a valid observation completed.",
479
+ safeResolution: "Retry only when the caller still requires the optional observation.",
480
+ })],
481
+ [E_BROWSER_VERIFICATION_VERSION_UNSUPPORTED, Object.freeze({
482
+ code: E_BROWSER_VERIFICATION_VERSION_UNSUPPORTED,
483
+ category: "browser-verification",
484
+ classification: "PUBLIC_STABLE",
485
+ meaning: "The configured Agent Browser version does not satisfy the provider's exact version contract.",
486
+ safeResolution: "Provide the expected host-qualified Agent Browser version or update the explicit executable selection.",
487
+ })],
488
+ [E_SECURITY_REVIEW_PROVIDER_INVALID, Object.freeze({
489
+ code: E_SECURITY_REVIEW_PROVIDER_INVALID,
490
+ category: "security-review",
491
+ classification: "PUBLIC_STABLE",
492
+ meaning: "Security review provider configuration or interface implementation is invalid.",
493
+ safeResolution: "Use a provider implementing id and review(input) through the explicit host-injected Integration API.",
494
+ })],
495
+ [E_SECURITY_REVIEW_PROVIDER_UNAVAILABLE, Object.freeze({
496
+ code: E_SECURITY_REVIEW_PROVIDER_UNAVAILABLE,
497
+ category: "security-review",
498
+ classification: "PUBLIC_STABLE",
499
+ meaning: "The requested security review provider is not registered in runtime context.",
500
+ safeResolution: "Register an optional host-owned provider before explicit invocation; ForgeLoop never installs one.",
501
+ })],
502
+ [E_SECURITY_REVIEW_REQUEST_INVALID, Object.freeze({
503
+ code: E_SECURITY_REVIEW_REQUEST_INVALID,
504
+ category: "security-review",
505
+ classification: "PUBLIC_STABLE",
506
+ meaning: "The bounded security review request failed validation.",
507
+ safeResolution: "Provide explicit scope, bounded project-relative paths, categories, requirements, identities, and timeout.",
508
+ })],
509
+ [E_SECURITY_REVIEW_RESULT_INVALID, Object.freeze({
510
+ code: E_SECURITY_REVIEW_RESULT_INVALID,
511
+ category: "security-review",
512
+ classification: "PUBLIC_STABLE",
513
+ meaning: "The security review provider returned malformed or contradictory findings.",
514
+ safeResolution: "Return only bounded findings and diagnostics without authority, lifecycle, evidence, or executable fields.",
515
+ })],
516
+ [E_SECURITY_REVIEW_TIMEOUT, Object.freeze({
517
+ code: E_SECURITY_REVIEW_TIMEOUT,
518
+ category: "security-review",
519
+ classification: "PUBLIC_STABLE",
520
+ meaning: "Security review provider execution exceeded the shared deadline.",
521
+ safeResolution: "Use a responsive provider or a bounded timeout within the supported limit; timed-out output is discarded.",
522
+ })],
523
+ [E_SECURITY_REVIEW_CANCELLED, Object.freeze({
524
+ code: E_SECURITY_REVIEW_CANCELLED,
525
+ category: "security-review",
526
+ classification: "PUBLIC_STABLE",
527
+ meaning: "Security review provider execution was cancelled before a valid observation completed.",
528
+ safeResolution: "Retry only when the caller still requires the optional observation.",
529
+ })],
530
+ [E_SECURITY_REVIEW_OUTPUT_LIMIT, Object.freeze({
531
+ code: E_SECURITY_REVIEW_OUTPUT_LIMIT,
532
+ category: "security-review",
533
+ classification: "PUBLIC_STABLE",
534
+ meaning: "Security review provider output exceeded the bounded result limits.",
535
+ safeResolution: "Reduce findings, diagnostics, strings, or result size at the provider.",
536
+ })],
537
+ [E_SECURITY_REVIEW_EXECUTION_FAILED, Object.freeze({
538
+ code: E_SECURITY_REVIEW_EXECUTION_FAILED,
539
+ category: "security-review",
540
+ classification: "PUBLIC_STABLE",
541
+ meaning: "The optional security review provider failed without producing a valid observation.",
542
+ safeResolution: "Inspect the host-provided provider and retry explicitly; provider failure never changes ForgeLoop state.",
543
+ })],
369
544
  [E_PORTABLE_CONTEXT_INVALID, Object.freeze({
370
545
  code: E_PORTABLE_CONTEXT_INVALID,
371
546
  category: "portable-context",
@@ -574,6 +749,27 @@ export const PUBLIC_ERROR_CODES = Object.freeze({
574
749
  meaning: "Referenced gate artifact changed after approval.",
575
750
  safeResolution: "Update artifact SHA-256 in gate file.",
576
751
  }),
752
+ E_GATE_NOT_REQUIRED: Object.freeze({
753
+ code: "E_GATE_NOT_REQUIRED",
754
+ category: "preflight",
755
+ classification: "PUBLIC_STABLE",
756
+ meaning: "Requested gate is not required by the active route or policy.",
757
+ safeResolution: "Inspect the active route and record only a required gate.",
758
+ }),
759
+ E_GATE_INVALID: Object.freeze({
760
+ code: "E_GATE_INVALID",
761
+ category: "preflight",
762
+ classification: "PUBLIC_STABLE",
763
+ meaning: "Gate input or evidence artifact is invalid or unsafe.",
764
+ safeResolution: "Use project-relative regular artifact paths and valid gate evidence.",
765
+ }),
766
+ E_PHASE_FREEZE: Object.freeze({
767
+ code: "E_PHASE_FREEZE",
768
+ category: "lifecycle",
769
+ classification: "PUBLIC_STABLE",
770
+ meaning: "The requested gate mutation is forbidden after execution begins.",
771
+ safeResolution: "Record required gates before entering EXECUTING.",
772
+ }),
577
773
  E_VERIFICATION_TOOL_UNAVAILABLE: Object.freeze({
578
774
  code: "E_VERIFICATION_TOOL_UNAVAILABLE",
579
775
  category: "capability",
@@ -700,6 +896,14 @@ export const PUBLIC_ERROR_CODES = Object.freeze({
700
896
  meaning: "Claim-release recovery was refused because the task state, recovery artifact, lock, or event ledger is inconsistent.",
701
897
  safeResolution: "Repair the underlying artifact through its dedicated recovery surface; do not force-complete an unreadable task.",
702
898
  }),
899
+ E_CONTRACT_BOOTSTRAP_INCONSISTENT: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_INCONSISTENT", category: "recovery", classification: "PUBLIC_STABLE", meaning: "Contract bootstrap evidence is inconsistent and cannot be treated as a normal idempotent checkpoint.", safeResolution: "Inspect the task ledger and use the exact official contract bootstrap repair only when next recommends it." }),
900
+ E_CONTRACT_BOOTSTRAP_REPAIR_AVAILABLE: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_AVAILABLE", category: "recovery", classification: "PUBLIC_STABLE", meaning: "The exact recognized contract bootstrap defect has an official append-only repair path.", safeResolution: "Run forgeloop task-repair-contract-bootstrap --task <id> --acknowledge-repair." }),
901
+ E_CONTRACT_BOOTSTRAP_REPAIR_INVALID: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_INVALID", category: "recovery", classification: "PUBLIC_STABLE", meaning: "The contract bootstrap repair marker or its bound artifacts are invalid or tampered.", safeResolution: "Restore the original artifacts from trusted evidence; ForgeLoop refuses to guess or rewrite history." }),
902
+ E_CONTRACT_BOOTSTRAP_REPAIR_UNSAFE: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_UNSAFE", category: "recovery", classification: "PUBLIC_STABLE", meaning: "The historical contract bootstrap defect does not satisfy the narrow repair safety boundary.", safeResolution: "Do not force repair; resolve the ledger inconsistency through a separately reviewed migration." }),
903
+ E_CONTRACT_BOOTSTRAP_REPAIR_AUTHORIZATION_REQUIRED: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_AUTHORIZATION_REQUIRED", category: "authority", classification: "PUBLIC_STABLE", meaning: "The official contract bootstrap repair requires explicit caller acknowledgement.", safeResolution: "Re-run with --acknowledge-repair after reviewing next and the exact defect signature." }),
904
+ E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AVAILABLE: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AVAILABLE", category: "recovery", classification: "PUBLIC_STABLE", meaning: "The exact legacy contract bootstrap repair marker has an official append-only migration path.", safeResolution: "Run forgeloop task-migrate-contract-bootstrap-repair --task <id> --acknowledge-migration." }),
905
+ E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_INVALID: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_INVALID", category: "recovery", classification: "PUBLIC_STABLE", meaning: "Legacy contract bootstrap repair migration was refused because its exact marker, state, route, lock, or ledger boundary could not be proven.", safeResolution: "Inspect the structured migration errors; ambiguous or progressed historical ledgers remain inconsistent and are never rewritten." }),
906
+ E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AUTHORIZATION_REQUIRED: Object.freeze({ code: "E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AUTHORIZATION_REQUIRED", category: "authority", classification: "PUBLIC_STABLE", meaning: "The legacy contract bootstrap repair migration requires fresh explicit caller acknowledgement.", safeResolution: "Re-run with --acknowledge-migration after reviewing next and the exact legacy marker boundary." }),
703
907
  E_LEGACY_RECOVERY_MIGRATION_INVALID: Object.freeze({
704
908
  code: "E_LEGACY_RECOVERY_MIGRATION_INVALID",
705
909
  category: "recovery",
@@ -763,6 +967,41 @@ export const PUBLIC_ERROR_CODES = Object.freeze({
763
967
  meaning: "The task already has active durable recovered state.",
764
968
  safeResolution: "Inspect the existing recovery metadata; use task-resume to reacquire claims or leave the task recovered.",
765
969
  }),
970
+ E_TASK_ABANDON_AUTHORIZATION_REQUIRED: Object.freeze({
971
+ code: "E_TASK_ABANDON_AUTHORIZATION_REQUIRED",
972
+ category: "recovery",
973
+ classification: "PUBLIC_STABLE",
974
+ meaning: "task-abandon requires explicit caller acknowledgement and never grants completion or publication authority.",
975
+ safeResolution: "Re-run task-abandon with --acknowledge-abandonment after confirming the explicit task identity and intended claim release.",
976
+ }),
977
+ E_TASK_ABANDON_INVALID_STATE: Object.freeze({
978
+ code: "E_TASK_ABANDON_INVALID_STATE",
979
+ category: "recovery",
980
+ classification: "PUBLIC_STABLE",
981
+ meaning: "The selected task is terminal or otherwise not eligible for explicit active-task abandonment.",
982
+ safeResolution: "Inspect task-show and next; only a valid non-terminal active task may be explicitly abandoned.",
983
+ }),
984
+ E_TASK_ABANDON_INCONSISTENT: Object.freeze({
985
+ code: "E_TASK_ABANDON_INCONSISTENT",
986
+ category: "recovery",
987
+ classification: "PUBLIC_STABLE",
988
+ meaning: "Explicit abandonment was refused because canonical ownership or append-only ledger evidence is inconsistent.",
989
+ safeResolution: "Repair and validate the task descriptor, recovery artifact, and ledger through their dedicated protocol paths before retrying.",
990
+ }),
991
+ E_TASK_ALREADY_ABANDONED: Object.freeze({
992
+ code: "E_TASK_ALREADY_ABANDONED",
993
+ category: "recovery",
994
+ classification: "PUBLIC_STABLE",
995
+ meaning: "The task already has an active explicit-abandonment recovery boundary.",
996
+ safeResolution: "Inspect the existing recovery state; use task-resume only when explicit reacquisition is intended.",
997
+ }),
998
+ E_TASK_ABANDON_UNSAFE: Object.freeze({
999
+ code: "E_TASK_ABANDON_UNSAFE",
1000
+ category: "concurrency",
1001
+ classification: "PUBLIC_STABLE",
1002
+ meaning: "Task identity, lifecycle revision, ledger boundary, or claim ownership changed during explicit abandonment.",
1003
+ safeResolution: "Re-inspect the task and retry only after the competing mutation has settled; never force claim release.",
1004
+ }),
766
1005
  E_TASK_SCOPE_DIRTY: Object.freeze({
767
1006
  code: "E_TASK_SCOPE_DIRTY",
768
1007
  category: "scope",
@@ -788,8 +1027,8 @@ export const PUBLIC_ERROR_CODES = Object.freeze({
788
1027
  code: "E_RECONCILE_PHASE_INVALID",
789
1028
  category: "lifecycle",
790
1029
  classification: "PUBLIC_STABLE",
791
- meaning: "reconcile-closure was invoked for a task that is not EXECUTING or VERIFYING.",
792
- safeResolution: "reconcile-closure supports EXECUTING or VERIFYING tasks whose objective is already satisfied.",
1030
+ meaning: "reconcile-closure was invoked for a task that is not EXECUTING, VERIFYING, or REVIEWING.",
1031
+ safeResolution: "reconcile-closure supports EXECUTING, VERIFYING, or REVIEWING tasks whose objective is already satisfied.",
793
1032
  }),
794
1033
  E_RECONCILE_UNSUPPORTED_DRIFT: Object.freeze({
795
1034
  code: "E_RECONCILE_UNSUPPORTED_DRIFT",
@@ -831,7 +1070,14 @@ export const PUBLIC_ERROR_CODES = Object.freeze({
831
1070
  category: "freshness",
832
1071
  classification: "PUBLIC_STABLE",
833
1072
  meaning: "The work-state checkpoint must be revalidated before the lifecycle can continue.",
834
- safeResolution: "Run forgeloop reconcile-closure for externally satisfied EXECUTING tasks, or inspect the freshness reasons for other drift.",
1073
+ safeResolution: "Run forgeloop reconcile-closure for externally satisfied EXECUTING, VERIFYING, or REVIEWING tasks, or inspect the freshness reasons for other drift.",
1074
+ }),
1075
+ E_CHECKPOINT_REVALIDATION_UNSAFE: Object.freeze({
1076
+ code: "E_CHECKPOINT_REVALIDATION_UNSAFE",
1077
+ category: "freshness",
1078
+ classification: "PUBLIC_STABLE",
1079
+ meaning: "A pre-execution checkpoint could not be safely rebound to the current repository without changing lifecycle identity.",
1080
+ safeResolution: "Preserve the checkpoint and resolve the reported contract, route, ownership, artifact, or lifecycle boundary through its canonical command.",
835
1081
  }),
836
1082
  E_DIAGNOSIS_REQUIRED: Object.freeze({
837
1083
  code: "E_DIAGNOSIS_REQUIRED",
@@ -1392,12 +1638,21 @@ export const ALL_KNOWN_ERROR_CODES = Object.freeze(new Set([
1392
1638
  E_RECONCILE_EVIDENCE_FAILED,
1393
1639
  E_REPOSITORY_CHANGED,
1394
1640
  E_STATE_REVALIDATION_REQUIRED,
1641
+ E_CHECKPOINT_REVALIDATION_UNSAFE,
1395
1642
  E_TASK_CHANGE_ATTRIBUTION_UNAVAILABLE,
1396
1643
  E_TASK_LAYOUT_LEGACY,
1397
1644
  E_TASK_MIGRATION_INVALID,
1398
1645
  E_TASK_RECOVERY_UNSAFE,
1399
1646
  E_TASK_RECOVERY_INCONSISTENT,
1400
1647
  E_LEGACY_RECOVERY_MIGRATION_INVALID,
1648
+ E_CONTRACT_BOOTSTRAP_INCONSISTENT,
1649
+ E_CONTRACT_BOOTSTRAP_REPAIR_AVAILABLE,
1650
+ E_CONTRACT_BOOTSTRAP_REPAIR_INVALID,
1651
+ E_CONTRACT_BOOTSTRAP_REPAIR_UNSAFE,
1652
+ E_CONTRACT_BOOTSTRAP_REPAIR_AUTHORIZATION_REQUIRED,
1653
+ E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AVAILABLE,
1654
+ E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_INVALID,
1655
+ E_CONTRACT_BOOTSTRAP_REPAIR_MIGRATION_AUTHORIZATION_REQUIRED,
1401
1656
  E_COMPLETION_OWNERSHIP_UNPROVEN,
1402
1657
  E_TASK_CLAIM_OWNERSHIP_INCONSISTENT,
1403
1658
  E_TASK_RECOVERY_AUTHORIZATION_REQUIRED,
@@ -1406,6 +1661,11 @@ export const ALL_KNOWN_ERROR_CODES = Object.freeze(new Set([
1406
1661
  E_TASK_NOT_RECOVERED,
1407
1662
  E_TASK_RECOVERY_OFFICIAL_PATH_AVAILABLE,
1408
1663
  E_TASK_ALREADY_RECOVERED,
1664
+ E_TASK_ABANDON_AUTHORIZATION_REQUIRED,
1665
+ E_TASK_ABANDON_INVALID_STATE,
1666
+ E_TASK_ABANDON_INCONSISTENT,
1667
+ E_TASK_ALREADY_ABANDONED,
1668
+ E_TASK_ABANDON_UNSAFE,
1409
1669
  E_TASK_MIGRATION_IDENTITY_MISMATCH,
1410
1670
  E_PROTOCOL_MIGRATION_TARGET_UNSUPPORTED,
1411
1671
  E_CHECK_INERT,
@@ -1508,6 +1768,24 @@ export const ALL_KNOWN_ERROR_CODES = Object.freeze(new Set([
1508
1768
  E_ADVISORY_CONTEXT_RESULT_INVALID,
1509
1769
  E_ADVISORY_CONTEXT_TIMEOUT,
1510
1770
  E_ADVISORY_CONTEXT_OUTPUT_LIMIT,
1771
+ E_BROWSER_VERIFICATION_PROVIDER_INVALID,
1772
+ E_BROWSER_VERIFICATION_PROVIDER_UNAVAILABLE,
1773
+ E_BROWSER_VERIFICATION_REQUEST_INVALID,
1774
+ E_BROWSER_VERIFICATION_RESULT_INVALID,
1775
+ E_BROWSER_VERIFICATION_TIMEOUT,
1776
+ E_BROWSER_VERIFICATION_OUTPUT_LIMIT,
1777
+ E_BROWSER_VERIFICATION_ORIGIN_DENIED,
1778
+ E_BROWSER_VERIFICATION_EXECUTION_FAILED,
1779
+ E_BROWSER_VERIFICATION_CANCELLED,
1780
+ E_BROWSER_VERIFICATION_VERSION_UNSUPPORTED,
1781
+ E_SECURITY_REVIEW_PROVIDER_INVALID,
1782
+ E_SECURITY_REVIEW_PROVIDER_UNAVAILABLE,
1783
+ E_SECURITY_REVIEW_REQUEST_INVALID,
1784
+ E_SECURITY_REVIEW_RESULT_INVALID,
1785
+ E_SECURITY_REVIEW_TIMEOUT,
1786
+ E_SECURITY_REVIEW_CANCELLED,
1787
+ E_SECURITY_REVIEW_OUTPUT_LIMIT,
1788
+ E_SECURITY_REVIEW_EXECUTION_FAILED,
1511
1789
  E_PORTABLE_CONTEXT_INVALID,
1512
1790
  E_HANDOFF_ACCEPTANCE_UNBOUND,
1513
1791
  E_HANDOFF_STALE,