agentera 3.0.0-dev.7 → 3.0.0-dev.72

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 (723) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +118 -22
  3. package/bundle/CHANGELOG.md +1361 -0
  4. package/bundle/DESIGN.md +229 -0
  5. package/bundle/LICENSE +201 -0
  6. package/bundle/README.md +143 -0
  7. package/bundle/UPGRADE.md +252 -0
  8. package/bundle/extract-corpus-parity.json +2 -4
  9. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  10. package/bundle/references/adapters/package-publication.json +488 -0
  11. package/bundle/references/adapters/package-registry.yaml +435 -188
  12. package/bundle/references/adapters/package-surface-characterization.md +66 -34
  13. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  14. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  15. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  16. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  17. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  18. package/bundle/references/analysis/verification-policy.yaml +266 -0
  19. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +17 -8
  20. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  21. package/bundle/references/artifacts/state-storage-authority.yaml +3061 -0
  22. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  23. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  24. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  25. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  26. package/bundle/references/cli/routing-model.md +152 -93
  27. package/bundle/references/cli/trigger-schema-enrichment.md +57 -46
  28. package/bundle/references/cli/update-channels.yaml +4 -2
  29. package/bundle/references/cli/vocabulary-index.yaml +5 -7
  30. package/bundle/references/cli/vocabulary.md +51 -93
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/skills/agentera/SKILL.md +183 -63
  33. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +27 -19
  34. package/bundle/skills/agentera/capabilities/audit/schemas/exit.yaml +2 -2
  35. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  36. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +30 -11
  37. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +44 -21
  38. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +8 -6
  39. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  40. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +95 -21
  41. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  42. package/bundle/skills/agentera/capabilities/design/schemas/exit.yaml +5 -5
  43. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  44. package/bundle/skills/agentera/capabilities/design/schemas/validation.yaml +2 -2
  45. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +17 -13
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/exit.yaml +2 -2
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +72 -5
  49. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +24 -17
  50. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -35
  51. package/bundle/skills/agentera/capabilities/document/schemas/validation.yaml +13 -13
  52. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +10 -10
  53. package/bundle/skills/agentera/capabilities/optimize/schemas/exit.yaml +2 -2
  54. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/validation.yaml +3 -3
  56. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +34 -22
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +9 -7
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +38 -37
  60. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +20 -16
  61. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  62. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +66 -6
  63. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +9 -4
  64. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +4 -4
  65. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  66. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +61 -3
  67. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +6 -6
  68. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  69. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +13 -12
  70. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -49
  71. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  72. package/bundle/skills/agentera/capabilities/vision/schemas/exit.yaml +7 -6
  73. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  74. package/bundle/skills/agentera/capabilities/vision/schemas/validation.yaml +14 -16
  75. package/bundle/skills/agentera/capability_schema_contract.yaml +32 -32
  76. package/bundle/skills/agentera/protocol.yaml +4 -4
  77. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  78. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
  79. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +30 -12
  80. package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
  81. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -12
  82. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +140 -9
  83. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  84. package/bundle/skills/agentera/schemas/artifacts/health.yaml +56 -19
  85. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +18 -4
  86. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +457 -32
  87. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +131 -18
  88. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +302 -7
  89. package/dist/analytics/extractCorpus/cli.js +52 -11
  90. package/dist/analytics/extractCorpus/copilotSessions.js +6 -4
  91. package/dist/analytics/extractCorpus/core.js +40 -12
  92. package/dist/analytics/extractCorpus/corpus.js +39 -17
  93. package/dist/analytics/extractCorpus/coverageAudit.js +44 -45
  94. package/dist/analytics/extractCorpus/cursorSessions.js +6 -4
  95. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  96. package/dist/analytics/extractCorpus/extractCorpusParity.js +4 -4
  97. package/dist/analytics/extractCorpus/filesystemSources.js +1 -5
  98. package/dist/analytics/extractCorpus/index.js +3 -1
  99. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -5
  100. package/dist/analytics/extractCorpus/sqliteCaps.js +0 -1
  101. package/dist/analytics/extractCorpus/sqliteSessions.js +0 -1
  102. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  103. package/dist/analytics/extractCorpus.js +0 -1
  104. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  105. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  106. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  107. package/dist/analytics/personalGlossaryProfile.js +219 -0
  108. package/dist/analytics/profileSignals.js +211 -0
  109. package/dist/analytics/usageStats.js +150 -23
  110. package/dist/audit/terminologyDrift.js +281 -0
  111. package/dist/bin/agentera.js +3 -2
  112. package/dist/capabilities/audit/instructions.js +16 -6
  113. package/dist/capabilities/build/instructions.js +59 -6
  114. package/dist/capabilities/design/instructions.js +3 -4
  115. package/dist/capabilities/discuss/instructions.js +29 -6
  116. package/dist/capabilities/document/instructions.js +11 -6
  117. package/dist/capabilities/index.js +16 -14
  118. package/dist/capabilities/optimize/instructions.js +14 -6
  119. package/dist/capabilities/orchestrate/instructions.js +42 -6
  120. package/dist/capabilities/plan/instructions.js +30 -3
  121. package/dist/capabilities/profile/instructions.js +70 -6
  122. package/dist/capabilities/research/instructions.js +4 -5
  123. package/dist/capabilities/status/instructions.js +15 -6
  124. package/dist/capabilities/status/startupInstructions.js +34 -0
  125. package/dist/capabilities/vision/instructions.js +3 -5
  126. package/dist/cli/appContext.js +14 -7
  127. package/dist/cli/argvalidate.js +0 -1
  128. package/dist/cli/capabilityContext/benchmark.js +5 -4
  129. package/dist/cli/capabilityContext/bespoke.js +14 -6
  130. package/dist/cli/capabilityContext/build.js +116 -42
  131. package/dist/cli/capabilityContext/closeout.js +30 -27
  132. package/dist/cli/capabilityContext/contract.js +18 -27
  133. package/dist/cli/capabilityContext/evidence.js +84 -77
  134. package/dist/cli/capabilityContext/index.js +0 -1
  135. package/dist/cli/capabilityContext/orchestration.js +42 -18
  136. package/dist/cli/capabilityContext/planState.js +89 -96
  137. package/dist/cli/capabilityContext/progress.js +51 -12
  138. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  139. package/dist/cli/capabilityContext/shared.js +9 -20
  140. package/dist/cli/capabilityContext/slim.js +52 -8
  141. package/dist/cli/capabilityContext/startup.js +51 -114
  142. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  143. package/dist/cli/capabilityContext/types.js +26 -10
  144. package/dist/cli/capabilityContext.js +0 -1
  145. package/dist/cli/commands/appHome.js +0 -1
  146. package/dist/cli/commands/capability.js +2 -2
  147. package/dist/cli/commands/compact.js +163 -13
  148. package/dist/cli/commands/doctor.js +117 -11
  149. package/dist/cli/commands/durability.js +81 -0
  150. package/dist/cli/commands/glossaryAdvice.js +138 -0
  151. package/dist/cli/commands/lint.js +22 -8
  152. package/dist/cli/commands/personalGlossary.js +176 -0
  153. package/dist/cli/commands/prime/briefOrientation.js +746 -0
  154. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  155. package/dist/cli/commands/prime/bundleStatus.js +54 -4
  156. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  157. package/dist/cli/commands/prime/collectOrientationState.js +126 -63
  158. package/dist/cli/commands/prime/orientationOutput.js +267 -56
  159. package/dist/cli/commands/prime/types.js +0 -1
  160. package/dist/cli/commands/prime/v1Migration.js +0 -1
  161. package/dist/cli/commands/prime.js +76 -11
  162. package/dist/cli/commands/profileGrounding.js +55 -0
  163. package/dist/cli/commands/query.js +74 -52
  164. package/dist/cli/commands/report.js +73 -19
  165. package/dist/cli/commands/route.js +142 -0
  166. package/dist/cli/commands/schema.js +257 -138
  167. package/dist/cli/commands/state/decisions.js +40 -56
  168. package/dist/cli/commands/state/docs.js +58 -85
  169. package/dist/cli/commands/state/experimentRecords.js +151 -0
  170. package/dist/cli/commands/state/experiments.js +11 -65
  171. package/dist/cli/commands/state/get.js +129 -0
  172. package/dist/cli/commands/state/health.js +11 -113
  173. package/dist/cli/commands/state/index.js +6 -41
  174. package/dist/cli/commands/state/list.js +194 -0
  175. package/dist/cli/commands/state/objective.js +21 -65
  176. package/dist/cli/commands/state/plan.js +11 -170
  177. package/dist/cli/commands/state/planTasks.js +154 -0
  178. package/dist/cli/commands/state/plans.js +154 -0
  179. package/dist/cli/commands/state/progress.js +11 -45
  180. package/dist/cli/commands/state/shared.js +0 -1
  181. package/dist/cli/commands/state/todo.js +28 -107
  182. package/dist/cli/commands/state/write.js +433 -0
  183. package/dist/cli/commands/upgrade.js +146 -5
  184. package/dist/cli/commands/upgradeVerify.js +118 -0
  185. package/dist/cli/commands/validate.js +235 -136
  186. package/dist/cli/commands/verify.js +23 -8
  187. package/dist/cli/contracts/bundleStatus.js +0 -1
  188. package/dist/cli/contracts/orientationState.js +0 -1
  189. package/dist/cli/dispatch/argvParser.js +0 -1
  190. package/dist/cli/dispatch/check.js +84 -40
  191. package/dist/cli/dispatch/commands.js +3 -3
  192. package/dist/cli/dispatch/index.js +77 -52
  193. package/dist/cli/dispatch/lifecycle.js +117 -62
  194. package/dist/cli/dispatch/prime.js +37 -2
  195. package/dist/cli/dispatch/projections.js +17 -0
  196. package/dist/cli/dispatch/shared.js +1 -2
  197. package/dist/cli/dispatch/state.js +62 -66
  198. package/dist/cli/dispatch.js +0 -1
  199. package/dist/cli/errors.js +16 -17
  200. package/dist/cli/help.js +358 -39
  201. package/dist/cli/migrationRequired.js +122 -0
  202. package/dist/cli/orientation/attention.js +19 -19
  203. package/dist/cli/orientation/corpusCoverage.js +32 -1
  204. package/dist/cli/orientation.js +346 -129
  205. package/dist/cli/planArtifacts.js +350 -0
  206. package/dist/cli/planEvidence.js +157 -0
  207. package/dist/cli/planLifecycleState.js +36 -0
  208. package/dist/cli/planTaskIndex.js +11 -0
  209. package/dist/cli/preCutoverCommand.js +32 -0
  210. package/dist/cli/prime-blob.js +71 -3
  211. package/dist/cli/profileAcquisition.js +167 -0
  212. package/dist/cli/startupCompletenessContract.js +11 -8
  213. package/dist/cli/stateQuery.js +47 -12
  214. package/dist/cli/structured.js +0 -1
  215. package/dist/cli/todoMarkdown.js +25 -12
  216. package/dist/cli/todoReadinessSelection.js +192 -0
  217. package/dist/cli/todoSeverity.js +0 -1
  218. package/dist/core/atomicWriter.js +20 -0
  219. package/dist/core/developmentChannel.js +1 -0
  220. package/dist/core/developmentInvocation.js +374 -0
  221. package/dist/core/difflib.js +0 -1
  222. package/dist/core/envPaths.js +0 -1
  223. package/dist/core/jsonValue.js +0 -1
  224. package/dist/core/paths.js +0 -1
  225. package/dist/core/pyjson.js +0 -1
  226. package/dist/core/shell.js +4 -0
  227. package/dist/core/skillIdentity.js +23 -0
  228. package/dist/core/sourceRoot.js +9 -12
  229. package/dist/core/text.js +10 -0
  230. package/dist/core/toml.js +0 -1
  231. package/dist/core/yaml.js +8 -1
  232. package/dist/eval/evalSkills.js +13 -14
  233. package/dist/eval/hybridRouteEvaluation.js +155 -0
  234. package/dist/eval/semanticEval.js +0 -1
  235. package/dist/eval/semanticFixtures.js +0 -1
  236. package/dist/hooks/common.js +3 -56
  237. package/dist/hooks/compaction/apply.js +224 -47
  238. package/dist/hooks/compaction/dryRun.js +2 -1
  239. package/dist/hooks/compaction/index.js +5 -6
  240. package/dist/hooks/compaction/parse.js +73 -6
  241. package/dist/hooks/compaction/retention.js +28 -25
  242. package/dist/hooks/compaction/status.js +145 -26
  243. package/dist/hooks/compaction/types.js +0 -1
  244. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  245. package/dist/hooks/validateArtifact/index.js +6 -65
  246. package/dist/hooks/validateArtifact/markdown.js +9 -10
  247. package/dist/hooks/validateArtifact/schema.js +96 -9
  248. package/dist/hooks/validateArtifact/traversal.js +12 -11
  249. package/dist/hooks/validateArtifact/violations.js +5 -3
  250. package/dist/migrate/v2HandoffManifest.js +8 -3
  251. package/dist/registries/activationContract.js +2 -0
  252. package/dist/registries/activationTuples.js +108 -0
  253. package/dist/registries/artifactProtocolIds.js +2 -1
  254. package/dist/registries/artifactRegistry.js +207 -60
  255. package/dist/registries/artifactSchemaProjection.js +45 -0
  256. package/dist/registries/capabilityContract.js +5 -21
  257. package/dist/registries/evaluatorHandoffContract.js +0 -1
  258. package/dist/registries/evidenceTierContract.js +371 -0
  259. package/dist/registries/glossaryAdviceContract.js +79 -0
  260. package/dist/registries/glossaryCaveatContract.js +67 -0
  261. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  262. package/dist/registries/glossaryEntryContract.js +757 -0
  263. package/dist/registries/glossaryTermIdentity.js +17 -0
  264. package/dist/registries/glossaryTermOccurrence.js +20 -0
  265. package/dist/registries/hybridRoute.js +274 -0
  266. package/dist/registries/hybridRouteReceipt.js +221 -0
  267. package/dist/registries/packagePublication.js +273 -0
  268. package/dist/registries/packageRegistry.js +184 -209
  269. package/dist/registries/todoReadinessContract.js +448 -0
  270. package/dist/registries/triggerLoader.js +7 -44
  271. package/dist/registries/verbosityBudgetContract.js +205 -0
  272. package/dist/release/releaseMetadata.js +155 -5
  273. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  274. package/dist/runtime/lifecycleAdapters.js +777 -0
  275. package/dist/runtime/lifecycleAuthority.js +453 -0
  276. package/dist/runtime/lifecycleOperationContract.js +123 -0
  277. package/dist/runtime/lifecycleOperations.js +634 -0
  278. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  279. package/dist/runtime/lifecyclePublication.js +415 -0
  280. package/dist/runtime/lifecycleSnapshot.js +438 -0
  281. package/dist/runtime/nativeResourceCleanup.js +502 -0
  282. package/dist/setup/opencode.js +20 -13
  283. package/dist/setup/opencodeConstants.js +1 -0
  284. package/dist/setup/sharedSkill.js +45 -0
  285. package/dist/setup/smokeChecks.js +14 -75
  286. package/dist/state/archiveDiscovery.js +580 -0
  287. package/dist/state/archivePublication.js +225 -0
  288. package/dist/state/archiveRecovery.js +237 -0
  289. package/dist/state/archiveReplay.js +53 -0
  290. package/dist/state/canonicalMigrationRecord.js +36 -0
  291. package/dist/state/changelog.js +221 -0
  292. package/dist/state/decisionEntities.js +367 -0
  293. package/dist/state/decisionLegacyValidation.js +215 -0
  294. package/dist/state/decisionMigrationProvenance.js +199 -0
  295. package/dist/state/decisionOverlay.js +254 -0
  296. package/dist/state/decisionRevision.js +256 -0
  297. package/dist/state/decisionRevisionMigration.js +89 -0
  298. package/dist/state/directRetrieval.js +323 -0
  299. package/dist/state/durability.js +324 -0
  300. package/dist/state/entityCutover.js +459 -0
  301. package/dist/state/entityCutoverGit.js +127 -0
  302. package/dist/state/entityGlossaryAuthority.js +13 -0
  303. package/dist/state/entityListProjection.js +187 -0
  304. package/dist/state/entityListRuntimeRegistry.js +85 -0
  305. package/dist/state/entityMigrationCausality.js +97 -0
  306. package/dist/state/entityMigrationIdentity.js +5 -0
  307. package/dist/state/entityMigrationPreview.js +840 -0
  308. package/dist/state/entityMigrationTodo.js +133 -0
  309. package/dist/state/entityPublicationContext.js +859 -0
  310. package/dist/state/entityRetrievalHelp.js +506 -0
  311. package/dist/state/entityStorage.js +899 -0
  312. package/dist/state/exactReplacementRecovery.js +18 -0
  313. package/dist/state/experimentArchive.js +63 -0
  314. package/dist/state/experimentIdentity.js +202 -0
  315. package/dist/state/healthEntities.js +262 -0
  316. package/dist/state/healthEntityValidation.js +18 -0
  317. package/dist/state/healthRepair.js +69 -0
  318. package/dist/state/installRoot.js +15 -7
  319. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  320. package/dist/state/legacyIdentity.js +47 -0
  321. package/dist/state/legacySummaryRecord.js +6 -0
  322. package/dist/state/listAccounting.js +54 -0
  323. package/dist/state/listClassification.js +17 -0
  324. package/dist/state/listCursor.js +42 -0
  325. package/dist/state/listRetrieval.js +781 -0
  326. package/dist/state/migrationSourceBinding.js +30 -0
  327. package/dist/state/objectiveExperimentEntities.js +322 -0
  328. package/dist/state/planEntities.js +1027 -0
  329. package/dist/state/planIdentity.js +47 -0
  330. package/dist/state/planLineageValidation.js +52 -0
  331. package/dist/state/planReplacementTransaction.js +475 -0
  332. package/dist/state/planRetrieval.js +313 -0
  333. package/dist/state/planTaskRetrieval.js +294 -0
  334. package/dist/state/progressEntities.js +512 -0
  335. package/dist/state/progressGlossaryCaveat.js +168 -0
  336. package/dist/state/progressPublicationOrder.js +19 -0
  337. package/dist/state/progressWritePolicy.js +33 -0
  338. package/dist/state/projectRoot.js +62 -0
  339. package/dist/state/projectionPolicy.js +190 -0
  340. package/dist/state/retrievalAuthority.js +156 -0
  341. package/dist/state/safeProjectFile.js +155 -0
  342. package/dist/state/startupAnalysis/benchmark.js +70 -9
  343. package/dist/state/startupAnalysis/contract.js +44 -10
  344. package/dist/state/startupAnalysis/helpers.js +1 -2
  345. package/dist/state/startupAnalysis/index.js +0 -1
  346. package/dist/state/startupAnalysis/metrics.js +0 -1
  347. package/dist/state/startupAnalysis/records.js +0 -1
  348. package/dist/state/startupAnalysis/report.js +0 -1
  349. package/dist/state/startupAnalysis/threshold.js +13 -1
  350. package/dist/state/startupAnalysis.js +0 -1
  351. package/dist/state/startupProjection.js +499 -0
  352. package/dist/state/stateMode.js +222 -0
  353. package/dist/state/stateStorageAuthority.js +47 -0
  354. package/dist/state/summaryEntityRead.js +25 -0
  355. package/dist/state/summaryMigrationProvenance.js +66 -0
  356. package/dist/state/summarySourceRowAuthority.js +36 -0
  357. package/dist/state/todoActivationSafety.js +58 -0
  358. package/dist/state/todoDocsEntities.js +1124 -0
  359. package/dist/state/todoDocsEntityValidation.js +158 -0
  360. package/dist/state/todoMarkdownProjection.js +51 -0
  361. package/dist/state/todoReconciliationActivation.js +182 -0
  362. package/dist/state/todoReconciliationInspection.js +171 -0
  363. package/dist/state/todoReconciliationRepair.js +318 -0
  364. package/dist/state/todoReconciliationTransaction.js +595 -0
  365. package/dist/state/write/assign.js +20 -0
  366. package/dist/state/write/candidateMutation.js +269 -0
  367. package/dist/state/write/errors.js +11 -0
  368. package/dist/state/write/experimentPublication.js +192 -0
  369. package/dist/state/write/explain.js +377 -0
  370. package/dist/state/write/fields.js +61 -0
  371. package/dist/state/write/glossaryPublication.js +263 -0
  372. package/dist/state/write/grammar.js +285 -0
  373. package/dist/state/write/helpers.js +29 -0
  374. package/dist/state/write/index.js +12 -0
  375. package/dist/state/write/input.js +391 -0
  376. package/dist/state/write/lock.js +837 -0
  377. package/dist/state/write/mutation.js +234 -0
  378. package/dist/state/write/operations.js +170 -0
  379. package/dist/state/write/planEvaluation.js +128 -0
  380. package/dist/state/write/planPublication.js +179 -0
  381. package/dist/state/write/runtimeOperations.js +146 -0
  382. package/dist/state/write/serialize.js +1 -0
  383. package/dist/state/write/transaction.js +57 -0
  384. package/dist/state/write/validate.js +7 -0
  385. package/dist/upgrade/appContentRefresh.js +77 -36
  386. package/dist/upgrade/appModel.js +0 -1
  387. package/dist/upgrade/atomicWriter.js +1 -0
  388. package/dist/upgrade/bundleEvidence.js +0 -1
  389. package/dist/upgrade/channels.js +6 -9
  390. package/dist/upgrade/compatibility.js +43 -17
  391. package/dist/upgrade/doctor.js +55 -32
  392. package/dist/upgrade/doctorClassifier.js +11 -1
  393. package/dist/upgrade/installedHooksRetirement.js +46 -40
  394. package/dist/upgrade/legacyAgentCleanup.js +187 -21
  395. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  396. package/dist/upgrade/migrateArtifactsV2ToV3.js +334 -64
  397. package/dist/upgrade/migrationPublication.js +122 -0
  398. package/dist/upgrade/nextMajorDoctor.js +0 -1
  399. package/dist/upgrade/npxPlatformStatus.js +0 -1
  400. package/dist/upgrade/projectIntegration.js +121 -159
  401. package/dist/upgrade/projectIntegrationDecision.js +42 -85
  402. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  403. package/dist/upgrade/runtimeMigration.js +262 -453
  404. package/dist/upgrade/upgradeCommands.js +14 -1
  405. package/dist/upgrade/upgradeLock.js +85 -0
  406. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  407. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  408. package/dist/upgrade/versionResolution.js +0 -1
  409. package/dist/validate/activationArtifactEvidence.js +852 -0
  410. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  411. package/dist/validate/activationConjunction.js +816 -0
  412. package/dist/validate/activationEvidenceManifest.js +531 -0
  413. package/dist/validate/activationPackageSemantics.js +29 -0
  414. package/dist/validate/appHomeContract.js +1 -7
  415. package/dist/validate/bootstrapAuthority.js +44 -0
  416. package/dist/validate/capability.js +11 -3
  417. package/dist/validate/crossCapability.js +14 -9
  418. package/dist/validate/retainedReferenceAuthority.js +879 -0
  419. package/dist/validate/selfAudit.js +39 -45
  420. package/dist/validate/v1LegacyCruft.js +131 -0
  421. package/dist/validate/vocabularyAuthority.js +8 -8
  422. package/package.json +41 -13
  423. package/bundle/references/adapters/cursor.md +0 -214
  424. package/bundle/references/adapters/opencode.md +0 -530
  425. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  426. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  427. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  428. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  429. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  430. package/bundle/references/analysis/benchmark.md +0 -267
  431. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  432. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  433. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  434. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  435. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  436. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  437. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  438. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  439. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  440. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  441. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  442. package/bundle/references/meta/documentation-inventory.md +0 -49
  443. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  444. package/bundle/skills/agentera/agents/audit.toml +0 -6
  445. package/bundle/skills/agentera/agents/build.toml +0 -6
  446. package/bundle/skills/agentera/agents/design.toml +0 -6
  447. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  448. package/bundle/skills/agentera/agents/document.toml +0 -6
  449. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  450. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  451. package/bundle/skills/agentera/agents/plan.toml +0 -6
  452. package/bundle/skills/agentera/agents/profile.toml +0 -6
  453. package/bundle/skills/agentera/agents/research.toml +0 -6
  454. package/bundle/skills/agentera/agents/status.toml +0 -6
  455. package/bundle/skills/agentera/agents/vision.toml +0 -6
  456. package/bundle/skills/agentera/references/contract.md +0 -1048
  457. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  458. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  459. package/dist/analytics/extractCorpus/core.js.map +0 -1
  460. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  461. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  462. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  463. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  464. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  465. package/dist/analytics/extractCorpus/index.js.map +0 -1
  466. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  467. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  468. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  469. package/dist/analytics/extractCorpus.js.map +0 -1
  470. package/dist/analytics/usageStats.js.map +0 -1
  471. package/dist/bin/agentera.js.map +0 -1
  472. package/dist/capabilities/audit/instructions.js.map +0 -1
  473. package/dist/capabilities/build/instructions.js.map +0 -1
  474. package/dist/capabilities/design/instructions.js.map +0 -1
  475. package/dist/capabilities/discuss/instructions.js.map +0 -1
  476. package/dist/capabilities/document/instructions.js.map +0 -1
  477. package/dist/capabilities/dokumentera/instructions.js +0 -6
  478. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  479. package/dist/capabilities/hej/instructions.js +0 -6
  480. package/dist/capabilities/hej/instructions.js.map +0 -1
  481. package/dist/capabilities/index.js.map +0 -1
  482. package/dist/capabilities/inspektera/instructions.js +0 -6
  483. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  484. package/dist/capabilities/inspirera/instructions.js +0 -6
  485. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  486. package/dist/capabilities/optimera/instructions.js +0 -6
  487. package/dist/capabilities/optimera/instructions.js.map +0 -1
  488. package/dist/capabilities/optimize/instructions.js.map +0 -1
  489. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  490. package/dist/capabilities/orkestrera/instructions.js +0 -6
  491. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  492. package/dist/capabilities/plan/instructions.js.map +0 -1
  493. package/dist/capabilities/planera/instructions.js +0 -6
  494. package/dist/capabilities/planera/instructions.js.map +0 -1
  495. package/dist/capabilities/profile/instructions.js.map +0 -1
  496. package/dist/capabilities/profilera/instructions.js +0 -6
  497. package/dist/capabilities/profilera/instructions.js.map +0 -1
  498. package/dist/capabilities/realisera/instructions.js +0 -6
  499. package/dist/capabilities/realisera/instructions.js.map +0 -1
  500. package/dist/capabilities/research/instructions.js.map +0 -1
  501. package/dist/capabilities/resonera/instructions.js +0 -6
  502. package/dist/capabilities/resonera/instructions.js.map +0 -1
  503. package/dist/capabilities/status/instructions.js.map +0 -1
  504. package/dist/capabilities/vision/instructions.js.map +0 -1
  505. package/dist/capabilities/visionera/instructions.js +0 -6
  506. package/dist/capabilities/visionera/instructions.js.map +0 -1
  507. package/dist/capabilities/visualisera/instructions.js +0 -5
  508. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  509. package/dist/cli/appContext.js.map +0 -1
  510. package/dist/cli/argvalidate.js.map +0 -1
  511. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  512. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  513. package/dist/cli/capabilityContext/build.js.map +0 -1
  514. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  515. package/dist/cli/capabilityContext/contract.js.map +0 -1
  516. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  517. package/dist/cli/capabilityContext/index.js.map +0 -1
  518. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  519. package/dist/cli/capabilityContext/planState.js.map +0 -1
  520. package/dist/cli/capabilityContext/progress.js.map +0 -1
  521. package/dist/cli/capabilityContext/realisera.js +0 -174
  522. package/dist/cli/capabilityContext/realisera.js.map +0 -1
  523. package/dist/cli/capabilityContext/shared.js.map +0 -1
  524. package/dist/cli/capabilityContext/slim.js.map +0 -1
  525. package/dist/cli/capabilityContext/startup.js.map +0 -1
  526. package/dist/cli/capabilityContext/types.js.map +0 -1
  527. package/dist/cli/capabilityContext.js.map +0 -1
  528. package/dist/cli/commands/appHome.js.map +0 -1
  529. package/dist/cli/commands/backfill.js +0 -84
  530. package/dist/cli/commands/backfill.js.map +0 -1
  531. package/dist/cli/commands/capability.js.map +0 -1
  532. package/dist/cli/commands/compact.js.map +0 -1
  533. package/dist/cli/commands/doctor.js.map +0 -1
  534. package/dist/cli/commands/lint.js.map +0 -1
  535. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  536. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  537. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  538. package/dist/cli/commands/prime/routeOutput.js +0 -50
  539. package/dist/cli/commands/prime/routeOutput.js.map +0 -1
  540. package/dist/cli/commands/prime/types.js.map +0 -1
  541. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  542. package/dist/cli/commands/prime.js.map +0 -1
  543. package/dist/cli/commands/query.js.map +0 -1
  544. package/dist/cli/commands/report.js.map +0 -1
  545. package/dist/cli/commands/schema.js.map +0 -1
  546. package/dist/cli/commands/state/decisions.js.map +0 -1
  547. package/dist/cli/commands/state/docs.js.map +0 -1
  548. package/dist/cli/commands/state/experiments.js.map +0 -1
  549. package/dist/cli/commands/state/health.js.map +0 -1
  550. package/dist/cli/commands/state/index.js.map +0 -1
  551. package/dist/cli/commands/state/objective.js.map +0 -1
  552. package/dist/cli/commands/state/plan.js.map +0 -1
  553. package/dist/cli/commands/state/progress.js.map +0 -1
  554. package/dist/cli/commands/state/shared.js.map +0 -1
  555. package/dist/cli/commands/state/todo.js.map +0 -1
  556. package/dist/cli/commands/state.js +0 -1023
  557. package/dist/cli/commands/state.js.map +0 -1
  558. package/dist/cli/commands/upgrade.js.map +0 -1
  559. package/dist/cli/commands/validate.js.map +0 -1
  560. package/dist/cli/commands/verify.js.map +0 -1
  561. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  562. package/dist/cli/contracts/orientationState.js.map +0 -1
  563. package/dist/cli/dispatch/argvParser.js.map +0 -1
  564. package/dist/cli/dispatch/check.js.map +0 -1
  565. package/dist/cli/dispatch/commands.js.map +0 -1
  566. package/dist/cli/dispatch/index.js.map +0 -1
  567. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  568. package/dist/cli/dispatch/prime.js.map +0 -1
  569. package/dist/cli/dispatch/shared.js.map +0 -1
  570. package/dist/cli/dispatch/state.js.map +0 -1
  571. package/dist/cli/dispatch.js.map +0 -1
  572. package/dist/cli/errors.js.map +0 -1
  573. package/dist/cli/help.js.map +0 -1
  574. package/dist/cli/orientation/attention.js.map +0 -1
  575. package/dist/cli/orientation/corpusCoverage.js.map +0 -1
  576. package/dist/cli/orientation.js.map +0 -1
  577. package/dist/cli/prime-blob.js.map +0 -1
  578. package/dist/cli/startupCompletenessContract.js.map +0 -1
  579. package/dist/cli/stateQuery.js.map +0 -1
  580. package/dist/cli/structured.js.map +0 -1
  581. package/dist/cli/todoMarkdown.js.map +0 -1
  582. package/dist/cli/todoSeverity.js.map +0 -1
  583. package/dist/core/difflib.js.map +0 -1
  584. package/dist/core/envPaths.js.map +0 -1
  585. package/dist/core/git.js +0 -43
  586. package/dist/core/git.js.map +0 -1
  587. package/dist/core/jsonValue.js.map +0 -1
  588. package/dist/core/paths.js.map +0 -1
  589. package/dist/core/pyjson.js.map +0 -1
  590. package/dist/core/sourceRoot.js.map +0 -1
  591. package/dist/core/toml.js.map +0 -1
  592. package/dist/core/yaml.js.map +0 -1
  593. package/dist/eval/evalSkills.js.map +0 -1
  594. package/dist/eval/semanticEval.js.map +0 -1
  595. package/dist/eval/semanticFixtures.js.map +0 -1
  596. package/dist/hooks/common.js.map +0 -1
  597. package/dist/hooks/compaction/apply.js.map +0 -1
  598. package/dist/hooks/compaction/dryRun.js.map +0 -1
  599. package/dist/hooks/compaction/index.js.map +0 -1
  600. package/dist/hooks/compaction/parse.js.map +0 -1
  601. package/dist/hooks/compaction/retention.js.map +0 -1
  602. package/dist/hooks/compaction/status.js.map +0 -1
  603. package/dist/hooks/compaction/todoResolved.js +0 -137
  604. package/dist/hooks/compaction/todoResolved.js.map +0 -1
  605. package/dist/hooks/compaction/types.js.map +0 -1
  606. package/dist/hooks/compaction.js +0 -935
  607. package/dist/hooks/compaction.js.map +0 -1
  608. package/dist/hooks/cursorPreToolUse.js +0 -19
  609. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  610. package/dist/hooks/cursorSessionStart.js +0 -79
  611. package/dist/hooks/cursorSessionStart.js.map +0 -1
  612. package/dist/hooks/sessionStart.js +0 -216
  613. package/dist/hooks/sessionStart.js.map +0 -1
  614. package/dist/hooks/sessionStop.js +0 -206
  615. package/dist/hooks/sessionStop.js.map +0 -1
  616. package/dist/hooks/todoLayout.js +0 -177
  617. package/dist/hooks/todoLayout.js.map +0 -1
  618. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  619. package/dist/hooks/validateArtifact/index.js.map +0 -1
  620. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  621. package/dist/hooks/validateArtifact/runtime.js +0 -86
  622. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  623. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  624. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  625. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  626. package/dist/hooks/validateArtifact.js +0 -924
  627. package/dist/hooks/validateArtifact.js.map +0 -1
  628. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  629. package/dist/registries/artifactProtocolIds.js.map +0 -1
  630. package/dist/registries/artifactRegistry.js.map +0 -1
  631. package/dist/registries/capabilityContract.js.map +0 -1
  632. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  633. package/dist/registries/packageRegistry.js.map +0 -1
  634. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  635. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  636. package/dist/registries/triggerLoader.js.map +0 -1
  637. package/dist/release/releaseMetadata.js.map +0 -1
  638. package/dist/routing/index.js +0 -2
  639. package/dist/routing/index.js.map +0 -1
  640. package/dist/routing/routeEngine.js +0 -189
  641. package/dist/routing/routeEngine.js.map +0 -1
  642. package/dist/setup/codex/agents.js +0 -96
  643. package/dist/setup/codex/agents.js.map +0 -1
  644. package/dist/setup/codex/cli.js +0 -161
  645. package/dist/setup/codex/cli.js.map +0 -1
  646. package/dist/setup/codex/configToml.js +0 -639
  647. package/dist/setup/codex/configToml.js.map +0 -1
  648. package/dist/setup/codex/constants.js +0 -29
  649. package/dist/setup/codex/constants.js.map +0 -1
  650. package/dist/setup/codex/installRoot.js +0 -64
  651. package/dist/setup/codex/installRoot.js.map +0 -1
  652. package/dist/setup/codex/state.js +0 -270
  653. package/dist/setup/codex/state.js.map +0 -1
  654. package/dist/setup/codex.js +0 -12
  655. package/dist/setup/codex.js.map +0 -1
  656. package/dist/setup/copilot.js +0 -227
  657. package/dist/setup/copilot.js.map +0 -1
  658. package/dist/setup/cursor.js +0 -129
  659. package/dist/setup/cursor.js.map +0 -1
  660. package/dist/setup/cursorSurfaces.js +0 -67
  661. package/dist/setup/cursorSurfaces.js.map +0 -1
  662. package/dist/setup/doctor/core.js +0 -300
  663. package/dist/setup/doctor/core.js.map +0 -1
  664. package/dist/setup/doctor/diagnostics.js +0 -240
  665. package/dist/setup/doctor/diagnostics.js.map +0 -1
  666. package/dist/setup/doctor/opencode.js +0 -313
  667. package/dist/setup/doctor/opencode.js.map +0 -1
  668. package/dist/setup/doctor/report.js +0 -425
  669. package/dist/setup/doctor/report.js.map +0 -1
  670. package/dist/setup/doctor.js +0 -10
  671. package/dist/setup/doctor.js.map +0 -1
  672. package/dist/setup/opencode.js.map +0 -1
  673. package/dist/setup/smokeChecks.js.map +0 -1
  674. package/dist/state/installRoot.js.map +0 -1
  675. package/dist/state/progressCommit.js +0 -289
  676. package/dist/state/progressCommit.js.map +0 -1
  677. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  678. package/dist/state/startupAnalysis/contract.js.map +0 -1
  679. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  680. package/dist/state/startupAnalysis/index.js.map +0 -1
  681. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  682. package/dist/state/startupAnalysis/records.js.map +0 -1
  683. package/dist/state/startupAnalysis/report.js.map +0 -1
  684. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  685. package/dist/state/startupAnalysis.js.map +0 -1
  686. package/dist/upgrade/appContentRefresh.js.map +0 -1
  687. package/dist/upgrade/appModel.js.map +0 -1
  688. package/dist/upgrade/bundleEvidence.js.map +0 -1
  689. package/dist/upgrade/channels.js.map +0 -1
  690. package/dist/upgrade/cliProbe.js +0 -22
  691. package/dist/upgrade/cliProbe.js.map +0 -1
  692. package/dist/upgrade/coexistenceProbe.js +0 -107
  693. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  694. package/dist/upgrade/compatibility.js.map +0 -1
  695. package/dist/upgrade/doctor.js.map +0 -1
  696. package/dist/upgrade/doctorClassifier.js.map +0 -1
  697. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  698. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  699. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  700. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  701. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  702. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  703. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  704. package/dist/upgrade/projectIntegration.js.map +0 -1
  705. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  706. package/dist/upgrade/runtimeMigration.js.map +0 -1
  707. package/dist/upgrade/upgradeCommands.js.map +0 -1
  708. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  709. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  710. package/dist/upgrade/versionResolution.js.map +0 -1
  711. package/dist/validate/appHomeContract.js.map +0 -1
  712. package/dist/validate/capability.js.map +0 -1
  713. package/dist/validate/crossCapability.js.map +0 -1
  714. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  715. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  716. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  717. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  718. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  719. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  720. package/dist/validate/lifecycleAdapters.js +0 -62
  721. package/dist/validate/lifecycleAdapters.js.map +0 -1
  722. package/dist/validate/selfAudit.js.map +0 -1
  723. package/dist/validate/vocabularyAuthority.js.map +0 -1
