@tiinex/app 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +31 -0
  3. package/README.md +26 -0
  4. package/docs/CONSUMER-CONTRACT.md +65 -0
  5. package/package.json +94 -0
  6. package/src/acceptance/knownScenarios.case.mjs +48 -0
  7. package/src/acceptance/knownScenarios.js +89 -0
  8. package/src/acceptance/postV423CanonicalTransitionProductVerticalSlice.case.mjs +774 -0
  9. package/src/acceptance/postV437M0ETimePortalProductParityClosure.case.mjs +51 -0
  10. package/src/acceptance/postV447M0FGithubSocialPublicationProductIntegration.case.mjs +33 -0
  11. package/src/acceptance/postV450M0ProductAcceptanceHardening.case.mjs +82 -0
  12. package/src/acceptance/postV470SchemaReadingContractMaterializationIdentitySourceCoalescingAuthorityCorrection.case.mjs +236 -0
  13. package/src/acceptance/recoveryAcceptance.case.mjs +196 -0
  14. package/src/adapters/adapter.definition.schema.json +33 -0
  15. package/src/adapters/archive/archive.adapter.case.mjs +212 -0
  16. package/src/adapters/export/export.adapter.js +79 -0
  17. package/src/adapters/git-native/git-native.adapter.js +43 -0
  18. package/src/adapters/github/github.adapter.case.mjs +843 -0
  19. package/src/adapters/github/github.adapter.js +395 -0
  20. package/src/adapters/github/github.issueEmbedded.js +262 -0
  21. package/src/adapters/github/github.issueMirror.js +309 -0
  22. package/src/adapters/github/github.issueSnapshot.js +475 -0
  23. package/src/adapters/github/github.issueSurface.js +188 -0
  24. package/src/adapters/github/github.issueTransport.js +237 -0
  25. package/src/adapters/github/github.publicationRead.js +24 -0
  26. package/src/adapters/github/github.readTransport.js +18 -0
  27. package/src/adapters/github/github.repoDiscovery.js +222 -0
  28. package/src/adapters/github/github.repoMirror.js +255 -0
  29. package/src/adapters/github/github.repoProxy.js +276 -0
  30. package/src/adapters/github/github.repoSurface.js +60 -0
  31. package/src/adapters/github/github.transportDiagnostics.js +68 -0
  32. package/src/adapters/local/local.adapter.case.mjs +72 -0
  33. package/src/adapters/local/local.adapter.js +188 -0
  34. package/src/adapters/registry.js +35 -0
  35. package/src/adapters/static/static.adapter.js +84 -0
  36. package/src/app/App.js +1 -0
  37. package/src/app/TiinexApp.jsx +822 -0
  38. package/src/app/appShell.views.jsx +58 -0
  39. package/src/app/artifactAuthoringCapability.js +49 -0
  40. package/src/app/boot/bootApp.js +19 -0
  41. package/src/app/boot/environment.js +1 -0
  42. package/src/app/canonicalAuthoringValues.js +4 -0
  43. package/src/app/canonicalCreationProductController.js +57 -0
  44. package/src/app/canonicalCreationProductSettlement.case.mjs +10 -0
  45. package/src/app/canonicalCreationProductSettlement.js +11 -0
  46. package/src/app/canonicalReferenceLocalCreateCommand.js +210 -0
  47. package/src/app/canonicalReferenceTargets.js +73 -0
  48. package/src/app/canonicalTransitionLocalCreateCommand.js +217 -0
  49. package/src/app/defaultWorkspaceStart.case.mjs +39 -0
  50. package/src/app/defaultWorkspaceStart.js +65 -0
  51. package/src/app/defaultWorkspaceStartCommand.js +55 -0
  52. package/src/app/durableLocalMutationPolicy.js +21 -0
  53. package/src/app/githubMaterializationSummary.js +69 -0
  54. package/src/app/githubProgress.js +25 -0
  55. package/src/app/githubSourceInput.js +47 -0
  56. package/src/app/githubSourceMaterializationCommand.js +97 -0
  57. package/src/app/githubSourceOperation.js +226 -0
  58. package/src/app/governanceDialogData.js +27 -0
  59. package/src/app/handoffPackageImportCommand.js +182 -0
  60. package/src/app/historyAuthority.js +53 -0
  61. package/src/app/initialWorkspaceBootstrapOperation.js +105 -0
  62. package/src/app/lineageCommand.js +118 -0
  63. package/src/app/lineageSourceRecovery.js +339 -0
  64. package/src/app/localDraftMutationCommand.js +174 -0
  65. package/src/app/localMaterialCommand.js +124 -0
  66. package/src/app/nodeGraphVerse.case.mjs +111 -0
  67. package/src/app/persistenceOwnership.js +92 -0
  68. package/src/app/productStateBoundary.js +7 -0
  69. package/src/app/providers/AppProviders.js +1 -0
  70. package/src/app/providers/LocaleProvider.js +1 -0
  71. package/src/app/providers/SchemaRegistryProvider.js +1 -0
  72. package/src/app/providers/WorkspaceProvider.js +1 -0
  73. package/src/app/publicTarget.js +251 -0
  74. package/src/app/publicTargetRestoreCommand.js +149 -0
  75. package/src/app/recordUi.cache.js +35 -0
  76. package/src/app/recordUi.js +11 -0
  77. package/src/app/routes/RouteSurface.js +1 -0
  78. package/src/app/routes/routes.js +1 -0
  79. package/src/app/runtimeState.js +54 -0
  80. package/src/app/schemaCurrentDeclaration.js +69 -0
  81. package/src/app/schemaFactoryLocalCreateCommand.js +101 -0
  82. package/src/app/schemaFactoryViewerProof.case.mjs +134 -0
  83. package/src/app/schemaFactoryViewerProof.js +20 -0
  84. package/src/app/schemaNavigationCommand.js +285 -0
  85. package/src/app/schemaNavigationMaterialization.js +171 -0
  86. package/src/app/schemaNavigationRuntimeCatalog.js +25 -0
  87. package/src/app/schemaNavigationState.js +66 -0
  88. package/src/app/schemaReadingContractQualification.js +91 -0
  89. package/src/app/schemaSourceRecovery.js +373 -0
  90. package/src/app/scrollPersistence.js +30 -0
  91. package/src/app/semanticOperationHistory.js +18 -0
  92. package/src/app/shareActionCommand.js +55 -0
  93. package/src/app/shareProjection.js +190 -0
  94. package/src/app/shell/AppShell.js +1 -0
  95. package/src/app/shell/Header.js +1 -0
  96. package/src/app/shell/Navigation.js +1 -0
  97. package/src/app/shell/SurfaceSwitcher.js +1 -0
  98. package/src/app/sourceTransportRefresh.js +176 -0
  99. package/src/app/startupOwnership.js +40 -0
  100. package/src/app/startupPresentation.case.mjs +34 -0
  101. package/src/app/startupPresentation.js +33 -0
  102. package/src/app/startupPresentation.views.jsx +21 -0
  103. package/src/app/startupRenderPhase.js +9 -0
  104. package/src/app/startupWorkspaceCommand.js +62 -0
  105. package/src/app/startupWorkspaceConfigApplication.js +49 -0
  106. package/src/app/statePersistenceScheduler.js +106 -0
  107. package/src/app/tiinexAppConfigPlan.js +108 -0
  108. package/src/app/tiinexAppConfigSource.js +349 -0
  109. package/src/app/tiinexAppStartupSource.js +79 -0
  110. package/src/app/tiinexHostedWorkspaceConventions.js +572 -0
  111. package/src/app/timePortalHistoricalRead.js +114 -0
  112. package/src/app/timePortalSnapshotResolution.js +53 -0
  113. package/src/app/urlMaterialCommand.js +24 -0
  114. package/src/app/useCanonicalPlacementSelectionOptions.js +9 -0
  115. package/src/app/useCanonicalReferenceSelectionOptions.js +8 -0
  116. package/src/app/useLocalMaterialIntake.js +68 -0
  117. package/src/app/useTimePortalProductController.jsx +111 -0
  118. package/src/app/useWorkspaceEntrypointIntake.js +77 -0
  119. package/src/app/useWorkspaceSelectionProductController.jsx +21 -0
  120. package/src/app/viewState.js +35 -0
  121. package/src/app/viewport.js +21 -0
  122. package/src/app/visualDormancy.js +286 -0
  123. package/src/app/workspaceContinuityNotices.js +32 -0
  124. package/src/app/workspaceDisplayCounts.js +9 -0
  125. package/src/app/workspaceEntrypointIntakeCommand.js +87 -0
  126. package/src/app/workspaceEntrypointProductRouting.case.mjs +20 -0
  127. package/src/app/workspaceExportCommand.js +21 -0
  128. package/src/app/workspaceExportDownload.js +23 -0
  129. package/src/app/workspaceExportExecutionCommand.js +10 -0
  130. package/src/app/workspaceGithubPublication.js +237 -0
  131. package/src/app/workspaceHandoffExport.js +56 -0
  132. package/src/app/workspaceHomeTarget.js +9 -0
  133. package/src/app/workspaceMulticolumn.js +113 -0
  134. package/src/app/workspaceNavigationParity.case.mjs +110 -0
  135. package/src/app/workspaceOpenProgress.js +26 -0
  136. package/src/app/workspacePlacementOptions.js +46 -0
  137. package/src/app/workspaceRecordActions.js +158 -0
  138. package/src/app/workspaceScopedInteraction.js +68 -0
  139. package/src/app/workspaceSelectionOriginContext.js +29 -0
  140. package/src/app/workspaceSelectionSession.js +54 -0
  141. package/src/app/workspaceSourceCloseCommand.js +25 -0
  142. package/src/app/workspaceSpineProductRouting.case.mjs +22 -0
  143. package/src/app/workspaceStartupTransition.js +32 -0
  144. package/src/app/workspaceWindow.js +85 -0
  145. package/src/artifacts/artifact.fixture.js +1 -0
  146. package/src/artifacts/artifact.identity.js +6 -0
  147. package/src/artifacts/artifact.identityAggregation.js +218 -0
  148. package/src/artifacts/artifact.model.js +2 -0
  149. package/src/artifacts/artifact.parse.case.mjs +196 -0
  150. package/src/artifacts/artifact.participantIndex.js +189 -0
  151. package/src/artifacts/fixtures/evidence.trace.md +50 -0
  152. package/src/artifacts/fixtures/topic.trace.md +33 -0
  153. package/src/artifacts/fixtures/unknown-schema.trace.md +25 -0
  154. package/src/audit/audit.findings.js +1 -0
  155. package/src/audit/audit.model.js +2 -0
  156. package/src/audit/audit.plan.js +13 -0
  157. package/src/audit/audit.report.js +12 -0
  158. package/src/audit/audit.severity.js +1 -0
  159. package/src/audit/audit.traverse.js +119 -0
  160. package/src/audit/integrity/auditIntegrity.checks.js +1 -0
  161. package/src/audit/integrity/auditIntegrity.compare.js +1 -0
  162. package/src/audit/lineage/auditLineage.load.js +1 -0
  163. package/src/audit/lineage/auditLineage.plan.js +1 -0
  164. package/src/audit/lineage/auditLineage.resolve.js +12 -0
  165. package/src/audit/sources/auditSources.boundaries.js +1 -0
  166. package/src/audit/sources/auditSources.checks.js +1 -0
  167. package/src/audit/validation/auditValidation.recheck.js +1 -0
  168. package/src/audit/validation/auditValidation.run.js +1 -0
  169. package/src/build.identity.js +15 -0
  170. package/src/commands/command.vocabulary.js +14 -0
  171. package/src/conformance/conformance.fixtures.js +151 -0
  172. package/src/conformance/conformance.run.js +238 -0
  173. package/src/data/applicationDataStore.js +23 -0
  174. package/src/data/companionAccess.js +35 -0
  175. package/src/diagnostics/events.js +1 -0
  176. package/src/diagnostics/invariant.js +1 -0
  177. package/src/diagnostics/schemaBindingChecks.js +1 -0
  178. package/src/diagnostics/schemaModuleChecks.js +1 -0
  179. package/src/diagnostics/sourceBoundaryChecks.js +5 -0
  180. package/src/diagnostics/sourceTransport.report.js +190 -0
  181. package/src/discovery/discovery.controls.js +7 -0
  182. package/src/export/export.plan.js +182 -0
  183. package/src/export/handoff.plan.js +50 -0
  184. package/src/export/package.builder.case.mjs +97 -0
  185. package/src/export/package.controlTopology.case.mjs +130 -0
  186. package/src/export/package.zip.case.mjs +33 -0
  187. package/src/graph/artifactGraph.model.js +344 -0
  188. package/src/graph/artifactGraph.project.js +139 -0
  189. package/src/graph/artifactGraph.worker.js +10 -0
  190. package/src/i18n/i18n.keys.js +1 -0
  191. package/src/i18n/i18n.provider.js +1 -0
  192. package/src/i18n/i18n.resolve.js +5 -0
  193. package/src/i18n/locales/en/common.json +4 -0
  194. package/src/i18n/locales/en/schemas/evidence.json +3 -0
  195. package/src/i18n/locales/en/schemas/presentation-surface.json +3 -0
  196. package/src/i18n/locales/en/schemas/preservation.json +3 -0
  197. package/src/i18n/locales/en/schemas/root.json +3 -0
  198. package/src/i18n/locales/en/schemas/schema-module.json +3 -0
  199. package/src/i18n/locales/en/schemas/topic.json +3 -0
  200. package/src/i18n/locales/en/surfaces/audit.json +3 -0
  201. package/src/i18n/locales/en/surfaces/create.json +3 -0
  202. package/src/i18n/locales/en/surfaces/detail.json +3 -0
  203. package/src/i18n/locales/en/surfaces/display-options.json +3 -0
  204. package/src/i18n/locales/en/surfaces/edit.json +3 -0
  205. package/src/i18n/locales/en/surfaces/feed.json +3 -0
  206. package/src/i18n/locales/en/surfaces/lineage.json +3 -0
  207. package/src/i18n/locales/en/surfaces/preview.json +3 -0
  208. package/src/i18n/locales/en/surfaces/share.json +3 -0
  209. package/src/i18n/locales/en/surfaces/source-settings.json +3 -0
  210. package/src/i18n/locales/en/surfaces/tree.json +3 -0
  211. package/src/i18n/locales/sv/common.json +4 -0
  212. package/src/i18n/locales/sv/schemas/evidence.json +3 -0
  213. package/src/i18n/locales/sv/schemas/presentation-surface.json +3 -0
  214. package/src/i18n/locales/sv/schemas/preservation.json +3 -0
  215. package/src/i18n/locales/sv/schemas/root.json +3 -0
  216. package/src/i18n/locales/sv/schemas/schema-module.json +3 -0
  217. package/src/i18n/locales/sv/schemas/topic.json +3 -0
  218. package/src/i18n/locales/sv/surfaces/audit.json +3 -0
  219. package/src/i18n/locales/sv/surfaces/create.json +3 -0
  220. package/src/i18n/locales/sv/surfaces/detail.json +3 -0
  221. package/src/i18n/locales/sv/surfaces/display-options.json +3 -0
  222. package/src/i18n/locales/sv/surfaces/edit.json +3 -0
  223. package/src/i18n/locales/sv/surfaces/feed.json +3 -0
  224. package/src/i18n/locales/sv/surfaces/lineage.json +3 -0
  225. package/src/i18n/locales/sv/surfaces/preview.json +3 -0
  226. package/src/i18n/locales/sv/surfaces/share.json +3 -0
  227. package/src/i18n/locales/sv/surfaces/source-settings.json +3 -0
  228. package/src/i18n/locales/sv/surfaces/tree.json +3 -0
  229. package/src/index.js +10 -0
  230. package/src/integrity/integrity.testFixture.js +9 -0
  231. package/src/interaction/interaction.spine.js +12 -0
  232. package/src/lineage/lineage.audit.js +1 -0
  233. package/src/lineage/lineage.edges.js +1 -0
  234. package/src/main.js +319 -0
  235. package/src/main.jsx +34 -0
  236. package/src/multiverse/multiverse.model.js +10 -0
  237. package/src/parity/poc.m1ParityScenarios.js +42 -0
  238. package/src/parity/poc.parityLedger.js +261 -0
  239. package/src/publication/publication.githubSocialContract.case.mjs +247 -0
  240. package/src/publication/publication.preflight.case.mjs +64 -0
  241. package/src/react/TiinexApplication.jsx +39 -0
  242. package/src/react/VerseHost.jsx +29 -0
  243. package/src/react/applicationDataContext.jsx +30 -0
  244. package/src/react.js +2 -0
  245. package/src/readers/modes/audit.reader.js +1 -0
  246. package/src/readers/modes/detail.reader.js +1 -0
  247. package/src/readers/modes/handover.reader.js +1 -0
  248. package/src/readers/modes/mobile.reader.js +1 -0
  249. package/src/readers/modes/print.reader.js +1 -0
  250. package/src/readers/modes/scan.reader.js +1 -0
  251. package/src/readers/reader.model.js +1 -0
  252. package/src/readers/reader.resolve.js +2 -0
  253. package/src/reingest/reingest.plan.case.mjs +65 -0
  254. package/src/runtime.js +54 -0
  255. package/src/schemas/README.md +99 -0
  256. package/src/schemas/coordination/handoff/tiinex.handoff.v1.schema.md +614 -0
  257. package/src/schemas/coordination/project/tiinex.project.v1.schema.md +311 -0
  258. package/src/schemas/core/decision/tiinex.decision.v1.schema.md +227 -0
  259. package/src/schemas/core/evidence/tiinex.evidence.v1.schema.md +318 -0
  260. package/src/schemas/core/feedback/tiinex.feedback.v1.schema.md +243 -0
  261. package/src/schemas/core/interpretation/.transitions/evidence-to-interpretation-transition-definition.trace.md +102 -0
  262. package/src/schemas/core/interpretation/tiinex.interpretation.v1.schema.md +308 -0
  263. package/src/schemas/core/preservation/tiinex.preservation.v1.schema.md +312 -0
  264. package/src/schemas/core/relation/.generation/reference-relation-generation-authority.trace.md +185 -0
  265. package/src/schemas/core/relation/.transitions/topic-references-task-transition-definition.trace.md +119 -0
  266. package/src/schemas/core/relation/tiinex.relation.v1.schema.md +240 -0
  267. package/src/schemas/core/relation/workspace/representation/tiinex.workspace.representation.v1.schema.md +550 -0
  268. package/src/schemas/core/signal/tiinex.signal.v1.schema.md +239 -0
  269. package/src/schemas/core/task/.transitions/create-task-transition-definition.trace.md +93 -0
  270. package/src/schemas/core/task/.transitions/topic-to-task-transition-definition.trace.md +102 -0
  271. package/src/schemas/core/task/task-semantic-package.trace.md +53 -0
  272. package/src/schemas/core/task/tiinex.task.v1-transitions.trace.md +33 -0
  273. package/src/schemas/core/task/tiinex.task.v1.authoring.js +65 -0
  274. package/src/schemas/core/task/tiinex.task.v1.schema.md +229 -0
  275. package/src/schemas/core/topic/.transitions/create-topic-transition-definition.trace.md +93 -0
  276. package/src/schemas/core/topic/tiinex.topic.v1-transitions.trace.md +33 -0
  277. package/src/schemas/core/topic/tiinex.topic.v1.schema.md +197 -0
  278. package/src/schemas/core/topic/topic-semantic-package.trace.md +53 -0
  279. package/src/schemas/discovery/finding/tiinex.discovery.finding.v1.schema.md +240 -0
  280. package/src/schemas/discovery/tiinex.discovery.v1.schema.md +294 -0
  281. package/src/schemas/manifest.json +367 -0
  282. package/src/schemas/origins.js +46 -0
  283. package/src/schemas/party/organization/tiinex.party.organization.v1.schema.md +290 -0
  284. package/src/schemas/party/role/tiinex.party.role.v1.schema.md +298 -0
  285. package/src/schemas/party/tiinex.party.v1.schema.js +14 -0
  286. package/src/schemas/party/tiinex.party.v1.schema.json +23 -0
  287. package/src/schemas/party/tiinex.party.v1.schema.md +311 -0
  288. package/src/schemas/party/tiinex.party.v1.schema.runtime.json +2033 -0
  289. package/src/schemas/party/tiinex.party.v1.schema.source.js +9 -0
  290. package/src/schemas/presentation/surface/tiinex.presentation.surface.v1.schema.md +476 -0
  291. package/src/schemas/reduction/tiinex.reduction.v1.schema.md +248 -0
  292. package/src/schemas/schema/module/tiinex.schema.module.v1.schema.md +465 -0
  293. package/src/schemas/schema.companionContract.case.mjs +259 -0
  294. package/src/schemas/schema.factory.case.mjs +256 -0
  295. package/src/schemas/schema.factory.viewerProjection.js +183 -0
  296. package/src/schemas/schemaMarkdownCatalog.js +19 -0
  297. package/src/schemas/tiinex.root.v1.schema.md +865 -0
  298. package/src/schemas/validation/finding/tiinex.validation.finding.v1.schema.md +309 -0
  299. package/src/schemas/validation/method/tiinex.validation.method.v1.schema.md +280 -0
  300. package/src/schemas/validation/report/tiinex.validation.report.v1.schema.md +300 -0
  301. package/src/schemas/workspace/tiinex.workspace.v1.schema.md +486 -0
  302. package/src/schemas/workspace/workspace.add.views.jsx +327 -0
  303. package/src/schemas/workspace/workspace.audit.views.jsx +160 -0
  304. package/src/schemas/workspace/workspace.auditBadge.views.jsx +98 -0
  305. package/src/schemas/workspace/workspace.canonicalReferenceDialog.views.jsx +63 -0
  306. package/src/schemas/workspace/workspace.canonicalTaskDialog.views.jsx +169 -0
  307. package/src/schemas/workspace/workspace.cardActions.js +9 -0
  308. package/src/schemas/workspace/workspace.cards.views.jsx +146 -0
  309. package/src/schemas/workspace/workspace.chrome.views.jsx +299 -0
  310. package/src/schemas/workspace/workspace.continuationDialog.views.jsx +80 -0
  311. package/src/schemas/workspace/workspace.discovery.views.jsx +63 -0
  312. package/src/schemas/workspace/workspace.discoveryRenderWindow.js +56 -0
  313. package/src/schemas/workspace/workspace.displayOptions.views.jsx +114 -0
  314. package/src/schemas/workspace/workspace.entrypointChoice.views.jsx +30 -0
  315. package/src/schemas/workspace/workspace.exportDialog.controller.jsx +40 -0
  316. package/src/schemas/workspace/workspace.exportDialog.views.jsx +142 -0
  317. package/src/schemas/workspace/workspace.governance.views.jsx +45 -0
  318. package/src/schemas/workspace/workspace.graph.views.jsx +134 -0
  319. package/src/schemas/workspace/workspace.lineage.views.jsx +307 -0
  320. package/src/schemas/workspace/workspace.read.views.jsx +105 -0
  321. package/src/schemas/workspace/workspace.recordActionButton.views.jsx +35 -0
  322. package/src/schemas/workspace/workspace.recordDialogs.views.jsx +257 -0
  323. package/src/schemas/workspace/workspace.selection.views.jsx +14 -0
  324. package/src/schemas/workspace/workspace.sourceReceipt.views.jsx +40 -0
  325. package/src/schemas/workspace/workspace.timePortal.views.jsx +56 -0
  326. package/src/schemas/workspace/workspace.tree.views.jsx +107 -0
  327. package/src/schemas/workspace/workspace.viewFormatting.js +172 -0
  328. package/src/schemas/workspace/workspace.views.jsx +210 -0
  329. package/src/source-settings/sourceSettings.model.js +7 -0
  330. package/src/sources/draft/draft.source.js +1 -0
  331. package/src/sources/github/github.loader.js +204 -0
  332. package/src/sources/github/github.permalink.js +1 -0
  333. package/src/sources/github/github.source.js +1 -0
  334. package/src/sources/github/github.transport.case.mjs +237 -0
  335. package/src/sources/github/github.transport.js +472 -0
  336. package/src/sources/local/local.source.js +1 -0
  337. package/src/sources/source.assetReferences.js +109 -0
  338. package/src/sources/source.boundaries.js +24 -0
  339. package/src/sources/source.identity.js +56 -0
  340. package/src/sources/source.model.case.mjs +26 -0
  341. package/src/sources/source.model.js +56 -0
  342. package/src/sources/source.presenter.js +66 -0
  343. package/src/sources/source.resolve.js +11 -0
  344. package/src/sources/static/static.source.js +1 -0
  345. package/src/sources/transport.policy.case.mjs +39 -0
  346. package/src/sources/transport.policy.js +81 -0
  347. package/src/storage/storage.policy.js +79 -0
  348. package/src/styles/app.css +8699 -0
  349. package/src/styles/responsive.css +10 -0
  350. package/src/styles/theme.css +4 -0
  351. package/src/styles/tokens.css +30 -0
  352. package/src/surfaces/audit/AuditSurface.js +1 -0
  353. package/src/surfaces/audit/audit.model.js +1 -0
  354. package/src/surfaces/audit/audit.render.js +1 -0
  355. package/src/surfaces/contracts.js +45 -0
  356. package/src/surfaces/create/CreateSurface.js +1 -0
  357. package/src/surfaces/create/create.model.js +1 -0
  358. package/src/surfaces/create/create.render.js +1 -0
  359. package/src/surfaces/detail/DetailSurface.js +1 -0
  360. package/src/surfaces/detail/detail.model.js +1 -0
  361. package/src/surfaces/detail/detail.render.js +1 -0
  362. package/src/surfaces/display-options/DisplayOptionsSurface.js +1 -0
  363. package/src/surfaces/display-options/displayOptions.model.js +1 -0
  364. package/src/surfaces/display-options/displayOptions.render.js +1 -0
  365. package/src/surfaces/edit/EditSurface.js +1 -0
  366. package/src/surfaces/edit/edit.model.js +1 -0
  367. package/src/surfaces/edit/edit.render.js +1 -0
  368. package/src/surfaces/feed/FeedSurface.js +1 -0
  369. package/src/surfaces/feed/feed.model.js +1 -0
  370. package/src/surfaces/feed/feed.render.js +1 -0
  371. package/src/surfaces/lineage/LineageSurface.js +1 -0
  372. package/src/surfaces/lineage/lineage.model.js +1 -0
  373. package/src/surfaces/lineage/lineage.render.js +1 -0
  374. package/src/surfaces/preview/PreviewSurface.js +1 -0
  375. package/src/surfaces/preview/preview.model.js +1 -0
  376. package/src/surfaces/preview/preview.render.js +1 -0
  377. package/src/surfaces/registry.js +58 -0
  378. package/src/surfaces/share/ShareSurface.js +1 -0
  379. package/src/surfaces/share/share.model.js +1 -0
  380. package/src/surfaces/share/share.render.js +1 -0
  381. package/src/surfaces/source-settings/SourceSettingsSurface.js +1 -0
  382. package/src/surfaces/source-settings/sourceSettings.model.js +1 -0
  383. package/src/surfaces/source-settings/sourceSettings.render.js +1 -0
  384. package/src/surfaces/surfaceContext.js +1 -0
  385. package/src/surfaces/tree/TreeSurface.js +1 -0
  386. package/src/surfaces/tree/tree.model.js +1 -0
  387. package/src/surfaces/tree/tree.render.js +1 -0
  388. package/src/tooling/portable/adapters/cli/cli.common-output.case.mjs +153 -0
  389. package/src/tooling/portable/adapters/cli/cli.handoff-sibling-allocation.case.mjs +52 -0
  390. package/src/tooling/portable/adapters/cli/cli.run.case.mjs +372 -0
  391. package/src/tooling/portable/adapters/cli/cli.summaryProjection.case.mjs +46 -0
  392. package/src/tooling/portable/audit/audit.capability.case.mjs +45 -0
  393. package/src/tooling/portable/fixtures/legacy-artifacts/collaboration/dogfood/001-tiinex-development-dogfood-collaboration-model.trace.fixture.txt +37 -0
  394. package/src/tooling/portable/fixtures/legacy-artifacts/handoff/tooling/001-v480-tooling-workflow-schema-enablement-handoff.trace.fixture.txt +108 -0
  395. package/src/tooling/portable/fixtures/legacy-artifacts/handoff/tooling/002-v481-tooling-recipient-relative-handoff-material-closure-planner-foundation-handoff.trace.fixture.txt +130 -0
  396. package/src/tooling/portable/fixtures/legacy-artifacts/loom/role/001-loom-role.trace.fixture.txt +61 -0
  397. package/src/tooling/portable/fixtures/legacy-artifacts/sigma/role/001-1-sigma-role.trace.fixture.txt +61 -0
  398. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-1-1-1-1-1-1-site-tooling-v474-loaded-parent-identity-evidence-closure-result.trace.fixture.txt +48 -0
  399. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-1-1-1-1-1-site-tooling-v474-loaded-parent-identity-evidence-closure.trace.fixture.txt +48 -0
  400. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-1-1-1-1-site-tooling-v473-portable-parent-authority-coherence-metadata-fidelity-closure-result.trace.fixture.txt +48 -0
  401. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-1-1-1-site-tooling-v473-portable-parent-authority-coherence-metadata-fidelity-closure.trace.fixture.txt +48 -0
  402. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-1-1-site-tooling-v472-portable-exact-authoring-fidelity-closure-result.trace.fixture.txt +48 -0
  403. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-1-site-tooling-v472-portable-exact-authoring-fidelity-closure.trace.fixture.txt +48 -0
  404. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-site-tooling-v471-portable-lineage-authoring-closure-result.trace.fixture.txt +48 -0
  405. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-site-tooling-v471-portable-lineage-authoring-closure.trace.fixture.txt +39 -0
  406. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/002-1-v475-canonical-artifact-envelope-reference-integrity-validation.trace.fixture.txt +43 -0
  407. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/003-1-v476-canonical-authority-binding-integrity-method-lineage-alloca.trace.fixture.txt +42 -0
  408. package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/027-handoff-package-workspace-archive-and-control-plane-minimality-audit.trace.fixture.txt +56 -0
  409. package/src/tooling/portable/fixtures/legacyArtifactFixtures.mjs +34 -0
  410. package/src/tooling/portable/grounding/grounding.capsule.case.mjs +65 -0
  411. package/src/tooling/portable/grounding/grounding.readiness.case.mjs +543 -0
  412. package/src/tooling/portable/grounding/grounding.semanticIntegration.case.mjs +131 -0
  413. package/src/tooling/portable/handoff/boundedWorkspaceRepresentation.case.mjs +103 -0
  414. package/src/tooling/portable/handoff/carrierLineage.fixedWidth.case.mjs +97 -0
  415. package/src/tooling/portable/handoff/coldStartQualification.case.mjs +293 -0
  416. package/src/tooling/portable/handoff/fixtures/027-invalid-audit-result.fixture.txt +192 -0
  417. package/src/tooling/portable/handoff/fixtures/027-invalid-return-handoff.fixture.txt +92 -0
  418. package/src/tooling/portable/handoff/fixtures/cold-start-qualification.v1.examples.json +60 -0
  419. package/src/tooling/portable/handoff/handoff.manufacture.case.mjs +293 -0
  420. package/src/tooling/portable/handoff/materialClosure.case.mjs +727 -0
  421. package/src/tooling/portable/handoff/multiRootManufacture.case.mjs +615 -0
  422. package/src/tooling/portable/handoff/operatorBridgeCore.case.mjs +205 -0
  423. package/src/tooling/portable/handoff/workspaceLandingPlan.case.mjs +143 -0
  424. package/src/tooling/portable/input/node.input.case.mjs +293 -0
  425. package/src/tooling/portable/lifecycle/lifecycle.readiness.case.mjs +179 -0
  426. package/src/tooling/portable/lineage/fixtures/lineage.integrity.repair-projection.v1.examples.json +605 -0
  427. package/src/tooling/portable/lineage/lineage.integrity.shared-capability.case.mjs +37 -0
  428. package/src/tooling/portable/lineage/publicationProviderReceipt.fixture.mjs +50 -0
  429. package/src/tooling/portable/package/fixtures/reference-relation-generation-authority.trace.md +84 -0
  430. package/src/tooling/portable/package/fixtures/tiinex.root.v1.package-authority.contract-fixture.md +64 -0
  431. package/src/tooling/portable/package/fixtures/tiinex.schema.generation.v1.generation-binding.contract-fixture.md +140 -0
  432. package/src/tooling/portable/package/fixtures/tiinex.schema.transition.companion.v1.contract-fixture.md +73 -0
  433. package/src/tooling/portable/package/fixtures/tiinex.semantic.package.v1.contract-fixture.md +147 -0
  434. package/src/tooling/portable/package/fixtures/tiinex.transition.definition.v1.package-contract-fixture.md +77 -0
  435. package/src/tooling/portable/providers/schema.providers.genericity.case.mjs +31 -0
  436. package/src/tooling/portable/reduction/reduction.preflight.case.mjs +298 -0
  437. package/src/tooling/portable/schema/fixtures/evidence-preservation-body.inheritance-record-fixture.md +65 -0
  438. package/src/tooling/portable/schema/fixtures/tiinex.portal.time.v1.contract-fixture.md +294 -0
  439. package/src/tooling/portable/schema/fixtures/tiinex.root.v1.contract-fixture.md +584 -0
  440. package/src/tooling/portable/schema/fixtures/tiinex.root.v1.machine-shape.contract-fixture.md +44 -0
  441. package/src/tooling/portable/schema/fixtures/tiinex.root.v1.ordinary-target.contract-fixture.md +630 -0
  442. package/src/tooling/portable/schema/fixtures/tiinex.schema.contract.v1.repeated-record.contract-fixture.md +69 -0
  443. package/src/tooling/portable/schema/fixtures/tiinex.schema.generation.v1.repeated-record.contract-fixture.md +98 -0
  444. package/src/tooling/portable/schema/fixtures/tiinex.schema.inheritance.v1.repeated-record.contract-fixture.md +58 -0
  445. package/src/tooling/portable/schema/fixtures/tiinex.task.v1.contract-fixture.md +165 -0
  446. package/src/tooling/portable/schema/fixtures/tiinex.transition.definition.v1.contract-fixture.md +744 -0
  447. package/src/tooling/portable/schema/fixtures/tiinex.transition.definition.v1.field-domain.contract-fixture.md +319 -0
  448. package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.relation.v1.schema.md +240 -0
  449. package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.contract.v1.schema.md +391 -0
  450. package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.generation.v1.schema.md +379 -0
  451. package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.transition.companion.v1.schema.md +265 -0
  452. package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.semantic.package.v1.schema.md +402 -0
  453. package/src/transitions/canonical-schema-cache/52ecdea0a75893882ce282214d155f70e1309c2a/tiinex.topic.v1.schema.md +197 -0
  454. package/src/transitions/canonical-schema-cache/d69b8ff55a56b8cb9282b8684db6a938a4435b94/tiinex.root.v1.schema.md +797 -0
  455. package/src/transitions/canonical-schema-cache/d69b8ff55a56b8cb9282b8684db6a938a4435b94/tiinex.transition.definition.v1.schema.md +1062 -0
  456. package/src/transitions/canonicalTransition.packageContracts.js +22 -0
  457. package/src/transitions/canonicalTransition.productDefaults.js +105 -0
  458. package/src/transitions/canonicalTransition.schemaCache.case.mjs +45 -0
  459. package/src/transitions/canonicalTransition.schemaCache.js +81 -0
  460. package/src/transitions/canonicalTransition.semanticPackage.js +146 -0
  461. package/src/transitions/record.transitions.case.mjs +88 -0
  462. package/src/transitions/transition.authorityRepresentation.js +55 -0
  463. package/src/transitions/transition.availabilityPlanner.js +376 -0
  464. package/src/transitions/transition.availabilitySemantics.js +150 -0
  465. package/src/transitions/transition.definitionReadProjection.js +107 -0
  466. package/src/transitions/transition.definitionRegistry.js +355 -0
  467. package/src/transitions/transition.definitionRegistryAggregation.js +21 -0
  468. package/src/transitions/transition.definitions.js +46 -0
  469. package/src/transitions/transition.explicitGenerationPlanner.js +58 -0
  470. package/src/transitions/transition.generationInputPlanner.js +19 -0
  471. package/src/transitions/transition.interpretationMaterializer.js +2 -0
  472. package/src/transitions/transition.invocationBindingPacket.js +52 -0
  473. package/src/transitions/transition.invocationBindingPlanner.js +467 -0
  474. package/src/transitions/transition.legacyShorthand.js +133 -0
  475. package/src/transitions/transition.localArtifactMaterializers.js +16 -0
  476. package/src/transitions/transition.localCreateCapability.js +111 -0
  477. package/src/transitions/transition.outputMaterializationPlanner.js +336 -0
  478. package/src/transitions/transition.parentReference.js +90 -0
  479. package/src/transitions/transition.presentation.js +43 -0
  480. package/src/transitions/transition.productPreparation.js +377 -0
  481. package/src/transitions/transition.productPresentation.browser.js +28 -0
  482. package/src/transitions/transition.productPresentation.js +55 -0
  483. package/src/transitions/transition.referenceCreateCapability.js +119 -0
  484. package/src/transitions/transition.referenceTarget.js +50 -0
  485. package/src/transitions/transition.relationMaterializer.js +2 -0
  486. package/src/transitions/transition.resultSemantics.js +453 -0
  487. package/src/transitions/transition.taskMaterializer.js +2 -0
  488. package/src/transitions/transition.topicMaterializer.js +2 -0
  489. package/src/transitions/transition.validate.case.mjs +58 -0
  490. package/src/ui/cards/ArtifactCard.js +1 -0
  491. package/src/ui/cards/SchemaCard.js +1 -0
  492. package/src/ui/cards/SourceCard.js +1 -0
  493. package/src/ui/dialog.presenter.js +24 -0
  494. package/src/ui/feedback/DegradedNotice.js +1 -0
  495. package/src/ui/feedback/EmptyState.js +1 -0
  496. package/src/ui/feedback/ValidationNotice.js +1 -0
  497. package/src/ui/forms/FormRenderer.js +1 -0
  498. package/src/ui/forms/fields/MarkdownField.js +1 -0
  499. package/src/ui/forms/fields/SelectField.js +1 -0
  500. package/src/ui/forms/fields/SourcePickerField.js +1 -0
  501. package/src/ui/forms/fields/TextField.js +1 -0
  502. package/src/ui/icon.paths.js +37 -0
  503. package/src/ui/layout/Panel.js +1 -0
  504. package/src/ui/layout/ResponsiveFrame.js +1 -0
  505. package/src/ui/layout/SplitView.js +1 -0
  506. package/src/ui/layout/Stack.js +1 -0
  507. package/src/ui/panels/DetailPanel.js +1 -0
  508. package/src/ui/panels/LineagePanel.js +1 -0
  509. package/src/ui/panels/SourcePanel.js +1 -0
  510. package/src/ui/primitives/Badge.js +1 -0
  511. package/src/ui/primitives/Badge.jsx +5 -0
  512. package/src/ui/primitives/Button.js +1 -0
  513. package/src/ui/primitives/Button.jsx +12 -0
  514. package/src/ui/primitives/Card.js +1 -0
  515. package/src/ui/primitives/Field.js +1 -0
  516. package/src/ui/primitives/Field.jsx +21 -0
  517. package/src/ui/primitives/Icon.jsx +90 -0
  518. package/src/ui/primitives/Modal.jsx +27 -0
  519. package/src/validation/i18n.js +37 -0
  520. package/src/validation/validateArtifact.case.mjs +41 -0
  521. package/src/verses/column/ColumnVerse.js +1 -0
  522. package/src/verses/column/column.model.js +6 -0
  523. package/src/verses/column/column.project.js +7 -0
  524. package/src/verses/context.js +26 -0
  525. package/src/verses/contracts.js +1 -0
  526. package/src/verses/hostRegistry.js +47 -0
  527. package/src/verses/registry.js +22 -0
  528. package/src/verses/universe.model.js +8 -0
  529. package/src/verses/universe.presenter.js +8 -0
  530. package/src/verses/universe.project.js +12 -0
  531. package/src/viewer.js +34 -0
  532. package/src/workspace.model.js +5 -0
  533. package/src/workspaces/workspace.actions.js +1 -0
  534. package/src/workspaces/workspace.artifactActions.js +56 -0
  535. package/src/workspaces/workspace.auditView.js +153 -0
  536. package/src/workspaces/workspace.candidates.js +149 -0
  537. package/src/workspaces/workspace.config.js +153 -0
  538. package/src/workspaces/workspace.configuredSource.js +68 -0
  539. package/src/workspaces/workspace.discoveryProgress.js +34 -0
  540. package/src/workspaces/workspace.discoveryView.js +386 -0
  541. package/src/workspaces/workspace.displayFilters.js +63 -0
  542. package/src/workspaces/workspace.displayOptions.js +58 -0
  543. package/src/workspaces/workspace.emptyStateCopy.js +24 -0
  544. package/src/workspaces/workspace.entrypointLifecycle.js +131 -0
  545. package/src/workspaces/workspace.entrypointViewIntent.js +83 -0
  546. package/src/workspaces/workspace.entrypoints.js +157 -0
  547. package/src/workspaces/workspace.feedSort.js +152 -0
  548. package/src/workspaces/workspace.import.js +212 -0
  549. package/src/workspaces/workspace.importConflicts.js +200 -0
  550. package/src/workspaces/workspace.importLifecycle.case.mjs +103 -0
  551. package/src/workspaces/workspace.lifecycle.case.mjs +353 -0
  552. package/src/workspaces/workspace.lifecycle.js +357 -0
  553. package/src/workspaces/workspace.lineageView.js +244 -0
  554. package/src/workspaces/workspace.localSourceLifecycle.js +91 -0
  555. package/src/workspaces/workspace.materialLedger.js +110 -0
  556. package/src/workspaces/workspace.materialReconciliation.case.mjs +164 -0
  557. package/src/workspaces/workspace.materialReconciliation.js +390 -0
  558. package/src/workspaces/workspace.memberIdentity.js +140 -0
  559. package/src/workspaces/workspace.model.js +2 -0
  560. package/src/workspaces/workspace.navigation.js +20 -0
  561. package/src/workspaces/workspace.openSemantics.js +33 -0
  562. package/src/workspaces/workspace.pathTree.js +132 -0
  563. package/src/workspaces/workspace.persistence.case.mjs +271 -0
  564. package/src/workspaces/workspace.persistence.js +469 -0
  565. package/src/workspaces/workspace.persistenceCache.js +41 -0
  566. package/src/workspaces/workspace.persistenceClear.js +45 -0
  567. package/src/workspaces/workspace.persistencePresentation.js +93 -0
  568. package/src/workspaces/workspace.persistenceRecovery.js +147 -0
  569. package/src/workspaces/workspace.persistenceRouteCache.js +82 -0
  570. package/src/workspaces/workspace.publicationReceipts.case.mjs +36 -0
  571. package/src/workspaces/workspace.publicationReceipts.js +56 -0
  572. package/src/workspaces/workspace.recoverabilityView.js +264 -0
  573. package/src/workspaces/workspace.route.js +432 -0
  574. package/src/workspaces/workspace.runtimeCanonical.js +18 -0
  575. package/src/workspaces/workspace.sourceMaterial.js +71 -0
  576. package/src/workspaces/workspace.sourceRecordPath.js +5 -0
  577. package/src/workspaces/workspace.sourceRecords.js +75 -0
  578. package/src/workspaces/workspace.store.js +3 -0
  579. package/src/workspaces/workspace.summary.js +116 -0
  580. package/src/workspaces/workspace.timePortal.js +137 -0
