@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.
- package/LICENSE +201 -0
- package/NOTICE +31 -0
- package/README.md +26 -0
- package/docs/CONSUMER-CONTRACT.md +65 -0
- package/package.json +94 -0
- package/src/acceptance/knownScenarios.case.mjs +48 -0
- package/src/acceptance/knownScenarios.js +89 -0
- package/src/acceptance/postV423CanonicalTransitionProductVerticalSlice.case.mjs +774 -0
- package/src/acceptance/postV437M0ETimePortalProductParityClosure.case.mjs +51 -0
- package/src/acceptance/postV447M0FGithubSocialPublicationProductIntegration.case.mjs +33 -0
- package/src/acceptance/postV450M0ProductAcceptanceHardening.case.mjs +82 -0
- package/src/acceptance/postV470SchemaReadingContractMaterializationIdentitySourceCoalescingAuthorityCorrection.case.mjs +236 -0
- package/src/acceptance/recoveryAcceptance.case.mjs +196 -0
- package/src/adapters/adapter.definition.schema.json +33 -0
- package/src/adapters/archive/archive.adapter.case.mjs +212 -0
- package/src/adapters/export/export.adapter.js +79 -0
- package/src/adapters/git-native/git-native.adapter.js +43 -0
- package/src/adapters/github/github.adapter.case.mjs +843 -0
- package/src/adapters/github/github.adapter.js +395 -0
- package/src/adapters/github/github.issueEmbedded.js +262 -0
- package/src/adapters/github/github.issueMirror.js +309 -0
- package/src/adapters/github/github.issueSnapshot.js +475 -0
- package/src/adapters/github/github.issueSurface.js +188 -0
- package/src/adapters/github/github.issueTransport.js +237 -0
- package/src/adapters/github/github.publicationRead.js +24 -0
- package/src/adapters/github/github.readTransport.js +18 -0
- package/src/adapters/github/github.repoDiscovery.js +222 -0
- package/src/adapters/github/github.repoMirror.js +255 -0
- package/src/adapters/github/github.repoProxy.js +276 -0
- package/src/adapters/github/github.repoSurface.js +60 -0
- package/src/adapters/github/github.transportDiagnostics.js +68 -0
- package/src/adapters/local/local.adapter.case.mjs +72 -0
- package/src/adapters/local/local.adapter.js +188 -0
- package/src/adapters/registry.js +35 -0
- package/src/adapters/static/static.adapter.js +84 -0
- package/src/app/App.js +1 -0
- package/src/app/TiinexApp.jsx +822 -0
- package/src/app/appShell.views.jsx +58 -0
- package/src/app/artifactAuthoringCapability.js +49 -0
- package/src/app/boot/bootApp.js +19 -0
- package/src/app/boot/environment.js +1 -0
- package/src/app/canonicalAuthoringValues.js +4 -0
- package/src/app/canonicalCreationProductController.js +57 -0
- package/src/app/canonicalCreationProductSettlement.case.mjs +10 -0
- package/src/app/canonicalCreationProductSettlement.js +11 -0
- package/src/app/canonicalReferenceLocalCreateCommand.js +210 -0
- package/src/app/canonicalReferenceTargets.js +73 -0
- package/src/app/canonicalTransitionLocalCreateCommand.js +217 -0
- package/src/app/defaultWorkspaceStart.case.mjs +39 -0
- package/src/app/defaultWorkspaceStart.js +65 -0
- package/src/app/defaultWorkspaceStartCommand.js +55 -0
- package/src/app/durableLocalMutationPolicy.js +21 -0
- package/src/app/githubMaterializationSummary.js +69 -0
- package/src/app/githubProgress.js +25 -0
- package/src/app/githubSourceInput.js +47 -0
- package/src/app/githubSourceMaterializationCommand.js +97 -0
- package/src/app/githubSourceOperation.js +226 -0
- package/src/app/governanceDialogData.js +27 -0
- package/src/app/handoffPackageImportCommand.js +182 -0
- package/src/app/historyAuthority.js +53 -0
- package/src/app/initialWorkspaceBootstrapOperation.js +105 -0
- package/src/app/lineageCommand.js +118 -0
- package/src/app/lineageSourceRecovery.js +339 -0
- package/src/app/localDraftMutationCommand.js +174 -0
- package/src/app/localMaterialCommand.js +124 -0
- package/src/app/nodeGraphVerse.case.mjs +111 -0
- package/src/app/persistenceOwnership.js +92 -0
- package/src/app/productStateBoundary.js +7 -0
- package/src/app/providers/AppProviders.js +1 -0
- package/src/app/providers/LocaleProvider.js +1 -0
- package/src/app/providers/SchemaRegistryProvider.js +1 -0
- package/src/app/providers/WorkspaceProvider.js +1 -0
- package/src/app/publicTarget.js +251 -0
- package/src/app/publicTargetRestoreCommand.js +149 -0
- package/src/app/recordUi.cache.js +35 -0
- package/src/app/recordUi.js +11 -0
- package/src/app/routes/RouteSurface.js +1 -0
- package/src/app/routes/routes.js +1 -0
- package/src/app/runtimeState.js +54 -0
- package/src/app/schemaCurrentDeclaration.js +69 -0
- package/src/app/schemaFactoryLocalCreateCommand.js +101 -0
- package/src/app/schemaFactoryViewerProof.case.mjs +134 -0
- package/src/app/schemaFactoryViewerProof.js +20 -0
- package/src/app/schemaNavigationCommand.js +285 -0
- package/src/app/schemaNavigationMaterialization.js +171 -0
- package/src/app/schemaNavigationRuntimeCatalog.js +25 -0
- package/src/app/schemaNavigationState.js +66 -0
- package/src/app/schemaReadingContractQualification.js +91 -0
- package/src/app/schemaSourceRecovery.js +373 -0
- package/src/app/scrollPersistence.js +30 -0
- package/src/app/semanticOperationHistory.js +18 -0
- package/src/app/shareActionCommand.js +55 -0
- package/src/app/shareProjection.js +190 -0
- package/src/app/shell/AppShell.js +1 -0
- package/src/app/shell/Header.js +1 -0
- package/src/app/shell/Navigation.js +1 -0
- package/src/app/shell/SurfaceSwitcher.js +1 -0
- package/src/app/sourceTransportRefresh.js +176 -0
- package/src/app/startupOwnership.js +40 -0
- package/src/app/startupPresentation.case.mjs +34 -0
- package/src/app/startupPresentation.js +33 -0
- package/src/app/startupPresentation.views.jsx +21 -0
- package/src/app/startupRenderPhase.js +9 -0
- package/src/app/startupWorkspaceCommand.js +62 -0
- package/src/app/startupWorkspaceConfigApplication.js +49 -0
- package/src/app/statePersistenceScheduler.js +106 -0
- package/src/app/tiinexAppConfigPlan.js +108 -0
- package/src/app/tiinexAppConfigSource.js +349 -0
- package/src/app/tiinexAppStartupSource.js +79 -0
- package/src/app/tiinexHostedWorkspaceConventions.js +572 -0
- package/src/app/timePortalHistoricalRead.js +114 -0
- package/src/app/timePortalSnapshotResolution.js +53 -0
- package/src/app/urlMaterialCommand.js +24 -0
- package/src/app/useCanonicalPlacementSelectionOptions.js +9 -0
- package/src/app/useCanonicalReferenceSelectionOptions.js +8 -0
- package/src/app/useLocalMaterialIntake.js +68 -0
- package/src/app/useTimePortalProductController.jsx +111 -0
- package/src/app/useWorkspaceEntrypointIntake.js +77 -0
- package/src/app/useWorkspaceSelectionProductController.jsx +21 -0
- package/src/app/viewState.js +35 -0
- package/src/app/viewport.js +21 -0
- package/src/app/visualDormancy.js +286 -0
- package/src/app/workspaceContinuityNotices.js +32 -0
- package/src/app/workspaceDisplayCounts.js +9 -0
- package/src/app/workspaceEntrypointIntakeCommand.js +87 -0
- package/src/app/workspaceEntrypointProductRouting.case.mjs +20 -0
- package/src/app/workspaceExportCommand.js +21 -0
- package/src/app/workspaceExportDownload.js +23 -0
- package/src/app/workspaceExportExecutionCommand.js +10 -0
- package/src/app/workspaceGithubPublication.js +237 -0
- package/src/app/workspaceHandoffExport.js +56 -0
- package/src/app/workspaceHomeTarget.js +9 -0
- package/src/app/workspaceMulticolumn.js +113 -0
- package/src/app/workspaceNavigationParity.case.mjs +110 -0
- package/src/app/workspaceOpenProgress.js +26 -0
- package/src/app/workspacePlacementOptions.js +46 -0
- package/src/app/workspaceRecordActions.js +158 -0
- package/src/app/workspaceScopedInteraction.js +68 -0
- package/src/app/workspaceSelectionOriginContext.js +29 -0
- package/src/app/workspaceSelectionSession.js +54 -0
- package/src/app/workspaceSourceCloseCommand.js +25 -0
- package/src/app/workspaceSpineProductRouting.case.mjs +22 -0
- package/src/app/workspaceStartupTransition.js +32 -0
- package/src/app/workspaceWindow.js +85 -0
- package/src/artifacts/artifact.fixture.js +1 -0
- package/src/artifacts/artifact.identity.js +6 -0
- package/src/artifacts/artifact.identityAggregation.js +218 -0
- package/src/artifacts/artifact.model.js +2 -0
- package/src/artifacts/artifact.parse.case.mjs +196 -0
- package/src/artifacts/artifact.participantIndex.js +189 -0
- package/src/artifacts/fixtures/evidence.trace.md +50 -0
- package/src/artifacts/fixtures/topic.trace.md +33 -0
- package/src/artifacts/fixtures/unknown-schema.trace.md +25 -0
- package/src/audit/audit.findings.js +1 -0
- package/src/audit/audit.model.js +2 -0
- package/src/audit/audit.plan.js +13 -0
- package/src/audit/audit.report.js +12 -0
- package/src/audit/audit.severity.js +1 -0
- package/src/audit/audit.traverse.js +119 -0
- package/src/audit/integrity/auditIntegrity.checks.js +1 -0
- package/src/audit/integrity/auditIntegrity.compare.js +1 -0
- package/src/audit/lineage/auditLineage.load.js +1 -0
- package/src/audit/lineage/auditLineage.plan.js +1 -0
- package/src/audit/lineage/auditLineage.resolve.js +12 -0
- package/src/audit/sources/auditSources.boundaries.js +1 -0
- package/src/audit/sources/auditSources.checks.js +1 -0
- package/src/audit/validation/auditValidation.recheck.js +1 -0
- package/src/audit/validation/auditValidation.run.js +1 -0
- package/src/build.identity.js +15 -0
- package/src/commands/command.vocabulary.js +14 -0
- package/src/conformance/conformance.fixtures.js +151 -0
- package/src/conformance/conformance.run.js +238 -0
- package/src/data/applicationDataStore.js +23 -0
- package/src/data/companionAccess.js +35 -0
- package/src/diagnostics/events.js +1 -0
- package/src/diagnostics/invariant.js +1 -0
- package/src/diagnostics/schemaBindingChecks.js +1 -0
- package/src/diagnostics/schemaModuleChecks.js +1 -0
- package/src/diagnostics/sourceBoundaryChecks.js +5 -0
- package/src/diagnostics/sourceTransport.report.js +190 -0
- package/src/discovery/discovery.controls.js +7 -0
- package/src/export/export.plan.js +182 -0
- package/src/export/handoff.plan.js +50 -0
- package/src/export/package.builder.case.mjs +97 -0
- package/src/export/package.controlTopology.case.mjs +130 -0
- package/src/export/package.zip.case.mjs +33 -0
- package/src/graph/artifactGraph.model.js +344 -0
- package/src/graph/artifactGraph.project.js +139 -0
- package/src/graph/artifactGraph.worker.js +10 -0
- package/src/i18n/i18n.keys.js +1 -0
- package/src/i18n/i18n.provider.js +1 -0
- package/src/i18n/i18n.resolve.js +5 -0
- package/src/i18n/locales/en/common.json +4 -0
- package/src/i18n/locales/en/schemas/evidence.json +3 -0
- package/src/i18n/locales/en/schemas/presentation-surface.json +3 -0
- package/src/i18n/locales/en/schemas/preservation.json +3 -0
- package/src/i18n/locales/en/schemas/root.json +3 -0
- package/src/i18n/locales/en/schemas/schema-module.json +3 -0
- package/src/i18n/locales/en/schemas/topic.json +3 -0
- package/src/i18n/locales/en/surfaces/audit.json +3 -0
- package/src/i18n/locales/en/surfaces/create.json +3 -0
- package/src/i18n/locales/en/surfaces/detail.json +3 -0
- package/src/i18n/locales/en/surfaces/display-options.json +3 -0
- package/src/i18n/locales/en/surfaces/edit.json +3 -0
- package/src/i18n/locales/en/surfaces/feed.json +3 -0
- package/src/i18n/locales/en/surfaces/lineage.json +3 -0
- package/src/i18n/locales/en/surfaces/preview.json +3 -0
- package/src/i18n/locales/en/surfaces/share.json +3 -0
- package/src/i18n/locales/en/surfaces/source-settings.json +3 -0
- package/src/i18n/locales/en/surfaces/tree.json +3 -0
- package/src/i18n/locales/sv/common.json +4 -0
- package/src/i18n/locales/sv/schemas/evidence.json +3 -0
- package/src/i18n/locales/sv/schemas/presentation-surface.json +3 -0
- package/src/i18n/locales/sv/schemas/preservation.json +3 -0
- package/src/i18n/locales/sv/schemas/root.json +3 -0
- package/src/i18n/locales/sv/schemas/schema-module.json +3 -0
- package/src/i18n/locales/sv/schemas/topic.json +3 -0
- package/src/i18n/locales/sv/surfaces/audit.json +3 -0
- package/src/i18n/locales/sv/surfaces/create.json +3 -0
- package/src/i18n/locales/sv/surfaces/detail.json +3 -0
- package/src/i18n/locales/sv/surfaces/display-options.json +3 -0
- package/src/i18n/locales/sv/surfaces/edit.json +3 -0
- package/src/i18n/locales/sv/surfaces/feed.json +3 -0
- package/src/i18n/locales/sv/surfaces/lineage.json +3 -0
- package/src/i18n/locales/sv/surfaces/preview.json +3 -0
- package/src/i18n/locales/sv/surfaces/share.json +3 -0
- package/src/i18n/locales/sv/surfaces/source-settings.json +3 -0
- package/src/i18n/locales/sv/surfaces/tree.json +3 -0
- package/src/index.js +10 -0
- package/src/integrity/integrity.testFixture.js +9 -0
- package/src/interaction/interaction.spine.js +12 -0
- package/src/lineage/lineage.audit.js +1 -0
- package/src/lineage/lineage.edges.js +1 -0
- package/src/main.js +319 -0
- package/src/main.jsx +34 -0
- package/src/multiverse/multiverse.model.js +10 -0
- package/src/parity/poc.m1ParityScenarios.js +42 -0
- package/src/parity/poc.parityLedger.js +261 -0
- package/src/publication/publication.githubSocialContract.case.mjs +247 -0
- package/src/publication/publication.preflight.case.mjs +64 -0
- package/src/react/TiinexApplication.jsx +39 -0
- package/src/react/VerseHost.jsx +29 -0
- package/src/react/applicationDataContext.jsx +30 -0
- package/src/react.js +2 -0
- package/src/readers/modes/audit.reader.js +1 -0
- package/src/readers/modes/detail.reader.js +1 -0
- package/src/readers/modes/handover.reader.js +1 -0
- package/src/readers/modes/mobile.reader.js +1 -0
- package/src/readers/modes/print.reader.js +1 -0
- package/src/readers/modes/scan.reader.js +1 -0
- package/src/readers/reader.model.js +1 -0
- package/src/readers/reader.resolve.js +2 -0
- package/src/reingest/reingest.plan.case.mjs +65 -0
- package/src/runtime.js +54 -0
- package/src/schemas/README.md +99 -0
- package/src/schemas/coordination/handoff/tiinex.handoff.v1.schema.md +614 -0
- package/src/schemas/coordination/project/tiinex.project.v1.schema.md +311 -0
- package/src/schemas/core/decision/tiinex.decision.v1.schema.md +227 -0
- package/src/schemas/core/evidence/tiinex.evidence.v1.schema.md +318 -0
- package/src/schemas/core/feedback/tiinex.feedback.v1.schema.md +243 -0
- package/src/schemas/core/interpretation/.transitions/evidence-to-interpretation-transition-definition.trace.md +102 -0
- package/src/schemas/core/interpretation/tiinex.interpretation.v1.schema.md +308 -0
- package/src/schemas/core/preservation/tiinex.preservation.v1.schema.md +312 -0
- package/src/schemas/core/relation/.generation/reference-relation-generation-authority.trace.md +185 -0
- package/src/schemas/core/relation/.transitions/topic-references-task-transition-definition.trace.md +119 -0
- package/src/schemas/core/relation/tiinex.relation.v1.schema.md +240 -0
- package/src/schemas/core/relation/workspace/representation/tiinex.workspace.representation.v1.schema.md +550 -0
- package/src/schemas/core/signal/tiinex.signal.v1.schema.md +239 -0
- package/src/schemas/core/task/.transitions/create-task-transition-definition.trace.md +93 -0
- package/src/schemas/core/task/.transitions/topic-to-task-transition-definition.trace.md +102 -0
- package/src/schemas/core/task/task-semantic-package.trace.md +53 -0
- package/src/schemas/core/task/tiinex.task.v1-transitions.trace.md +33 -0
- package/src/schemas/core/task/tiinex.task.v1.authoring.js +65 -0
- package/src/schemas/core/task/tiinex.task.v1.schema.md +229 -0
- package/src/schemas/core/topic/.transitions/create-topic-transition-definition.trace.md +93 -0
- package/src/schemas/core/topic/tiinex.topic.v1-transitions.trace.md +33 -0
- package/src/schemas/core/topic/tiinex.topic.v1.schema.md +197 -0
- package/src/schemas/core/topic/topic-semantic-package.trace.md +53 -0
- package/src/schemas/discovery/finding/tiinex.discovery.finding.v1.schema.md +240 -0
- package/src/schemas/discovery/tiinex.discovery.v1.schema.md +294 -0
- package/src/schemas/manifest.json +367 -0
- package/src/schemas/origins.js +46 -0
- package/src/schemas/party/organization/tiinex.party.organization.v1.schema.md +290 -0
- package/src/schemas/party/role/tiinex.party.role.v1.schema.md +298 -0
- package/src/schemas/party/tiinex.party.v1.schema.js +14 -0
- package/src/schemas/party/tiinex.party.v1.schema.json +23 -0
- package/src/schemas/party/tiinex.party.v1.schema.md +311 -0
- package/src/schemas/party/tiinex.party.v1.schema.runtime.json +2033 -0
- package/src/schemas/party/tiinex.party.v1.schema.source.js +9 -0
- package/src/schemas/presentation/surface/tiinex.presentation.surface.v1.schema.md +476 -0
- package/src/schemas/reduction/tiinex.reduction.v1.schema.md +248 -0
- package/src/schemas/schema/module/tiinex.schema.module.v1.schema.md +465 -0
- package/src/schemas/schema.companionContract.case.mjs +259 -0
- package/src/schemas/schema.factory.case.mjs +256 -0
- package/src/schemas/schema.factory.viewerProjection.js +183 -0
- package/src/schemas/schemaMarkdownCatalog.js +19 -0
- package/src/schemas/tiinex.root.v1.schema.md +865 -0
- package/src/schemas/validation/finding/tiinex.validation.finding.v1.schema.md +309 -0
- package/src/schemas/validation/method/tiinex.validation.method.v1.schema.md +280 -0
- package/src/schemas/validation/report/tiinex.validation.report.v1.schema.md +300 -0
- package/src/schemas/workspace/tiinex.workspace.v1.schema.md +486 -0
- package/src/schemas/workspace/workspace.add.views.jsx +327 -0
- package/src/schemas/workspace/workspace.audit.views.jsx +160 -0
- package/src/schemas/workspace/workspace.auditBadge.views.jsx +98 -0
- package/src/schemas/workspace/workspace.canonicalReferenceDialog.views.jsx +63 -0
- package/src/schemas/workspace/workspace.canonicalTaskDialog.views.jsx +169 -0
- package/src/schemas/workspace/workspace.cardActions.js +9 -0
- package/src/schemas/workspace/workspace.cards.views.jsx +146 -0
- package/src/schemas/workspace/workspace.chrome.views.jsx +299 -0
- package/src/schemas/workspace/workspace.continuationDialog.views.jsx +80 -0
- package/src/schemas/workspace/workspace.discovery.views.jsx +63 -0
- package/src/schemas/workspace/workspace.discoveryRenderWindow.js +56 -0
- package/src/schemas/workspace/workspace.displayOptions.views.jsx +114 -0
- package/src/schemas/workspace/workspace.entrypointChoice.views.jsx +30 -0
- package/src/schemas/workspace/workspace.exportDialog.controller.jsx +40 -0
- package/src/schemas/workspace/workspace.exportDialog.views.jsx +142 -0
- package/src/schemas/workspace/workspace.governance.views.jsx +45 -0
- package/src/schemas/workspace/workspace.graph.views.jsx +134 -0
- package/src/schemas/workspace/workspace.lineage.views.jsx +307 -0
- package/src/schemas/workspace/workspace.read.views.jsx +105 -0
- package/src/schemas/workspace/workspace.recordActionButton.views.jsx +35 -0
- package/src/schemas/workspace/workspace.recordDialogs.views.jsx +257 -0
- package/src/schemas/workspace/workspace.selection.views.jsx +14 -0
- package/src/schemas/workspace/workspace.sourceReceipt.views.jsx +40 -0
- package/src/schemas/workspace/workspace.timePortal.views.jsx +56 -0
- package/src/schemas/workspace/workspace.tree.views.jsx +107 -0
- package/src/schemas/workspace/workspace.viewFormatting.js +172 -0
- package/src/schemas/workspace/workspace.views.jsx +210 -0
- package/src/source-settings/sourceSettings.model.js +7 -0
- package/src/sources/draft/draft.source.js +1 -0
- package/src/sources/github/github.loader.js +204 -0
- package/src/sources/github/github.permalink.js +1 -0
- package/src/sources/github/github.source.js +1 -0
- package/src/sources/github/github.transport.case.mjs +237 -0
- package/src/sources/github/github.transport.js +472 -0
- package/src/sources/local/local.source.js +1 -0
- package/src/sources/source.assetReferences.js +109 -0
- package/src/sources/source.boundaries.js +24 -0
- package/src/sources/source.identity.js +56 -0
- package/src/sources/source.model.case.mjs +26 -0
- package/src/sources/source.model.js +56 -0
- package/src/sources/source.presenter.js +66 -0
- package/src/sources/source.resolve.js +11 -0
- package/src/sources/static/static.source.js +1 -0
- package/src/sources/transport.policy.case.mjs +39 -0
- package/src/sources/transport.policy.js +81 -0
- package/src/storage/storage.policy.js +79 -0
- package/src/styles/app.css +8699 -0
- package/src/styles/responsive.css +10 -0
- package/src/styles/theme.css +4 -0
- package/src/styles/tokens.css +30 -0
- package/src/surfaces/audit/AuditSurface.js +1 -0
- package/src/surfaces/audit/audit.model.js +1 -0
- package/src/surfaces/audit/audit.render.js +1 -0
- package/src/surfaces/contracts.js +45 -0
- package/src/surfaces/create/CreateSurface.js +1 -0
- package/src/surfaces/create/create.model.js +1 -0
- package/src/surfaces/create/create.render.js +1 -0
- package/src/surfaces/detail/DetailSurface.js +1 -0
- package/src/surfaces/detail/detail.model.js +1 -0
- package/src/surfaces/detail/detail.render.js +1 -0
- package/src/surfaces/display-options/DisplayOptionsSurface.js +1 -0
- package/src/surfaces/display-options/displayOptions.model.js +1 -0
- package/src/surfaces/display-options/displayOptions.render.js +1 -0
- package/src/surfaces/edit/EditSurface.js +1 -0
- package/src/surfaces/edit/edit.model.js +1 -0
- package/src/surfaces/edit/edit.render.js +1 -0
- package/src/surfaces/feed/FeedSurface.js +1 -0
- package/src/surfaces/feed/feed.model.js +1 -0
- package/src/surfaces/feed/feed.render.js +1 -0
- package/src/surfaces/lineage/LineageSurface.js +1 -0
- package/src/surfaces/lineage/lineage.model.js +1 -0
- package/src/surfaces/lineage/lineage.render.js +1 -0
- package/src/surfaces/preview/PreviewSurface.js +1 -0
- package/src/surfaces/preview/preview.model.js +1 -0
- package/src/surfaces/preview/preview.render.js +1 -0
- package/src/surfaces/registry.js +58 -0
- package/src/surfaces/share/ShareSurface.js +1 -0
- package/src/surfaces/share/share.model.js +1 -0
- package/src/surfaces/share/share.render.js +1 -0
- package/src/surfaces/source-settings/SourceSettingsSurface.js +1 -0
- package/src/surfaces/source-settings/sourceSettings.model.js +1 -0
- package/src/surfaces/source-settings/sourceSettings.render.js +1 -0
- package/src/surfaces/surfaceContext.js +1 -0
- package/src/surfaces/tree/TreeSurface.js +1 -0
- package/src/surfaces/tree/tree.model.js +1 -0
- package/src/surfaces/tree/tree.render.js +1 -0
- package/src/tooling/portable/adapters/cli/cli.common-output.case.mjs +153 -0
- package/src/tooling/portable/adapters/cli/cli.handoff-sibling-allocation.case.mjs +52 -0
- package/src/tooling/portable/adapters/cli/cli.run.case.mjs +372 -0
- package/src/tooling/portable/adapters/cli/cli.summaryProjection.case.mjs +46 -0
- package/src/tooling/portable/audit/audit.capability.case.mjs +45 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/collaboration/dogfood/001-tiinex-development-dogfood-collaboration-model.trace.fixture.txt +37 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/handoff/tooling/001-v480-tooling-workflow-schema-enablement-handoff.trace.fixture.txt +108 -0
- 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
- package/src/tooling/portable/fixtures/legacy-artifacts/loom/role/001-loom-role.trace.fixture.txt +61 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/sigma/role/001-1-sigma-role.trace.fixture.txt +61 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-1-site-tooling-v471-portable-lineage-authoring-closure-result.trace.fixture.txt +48 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/001-site-tooling-v471-portable-lineage-authoring-closure.trace.fixture.txt +39 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/002-1-v475-canonical-artifact-envelope-reference-integrity-validation.trace.fixture.txt +43 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/003-1-v476-canonical-authority-binding-integrity-method-lineage-alloca.trace.fixture.txt +42 -0
- package/src/tooling/portable/fixtures/legacy-artifacts/tooling/dogfood/027-handoff-package-workspace-archive-and-control-plane-minimality-audit.trace.fixture.txt +56 -0
- package/src/tooling/portable/fixtures/legacyArtifactFixtures.mjs +34 -0
- package/src/tooling/portable/grounding/grounding.capsule.case.mjs +65 -0
- package/src/tooling/portable/grounding/grounding.readiness.case.mjs +543 -0
- package/src/tooling/portable/grounding/grounding.semanticIntegration.case.mjs +131 -0
- package/src/tooling/portable/handoff/boundedWorkspaceRepresentation.case.mjs +103 -0
- package/src/tooling/portable/handoff/carrierLineage.fixedWidth.case.mjs +97 -0
- package/src/tooling/portable/handoff/coldStartQualification.case.mjs +293 -0
- package/src/tooling/portable/handoff/fixtures/027-invalid-audit-result.fixture.txt +192 -0
- package/src/tooling/portable/handoff/fixtures/027-invalid-return-handoff.fixture.txt +92 -0
- package/src/tooling/portable/handoff/fixtures/cold-start-qualification.v1.examples.json +60 -0
- package/src/tooling/portable/handoff/handoff.manufacture.case.mjs +293 -0
- package/src/tooling/portable/handoff/materialClosure.case.mjs +727 -0
- package/src/tooling/portable/handoff/multiRootManufacture.case.mjs +615 -0
- package/src/tooling/portable/handoff/operatorBridgeCore.case.mjs +205 -0
- package/src/tooling/portable/handoff/workspaceLandingPlan.case.mjs +143 -0
- package/src/tooling/portable/input/node.input.case.mjs +293 -0
- package/src/tooling/portable/lifecycle/lifecycle.readiness.case.mjs +179 -0
- package/src/tooling/portable/lineage/fixtures/lineage.integrity.repair-projection.v1.examples.json +605 -0
- package/src/tooling/portable/lineage/lineage.integrity.shared-capability.case.mjs +37 -0
- package/src/tooling/portable/lineage/publicationProviderReceipt.fixture.mjs +50 -0
- package/src/tooling/portable/package/fixtures/reference-relation-generation-authority.trace.md +84 -0
- package/src/tooling/portable/package/fixtures/tiinex.root.v1.package-authority.contract-fixture.md +64 -0
- package/src/tooling/portable/package/fixtures/tiinex.schema.generation.v1.generation-binding.contract-fixture.md +140 -0
- package/src/tooling/portable/package/fixtures/tiinex.schema.transition.companion.v1.contract-fixture.md +73 -0
- package/src/tooling/portable/package/fixtures/tiinex.semantic.package.v1.contract-fixture.md +147 -0
- package/src/tooling/portable/package/fixtures/tiinex.transition.definition.v1.package-contract-fixture.md +77 -0
- package/src/tooling/portable/providers/schema.providers.genericity.case.mjs +31 -0
- package/src/tooling/portable/reduction/reduction.preflight.case.mjs +298 -0
- package/src/tooling/portable/schema/fixtures/evidence-preservation-body.inheritance-record-fixture.md +65 -0
- package/src/tooling/portable/schema/fixtures/tiinex.portal.time.v1.contract-fixture.md +294 -0
- package/src/tooling/portable/schema/fixtures/tiinex.root.v1.contract-fixture.md +584 -0
- package/src/tooling/portable/schema/fixtures/tiinex.root.v1.machine-shape.contract-fixture.md +44 -0
- package/src/tooling/portable/schema/fixtures/tiinex.root.v1.ordinary-target.contract-fixture.md +630 -0
- package/src/tooling/portable/schema/fixtures/tiinex.schema.contract.v1.repeated-record.contract-fixture.md +69 -0
- package/src/tooling/portable/schema/fixtures/tiinex.schema.generation.v1.repeated-record.contract-fixture.md +98 -0
- package/src/tooling/portable/schema/fixtures/tiinex.schema.inheritance.v1.repeated-record.contract-fixture.md +58 -0
- package/src/tooling/portable/schema/fixtures/tiinex.task.v1.contract-fixture.md +165 -0
- package/src/tooling/portable/schema/fixtures/tiinex.transition.definition.v1.contract-fixture.md +744 -0
- package/src/tooling/portable/schema/fixtures/tiinex.transition.definition.v1.field-domain.contract-fixture.md +319 -0
- package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.relation.v1.schema.md +240 -0
- package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.contract.v1.schema.md +391 -0
- package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.generation.v1.schema.md +379 -0
- package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.schema.transition.companion.v1.schema.md +265 -0
- package/src/transitions/canonical-schema-cache/053d46ce082d4ec261b82abc44ecca403d61e240/tiinex.semantic.package.v1.schema.md +402 -0
- package/src/transitions/canonical-schema-cache/52ecdea0a75893882ce282214d155f70e1309c2a/tiinex.topic.v1.schema.md +197 -0
- package/src/transitions/canonical-schema-cache/d69b8ff55a56b8cb9282b8684db6a938a4435b94/tiinex.root.v1.schema.md +797 -0
- package/src/transitions/canonical-schema-cache/d69b8ff55a56b8cb9282b8684db6a938a4435b94/tiinex.transition.definition.v1.schema.md +1062 -0
- package/src/transitions/canonicalTransition.packageContracts.js +22 -0
- package/src/transitions/canonicalTransition.productDefaults.js +105 -0
- package/src/transitions/canonicalTransition.schemaCache.case.mjs +45 -0
- package/src/transitions/canonicalTransition.schemaCache.js +81 -0
- package/src/transitions/canonicalTransition.semanticPackage.js +146 -0
- package/src/transitions/record.transitions.case.mjs +88 -0
- package/src/transitions/transition.authorityRepresentation.js +55 -0
- package/src/transitions/transition.availabilityPlanner.js +376 -0
- package/src/transitions/transition.availabilitySemantics.js +150 -0
- package/src/transitions/transition.definitionReadProjection.js +107 -0
- package/src/transitions/transition.definitionRegistry.js +355 -0
- package/src/transitions/transition.definitionRegistryAggregation.js +21 -0
- package/src/transitions/transition.definitions.js +46 -0
- package/src/transitions/transition.explicitGenerationPlanner.js +58 -0
- package/src/transitions/transition.generationInputPlanner.js +19 -0
- package/src/transitions/transition.interpretationMaterializer.js +2 -0
- package/src/transitions/transition.invocationBindingPacket.js +52 -0
- package/src/transitions/transition.invocationBindingPlanner.js +467 -0
- package/src/transitions/transition.legacyShorthand.js +133 -0
- package/src/transitions/transition.localArtifactMaterializers.js +16 -0
- package/src/transitions/transition.localCreateCapability.js +111 -0
- package/src/transitions/transition.outputMaterializationPlanner.js +336 -0
- package/src/transitions/transition.parentReference.js +90 -0
- package/src/transitions/transition.presentation.js +43 -0
- package/src/transitions/transition.productPreparation.js +377 -0
- package/src/transitions/transition.productPresentation.browser.js +28 -0
- package/src/transitions/transition.productPresentation.js +55 -0
- package/src/transitions/transition.referenceCreateCapability.js +119 -0
- package/src/transitions/transition.referenceTarget.js +50 -0
- package/src/transitions/transition.relationMaterializer.js +2 -0
- package/src/transitions/transition.resultSemantics.js +453 -0
- package/src/transitions/transition.taskMaterializer.js +2 -0
- package/src/transitions/transition.topicMaterializer.js +2 -0
- package/src/transitions/transition.validate.case.mjs +58 -0
- package/src/ui/cards/ArtifactCard.js +1 -0
- package/src/ui/cards/SchemaCard.js +1 -0
- package/src/ui/cards/SourceCard.js +1 -0
- package/src/ui/dialog.presenter.js +24 -0
- package/src/ui/feedback/DegradedNotice.js +1 -0
- package/src/ui/feedback/EmptyState.js +1 -0
- package/src/ui/feedback/ValidationNotice.js +1 -0
- package/src/ui/forms/FormRenderer.js +1 -0
- package/src/ui/forms/fields/MarkdownField.js +1 -0
- package/src/ui/forms/fields/SelectField.js +1 -0
- package/src/ui/forms/fields/SourcePickerField.js +1 -0
- package/src/ui/forms/fields/TextField.js +1 -0
- package/src/ui/icon.paths.js +37 -0
- package/src/ui/layout/Panel.js +1 -0
- package/src/ui/layout/ResponsiveFrame.js +1 -0
- package/src/ui/layout/SplitView.js +1 -0
- package/src/ui/layout/Stack.js +1 -0
- package/src/ui/panels/DetailPanel.js +1 -0
- package/src/ui/panels/LineagePanel.js +1 -0
- package/src/ui/panels/SourcePanel.js +1 -0
- package/src/ui/primitives/Badge.js +1 -0
- package/src/ui/primitives/Badge.jsx +5 -0
- package/src/ui/primitives/Button.js +1 -0
- package/src/ui/primitives/Button.jsx +12 -0
- package/src/ui/primitives/Card.js +1 -0
- package/src/ui/primitives/Field.js +1 -0
- package/src/ui/primitives/Field.jsx +21 -0
- package/src/ui/primitives/Icon.jsx +90 -0
- package/src/ui/primitives/Modal.jsx +27 -0
- package/src/validation/i18n.js +37 -0
- package/src/validation/validateArtifact.case.mjs +41 -0
- package/src/verses/column/ColumnVerse.js +1 -0
- package/src/verses/column/column.model.js +6 -0
- package/src/verses/column/column.project.js +7 -0
- package/src/verses/context.js +26 -0
- package/src/verses/contracts.js +1 -0
- package/src/verses/hostRegistry.js +47 -0
- package/src/verses/registry.js +22 -0
- package/src/verses/universe.model.js +8 -0
- package/src/verses/universe.presenter.js +8 -0
- package/src/verses/universe.project.js +12 -0
- package/src/viewer.js +34 -0
- package/src/workspace.model.js +5 -0
- package/src/workspaces/workspace.actions.js +1 -0
- package/src/workspaces/workspace.artifactActions.js +56 -0
- package/src/workspaces/workspace.auditView.js +153 -0
- package/src/workspaces/workspace.candidates.js +149 -0
- package/src/workspaces/workspace.config.js +153 -0
- package/src/workspaces/workspace.configuredSource.js +68 -0
- package/src/workspaces/workspace.discoveryProgress.js +34 -0
- package/src/workspaces/workspace.discoveryView.js +386 -0
- package/src/workspaces/workspace.displayFilters.js +63 -0
- package/src/workspaces/workspace.displayOptions.js +58 -0
- package/src/workspaces/workspace.emptyStateCopy.js +24 -0
- package/src/workspaces/workspace.entrypointLifecycle.js +131 -0
- package/src/workspaces/workspace.entrypointViewIntent.js +83 -0
- package/src/workspaces/workspace.entrypoints.js +157 -0
- package/src/workspaces/workspace.feedSort.js +152 -0
- package/src/workspaces/workspace.import.js +212 -0
- package/src/workspaces/workspace.importConflicts.js +200 -0
- package/src/workspaces/workspace.importLifecycle.case.mjs +103 -0
- package/src/workspaces/workspace.lifecycle.case.mjs +353 -0
- package/src/workspaces/workspace.lifecycle.js +357 -0
- package/src/workspaces/workspace.lineageView.js +244 -0
- package/src/workspaces/workspace.localSourceLifecycle.js +91 -0
- package/src/workspaces/workspace.materialLedger.js +110 -0
- package/src/workspaces/workspace.materialReconciliation.case.mjs +164 -0
- package/src/workspaces/workspace.materialReconciliation.js +390 -0
- package/src/workspaces/workspace.memberIdentity.js +140 -0
- package/src/workspaces/workspace.model.js +2 -0
- package/src/workspaces/workspace.navigation.js +20 -0
- package/src/workspaces/workspace.openSemantics.js +33 -0
- package/src/workspaces/workspace.pathTree.js +132 -0
- package/src/workspaces/workspace.persistence.case.mjs +271 -0
- package/src/workspaces/workspace.persistence.js +469 -0
- package/src/workspaces/workspace.persistenceCache.js +41 -0
- package/src/workspaces/workspace.persistenceClear.js +45 -0
- package/src/workspaces/workspace.persistencePresentation.js +93 -0
- package/src/workspaces/workspace.persistenceRecovery.js +147 -0
- package/src/workspaces/workspace.persistenceRouteCache.js +82 -0
- package/src/workspaces/workspace.publicationReceipts.case.mjs +36 -0
- package/src/workspaces/workspace.publicationReceipts.js +56 -0
- package/src/workspaces/workspace.recoverabilityView.js +264 -0
- package/src/workspaces/workspace.route.js +432 -0
- package/src/workspaces/workspace.runtimeCanonical.js +18 -0
- package/src/workspaces/workspace.sourceMaterial.js +71 -0
- package/src/workspaces/workspace.sourceRecordPath.js +5 -0
- package/src/workspaces/workspace.sourceRecords.js +75 -0
- package/src/workspaces/workspace.store.js +3 -0
- package/src/workspaces/workspace.summary.js +116 -0
- package/src/workspaces/workspace.timePortal.js +137 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# Continuity Context
|
|
2
|
+
|
|
3
|
+
- Envelope Schema: [tiinex.root.v1](../../tiinex.root.v1.schema.md)
|
|
4
|
+
- Parent
|
|
5
|
+
- Parent Schema: [tiinex.root.v1](../../tiinex.root.v1.schema.md)
|
|
6
|
+
- Created At: 2026-06-14 00:00:00
|
|
7
|
+
- Trace: [tiinex.root.v1.schema.md](../../tiinex.root.v1.schema.md)
|
|
8
|
+
- Origin:
|
|
9
|
+
- [relative](../../tiinex.root.v1.schema.md)
|
|
10
|
+
- [browse + git](https://github.com/Tiinex/docs/blob/00adbcc5b0319410cf16752a54dcbf4813173040/.topics/.schemas/tiinex.root.v1.schema.md)
|
|
11
|
+
- Current
|
|
12
|
+
- Current Schema: [tiinex.signal.v1](tiinex.signal.v1.schema.md)
|
|
13
|
+
- Created At: 2026-06-14 00:00:00
|
|
14
|
+
- Summary: Schema for bounded signal artifacts that preserve observed indicators without overclaiming evidence.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Signal
|
|
19
|
+
|
|
20
|
+
- Status: maintained schema note
|
|
21
|
+
|
|
22
|
+
## Summary
|
|
23
|
+
|
|
24
|
+
This schema defines artifacts whose main job is to preserve a bounded signal:
|
|
25
|
+
an observed reaction, weak indicator, external response, status cue, or other
|
|
26
|
+
interpretable sign that bears on a lineage without necessarily becoming
|
|
27
|
+
evidence, feedback, task, or decision.
|
|
28
|
+
|
|
29
|
+
It is for lightweight observations that matter enough to keep traceable, but
|
|
30
|
+
should not be overstated as proof.
|
|
31
|
+
|
|
32
|
+
## Schema Validation Contract
|
|
33
|
+
|
|
34
|
+
### Signal Scope
|
|
35
|
+
|
|
36
|
+
Applies To
|
|
37
|
+
|
|
38
|
+
- artifacts whose `Current -> Current Schema` is `tiinex.signal.v1`
|
|
39
|
+
|
|
40
|
+
Rules
|
|
41
|
+
|
|
42
|
+
- `tiinex.signal.v1` identifies artifacts centered on one bounded observed signal.
|
|
43
|
+
- A signal artifact should state what was observed and what it may indicate.
|
|
44
|
+
- A signal artifact should not overclaim certainty beyond the observed signal.
|
|
45
|
+
- A signal artifact may preserve positive, negative, neutral, ambiguous, or absent signal.
|
|
46
|
+
- Prose outside `Schema Validation Contract` may explain the schema, but it does not add required validation rules.
|
|
47
|
+
|
|
48
|
+
### Signal Body
|
|
49
|
+
|
|
50
|
+
Required Shape
|
|
51
|
+
|
|
52
|
+
- first body heading after the continuity envelope
|
|
53
|
+
- `## Observed Signal` section
|
|
54
|
+
- `## Source` section
|
|
55
|
+
- `## Interpretation` section
|
|
56
|
+
- `## Limits` section
|
|
57
|
+
|
|
58
|
+
Optional Sections
|
|
59
|
+
|
|
60
|
+
- Signal Strength
|
|
61
|
+
- Linked Artifacts
|
|
62
|
+
- Evidence Material
|
|
63
|
+
- Follow-Up
|
|
64
|
+
- Next Artifacts
|
|
65
|
+
|
|
66
|
+
Rules
|
|
67
|
+
|
|
68
|
+
- A signal artifact should begin with a human-readable title.
|
|
69
|
+
- `Observed Signal` should describe the signal itself.
|
|
70
|
+
- `Source` should name where the signal came from when known.
|
|
71
|
+
- `Interpretation` should state what the signal may bear on without turning it into stronger evidence than it is.
|
|
72
|
+
- `Limits` should state ambiguity, uncertainty, missing context, or reasons not to overread the signal.
|
|
73
|
+
- A signal artifact should contain enough body content that a later reader can identify the signal and its relevance.
|
|
74
|
+
- When the signal is based on a screenshot, comment, notification, metric, or external artifact, the body should include a readable reference or description.
|
|
75
|
+
- If the artifact mainly preserves supporting material for a specific claim, an evidence schema should own it instead.
|
|
76
|
+
- If the artifact contains directed response that should be dispositioned or acted on, a feedback schema should own it instead.
|
|
77
|
+
|
|
78
|
+
### Signal Semantics
|
|
79
|
+
|
|
80
|
+
Allowed Shapes
|
|
81
|
+
|
|
82
|
+
- social reaction
|
|
83
|
+
- external response
|
|
84
|
+
- status cue
|
|
85
|
+
- weak adoption signal
|
|
86
|
+
- absence-of-response signal
|
|
87
|
+
- ambiguous observation
|
|
88
|
+
- metric or count snapshot with limits
|
|
89
|
+
|
|
90
|
+
Rules
|
|
91
|
+
|
|
92
|
+
- A signal artifact should make clear whether the signal is direct, indirect, weak, ambiguous, or negative.
|
|
93
|
+
- A signal artifact should not hide that a signal is based on partial observation.
|
|
94
|
+
- A signal artifact may support later topic, feedback, decision, task, or evidence artifacts, but does not replace them.
|
|
95
|
+
- When a signal is time-sensitive or platform-dependent, the artifact should say so.
|
|
96
|
+
- When the signal could be explained by multiple causes, the artifact should preserve that ambiguity.
|
|
97
|
+
|
|
98
|
+
### Signal Envelope Companions
|
|
99
|
+
|
|
100
|
+
Optional Fields
|
|
101
|
+
|
|
102
|
+
- `Current -> Why`
|
|
103
|
+
- `Current -> Summary`
|
|
104
|
+
- `Current -> Authors`
|
|
105
|
+
- `Current -> Origin`
|
|
106
|
+
- parent signal when the signal continues or refines an earlier local artifact
|
|
107
|
+
|
|
108
|
+
Rules
|
|
109
|
+
|
|
110
|
+
- Signal artifacts may carry light current-side metadata when it helps a reader orient quickly.
|
|
111
|
+
- Parent signal should be used when a signal artifact continues a local signal thread.
|
|
112
|
+
- Envelope metadata should support, not replace, body-level observation and limits.
|
|
113
|
+
|
|
114
|
+
### File Naming
|
|
115
|
+
|
|
116
|
+
Allowed Shapes
|
|
117
|
+
|
|
118
|
+
- `<lineage>.trace.md`
|
|
119
|
+
- `<lineage>-<signal-slug>.trace.md`
|
|
120
|
+
|
|
121
|
+
Rules
|
|
122
|
+
|
|
123
|
+
- Signal artifacts should keep the lineage label first.
|
|
124
|
+
- The optional slug should describe the observed signal or source.
|
|
125
|
+
- Signal artifacts should prefer short human-readable slugs.
|
|
126
|
+
- Signal artifacts should keep the `.trace.md` suffix stable.
|
|
127
|
+
|
|
128
|
+
### Interpretation Boundaries
|
|
129
|
+
|
|
130
|
+
Rules
|
|
131
|
+
|
|
132
|
+
- Use `tiinex.signal.v1` when the artifact is mainly preserving a bounded signal with interpretation limits.
|
|
133
|
+
- Do not use `tiinex.signal.v1` for landed decisions, bounded tasks, broad topics, or raw runtime exports.
|
|
134
|
+
- Do not use `tiinex.signal.v1` for directed feedback that needs disposition.
|
|
135
|
+
- Do not use `tiinex.signal.v1` to make weak observations look like strong evidence.
|
|
136
|
+
|
|
137
|
+
## Minimal Example
|
|
138
|
+
|
|
139
|
+
```md
|
|
140
|
+
# Continuity Context
|
|
141
|
+
|
|
142
|
+
- Envelope Schema: tiinex.root.v1
|
|
143
|
+
- Current
|
|
144
|
+
- Current Schema: tiinex.signal.v1
|
|
145
|
+
- Created At: 2026-06-14 00:00:00
|
|
146
|
+
- Summary: Weak external signal from a GitHub discussion reaction.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
# GitHub Reaction Signal
|
|
151
|
+
|
|
152
|
+
## Observed Signal
|
|
153
|
+
|
|
154
|
+
- A public comment received one positive reaction.
|
|
155
|
+
|
|
156
|
+
## Source
|
|
157
|
+
|
|
158
|
+
- Source: GitHub discussion UI observation
|
|
159
|
+
|
|
160
|
+
## Interpretation
|
|
161
|
+
|
|
162
|
+
- The reaction may indicate that the comment was noticed or found useful by at least one reader.
|
|
163
|
+
|
|
164
|
+
## Limits
|
|
165
|
+
|
|
166
|
+
- The reaction does not prove project acceptance, maintainer interest, or correctness.
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Validation-Friendly Shape
|
|
170
|
+
|
|
171
|
+
Keep this maintained schema note in the exact section order already used here:
|
|
172
|
+
`Summary`, `Schema Validation Contract`, `Minimal Example`,
|
|
173
|
+
`Validation-Friendly Shape`, `Interpretation Notes`, and
|
|
174
|
+
`Artifact Creation Contract`.
|
|
175
|
+
|
|
176
|
+
Maintain the section headings exactly in this schema note. Free markdown inside
|
|
177
|
+
those sections is allowed, but adding undeclared new section headings should be
|
|
178
|
+
treated as schema drift.
|
|
179
|
+
|
|
180
|
+
## Interpretation Notes
|
|
181
|
+
|
|
182
|
+
- signal is intentionally weaker than evidence and feedback
|
|
183
|
+
- signal preserves observations without forcing premature action or certainty
|
|
184
|
+
- signal artifacts should help later readers understand why something was noticed without overclaiming what it proves
|
|
185
|
+
|
|
186
|
+
## Artifact Creation Contract
|
|
187
|
+
|
|
188
|
+
### Prompt Fields
|
|
189
|
+
|
|
190
|
+
Required Fields
|
|
191
|
+
|
|
192
|
+
- version
|
|
193
|
+
- createTitle
|
|
194
|
+
- summaryPrompt
|
|
195
|
+
- summaryPlaceholder
|
|
196
|
+
|
|
197
|
+
Optional Fields
|
|
198
|
+
|
|
199
|
+
- whyPrompt
|
|
200
|
+
- whyPlaceholder
|
|
201
|
+
|
|
202
|
+
Rules
|
|
203
|
+
|
|
204
|
+
- The current signal create surface uses version `1`.
|
|
205
|
+
- `createTitle` should label the create action as `Create Signal`.
|
|
206
|
+
- `summaryPrompt` should ask for the signal title.
|
|
207
|
+
- `summaryPlaceholder` should guide the user toward the observed signal.
|
|
208
|
+
- `whyPrompt` and `whyPlaceholder` may be omitted when create flow does not ask for a why field.
|
|
209
|
+
|
|
210
|
+
### Template Body
|
|
211
|
+
|
|
212
|
+
Required Shape
|
|
213
|
+
|
|
214
|
+
- first heading uses `# {{summary}}`
|
|
215
|
+
- `## Observed Signal` section
|
|
216
|
+
- `## Source` section
|
|
217
|
+
- `## Interpretation` section
|
|
218
|
+
- `## Limits` section
|
|
219
|
+
|
|
220
|
+
Rules
|
|
221
|
+
|
|
222
|
+
- Generated signal artifacts should begin with the signal title as the first body heading.
|
|
223
|
+
- `Observed Signal` should state what was observed.
|
|
224
|
+
- `Source` should state where the signal came from.
|
|
225
|
+
- `Interpretation` should state what the signal may bear on.
|
|
226
|
+
- `Limits` should prevent overclaiming the signal.
|
|
227
|
+
- Tools should preserve the same generated body shape even when they use a maintained built-in template.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
# Continuity Integrity
|
|
232
|
+
|
|
233
|
+
- sha256-base64url-c14n-v1
|
|
234
|
+
- Towards: [tiinex.root.v1.schema.md](https://github.com/Tiinex/docs/blob/00adbcc5b0319410cf16752a54dcbf4813173040/.topics/.schemas/tiinex.root.v1.schema.md)
|
|
235
|
+
- Value: BFWYft1v0Ue0gUoO236DGScvnixS7_MIEwO6mhJhkNw
|
|
236
|
+
|
|
237
|
+
- sha256-base64url-c14n-v2
|
|
238
|
+
- Towards: self
|
|
239
|
+
- Value: IiDpQlRGL1WC5jCykMwSjdzXXHy70_-7z95ATooBfWE
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Continuity Context
|
|
2
|
+
|
|
3
|
+
- Envelope Schema: tiinex.root.v1
|
|
4
|
+
- Current
|
|
5
|
+
- Current Schema: tiinex.transition.definition.v1
|
|
6
|
+
- Created At: 2026-08-19 00:00:00
|
|
7
|
+
- Summary: Canonical browser-local standalone Task creation transition.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Create standalone Task
|
|
12
|
+
|
|
13
|
+
## Transition Identity
|
|
14
|
+
|
|
15
|
+
- Name: Create standalone Task
|
|
16
|
+
- Version: 1
|
|
17
|
+
- Canonical Identifier: tiinex.site.create-task.v1
|
|
18
|
+
- Human Label: Task
|
|
19
|
+
|
|
20
|
+
## Purpose And Scope
|
|
21
|
+
|
|
22
|
+
- Purpose: Create one browser-local standalone Task in the selected workspace.
|
|
23
|
+
- Semantic Boundary: Standalone local Task creation only; no Parent, relation materialization, remote write, or source provenance is implied.
|
|
24
|
+
|
|
25
|
+
## Input Roles
|
|
26
|
+
|
|
27
|
+
- none
|
|
28
|
+
|
|
29
|
+
## Output Roles
|
|
30
|
+
|
|
31
|
+
- task
|
|
32
|
+
- Meaning: Standalone Task created by the invocation.
|
|
33
|
+
- Minimum Count: 1
|
|
34
|
+
- Maximum Count: 1
|
|
35
|
+
- Target Kind: artifact
|
|
36
|
+
- Schema Constraint: tiinex.task.v1
|
|
37
|
+
- Generation Binding: target-schema
|
|
38
|
+
|
|
39
|
+
## Lifecycle And Continuity Effects
|
|
40
|
+
|
|
41
|
+
### Lifecycle Effects
|
|
42
|
+
|
|
43
|
+
- create-task
|
|
44
|
+
- Target Binding: task
|
|
45
|
+
- Effect: create-new
|
|
46
|
+
- Logical Continuity: new-subject
|
|
47
|
+
- Required Materialization Operation: create
|
|
48
|
+
|
|
49
|
+
### Parent Effects
|
|
50
|
+
|
|
51
|
+
- none
|
|
52
|
+
|
|
53
|
+
## Relation Effects
|
|
54
|
+
|
|
55
|
+
- none
|
|
56
|
+
|
|
57
|
+
## Applicability And Conditions
|
|
58
|
+
|
|
59
|
+
- Applicability Meaning: A workspace may create one standalone browser-local Task when exact Task generation and local placement authority are qualified.
|
|
60
|
+
- Failure Meaning: Task creation remains unavailable when exact schema, generation, or local placement authority cannot be resolved.
|
|
61
|
+
- Unknown Meaning: Unknown or unavailable authority remains unresolved and must not be guessed.
|
|
62
|
+
|
|
63
|
+
## Authoring Bindings
|
|
64
|
+
|
|
65
|
+
- none
|
|
66
|
+
|
|
67
|
+
## Placement Intent
|
|
68
|
+
|
|
69
|
+
### Destination Bindings
|
|
70
|
+
|
|
71
|
+
- workspace-draft
|
|
72
|
+
- Meaning: Browser-local workspace selected by this invocation.
|
|
73
|
+
- Required: yes
|
|
74
|
+
|
|
75
|
+
### Output Placements
|
|
76
|
+
|
|
77
|
+
- task-placement
|
|
78
|
+
- Output Binding: task
|
|
79
|
+
- Destination Binding: workspace-draft
|
|
80
|
+
- Placement Intent: new-materialization
|
|
81
|
+
- Naming Authority: explicit-binding
|
|
82
|
+
- Explicit Override Allowed: no
|
|
83
|
+
|
|
84
|
+
## Interpretation Limits
|
|
85
|
+
|
|
86
|
+
- Does Not Prove: remote publication, source provenance, Parent ancestry, or relation semantics.
|
|
87
|
+
- Must Not Be Inferred: a source repository, a Parent, a cross-workspace relation, or universal standalone creation for other schemas.
|
|
88
|
+
|
|
89
|
+
# Continuity Integrity
|
|
90
|
+
|
|
91
|
+
- bundled-source-identity-v1
|
|
92
|
+
- Towards: self
|
|
93
|
+
- Value: tiinex.site.bundle:create-task-transition-definition.trace.md:v1
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Continuity Context
|
|
2
|
+
|
|
3
|
+
- Envelope Schema: tiinex.root.v1
|
|
4
|
+
- Current
|
|
5
|
+
- Current Schema: tiinex.transition.definition.v1
|
|
6
|
+
- Created At: 2026-08-17 00:00:00
|
|
7
|
+
- Summary: Canonical browser-local Topic to Task product transition.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Topic to Task
|
|
12
|
+
|
|
13
|
+
## Transition Identity
|
|
14
|
+
|
|
15
|
+
- Name: Topic to Task
|
|
16
|
+
- Version: 1
|
|
17
|
+
- Canonical Identifier: tiinex.site.topic-to-task.v1
|
|
18
|
+
- Human Label: Create task
|
|
19
|
+
|
|
20
|
+
## Purpose And Scope
|
|
21
|
+
|
|
22
|
+
- Purpose: Create one browser-local Task that directly continues the selected Topic.
|
|
23
|
+
- Semantic Boundary: Canonical local Task creation only; no remote write, repository path allocation, relation materialization, or source mutation.
|
|
24
|
+
|
|
25
|
+
## Input Roles
|
|
26
|
+
|
|
27
|
+
- source-topic
|
|
28
|
+
- Meaning: Topic used as the direct continuity source.
|
|
29
|
+
- Minimum Count: 1
|
|
30
|
+
- Maximum Count: 1
|
|
31
|
+
- Target Kind: artifact
|
|
32
|
+
- Schema Constraint: tiinex.topic.v1
|
|
33
|
+
- Acquisition Policy: existing-only
|
|
34
|
+
|
|
35
|
+
## Output Roles
|
|
36
|
+
|
|
37
|
+
- task
|
|
38
|
+
- Meaning: Task created by the invocation.
|
|
39
|
+
- Minimum Count: 1
|
|
40
|
+
- Maximum Count: 1
|
|
41
|
+
- Target Kind: artifact
|
|
42
|
+
- Schema Constraint: tiinex.task.v1
|
|
43
|
+
- Generation Binding: target-schema
|
|
44
|
+
|
|
45
|
+
## Lifecycle And Continuity Effects
|
|
46
|
+
|
|
47
|
+
### Lifecycle Effects
|
|
48
|
+
|
|
49
|
+
- create-task
|
|
50
|
+
- Target Binding: task
|
|
51
|
+
- Effect: create-new
|
|
52
|
+
- Logical Continuity: new-subject
|
|
53
|
+
- Required Materialization Operation: create
|
|
54
|
+
|
|
55
|
+
### Parent Effects
|
|
56
|
+
|
|
57
|
+
- task-continues-topic
|
|
58
|
+
- Output Binding: task
|
|
59
|
+
- Parent Binding: source-topic
|
|
60
|
+
- Effect: set
|
|
61
|
+
|
|
62
|
+
## Relation Effects
|
|
63
|
+
|
|
64
|
+
- none
|
|
65
|
+
|
|
66
|
+
## Applicability And Conditions
|
|
67
|
+
|
|
68
|
+
- Applicability Meaning: A currently selected canonical Topic may create one local Task when the invocation and materialization plan qualify.
|
|
69
|
+
- Failure Meaning: Creation remains unavailable when canonical authority, bindings, Parent recovery, or materialization preflight cannot be qualified.
|
|
70
|
+
- Unknown Meaning: Unknown or unavailable authority remains unresolved and must not be guessed.
|
|
71
|
+
|
|
72
|
+
## Authoring Bindings
|
|
73
|
+
|
|
74
|
+
- none
|
|
75
|
+
|
|
76
|
+
## Placement Intent
|
|
77
|
+
|
|
78
|
+
### Destination Bindings
|
|
79
|
+
|
|
80
|
+
- workspace-draft
|
|
81
|
+
- Meaning: Browser-local workspace selected by this invocation.
|
|
82
|
+
- Required: yes
|
|
83
|
+
|
|
84
|
+
### Output Placements
|
|
85
|
+
|
|
86
|
+
- task-placement
|
|
87
|
+
- Output Binding: task
|
|
88
|
+
- Destination Binding: workspace-draft
|
|
89
|
+
- Placement Intent: new-materialization
|
|
90
|
+
- Naming Authority: explicit-binding
|
|
91
|
+
- Explicit Override Allowed: no
|
|
92
|
+
|
|
93
|
+
## Interpretation Limits
|
|
94
|
+
|
|
95
|
+
- Does Not Prove: remote publication, repository path allocation, generic relation execution, Condition evaluation, or filesystem materialization.
|
|
96
|
+
- Must Not Be Inferred: a repository path, File Naming resolver, source mutation, or legacy continuation semantics.
|
|
97
|
+
|
|
98
|
+
# Continuity Integrity
|
|
99
|
+
|
|
100
|
+
- bundled-source-identity-v1
|
|
101
|
+
- Towards: self
|
|
102
|
+
- Value: tiinex.site.bundle:topic-to-task-transition-definition.trace.md:v1
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Continuity Context
|
|
2
|
+
|
|
3
|
+
- Envelope Schema: tiinex.root.v1
|
|
4
|
+
- Current
|
|
5
|
+
- Current Schema: tiinex.semantic.package.v1
|
|
6
|
+
- Created At: 2026-08-17 00:00:00
|
|
7
|
+
- Summary: Task semantic package for schema-local Transition discovery.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Task Semantic Package
|
|
12
|
+
|
|
13
|
+
## Package Identity
|
|
14
|
+
|
|
15
|
+
- Package Name: Task
|
|
16
|
+
- Purpose: Site-local semantic neighborhood for the canonical Task schema and Task-oriented Transition discovery.
|
|
17
|
+
|
|
18
|
+
## Package Boundary
|
|
19
|
+
|
|
20
|
+
- Boundary Root: manifest-directory
|
|
21
|
+
- Discovery Policy: recursive-within-boundary
|
|
22
|
+
- Nested Package Policy: explicit-only
|
|
23
|
+
|
|
24
|
+
## Included Packages
|
|
25
|
+
|
|
26
|
+
- none
|
|
27
|
+
|
|
28
|
+
## External Package Dependencies
|
|
29
|
+
|
|
30
|
+
- Topic Package
|
|
31
|
+
- Package Reference: [Topic Package](site-local:src/schemas/core/topic/topic-semantic-package.trace.md)
|
|
32
|
+
|
|
33
|
+
## Schema Resolution Bindings
|
|
34
|
+
|
|
35
|
+
- tiinex.task.v1
|
|
36
|
+
- Schema Reference: [tiinex.task.v1](tiinex.task.v1.schema.md)
|
|
37
|
+
|
|
38
|
+
- tiinex.topic.v1
|
|
39
|
+
- Schema Reference: [tiinex.topic.v1](site-local:src/schemas/core/topic/tiinex.topic.v1.schema.md)
|
|
40
|
+
- Package Reference: [Topic Package](site-local:src/schemas/core/topic/topic-semantic-package.trace.md)
|
|
41
|
+
|
|
42
|
+
## Interpretation Limits
|
|
43
|
+
|
|
44
|
+
- Does Not Mean: package ownership of Transition semantic truth
|
|
45
|
+
- Must Not Be Used To Claim: participation, applicability, executability, authorization, ordering, recommendation, or UI visibility
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
# Continuity Integrity
|
|
50
|
+
|
|
51
|
+
- sha256-base64url-c14n-v2
|
|
52
|
+
- Towards: self
|
|
53
|
+
- Value: Ba4sghoxq8OjlFLJvc168getEQESikdcvctB4FLP0vo
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Continuity Context
|
|
2
|
+
|
|
3
|
+
- Envelope Schema: tiinex.root.v1
|
|
4
|
+
- Current
|
|
5
|
+
- Current Schema: tiinex.schema.transition.companion.v1
|
|
6
|
+
- Created At: 2026-08-17 00:00:00
|
|
7
|
+
- Summary: Explicit Task schema Transition attachment projection.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Task Schema Transition Companion
|
|
12
|
+
|
|
13
|
+
## Schema Binding
|
|
14
|
+
|
|
15
|
+
- Schema Reference: [tiinex.task.v1](tiinex.task.v1.schema.md)
|
|
16
|
+
|
|
17
|
+
## Transition Attachments
|
|
18
|
+
|
|
19
|
+
- topic-to-task
|
|
20
|
+
- Transition Reference: [Topic to Task](.transitions/topic-to-task-transition-definition.trace.md)
|
|
21
|
+
|
|
22
|
+
## Interpretation Limits
|
|
23
|
+
|
|
24
|
+
- Does Not Mean: participation by itself
|
|
25
|
+
- Must Not Be Used To Claim: applicability or execution
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Continuity Integrity
|
|
30
|
+
|
|
31
|
+
- sha256-base64url-c14n-v2
|
|
32
|
+
- Towards: self
|
|
33
|
+
- Value: NG86jbaIvc2hB9bcyPC_BlSHmqdBkf_jUYDnlrSZTkI
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { TASK_CANONICAL_REQUIRED_INPUTS } from '@tiinex/core/schemas/core/task/tiinex.task.v1.contract.js';
|
|
2
|
+
|
|
3
|
+
export function readCanonicalTaskAuthoringValues(markdown = '') {
|
|
4
|
+
const text = normalize(markdown);
|
|
5
|
+
const sections = rawArtifactSections(text);
|
|
6
|
+
const summary = currentSummary(sections.envelope);
|
|
7
|
+
const values = { Summary: summary };
|
|
8
|
+
for (const name of TASK_CANONICAL_REQUIRED_INPUTS.slice(1)) values[name] = sectionBody(sections.body, name);
|
|
9
|
+
const qualified = TASK_CANONICAL_REQUIRED_INPUTS.every((name) => values[name] !== undefined && String(values[name]).trim() !== '');
|
|
10
|
+
return Object.freeze({ qualified, values: Object.freeze(values), requiredInputs: TASK_CANONICAL_REQUIRED_INPUTS });
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function renderCanonicalTaskEditMarkdown(originalMarkdown = '', inputValues = {}) {
|
|
14
|
+
const parsed = readCanonicalTaskAuthoringValues(originalMarkdown);
|
|
15
|
+
if (!parsed.qualified) return Object.freeze({ state: 'unqualified', reason: 'canonical-task-authoring-shape-unavailable', markdown: '' });
|
|
16
|
+
const values = Object.fromEntries(TASK_CANONICAL_REQUIRED_INPUTS.map((name) => [name, String(inputValues[name] ?? '')]));
|
|
17
|
+
if (TASK_CANONICAL_REQUIRED_INPUTS.some((name) => !values[name].trim())) return Object.freeze({ state: 'unqualified', reason: 'canonical-task-authoring-input-missing', markdown: '' });
|
|
18
|
+
const raw = rawArtifactSections(normalize(originalMarkdown));
|
|
19
|
+
const envelope = replaceCurrentSummary(raw.envelope, values.Summary);
|
|
20
|
+
const body = `# ${values.Summary}\n\n${TASK_CANONICAL_REQUIRED_INPUTS.slice(1).map((name) => `## ${name}\n\n${values[name]}`).join('\n\n')}`;
|
|
21
|
+
const integrity = raw.integrity ? `\n\n${raw.integrity}` : '';
|
|
22
|
+
return Object.freeze({ state: 'rendered', markdown: `${envelope}\n\n---\n\n${body}${integrity}\n`, values: Object.freeze(values) });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function rawArtifactSections(markdown = '') {
|
|
26
|
+
const text = normalize(markdown).trim();
|
|
27
|
+
const boundary = /^---\s*$/m.exec(text);
|
|
28
|
+
if (!boundary) return { envelope: text, body: '', integrity: '' };
|
|
29
|
+
const envelope = text.slice(0, boundary.index).trimEnd();
|
|
30
|
+
const remainder = text.slice(boundary.index + boundary[0].length).replace(/^\n/, '');
|
|
31
|
+
const integrityIndex = remainder.search(/^# Continuity Integrity\s*$/m);
|
|
32
|
+
return {
|
|
33
|
+
envelope,
|
|
34
|
+
body: (integrityIndex === -1 ? remainder : remainder.slice(0, integrityIndex)).trim(),
|
|
35
|
+
integrity: integrityIndex === -1 ? '' : remainder.slice(integrityIndex).trim()
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function currentSummary(envelope = '') {
|
|
39
|
+
const lines = normalize(envelope).split('\n');
|
|
40
|
+
const start = lines.findIndex((line) => /^-\s+Current\s*$/.test(line));
|
|
41
|
+
if (start === -1) return '';
|
|
42
|
+
for (let i = start + 1; i < lines.length; i += 1) {
|
|
43
|
+
if (/^-\s+\S/.test(lines[i])) break;
|
|
44
|
+
const match = lines[i].match(/^\s+-\s*Summary:\s*(.*)$/);
|
|
45
|
+
if (match) return match[1].trim();
|
|
46
|
+
}
|
|
47
|
+
return '';
|
|
48
|
+
}
|
|
49
|
+
function replaceCurrentSummary(envelope = '', summary = '') {
|
|
50
|
+
const lines = normalize(envelope).split('\n');
|
|
51
|
+
const start = lines.findIndex((line) => /^-\s+Current\s*$/.test(line));
|
|
52
|
+
if (start === -1) return envelope;
|
|
53
|
+
for (let i = start + 1; i < lines.length; i += 1) {
|
|
54
|
+
if (/^-\s+\S/.test(lines[i])) break;
|
|
55
|
+
const match = lines[i].match(/^(\s+)-\s*Summary:\s*(.*)$/);
|
|
56
|
+
if (match) { lines[i] = `${match[1]}- Summary: ${summary}`; break; }
|
|
57
|
+
}
|
|
58
|
+
return lines.join('\n');
|
|
59
|
+
}
|
|
60
|
+
function sectionBody(body = '', name = '') {
|
|
61
|
+
const escaped = String(name).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
62
|
+
const match = normalize(body).match(new RegExp(`^## ${escaped}\\n\\n([\\s\\S]*?)(?=\\n\\n## |$)`, 'm'));
|
|
63
|
+
return match ? match[1].trimEnd() : undefined;
|
|
64
|
+
}
|
|
65
|
+
function normalize(value = '') { return String(value || '').replace(/\r\n?/g, '\n'); }
|