@fulmenhq/tsfulmen 0.1.6

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 (188) hide show
  1. package/CHANGELOG.md +616 -0
  2. package/LICENSE +57 -0
  3. package/README.md +674 -0
  4. package/config/crucible-ts/README.md +38 -0
  5. package/config/crucible-ts/library/foundry/country-codes.yaml +29 -0
  6. package/config/crucible-ts/library/foundry/exit-codes.snapshot.json +351 -0
  7. package/config/crucible-ts/library/foundry/exit-codes.yaml +483 -0
  8. package/config/crucible-ts/library/foundry/fixtures/signals/invalid/invalid-behavior.yaml +45 -0
  9. package/config/crucible-ts/library/foundry/fixtures/signals/invalid/invalid-exit-code.yaml +51 -0
  10. package/config/crucible-ts/library/foundry/fixtures/signals/invalid/malformed.yaml +44 -0
  11. package/config/crucible-ts/library/foundry/fixtures/signals/invalid/missing-required.yaml +36 -0
  12. package/config/crucible-ts/library/foundry/fixtures/signals/parity-snapshot.json +162 -0
  13. package/config/crucible-ts/library/foundry/fixtures/signals/valid/complete.yaml +314 -0
  14. package/config/crucible-ts/library/foundry/fixtures/signals/valid/custom-behavior.yaml +96 -0
  15. package/config/crucible-ts/library/foundry/fixtures/signals/valid/minimal.yaml +55 -0
  16. package/config/crucible-ts/library/foundry/http-statuses.yaml +148 -0
  17. package/config/crucible-ts/library/foundry/mime-types.yaml +39 -0
  18. package/config/crucible-ts/library/foundry/patterns.yaml +185 -0
  19. package/config/crucible-ts/library/foundry/signals.yaml +331 -0
  20. package/config/crucible-ts/library/foundry/similarity-fixtures.yaml +432 -0
  21. package/config/crucible-ts/library/foundry/simplified-modes.snapshot.json +117 -0
  22. package/config/crucible-ts/library/fulhash/fixtures.yaml +160 -0
  23. package/config/crucible-ts/library/v1.0.0/module-manifest.yaml +179 -0
  24. package/config/crucible-ts/repository/app-identity/app-identity.example.yaml +42 -0
  25. package/config/crucible-ts/repository/app-identity/fixtures/invalid/invalid-binary-name.yaml +7 -0
  26. package/config/crucible-ts/repository/app-identity/fixtures/invalid/invalid-env-prefix.yaml +7 -0
  27. package/config/crucible-ts/repository/app-identity/fixtures/invalid/invalid-vendor.yaml +7 -0
  28. package/config/crucible-ts/repository/app-identity/fixtures/invalid/malformed-yaml.yaml +8 -0
  29. package/config/crucible-ts/repository/app-identity/fixtures/invalid/missing-required.yaml +6 -0
  30. package/config/crucible-ts/repository/app-identity/fixtures/valid/complete.yaml +20 -0
  31. package/config/crucible-ts/repository/app-identity/fixtures/valid/minimal.yaml +7 -0
  32. package/config/crucible-ts/repository/app-identity/fixtures/valid/monorepo-api.yaml +10 -0
  33. package/config/crucible-ts/repository/app-identity/fixtures/valid/monorepo-worker.yaml +10 -0
  34. package/config/crucible-ts/repository/app-identity/parity-snapshot.json +125 -0
  35. package/config/crucible-ts/server/management/server-management.yaml +141 -0
  36. package/config/crucible-ts/sync/README.md +13 -0
  37. package/config/crucible-ts/sync/sync-keys.yaml +74 -0
  38. package/config/crucible-ts/taxonomy/languages.yaml +33 -0
  39. package/config/crucible-ts/taxonomy/metrics.yaml +115 -0
  40. package/config/crucible-ts/taxonomy/repository-categories.yaml +66 -0
  41. package/config/crucible-ts/terminal/v1.0.0/terminal-overrides-defaults.yaml +38 -0
  42. package/config/crucible-ts/web/branding/site-branding.yaml +21 -0
  43. package/config/crucible-ts/web/styling/site-styling.yaml +104 -0
  44. package/dist/appidentity/index.d.ts +304 -0
  45. package/dist/appidentity/index.js +5519 -0
  46. package/dist/appidentity/index.js.map +1 -0
  47. package/dist/config/index.d.ts +144 -0
  48. package/dist/config/index.js +5752 -0
  49. package/dist/config/index.js.map +1 -0
  50. package/dist/crucible/index.d.ts +78 -0
  51. package/dist/crucible/index.js +6038 -0
  52. package/dist/crucible/index.js.map +1 -0
  53. package/dist/docscribe/index.d.ts +110 -0
  54. package/dist/docscribe/index.js +682 -0
  55. package/dist/docscribe/index.js.map +1 -0
  56. package/dist/errors/index.d.ts +150 -0
  57. package/dist/errors/index.js +5583 -0
  58. package/dist/errors/index.js.map +1 -0
  59. package/dist/foundry/index.d.ts +1557 -0
  60. package/dist/foundry/index.js +5474 -0
  61. package/dist/foundry/index.js.map +1 -0
  62. package/dist/foundry/similarity/index.d.ts +17 -0
  63. package/dist/foundry/similarity/index.js +136 -0
  64. package/dist/foundry/similarity/index.js.map +1 -0
  65. package/dist/fulhash/index.d.ts +82 -0
  66. package/dist/fulhash/index.js +374 -0
  67. package/dist/fulhash/index.js.map +1 -0
  68. package/dist/fulmen-error-B_kX8jSC.d.ts +309 -0
  69. package/dist/index.d.ts +14 -0
  70. package/dist/index.js +6197 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/logger-JU2jYitA.d.ts +171 -0
  73. package/dist/logging/index.d.ts +198 -0
  74. package/dist/logging/index.js +578 -0
  75. package/dist/logging/index.js.map +1 -0
  76. package/dist/pathfinder/index.d.ts +532 -0
  77. package/dist/pathfinder/index.js +6750 -0
  78. package/dist/pathfinder/index.js.map +1 -0
  79. package/dist/registry-x1-Qi_Tz.d.ts +349 -0
  80. package/dist/schema/index.d.ts +388 -0
  81. package/dist/schema/index.js +5522 -0
  82. package/dist/schema/index.js.map +1 -0
  83. package/dist/suggest-CLqjLZ5L.d.ts +168 -0
  84. package/dist/telemetry/index.d.ts +161 -0
  85. package/dist/telemetry/index.js +5610 -0
  86. package/dist/telemetry/index.js.map +1 -0
  87. package/dist/types-B_WtvQbS.d.ts +214 -0
  88. package/package.json +130 -0
  89. package/schemas/crucible-ts/api/http/v1.0.0/README.md +22 -0
  90. package/schemas/crucible-ts/api/http/v1.0.0/error-response.schema.json +54 -0
  91. package/schemas/crucible-ts/api/http/v1.0.0/health-response.schema.json +70 -0
  92. package/schemas/crucible-ts/api/http/v1.0.0/success-response.schema.json +51 -0
  93. package/schemas/crucible-ts/api/http/v1.0.0/version-response.schema.json +61 -0
  94. package/schemas/crucible-ts/ascii/v1.0.0/README.md +69 -0
  95. package/schemas/crucible-ts/ascii/v1.0.0/box-chars.schema.json +60 -0
  96. package/schemas/crucible-ts/ascii/v1.0.0/string-analysis.schema.json +45 -0
  97. package/schemas/crucible-ts/assessment/README.md +25 -0
  98. package/schemas/crucible-ts/assessment/v1.0.0/severity-definitions.schema.json +60 -0
  99. package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/README.md +11 -0
  100. package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/fulmen-config-paths.schema.json +61 -0
  101. package/schemas/crucible-ts/config/goneat/README.md +60 -0
  102. package/schemas/crucible-ts/config/goneat/v1.0.0/dates.yaml +234 -0
  103. package/schemas/crucible-ts/config/goneat/v1.0.0/goneat-config.yaml +344 -0
  104. package/schemas/crucible-ts/config/goneat/v1.0.0/lifecycle-phase.json +20 -0
  105. package/schemas/crucible-ts/config/goneat/v1.0.0/release-phase.json +17 -0
  106. package/schemas/crucible-ts/config/goneat/v1.0.0/security-policy.yaml +178 -0
  107. package/schemas/crucible-ts/config/goneat/v1.0.0/version-policy.schema.yaml +205 -0
  108. package/schemas/crucible-ts/config/repository/app-identity/v1.0.0/app-identity.schema.json +143 -0
  109. package/schemas/crucible-ts/config/repository/v1.0.0/lifecycle-phase.json +20 -0
  110. package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json +288 -0
  111. package/schemas/crucible-ts/config/standards/v1.0.0/adr-adoption-status.json +60 -0
  112. package/schemas/crucible-ts/config/standards/v1.0.0/adr-frontmatter.schema.json +225 -0
  113. package/schemas/crucible-ts/config/standards/v1.0.0/adr-lifecycle-status.json +62 -0
  114. package/schemas/crucible-ts/config/sync-consumer-config.yaml +51 -0
  115. package/schemas/crucible-ts/config/sync-keys.schema.yaml +37 -0
  116. package/schemas/crucible-ts/content/README.md +19 -0
  117. package/schemas/crucible-ts/content/binary-embed-manifest/v1.0.0/README.md +13 -0
  118. package/schemas/crucible-ts/content/binary-embed-manifest/v1.0.0/binary-embed-manifest.schema.yaml +36 -0
  119. package/schemas/crucible-ts/content/embed-manifest/v1.1.0/README.md +13 -0
  120. package/schemas/crucible-ts/content/embed-manifest/v1.1.0/embed-manifest.schema.yaml +78 -0
  121. package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/README.md +200 -0
  122. package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json +128 -0
  123. package/schemas/crucible-ts/error-handling/v1.0.0/error-response.schema.json +75 -0
  124. package/schemas/crucible-ts/library/foundry/v1.0.0/country-codes.schema.json +58 -0
  125. package/schemas/crucible-ts/library/foundry/v1.0.0/exit-codes.schema.json +300 -0
  126. package/schemas/crucible-ts/library/foundry/v1.0.0/http-status-groups.schema.json +74 -0
  127. package/schemas/crucible-ts/library/foundry/v1.0.0/mime-types.schema.json +60 -0
  128. package/schemas/crucible-ts/library/foundry/v1.0.0/patterns.schema.json +97 -0
  129. package/schemas/crucible-ts/library/foundry/v1.0.0/signals.schema.json +457 -0
  130. package/schemas/crucible-ts/library/foundry/v1.0.0/similarity.schema.json +260 -0
  131. package/schemas/crucible-ts/library/foundry/v2.0.0/similarity.schema.json +558 -0
  132. package/schemas/crucible-ts/library/fulhash/v1.0.0/README.md +6 -0
  133. package/schemas/crucible-ts/library/fulhash/v1.0.0/checksum-string.schema.json +8 -0
  134. package/schemas/crucible-ts/library/fulhash/v1.0.0/digest.schema.json +100 -0
  135. package/schemas/crucible-ts/library/fulhash/v1.0.0/fixtures.schema.json +227 -0
  136. package/schemas/crucible-ts/library/module-manifest/v1.0.0/README.md +31 -0
  137. package/schemas/crucible-ts/library/module-manifest/v1.0.0/module-manifest.schema.json +132 -0
  138. package/schemas/crucible-ts/meta/README.md +23 -0
  139. package/schemas/crucible-ts/meta/draft-07/schema.json +245 -0
  140. package/schemas/crucible-ts/meta/draft-2020-12/meta/applicator.json +81 -0
  141. package/schemas/crucible-ts/meta/draft-2020-12/meta/content.json +21 -0
  142. package/schemas/crucible-ts/meta/draft-2020-12/meta/core.json +64 -0
  143. package/schemas/crucible-ts/meta/draft-2020-12/meta/format-annotation.json +15 -0
  144. package/schemas/crucible-ts/meta/draft-2020-12/meta/meta-data.json +35 -0
  145. package/schemas/crucible-ts/meta/draft-2020-12/meta/unevaluated.json +18 -0
  146. package/schemas/crucible-ts/meta/draft-2020-12/meta/validation.json +119 -0
  147. package/schemas/crucible-ts/meta/draft-2020-12/schema.json +80 -0
  148. package/schemas/crucible-ts/observability/logging/v1.0.0/README.md +82 -0
  149. package/schemas/crucible-ts/observability/logging/v1.0.0/definitions.schema.json +140 -0
  150. package/schemas/crucible-ts/observability/logging/v1.0.0/log-event.schema.json +179 -0
  151. package/schemas/crucible-ts/observability/logging/v1.0.0/logger-config.schema.json +518 -0
  152. package/schemas/crucible-ts/observability/logging/v1.0.0/logging-policy.schema.json +225 -0
  153. package/schemas/crucible-ts/observability/logging/v1.0.0/middleware-config.schema.json +181 -0
  154. package/schemas/crucible-ts/observability/logging/v1.0.0/severity-filter.schema.json +38 -0
  155. package/schemas/crucible-ts/observability/metrics/v1.0.0/metrics-event.schema.json +86 -0
  156. package/schemas/crucible-ts/pathfinder/v1.0.0/README.md +104 -0
  157. package/schemas/crucible-ts/pathfinder/v1.0.0/error-response.schema.json +35 -0
  158. package/schemas/crucible-ts/pathfinder/v1.0.0/find-query.schema.json +49 -0
  159. package/schemas/crucible-ts/pathfinder/v1.0.0/finder-config.schema.json +91 -0
  160. package/schemas/crucible-ts/pathfinder/v1.0.0/metadata.schema.json +61 -0
  161. package/schemas/crucible-ts/pathfinder/v1.0.0/path-constraint.schema.json +50 -0
  162. package/schemas/crucible-ts/pathfinder/v1.0.0/path-result.schema.json +40 -0
  163. package/schemas/crucible-ts/protocol/http/v1.0.0/README.md +22 -0
  164. package/schemas/crucible-ts/protocol/http/v1.0.0/error-response.schema.json +54 -0
  165. package/schemas/crucible-ts/protocol/http/v1.0.0/health-response.schema.json +70 -0
  166. package/schemas/crucible-ts/protocol/http/v1.0.0/success-response.schema.json +51 -0
  167. package/schemas/crucible-ts/protocol/http/v1.0.0/version-response.schema.json +61 -0
  168. package/schemas/crucible-ts/schema-validation/v1.0.0/README.md +65 -0
  169. package/schemas/crucible-ts/schema-validation/v1.0.0/schema-registry.schema.json +31 -0
  170. package/schemas/crucible-ts/schema-validation/v1.0.0/validator-config.schema.json +36 -0
  171. package/schemas/crucible-ts/server/management/v1.0.0/server-management.schema.json +199 -0
  172. package/schemas/crucible-ts/taxonomy/language/v1.0.0/README.md +30 -0
  173. package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-key.schema.json +17 -0
  174. package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-metadata.schema.json +44 -0
  175. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/README.md +31 -0
  176. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-key.schema.json +19 -0
  177. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-metadata.schema.json +39 -0
  178. package/schemas/crucible-ts/terminal/v1.0.0/README.md +45 -0
  179. package/schemas/crucible-ts/terminal/v1.0.0/catalog/apple-terminal.yaml +2 -0
  180. package/schemas/crucible-ts/terminal/v1.0.0/catalog/ghostty.yaml +13 -0
  181. package/schemas/crucible-ts/terminal/v1.0.0/catalog/iterm2.yaml +13 -0
  182. package/schemas/crucible-ts/terminal/v1.0.0/schema.json +40 -0
  183. package/schemas/crucible-ts/tooling/external-tools/v1.0.0/README.md +164 -0
  184. package/schemas/crucible-ts/tooling/external-tools/v1.0.0/external-tools-manifest.schema.yaml +83 -0
  185. package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/README.md +177 -0
  186. package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/goneat-tools-config.schema.yaml +146 -0
  187. package/schemas/crucible-ts/web/branding/v1.0.0/site-branding.schema.json +79 -0
  188. package/schemas/crucible-ts/web/styling/v1.0.0/site-styling.schema.json +321 -0