@@ -0,0 +1,22 @@
1
+ import rootMarkdown from './canonical-schema-cache/d69b8ff55a56b8cb9282b8684db6a938a4435b94/tiinex.root.v1.schema.md?raw';
2
+ import transitionDefinitionMarkdown from './canonical-schema-cache/d69b8ff55a56b8cb9282b8684db6a938a4435b94/tiinex.transition.definition.v1.schema.md?raw';
3
+ import semanticPackageMarkdown from './canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.semantic.package.v1.schema.md?raw';
4
+ import schemaTransitionCompanionMarkdown from './canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.transition.companion.v1.schema.md?raw';
5
+
6
+ export const CANONICAL_TRANSITION_PACKAGE_CONTRACT_SOURCES = Object.freeze({
7
+ root: source('tiinex.root.v1', 'd69b8ff55a56b8cb9282b8684db6a938a4435b94', '.topics/.schemas/tiinex.root.v1.schema.md', '7078e4832872be0df0df4ee944ee1bcd1d886f12', '79843e23d6e4142d3c1c3281457ec18fcee8104297f4e6d98096c3b04809a28c'),
8
+ semanticPackage: source('tiinex.semantic.package.v1', '053d46ce082d4ec261b82abc44ecca403d61e240', '.topics/.schemas/package/semantic/tiinex.semantic.package.v1.schema.md', '5686051540603e05d483dc527af27b8e69ffee36', '5a457d9a7a4f6b9281819d2c1e1bc80e7d4f3ea15069285399fce4f7a28c1502'),
9
+ schemaTransitionCompanion: source('tiinex.schema.transition.companion.v1', '053d46ce082d4ec261b82abc44ecca403d61e240', '.topics/.schemas/schema/transition/companion/tiinex.schema.transition.companion.v1.schema.md', '1b45d674c3f8b553b9a26f2e9983d2ccf4197cca', 'f78dbf800c3080d6f0ab5832a31e793278ba723796996aae57a6a82a4a5c8f4a'),
10
+ transitionDefinition: source('tiinex.transition.definition.v1', 'd69b8ff55a56b8cb9282b8684db6a938a4435b94', '.topics/.schemas/transition/definition/tiinex.transition.definition.v1.schema.md', '548dac027abcc4fddf918e294a80b5aca1603c46', '4be6d46edcdaf48c2ea6bca6fb3c5760959ed61e6d3849bd13bb8bbb117c0ce5')
11
+ });
12
+
13
+ export const BUNDLED_CANONICAL_TRANSITION_PACKAGE_CONTRACTS = Object.freeze({
14
+ root: rootMarkdown,
15
+ semanticPackage: semanticPackageMarkdown,
16
+ schemaTransitionCompanion: schemaTransitionCompanionMarkdown,
17
+ transitionDefinition: transitionDefinitionMarkdown
18
+ });
19
+
20
+ function source(schemaId, commit, path, gitBlob, sha256) {
21
+ return Object.freeze({ schemaId, repository: 'Tiinex/docs', commit, path, gitBlob, sha256, sourceQualification: 'source-qualified-canonical-snapshot' });
22
+ }
@@ -0,0 +1,105 @@
1
+ import taskMarkdown from '../schemas/core/task/tiinex.task.v1.schema.md?raw';
2
+ import topicMarkdown from '../schemas/core/topic/tiinex.topic.v1.schema.md?raw';
3
+ import topicCanonicalMarkdown from './canonical-schema-cache/52ecdea0a75893882ce282214d155f70e1309c2a/tiinex.topic.v1.schema.md?raw';
4
+ import taskPackageMarkdown from '../schemas/core/task/task-semantic-package.trace.md?raw';
5
+ import taskCompanionMarkdown from '../schemas/core/task/tiinex.task.v1-transitions.trace.md?raw';
6
+ import topicPackageMarkdown from '../schemas/core/topic/topic-semantic-package.trace.md?raw';
7
+ import topicCompanionMarkdown from '../schemas/core/topic/tiinex.topic.v1-transitions.trace.md?raw';
8
+ import topicToTaskMarkdown from '../schemas/core/task/.transitions/topic-to-task-transition-definition.trace.md?raw';
9
+ import interpretationMarkdown from '../schemas/core/interpretation/tiinex.interpretation.v1.schema.md?raw';
10
+ import evidenceToInterpretationMarkdown from '../schemas/core/interpretation/.transitions/evidence-to-interpretation-transition-definition.trace.md?raw';
11
+ import createTopicMarkdown from '../schemas/core/topic/.transitions/create-topic-transition-definition.trace.md?raw';
12
+ import createTaskMarkdown from '../schemas/core/task/.transitions/create-task-transition-definition.trace.md?raw';
13
+ import relationMarkdown from './canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.relation.v1.schema.md?raw';
14
+ import schemaContractMarkdown from './canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.contract.v1.schema.md?raw';
15
+ import schemaGenerationMarkdown from './canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.generation.v1.schema.md?raw';
16
+ import topicReferencesTaskMarkdown from '../schemas/core/relation/.transitions/topic-references-task-transition-definition.trace.md?raw';
17
+ import referenceRelationGenerationMarkdown from '../schemas/core/relation/.generation/reference-relation-generation-authority.trace.md?raw';
18
+ import { CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT, CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST } from './canonicalTransition.schemaCache.js';
19
+ import { compileCanonicalTransitionSemanticPackage } from './canonicalTransition.semanticPackage.js';
20
+ import { BUNDLED_CANONICAL_TRANSITION_PACKAGE_CONTRACTS } from './canonicalTransition.packageContracts.js';
21
+
22
+ const bySchema = Object.fromEntries(CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST.map((item) => [item.schemaId, item]));
23
+ export const BUNDLED_CANONICAL_TRANSITION_SCHEMA_CACHE = Object.freeze([
24
+ cacheEntry('tiinex.root.v1', BUNDLED_CANONICAL_TRANSITION_PACKAGE_CONTRACTS.root),
25
+ cacheEntry('tiinex.transition.definition.v1', BUNDLED_CANONICAL_TRANSITION_PACKAGE_CONTRACTS.transitionDefinition),
26
+ cacheEntry('tiinex.task.v1', taskMarkdown),
27
+ cacheEntry('tiinex.topic.v1', topicCanonicalMarkdown),
28
+ cacheEntry('tiinex.interpretation.v1', interpretationMarkdown),
29
+ cacheEntry('tiinex.relation.v1', relationMarkdown),
30
+ cacheEntry('tiinex.schema.contract.v1', schemaContractMarkdown),
31
+ cacheEntry('tiinex.schema.generation.v1', schemaGenerationMarkdown)
32
+ ]);
33
+ export const BUNDLED_CANONICAL_TRANSITION_SEMANTIC_PACKAGE = compileCanonicalTransitionSemanticPackage({
34
+ contracts: BUNDLED_CANONICAL_TRANSITION_PACKAGE_CONTRACTS,
35
+ materials: {
36
+ taskPackage: taskPackageMarkdown,
37
+ taskSchema: taskMarkdown,
38
+ taskCompanion: taskCompanionMarkdown,
39
+ transition: topicToTaskMarkdown,
40
+ topicPackage: topicPackageMarkdown,
41
+ topicSchema: topicMarkdown,
42
+ topicCompanion: topicCompanionMarkdown
43
+ }
44
+ });
45
+ const semanticPackageDefinitions = BUNDLED_CANONICAL_TRANSITION_SEMANTIC_PACKAGE.compilation.status === 'valid'
46
+ ? BUNDLED_CANONICAL_TRANSITION_SEMANTIC_PACKAGE.definitions
47
+ : Object.freeze([]);
48
+ function siteLocalDefinition(id, title, path, markdown, extra = {}) {
49
+ return Object.freeze({
50
+ id: `bundled-transition:${id}`,
51
+ title,
52
+ path,
53
+ markdown,
54
+ schemaId: 'tiinex.transition.definition.v1',
55
+ sourceMode: 'bundled-canonical-transition-definition',
56
+ sourceQualification: 'site-local-definition-source-qualified',
57
+ source: Object.freeze({ id: `tiinex-site-local-transition:${id}`, adapterId: 'static', sourceKind: 'bundled-canonical', sourceMode: 'bundled-canonical-transition-definition', sourceArtifactPath: path }),
58
+ ...extra
59
+ });
60
+ }
61
+ const siteLocalUseAsDefinition = siteLocalDefinition(
62
+ 'evidence-to-interpretation:v1',
63
+ 'Evidence to Interpretation',
64
+ 'src/schemas/core/interpretation/.transitions/evidence-to-interpretation-transition-definition.trace.md',
65
+ evidenceToInterpretationMarkdown
66
+ );
67
+ const siteLocalCreateTopicDefinition = siteLocalDefinition(
68
+ 'create-topic:v1',
69
+ 'Create standalone Topic',
70
+ 'src/schemas/core/topic/.transitions/create-topic-transition-definition.trace.md',
71
+ createTopicMarkdown
72
+ );
73
+ const REFERENCE_GENERATION_REFERENCE = 'site-local:src/schemas/core/relation/.generation/reference-relation-generation-authority.trace.md';
74
+ const siteLocalReferenceDefinition = siteLocalDefinition(
75
+ 'topic-references-task:v1',
76
+ 'Topic references Task',
77
+ 'src/schemas/core/relation/.transitions/topic-references-task-transition-definition.trace.md',
78
+ topicReferencesTaskMarkdown,
79
+ Object.freeze({ generationMaterials: Object.freeze([Object.freeze({
80
+ id: 'tiinex-site-local-generation:topic-task-reference:v1',
81
+ path: 'src/schemas/core/relation/.generation/reference-relation-generation-authority.trace.md',
82
+ url: REFERENCE_GENERATION_REFERENCE,
83
+ reference: REFERENCE_GENERATION_REFERENCE,
84
+ markdown: referenceRelationGenerationMarkdown,
85
+ source: Object.freeze({ id: 'tiinex-site-local-generation:topic-task-reference:v1', adapterId: 'static', sourceKind: 'bundled-canonical', sourceMode: 'site-local-generation-authority', sourceArtifactPath: 'src/schemas/core/relation/.generation/reference-relation-generation-authority.trace.md' })
86
+ })]) })
87
+ );
88
+ const siteLocalCreateTaskDefinition = siteLocalDefinition(
89
+ 'create-task:v1',
90
+ 'Create standalone Task',
91
+ 'src/schemas/core/task/.transitions/create-task-transition-definition.trace.md',
92
+ createTaskMarkdown
93
+ );
94
+ export const BUNDLED_CANONICAL_TRANSITION_DEFINITIONS = Object.freeze([
95
+ ...semanticPackageDefinitions,
96
+ siteLocalUseAsDefinition,
97
+ siteLocalReferenceDefinition,
98
+ siteLocalCreateTopicDefinition,
99
+ siteLocalCreateTaskDefinition
100
+ ]);
101
+
102
+ function cacheEntry(schemaId, markdown) {
103
+ const expected = bySchema[schemaId];
104
+ return Object.freeze({ ...expected, markdown, sourceQualification: 'source-qualified-cache', cacheCommit: expected?.commit || CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT });
105
+ }
@@ -0,0 +1,45 @@
1
+ import assert from 'node:assert/strict';
2
+ import fs from 'node:fs';
3
+ import {
4
+ CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT,
5
+ CANONICAL_TOPIC_SCHEMA_CACHE_COMMIT,
6
+ CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT,
7
+ CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST,
8
+ gitBlobSha1,
9
+ qualifyCanonicalTransitionSchemaCache
10
+ } from './canonicalTransition.schemaCache.js';
11
+
12
+ const fileBySchema = Object.freeze({
13
+ 'tiinex.root.v1': new URL(`./canonical-schema-cache/${CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT}/tiinex.root.v1.schema.md`, import.meta.url),
14
+ 'tiinex.transition.definition.v1': new URL(`./canonical-schema-cache/${CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT}/tiinex.transition.definition.v1.schema.md`, import.meta.url),
15
+ 'tiinex.task.v1': new URL('../schemas/core/task/tiinex.task.v1.schema.md', import.meta.url),
16
+ 'tiinex.topic.v1': new URL(`./canonical-schema-cache/${CANONICAL_TOPIC_SCHEMA_CACHE_COMMIT}/tiinex.topic.v1.schema.md`, import.meta.url),
17
+ 'tiinex.interpretation.v1': new URL('../schemas/core/interpretation/tiinex.interpretation.v1.schema.md', import.meta.url),
18
+ 'tiinex.relation.v1': new URL(`./canonical-schema-cache/${CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT}/tiinex.relation.v1.schema.md`, import.meta.url),
19
+ 'tiinex.schema.contract.v1': new URL(`./canonical-schema-cache/${CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT}/tiinex.schema.contract.v1.schema.md`, import.meta.url),
20
+ 'tiinex.schema.generation.v1': new URL(`./canonical-schema-cache/${CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT}/tiinex.schema.generation.v1.schema.md`, import.meta.url)
21
+ });
22
+ const entries = CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST.map((item) => {
23
+ const markdown = fs.readFileSync(fileBySchema[item.schemaId], 'utf8');
24
+ assert.equal(gitBlobSha1(markdown), item.gitBlob, `${item.schemaId} cached bytes must retain exact Git blob identity`);
25
+ return { ...item, markdown, sourceQualification: 'source-qualified-cache' };
26
+ });
27
+ assert.deepEqual(entries.map((item) => item.gitBlob), [
28
+ '7078e4832872be0df0df4ee944ee1bcd1d886f12',
29
+ '548dac027abcc4fddf918e294a80b5aca1603c46',
30
+ 'e4d545ad45382a150351ead587339d8b43cc0fb2',
31
+ 'c36472b0d20ad97d01cc1ca78a50fc69ce35fdae',
32
+ '330d8668e78cd6d164a76093982b02f616fd6ab4',
33
+ '46c476c6b24f448f462c9f67e56cb1a40751ee14',
34
+ '02d42cee2e797c770f9e5596da9afdf8368c7c9c',
35
+ '46d803c0e17371121fa094add7be8f6459b6becb'
36
+ ]);
37
+ const exact = qualifyCanonicalTransitionSchemaCache(entries);
38
+ assert.equal(exact.status, 'qualified');
39
+ assert.equal(exact.sourceQualified, true);
40
+ assert.equal(exact.entries.length, 8);
41
+ const stale = entries.map((item, index) => index === 2 ? { ...item, markdown: `${item.markdown}\n` } : item);
42
+ const rejected = qualifyCanonicalTransitionSchemaCache(stale);
43
+ assert.equal(rejected.sourceQualified, false);
44
+ assert.ok(rejected.findings.some((finding) => finding.code === 'schema-cache-source-identity-mismatch' && finding.schemaId === 'tiinex.task.v1'));
45
+ console.log('canonical Transition product schema-cache source identity: PASS');
@@ -0,0 +1,81 @@
1
+ export const CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT = 'd69b8ff55a56b8cb9282b8684db6a938a4435b94';
2
+ export const CANONICAL_INTERPRETATION_SCHEMA_CACHE_COMMIT = '053d46ce082d4ec261b82abc44ecca403d61e240';
3
+ export const CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT = CANONICAL_INTERPRETATION_SCHEMA_CACHE_COMMIT;
4
+ export const CANONICAL_TOPIC_SCHEMA_CACHE_COMMIT = '52ecdea0a75893882ce282214d155f70e1309c2a';
5
+ export const CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST = Object.freeze([
6
+ Object.freeze({ schemaId: 'tiinex.root.v1', repository: 'Tiinex/docs', commit: CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/tiinex.root.v1.schema.md', gitBlob: '7078e4832872be0df0df4ee944ee1bcd1d886f12' }),
7
+ Object.freeze({ schemaId: 'tiinex.transition.definition.v1', repository: 'Tiinex/docs', commit: CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/transition/definition/tiinex.transition.definition.v1.schema.md', gitBlob: '548dac027abcc4fddf918e294a80b5aca1603c46' }),
8
+ Object.freeze({ schemaId: 'tiinex.task.v1', repository: 'Tiinex/docs', commit: CANONICAL_TRANSITION_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/core/task/tiinex.task.v1.schema.md', gitBlob: 'e4d545ad45382a150351ead587339d8b43cc0fb2' }),
9
+ Object.freeze({ schemaId: 'tiinex.topic.v1', repository: 'Tiinex/docs', commit: CANONICAL_TOPIC_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/core/topic/tiinex.topic.v1.schema.md', gitBlob: 'c36472b0d20ad97d01cc1ca78a50fc69ce35fdae' }),
10
+ Object.freeze({ schemaId: 'tiinex.interpretation.v1', repository: 'Tiinex/docs', commit: CANONICAL_INTERPRETATION_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/core/interpretation/tiinex.interpretation.v1.schema.md', gitBlob: '330d8668e78cd6d164a76093982b02f616fd6ab4' }),
11
+ Object.freeze({ schemaId: 'tiinex.relation.v1', repository: 'Tiinex/docs', commit: CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/relation/tiinex.relation.v1.schema.md', gitBlob: '46c476c6b24f448f462c9f67e56cb1a40751ee14' }),
12
+ Object.freeze({ schemaId: 'tiinex.schema.contract.v1', repository: 'Tiinex/docs', commit: CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/schema/contract/tiinex.schema.contract.v1.schema.md', gitBlob: '02d42cee2e797c770f9e5596da9afdf8368c7c9c' }),
13
+ Object.freeze({ schemaId: 'tiinex.schema.generation.v1', repository: 'Tiinex/docs', commit: CANONICAL_REFERENCE_SCHEMA_CACHE_COMMIT, path: '.topics/.schemas/schema/contract/generation/tiinex.schema.generation.v1.schema.md', gitBlob: '46d803c0e17371121fa094add7be8f6459b6becb' })
14
+ ]);
15
+
16
+ export function qualifyCanonicalTransitionSchemaCache(entries = []) {
17
+ return qualifyCanonicalTransitionSchemaCacheSubset(entries, CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST.map((item) => item.schemaId));
18
+ }
19
+
20
+ export function qualifyCanonicalTransitionSchemaCacheSubset(entries = [], requiredSchemaIds = []) {
21
+ const requested = new Set((Array.isArray(requiredSchemaIds) ? requiredSchemaIds : []).map((value) => String(value || '').trim()).filter(Boolean));
22
+ const expectedEntries = CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST.filter((item) => requested.has(item.schemaId));
23
+ const findings = [], qualified = [];
24
+ for (const expected of expectedEntries) {
25
+ const matches = (Array.isArray(entries) ? entries : []).filter((item) => String(item?.schemaId || '') === expected.schemaId);
26
+ if (matches.length !== 1) {
27
+ findings.push(Object.freeze({ code: matches.length ? 'schema-cache-entry-duplicate' : 'schema-cache-entry-missing', schemaId: expected.schemaId }));
28
+ continue;
29
+ }
30
+ const item = matches[0], markdown = String(item.markdown ?? item.content ?? '');
31
+ const actualBlob = gitBlobSha1(markdown);
32
+ if (String(item.repository || '') !== expected.repository || String(item.commit || '') !== expected.commit || String(item.path || '') !== expected.path || actualBlob !== expected.gitBlob) {
33
+ findings.push(Object.freeze({ code: 'schema-cache-source-identity-mismatch', schemaId: expected.schemaId, expectedBlob: expected.gitBlob, actualBlob }));
34
+ continue;
35
+ }
36
+ qualified.push(Object.freeze({ ...expected, markdown, sourceQualification: 'source-qualified' }));
37
+ }
38
+ const complete = findings.length === 0 && qualified.length === expectedEntries.length && expectedEntries.length === requested.size;
39
+ if (expectedEntries.length !== requested.size) {
40
+ for (const schemaId of requested) if (!CANONICAL_TRANSITION_SCHEMA_CACHE_MANIFEST.some((item) => item.schemaId === schemaId)) findings.push(Object.freeze({ code: 'schema-cache-schema-unregistered', schemaId }));
41
+ }
42
+ return Object.freeze({
43
+ status: complete ? 'qualified' : 'unqualified',
44
+ sourceQualified: complete,
45
+ entries: Object.freeze(qualified),
46
+ findings: Object.freeze(findings)
47
+ });
48
+ }
49
+
50
+ export function gitBlobSha1(text = '') {
51
+ const content = utf8Bytes(String(text));
52
+ const header = utf8Bytes(`blob ${content.length}\0`);
53
+ const bytes = new Uint8Array(header.length + content.length);
54
+ bytes.set(header); bytes.set(content, header.length);
55
+ return sha1Hex(bytes);
56
+ }
57
+
58
+ function utf8Bytes(text) {
59
+ if (typeof TextEncoder !== 'undefined') return new TextEncoder().encode(text);
60
+ const encoded = unescape(encodeURIComponent(text));
61
+ return Uint8Array.from(encoded, (char) => char.charCodeAt(0));
62
+ }
63
+ function sha1Hex(input) {
64
+ const bitLength = input.length * 8, padLength = ((56 - (input.length + 1) % 64) + 64) % 64;
65
+ const data = new Uint8Array(input.length + 1 + padLength + 8); data.set(input); data[input.length] = 0x80;
66
+ const view = new DataView(data.buffer); view.setUint32(data.length - 4, bitLength >>> 0, false); view.setUint32(data.length - 8, Math.floor(bitLength / 0x100000000), false);
67
+ let h0=0x67452301,h1=0xefcdab89,h2=0x98badcfe,h3=0x10325476,h4=0xc3d2e1f0;
68
+ const w = new Uint32Array(80), rol=(n,b)=>((n<<b)|(n>>>(32-b)))>>>0;
69
+ for (let offset=0; offset<data.length; offset+=64) {
70
+ for (let i=0;i<16;i++) w[i]=view.getUint32(offset+i*4,false);
71
+ for (let i=16;i<80;i++) w[i]=rol(w[i-3]^w[i-8]^w[i-14]^w[i-16],1);
72
+ let a=h0,b=h1,c=h2,d=h3,e=h4;
73
+ for (let i=0;i<80;i++) {
74
+ const f=i<20?(b&c)|((~b)&d):i<40?b^c^d:i<60?(b&c)|(b&d)|(c&d):b^c^d;
75
+ const k=i<20?0x5a827999:i<40?0x6ed9eba1:i<60?0x8f1bbcdc:0xca62c1d6;
76
+ const t=(rol(a,5)+f+e+k+w[i])>>>0; e=d; d=c; c=rol(b,30); b=a; a=t;
77
+ }
78
+ h0=(h0+a)>>>0; h1=(h1+b)>>>0; h2=(h2+c)>>>0; h3=(h3+d)>>>0; h4=(h4+e)>>>0;
79
+ }
80
+ return [h0,h1,h2,h3,h4].map((n)=>n.toString(16).padStart(8,'0')).join('');
81
+ }
@@ -0,0 +1,146 @@
1
+ import { compilePortableSchemaContractChain } from '@tiinex/core/tooling/portable/schema/contract.compile.js';
2
+ import { compilePortableSemanticPackage } from '@tiinex/core/tooling/portable/package/semantic.package.js';
3
+
4
+ export const CANONICAL_TRANSITION_TASK_PACKAGE_KEY = 'site-package:task';
5
+ export const CANONICAL_TRANSITION_TOPIC_PACKAGE_KEY = 'site-package:topic';
6
+ export const CANONICAL_TOPIC_TO_TASK_REPRESENTATION_KEY = 'site-transition:topic-to-task:v1';
7
+ export const CANONICAL_TOPIC_TO_TASK_BUNDLED_SOURCE_ID = 'tiinex-site-semantic-package:site-transition:topic-to-task:v1';
8
+ const SITE_SEMANTIC_PACKAGE_SOURCE_ID = 'tiinex-site-semantic-package';
9
+ export const CANONICAL_TOPIC_TO_TASK_BUNDLED_SOURCE_MODE = 'bundled-canonical-transition-definition';
10
+
11
+ const SITE_LOCAL = 'site-local:';
12
+ const paths = Object.freeze({
13
+ taskPackage: 'src/schemas/core/task/task-semantic-package.trace.md',
14
+ taskSchema: 'src/schemas/core/task/tiinex.task.v1.schema.md',
15
+ taskCompanion: 'src/schemas/core/task/tiinex.task.v1-transitions.trace.md',
16
+ transition: 'src/schemas/core/task/.transitions/topic-to-task-transition-definition.trace.md',
17
+ topicPackage: 'src/schemas/core/topic/topic-semantic-package.trace.md',
18
+ topicSchema: 'src/schemas/core/topic/tiinex.topic.v1.schema.md',
19
+ topicCompanion: 'src/schemas/core/topic/tiinex.topic.v1-transitions.trace.md'
20
+ });
21
+
22
+ export const CANONICAL_TRANSITION_SEMANTIC_PACKAGE_PATHS = paths;
23
+
24
+ export function compileCanonicalTransitionSemanticPackage(input = {}) {
25
+ const contracts = compileContracts(input.contracts || {});
26
+ const materials = canonicalPackageMaterials(input.materials || {});
27
+ const compilation = compilePortableSemanticPackage({
28
+ selectedManifest: CANONICAL_TRANSITION_TASK_PACKAGE_KEY,
29
+ materials,
30
+ contracts,
31
+ resolvers: input.resolvers || buildPackageSchemaResolvers(input.contracts?.root, input.materials || {})
32
+ });
33
+ const byKey = new Map(materials.map((material) => [material.id, material]));
34
+ const definitions = (compilation.transitionRegistry || [])
35
+ .filter((entry) => entry.representationQualification === 'valid')
36
+ .map((entry) => definitionFromCompiledEntry(entry, byKey.get(entry.representationKey)))
37
+ .filter(Boolean);
38
+ return Object.freeze({
39
+ compilation,
40
+ definitions: Object.freeze(definitions),
41
+ materials: Object.freeze(materials.map((material) => Object.freeze({
42
+ representationKey: material.id,
43
+ path: material.path,
44
+ reference: material.reference || '',
45
+ source: material.source
46
+ })))
47
+ });
48
+ }
49
+
50
+ function buildPackageSchemaResolvers(rootMarkdown = '', materials = {}) {
51
+ const schemaAuthorities = {};
52
+ for (const markdown of [materials.topicSchema, materials.taskSchema]) {
53
+ const compiled = compilePortableSchemaContractChain([String(rootMarkdown || ''), String(markdown || '')]);
54
+ if (compiled.lineageQualification?.state !== 'valid' || compiled.lineageQualification?.complete !== true || !compiled.schemaId) continue;
55
+ const generation = (compiled.creation?.groups || []).length > 0;
56
+ const fileNaming = (compiled.validation?.groups || []).some((group) => group.name === 'File Naming');
57
+ schemaAuthorities[compiled.schemaId] = Object.freeze({ targetKind: 'artifact', generation, fileNaming, sourceQualification: 'compiled-package-schema-authority' });
58
+ }
59
+ return Object.freeze({ schemaAuthorities: Object.freeze(schemaAuthorities) });
60
+ }
61
+
62
+ function compileContracts(input = {}) {
63
+ const root = String(input.root || '');
64
+ return Object.freeze({
65
+ semanticPackage: compilePortableSchemaContractChain([root, String(input.semanticPackage || '')]),
66
+ schemaTransitionCompanion: compilePortableSchemaContractChain([root, String(input.schemaTransitionCompanion || '')]),
67
+ transitionDefinition: compilePortableSchemaContractChain([root, String(input.transitionDefinition || '')])
68
+ });
69
+ }
70
+
71
+ function canonicalPackageMaterials(input = {}) {
72
+ return [
73
+ material(CANONICAL_TRANSITION_TASK_PACKAGE_KEY, paths.taskPackage, input.taskPackage, paths.taskPackage),
74
+ material('site-schema:task', paths.taskSchema, input.taskSchema, paths.taskSchema, sourceIdentity('tiinex.task.v1')),
75
+ material('site-companion:task', paths.taskCompanion, input.taskCompanion),
76
+ material(CANONICAL_TOPIC_TO_TASK_REPRESENTATION_KEY, paths.transition, input.transition, paths.transition, transitionSource()),
77
+ material(CANONICAL_TRANSITION_TOPIC_PACKAGE_KEY, paths.topicPackage, input.topicPackage, paths.topicPackage),
78
+ material('site-schema:topic', paths.topicSchema, input.topicSchema, paths.topicSchema),
79
+ material('site-companion:topic', paths.topicCompanion, input.topicCompanion)
80
+ ];
81
+ }
82
+
83
+ function material(id, path, markdown, aliasPath = '', source = null) {
84
+ const actualSource = source || Object.freeze({
85
+ id: SITE_SEMANTIC_PACKAGE_SOURCE_ID,
86
+ adapterId: 'static',
87
+ sourceKind: 'bundled-canonical',
88
+ sourceMode: 'semantic-package-locality'
89
+ });
90
+ return Object.freeze({
91
+ id,
92
+ path,
93
+ markdown: String(markdown || ''),
94
+ reference: aliasPath ? `${SITE_LOCAL}${aliasPath}` : '',
95
+ source: actualSource
96
+ });
97
+ }
98
+
99
+ function sourceIdentity(schemaId) {
100
+ return Object.freeze({
101
+ id: SITE_SEMANTIC_PACKAGE_SOURCE_ID,
102
+ adapterId: 'static',
103
+ sourceKind: 'bundled-canonical',
104
+ sourceMode: 'semantic-package-locality',
105
+ schemaId,
106
+ repository: 'Tiinex/docs',
107
+ commit: 'd69b8ff55a56b8cb9282b8684db6a938a4435b94',
108
+ sourceArtifactPath: '.topics/.schemas/core/task/tiinex.task.v1.schema.md',
109
+ gitBlob: 'e4d545ad45382a150351ead587339d8b43cc0fb2'
110
+ });
111
+ }
112
+
113
+ function transitionSource() {
114
+ return Object.freeze({
115
+ id: CANONICAL_TOPIC_TO_TASK_BUNDLED_SOURCE_ID,
116
+ adapterId: 'static',
117
+ sourceKind: 'bundled-canonical',
118
+ sourceMode: CANONICAL_TOPIC_TO_TASK_BUNDLED_SOURCE_MODE,
119
+ semanticPackageRepresentationKey: CANONICAL_TOPIC_TO_TASK_REPRESENTATION_KEY,
120
+ semanticPackageManifestKey: CANONICAL_TRANSITION_TASK_PACKAGE_KEY
121
+ });
122
+ }
123
+
124
+ function definitionFromCompiledEntry(entry = {}, material = null) {
125
+ if (!material) return null;
126
+ const source = Object.freeze({
127
+ ...(material.source || {}),
128
+ sourceArtifactPath: entry.path,
129
+ semanticPackageRepresentationKey: entry.representationKey,
130
+ semanticPackageManifestKey: CANONICAL_TRANSITION_TASK_PACKAGE_KEY,
131
+ packageDiscoveryProvenance: Object.freeze([...(entry.discoveryProvenance || [])]),
132
+ packageAttachmentProvenance: Object.freeze([...(entry.attachmentProvenance || [])])
133
+ });
134
+ return Object.freeze({
135
+ id: `bundled-transition:${entry.representationKey}`,
136
+ title: String(entry.transitionIdentity?.Name || material.title || 'Transition'),
137
+ path: entry.path,
138
+ markdown: material.markdown,
139
+ schemaId: 'tiinex.transition.definition.v1',
140
+ sourceMode: CANONICAL_TOPIC_TO_TASK_BUNDLED_SOURCE_MODE,
141
+ sourceQualification: 'compiled-semantic-package-qualified',
142
+ semanticPackageRepresentationKey: entry.representationKey,
143
+ semanticPackageManifestKey: CANONICAL_TRANSITION_TASK_PACKAGE_KEY,
144
+ source
145
+ });
146
+ }
@@ -0,0 +1,88 @@
1
+ import assert from 'node:assert/strict';
2
+ import { schemaRegistry } from '@tiinex/core/schemas/registry.js';
3
+ import { parseArtifactMarkdown } from '@tiinex/core/artifacts/artifact.parse.js';
4
+ import { rootValidate } from '@tiinex/core/schemas/tiinex.root.v1.validate.js';
5
+ import { resolveLineage } from '@tiinex/core/lineage/lineage.resolve.js';
6
+ import { createContinuationDraft, createReferenceDraft, ensureUniqueTransitionPath, listContinuationTargets, RECORD_TRANSITION_RESULT_SCHEMA_ID } from '@tiinex/core/transitions/record.transitions.js';
7
+
8
+ const targets = listContinuationTargets(schemaRegistry);
9
+ assert(targets.some((target) => target.id === 'tiinex.task.v1'), 'task continuation target must be exposed');
10
+ assert(targets.every((target) => target.id === 'tiinex.task.v1'), 'only schema-honest Task continuation is exposed until other renderers land');
11
+ assert(targets.every((target) => target.contract === 'tiinex.record.transitions.v1'), 'targets must declare transition contract');
12
+
13
+ const parent = {
14
+ id: 'local:ws:notes/example.md',
15
+ title: 'Example artifact',
16
+ summary: 'Example summary',
17
+ path: 'notes/example.md',
18
+ markdown: '# Example artifact\n\nMaterial body',
19
+ kind: 'tiinex.topic.v1',
20
+ schemaId: 'tiinex.topic.v1',
21
+ createdAt: '2026-07-20',
22
+ source: { adapterId: 'local', kind: 'local-session' },
23
+ sourceMode: 'local-files'
24
+ };
25
+
26
+ const continuation = createContinuationDraft(parent, targets.find((target) => target.id === 'tiinex.task.v1'), {}, { clock: () => '2026-07-21T00:00:00.000Z' });
27
+ assert.equal(continuation.schema, RECORD_TRANSITION_RESULT_SCHEMA_ID, 'continuation draft must declare result schema');
28
+ assert.equal(continuation.kind, 'tiinex.task.v1', 'continuation draft must target selected schema');
29
+ assert.equal(continuation.status, 'local', 'continuation must remain local/session');
30
+ assert.equal(continuation.hasContinuityContext, true, 'continuation must claim continuity context');
31
+ assert.equal(continuation.hasIntegrity, true, 'continuation must include draft integrity marker');
32
+ assert.equal(continuation.validation.ok, true, 'continuation must pass transition validation');
33
+ assert(continuation.markdown.includes('Envelope Schema: [tiinex.root.v1]'), 'continuation markdown must include Envelope Schema');
34
+ assert(continuation.markdown.includes('Parent Schema: [tiinex.topic.v1]'), 'continuation markdown must include Parent Schema');
35
+ assert(continuation.markdown.includes('Trace: record:local:ws:notes/example.md'), 'continuation markdown must include parent trace');
36
+ assert(continuation.markdown.includes('Current Schema: [tiinex.task.v1]'), 'continuation markdown must include target schema');
37
+ assert.equal(continuation.path, 'notes/example-artifact--task.trace.md', 'continuation path defaults to parent directory with trace suffix');
38
+ assert.equal(continuation.schemaId, 'tiinex.task.v1', 'continuation record metadata exposes current schema for runtime readmodels');
39
+ assert.equal(continuation.parentSchemaId, 'tiinex.topic.v1', 'continuation record metadata exposes parent schema for runtime readmodels');
40
+ assert.equal(continuation.trace, 'record:local:ws:notes/example.md', 'continuation record metadata exposes parent trace for loaded lineage');
41
+ assert.equal(continuation.origin, 'notes/example.md', 'continuation record metadata exposes parent origin for diagnostics');
42
+ const localLineage = resolveLineage([parent, continuation]);
43
+ assert(localLineage.edges.some((edge) => edge.from === parent.id && edge.to === continuation.path && edge.kind === 'parent'), 'fresh local continuation should resolve to its loaded parent without reparsing during render');
44
+
45
+ const siblingContinuation = createContinuationDraft(parent, targets.find((target) => target.id === 'tiinex.task.v1'), {}, { clock: () => '2026-07-21T00:01:00.000Z', existingRecords: [continuation] });
46
+ assert.notEqual(siblingContinuation.path, continuation.path, 'repeated continuations from same parent must not reuse the same local path');
47
+ assert.equal(siblingContinuation.path, 'notes/example-artifact--task-2.trace.md', 'second continuation uses a deterministic sibling suffix in the parent directory');
48
+ const defensiveContinuation = ensureUniqueTransitionPath(continuation, [continuation]);
49
+ assert.equal(defensiveContinuation.path, 'notes/example-artifact--task-2.trace.md', 'final add path guard prevents lifecycle overwrite when dialogs race');
50
+
51
+ const numberedParent = Object.assign({}, parent, { id: 'numbered', path: '.topics/ai-provenance/12-01-gpt-5-mini.trace.md', title: 'GPT 5 mini' });
52
+ const numberedContinuation = createContinuationDraft(numberedParent, targets.find((target) => target.id === 'tiinex.task.v1'), { title: 'Model follow-up' }, { existingRecords: [], clock: () => '2026-07-21T00:02:00.000Z' });
53
+ assert.equal(numberedContinuation.path, '.topics/ai-provenance/12-01-01-model-follow-up.trace.md', 'dimensioned parents allocate child prefix in same folder');
54
+ const numberedSibling = createContinuationDraft(numberedParent, targets.find((target) => target.id === 'tiinex.task.v1'), { title: 'Model follow-up' }, { existingRecords: [numberedContinuation], clock: () => '2026-07-21T00:03:00.000Z' });
55
+ assert.equal(numberedSibling.path, '.topics/ai-provenance/12-01-02-model-follow-up.trace.md', 'dimensioned siblings increment the lineage child segment');
56
+ const issueCommentParent = Object.assign({}, parent, { id: 'issue-comment-parent', path: '.topics/.github/tiinusen/socials/.issues/3/comment-001-5008615398-recovered-lagar-och-regler.trace.md', title: 'Lagar och regler' });
57
+ const issueDraft = createContinuationDraft(issueCommentParent, targets.find((target) => target.id === 'tiinex.task.v1'), { title: 'Lagar och regler continuation' }, { existingRecords: [issueCommentParent], clock: () => '2026-07-21T00:04:00.000Z' });
58
+ assert.equal(issueDraft.path, '.topics/.github/tiinusen/socials/.issues/3/001-1-lagar-och-regler-continuation.trace.md', 'recovered issue-comment parents still allocate canonical dimension-prefixed child paths');
59
+ const issueSiblingDraft = createContinuationDraft(issueCommentParent, targets.find((target) => target.id === 'tiinex.task.v1'), { title: 'Lagar och regler continuation' }, { existingRecords: [issueCommentParent, issueDraft], clock: () => '2026-07-21T00:05:00.000Z' });
60
+ assert.equal(issueSiblingDraft.path, '.topics/.github/tiinusen/socials/.issues/3/001-2-lagar-och-regler-continuation.trace.md', 'recovered issue-comment parent siblings increment canonical dimension child segment');
61
+ assert.equal(issueDraft.trace, 'record:issue-comment-parent', 'issue draft exposes parent trace on the record metadata');
62
+ const issueLineage = resolveLineage([issueCommentParent, issueDraft]);
63
+ assert(issueLineage.edges.some((edge) => edge.from === issueCommentParent.id && edge.to === issueDraft.path && edge.kind === 'parent'), 'issue-adjacent local continuation should resolve to its loaded parent');
64
+
65
+
66
+ const parsedContinuation = parseArtifactMarkdown(continuation.markdown);
67
+ assert.equal(parsedContinuation.envelope.envelopeSchema.id, 'tiinex.root.v1', 'parsed continuation has envelope schema');
68
+ assert.equal(parsedContinuation.envelope.current.schema.id, 'tiinex.task.v1', 'parsed continuation has current schema');
69
+ assert.equal(parsedContinuation.envelope.current.createdAt, '2026-07-21T00:00:00.000Z', 'parsed continuation has created at');
70
+ assert.equal(parsedContinuation.envelope.parent.schema.id, 'tiinex.topic.v1', 'parsed continuation has parent schema');
71
+ assert.equal(parsedContinuation.hasIntegrity, true, 'parsed continuation has integrity marker');
72
+ assert(!rootValidate(parsedContinuation).some((finding) => finding.severity === 'error'), 'continuation draft must satisfy root-required envelope fields');
73
+
74
+ const reference = createReferenceDraft(parent, {}, { clock: () => '2026-07-21T00:00:00.000Z' });
75
+ assert.equal(reference.kind, 'tiinex.evidence.v1', 'reference draft should materialize as evidence');
76
+ assert.equal(reference.hasIntegrity, true, 'reference must include draft integrity marker');
77
+ assert.equal(reference.validation.ok, true, 'reference must pass transition validation');
78
+ assert(reference.markdown.includes('## Reference'), 'reference draft must contain reference section');
79
+ assert(reference.markdown.includes('## Supported Claim Or Question'), 'reference draft must satisfy Evidence body contract');
80
+ assert.equal(reference.creationValidation.ok, false, 'legacy Site reference draft must not be upgraded to exact canonical creation under v475');
81
+ assert(reference.creationValidation.findings.some((finding) => finding.code.startsWith('creation.continuation-representation.')), 'exact creation validation must expose canonical Parent/footer representation drift');
82
+ assert(reference.markdown.includes('Current Schema: [tiinex.evidence.v1]'), 'reference draft must declare evidence current schema');
83
+ assert(reference.path.startsWith('references/'), 'reference path must be deterministic local reference path');
84
+ const parsedReference = parseArtifactMarkdown(reference.markdown);
85
+ assert.equal(parsedReference.envelope.current.schema.id, 'tiinex.evidence.v1', 'parsed reference has evidence schema');
86
+ assert(!rootValidate(parsedReference).some((finding) => finding.severity === 'error'), 'reference draft must satisfy root-required envelope fields');
87
+
88
+ console.log('✓ record.transitions tests passed');
@@ -0,0 +1,55 @@
1
+ import { C14N_V2_METHOD_ID, canonicalC14nV2SelfState } from '@tiinex/core/integrity/integrity.c14nV2.js';
2
+
3
+ export const EXACT_AUTHORITY_REPRESENTATION_SCHEMA_ID = 'tiinex.site.exact-authority-representation.v1';
4
+ const freeze = Object.freeze;
5
+
6
+ export function qualifyExactAuthorityRepresentation(input = {}) {
7
+ const reference = token(input.reference) || (token(input.path) ? `site-local:${token(input.path)}` : '');
8
+ const path = token(input.path);
9
+ const markdown = String(input.markdown || '');
10
+ if (!reference || !path || !markdown) return unavailable(reference, path, 'authority-representation-input-missing');
11
+ const integrity = canonicalC14nV2SelfState(markdown);
12
+ if (integrity.state !== 'verified' || integrity.method !== C14N_V2_METHOD_ID || !token(integrity.declaredValue)) {
13
+ return unavailable(reference, path, `authority-representation-integrity-${integrity.state || 'unavailable'}`, integrity);
14
+ }
15
+ return freeze({
16
+ schema: EXACT_AUTHORITY_REPRESENTATION_SCHEMA_ID,
17
+ state: 'qualified',
18
+ reason: '',
19
+ reference,
20
+ path,
21
+ method: integrity.method,
22
+ value: integrity.declaredValue,
23
+ integrity: freeze({ state: integrity.state, method: integrity.method, towards: integrity.towards, declaredValue: integrity.declaredValue, computedValue: integrity.computedValue }),
24
+ readOnly: true
25
+ });
26
+ }
27
+
28
+ export function verifyExactAuthorityRepresentation(expected = {}, material = {}) {
29
+ const actual = qualifyExactAuthorityRepresentation(material);
30
+ const match = actual.state === 'qualified'
31
+ && token(expected.reference) === actual.reference
32
+ && token(expected.method) === actual.method
33
+ && token(expected.value) === actual.value;
34
+ return freeze({
35
+ state: match ? 'qualified' : 'mismatch',
36
+ reason: match ? '' : actual.state !== 'qualified' ? actual.reason : 'authority-representation-identity-mismatch',
37
+ expected: freeze({ reference: token(expected.reference), method: token(expected.method), value: token(expected.value) }),
38
+ actual
39
+ });
40
+ }
41
+
42
+ function unavailable(reference = '', path = '', reason = '', integrity = null) {
43
+ return freeze({
44
+ schema: EXACT_AUTHORITY_REPRESENTATION_SCHEMA_ID,
45
+ state: 'unavailable',
46
+ reason,
47
+ reference,
48
+ path,
49
+ method: token(integrity?.method),
50
+ value: token(integrity?.declaredValue),
51
+ integrity: integrity ? freeze({ state: integrity.state || '', method: integrity.method || '', towards: integrity.towards || '', declaredValue: integrity.declaredValue || '', computedValue: integrity.computedValue || '' }) : null,
52
+ readOnly: true
53
+ });
54
+ }
55
+ function token(value = '') { return String(value || '').trim(); }