@fulmenhq/tsfulmen 0.1.13 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -512
- package/README.md +111 -28
- package/config/crucible-ts/agentic/roles/README.md +76 -0
- package/config/crucible-ts/agentic/roles/cicd.yaml +82 -0
- package/config/crucible-ts/agentic/roles/dataeng.yaml +104 -0
- package/config/crucible-ts/agentic/roles/devlead.yaml +84 -0
- package/config/crucible-ts/agentic/roles/devrev.yaml +105 -0
- package/config/crucible-ts/agentic/roles/entarch.yaml +101 -0
- package/config/crucible-ts/agentic/roles/infoarch.yaml +95 -0
- package/config/crucible-ts/agentic/roles/prodmktg.yaml +92 -0
- package/config/crucible-ts/agentic/roles/qa.yaml +148 -0
- package/config/crucible-ts/agentic/roles/secrev.yaml +101 -0
- package/config/crucible-ts/agentic/roles/uxdev.yaml +168 -0
- package/config/crucible-ts/branding/ecosystem.yaml +26 -0
- package/config/crucible-ts/library/foundry/exit-codes.snapshot.json +26 -0
- package/config/crucible-ts/library/foundry/exit-codes.yaml +28 -3
- package/config/crucible-ts/library/foundry/patterns.yaml +2 -2
- package/config/crucible-ts/library/foundry/signal-resolution-fixtures.yaml +207 -0
- package/config/crucible-ts/library/foundry/signals.yaml +21 -0
- package/config/crucible-ts/library/foundry/simplified-modes.snapshot.json +9 -1
- package/config/crucible-ts/library/{foundry/similarity-fixtures.yaml → similarity/fixtures.yaml} +1 -1
- package/config/crucible-ts/library/v1.0.0/module-manifest.yaml +1 -2
- package/config/crucible-ts/taxonomy/fixture-catalog.yaml +145 -0
- package/config/crucible-ts/taxonomy/languages.yaml +2 -2
- package/config/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalogs.yaml +77 -0
- package/config/crucible-ts/taxonomy/library/platform-modules/v1.1.0/modules.yaml +722 -0
- package/config/crucible-ts/taxonomy/metrics.yaml +1 -1
- package/config/crucible-ts/taxonomy/repository-categories.yaml +134 -1
- package/dist/appidentity/index.d.ts +117 -35
- package/dist/appidentity/index.js +752 -592
- package/dist/appidentity/index.js.map +1 -1
- package/dist/config/index.js +118 -6
- package/dist/config/index.js.map +1 -1
- package/dist/crucible/index.js +118 -6
- package/dist/crucible/index.js.map +1 -1
- package/dist/errors/index.js +118 -6
- package/dist/errors/index.js.map +1 -1
- package/dist/foundry/index.d.ts +13 -676
- package/dist/foundry/index.js +118 -6
- package/dist/foundry/index.js.map +1 -1
- package/dist/foundry/similarity/index.d.ts +2 -2
- package/dist/fulhash/index.d.ts +64 -12
- package/dist/fulhash/index.js +292 -53
- package/dist/fulhash/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +753 -593
- package/dist/index.js.map +1 -1
- package/dist/{manager-D27vrdaS.d.ts → manager-CH3fX7zO.d.ts} +1 -1
- package/dist/pathfinder/index.js +368 -59
- package/dist/pathfinder/index.js.map +1 -1
- package/dist/reports/license-inventory.csv +302 -0
- package/dist/schema/index.js +118 -6
- package/dist/schema/index.js.map +1 -1
- package/dist/signals/index.d.ts +675 -0
- package/dist/signals/index.js +5790 -0
- package/dist/signals/index.js.map +1 -0
- package/dist/similarity/index.d.ts +2 -0
- package/dist/similarity/index.js +136 -0
- package/dist/similarity/index.js.map +1 -0
- package/dist/{suggest-Cv7SVQRu.d.ts → suggest-D8LbwtPV.d.ts} +1 -1
- package/dist/telemetry/http/index.js +704 -591
- package/dist/telemetry/http/index.js.map +1 -1
- package/dist/telemetry/index.js +118 -6
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/prometheus/index.d.ts +1 -1
- package/dist/telemetry/prometheus/index.js +175 -11
- package/dist/telemetry/prometheus/index.js.map +1 -1
- package/package.json +15 -6
- package/schemas/crucible-ts/assessment/v1.0.0/severity-definitions.schema.json +1 -1
- package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/fulmen-config-paths.schema.json +1 -1
- package/schemas/crucible-ts/config/repository/app-identity/v1.0.0/app-identity.schema.json +3 -3
- package/schemas/crucible-ts/config/repository/v1.0.0/lifecycle-phase.json +1 -1
- package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json +1 -1
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-adoption-status.json +1 -1
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-frontmatter.schema.json +3 -3
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-lifecycle-status.json +1 -1
- package/schemas/crucible-ts/config/sync-keys.schema.yaml +14 -0
- package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json +1 -1
- package/schemas/crucible-ts/design/README.md +159 -0
- package/schemas/crucible-ts/design/core/v1.0.0/component-states.schema.json +204 -0
- package/schemas/crucible-ts/design/core/v1.0.0/semantic-colors.schema.json +179 -0
- package/schemas/crucible-ts/design/core/v1.0.0/spacing-scale.schema.json +165 -0
- package/schemas/crucible-ts/design/core/v1.0.0/typography-roles.schema.json +195 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/color-palette.schema.json +303 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/component.schema.json +374 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/layout.schema.json +272 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/theme.schema.json +205 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/typography.schema.json +316 -0
- package/schemas/crucible-ts/devsecops/lorage-central/activity/v1.0.0/activity.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/credentials/v1.0.0/credentials.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/policy/v1.0.0/policy.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/recipe/v1.0.0/recipe.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/runbooks/v1.0.0/runbook.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/tenant/v1.0.0/tenant.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/secrets/v1.0.0/secrets.schema.json +1 -1
- package/schemas/crucible-ts/error-handling/v1.0.0/error-response.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/country-codes.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/exit-codes.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/http-status-groups.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/mime-types.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/patterns.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/signal-resolution-fixtures.schema.json +140 -0
- package/schemas/crucible-ts/library/foundry/v1.0.0/signals.schema.json +6 -1
- package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +1 -1
- package/schemas/crucible-ts/library/fulhash/v1.0.0/checksum-string.schema.json +2 -2
- package/schemas/crucible-ts/library/fulhash/v1.0.0/digest.schema.json +61 -1
- package/schemas/crucible-ts/library/fulhash/v1.0.0/fixtures.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-entry.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-info.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-manifest.schema.json +2 -2
- package/schemas/crucible-ts/library/fulpack/v1.0.0/create-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-result.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/scan-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/validation-result.schema.json +1 -1
- package/schemas/crucible-ts/library/module-manifest/v1.0.0/module-manifest.schema.json +1 -1
- package/schemas/crucible-ts/library/{foundry → similarity}/v1.0.0/similarity.schema.json +2 -2
- package/schemas/crucible-ts/library/{foundry → similarity}/v2.0.0/similarity.schema.json +2 -2
- package/schemas/crucible-ts/observability/metrics/v1.0.0/metrics-event.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/find-query.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/finder-config.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/path-result.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/error-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/health-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/success-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/version-response.schema.json +1 -1
- package/schemas/crucible-ts/server/management/v1.0.0/server-management.schema.json +1 -1
- package/schemas/crucible-ts/standards/publishing/v1.0.0/spec-catalog.schema.json +134 -0
- package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/modules/v1.0.0/devsecops-module-entry.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/fixture/v1.0.0/fixture-catalog.schema.json +166 -0
- package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalog-entry.schema.json +98 -0
- package/schemas/crucible-ts/taxonomy/library/fulencode/detection-confidence/v1.0.0/levels.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulencode/encoding-families/v1.0.0/families.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulhash/algorithms/v1.0.0/algorithms.yaml +16 -0
- package/schemas/crucible-ts/taxonomy/library/modules/v1.0.0/module-entry.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/modules/v1.1.0/module-entry.schema.json +436 -0
- package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-key.schema.json +16 -8
- package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-metadata.schema.json +1 -1
- package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +43 -0
- package/schemas/crucible-ts/upstream/3leaps/agentic/v0/role-prompt.schema.json +183 -0
- package/schemas/crucible-ts/upstream/3leaps/ailink/v0/prompt.schema.json +204 -0
- package/schemas/crucible-ts/upstream/3leaps/ailink/v0/search-response.schema.json +152 -0
- package/schemas/crucible-ts/upstream/README.md +50 -0
- package/schemas/crucible-ts/web/branding/v1.0.0/site-branding.schema.json +1 -1
- package/schemas/crucible-ts/web/styling/v1.0.0/site-styling.schema.json +1 -1
- package/schemas/crucible-ts/config/goneat/README.md +0 -60
- package/schemas/crucible-ts/config/goneat/v1.0.0/dates.yaml +0 -234
- package/schemas/crucible-ts/config/goneat/v1.0.0/goneat-config.yaml +0 -344
- package/schemas/crucible-ts/config/goneat/v1.0.0/lifecycle-phase.json +0 -20
- package/schemas/crucible-ts/config/goneat/v1.0.0/release-phase.json +0 -17
- package/schemas/crucible-ts/config/goneat/v1.0.0/security-policy.yaml +0 -178
- package/schemas/crucible-ts/config/goneat/v1.0.0/version-policy.schema.yaml +0 -205
- package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/README.md +0 -177
- package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/goneat-tools-config.schema.yaml +0 -146
package/package.json
CHANGED
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"vitest": "^2.1.5"
|
|
35
35
|
},
|
|
36
36
|
"engines": {
|
|
37
|
-
"bun": "
|
|
38
|
-
"node": "
|
|
37
|
+
"bun": "\u003e=1.0.0",
|
|
38
|
+
"node": "\u003e=20.0.0"
|
|
39
39
|
},
|
|
40
40
|
"exports": {
|
|
41
41
|
".": {
|
|
@@ -94,6 +94,14 @@
|
|
|
94
94
|
"import": "./dist/schema/index.js",
|
|
95
95
|
"types": "./dist/schema/index.d.ts"
|
|
96
96
|
},
|
|
97
|
+
"./signals": {
|
|
98
|
+
"import": "./dist/signals/index.js",
|
|
99
|
+
"types": "./dist/signals/index.d.ts"
|
|
100
|
+
},
|
|
101
|
+
"./similarity": {
|
|
102
|
+
"import": "./dist/similarity/index.js",
|
|
103
|
+
"types": "./dist/similarity/index.d.ts"
|
|
104
|
+
},
|
|
97
105
|
"./telemetry": {
|
|
98
106
|
"import": "./dist/telemetry/index.js",
|
|
99
107
|
"types": "./dist/telemetry/index.d.ts"
|
|
@@ -152,23 +160,24 @@
|
|
|
152
160
|
"dev": "tsx src/index.ts",
|
|
153
161
|
"lint": "make lint",
|
|
154
162
|
"lint:fix": "make fmt",
|
|
155
|
-
"prepublishOnly": "bun run quality
|
|
163
|
+
"prepublishOnly": "bun run quality \u0026\u0026 bun run validate:all \u0026\u0026 bunx tsx scripts/prepare-wasm-package.ts",
|
|
156
164
|
"quality": "make quality",
|
|
157
165
|
"test": "make test",
|
|
158
166
|
"test:coverage": "make test-coverage",
|
|
159
167
|
"test:watch": "make test-watch",
|
|
160
168
|
"typecheck": "make typecheck",
|
|
161
|
-
"validate:all": "bun run validate:exports
|
|
169
|
+
"validate:all": "bun run validate:exports \u0026\u0026 bun run validate:tsup \u0026\u0026 bun run validate:source-modules \u0026\u0026 bun run validate:package \u0026\u0026 bun run validate:imports \u0026\u0026 bun run validate:types",
|
|
162
170
|
"validate:exports": "bunx tsx scripts/validate-exports.ts",
|
|
163
171
|
"validate:imports": "bunx tsx scripts/validate-imports.ts",
|
|
164
172
|
"validate:package": "bunx tsx scripts/validate-package-contents.ts",
|
|
165
173
|
"validate:source-modules": "bunx tsx scripts/validate-source-modules.ts",
|
|
166
174
|
"validate:tsup": "bunx tsx scripts/validate-tsup-config.ts",
|
|
167
175
|
"validate:types": "bunx tsx scripts/validate-types.ts",
|
|
168
|
-
"verify:
|
|
176
|
+
"verify:local": "make verify-local-install",
|
|
177
|
+
"verify:package": "make verify-published-package",
|
|
169
178
|
"version:sync": "make version-sync"
|
|
170
179
|
},
|
|
171
180
|
"type": "module",
|
|
172
181
|
"types": "./dist/index.d.ts",
|
|
173
|
-
"version": "0.
|
|
182
|
+
"version": "0.2.0"
|
|
174
183
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/assessment/severity-definitions-v1.0.0.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/assessment/severity-definitions-v1.0.0.json",
|
|
4
4
|
"title": "Assessment Severity Definitions",
|
|
5
5
|
"description": "Shared severity definitions for assessment and analysis tooling.",
|
|
6
6
|
"$comment": "Implementations MUST compare severities using severityLevel, not lexical ordering of severityName.",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/config/fulmen-ecosystem/fulmen-config-paths-v1.0.0.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/config/fulmen-ecosystem/fulmen-config-paths-v1.0.0.json",
|
|
4
4
|
"title": "Fulmen Config Paths",
|
|
5
5
|
"description": "Describes shared configuration directories for Fulmen tools",
|
|
6
6
|
"type": "object",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/config/repository/app-identity/v1.0.0/app-identity.schema.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/config/repository/app-identity/v1.0.0/app-identity.schema.json",
|
|
4
4
|
"title": "Fulmen Application Identity",
|
|
5
5
|
"description": "Application identity metadata for Fulmen ecosystem projects",
|
|
6
6
|
"type": "object",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
},
|
|
30
30
|
"vendor": {
|
|
31
31
|
"type": "string",
|
|
32
|
-
"pattern": "^[a-
|
|
32
|
+
"pattern": "^[a-z0-9]{2,64}$",
|
|
33
33
|
"minLength": 2,
|
|
34
34
|
"maxLength": 64,
|
|
35
|
-
"description": "Lowercase vendor namespace (no hyphens,
|
|
35
|
+
"description": "Lowercase vendor namespace (alphanumeric only, no hyphens). Leading digits permitted - vendor is used for filesystem paths and config directories, not language-specific package imports. Examples: 'fulmenhq', '3leaps', '37signals'."
|
|
36
36
|
},
|
|
37
37
|
"env_prefix": {
|
|
38
38
|
"type": "string",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/repository/lifecycle-phase-v1.0.0.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/repository/lifecycle-phase-v1.0.0.json",
|
|
4
4
|
"title": "Repository Lifecycle Phase",
|
|
5
5
|
"description": "Product lifecycle maturity phase used to drive quality gates, coverage thresholds, and communication posture across Fulmen repositories.",
|
|
6
6
|
"type": "string",
|
package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/config/repository-category/codex/v1.0.0/codex-config.schema.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/config/repository-category/codex/v1.0.0/codex-config.schema.json",
|
|
4
4
|
"title": "Codex Configuration Schema",
|
|
5
5
|
"description": "Configuration schema for Fulmen codex templates (documentation sites, schema registries, knowledge hubs)",
|
|
6
6
|
"type": "object",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/standards/adr-adoption-status-v1.0.0.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/standards/adr-adoption-status-v1.0.0.json",
|
|
4
4
|
"title": "ADR Adoption Status",
|
|
5
5
|
"description": "Per-library adoption status for ecosystem ADRs. Tracks implementation progress across language foundations (gofulmen, pyfulmen, tsfulmen, etc.).",
|
|
6
6
|
"type": "string",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/standards/adr-frontmatter-v1.0.0.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/standards/adr-frontmatter-v1.0.0.json",
|
|
4
4
|
"title": "ADR Frontmatter Schema",
|
|
5
5
|
"description": "Required frontmatter structure for Architecture Decision Records (ADRs) in the Fulmen ecosystem. Ensures consistency, enables validation, and supports tooling.",
|
|
6
6
|
"type": "object",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
]
|
|
34
34
|
},
|
|
35
35
|
"status": {
|
|
36
|
-
"$ref": "https://schemas.fulmenhq.dev/standards/adr-lifecycle-status-v1.0.0.json",
|
|
36
|
+
"$ref": "https://schemas.fulmenhq.dev/crucible/standards/adr-lifecycle-status-v1.0.0.json",
|
|
37
37
|
"description": "Current lifecycle status of this ADR. Drives adoption guidance and deprecation warnings."
|
|
38
38
|
},
|
|
39
39
|
"date": {
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"type": "object",
|
|
165
165
|
"description": "Per-library adoption status tracking. Keys are library names, values are adoption status. Used for ecosystem ADRs only.",
|
|
166
166
|
"additionalProperties": {
|
|
167
|
-
"$ref": "https://schemas.fulmenhq.dev/standards/adr-adoption-status-v1.0.0.json"
|
|
167
|
+
"$ref": "https://schemas.fulmenhq.dev/crucible/standards/adr-adoption-status-v1.0.0.json"
|
|
168
168
|
},
|
|
169
169
|
"examples": [
|
|
170
170
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://schemas.fulmenhq.dev/standards/adr-lifecycle-status-v1.0.0.json",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/standards/adr-lifecycle-status-v1.0.0.json",
|
|
4
4
|
"title": "ADR Lifecycle Status",
|
|
5
5
|
"description": "Lifecycle status for Architecture Decision Records (ADRs) and standards documents. Inspired by ThoughtWorks Technology Radar maturity model, adapted for architectural decision tracking.",
|
|
6
6
|
"type": "string",
|
|
@@ -34,4 +34,18 @@ $defs:
|
|
|
34
34
|
type: array
|
|
35
35
|
items:
|
|
36
36
|
type: string
|
|
37
|
+
metadata:
|
|
38
|
+
type: object
|
|
39
|
+
description: Optional metadata for sync tooling
|
|
40
|
+
properties:
|
|
41
|
+
sourceRepo:
|
|
42
|
+
type: string
|
|
43
|
+
description: Source repository URL or 'local' for development references
|
|
44
|
+
sourcePathBase:
|
|
45
|
+
type: string
|
|
46
|
+
description: Base path within source repository for this sync key
|
|
47
|
+
notes:
|
|
48
|
+
type: string
|
|
49
|
+
description: Human-readable notes about usage, constraints, or caveats
|
|
50
|
+
additionalProperties: true
|
|
37
51
|
additionalProperties: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json",
|
|
4
4
|
"title": "SSOT Sync Provenance Metadata",
|
|
5
5
|
"description": "Aggregate provenance metadata for SSOT sync operations capturing source information for audit trails",
|
|
6
6
|
"type": "object",
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Design System Schemas
|
|
2
|
+
|
|
3
|
+
Schema definitions for Fulmen design systems. Provides a layered architecture separating semantic vocabulary (core) from implementation-specific patterns (TUI, web).
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
schemas/design/
|
|
9
|
+
├── core/v1.0.0/ # Semantic vocabulary (shared)
|
|
10
|
+
│ ├── semantic-colors.schema.json
|
|
11
|
+
│ ├── spacing-scale.schema.json
|
|
12
|
+
│ ├── typography-roles.schema.json
|
|
13
|
+
│ └── component-states.schema.json
|
|
14
|
+
├── tui/v1.0.0/ # Terminal UI implementation
|
|
15
|
+
│ ├── theme.schema.json # Root composition
|
|
16
|
+
│ ├── color-palette.schema.json
|
|
17
|
+
│ ├── typography.schema.json
|
|
18
|
+
│ ├── layout.schema.json
|
|
19
|
+
│ └── component.schema.json
|
|
20
|
+
└── web/v1.0.0/ # (Future) Web implementation
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Core Schemas
|
|
24
|
+
|
|
25
|
+
Core schemas define **semantic vocabulary** - the language of design - without implementation details. Both TUI and web implementations reference these definitions.
|
|
26
|
+
|
|
27
|
+
| Schema | Purpose |
|
|
28
|
+
| ------------------ | -------------------------------------------------------------- |
|
|
29
|
+
| `semantic-colors` | Color roles: primary, secondary, success, warning, error, etc. |
|
|
30
|
+
| `spacing-scale` | Spacing tokens: none, xs, sm, md, lg, xl, etc. |
|
|
31
|
+
| `typography-roles` | Text roles: display, headline, body, caption, code, etc. |
|
|
32
|
+
| `component-states` | UI states: default, hover, focus, active, disabled, etc. |
|
|
33
|
+
|
|
34
|
+
## TUI Schemas
|
|
35
|
+
|
|
36
|
+
Terminal UI schemas implement the core vocabulary for terminal environments with:
|
|
37
|
+
|
|
38
|
+
- **Color fallback chains**: truecolor → 256-color → 16-color → basic
|
|
39
|
+
- **Character set degradation**: unicode-full → unicode-basic → extended-ascii → ascii
|
|
40
|
+
- **Cell-based layouts**: dimensions in columns/rows
|
|
41
|
+
- **Box drawing**: configurable character sets (rounded, single, double, ascii)
|
|
42
|
+
|
|
43
|
+
| Schema | Purpose |
|
|
44
|
+
| --------------- | ----------------------------------------------- |
|
|
45
|
+
| `theme` | Root composition - aggregates all TUI schemas |
|
|
46
|
+
| `color-palette` | Terminal colors with capability-based fallbacks |
|
|
47
|
+
| `typography` | Charset support, glyphs, CJK width handling |
|
|
48
|
+
| `layout` | Cell-based dimensions, responsive breakpoints |
|
|
49
|
+
| `component` | Widget patterns with state styling |
|
|
50
|
+
|
|
51
|
+
## Usage
|
|
52
|
+
|
|
53
|
+
### Theme Files
|
|
54
|
+
|
|
55
|
+
Create theme YAML files that reference the TUI theme schema:
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
$schema: https://schemas.fulmenhq.dev/crucible/design/tui/v1.0.0/theme.schema.json
|
|
59
|
+
version: "1.0.0"
|
|
60
|
+
schema_version: "1.0.0"
|
|
61
|
+
|
|
62
|
+
metadata:
|
|
63
|
+
name: "Fulmen Dark"
|
|
64
|
+
id: "fulmen-dark"
|
|
65
|
+
description: "Default dark theme for Fulmen TUI applications"
|
|
66
|
+
dark_mode: true
|
|
67
|
+
|
|
68
|
+
requirements:
|
|
69
|
+
min_color_capability: "256"
|
|
70
|
+
min_charset: "unicode-basic"
|
|
71
|
+
|
|
72
|
+
colors:
|
|
73
|
+
version: "1.0.0"
|
|
74
|
+
name: "fulmen-dark"
|
|
75
|
+
semantic_colors:
|
|
76
|
+
primary:
|
|
77
|
+
role: "primary"
|
|
78
|
+
foreground:
|
|
79
|
+
truecolor: "#7AA2F7"
|
|
80
|
+
ansi256: 111
|
|
81
|
+
ansi16: "bright-blue"
|
|
82
|
+
# ...
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Accessing via Helper Libraries
|
|
86
|
+
|
|
87
|
+
```go
|
|
88
|
+
// Go (gofulmen)
|
|
89
|
+
import "github.com/fulmenhq/crucible"
|
|
90
|
+
|
|
91
|
+
theme, _ := crucible.DesignRegistry.TUI().Theme("fulmen-dark")
|
|
92
|
+
primaryColor := theme.Colors.SemanticColors.Primary.Foreground.Truecolor
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
// TypeScript (tsfulmen)
|
|
97
|
+
import { design } from "@fulmenhq/crucible";
|
|
98
|
+
|
|
99
|
+
const theme = design.tui().theme("fulmen-dark");
|
|
100
|
+
const primaryColor = theme.colors.semanticColors.primary.foreground.truecolor;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Terminal Capability Detection
|
|
104
|
+
|
|
105
|
+
TUI themes support graceful degradation based on terminal capabilities:
|
|
106
|
+
|
|
107
|
+
| Capability | Detection | Fallback Chain |
|
|
108
|
+
| ------------- | ----------------------------- | ---------------------------------- |
|
|
109
|
+
| **Color** | `$COLORTERM`, `$TERM` | truecolor → 256 → 16 → basic |
|
|
110
|
+
| **Charset** | `$LANG`, terminal query | unicode-full → basic-latin → ascii |
|
|
111
|
+
| **Nerd Font** | User config, detection script | nerd-font → unicode → ascii |
|
|
112
|
+
|
|
113
|
+
## WCAG Accessibility
|
|
114
|
+
|
|
115
|
+
Themes can declare WCAG conformance:
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
accessibility:
|
|
119
|
+
wcag_level: "AA"
|
|
120
|
+
min_contrast_ratio: 4.5
|
|
121
|
+
focus_visible_required: true
|
|
122
|
+
color_blind_safe: true
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The `wcag_contrast_ratio` field on semantic colors enables automated accessibility checking.
|
|
126
|
+
|
|
127
|
+
## Examples
|
|
128
|
+
|
|
129
|
+
Reference themes are available in `examples/design/tui/v1.0.0/themes/`:
|
|
130
|
+
|
|
131
|
+
- `dark.yaml` - Default dark theme with full capability (WCAG AA)
|
|
132
|
+
- `light.yaml` - Light mode for daytime use (WCAG AA)
|
|
133
|
+
- `high-contrast.yaml` - WCAG AAA compliant high contrast theme
|
|
134
|
+
|
|
135
|
+
## Roadmap
|
|
136
|
+
|
|
137
|
+
### v1.0.0 (Current)
|
|
138
|
+
|
|
139
|
+
- Core semantic vocabulary
|
|
140
|
+
- TUI implementation schemas
|
|
141
|
+
- Reference dark and high-contrast themes
|
|
142
|
+
|
|
143
|
+
### v1.1.0 (Planned)
|
|
144
|
+
|
|
145
|
+
- Animation/transition tokens
|
|
146
|
+
- Sound/haptic feedback schemas
|
|
147
|
+
- Theme inheritance/composition
|
|
148
|
+
|
|
149
|
+
### Future
|
|
150
|
+
|
|
151
|
+
- Web implementation schemas (`design/web/`)
|
|
152
|
+
- Design token export (Figma, Style Dictionary)
|
|
153
|
+
- Theme marketplace/registry
|
|
154
|
+
|
|
155
|
+
## Related Documentation
|
|
156
|
+
|
|
157
|
+
- [Fulmen Ecosystem Guide](../../docs/architecture/fulmen-ecosystem-guide.md)
|
|
158
|
+
- [Schema Normalization Standard](../../docs/standards/schema-normalization.md)
|
|
159
|
+
- [Terminal Catalog](../terminal/v1.0.0/)
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/design/core/v1.0.0/component-states.schema.json",
|
|
4
|
+
"title": "Component States Vocabulary",
|
|
5
|
+
"description": "Universal component state definitions for design systems. Implementation-agnostic vocabulary shared across TUI and web contexts.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"$defs": {
|
|
8
|
+
"interactiveState": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": [
|
|
11
|
+
"default",
|
|
12
|
+
"hover",
|
|
13
|
+
"focus",
|
|
14
|
+
"focus-visible",
|
|
15
|
+
"active",
|
|
16
|
+
"disabled",
|
|
17
|
+
"loading",
|
|
18
|
+
"selected",
|
|
19
|
+
"checked",
|
|
20
|
+
"indeterminate",
|
|
21
|
+
"expanded",
|
|
22
|
+
"collapsed"
|
|
23
|
+
],
|
|
24
|
+
"description": "Interactive component states"
|
|
25
|
+
},
|
|
26
|
+
"validationState": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"enum": [
|
|
29
|
+
"valid",
|
|
30
|
+
"invalid",
|
|
31
|
+
"warning",
|
|
32
|
+
"pending"
|
|
33
|
+
],
|
|
34
|
+
"description": "Form/input validation states"
|
|
35
|
+
},
|
|
36
|
+
"feedbackState": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": [
|
|
39
|
+
"success",
|
|
40
|
+
"error",
|
|
41
|
+
"warning",
|
|
42
|
+
"info",
|
|
43
|
+
"neutral"
|
|
44
|
+
],
|
|
45
|
+
"description": "User feedback states (for alerts, toasts, etc.)"
|
|
46
|
+
},
|
|
47
|
+
"visibilityState": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"enum": [
|
|
50
|
+
"visible",
|
|
51
|
+
"hidden",
|
|
52
|
+
"entering",
|
|
53
|
+
"exiting"
|
|
54
|
+
],
|
|
55
|
+
"description": "Visibility/transition states"
|
|
56
|
+
},
|
|
57
|
+
"stateDefinition": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"description": "A state definition with semantic meaning",
|
|
60
|
+
"properties": {
|
|
61
|
+
"state": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "State identifier"
|
|
64
|
+
},
|
|
65
|
+
"category": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"enum": [
|
|
68
|
+
"interactive",
|
|
69
|
+
"validation",
|
|
70
|
+
"feedback",
|
|
71
|
+
"visibility"
|
|
72
|
+
],
|
|
73
|
+
"description": "State category"
|
|
74
|
+
},
|
|
75
|
+
"description": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "When this state applies"
|
|
78
|
+
},
|
|
79
|
+
"aria_mapping": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"description": "Corresponding ARIA attribute/state"
|
|
82
|
+
},
|
|
83
|
+
"visual_indicators": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": {
|
|
86
|
+
"type": "string"
|
|
87
|
+
},
|
|
88
|
+
"description": "Required visual indicators for this state"
|
|
89
|
+
},
|
|
90
|
+
"can_combine_with": {
|
|
91
|
+
"type": "array",
|
|
92
|
+
"items": {
|
|
93
|
+
"type": "string"
|
|
94
|
+
},
|
|
95
|
+
"description": "States that can coexist with this one"
|
|
96
|
+
},
|
|
97
|
+
"mutually_exclusive_with": {
|
|
98
|
+
"type": "array",
|
|
99
|
+
"items": {
|
|
100
|
+
"type": "string"
|
|
101
|
+
},
|
|
102
|
+
"description": "States that cannot coexist with this one"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"required": [
|
|
106
|
+
"state",
|
|
107
|
+
"category"
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
"stateTransition": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"description": "Valid state transition",
|
|
113
|
+
"properties": {
|
|
114
|
+
"from": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"description": "Source state"
|
|
117
|
+
},
|
|
118
|
+
"to": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"description": "Target state"
|
|
121
|
+
},
|
|
122
|
+
"trigger": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"description": "What triggers this transition"
|
|
125
|
+
},
|
|
126
|
+
"reversible": {
|
|
127
|
+
"type": "boolean",
|
|
128
|
+
"description": "Whether transition can be reversed"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"required": [
|
|
132
|
+
"from",
|
|
133
|
+
"to",
|
|
134
|
+
"trigger"
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"properties": {
|
|
139
|
+
"$schema": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"description": "JSON Schema reference"
|
|
142
|
+
},
|
|
143
|
+
"version": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"pattern": "^[vV]?\\d+\\.\\d+\\.\\d+$",
|
|
146
|
+
"description": "Semantic version of the component states vocabulary"
|
|
147
|
+
},
|
|
148
|
+
"interactive_states": {
|
|
149
|
+
"type": "array",
|
|
150
|
+
"description": "Interactive state definitions",
|
|
151
|
+
"items": {
|
|
152
|
+
"$ref": "#/$defs/stateDefinition"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"validation_states": {
|
|
156
|
+
"type": "array",
|
|
157
|
+
"description": "Validation state definitions",
|
|
158
|
+
"items": {
|
|
159
|
+
"$ref": "#/$defs/stateDefinition"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"feedback_states": {
|
|
163
|
+
"type": "array",
|
|
164
|
+
"description": "Feedback state definitions",
|
|
165
|
+
"items": {
|
|
166
|
+
"$ref": "#/$defs/stateDefinition"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"state_transitions": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"description": "Valid state transitions",
|
|
172
|
+
"items": {
|
|
173
|
+
"$ref": "#/$defs/stateTransition"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"accessibility_requirements": {
|
|
177
|
+
"type": "object",
|
|
178
|
+
"description": "Accessibility requirements for states",
|
|
179
|
+
"properties": {
|
|
180
|
+
"focus_visible_required": {
|
|
181
|
+
"type": "boolean",
|
|
182
|
+
"description": "Whether focus-visible indicator is required"
|
|
183
|
+
},
|
|
184
|
+
"disabled_announcement": {
|
|
185
|
+
"type": "boolean",
|
|
186
|
+
"description": "Whether disabled state must be announced to AT"
|
|
187
|
+
},
|
|
188
|
+
"state_change_announcement": {
|
|
189
|
+
"type": "boolean",
|
|
190
|
+
"description": "Whether state changes should be announced"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"extensions": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"description": "Implementation-specific extensions",
|
|
197
|
+
"additionalProperties": true
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"required": [
|
|
201
|
+
"version"
|
|
202
|
+
],
|
|
203
|
+
"additionalProperties": false
|
|
204
|
+
}
|