@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.
Files changed (165) hide show
  1. package/CHANGELOG.md +73 -512
  2. package/README.md +111 -28
  3. package/config/crucible-ts/agentic/roles/README.md +76 -0
  4. package/config/crucible-ts/agentic/roles/cicd.yaml +82 -0
  5. package/config/crucible-ts/agentic/roles/dataeng.yaml +104 -0
  6. package/config/crucible-ts/agentic/roles/devlead.yaml +84 -0
  7. package/config/crucible-ts/agentic/roles/devrev.yaml +105 -0
  8. package/config/crucible-ts/agentic/roles/entarch.yaml +101 -0
  9. package/config/crucible-ts/agentic/roles/infoarch.yaml +95 -0
  10. package/config/crucible-ts/agentic/roles/prodmktg.yaml +92 -0
  11. package/config/crucible-ts/agentic/roles/qa.yaml +148 -0
  12. package/config/crucible-ts/agentic/roles/secrev.yaml +101 -0
  13. package/config/crucible-ts/agentic/roles/uxdev.yaml +168 -0
  14. package/config/crucible-ts/branding/ecosystem.yaml +26 -0
  15. package/config/crucible-ts/library/foundry/exit-codes.snapshot.json +26 -0
  16. package/config/crucible-ts/library/foundry/exit-codes.yaml +28 -3
  17. package/config/crucible-ts/library/foundry/patterns.yaml +2 -2
  18. package/config/crucible-ts/library/foundry/signal-resolution-fixtures.yaml +207 -0
  19. package/config/crucible-ts/library/foundry/signals.yaml +21 -0
  20. package/config/crucible-ts/library/foundry/simplified-modes.snapshot.json +9 -1
  21. package/config/crucible-ts/library/{foundry/similarity-fixtures.yaml → similarity/fixtures.yaml} +1 -1
  22. package/config/crucible-ts/library/v1.0.0/module-manifest.yaml +1 -2
  23. package/config/crucible-ts/taxonomy/fixture-catalog.yaml +145 -0
  24. package/config/crucible-ts/taxonomy/languages.yaml +2 -2
  25. package/config/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalogs.yaml +77 -0
  26. package/config/crucible-ts/taxonomy/library/platform-modules/v1.1.0/modules.yaml +722 -0
  27. package/config/crucible-ts/taxonomy/metrics.yaml +1 -1
  28. package/config/crucible-ts/taxonomy/repository-categories.yaml +134 -1
  29. package/dist/appidentity/index.d.ts +117 -35
  30. package/dist/appidentity/index.js +752 -592
  31. package/dist/appidentity/index.js.map +1 -1
  32. package/dist/config/index.js +118 -6
  33. package/dist/config/index.js.map +1 -1
  34. package/dist/crucible/index.js +118 -6
  35. package/dist/crucible/index.js.map +1 -1
  36. package/dist/errors/index.js +118 -6
  37. package/dist/errors/index.js.map +1 -1
  38. package/dist/foundry/index.d.ts +13 -676
  39. package/dist/foundry/index.js +118 -6
  40. package/dist/foundry/index.js.map +1 -1
  41. package/dist/foundry/similarity/index.d.ts +2 -2
  42. package/dist/fulhash/index.d.ts +64 -12
  43. package/dist/fulhash/index.js +292 -53
  44. package/dist/fulhash/index.js.map +1 -1
  45. package/dist/index.d.ts +2 -2
  46. package/dist/index.js +753 -593
  47. package/dist/index.js.map +1 -1
  48. package/dist/{manager-D27vrdaS.d.ts → manager-CH3fX7zO.d.ts} +1 -1
  49. package/dist/pathfinder/index.js +368 -59
  50. package/dist/pathfinder/index.js.map +1 -1
  51. package/dist/reports/license-inventory.csv +302 -0
  52. package/dist/schema/index.js +118 -6
  53. package/dist/schema/index.js.map +1 -1
  54. package/dist/signals/index.d.ts +675 -0
  55. package/dist/signals/index.js +5790 -0
  56. package/dist/signals/index.js.map +1 -0
  57. package/dist/similarity/index.d.ts +2 -0
  58. package/dist/similarity/index.js +136 -0
  59. package/dist/similarity/index.js.map +1 -0
  60. package/dist/{suggest-Cv7SVQRu.d.ts → suggest-D8LbwtPV.d.ts} +1 -1
  61. package/dist/telemetry/http/index.js +704 -591
  62. package/dist/telemetry/http/index.js.map +1 -1
  63. package/dist/telemetry/index.js +118 -6
  64. package/dist/telemetry/index.js.map +1 -1
  65. package/dist/telemetry/prometheus/index.d.ts +1 -1
  66. package/dist/telemetry/prometheus/index.js +175 -11
  67. package/dist/telemetry/prometheus/index.js.map +1 -1
  68. package/package.json +15 -6
  69. package/schemas/crucible-ts/assessment/v1.0.0/severity-definitions.schema.json +1 -1
  70. package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/fulmen-config-paths.schema.json +1 -1
  71. package/schemas/crucible-ts/config/repository/app-identity/v1.0.0/app-identity.schema.json +3 -3
  72. package/schemas/crucible-ts/config/repository/v1.0.0/lifecycle-phase.json +1 -1
  73. package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json +1 -1
  74. package/schemas/crucible-ts/config/standards/v1.0.0/adr-adoption-status.json +1 -1
  75. package/schemas/crucible-ts/config/standards/v1.0.0/adr-frontmatter.schema.json +3 -3
  76. package/schemas/crucible-ts/config/standards/v1.0.0/adr-lifecycle-status.json +1 -1
  77. package/schemas/crucible-ts/config/sync-keys.schema.yaml +14 -0
  78. package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json +1 -1
  79. package/schemas/crucible-ts/design/README.md +159 -0
  80. package/schemas/crucible-ts/design/core/v1.0.0/component-states.schema.json +204 -0
  81. package/schemas/crucible-ts/design/core/v1.0.0/semantic-colors.schema.json +179 -0
  82. package/schemas/crucible-ts/design/core/v1.0.0/spacing-scale.schema.json +165 -0
  83. package/schemas/crucible-ts/design/core/v1.0.0/typography-roles.schema.json +195 -0
  84. package/schemas/crucible-ts/design/tui/v1.0.0/color-palette.schema.json +303 -0
  85. package/schemas/crucible-ts/design/tui/v1.0.0/component.schema.json +374 -0
  86. package/schemas/crucible-ts/design/tui/v1.0.0/layout.schema.json +272 -0
  87. package/schemas/crucible-ts/design/tui/v1.0.0/theme.schema.json +205 -0
  88. package/schemas/crucible-ts/design/tui/v1.0.0/typography.schema.json +316 -0
  89. package/schemas/crucible-ts/devsecops/lorage-central/activity/v1.0.0/activity.schema.json +1 -1
  90. package/schemas/crucible-ts/devsecops/lorage-central/credentials/v1.0.0/credentials.schema.json +1 -1
  91. package/schemas/crucible-ts/devsecops/lorage-central/policy/v1.0.0/policy.schema.json +1 -1
  92. package/schemas/crucible-ts/devsecops/lorage-central/recipe/v1.0.0/recipe.schema.json +1 -1
  93. package/schemas/crucible-ts/devsecops/lorage-central/runbooks/v1.0.0/runbook.schema.json +1 -1
  94. package/schemas/crucible-ts/devsecops/lorage-central/tenant/v1.0.0/tenant.schema.json +1 -1
  95. package/schemas/crucible-ts/devsecops/secrets/v1.0.0/secrets.schema.json +1 -1
  96. package/schemas/crucible-ts/error-handling/v1.0.0/error-response.schema.json +1 -1
  97. package/schemas/crucible-ts/library/foundry/v1.0.0/country-codes.schema.json +1 -1
  98. package/schemas/crucible-ts/library/foundry/v1.0.0/exit-codes.schema.json +1 -1
  99. package/schemas/crucible-ts/library/foundry/v1.0.0/http-status-groups.schema.json +1 -1
  100. package/schemas/crucible-ts/library/foundry/v1.0.0/mime-types.schema.json +1 -1
  101. package/schemas/crucible-ts/library/foundry/v1.0.0/patterns.schema.json +1 -1
  102. package/schemas/crucible-ts/library/foundry/v1.0.0/signal-resolution-fixtures.schema.json +140 -0
  103. package/schemas/crucible-ts/library/foundry/v1.0.0/signals.schema.json +6 -1
  104. package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +1 -1
  105. package/schemas/crucible-ts/library/fulhash/v1.0.0/checksum-string.schema.json +2 -2
  106. package/schemas/crucible-ts/library/fulhash/v1.0.0/digest.schema.json +61 -1
  107. package/schemas/crucible-ts/library/fulhash/v1.0.0/fixtures.schema.json +1 -1
  108. package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-entry.schema.json +1 -1
  109. package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-info.schema.json +1 -1
  110. package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-manifest.schema.json +2 -2
  111. package/schemas/crucible-ts/library/fulpack/v1.0.0/create-options.schema.json +1 -1
  112. package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-options.schema.json +1 -1
  113. package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-result.schema.json +1 -1
  114. package/schemas/crucible-ts/library/fulpack/v1.0.0/scan-options.schema.json +1 -1
  115. package/schemas/crucible-ts/library/fulpack/v1.0.0/validation-result.schema.json +1 -1
  116. package/schemas/crucible-ts/library/module-manifest/v1.0.0/module-manifest.schema.json +1 -1
  117. package/schemas/crucible-ts/library/{foundry → similarity}/v1.0.0/similarity.schema.json +2 -2
  118. package/schemas/crucible-ts/library/{foundry → similarity}/v2.0.0/similarity.schema.json +2 -2
  119. package/schemas/crucible-ts/observability/metrics/v1.0.0/metrics-event.schema.json +1 -1
  120. package/schemas/crucible-ts/pathfinder/v1.0.0/find-query.schema.json +1 -1
  121. package/schemas/crucible-ts/pathfinder/v1.0.0/finder-config.schema.json +1 -1
  122. package/schemas/crucible-ts/pathfinder/v1.0.0/path-result.schema.json +1 -1
  123. package/schemas/crucible-ts/protocol/http/v1.0.0/error-response.schema.json +1 -1
  124. package/schemas/crucible-ts/protocol/http/v1.0.0/health-response.schema.json +1 -1
  125. package/schemas/crucible-ts/protocol/http/v1.0.0/success-response.schema.json +1 -1
  126. package/schemas/crucible-ts/protocol/http/v1.0.0/version-response.schema.json +1 -1
  127. package/schemas/crucible-ts/server/management/v1.0.0/server-management.schema.json +1 -1
  128. package/schemas/crucible-ts/standards/publishing/v1.0.0/spec-catalog.schema.json +134 -0
  129. package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-key.schema.json +1 -1
  130. package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-metadata.schema.json +1 -1
  131. package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-key.schema.json +1 -1
  132. package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-metadata.schema.json +1 -1
  133. package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-key.schema.json +1 -1
  134. package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-metadata.schema.json +1 -1
  135. package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-key.schema.json +1 -1
  136. package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-metadata.schema.json +1 -1
  137. package/schemas/crucible-ts/taxonomy/devsecops/modules/v1.0.0/devsecops-module-entry.schema.json +1 -1
  138. package/schemas/crucible-ts/taxonomy/fixture/v1.0.0/fixture-catalog.schema.json +166 -0
  139. package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-key.schema.json +1 -1
  140. package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-metadata.schema.json +1 -1
  141. package/schemas/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalog-entry.schema.json +98 -0
  142. package/schemas/crucible-ts/taxonomy/library/fulencode/detection-confidence/v1.0.0/levels.schema.json +1 -1
  143. package/schemas/crucible-ts/taxonomy/library/fulencode/encoding-families/v1.0.0/families.schema.json +1 -1
  144. package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.schema.json +1 -1
  145. package/schemas/crucible-ts/taxonomy/library/fulhash/algorithms/v1.0.0/algorithms.yaml +16 -0
  146. package/schemas/crucible-ts/taxonomy/library/modules/v1.0.0/module-entry.schema.json +1 -1
  147. package/schemas/crucible-ts/taxonomy/library/modules/v1.1.0/module-entry.schema.json +436 -0
  148. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-key.schema.json +16 -8
  149. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-metadata.schema.json +1 -1
  150. package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +43 -0
  151. package/schemas/crucible-ts/upstream/3leaps/agentic/v0/role-prompt.schema.json +183 -0
  152. package/schemas/crucible-ts/upstream/3leaps/ailink/v0/prompt.schema.json +204 -0
  153. package/schemas/crucible-ts/upstream/3leaps/ailink/v0/search-response.schema.json +152 -0
  154. package/schemas/crucible-ts/upstream/README.md +50 -0
  155. package/schemas/crucible-ts/web/branding/v1.0.0/site-branding.schema.json +1 -1
  156. package/schemas/crucible-ts/web/styling/v1.0.0/site-styling.schema.json +1 -1
  157. package/schemas/crucible-ts/config/goneat/README.md +0 -60
  158. package/schemas/crucible-ts/config/goneat/v1.0.0/dates.yaml +0 -234
  159. package/schemas/crucible-ts/config/goneat/v1.0.0/goneat-config.yaml +0 -344
  160. package/schemas/crucible-ts/config/goneat/v1.0.0/lifecycle-phase.json +0 -20
  161. package/schemas/crucible-ts/config/goneat/v1.0.0/release-phase.json +0 -17
  162. package/schemas/crucible-ts/config/goneat/v1.0.0/security-policy.yaml +0 -178
  163. package/schemas/crucible-ts/config/goneat/v1.0.0/version-policy.schema.yaml +0 -205
  164. package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/README.md +0 -177
  165. package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/goneat-tools-config.schema.yaml +0 -146