@@ -0,0 +1,371 @@
1
+ import path from "node:path";
2
+ import { loadYamlMappingFile } from "../core/yaml.js";
3
+ import { resolveSourceRoot } from "../core/sourceRoot.js";
4
+ export class EvidenceTierContractError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = "EvidenceTierContractError";
8
+ }
9
+ }
10
+ /** Supported source families the contract must never silently omit. */
11
+ export const REQUIRED_SOURCE_FAMILIES = [
12
+ "codex",
13
+ "cursor",
14
+ "opencode",
15
+ "copilot",
16
+ "claude-code",
17
+ ];
18
+ /** Signal semantics whose required meaning must remain available. */
19
+ export const REQUIRED_SIGNAL_KINDS = [
20
+ "correction",
21
+ "decision",
22
+ "question",
23
+ "instruction",
24
+ "configuration",
25
+ "record_identity",
26
+ "date",
27
+ "evidence_anchor",
28
+ ];
29
+ /** Compatibility states that must have deterministic, actionable outcomes. */
30
+ export const REQUIRED_COMPATIBILITY_STATES = [
31
+ "oversized",
32
+ "legacy",
33
+ "missing",
34
+ "corrupt",
35
+ "incomplete",
36
+ ];
37
+ /** Latent startup-analysis reader that must appear in the consumer map. */
38
+ export const STARTUP_ANALYSIS_CONSUMER = "startup_analysis";
39
+ /** Profile-synthesis consumer that must appear in the consumer map. */
40
+ export const PROFILE_SYNTHESIS_CONSUMER = "profile_synthesis";
41
+ /** Signal types the profile_synthesis consumer reads for bounded synthesis. */
42
+ export const PROFILE_SIGNAL_TYPES = [
43
+ "decision",
44
+ "question",
45
+ "correction",
46
+ "instruction",
47
+ "configuration",
48
+ ];
49
+ export function evidenceTierAuthorityPath(root = resolveSourceRoot()) {
50
+ return path.join(root, "references", "analysis", "evidence-tier-authority.yaml");
51
+ }
52
+ function mapping(value) {
53
+ return value !== null && typeof value === "object" && !Array.isArray(value)
54
+ ? value
55
+ : null;
56
+ }
57
+ function asRecord(value, label) {
58
+ const m = mapping(value);
59
+ if (m === null) {
60
+ throw new EvidenceTierContractError(`${label} must be a mapping`);
61
+ }
62
+ return m;
63
+ }
64
+ function asMappingMap(value, label) {
65
+ const m = mapping(value);
66
+ const out = new Map();
67
+ if (m === null) {
68
+ throw new EvidenceTierContractError(`${label} must be a mapping`);
69
+ }
70
+ for (const [key, entry] of Object.entries(m)) {
71
+ const em = mapping(entry);
72
+ if (em === null) {
73
+ throw new EvidenceTierContractError(`${label}.${key} must be a mapping`);
74
+ }
75
+ out.set(key, em);
76
+ }
77
+ return out;
78
+ }
79
+ function asString(value, label) {
80
+ if (typeof value !== "string" || value.length === 0) {
81
+ throw new EvidenceTierContractError(`${label} must be a non-empty string`);
82
+ }
83
+ return value;
84
+ }
85
+ function asStringArray(value, label) {
86
+ if (!Array.isArray(value)) {
87
+ throw new EvidenceTierContractError(`${label} must be an array`);
88
+ }
89
+ return value.map((entry, i) => asString(entry, `${label}[${i}]`));
90
+ }
91
+ function asPositiveInt(value, label) {
92
+ if (typeof value !== "number" || !Number.isFinite(value) || value <= 0 || Math.floor(value) !== value) {
93
+ throw new EvidenceTierContractError(`${label} must be a positive integer`);
94
+ }
95
+ return value;
96
+ }
97
+ function asPositiveNumber(value, label) {
98
+ if (typeof value !== "number" || !Number.isFinite(value) || value <= 0 || value > 1) {
99
+ throw new EvidenceTierContractError(`${label} must be a positive number in (0, 1]`);
100
+ }
101
+ return value;
102
+ }
103
+ /**
104
+ * A family declares either `source_product` (single string) or `source_products`
105
+ * (list, e.g. cursor covers both Cursor and Cursor Agent). Normalize to a list
106
+ * for uniform coverage checks. At least one product is required.
107
+ */
108
+ function resolveSourceProduct(entry, label) {
109
+ const products = entry.source_products ?? entry.source_product;
110
+ if (products === undefined) {
111
+ throw new EvidenceTierContractError(`${label} must declare source_product or source_products`);
112
+ }
113
+ return Array.isArray(products) ? asStringArray(products, `${label}.source_products`) : [asString(products, `${label}.source_product`)];
114
+ }
115
+ /** Load and structurally validate the evidence-tier authority YAML. */
116
+ export function loadEvidenceTierContract(contractPath = evidenceTierAuthorityPath()) {
117
+ let raw;
118
+ try {
119
+ raw = loadYamlMappingFile(contractPath);
120
+ }
121
+ catch (error) {
122
+ throw new EvidenceTierContractError(`evidence tier authority ${contractPath} is unreadable or malformed: ${error.message}`);
123
+ }
124
+ const schemaVersion = asString(raw.schema_version, "schema_version");
125
+ if (schemaVersion !== "agentera.evidenceTierAuthority.v1") {
126
+ throw new EvidenceTierContractError(`evidence tier authority ${contractPath} has unsupported schema_version: ${schemaVersion}`);
127
+ }
128
+ const tiersMap = asMappingMap(raw.tiers, "tiers");
129
+ const tierIds = [];
130
+ for (const [key, entry] of tiersMap) {
131
+ if (key !== "full_evidence" && key !== "signal") {
132
+ throw new EvidenceTierContractError(`tiers.${key} is not a recognized tier id`);
133
+ }
134
+ tierIds.push(key);
135
+ const stored = asRecord(entry.stored_fields, `tiers.${key}.stored_fields`);
136
+ asStringArray(stored.required, `tiers.${key}.stored_fields.required`);
137
+ }
138
+ const familiesMap = asMappingMap(asRecord(raw.source_families, "source_families").families, "source_families.families");
139
+ const families = new Map();
140
+ for (const [familyId, entry] of familiesMap) {
141
+ const sourceClass = asString(entry.source_class, `source_families.families.${familyId}.source_class`);
142
+ if (sourceClass !== "active_runtime" && sourceClass !== "historical_import") {
143
+ throw new EvidenceTierContractError(`source_families.families.${familyId}.source_class must be active_runtime or historical_import`);
144
+ }
145
+ families.set(familyId, {
146
+ family_id: familyId,
147
+ source_class: sourceClass,
148
+ source_product: resolveSourceProduct(entry, `source_families.families.${familyId}`),
149
+ active_runtime: Boolean(entry.active_runtime),
150
+ inclusion_rule: typeof entry.inclusion_rule === "string" ? entry.inclusion_rule : undefined,
151
+ });
152
+ }
153
+ const consumerMapRoot = asRecord(raw.consumer_map, "consumer_map");
154
+ const consumersMap = asMappingMap(consumerMapRoot.consumers, "consumer_map.consumers");
155
+ const consumers = new Map();
156
+ for (const [consumerId, entry] of consumersMap) {
157
+ const tier = asString(entry.tier, `consumer_map.consumers.${consumerId}.tier`);
158
+ if (tier !== "full_evidence" && tier !== "signal") {
159
+ throw new EvidenceTierContractError(`consumer_map.consumers.${consumerId}.tier must be full_evidence or signal`);
160
+ }
161
+ consumers.set(consumerId, {
162
+ consumer_id: consumerId,
163
+ tier,
164
+ purpose: asString(entry.purpose, `consumer_map.consumers.${consumerId}.purpose`),
165
+ required_fields: asStringArray(entry.required_fields, `consumer_map.consumers.${consumerId}.required_fields`),
166
+ source_identity: asString(entry.source_identity, `consumer_map.consumers.${consumerId}.source_identity`),
167
+ input_contract: asString(entry.input_contract, `consumer_map.consumers.${consumerId}.input_contract`),
168
+ });
169
+ }
170
+ const semanticMap = asMappingMap(consumerMapRoot.semantic_consumers, "consumer_map.semantic_consumers");
171
+ const semanticConsumers = new Map();
172
+ for (const [consumerId, entry] of semanticMap) {
173
+ semanticConsumers.set(consumerId, {
174
+ consumer_id: consumerId,
175
+ tier: asString(entry.tier, `consumer_map.semantic_consumers.${consumerId}.tier`),
176
+ status: asString(entry.status, `consumer_map.semantic_consumers.${consumerId}.status`),
177
+ input_scope: typeof entry.input_scope === "string" ? entry.input_scope : undefined,
178
+ excluded_evidence_classes: Array.isArray(entry.excluded_evidence_classes)
179
+ ? asStringArray(entry.excluded_evidence_classes, `consumer_map.semantic_consumers.${consumerId}.excluded_evidence_classes`)
180
+ : [],
181
+ required_semantics: asStringArray(entry.required_semantics, `consumer_map.semantic_consumers.${consumerId}.required_semantics`),
182
+ });
183
+ }
184
+ const semanticsMap = asMappingMap(asRecord(raw.signal_semantics, "signal_semantics").kinds, "signal_semantics.kinds");
185
+ const signalSemantics = new Map();
186
+ for (const [kind, entry] of semanticsMap) {
187
+ signalSemantics.set(kind, {
188
+ kind,
189
+ meaning: asString(entry.meaning, `signal_semantics.kinds.${kind}.meaning`),
190
+ derivable_from: asString(entry.derivable_from, `signal_semantics.kinds.${kind}.derivable_from`),
191
+ consumer: asString(entry.consumer, `signal_semantics.kinds.${kind}.consumer`),
192
+ current_consumer: typeof entry.current_consumer === "string" ? entry.current_consumer : undefined,
193
+ });
194
+ }
195
+ const statesMap = asMappingMap(asRecord(raw.compatibility_states, "compatibility_states").states, "compatibility_states.states");
196
+ const compatibilityStates = new Map();
197
+ for (const [key, entry] of statesMap) {
198
+ if (!REQUIRED_COMPATIBILITY_STATES.includes(key)) {
199
+ throw new EvidenceTierContractError(`compatibility_states.states.${key} is not a recognized state`);
200
+ }
201
+ const stateId = key;
202
+ const outcome = asString(entry.outcome, `compatibility_states.states.${key}.outcome`);
203
+ if (outcome !== "recover" && outcome !== "degrade") {
204
+ throw new EvidenceTierContractError(`compatibility_states.states.${key}.outcome must be recover or degrade`);
205
+ }
206
+ compatibilityStates.set(stateId, {
207
+ state_id: stateId,
208
+ trigger: asString(entry.trigger, `compatibility_states.states.${key}.trigger`),
209
+ status: asString(entry.status, `compatibility_states.states.${key}.status`),
210
+ reason: asString(entry.reason, `compatibility_states.states.${key}.reason`),
211
+ outcome,
212
+ recovery: asString(entry.recovery, `compatibility_states.states.${key}.recovery`),
213
+ });
214
+ }
215
+ const reconciliation = asRecord(raw.decision_55_reconciliation, "decision_55_reconciliation");
216
+ const boundsRoot = asRecord(raw.bounds, "bounds");
217
+ const bounds = {
218
+ readerByteCap: asPositiveInt(boundsRoot.reader_byte_cap, "bounds.reader_byte_cap"),
219
+ shardByteCap: asPositiveInt(boundsRoot.shard_byte_cap, "bounds.shard_byte_cap"),
220
+ signalByteCap: asPositiveInt(boundsRoot.signal_byte_cap, "bounds.signal_byte_cap"),
221
+ };
222
+ const suffRoot = asRecord(raw.profile_sufficiency, "profile_sufficiency");
223
+ const profileSufficiency = {
224
+ profileSignalTypes: asStringArray(suffRoot.profile_signal_types, "profile_sufficiency.profile_signal_types"),
225
+ minimumFamilyRetention: asPositiveNumber(suffRoot.minimum_family_retention, "profile_sufficiency.minimum_family_retention"),
226
+ };
227
+ return {
228
+ schemaVersion,
229
+ status: asString(raw.status, "status"),
230
+ tierIds,
231
+ families,
232
+ consumers,
233
+ semanticConsumers,
234
+ signalSemantics,
235
+ compatibilityStates,
236
+ bounds,
237
+ profileSufficiency,
238
+ decisionNumber: typeof reconciliation.decision_number === "number"
239
+ ? reconciliation.decision_number
240
+ : 0,
241
+ };
242
+ }
243
+ /** All declared source family ids (no family is silently omitted). */
244
+ export function supportedSourceFamilies(contractPath = evidenceTierAuthorityPath()) {
245
+ return [...loadEvidenceTierContract(contractPath).families.keys()];
246
+ }
247
+ /** All declared consumers with their bounded input contract and required fields. */
248
+ export function consumerMap(contractPath = evidenceTierAuthorityPath()) {
249
+ return [...loadEvidenceTierContract(contractPath).consumers.values()];
250
+ }
251
+ /** All declared signal semantics available to current consumers. */
252
+ export function signalSemantics(contractPath = evidenceTierAuthorityPath()) {
253
+ return [...loadEvidenceTierContract(contractPath).signalSemantics.values()];
254
+ }
255
+ /** All declared compatibility states with deterministic, actionable outcomes. */
256
+ export function compatibilityStates(contractPath = evidenceTierAuthorityPath()) {
257
+ return [...loadEvidenceTierContract(contractPath).compatibilityStates.values()];
258
+ }
259
+ /**
260
+ * Projected byte caps for full-evidence shards and the signal tier. These are
261
+ * the bounds the publication writer and direct retriever enforce; they are read
262
+ * from the authority rather than duplicated in callers.
263
+ */
264
+ export function evidenceTierBounds(contractPath = evidenceTierAuthorityPath()) {
265
+ return loadEvidenceTierContract(contractPath).bounds;
266
+ }
267
+ /**
268
+ * Profile-synthesis sufficiency threshold (resolves planning Unknown 2). The
269
+ * profile_signal_types and minimum_family_retention are the authority a bounded
270
+ * profile reader projects when comparing the retained signal distribution
271
+ * against the intended distribution. Callers must not re-declare these.
272
+ */
273
+ export function profileSufficiency(contractPath = evidenceTierAuthorityPath()) {
274
+ return loadEvidenceTierContract(contractPath).profileSufficiency;
275
+ }
276
+ /**
277
+ * Validate the contract against its invariants. Returns a list of human-readable
278
+ * errors; an empty list means the contract satisfies every Task 1 acceptance
279
+ * invariant. Used by tests for both passing (production contract) and failing
280
+ * (mutated fixture) checks.
281
+ */
282
+ export function validateEvidenceTierContract(contractPath = evidenceTierAuthorityPath()) {
283
+ const errors = [];
284
+ let model;
285
+ try {
286
+ model = loadEvidenceTierContract(contractPath);
287
+ }
288
+ catch (error) {
289
+ return [error.message];
290
+ }
291
+ // AC1: every consumer has one bounded input contract supplying required fields
292
+ // with source identity.
293
+ for (const consumer of model.consumers.values()) {
294
+ if (consumer.required_fields.length === 0) {
295
+ errors.push(`consumer ${consumer.consumer_id} declares no required fields`);
296
+ }
297
+ if (!consumer.source_identity) {
298
+ errors.push(`consumer ${consumer.consumer_id} has no source identity`);
299
+ }
300
+ if (!consumer.input_contract) {
301
+ errors.push(`consumer ${consumer.consumer_id} has no input contract`);
302
+ }
303
+ }
304
+ if (!model.consumers.has(STARTUP_ANALYSIS_CONSUMER)) {
305
+ errors.push(`consumer map omits latent ${STARTUP_ANALYSIS_CONSUMER} reader`);
306
+ }
307
+ // AC2: no supported source family is silently omitted.
308
+ for (const family of REQUIRED_SOURCE_FAMILIES) {
309
+ if (!model.families.has(family)) {
310
+ errors.push(`source family ${family} is omitted`);
311
+ }
312
+ }
313
+ // AC3: signal semantics required meaning remains available to current and
314
+ // declared semantic consumers.
315
+ for (const kind of REQUIRED_SIGNAL_KINDS) {
316
+ const semantic = model.signalSemantics.get(kind);
317
+ if (!semantic) {
318
+ errors.push(`signal semantic ${kind} is omitted`);
319
+ continue;
320
+ }
321
+ if (!semantic.consumer) {
322
+ errors.push(`signal semantic ${kind} has no declared consumer`);
323
+ }
324
+ }
325
+ for (const [name, consumer] of model.semanticConsumers) {
326
+ for (const kind of consumer.required_semantics) {
327
+ if (!model.signalSemantics.has(kind)) {
328
+ errors.push(`semantic consumer ${name} requires unknown semantic ${kind}`);
329
+ }
330
+ }
331
+ }
332
+ const glossary = model.semanticConsumers.get("glossary");
333
+ if (glossary?.status !== "active" ||
334
+ glossary.input_scope !== "bounded_personal_history" ||
335
+ !glossary.excluded_evidence_classes.includes("project_file")) {
336
+ errors.push("active glossary evidence must use bounded personal history and exclude project files");
337
+ }
338
+ // AC4: every compatibility state is deterministic and actionable.
339
+ for (const state of REQUIRED_COMPATIBILITY_STATES) {
340
+ const def = model.compatibilityStates.get(state);
341
+ if (!def) {
342
+ errors.push(`compatibility state ${state} is omitted`);
343
+ continue;
344
+ }
345
+ if (def.outcome !== "recover" && def.outcome !== "degrade") {
346
+ errors.push(`compatibility state ${state} has non-deterministic outcome`);
347
+ }
348
+ if (!def.recovery) {
349
+ errors.push(`compatibility state ${state} has no actionable recovery`);
350
+ }
351
+ }
352
+ // Profile-synthesis sufficiency (Unknown 2): the consumer must appear, the
353
+ // sufficiency model must declare profile signal types, and each declared
354
+ // type must be a recognized signal semantic so the comparison is meaningful.
355
+ if (!model.consumers.has(PROFILE_SYNTHESIS_CONSUMER)) {
356
+ errors.push(`consumer map omits ${PROFILE_SYNTHESIS_CONSUMER} consumer`);
357
+ }
358
+ if (model.profileSufficiency.profileSignalTypes.length === 0) {
359
+ errors.push("profile_sufficiency declares no profile_signal_types");
360
+ }
361
+ for (const kind of model.profileSufficiency.profileSignalTypes) {
362
+ if (!model.signalSemantics.has(kind)) {
363
+ errors.push(`profile_sufficiency references unknown signal semantic ${kind}`);
364
+ }
365
+ }
366
+ // Decision 55 reconciliation: the decision is referenced, not rewritten.
367
+ if (model.decisionNumber !== 55) {
368
+ errors.push(`decision_55_reconciliation.decision_number is ${model.decisionNumber}, expected 55`);
369
+ }
370
+ return errors;
371
+ }
@@ -0,0 +1,79 @@
1
+ import { projectGlossaryDevelopmentValue } from "../core/developmentInvocation.js";
2
+ import { loadYamlMappingFile } from "../core/yaml.js";
3
+ import { glossaryEntryAuthorityPath } from "./glossaryEntryContract.js";
4
+ function mapping(value) {
5
+ return value !== null && typeof value === "object" && !Array.isArray(value)
6
+ ? value
7
+ : null;
8
+ }
9
+ function strings(value) {
10
+ return Array.isArray(value) && value.every((item) => typeof item === "string") ? value : [];
11
+ }
12
+ export function glossaryAdviceContract(pathname = glossaryEntryAuthorityPath()) {
13
+ const authority = loadYamlMappingFile(pathname);
14
+ const consumer = mapping(authority.consumer_boundary);
15
+ const acquisition = mapping(consumer?.acquisition);
16
+ const acquisitionBounds = mapping(acquisition?.bounds);
17
+ const availability = mapping(acquisition?.availability);
18
+ const advice = mapping(consumer?.advice_resolution);
19
+ const input = mapping(advice?.input);
20
+ const invocation = mapping(advice?.invocation);
21
+ const hostReview = mapping(input?.host_review);
22
+ const output = mapping(advice?.output);
23
+ const failure = mapping(advice?.failure);
24
+ const selection = mapping(consumer?.primary_selection);
25
+ const matrix = mapping(consumer?.outcome_matrix);
26
+ const advisories = mapping(consumer?.orthogonal_advisories);
27
+ return {
28
+ implementation: typeof advice?.implementation === "string" ? advice.implementation : "",
29
+ runtime: typeof advice?.runtime === "string" ? advice.runtime : "",
30
+ command: projectGlossaryDevelopmentValue(invocation?.command, "advice.command"),
31
+ requestSchemaVersion: typeof invocation?.request_schema_version === "string" ? invocation.request_schema_version : "",
32
+ requestFields: strings(invocation?.request_fields),
33
+ maxRequestUtf8Bytes: typeof invocation?.max_request_utf8_bytes === "number" ? invocation.max_request_utf8_bytes : 0,
34
+ maxRequestedTermUtf8Bytes: typeof acquisitionBounds?.max_source_utf8_bytes === "number"
35
+ ? acquisitionBounds.max_source_utf8_bytes
36
+ : 0,
37
+ maxEntries: typeof acquisitionBounds?.max_entries === "number" ? acquisitionBounds.max_entries : 0,
38
+ availabilityStates: strings(availability?.states),
39
+ hostReviewRelations: strings(hostReview?.relations),
40
+ hostReviewCandidateOwners: strings(hostReview?.candidate_owners),
41
+ hostReviewFields: strings(hostReview?.fields),
42
+ schemaVersion: typeof output?.schema_version === "string" ? output.schema_version : "",
43
+ outputFields: strings(output?.fields),
44
+ advisoryFields: strings(output?.advisory_fields),
45
+ failureClasses: strings(failure?.classes),
46
+ dimensions: Object.fromEntries(Object.entries(mapping(selection?.dimensions) ?? {}).map(([name, values]) => [
47
+ name,
48
+ strings(values),
49
+ ])),
50
+ rows: strings(selection?.order).map((name) => {
51
+ const row = mapping(matrix?.[name]);
52
+ return {
53
+ name,
54
+ match: Object.fromEntries(Object.entries(mapping(row?.match) ?? {}).map(([dimension, values]) => [
55
+ dimension,
56
+ strings(values),
57
+ ])),
58
+ selectedOwner: typeof row?.selected_owner === "string" ? row.selected_owner : "",
59
+ selectedMeaning: typeof row?.selected_meaning === "string" ? row.selected_meaning : "",
60
+ review: typeof row?.review === "string" ? row.review : "",
61
+ tension: typeof row?.tension === "string" ? row.tension : "",
62
+ };
63
+ }),
64
+ advisories: Object.entries(advisories ?? {}).map(([name, value]) => {
65
+ const advisory = mapping(value);
66
+ return {
67
+ name,
68
+ primaryOutcome: typeof advisory?.primary_outcome === "string" ? advisory.primary_outcome : "",
69
+ match: Object.fromEntries(Object.entries(mapping(advisory?.match) ?? {}).map(([dimension, values]) => [
70
+ dimension,
71
+ strings(values),
72
+ ])),
73
+ caveatReason: typeof advisory?.caveat_reason === "string" ? advisory.caveat_reason : "",
74
+ ownershipState: typeof advisory?.ownership_state === "string" ? advisory.ownership_state : "",
75
+ review: typeof advisory?.review === "string" ? advisory.review : null,
76
+ };
77
+ }),
78
+ };
79
+ }
@@ -0,0 +1,67 @@
1
+ import { loadYamlMappingFile } from "../core/yaml.js";
2
+ import { glossaryEntryAuthorityPath } from "./glossaryEntryContract.js";
3
+ function mapping(value) {
4
+ return value !== null && typeof value === "object" && !Array.isArray(value)
5
+ ? value
6
+ : null;
7
+ }
8
+ function strings(value) {
9
+ return Array.isArray(value) && value.every((item) => typeof item === "string") ? value : [];
10
+ }
11
+ function fixedValues(value) {
12
+ const source = mapping(value);
13
+ if (!source)
14
+ return {};
15
+ return Object.fromEntries(Object.entries(source).filter((entry) => typeof entry[1] === "string" || entry[1] === null));
16
+ }
17
+ function allowedPairs(value) {
18
+ if (!Array.isArray(value))
19
+ return [];
20
+ return value.flatMap((candidate) => {
21
+ const pair = mapping(candidate);
22
+ return typeof pair?.reason === "string" && typeof pair.ownership_state === "string"
23
+ ? [{ reason: pair.reason, ownershipState: pair.ownership_state }]
24
+ : [];
25
+ });
26
+ }
27
+ export function glossaryCaveatPairAllowed(contract, reason, ownershipState) {
28
+ return contract.allowedCurrentPairs.some((pair) => pair.reason === reason && pair.ownershipState === ownershipState);
29
+ }
30
+ export function glossaryCaveatContract(pathname = glossaryEntryAuthorityPath()) {
31
+ return glossaryCaveatContractFromDocument(loadYamlMappingFile(pathname));
32
+ }
33
+ export function glossaryCaveatContractFromDocument(authority) {
34
+ const caveat = mapping(mapping(authority.consumer_boundary)?.autonomous_caveat);
35
+ const identity = mapping(caveat?.identity);
36
+ const envelope = mapping(caveat?.envelope);
37
+ const currentAppend = mapping(envelope?.current_append);
38
+ const primeProjection = mapping(caveat?.prime_projection);
39
+ const primeSource = mapping(primeProjection?.source);
40
+ const primeCapacity = mapping(primeProjection?.capacity);
41
+ return {
42
+ fields: strings(envelope?.fields),
43
+ currentAppendCallerFields: strings(currentAppend?.caller_fields),
44
+ currentAppendCallerFixedValues: Object.fromEntries(Object.entries(fixedValues(currentAppend?.caller_fixed_values)).filter((entry) => typeof entry[1] === "string")),
45
+ currentAppendWriterFields: strings(currentAppend?.writer_fields),
46
+ currentAppendWriterFixedValues: fixedValues(currentAppend?.writer_fixed_values),
47
+ events: strings(envelope?.events),
48
+ capabilities: strings(envelope?.capabilities),
49
+ reasons: strings(envelope?.reasons),
50
+ ownershipStates: strings(envelope?.ownership_states),
51
+ allowedCurrentPairs: allowedPairs(caveat?.allowed_current_pairs),
52
+ idAlphabet: typeof identity?.alphabet === "string" ? identity.alphabet : "",
53
+ idLength: typeof identity?.length === "number" ? identity.length : 0,
54
+ idPattern: new RegExp(typeof identity?.pattern === "string" ? identity.pattern : "a^"),
55
+ maxStringUtf8Bytes: typeof envelope?.max_string_utf8_bytes === "number" ? envelope.max_string_utf8_bytes : 0,
56
+ primeAttentionText: typeof primeProjection?.attention_text === "string" ? primeProjection.attention_text : "",
57
+ primeSourceArtifact: typeof primeSource?.artifact === "string" ? primeSource.artifact : "",
58
+ primeSourceBoundary: typeof primeSource?.boundary === "string" ? primeSource.boundary : "",
59
+ primeSourceCapability: typeof primeSource?.capability === "string" ? primeSource.capability : "",
60
+ primePublicAttentionLimit: typeof primeCapacity?.public_attention_limit === "number"
61
+ ? primeCapacity.public_attention_limit
62
+ : 0,
63
+ primeReservedGlossarySlots: typeof primeCapacity?.reserved_glossary_slots === "number"
64
+ ? primeCapacity.reserved_glossary_slots
65
+ : 0,
66
+ };
67
+ }