@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
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/design/tui/v1.0.0/layout.schema.json",
|
|
4
|
+
"title": "TUI Layout",
|
|
5
|
+
"description": "Terminal layout configuration with cell-based dimensions and responsive breakpoints",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"$defs": {
|
|
8
|
+
"cellDimension": {
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"minimum": 0,
|
|
11
|
+
"description": "Dimension in terminal cells (characters/rows)"
|
|
12
|
+
},
|
|
13
|
+
"spacingValue": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"description": "Spacing value in cells",
|
|
16
|
+
"properties": {
|
|
17
|
+
"cols": {
|
|
18
|
+
"$ref": "#/$defs/cellDimension",
|
|
19
|
+
"description": "Horizontal spacing in columns"
|
|
20
|
+
},
|
|
21
|
+
"rows": {
|
|
22
|
+
"$ref": "#/$defs/cellDimension",
|
|
23
|
+
"description": "Vertical spacing in rows"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"additionalProperties": false
|
|
27
|
+
},
|
|
28
|
+
"terminalBreakpoint": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"description": "Terminal size breakpoint",
|
|
31
|
+
"properties": {
|
|
32
|
+
"name": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Breakpoint identifier"
|
|
35
|
+
},
|
|
36
|
+
"min_cols": {
|
|
37
|
+
"$ref": "#/$defs/cellDimension",
|
|
38
|
+
"description": "Minimum terminal width in columns"
|
|
39
|
+
},
|
|
40
|
+
"min_rows": {
|
|
41
|
+
"$ref": "#/$defs/cellDimension",
|
|
42
|
+
"description": "Minimum terminal height in rows"
|
|
43
|
+
},
|
|
44
|
+
"tier": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"enum": [
|
|
47
|
+
"compact",
|
|
48
|
+
"default",
|
|
49
|
+
"comfortable",
|
|
50
|
+
"spacious"
|
|
51
|
+
],
|
|
52
|
+
"description": "Density tier (references core/spacing-scale)"
|
|
53
|
+
},
|
|
54
|
+
"description": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Typical use case for this breakpoint"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": [
|
|
60
|
+
"name",
|
|
61
|
+
"min_cols",
|
|
62
|
+
"tier"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"ribbonPosition": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"enum": [
|
|
68
|
+
"top",
|
|
69
|
+
"bottom",
|
|
70
|
+
"left",
|
|
71
|
+
"right"
|
|
72
|
+
],
|
|
73
|
+
"description": "Ribbon/chrome position"
|
|
74
|
+
},
|
|
75
|
+
"ribbonDefinition": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"description": "UI chrome/ribbon area definition",
|
|
78
|
+
"properties": {
|
|
79
|
+
"id": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"description": "Ribbon identifier"
|
|
82
|
+
},
|
|
83
|
+
"position": {
|
|
84
|
+
"$ref": "#/$defs/ribbonPosition"
|
|
85
|
+
},
|
|
86
|
+
"size": {
|
|
87
|
+
"$ref": "#/$defs/cellDimension",
|
|
88
|
+
"description": "Height (for top/bottom) or width (for left/right)"
|
|
89
|
+
},
|
|
90
|
+
"visible": {
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"description": "Whether ribbon is visible by default"
|
|
93
|
+
},
|
|
94
|
+
"collapsible": {
|
|
95
|
+
"type": "boolean",
|
|
96
|
+
"description": "Whether ribbon can be collapsed"
|
|
97
|
+
},
|
|
98
|
+
"min_terminal_cols": {
|
|
99
|
+
"$ref": "#/$defs/cellDimension",
|
|
100
|
+
"description": "Minimum terminal width to show this ribbon"
|
|
101
|
+
},
|
|
102
|
+
"min_terminal_rows": {
|
|
103
|
+
"$ref": "#/$defs/cellDimension",
|
|
104
|
+
"description": "Minimum terminal height to show this ribbon"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"required": [
|
|
108
|
+
"id",
|
|
109
|
+
"position",
|
|
110
|
+
"size"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"panelDefinition": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"description": "Content panel definition",
|
|
116
|
+
"properties": {
|
|
117
|
+
"id": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"description": "Panel identifier"
|
|
120
|
+
},
|
|
121
|
+
"flex": {
|
|
122
|
+
"type": "number",
|
|
123
|
+
"minimum": 0,
|
|
124
|
+
"description": "Flex grow factor for available space"
|
|
125
|
+
},
|
|
126
|
+
"min_cols": {
|
|
127
|
+
"$ref": "#/$defs/cellDimension",
|
|
128
|
+
"description": "Minimum width in columns"
|
|
129
|
+
},
|
|
130
|
+
"max_cols": {
|
|
131
|
+
"$ref": "#/$defs/cellDimension",
|
|
132
|
+
"description": "Maximum width in columns"
|
|
133
|
+
},
|
|
134
|
+
"min_rows": {
|
|
135
|
+
"$ref": "#/$defs/cellDimension",
|
|
136
|
+
"description": "Minimum height in rows"
|
|
137
|
+
},
|
|
138
|
+
"max_rows": {
|
|
139
|
+
"$ref": "#/$defs/cellDimension",
|
|
140
|
+
"description": "Maximum height in rows"
|
|
141
|
+
},
|
|
142
|
+
"scrollable": {
|
|
143
|
+
"type": "boolean",
|
|
144
|
+
"description": "Whether panel content can scroll"
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"required": [
|
|
148
|
+
"id"
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"alignmentValue": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"enum": [
|
|
154
|
+
"start",
|
|
155
|
+
"center",
|
|
156
|
+
"end",
|
|
157
|
+
"stretch"
|
|
158
|
+
],
|
|
159
|
+
"description": "Alignment value"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"properties": {
|
|
163
|
+
"$schema": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"description": "JSON Schema reference"
|
|
166
|
+
},
|
|
167
|
+
"version": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"pattern": "^[vV]?\\d+\\.\\d+\\.\\d+$",
|
|
170
|
+
"description": "Semantic version of the layout configuration"
|
|
171
|
+
},
|
|
172
|
+
"breakpoints": {
|
|
173
|
+
"type": "array",
|
|
174
|
+
"description": "Terminal size breakpoints (ordered small to large)",
|
|
175
|
+
"items": {
|
|
176
|
+
"$ref": "#/$defs/terminalBreakpoint"
|
|
177
|
+
},
|
|
178
|
+
"minItems": 1
|
|
179
|
+
},
|
|
180
|
+
"spacing": {
|
|
181
|
+
"type": "object",
|
|
182
|
+
"description": "Spacing scale in terminal cells",
|
|
183
|
+
"properties": {
|
|
184
|
+
"none": {
|
|
185
|
+
"$ref": "#/$defs/spacingValue"
|
|
186
|
+
},
|
|
187
|
+
"xs": {
|
|
188
|
+
"$ref": "#/$defs/spacingValue"
|
|
189
|
+
},
|
|
190
|
+
"sm": {
|
|
191
|
+
"$ref": "#/$defs/spacingValue"
|
|
192
|
+
},
|
|
193
|
+
"md": {
|
|
194
|
+
"$ref": "#/$defs/spacingValue"
|
|
195
|
+
},
|
|
196
|
+
"lg": {
|
|
197
|
+
"$ref": "#/$defs/spacingValue"
|
|
198
|
+
},
|
|
199
|
+
"xl": {
|
|
200
|
+
"$ref": "#/$defs/spacingValue"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"additionalProperties": {
|
|
204
|
+
"$ref": "#/$defs/spacingValue"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
"ribbons": {
|
|
208
|
+
"type": "array",
|
|
209
|
+
"description": "UI chrome areas (status bars, sidebars, etc.)",
|
|
210
|
+
"items": {
|
|
211
|
+
"$ref": "#/$defs/ribbonDefinition"
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"panels": {
|
|
215
|
+
"type": "array",
|
|
216
|
+
"description": "Main content panel definitions",
|
|
217
|
+
"items": {
|
|
218
|
+
"$ref": "#/$defs/panelDefinition"
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"constraints": {
|
|
222
|
+
"type": "object",
|
|
223
|
+
"description": "Layout constraints",
|
|
224
|
+
"properties": {
|
|
225
|
+
"min_content_cols": {
|
|
226
|
+
"$ref": "#/$defs/cellDimension",
|
|
227
|
+
"description": "Minimum usable content width"
|
|
228
|
+
},
|
|
229
|
+
"min_content_rows": {
|
|
230
|
+
"$ref": "#/$defs/cellDimension",
|
|
231
|
+
"description": "Minimum usable content height"
|
|
232
|
+
},
|
|
233
|
+
"max_content_cols": {
|
|
234
|
+
"$ref": "#/$defs/cellDimension",
|
|
235
|
+
"description": "Maximum content width (for readability)"
|
|
236
|
+
},
|
|
237
|
+
"padding": {
|
|
238
|
+
"$ref": "#/$defs/spacingValue",
|
|
239
|
+
"description": "Default content padding"
|
|
240
|
+
},
|
|
241
|
+
"gap": {
|
|
242
|
+
"$ref": "#/$defs/spacingValue",
|
|
243
|
+
"description": "Default gap between elements"
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
"responsive_behavior": {
|
|
248
|
+
"type": "object",
|
|
249
|
+
"description": "Behavior at different terminal sizes",
|
|
250
|
+
"properties": {
|
|
251
|
+
"collapse_sidebars_below": {
|
|
252
|
+
"$ref": "#/$defs/cellDimension",
|
|
253
|
+
"description": "Column width below which sidebars collapse"
|
|
254
|
+
},
|
|
255
|
+
"hide_chrome_below": {
|
|
256
|
+
"$ref": "#/$defs/cellDimension",
|
|
257
|
+
"description": "Column width below which chrome is hidden"
|
|
258
|
+
},
|
|
259
|
+
"stack_panels_below": {
|
|
260
|
+
"$ref": "#/$defs/cellDimension",
|
|
261
|
+
"description": "Column width below which panels stack vertically"
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"required": [
|
|
267
|
+
"version",
|
|
268
|
+
"breakpoints",
|
|
269
|
+
"spacing"
|
|
270
|
+
],
|
|
271
|
+
"additionalProperties": false
|
|
272
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/design/tui/v1.0.0/theme.schema.json",
|
|
4
|
+
"title": "TUI Theme",
|
|
5
|
+
"description": "Root composition schema for Terminal UI themes, aggregating color palette, typography, layout, and component patterns",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "JSON Schema reference for validation"
|
|
11
|
+
},
|
|
12
|
+
"version": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^[vV]?\\d+\\.\\d+\\.\\d+$",
|
|
15
|
+
"description": "Theme version (SemVer)"
|
|
16
|
+
},
|
|
17
|
+
"schema_version": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"const": "1.0.0",
|
|
20
|
+
"description": "TUI design system schema version this theme conforms to"
|
|
21
|
+
},
|
|
22
|
+
"metadata": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"description": "Theme metadata",
|
|
25
|
+
"properties": {
|
|
26
|
+
"name": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Theme display name"
|
|
29
|
+
},
|
|
30
|
+
"id": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
33
|
+
"description": "Theme identifier (kebab-case)"
|
|
34
|
+
},
|
|
35
|
+
"description": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Theme description and intended use"
|
|
38
|
+
},
|
|
39
|
+
"author": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Theme author or organization"
|
|
42
|
+
},
|
|
43
|
+
"license": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Theme license"
|
|
46
|
+
},
|
|
47
|
+
"tags": {
|
|
48
|
+
"type": "array",
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"description": "Theme tags for categorization"
|
|
53
|
+
},
|
|
54
|
+
"dark_mode": {
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
"description": "Whether this is a dark mode theme"
|
|
57
|
+
},
|
|
58
|
+
"high_contrast": {
|
|
59
|
+
"type": "boolean",
|
|
60
|
+
"description": "Whether this is a high contrast theme"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": [
|
|
64
|
+
"name",
|
|
65
|
+
"id"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"requirements": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"description": "Terminal capability requirements",
|
|
71
|
+
"properties": {
|
|
72
|
+
"min_color_capability": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": [
|
|
75
|
+
"basic",
|
|
76
|
+
"16",
|
|
77
|
+
"256",
|
|
78
|
+
"truecolor"
|
|
79
|
+
],
|
|
80
|
+
"description": "Minimum color capability for this theme"
|
|
81
|
+
},
|
|
82
|
+
"min_charset": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"enum": [
|
|
85
|
+
"ascii",
|
|
86
|
+
"extended-ascii",
|
|
87
|
+
"unicode-basic",
|
|
88
|
+
"unicode-full"
|
|
89
|
+
],
|
|
90
|
+
"description": "Minimum character set required"
|
|
91
|
+
},
|
|
92
|
+
"nerd_font_recommended": {
|
|
93
|
+
"type": "boolean",
|
|
94
|
+
"description": "Whether Nerd Font is recommended"
|
|
95
|
+
},
|
|
96
|
+
"min_cols": {
|
|
97
|
+
"type": "integer",
|
|
98
|
+
"minimum": 40,
|
|
99
|
+
"description": "Minimum terminal width"
|
|
100
|
+
},
|
|
101
|
+
"min_rows": {
|
|
102
|
+
"type": "integer",
|
|
103
|
+
"minimum": 10,
|
|
104
|
+
"description": "Minimum terminal height"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"colors": {
|
|
109
|
+
"$ref": "color-palette.schema.json",
|
|
110
|
+
"description": "Color palette configuration"
|
|
111
|
+
},
|
|
112
|
+
"typography": {
|
|
113
|
+
"$ref": "typography.schema.json",
|
|
114
|
+
"description": "Typography configuration"
|
|
115
|
+
},
|
|
116
|
+
"layout": {
|
|
117
|
+
"$ref": "layout.schema.json",
|
|
118
|
+
"description": "Layout configuration"
|
|
119
|
+
},
|
|
120
|
+
"components": {
|
|
121
|
+
"$ref": "component.schema.json",
|
|
122
|
+
"description": "Component pattern configuration"
|
|
123
|
+
},
|
|
124
|
+
"platform_overrides": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"description": "Platform-specific overrides",
|
|
127
|
+
"properties": {
|
|
128
|
+
"windows_terminal": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"description": "Windows Terminal specific overrides",
|
|
131
|
+
"additionalProperties": true
|
|
132
|
+
},
|
|
133
|
+
"iterm2": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"description": "iTerm2 specific overrides",
|
|
136
|
+
"additionalProperties": true
|
|
137
|
+
},
|
|
138
|
+
"ghostty": {
|
|
139
|
+
"type": "object",
|
|
140
|
+
"description": "Ghostty specific overrides",
|
|
141
|
+
"additionalProperties": true
|
|
142
|
+
},
|
|
143
|
+
"apple_terminal": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"description": "Apple Terminal specific overrides",
|
|
146
|
+
"additionalProperties": true
|
|
147
|
+
},
|
|
148
|
+
"linux_console": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"description": "Linux console specific overrides",
|
|
151
|
+
"additionalProperties": true
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"additionalProperties": {
|
|
155
|
+
"type": "object",
|
|
156
|
+
"additionalProperties": true
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"accessibility": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"description": "Accessibility configuration",
|
|
162
|
+
"properties": {
|
|
163
|
+
"wcag_level": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"enum": [
|
|
166
|
+
"A",
|
|
167
|
+
"AA",
|
|
168
|
+
"AAA"
|
|
169
|
+
],
|
|
170
|
+
"description": "WCAG conformance target"
|
|
171
|
+
},
|
|
172
|
+
"min_contrast_ratio": {
|
|
173
|
+
"type": "number",
|
|
174
|
+
"minimum": 1,
|
|
175
|
+
"maximum": 21,
|
|
176
|
+
"description": "Minimum contrast ratio for text"
|
|
177
|
+
},
|
|
178
|
+
"focus_visible_required": {
|
|
179
|
+
"type": "boolean",
|
|
180
|
+
"description": "Whether focus indicators must be visible"
|
|
181
|
+
},
|
|
182
|
+
"motion_reduced": {
|
|
183
|
+
"type": "boolean",
|
|
184
|
+
"description": "Whether animations are reduced/disabled"
|
|
185
|
+
},
|
|
186
|
+
"color_blind_safe": {
|
|
187
|
+
"type": "boolean",
|
|
188
|
+
"description": "Whether theme is safe for common color blindness"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
"extensions": {
|
|
193
|
+
"type": "object",
|
|
194
|
+
"description": "Application-specific extensions",
|
|
195
|
+
"additionalProperties": true
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"required": [
|
|
199
|
+
"version",
|
|
200
|
+
"schema_version",
|
|
201
|
+
"metadata",
|
|
202
|
+
"colors"
|
|
203
|
+
],
|
|
204
|
+
"additionalProperties": false
|
|
205
|
+
}
|