@@ -0,0 +1,225 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/observability/logging/logging-policy-v1.0.0.json",
4
+ "title": "LoggingPolicy",
5
+ "description": "Organizational logging policy for profile validation and governance",
6
+ "type": "object",
7
+ "properties": {
8
+ "version": {
9
+ "type": "string",
10
+ "description": "Policy version identifier for compatibility tracking.",
11
+ "default": "1.0.0"
12
+ },
13
+ "allowedProfiles": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string",
17
+ "enum": [
18
+ "SIMPLE",
19
+ "STRUCTURED",
20
+ "ENTERPRISE",
21
+ "CUSTOM"
22
+ ]
23
+ },
24
+ "uniqueItems": true,
25
+ "description": "Logging profiles permitted within the organization."
26
+ },
27
+ "requiredProfiles": {
28
+ "type": "object",
29
+ "patternProperties": {
30
+ "^[a-zA-Z][a-zA-Z0-9_-]*$": {
31
+ "type": "array",
32
+ "items": {
33
+ "type": "string",
34
+ "enum": [
35
+ "SIMPLE",
36
+ "STRUCTURED",
37
+ "ENTERPRISE",
38
+ "CUSTOM"
39
+ ]
40
+ },
41
+ "uniqueItems": true
42
+ }
43
+ },
44
+ "description": "Required profiles by application type (e.g., workhorse, service, cli). Keys follow lower-case kebab or snake case."
45
+ },
46
+ "environmentRules": {
47
+ "type": "object",
48
+ "patternProperties": {
49
+ "^[a-zA-Z][a-zA-Z0-9_-]*$": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "enum": [
54
+ "SIMPLE",
55
+ "STRUCTURED",
56
+ "ENTERPRISE",
57
+ "CUSTOM"
58
+ ]
59
+ },
60
+ "uniqueItems": true
61
+ }
62
+ },
63
+ "description": "Allowed profiles by deployment environment."
64
+ },
65
+ "profileRequirements": {
66
+ "type": "object",
67
+ "patternProperties": {
68
+ "^(SIMPLE|STRUCTURED|ENTERPRISE|CUSTOM)$": {
69
+ "type": "object",
70
+ "properties": {
71
+ "minEnvironment": {
72
+ "type": "string",
73
+ "enum": [
74
+ "development",
75
+ "staging",
76
+ "production"
77
+ ],
78
+ "description": "Minimum environment required to enable the profile."
79
+ },
80
+ "maxEnvironment": {
81
+ "type": "string",
82
+ "enum": [
83
+ "development",
84
+ "staging",
85
+ "production"
86
+ ],
87
+ "description": "Maximum environment where the profile is allowed."
88
+ },
89
+ "requiredFeatures": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ },
94
+ "uniqueItems": true,
95
+ "description": "Features that MUST be enabled for the profile."
96
+ },
97
+ "forbiddenFeatures": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ },
102
+ "uniqueItems": true,
103
+ "description": "Features that MUST NOT be enabled for the profile."
104
+ }
105
+ },
106
+ "additionalProperties": false
107
+ }
108
+ },
109
+ "description": "Additional per-profile requirements and restrictions."
110
+ },
111
+ "customRequirements": {
112
+ "type": "object",
113
+ "additionalProperties": true,
114
+ "description": "Organization-specific requirements to apply when profile=CUSTOM."
115
+ },
116
+ "auditSettings": {
117
+ "type": "object",
118
+ "properties": {
119
+ "logPolicyViolations": {
120
+ "type": "boolean",
121
+ "default": true,
122
+ "description": "Emit log entries when configurations violate policy."
123
+ },
124
+ "enforceStrictMode": {
125
+ "type": "boolean",
126
+ "default": false,
127
+ "description": "If true, applications MUST fail fast when policy violations occur."
128
+ },
129
+ "requirePolicyFile": {
130
+ "type": "boolean",
131
+ "default": false,
132
+ "description": "If true, all applications MUST provide a policy file."
133
+ }
134
+ },
135
+ "additionalProperties": false
136
+ }
137
+ },
138
+ "required": [
139
+ "allowedProfiles"
140
+ ],
141
+ "additionalProperties": false,
142
+ "examples": [
143
+ {
144
+ "version": "1.0.0",
145
+ "allowedProfiles": [
146
+ "SIMPLE",
147
+ "STRUCTURED",
148
+ "ENTERPRISE"
149
+ ],
150
+ "requiredProfiles": {
151
+ "workhorse": [
152
+ "ENTERPRISE"
153
+ ],
154
+ "service": [
155
+ "STRUCTURED",
156
+ "ENTERPRISE"
157
+ ],
158
+ "cli": [
159
+ "SIMPLE",
160
+ "STRUCTURED"
161
+ ]
162
+ },
163
+ "environmentRules": {
164
+ "production": [
165
+ "STRUCTURED",
166
+ "ENTERPRISE"
167
+ ],
168
+ "staging": [
169
+ "SIMPLE",
170
+ "STRUCTURED",
171
+ "ENTERPRISE"
172
+ ],
173
+ "development": [
174
+ "SIMPLE",
175
+ "STRUCTURED",
176
+ "ENTERPRISE"
177
+ ]
178
+ },
179
+ "profileRequirements": {
180
+ "ENTERPRISE": {
181
+ "requiredFeatures": [
182
+ "correlation",
183
+ "middleware",
184
+ "throttling"
185
+ ],
186
+ "minEnvironment": "staging"
187
+ },
188
+ "SIMPLE": {
189
+ "forbiddenFeatures": [
190
+ "correlation",
191
+ "middleware",
192
+ "throttling"
193
+ ],
194
+ "maxEnvironment": "development"
195
+ }
196
+ },
197
+ "auditSettings": {
198
+ "logPolicyViolations": true,
199
+ "enforceStrictMode": false,
200
+ "requirePolicyFile": false
201
+ }
202
+ },
203
+ {
204
+ "version": "1.0.0",
205
+ "allowedProfiles": [
206
+ "ENTERPRISE"
207
+ ],
208
+ "requiredProfiles": {
209
+ "*": [
210
+ "ENTERPRISE"
211
+ ]
212
+ },
213
+ "environmentRules": {
214
+ "*": [
215
+ "ENTERPRISE"
216
+ ]
217
+ },
218
+ "auditSettings": {
219
+ "logPolicyViolations": true,
220
+ "enforceStrictMode": true,
221
+ "requirePolicyFile": true
222
+ }
223
+ }
224
+ ]
225
+ }
@@ -0,0 +1,181 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/observability/logging/middleware-config-v1.0.0.json",
4
+ "title": "MiddlewareConfig",
5
+ "description": "Configuration for log event middleware (redaction, filtering, augmentation)",
6
+ "type": "object",
7
+ "properties": {
8
+ "type": {
9
+ "type": "string",
10
+ "enum": [
11
+ "redaction",
12
+ "filter",
13
+ "augmentation",
14
+ "sampling",
15
+ "custom"
16
+ ],
17
+ "description": "Middleware type"
18
+ },
19
+ "enabled": {
20
+ "type": "boolean",
21
+ "default": true,
22
+ "description": "Whether this middleware is active"
23
+ },
24
+ "priority": {
25
+ "type": "integer",
26
+ "minimum": 0,
27
+ "description": "Execution priority (lower runs first)"
28
+ },
29
+ "redaction": {
30
+ "$ref": "#/$defs/redactionConfig"
31
+ },
32
+ "filter": {
33
+ "$ref": "#/$defs/filterConfig"
34
+ },
35
+ "augmentation": {
36
+ "$ref": "#/$defs/augmentationConfig"
37
+ },
38
+ "sampling": {
39
+ "$ref": "#/$defs/samplingConfig"
40
+ }
41
+ },
42
+ "required": [
43
+ "type"
44
+ ],
45
+ "$defs": {
46
+ "redactionConfig": {
47
+ "type": "object",
48
+ "properties": {
49
+ "patterns": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string"
53
+ },
54
+ "description": "Regex patterns to redact (e.g., credit cards, emails)"
55
+ },
56
+ "fields": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string"
60
+ },
61
+ "description": "Field names to redact completely"
62
+ },
63
+ "replacement": {
64
+ "type": "string",
65
+ "default": "[REDACTED]",
66
+ "description": "Replacement text for redacted content"
67
+ }
68
+ }
69
+ },
70
+ "filterConfig": {
71
+ "type": "object",
72
+ "properties": {
73
+ "minLevel": {
74
+ "type": "string",
75
+ "enum": [
76
+ "TRACE",
77
+ "DEBUG",
78
+ "INFO",
79
+ "WARN",
80
+ "ERROR",
81
+ "FATAL"
82
+ ],
83
+ "description": "Filter out events below this level (deprecated: use severityFilter for operator-based filtering)"
84
+ },
85
+ "severityFilter": {
86
+ "$ref": "severity-filter.schema.json",
87
+ "description": "Advanced severity filtering with comparison operators"
88
+ },
89
+ "exclude": {
90
+ "type": "object",
91
+ "properties": {
92
+ "loggers": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "string"
96
+ },
97
+ "description": "Logger names to exclude"
98
+ },
99
+ "components": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "string"
103
+ },
104
+ "description": "Components to exclude"
105
+ }
106
+ },
107
+ "description": "Exclusion rules"
108
+ }
109
+ }
110
+ },
111
+ "augmentationConfig": {
112
+ "type": "object",
113
+ "properties": {
114
+ "fields": {
115
+ "type": "object",
116
+ "additionalProperties": true,
117
+ "description": "Fields to add to all events"
118
+ },
119
+ "dynamic": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "string"
123
+ },
124
+ "description": "Names of dynamic field providers (implementation-specific)"
125
+ }
126
+ }
127
+ },
128
+ "samplingConfig": {
129
+ "type": "object",
130
+ "properties": {
131
+ "rate": {
132
+ "type": "number",
133
+ "minimum": 0,
134
+ "maximum": 1,
135
+ "description": "Sampling rate (0.0 to 1.0)"
136
+ },
137
+ "byLevel": {
138
+ "type": "object",
139
+ "additionalProperties": {
140
+ "type": "number",
141
+ "minimum": 0,
142
+ "maximum": 1
143
+ },
144
+ "description": "Per-level sampling rates"
145
+ }
146
+ }
147
+ }
148
+ },
149
+ "examples": [
150
+ {
151
+ "type": "redaction",
152
+ "enabled": true,
153
+ "priority": 10,
154
+ "redaction": {
155
+ "patterns": [
156
+ "\\d{16}",
157
+ "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"
158
+ ],
159
+ "fields": [
160
+ "password",
161
+ "token",
162
+ "apiKey"
163
+ ],
164
+ "replacement": "[REDACTED]"
165
+ }
166
+ },
167
+ {
168
+ "type": "sampling",
169
+ "enabled": true,
170
+ "priority": 5,
171
+ "sampling": {
172
+ "rate": 0.1,
173
+ "byLevel": {
174
+ "ERROR": 1.0,
175
+ "FATAL": 1.0,
176
+ "DEBUG": 0.01
177
+ }
178
+ }
179
+ }
180
+ ]
181
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/observability/logging/severity-filter-v1.0.0.json",
4
+ "title": "SeverityFilter",
5
+ "description": "Severity-based filtering with comparison operators for log event processing",
6
+ "type": "object",
7
+ "properties": {
8
+ "operator": {
9
+ "$ref": "definitions.schema.json#/$defs/comparisonOperator"
10
+ },
11
+ "level": {
12
+ "$ref": "definitions.schema.json#/$defs/severityName"
13
+ }
14
+ },
15
+ "required": [
16
+ "operator",
17
+ "level"
18
+ ],
19
+ "examples": [
20
+ {
21
+ "operator": "GE",
22
+ "level": "WARN",
23
+ "description": "Filter events with severity >= WARN (includes WARN, ERROR, FATAL)"
24
+ },
25
+ {
26
+ "operator": "LT",
27
+ "level": "ERROR",
28
+ "description": "Filter events with severity < ERROR (includes TRACE, DEBUG, INFO, WARN)"
29
+ },
30
+ {
31
+ "operator": "EQ",
32
+ "level": "ERROR",
33
+ "description": "Filter only ERROR events"
34
+ }
35
+ ],
36
+ "additionalProperties": false,
37
+ "$comment": "Implementation MUST convert severityName to severityLevel for numeric comparison. See definitions.schema.json#/$defs/severityMapping for canonical name→level mapping."
38
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/observability/metrics/v1.0.0/metrics-event.schema.json",
4
+ "title": "Fulmen Metrics Event",
5
+ "description": "Schema for basic telemetry export (counter/gauge/histogram) emitted by Fulmen helper libraries.",
6
+ "type": "object",
7
+ "properties": {
8
+ "timestamp": {
9
+ "type": "string",
10
+ "format": "date-time",
11
+ "description": "RFC3339 timestamp of metric emission."
12
+ },
13
+ "name": {
14
+ "$ref": "../../../../config/taxonomy/metrics.yaml#/$defs/metricName",
15
+ "description": "Metric identifier drawn from the metrics taxonomy."
16
+ },
17
+ "value": {
18
+ "description": "Measurement payload (scalar counter/gauge or histogram summary).",
19
+ "oneOf": [
20
+ {
21
+ "type": "number",
22
+ "description": "Scalar measurement (e.g., counter increment, instantaneous gauge)."
23
+ },
24
+ {
25
+ "type": "object",
26
+ "description": "Histogram summary payload.",
27
+ "properties": {
28
+ "count": {
29
+ "type": "integer",
30
+ "minimum": 0
31
+ },
32
+ "sum": {
33
+ "type": "number"
34
+ },
35
+ "buckets": {
36
+ "type": "array",
37
+ "items": {
38
+ "type": "object",
39
+ "properties": {
40
+ "le": {
41
+ "type": "number",
42
+ "description": "Upper bound (less-than-or-equal) for the bucket."
43
+ },
44
+ "count": {
45
+ "type": "integer",
46
+ "minimum": 0,
47
+ "description": "Cumulative count up to and including this bucket."
48
+ }
49
+ },
50
+ "required": [
51
+ "le",
52
+ "count"
53
+ ],
54
+ "additionalProperties": false
55
+ },
56
+ "description": "Ordered buckets with cumulative counts (OTLP-compatible)."
57
+ }
58
+ },
59
+ "required": [
60
+ "count",
61
+ "sum",
62
+ "buckets"
63
+ ],
64
+ "additionalProperties": false
65
+ }
66
+ ]
67
+ },
68
+ "tags": {
69
+ "type": "object",
70
+ "description": "Key/value dimensions applied to the metric event.",
71
+ "additionalProperties": {
72
+ "type": "string"
73
+ }
74
+ },
75
+ "unit": {
76
+ "$ref": "../../../../config/taxonomy/metrics.yaml#/$defs/metricUnit",
77
+ "description": "Metric unit (defaults to taxonomy default when omitted)."
78
+ }
79
+ },
80
+ "required": [
81
+ "timestamp",
82
+ "name",
83
+ "value"
84
+ ],
85
+ "additionalProperties": false
86
+ }
@@ -0,0 +1,104 @@
1
+ # Pathfinder Schemas v1.0.0
2
+
3
+ JSON Schemas for the Pathfinder file discovery API, ensuring consistent data structures across Go, TypeScript, Python, and other language implementations.
4
+
5
+ ## Schemas
6
+
7
+ ### find-query.schema.json
8
+
9
+ **Purpose**: Query parameters for file discovery operations
10
+
11
+ **Key Properties**:
12
+
13
+ - `root`: Root directory to search from (required)
14
+ - `include`: Glob patterns to include (array of strings)
15
+ - `exclude`: Glob patterns to exclude (array of strings)
16
+ - `maxDepth`: Maximum directory depth (integer, min 0, default 0)
17
+ - `followSymlinks`: Whether to follow symbolic links (boolean, default false)
18
+ - `includeHidden`: Whether to include hidden files/directories (boolean, default false)
19
+
20
+ ### finder-config.schema.json
21
+
22
+ **Purpose**: Configuration for the Finder component
23
+
24
+ **Key Properties**:
25
+
26
+ - `maxWorkers`: Maximum concurrent workers (integer, min 1)
27
+ - `cacheEnabled`: Whether caching is enabled (boolean)
28
+ - `cacheTTL`: Cache time-to-live in seconds (integer, min 0)
29
+ - `constraint`: Path constraint configuration (PathConstraint object)
30
+ - `loaderType`: Type of loader to use (string)
31
+
32
+ ### path-result.schema.json
33
+
34
+ **Purpose**: Structure of discovery results returned by Pathfinder
35
+
36
+ **Key Properties**:
37
+
38
+ - `relativePath`: Path relative to discovery root (string)
39
+ - `sourcePath`: Absolute source path (string)
40
+ - `logicalPath`: Logical mapping path (string)
41
+ - `loaderType`: Type of loader used (string)
42
+ - `metadata`: Additional file metadata (Metadata object)
43
+
44
+ ### error-response.schema.json
45
+
46
+ **Purpose**: Standardized error response structure for consistent error handling
47
+
48
+ **Key Properties**:
49
+
50
+ - `code`: Error code identifier (string, required)
51
+ - `message`: Human-readable error message (string, required)
52
+ - `details`: Additional error details (object)
53
+ - `path`: Path that caused the error (string, optional)
54
+ - `timestamp`: When the error occurred (date-time string, optional)
55
+
56
+ ### path-constraint.schema.json
57
+
58
+ **Purpose**: Path constraint configuration for defining safety boundaries
59
+
60
+ **Key Properties**:
61
+
62
+ - `root`: Root path for the constraint boundary (string, required)
63
+ - `type`: Type of constraint - `repository`, `workspace`, or `cloud` (required)
64
+ - `enforcementLevel`: Strictness - `strict`, `warn`, or `permissive` (required)
65
+ - `allowedPatterns`: Additional allowed path patterns (array of strings)
66
+ - `blockedPatterns`: Blocked path patterns (array of strings)
67
+
68
+ ### metadata.schema.json
69
+
70
+ **Purpose**: Flexible metadata structure for path results
71
+
72
+ **Key Properties**:
73
+
74
+ - `size`: File size in bytes (integer)
75
+ - `modified`: Last modification timestamp (date-time string)
76
+ - `permissions`: File permissions (string, octal or symbolic)
77
+ - `mimeType`: MIME type of the file (string)
78
+ - `encoding`: Character encoding if applicable (string)
79
+ - `checksum`: File checksum/hash (string)
80
+ - `tags`: User-defined tags (array of strings)
81
+ - `custom`: Custom metadata fields (object)
82
+
83
+ ## Usage
84
+
85
+ These schemas are used across all Fulmen implementations:
86
+
87
+ - `gofulmen/pathfinder`: Go implementation
88
+ - `tsfulmen/pathfinder`: TypeScript implementation
89
+ - `pyfulmen/pathfinder`: Python implementation (future)
90
+
91
+ **Purpose**:
92
+
93
+ - Validate API inputs and outputs
94
+ - Generate type definitions and validation code
95
+ - Ensure API consistency across languages
96
+ - Provide documentation for API consumers
97
+
98
+ ## Versioning
99
+
100
+ Schemas follow semantic versioning. Breaking changes will increment the major version number.
101
+
102
+ ## Naming Conventions
103
+
104
+ All property names use **camelCase** for consistency with JSON/JavaScript conventions.
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/pathfinder/error-response-v1.0.0.json",
4
+ "title": "ErrorResponse",
5
+ "description": "Standardized error response structure for pathfinder operations",
6
+ "type": "object",
7
+ "properties": {
8
+ "code": {
9
+ "type": "string",
10
+ "description": "Error code identifier"
11
+ },
12
+ "message": {
13
+ "type": "string",
14
+ "description": "Human-readable error message"
15
+ },
16
+ "details": {
17
+ "type": "object",
18
+ "additionalProperties": true,
19
+ "description": "Additional error details"
20
+ },
21
+ "path": {
22
+ "type": "string",
23
+ "description": "Path that caused the error (if applicable)"
24
+ },
25
+ "timestamp": {
26
+ "type": "string",
27
+ "format": "date-time",
28
+ "description": "When the error occurred"
29
+ }
30
+ },
31
+ "required": [
32
+ "code",
33
+ "message"
34
+ ]
35
+ }