@@ -0,0 +1,722 @@
1
+ # Fulmen Helper Library Platform Modules Registry
2
+ # THE canonical SSOT for platform code modules (config, logging, pathfinder, etc.)
3
+ # For reference data catalogs, see foundry-catalogs.yaml
4
+ # Manually maintained but automatically validated
5
+ #
6
+ # v1.1.0 CHANGES:
7
+ # - Added weight (light/heavy) for dependency footprint classification
8
+ # - Added default_inclusion (true/false) for feature gate defaults
9
+ # - Added optional rust language entries
10
+ # - Added per-language notes field for build guidance
11
+ # - Promoted similarity from foundry-catalogs to platform module
12
+ # - Updated foundry description (similarity now separate)
13
+ version: "1.1.0"
14
+ last_updated: "2026-01-05"
15
+ modules:
16
+ # ============================================================================
17
+ # CORE TIER - Always present, zero optional dependencies
18
+ # ============================================================================
19
+ - module_name: config
20
+ tier: core
21
+ weight: light
22
+ default_inclusion: true
23
+ description: Three-Layer Configuration management for Fulmen applications
24
+ rationale: Required for all Fulmen apps; zero optional dependencies; foundational capability
25
+ evidence:
26
+ has_schema: false
27
+ has_config: false
28
+ languages:
29
+ go:
30
+ status: available
31
+ package: github.com/fulmenhq/gofulmen/config
32
+ version: "0.1.0"
33
+ implementation: "Custom implementation using stdlib os, path/filepath"
34
+ python:
35
+ status: available
36
+ package: pyfulmen.config
37
+ version: "0.1.0"
38
+ implementation: "Custom implementation using stdlib os, pathlib"
39
+ typescript:
40
+ status: available
41
+ package: "@fulmenhq/tsfulmen/config"
42
+ version: "0.1.0"
43
+ implementation: "Custom implementation using Node.js fs, path"
44
+ dependencies:
45
+ required_modules: []
46
+ external_deps:
47
+ go: []
48
+ python: []
49
+ typescript: []
50
+ status: active
51
+ added_version: "0.1.0"
52
+ - module_name: logging
53
+ tier: core
54
+ weight: light
55
+ default_inclusion: true
56
+ description: Structured logging with progressive profiles for Fulmen applications
57
+ rationale: Core observability requirement; zero optional dependencies; all apps need logging
58
+ evidence:
59
+ has_schema: true
60
+ schema_path: schemas/observability/logging/v1.0.0/
61
+ has_config: false
62
+ languages:
63
+ go:
64
+ status: available
65
+ package: github.com/fulmenhq/gofulmen/logging
66
+ version: "0.1.0"
67
+ implementation: "Wraps stdlib log/slog with Fulmen conventions"
68
+ python:
69
+ status: available
70
+ package: pyfulmen.logging
71
+ version: "0.1.0"
72
+ implementation: "Wraps stdlib logging module with Fulmen conventions"
73
+ typescript:
74
+ status: available
75
+ package: "@fulmenhq/tsfulmen/logging"
76
+ version: "0.1.0"
77
+ implementation: "Custom implementation wrapping console with structured output"
78
+ notes: "pino transport system adds moderate overhead; classified as light for default builds"
79
+ dependencies:
80
+ required_modules: []
81
+ external_deps:
82
+ go: []
83
+ python: []
84
+ typescript: []
85
+ status: active
86
+ added_version: "0.1.0"
87
+ - module_name: schema
88
+ tier: core
89
+ weight: heavy
90
+ default_inclusion: false
91
+ description: Schema validation primitives for JSON Schema validation
92
+ rationale: Foundational validation capability; heavy deps in Rust/Python/TS (jsonschema, ajv)
93
+ evidence:
94
+ has_schema: true
95
+ schema_path: schemas/schema-validation/v1.0.0/
96
+ has_config: false
97
+ languages:
98
+ go:
99
+ status: available
100
+ package: github.com/fulmenhq/gofulmen/schema
101
+ version: "0.1.0"
102
+ implementation: "Custom JSON Schema validator using santhosh-tekuri/jsonschema"
103
+ notes: "Lightweight compared to other languages; still requires jsonschema dep"
104
+ python:
105
+ status: available
106
+ package: pyfulmen.schema
107
+ version: "0.1.0"
108
+ implementation: "Wraps jsonschema library for JSON Schema validation"
109
+ notes: "Pulls jsonschema dependency tree; must be in extras"
110
+ typescript:
111
+ status: available
112
+ package: "@fulmenhq/tsfulmen/schema"
113
+ version: "0.1.0"
114
+ implementation: "Wraps ajv + ajv-formats for JSON Schema validation"
115
+ notes: "Pulls ajv dependency tree; use separate entry point"
116
+ rust:
117
+ status: available
118
+ package: rsfulmen::schema_validation
119
+ version: "0.1.0"
120
+ implementation: "Wraps jsonschema crate for JSON Schema validation"
121
+ notes: "Pulls jsonschema + url + icu-* tree; must be feature-gated"
122
+ dependencies:
123
+ required_modules: []
124
+ external_deps:
125
+ go: [santhosh-tekuri/jsonschema]
126
+ python: [jsonschema]
127
+ typescript: [ajv, ajv-formats]
128
+ rust: [jsonschema, url]
129
+ status: active
130
+ added_version: "0.1.0"
131
+ - module_name: crucible-shim
132
+ tier: core
133
+ weight: light
134
+ default_inclusion: true
135
+ description: Crucible SSOT access layer for docs, schemas, and config defaults
136
+ rationale: All Fulmen apps access Crucible through this layer; zero optional dependencies
137
+ evidence:
138
+ has_schema: false
139
+ has_config: false
140
+ languages:
141
+ go:
142
+ status: available
143
+ package: github.com/fulmenhq/gofulmen/crucible
144
+ version: "0.1.0"
145
+ implementation: "Custom implementation using Go embed directive"
146
+ python:
147
+ status: available
148
+ package: pyfulmen.crucible
149
+ version: "0.1.0"
150
+ implementation: "Custom implementation using importlib.resources"
151
+ typescript:
152
+ status: available
153
+ package: "@fulmenhq/tsfulmen/crucible"
154
+ version: "0.1.0"
155
+ implementation: "Custom implementation bundling YAML/JSON assets"
156
+ dependencies:
157
+ required_modules: []
158
+ external_deps:
159
+ go: []
160
+ python: []
161
+ typescript: []
162
+ status: active
163
+ added_version: "0.1.0"
164
+ - module_name: errors
165
+ tier: core
166
+ weight: light
167
+ default_inclusion: true
168
+ description: Error handling and standardized exit codes
169
+ rationale: All apps need error handling; uses stdlib only; foundational capability
170
+ evidence:
171
+ has_schema: false
172
+ has_config: true
173
+ config_path: config/library/foundry/exit-codes.yaml
174
+ languages:
175
+ go:
176
+ status: available
177
+ package: github.com/fulmenhq/gofulmen/errors
178
+ version: "0.1.0"
179
+ implementation: "Custom error types wrapping stdlib errors"
180
+ python:
181
+ status: available
182
+ package: pyfulmen.errors
183
+ version: "0.1.0"
184
+ implementation: "Custom exception classes extending stdlib Exception"
185
+ typescript:
186
+ status: available
187
+ package: "@fulmenhq/tsfulmen/errors"
188
+ version: "0.1.0"
189
+ implementation: "Custom Error classes extending stdlib Error"
190
+ dependencies:
191
+ required_modules: []
192
+ external_deps:
193
+ go: []
194
+ python: []
195
+ typescript: []
196
+ status: active
197
+ added_version: "0.1.0"
198
+ - module_name: appidentity
199
+ tier: core
200
+ weight: light
201
+ default_inclusion: true
202
+ description: Application identity and metadata management
203
+ rationale: All Fulmen apps need identity configuration; zero optional dependencies
204
+ evidence:
205
+ has_schema: false
206
+ has_config: false
207
+ languages:
208
+ go:
209
+ status: available
210
+ package: github.com/fulmenhq/gofulmen/appidentity
211
+ version: "0.1.0"
212
+ implementation: "Custom implementation using stdlib os for env vars"
213
+ python:
214
+ status: available
215
+ package: pyfulmen.appidentity
216
+ version: "0.1.0"
217
+ implementation: "Custom implementation using stdlib os for env vars"
218
+ typescript:
219
+ status: available
220
+ package: "@fulmenhq/tsfulmen/appidentity"
221
+ version: "0.1.0"
222
+ implementation: "Custom implementation using process.env"
223
+ dependencies:
224
+ required_modules: []
225
+ external_deps:
226
+ go: []
227
+ python: []
228
+ typescript: []
229
+ status: active
230
+ added_version: "0.1.0"
231
+ - module_name: platform
232
+ tier: core
233
+ weight: light
234
+ default_inclusion: true
235
+ description: Platform introspection for OS, architecture, and capability detection
236
+ rationale: All apps need runtime platform detection; uses stdlib only
237
+ evidence:
238
+ has_schema: false
239
+ has_config: false
240
+ languages:
241
+ go:
242
+ status: available
243
+ package: github.com/fulmenhq/gofulmen/platform
244
+ version: "0.2.6"
245
+ implementation: "Wraps stdlib runtime for GOOS, GOARCH detection"
246
+ python:
247
+ status: available
248
+ package: pyfulmen.platform
249
+ version: "0.2.6"
250
+ implementation: "Wraps stdlib platform, sys for OS and architecture"
251
+ typescript:
252
+ status: available
253
+ package: "@fulmenhq/tsfulmen/platform"
254
+ version: "0.2.6"
255
+ implementation: "Wraps Node.js process.platform and process.arch"
256
+ dependencies:
257
+ required_modules: []
258
+ external_deps:
259
+ go: []
260
+ python: []
261
+ typescript: []
262
+ status: active
263
+ added_version: "0.2.6"
264
+ # ============================================================================
265
+ # COMMON TIER - Default install, lightweight
266
+ # ============================================================================
267
+ - module_name: pathfinder
268
+ tier: common
269
+ weight: light
270
+ default_inclusion: true
271
+ description: Safe file and directory discovery with constraint enforcement
272
+ rationale: Frequently used for file operations; lightweight stdlib dependencies
273
+ evidence:
274
+ has_schema: true
275
+ schema_path: schemas/pathfinder/v1.0.0/
276
+ has_config: false
277
+ languages:
278
+ go:
279
+ status: available
280
+ package: github.com/fulmenhq/gofulmen/pathfinder
281
+ version: "0.1.0"
282
+ implementation: "Custom path traversal using stdlib path/filepath, os"
283
+ python:
284
+ status: available
285
+ package: pyfulmen.pathfinder
286
+ version: "0.1.0"
287
+ implementation: "Custom path traversal using stdlib pathlib, os"
288
+ notes: "rapidfuzz adds native extension overhead; classified light for core functionality"
289
+ typescript:
290
+ status: available
291
+ package: "@fulmenhq/tsfulmen/pathfinder"
292
+ version: "0.1.0"
293
+ implementation: "Custom path traversal using Node.js fs, path"
294
+ notes: "fast-glob, picomatch add moderate overhead; classified light for default builds"
295
+ dependencies:
296
+ required_modules: []
297
+ external_deps:
298
+ go: []
299
+ python: []
300
+ typescript: []
301
+ status: active
302
+ added_version: "0.1.0"
303
+ - module_name: ascii
304
+ tier: common
305
+ weight: light
306
+ default_inclusion: true
307
+ description: Unicode-aware string analysis and box drawing utilities
308
+ rationale: Frequently used for text processing; lightweight stdlib dependencies
309
+ evidence:
310
+ has_schema: true
311
+ schema_path: schemas/ascii/v1.0.0/
312
+ has_config: false
313
+ languages:
314
+ go:
315
+ status: available
316
+ package: github.com/fulmenhq/gofulmen/ascii
317
+ version: "0.1.0"
318
+ implementation: "Custom implementation using stdlib unicode/utf8, strings"
319
+ python:
320
+ status: available
321
+ package: pyfulmen.ascii
322
+ version: "0.1.0"
323
+ implementation: "Custom implementation using stdlib unicodedata"
324
+ typescript:
325
+ status: available
326
+ package: "@fulmenhq/tsfulmen/ascii"
327
+ version: "0.1.0"
328
+ implementation: "Custom implementation using native string methods"
329
+ dependencies:
330
+ required_modules: []
331
+ external_deps:
332
+ go: []
333
+ python: []
334
+ typescript: []
335
+ status: active
336
+ added_version: "0.1.0"
337
+ - module_name: foundry
338
+ tier: common
339
+ weight: light
340
+ default_inclusion: true
341
+ description: Catalog loader for countries, HTTP status codes, MIME types, signals, and exit codes
342
+ rationale: Widely useful reference data access; zero external dependencies. Note - similarity is now a separate module
343
+ evidence:
344
+ has_schema: true
345
+ schema_path: schemas/library/foundry/v2.0.0/
346
+ has_config: true
347
+ config_path: config/library/foundry/
348
+ languages:
349
+ go:
350
+ status: available
351
+ package: github.com/fulmenhq/gofulmen/foundry
352
+ version: "0.2.0"
353
+ implementation: "Custom catalog loader using Go embed + stdlib encoding/json"
354
+ python:
355
+ status: available
356
+ package: pyfulmen.foundry
357
+ version: "0.2.0"
358
+ implementation: "Custom catalog loader using importlib.resources + stdlib json"
359
+ typescript:
360
+ status: available
361
+ package: "@fulmenhq/tsfulmen/foundry"
362
+ version: "0.2.0"
363
+ implementation: "Custom catalog loader bundling JSON/YAML catalogs"
364
+ rust:
365
+ status: available
366
+ package: rsfulmen::foundry
367
+ version: "0.1.0"
368
+ implementation: "Catalog loader using serde_yaml + include_str!"
369
+ notes: "foundry-core feature includes signals/exit-codes; patterns requires foundry-patterns feature"
370
+ dependencies:
371
+ required_modules: []
372
+ external_deps:
373
+ go: []
374
+ python: []
375
+ typescript: []
376
+ rust: []
377
+ status: active
378
+ added_version: "0.2.0"
379
+ - module_name: similarity
380
+ tier: common
381
+ weight: heavy
382
+ default_inclusion: false
383
+ description: Text similarity algorithms (Levenshtein, Jaro-Winkler, etc.) with test fixtures
384
+ rationale: Promoted from foundry-catalogs v1.1.0; heavy deps in all languages (strsim, unicode-*, WASM)
385
+ evidence:
386
+ has_schema: true
387
+ schema_path: schemas/library/similarity/v2.0.0/
388
+ has_config: true
389
+ config_path: config/library/similarity/fixtures.yaml
390
+ languages:
391
+ go:
392
+ status: available
393
+ package: github.com/fulmenhq/gofulmen/similarity
394
+ version: "0.4.0"
395
+ implementation: "Custom implementation using textdistance algorithms"
396
+ notes: "Uses strsim-go; heavier than core foundry catalogs"
397
+ python:
398
+ status: available
399
+ package: pyfulmen.similarity
400
+ version: "0.4.0"
401
+ implementation: "Wraps rapidfuzz for text similarity algorithms"
402
+ notes: "rapidfuzz is a native extension; must be in extras"
403
+ extras: [similarity]
404
+ typescript:
405
+ status: available
406
+ package: "@fulmenhq/tsfulmen/similarity"
407
+ version: "0.4.0"
408
+ implementation: "Wraps @3leaps/string-metrics-wasm for text similarity"
409
+ notes: "WASM blob; use separate entry point /similarity"
410
+ optional_deps: ["@3leaps/string-metrics-wasm"]
411
+ rust:
412
+ status: available
413
+ package: rsfulmen::similarity
414
+ version: "0.1.0"
415
+ implementation: "Wraps strsim crate for text similarity algorithms"
416
+ notes: "Pulls strsim + unicode-normalization + unicode-segmentation; must be feature-gated"
417
+ dependencies:
418
+ required_modules: []
419
+ external_deps:
420
+ go: [textdistance]
421
+ python: [rapidfuzz]
422
+ typescript: ["@3leaps/string-metrics-wasm"]
423
+ rust: [strsim, unicode-normalization, unicode-segmentation]
424
+ status: active
425
+ added_version: "0.4.0"
426
+ - module_name: fulhash
427
+ tier: common
428
+ weight: heavy
429
+ default_inclusion: true
430
+ description: Enterprise-grade hashing utilities with versioned algorithms
431
+ rationale: Common need for content hashing; heavy in Python/TS due to native extensions, but default=true as fundamental
432
+ evidence:
433
+ has_schema: false
434
+ has_config: false
435
+ languages:
436
+ go:
437
+ status: available
438
+ package: github.com/fulmenhq/gofulmen/fulhash
439
+ version: "0.2.2"
440
+ implementation: "Wraps stdlib crypto/sha256, crypto/md5 with Fulmen conventions"
441
+ notes: "Light in Go - stdlib crypto only"
442
+ python:
443
+ status: available
444
+ package: pyfulmen.fulhash
445
+ version: "0.2.2"
446
+ implementation: "Wraps stdlib hashlib with Fulmen conventions"
447
+ notes: "xxhash and google-crc32c are native extensions"
448
+ extras: [hashing]
449
+ typescript:
450
+ status: available
451
+ package: "@fulmenhq/tsfulmen/fulhash"
452
+ version: "0.2.2"
453
+ implementation: "Wraps hash-wasm for cryptographic hashing"
454
+ notes: "hash-wasm is WASM; use separate entry point /fulhash"
455
+ optional_deps: [hash-wasm]
456
+ dependencies:
457
+ required_modules: []
458
+ external_deps:
459
+ go: []
460
+ python: [xxhash, google-crc32c]
461
+ typescript: [hash-wasm]
462
+ status: active
463
+ added_version: "0.2.2"
464
+ - module_name: signals
465
+ tier: common
466
+ weight: light
467
+ default_inclusion: true
468
+ description: Cross-platform signal handling for graceful shutdown and Ctrl+C
469
+ rationale: Common need for server applications; uses stdlib signal APIs only
470
+ evidence:
471
+ has_schema: false
472
+ has_config: true
473
+ config_path: config/library/foundry/signals.yaml
474
+ languages:
475
+ go:
476
+ status: available
477
+ package: github.com/fulmenhq/gofulmen/signals
478
+ version: "0.2.5"
479
+ implementation: "Wraps stdlib os/signal with cross-platform signal mapping"
480
+ python:
481
+ status: available
482
+ package: pyfulmen.signals
483
+ version: "0.2.5"
484
+ implementation: "Wraps stdlib signal with cross-platform signal mapping"
485
+ typescript:
486
+ status: available
487
+ package: "@fulmenhq/tsfulmen/signals"
488
+ version: "0.2.5"
489
+ implementation: "Wraps Node.js process.on with cross-platform signal mapping"
490
+ rust:
491
+ status: available
492
+ package: rsfulmen::signals
493
+ version: "0.1.0"
494
+ implementation: "Signal catalog access using serde deserialization"
495
+ notes: "Part of foundry-core feature; no additional deps"
496
+ dependencies:
497
+ required_modules: []
498
+ external_deps:
499
+ go: []
500
+ python: []
501
+ typescript: []
502
+ rust: []
503
+ status: active
504
+ added_version: "0.2.5"
505
+ - module_name: telemetry
506
+ tier: common
507
+ weight: heavy
508
+ default_inclusion: false
509
+ description: Telemetry coordination and module-level telemetry configuration
510
+ rationale: Common observability need; heavy in Python/TS due to prometheus_client/prom-client
511
+ evidence:
512
+ has_schema: false
513
+ has_config: false
514
+ languages:
515
+ go:
516
+ status: available
517
+ package: github.com/fulmenhq/gofulmen/telemetry
518
+ version: "0.2.0"
519
+ implementation: "Custom telemetry registry and coordination layer"
520
+ notes: "Light in Go - no external prometheus deps in core"
521
+ python:
522
+ status: available
523
+ package: pyfulmen.telemetry
524
+ version: "0.2.0"
525
+ implementation: "Custom telemetry registry and coordination layer"
526
+ notes: "prometheus_client is heavy; must be in extras"
527
+ extras: [telemetry]
528
+ typescript:
529
+ status: available
530
+ package: "@fulmenhq/tsfulmen/telemetry"
531
+ version: "0.2.0"
532
+ implementation: "Custom telemetry registry and coordination layer"
533
+ notes: "prom-client as peer dep; use separate entry point"
534
+ optional_deps: [prom-client]
535
+ dependencies:
536
+ required_modules: []
537
+ external_deps:
538
+ go: []
539
+ python: [prometheus_client]
540
+ typescript: [prom-client]
541
+ status: active
542
+ added_version: "0.2.0"
543
+ - module_name: docscribe
544
+ tier: common
545
+ weight: light
546
+ default_inclusion: true
547
+ description: Documentation metadata extraction and frontmatter parsing
548
+ rationale: Useful for doc-driven tooling; lightweight YAML parsing only
549
+ evidence:
550
+ has_schema: false
551
+ has_config: false
552
+ languages:
553
+ go:
554
+ status: available
555
+ package: github.com/fulmenhq/gofulmen/docscribe
556
+ version: "0.2.0"
557
+ implementation: "Custom frontmatter parser using stdlib strings, regexp"
558
+ python:
559
+ status: available
560
+ package: pyfulmen.docscribe
561
+ version: "0.2.0"
562
+ implementation: "Custom frontmatter parser using stdlib re, yaml"
563
+ typescript:
564
+ status: available
565
+ package: "@fulmenhq/tsfulmen/docscribe"
566
+ version: "0.2.0"
567
+ implementation: "Custom frontmatter parser using string methods + yaml lib"
568
+ dependencies:
569
+ required_modules: []
570
+ external_deps:
571
+ go: []
572
+ python: []
573
+ typescript: []
574
+ status: active
575
+ added_version: "0.2.0"
576
+ - module_name: ssot-sync
577
+ tier: common
578
+ weight: light
579
+ default_inclusion: true
580
+ description: SSOT synchronization utilities for pulling Crucible assets
581
+ rationale: Common need for SSOT consumers; lightweight utilities
582
+ evidence:
583
+ has_schema: false
584
+ has_config: false
585
+ languages:
586
+ go:
587
+ status: available
588
+ package: github.com/fulmenhq/gofulmen/ssotsync
589
+ version: "0.2.0"
590
+ implementation: "Custom sync logic using stdlib io, os for file operations"
591
+ python:
592
+ status: available
593
+ package: pyfulmen.ssot_sync
594
+ version: "0.2.0"
595
+ implementation: "Custom sync logic using stdlib shutil, pathlib"
596
+ typescript:
597
+ status: available
598
+ package: "@fulmenhq/tsfulmen/ssot-sync"
599
+ version: "0.2.0"
600
+ implementation: "Custom sync logic using Node.js fs, path"
601
+ dependencies:
602
+ required_modules: []
603
+ external_deps:
604
+ go: []
605
+ python: []
606
+ typescript: []
607
+ status: active
608
+ added_version: "0.2.0"
609
+ - module_name: metrics
610
+ tier: common
611
+ weight: light
612
+ default_inclusion: true
613
+ description: Metrics taxonomy and standardized metrics collection
614
+ rationale: Common observability need; lightweight taxonomy and helpers
615
+ evidence:
616
+ has_schema: false
617
+ has_config: true
618
+ config_path: config/taxonomy/metrics.yaml
619
+ languages:
620
+ go:
621
+ status: available
622
+ package: github.com/fulmenhq/gofulmen/metrics
623
+ version: "0.2.7"
624
+ implementation: "Custom metrics registry wrapping taxonomy catalog"
625
+ python:
626
+ status: available
627
+ package: pyfulmen.metrics
628
+ version: "0.2.7"
629
+ implementation: "Custom metrics registry wrapping taxonomy catalog"
630
+ typescript:
631
+ status: available
632
+ package: "@fulmenhq/tsfulmen/metrics"
633
+ version: "0.2.7"
634
+ implementation: "Custom metrics registry wrapping taxonomy catalog"
635
+ dependencies:
636
+ required_modules: []
637
+ external_deps:
638
+ go: []
639
+ python: []
640
+ typescript: []
641
+ status: active
642
+ added_version: "0.2.7"
643
+ - module_name: fulpack
644
+ tier: common
645
+ weight: heavy
646
+ default_inclusion: false
647
+ description: Archive operations (tar.gz, zip, gzip) with Pathfinder integration
648
+ rationale: Common need for archive handling; heavy in TypeScript due to archiver/tar-stream
649
+ evidence:
650
+ has_schema: true
651
+ schema_path: schemas/library/fulpack/v1.0.0/
652
+ has_config: true
653
+ config_path: config/library/fulpack/
654
+ languages:
655
+ go:
656
+ status: planned
657
+ package: github.com/fulmenhq/gofulmen/fulpack
658
+ version: "0.1.10"
659
+ implementation: "Wraps stdlib archive/tar, archive/zip, compress/gzip"
660
+ notes: "Light in Go - stdlib only"
661
+ python:
662
+ status: planned
663
+ package: pyfulmen.fulpack
664
+ version: "0.1.10"
665
+ implementation: "Wraps stdlib tarfile, zipfile, gzip"
666
+ notes: "Light in Python - stdlib only"
667
+ typescript:
668
+ status: planned
669
+ package: "@fulmenhq/tsfulmen/fulpack"
670
+ version: "0.1.10"
671
+ implementation: "Wraps tar-stream and archiver for cross-platform compatibility"
672
+ notes: "archiver, tar-stream, unzipper are heavy; use separate entry point"
673
+ optional_deps: [archiver, tar-stream, unzipper]
674
+ dependencies:
675
+ required_modules: [pathfinder]
676
+ external_deps:
677
+ go: []
678
+ python: []
679
+ typescript: [archiver, tar-stream, unzipper]
680
+ status: active
681
+ added_version: "0.2.10"
682
+ # ============================================================================
683
+ # SPECIALIZED TIER - Opt-in via extras/optional installs
684
+ # ============================================================================
685
+ - module_name: fulencode
686
+ tier: specialized
687
+ weight: light
688
+ default_inclusion: false
689
+ description: Encoding/decoding operations (Base64, Base32, Hex, UTF detection, Unicode normalization)
690
+ rationale: Specialized encoding needs; Common-tier operations with security-first design
691
+ evidence:
692
+ has_schema: true
693
+ schema_path: schemas/library/fulencode/v1.0.0/
694
+ has_config: false
695
+ languages:
696
+ go:
697
+ status: planned
698
+ package: github.com/fulmenhq/gofulmen/fulencode
699
+ version: "0.2.12"
700
+ implementation: "Wraps stdlib encoding/base64, encoding/hex, unicode/utf8"
701
+ python:
702
+ status: planned
703
+ package: pyfulmen.fulencode
704
+ version: "0.2.12"
705
+ implementation: "Wraps stdlib base64, binascii, unicodedata"
706
+ typescript:
707
+ status: planned
708
+ package: "@fulmenhq/tsfulmen/fulencode"
709
+ version: "0.2.12"
710
+ implementation: "Wraps Node.js Buffer API and native encoding methods"
711
+ dependencies:
712
+ required_modules: []
713
+ external_deps:
714
+ go: []
715
+ python: []
716
+ typescript: []
717
+ status: active
718
+ added_version: "0.2.12"
719
+ graduation_metrics:
720
+ adoption_threshold: "Used in 3+ production applications"
721
+ stability_threshold: "6 months without breaking changes"
722
+ sunset_date: "2026-11-16"