domainforge 0.13.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 (481) hide show
  1. package/.cargo/config.toml +6 -0
  2. package/.claude/settings.local.json +18 -0
  3. package/.coderabbit.yml +43 -0
  4. package/.codex/skills/release-management/SKILL.md +151 -0
  5. package/.codex/skills/release-management/agents/openai.yaml +4 -0
  6. package/.github/actions/decrypt-secrets/action.yml +121 -0
  7. package/.github/agents/Coder.agent.md +97 -0
  8. package/.github/agents/DeepResearch.agent.md +61 -0
  9. package/.github/chatmodes/tdd.vibepro.chatmode.md +1183 -0
  10. package/.github/copilot-instructions.md +13 -0
  11. package/.github/dependabot.yml +68 -0
  12. package/.github/workflows/README.md +165 -0
  13. package/.github/workflows/ci.yml +335 -0
  14. package/.github/workflows/dependabot-automerge.yml +114 -0
  15. package/.github/workflows/dependency-review.yml +27 -0
  16. package/.github/workflows/deploy.yml +87 -0
  17. package/.github/workflows/prepare-release.yml +168 -0
  18. package/.github/workflows/release-crates.yml +42 -0
  19. package/.github/workflows/release-npm.yml +137 -0
  20. package/.github/workflows/release-please.yml +29 -0
  21. package/.github/workflows/release-pypi.yml +96 -0
  22. package/.gitkeep +1 -0
  23. package/.release-please-manifest.json +5 -0
  24. package/.sea-registry.toml +10 -0
  25. package/.serena/project.yml +133 -0
  26. package/.sops.yaml +10 -0
  27. package/AGENTS.md +216 -0
  28. package/CHANGELOG.md +400 -0
  29. package/CLAUDE.md +62 -0
  30. package/CONTRIBUTING.md +323 -0
  31. package/Cargo.lock +3612 -0
  32. package/Cargo.toml +12 -0
  33. package/LICENSE +201 -0
  34. package/README.md +660 -0
  35. package/README_PYTHON.md +256 -0
  36. package/README_TYPESCRIPT.md +305 -0
  37. package/README_WASM.md +329 -0
  38. package/RELEASE_NOTES.md +41 -0
  39. package/bun.lock +378 -0
  40. package/bunfig.toml +11 -0
  41. package/check_output.txt +83 -0
  42. package/clippy_output.txt +80 -0
  43. package/commitlint.config.cjs +8 -0
  44. package/deny.toml +42 -0
  45. package/devbox.json +14 -0
  46. package/devbox.lock +76 -0
  47. package/docs/RELEASE_PROCESS.md +360 -0
  48. package/docs/diagnostics.md +161 -0
  49. package/docs/doc_guidelines.md +53 -0
  50. package/docs/explanations/README.md +21 -0
  51. package/docs/explanations/architecture-overview.md +109 -0
  52. package/docs/explanations/cross-language-binding-strategy.md +68 -0
  53. package/docs/explanations/graph-store-design.md +47 -0
  54. package/docs/explanations/performance-benchmarks.md +63 -0
  55. package/docs/explanations/policy-evaluation-logic.md +106 -0
  56. package/docs/explanations/semantic-modeling-concepts.md +109 -0
  57. package/docs/explanations/three-valued-logic.md +66 -0
  58. package/docs/explanations/versioning-strategy.md +45 -0
  59. package/docs/governance.md +168 -0
  60. package/docs/how-tos/README.md +46 -0
  61. package/docs/how-tos/ci-cd-validation.md +93 -0
  62. package/docs/how-tos/create-custom-units.md +125 -0
  63. package/docs/how-tos/define-policies.md +119 -0
  64. package/docs/how-tos/export-to-calm.md +110 -0
  65. package/docs/how-tos/export-to-protobuf.md +312 -0
  66. package/docs/how-tos/extend-grammar.md +133 -0
  67. package/docs/how-tos/generate-rdf-turtle.md +106 -0
  68. package/docs/how-tos/import-from-calm.md +114 -0
  69. package/docs/how-tos/import-from-sbvr.md +249 -0
  70. package/docs/how-tos/install-cli.md +126 -0
  71. package/docs/how-tos/parse-sea-files.md +132 -0
  72. package/docs/how-tos/policy-evaluation-modes.md +30 -0
  73. package/docs/how-tos/run-cross-language-tests.md +115 -0
  74. package/docs/how-tos/troubleshoot-napi-builds.md +55 -0
  75. package/docs/how-tos/use-modules-imports.md +285 -0
  76. package/docs/index.md +13 -0
  77. package/docs/plans/canonical-normalizer.md +121 -0
  78. package/docs/plans/cd_improvement.md +112 -0
  79. package/docs/plans/cli-ast.md +29 -0
  80. package/docs/plans/expression-bindings-and-normalizer-integration.md +174 -0
  81. package/docs/plans/protobuf_advanced_features_plan.md +597 -0
  82. package/docs/plans/protobuf_plan.yml +525 -0
  83. package/docs/plans/refactor_dsl_architecture.md +131 -0
  84. package/docs/plans/release-plan.md +163 -0
  85. package/docs/plans/sea_fmt_implementation_plan.md +516 -0
  86. package/docs/playbooks/README.md +18 -0
  87. package/docs/playbooks/adding-new-primitive.md +68 -0
  88. package/docs/playbooks/debugging-parser-failures.md +42 -0
  89. package/docs/playbooks/local-release-preparation.md +139 -0
  90. package/docs/playbooks/migrating-schema-versions.md +43 -0
  91. package/docs/playbooks/onboarding-contributors.md +64 -0
  92. package/docs/playbooks/releasing-beta.md +86 -0
  93. package/docs/playbooks/secret-management.md +64 -0
  94. package/docs/reference/README.md +199 -0
  95. package/docs/reference/ast-json-api.md +427 -0
  96. package/docs/reference/calm-mapping.md +519 -0
  97. package/docs/reference/cli-commands.md +588 -0
  98. package/docs/reference/configuration.md +202 -0
  99. package/docs/reference/error-codes.md +664 -0
  100. package/docs/reference/generated-artifacts-policy.md +53 -0
  101. package/docs/reference/grammar-spec.md +255 -0
  102. package/docs/reference/primitives-api.md +317 -0
  103. package/docs/reference/protobuf-api.md +426 -0
  104. package/docs/reference/python-api.md +485 -0
  105. package/docs/reference/registry.md +50 -0
  106. package/docs/reference/sea-dsl-ai-cheatsheet.yaml +913 -0
  107. package/docs/reference/security-model.md +74 -0
  108. package/docs/reference/typescript-api.md +508 -0
  109. package/docs/reference/wasm-api.md +420 -0
  110. package/docs/semantic-pack-review.md +144 -0
  111. package/docs/semantic-pack-signing.md +234 -0
  112. package/docs/semantic-packs.md +284 -0
  113. package/docs/specs/ADR-001-sea-dsl-semantic-source-of-truth.md +33 -0
  114. package/docs/specs/ADR-002-projection-first-class-construct.md +50 -0
  115. package/docs/specs/ADR-003-protobuf-projection-target.md +51 -0
  116. package/docs/specs/ADR-004-projection-compatibility-semantics.md +57 -0
  117. package/docs/specs/ADR-005-multi-language-support-strategy.md +112 -0
  118. package/docs/specs/ADR-006-error-handling-strategy.md +115 -0
  119. package/docs/specs/ADR-007-policy-evaluation-engine.md +95 -0
  120. package/docs/specs/ADR-008-knowledge-graph-integration.md +90 -0
  121. package/docs/specs/ADR-009-module-resolution-strategy.md +115 -0
  122. package/docs/specs/ADR-010-unit-system.md +106 -0
  123. package/docs/specs/PRD-001-sea-projection-framework.md +155 -0
  124. package/docs/specs/PRD-002-sea-cli-tooling.md +169 -0
  125. package/docs/specs/PRD-003-dsl-core-capabilities.md +275 -0
  126. package/docs/specs/README.md +62 -0
  127. package/docs/specs/SDS-001-protobuf-projection-engine.md +451 -0
  128. package/docs/specs/SDS-002-sea-core-architecture.md +268 -0
  129. package/docs/specs/SDS-003-parser-semantic-graph.md +377 -0
  130. package/docs/specs/SDS-004-policy-engine-design.md +362 -0
  131. package/docs/specs/SDS-005-knowledge-graph-module.md +364 -0
  132. package/docs/specs/SDS-006-calm-integration.md +367 -0
  133. package/docs/specs/SDS-007-sbvr-import.md +347 -0
  134. package/docs/templates/template_explanation.md +14 -0
  135. package/docs/templates/template_howto.md +21 -0
  136. package/docs/templates/template_playbook.md +21 -0
  137. package/docs/templates/template_reference.md +17 -0
  138. package/docs/templates/template_tutorial.md +24 -0
  139. package/docs/tutorials/README.md +12 -0
  140. package/docs/tutorials/first-sea-model.md +85 -0
  141. package/docs/tutorials/getting-started.md +98 -0
  142. package/docs/tutorials/python-binding-quickstart.md +107 -0
  143. package/docs/tutorials/typescript-binding-quickstart.md +91 -0
  144. package/docs/tutorials/wasm-in-browser.md +75 -0
  145. package/domainforge-core/CHANGELOG.md +138 -0
  146. package/domainforge-core/Cargo.toml +101 -0
  147. package/domainforge-core/MIGRATING.md +32 -0
  148. package/domainforge-core/README.md +197 -0
  149. package/domainforge-core/benchmark_results.txt +51 -0
  150. package/domainforge-core/build.rs +6 -0
  151. package/domainforge-core/deny.toml +31 -0
  152. package/domainforge-core/docs/specs/projections/sbvr_kg_mapping.md +43 -0
  153. package/domainforge-core/examples/basic.sea +7 -0
  154. package/domainforge-core/examples/cli/import_export_workflow.sh +38 -0
  155. package/domainforge-core/examples/cli/validate_example.sh +30 -0
  156. package/domainforge-core/examples/evolution_semantics.sea +31 -0
  157. package/domainforge-core/examples/parser_demo.rs +203 -0
  158. package/domainforge-core/grammar/sea.pest +408 -0
  159. package/domainforge-core/schemas/calm-v1.schema.json +170 -0
  160. package/domainforge-core/schemas/shacl/sea_shapes.ttl +19 -0
  161. package/domainforge-core/src/authority/compiler.rs +309 -0
  162. package/domainforge-core/src/authority/environment.rs +203 -0
  163. package/domainforge-core/src/authority/error.rs +164 -0
  164. package/domainforge-core/src/authority/fact_resolver.rs +224 -0
  165. package/domainforge-core/src/authority/mod.rs +25 -0
  166. package/domainforge-core/src/authority/pack.rs +133 -0
  167. package/domainforge-core/src/authority/policy.rs +224 -0
  168. package/domainforge-core/src/authority/resolver.rs +446 -0
  169. package/domainforge-core/src/authority/trace.rs +217 -0
  170. package/domainforge-core/src/authority/transform.rs +168 -0
  171. package/domainforge-core/src/authority/types.rs +617 -0
  172. package/domainforge-core/src/bin/domainforge.rs +25 -0
  173. package/domainforge-core/src/calm/export.rs +538 -0
  174. package/domainforge-core/src/calm/import.rs +1220 -0
  175. package/domainforge-core/src/calm/mod.rs +9 -0
  176. package/domainforge-core/src/calm/models.rs +108 -0
  177. package/domainforge-core/src/calm/sbvr_import.rs +9 -0
  178. package/domainforge-core/src/cli/authority.rs +149 -0
  179. package/domainforge-core/src/cli/format.rs +85 -0
  180. package/domainforge-core/src/cli/import.rs +133 -0
  181. package/domainforge-core/src/cli/mod.rs +64 -0
  182. package/domainforge-core/src/cli/normalize.rs +180 -0
  183. package/domainforge-core/src/cli/pack.rs +904 -0
  184. package/domainforge-core/src/cli/parse.rs +112 -0
  185. package/domainforge-core/src/cli/project.rs +294 -0
  186. package/domainforge-core/src/cli/registry.rs +41 -0
  187. package/domainforge-core/src/cli/test.rs +12 -0
  188. package/domainforge-core/src/cli/validate.rs +195 -0
  189. package/domainforge-core/src/cli/validate_kg.rs +80 -0
  190. package/domainforge-core/src/concept_id.rs +89 -0
  191. package/domainforge-core/src/error/diagnostics.rs +426 -0
  192. package/domainforge-core/src/error/fuzzy.rs +253 -0
  193. package/domainforge-core/src/error/mod.rs +13 -0
  194. package/domainforge-core/src/formatter/comments.rs +223 -0
  195. package/domainforge-core/src/formatter/config.rs +114 -0
  196. package/domainforge-core/src/formatter/mod.rs +22 -0
  197. package/domainforge-core/src/formatter/printer.rs +906 -0
  198. package/domainforge-core/src/graph/mod.rs +858 -0
  199. package/domainforge-core/src/graph/to_ast.rs +66 -0
  200. package/domainforge-core/src/kg.rs +1476 -0
  201. package/domainforge-core/src/kg_import.rs +251 -0
  202. package/domainforge-core/src/lib.rs +203 -0
  203. package/domainforge-core/src/module/mod.rs +1 -0
  204. package/domainforge-core/src/module/resolver.rs +260 -0
  205. package/domainforge-core/src/parser/ast.rs +2919 -0
  206. package/domainforge-core/src/parser/ast_convert.rs +494 -0
  207. package/domainforge-core/src/parser/ast_schema.rs +491 -0
  208. package/domainforge-core/src/parser/error.rs +291 -0
  209. package/domainforge-core/src/parser/lint.rs +39 -0
  210. package/domainforge-core/src/parser/mod.rs +193 -0
  211. package/domainforge-core/src/parser/printer.rs +702 -0
  212. package/domainforge-core/src/parser/profiles.rs +71 -0
  213. package/domainforge-core/src/parser/string_utils.rs +138 -0
  214. package/domainforge-core/src/patterns.rs +68 -0
  215. package/domainforge-core/src/policy/core.rs +1148 -0
  216. package/domainforge-core/src/policy/expression.rs +399 -0
  217. package/domainforge-core/src/policy/mod.rs +18 -0
  218. package/domainforge-core/src/policy/normalize.rs +1028 -0
  219. package/domainforge-core/src/policy/quantifier.rs +940 -0
  220. package/domainforge-core/src/policy/three_valued.rs +140 -0
  221. package/domainforge-core/src/policy/three_valued_microbench.rs +104 -0
  222. package/domainforge-core/src/policy/type_inference.rs +67 -0
  223. package/domainforge-core/src/policy/violation.rs +36 -0
  224. package/domainforge-core/src/primitives/concept_change.rs +61 -0
  225. package/domainforge-core/src/primitives/entity.rs +224 -0
  226. package/domainforge-core/src/primitives/flow.rs +111 -0
  227. package/domainforge-core/src/primitives/instance.rs +93 -0
  228. package/domainforge-core/src/primitives/mapping_contract.rs +50 -0
  229. package/domainforge-core/src/primitives/metric.rs +79 -0
  230. package/domainforge-core/src/primitives/mod.rs +25 -0
  231. package/domainforge-core/src/primitives/projection_contract.rs +50 -0
  232. package/domainforge-core/src/primitives/quantity.rs +56 -0
  233. package/domainforge-core/src/primitives/relation.rs +68 -0
  234. package/domainforge-core/src/primitives/resource.rs +237 -0
  235. package/domainforge-core/src/primitives/resource_instance.rs +88 -0
  236. package/domainforge-core/src/primitives/role.rs +49 -0
  237. package/domainforge-core/src/projection/buf.rs +404 -0
  238. package/domainforge-core/src/projection/contracts.rs +22 -0
  239. package/domainforge-core/src/projection/engine.rs +19 -0
  240. package/domainforge-core/src/projection/mod.rs +16 -0
  241. package/domainforge-core/src/projection/protobuf.rs +3331 -0
  242. package/domainforge-core/src/projection/registry.rs +43 -0
  243. package/domainforge-core/src/python/authority.rs +253 -0
  244. package/domainforge-core/src/python/error.rs +227 -0
  245. package/domainforge-core/src/python/formatter.rs +86 -0
  246. package/domainforge-core/src/python/graph.rs +366 -0
  247. package/domainforge-core/src/python/mod.rs +9 -0
  248. package/domainforge-core/src/python/policy.rs +651 -0
  249. package/domainforge-core/src/python/primitives.rs +796 -0
  250. package/domainforge-core/src/python/registry.rs +98 -0
  251. package/domainforge-core/src/python/semantic_pack.rs +619 -0
  252. package/domainforge-core/src/python/units.rs +96 -0
  253. package/domainforge-core/src/registry/mod.rs +432 -0
  254. package/domainforge-core/src/registry/tests.rs +210 -0
  255. package/domainforge-core/src/sbvr.rs +744 -0
  256. package/domainforge-core/src/semantic_pack/builder.rs +470 -0
  257. package/domainforge-core/src/semantic_pack/canonical_json.rs +184 -0
  258. package/domainforge-core/src/semantic_pack/diagnostics.rs +214 -0
  259. package/domainforge-core/src/semantic_pack/diff.rs +216 -0
  260. package/domainforge-core/src/semantic_pack/mod.rs +31 -0
  261. package/domainforge-core/src/semantic_pack/pack_set.rs +240 -0
  262. package/domainforge-core/src/semantic_pack/resolver.rs +437 -0
  263. package/domainforge-core/src/semantic_pack/review.rs +125 -0
  264. package/domainforge-core/src/semantic_pack/schema.rs +342 -0
  265. package/domainforge-core/src/semantic_pack/signing.rs +105 -0
  266. package/domainforge-core/src/semantic_pack/validator.rs +368 -0
  267. package/domainforge-core/src/semantic_version.rs +140 -0
  268. package/domainforge-core/src/test_utils.rs +12 -0
  269. package/domainforge-core/src/typescript/authority.rs +184 -0
  270. package/domainforge-core/src/typescript/error.rs +146 -0
  271. package/domainforge-core/src/typescript/formatter.rs +76 -0
  272. package/domainforge-core/src/typescript/graph.rs +391 -0
  273. package/domainforge-core/src/typescript/mod.rs +9 -0
  274. package/domainforge-core/src/typescript/policy.rs +564 -0
  275. package/domainforge-core/src/typescript/primitives.rs +784 -0
  276. package/domainforge-core/src/typescript/registry.rs +88 -0
  277. package/domainforge-core/src/typescript/semantic_pack.rs +470 -0
  278. package/domainforge-core/src/typescript/units.rs +76 -0
  279. package/domainforge-core/src/units/mod.rs +462 -0
  280. package/domainforge-core/src/uuid_module.rs +42 -0
  281. package/domainforge-core/src/validation_error.rs +818 -0
  282. package/domainforge-core/src/validation_result.rs +30 -0
  283. package/domainforge-core/src/wasm/authority.rs +192 -0
  284. package/domainforge-core/src/wasm/error.rs +145 -0
  285. package/domainforge-core/src/wasm/formatter.rs +69 -0
  286. package/domainforge-core/src/wasm/graph.rs +471 -0
  287. package/domainforge-core/src/wasm/mod.rs +16 -0
  288. package/domainforge-core/src/wasm/policy.rs +607 -0
  289. package/domainforge-core/src/wasm/primitives.rs +295 -0
  290. package/domainforge-core/src/wasm/semantic_pack.rs +471 -0
  291. package/domainforge-core/src/wasm/units.rs +62 -0
  292. package/domainforge-core/std/aws.sea +6 -0
  293. package/domainforge-core/std/core.sea +6 -0
  294. package/domainforge-core/std/http.sea +27 -0
  295. package/domainforge-core/tests/aggregation_enhanced_tests.rs +162 -0
  296. package/domainforge-core/tests/aggregation_eval_tests.rs +248 -0
  297. package/domainforge-core/tests/aggregation_integration_tests.rs +379 -0
  298. package/domainforge-core/tests/aggregation_parser_tests.rs +92 -0
  299. package/domainforge-core/tests/aggregation_tests.rs +102 -0
  300. package/domainforge-core/tests/authority_conformance_tests.rs +1173 -0
  301. package/domainforge-core/tests/calm_round_trip_tests.rs +283 -0
  302. package/domainforge-core/tests/calm_schema_validation_tests.rs +137 -0
  303. package/domainforge-core/tests/cast_operator_tests.rs +85 -0
  304. package/domainforge-core/tests/cli_binary_check.rs +37 -0
  305. package/domainforge-core/tests/cli_import_tests.rs +291 -0
  306. package/domainforge-core/tests/cli_path_traversal_tests.rs +124 -0
  307. package/domainforge-core/tests/cli_tests.rs +63 -0
  308. package/domainforge-core/tests/diagnostics_tests.rs +203 -0
  309. package/domainforge-core/tests/dimension_unit_tests.rs +80 -0
  310. package/domainforge-core/tests/entity_tests.rs +69 -0
  311. package/domainforge-core/tests/evolution_semantics_tests.rs +157 -0
  312. package/domainforge-core/tests/flow_tests.rs +78 -0
  313. package/domainforge-core/tests/flow_unit_validation_tests.rs +31 -0
  314. package/domainforge-core/tests/graph_integration_tests.rs +218 -0
  315. package/domainforge-core/tests/graph_tests.rs +626 -0
  316. package/domainforge-core/tests/import_parsing_tests.rs +23 -0
  317. package/domainforge-core/tests/instance_integration_tests.rs +98 -0
  318. package/domainforge-core/tests/instance_parsing_tests.rs +58 -0
  319. package/domainforge-core/tests/instance_tests.rs +61 -0
  320. package/domainforge-core/tests/kg_uri_encoding_tests.rs +53 -0
  321. package/domainforge-core/tests/lint_tests.rs +19 -0
  322. package/domainforge-core/tests/metric_tests.rs +143 -0
  323. package/domainforge-core/tests/module_resolution_tests.rs +100 -0
  324. package/domainforge-core/tests/namespace_registry_tests.rs +247 -0
  325. package/domainforge-core/tests/null_handling_tests.rs +26 -0
  326. package/domainforge-core/tests/parser_ast_v3.rs +53 -0
  327. package/domainforge-core/tests/parser_dimension_registry_tests.rs +20 -0
  328. package/domainforge-core/tests/parser_integration_tests.rs +294 -0
  329. package/domainforge-core/tests/parser_metadata_tests.rs +97 -0
  330. package/domainforge-core/tests/parser_resource_domain_only_graph_test.rs +21 -0
  331. package/domainforge-core/tests/parser_resource_limits_tests.rs +122 -0
  332. package/domainforge-core/tests/parser_tests.rs +512 -0
  333. package/domainforge-core/tests/pattern_semantics_tests.rs +87 -0
  334. package/domainforge-core/tests/phase_14_determinism_tests.rs +166 -0
  335. package/domainforge-core/tests/phase_15_validation_error_tests.rs +136 -0
  336. package/domainforge-core/tests/phase_16_unicode_tests.rs +248 -0
  337. package/domainforge-core/tests/phase_17_export_tests.rs +285 -0
  338. package/domainforge-core/tests/phase_17_round_trip_tests.rs +264 -0
  339. package/domainforge-core/tests/policy_tests.rs +635 -0
  340. package/domainforge-core/tests/primitives_integration_tests.rs +151 -0
  341. package/domainforge-core/tests/print_rdf_xml.rs +14 -0
  342. package/domainforge-core/tests/printer_tests.rs +204 -0
  343. package/domainforge-core/tests/profile_tests.rs +35 -0
  344. package/domainforge-core/tests/projection_contracts_tests.rs +154 -0
  345. package/domainforge-core/tests/protobuf_projection_tests.rs +199 -0
  346. package/domainforge-core/tests/quantity_tests.rs +41 -0
  347. package/domainforge-core/tests/rdf_xml_typed_literal_tests.rs +105 -0
  348. package/domainforge-core/tests/registry_schema_tests.rs +33 -0
  349. package/domainforge-core/tests/resource_tests.rs +50 -0
  350. package/domainforge-core/tests/resource_unit_tests.rs +24 -0
  351. package/domainforge-core/tests/roles_relations_tests.rs +61 -0
  352. package/domainforge-core/tests/round_trip_tests.rs +34 -0
  353. package/domainforge-core/tests/runtime_toggle_tests.rs +70 -0
  354. package/domainforge-core/tests/sbvr_fact_schema_tests.rs +60 -0
  355. package/domainforge-core/tests/sbvr_flow_facts_tests.rs +55 -0
  356. package/domainforge-core/tests/sbvr_parsing_tests.rs +53 -0
  357. package/domainforge-core/tests/semantic_pack_alias_resolution.rs +197 -0
  358. package/domainforge-core/tests/semantic_pack_build.rs +302 -0
  359. package/domainforge-core/tests/semantic_pack_consumer_smoke.rs +150 -0
  360. package/domainforge-core/tests/semantic_pack_pack_set.rs +160 -0
  361. package/domainforge-core/tests/semantic_pack_signing.rs +157 -0
  362. package/domainforge-core/tests/semantic_pack_three_valued.rs +250 -0
  363. package/domainforge-core/tests/semantic_pack_validate.rs +196 -0
  364. package/domainforge-core/tests/std_lib_tests.rs +37 -0
  365. package/domainforge-core/tests/temporal_evaluation_tests.rs +159 -0
  366. package/domainforge-core/tests/temporal_semantics_tests.rs +214 -0
  367. package/domainforge-core/tests/three_valued_quantifiers_tests.rs +164 -0
  368. package/domainforge-core/tests/turtle_entity_export_tests.rs +38 -0
  369. package/domainforge-core/tests/turtle_escaping_tests.rs +53 -0
  370. package/domainforge-core/tests/turtle_resource_export_tests.rs +34 -0
  371. package/domainforge-core/tests/type_inference_tests.rs +40 -0
  372. package/domainforge-core/tests/unicode_validation_tests.rs +169 -0
  373. package/domainforge-core/tests/unit_tests.rs +81 -0
  374. package/domainforge-core/tests/validate_tests.rs +38 -0
  375. package/domainforge-core/tests/validation_unit_mismatch_tests.rs +83 -0
  376. package/domainforge-core/tests/wasm_tests.rs +229 -0
  377. package/domainforge-python/CHANGELOG-python.md +12 -0
  378. package/domainforge-python/MIGRATING.md +24 -0
  379. package/domainforge-python/README.md +256 -0
  380. package/domainforge-python/domainforge/__init__.py +95 -0
  381. package/domainforge-python/domainforge/domainforge.pyi +519 -0
  382. package/domainforge-python/pyproject.toml +36 -0
  383. package/domainforge-typescript/CHANGELOG-typescript.md +12 -0
  384. package/domainforge-typescript/LICENSE +201 -0
  385. package/domainforge-typescript/MIGRATING.md +24 -0
  386. package/domainforge-typescript/README.md +305 -0
  387. package/domainforge-typescript/index.d.ts +452 -0
  388. package/domainforge-typescript/index.js +361 -0
  389. package/domainforge-typescript/package.json +60 -0
  390. package/example.js +61 -0
  391. package/examples/browser.html +366 -0
  392. package/examples/namespaces/finance/cashflow.sea +5 -0
  393. package/examples/namespaces/logistics/core.sea +7 -0
  394. package/examples/observability_metrics.sea +38 -0
  395. package/fixtures/semantic_packs/acme_procurement/domain/entities.sea +39 -0
  396. package/fixtures/semantic_packs/acme_procurement/domain/metrics.sea +11 -0
  397. package/fixtures/semantic_packs/acme_procurement/domain/relations.sea +7 -0
  398. package/fixtures/semantic_packs/acme_procurement/domain/resources.sea +9 -0
  399. package/fixtures/semantic_packs/acme_procurement/review/acme.procurement.semantic-review.jsonl +7 -0
  400. package/fixtures/semantic_packs/acme_procurement/tests/ambiguous_vendor_alias.sea +8 -0
  401. package/fixtures/semantic_packs/acme_procurement/tests/deprecated_vendor_alias.sea +8 -0
  402. package/fixtures/semantic_packs/acme_procurement/tests/invalid_relation.sea +3 -0
  403. package/fixtures/semantic_packs/acme_procurement/tests/proposed_concept.sea +8 -0
  404. package/fixtures/semantic_packs/acme_procurement/tests/rejected_concept.sea +8 -0
  405. package/fixtures/semantic_packs/acme_procurement/tests/unit_mismatch.sea +7 -0
  406. package/fixtures/semantic_packs/acme_procurement/tests/unknown_vendor_policy.sea +8 -0
  407. package/fixtures/semantic_packs/acme_procurement/tests/valid_purchase_policy.sea +8 -0
  408. package/index.d.ts +2 -0
  409. package/index.js +8 -0
  410. package/justfile +200 -0
  411. package/lefthook.yml +13 -0
  412. package/lib/validate_native_exports.d.ts +4 -0
  413. package/lib/validate_native_exports.js +12 -0
  414. package/package.json +22 -0
  415. package/pytest.ini +5 -0
  416. package/python/tests/test_registry.py +75 -0
  417. package/python/tests/test_units.py +18 -0
  418. package/release-please-config.json +49 -0
  419. package/requirements-dev.txt +3 -0
  420. package/requirements.txt +3 -0
  421. package/rust-toolchain.toml +3 -0
  422. package/schemas/ast-v1.schema.json +72 -0
  423. package/schemas/ast-v2.schema.json +1200 -0
  424. package/schemas/ast-v3.schema.json +1200 -0
  425. package/schemas/sea-registry.schema.json +45 -0
  426. package/scripts/build-python.sh +37 -0
  427. package/scripts/build-release.sh +279 -0
  428. package/scripts/build-typescript.sh +13 -0
  429. package/scripts/build-wasm.sh +113 -0
  430. package/scripts/bump-version.sh +245 -0
  431. package/scripts/check_unused_test_imports.py +85 -0
  432. package/scripts/ci_tasks.py +379 -0
  433. package/scripts/clear_debug_test.sh +10 -0
  434. package/scripts/create-github-release.sh +262 -0
  435. package/scripts/create-tag.sh +203 -0
  436. package/scripts/find_and_link_test_binary.sh +70 -0
  437. package/scripts/generate-changelog.sh +271 -0
  438. package/scripts/generate-release-notes.sh +205 -0
  439. package/scripts/lint_release_security.py +96 -0
  440. package/scripts/lint_release_workflows.py +82 -0
  441. package/scripts/lint_workflow_gates.py +113 -0
  442. package/scripts/optimized-wasm-build.sh +61 -0
  443. package/scripts/patch_napi_types.py +62 -0
  444. package/scripts/pre-release-check.sh +289 -0
  445. package/scripts/prepare_rust_debug.sh +52 -0
  446. package/scripts/release.sh +373 -0
  447. package/scripts/resolve_rust_binary.py +230 -0
  448. package/scripts/run_commitlint.sh +29 -0
  449. package/scripts/test-all.sh +77 -0
  450. package/scripts/update_launch_program.py +93 -0
  451. package/secrets/README.md +27 -0
  452. package/secrets/secrets.yaml +21 -0
  453. package/test_integration.py +67 -0
  454. package/tests/test_authority.py +328 -0
  455. package/tests/test_ci_tasks.py +143 -0
  456. package/tests/test_expression.py +256 -0
  457. package/tests/test_golden_payment_flow.py +42 -0
  458. package/tests/test_graph.py +127 -0
  459. package/tests/test_instance.py +136 -0
  460. package/tests/test_parser.py +82 -0
  461. package/tests/test_primitives.py +68 -0
  462. package/tests/test_role_relation_parity.py +56 -0
  463. package/tests/test_runtime_toggle.py +156 -0
  464. package/tests/test_semantic_pack.py +639 -0
  465. package/tests/test_three_valued_eval.py +159 -0
  466. package/tsconfig.json +30 -0
  467. package/typescript-tests/advanced.test.ts +165 -0
  468. package/typescript-tests/authority.test.ts +216 -0
  469. package/typescript-tests/expression.test.ts +228 -0
  470. package/typescript-tests/golden-payment-flow.test.ts +51 -0
  471. package/typescript-tests/graph.test.ts +142 -0
  472. package/typescript-tests/native-binding.test.ts +20 -0
  473. package/typescript-tests/primitives.test.ts +88 -0
  474. package/typescript-tests/registry.test.ts +122 -0
  475. package/typescript-tests/role_relation.test.ts +63 -0
  476. package/typescript-tests/runtime_toggle.test.ts +141 -0
  477. package/typescript-tests/semantic-pack.test.ts +556 -0
  478. package/typescript-tests/three_valued_eval.test.ts +135 -0
  479. package/typescript-tests/units.test.ts +36 -0
  480. package/vitest.config.ts +13 -0
  481. package/wasm_demo.html +225 -0
@@ -0,0 +1,256 @@
1
+ # SEA DSL
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/domainforge.svg)](https://pypi.org/project/domainforge/)
4
+ [![Python Versions](https://img.shields.io/pypi/pyversions/domainforge.svg)](https://pypi.org/project/domainforge/)
5
+ [![License](https://img.shields.io/pypi/l/domainforge.svg)](https://github.com/GodSpeedAI/DomainForge/blob/main/LICENSE)
6
+ [![CI](https://github.com/GodSpeedAI/DomainForge/actions/workflows/ci.yml/badge.svg)](https://github.com/GodSpeedAI/DomainForge/actions/workflows/ci.yml)
7
+
8
+ Python bindings for the **SEA DSL** (Semantic Enterprise Architecture) domain-specific language. Part of the [DomainForge](https://github.com/GodSpeedAI/DomainForge) ecosystem.
9
+
10
+ ## Features
11
+
12
+ - 🏗️ **Domain Primitives** — Entities, Resources, Flows, Roles, Relations, Instances
13
+ - 📐 **Unit System** — First-class dimensional analysis with type-safe quantities
14
+ - ✅ **Policy Engine** — Constraint validation with three-valued logic
15
+ - 🔄 **DSL Parsing** — Parse SEA source code into queryable graph structures
16
+ - 🌐 **CALM Integration** — Export/import FINOS CALM architecture-as-code format
17
+ - ⚡ **Native Performance** — Rust-powered core via PyO3
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ pip install domainforge
23
+ ```
24
+
25
+ **Requires:** Python 3.11+
26
+
27
+ ## Quick Start
28
+
29
+ ### Parse from DSL
30
+
31
+ ```python
32
+ import domainforge
33
+
34
+ source = '''
35
+ @namespace "supply_chain"
36
+
37
+ Entity "Warehouse" in logistics
38
+ Entity "Factory" in manufacturing
39
+
40
+ Resource "Cameras" units
41
+
42
+ Flow "Cameras" from "Warehouse" to "Factory" quantity 100
43
+ '''
44
+
45
+ graph = domainforge.Graph.parse(source)
46
+
47
+ print(f"Entities: {graph.entity_count()}")
48
+ print(f"Resources: {graph.resource_count()}")
49
+ print(f"Flows: {graph.flow_count()}")
50
+ ```
51
+
52
+ ### Build Programmatically
53
+
54
+ ```python
55
+ import domainforge
56
+
57
+ graph = domainforge.Graph()
58
+
59
+ # Create primitives
60
+ warehouse = domainforge.Entity("Warehouse", "logistics")
61
+ factory = domainforge.Entity("Factory", "manufacturing")
62
+ cameras = domainforge.Resource("Cameras", "units")
63
+
64
+ graph.add_entity(warehouse)
65
+ graph.add_entity(factory)
66
+ graph.add_resource(cameras)
67
+
68
+ # Create flow
69
+ flow = domainforge.Flow(
70
+ cameras.id(),
71
+ warehouse.id(),
72
+ factory.id(),
73
+ 100.0
74
+ )
75
+ graph.add_flow(flow)
76
+
77
+ # Query the graph
78
+ for entity in graph.all_entities():
79
+ print(f"{entity.name()} in {entity.namespace()}")
80
+ ```
81
+
82
+ ### Work with Attributes
83
+
84
+ ```python
85
+ entity = domainforge.Entity("Warehouse")
86
+ entity.set_attribute("capacity", 10000)
87
+ entity.set_attribute("location", "New York")
88
+
89
+ print(entity.get_attribute("capacity")) # 10000
90
+ print(entity.get_attribute("location")) # "New York"
91
+ ```
92
+
93
+ ### CALM Integration
94
+
95
+ ```python
96
+ # Export to CALM JSON
97
+ calm_json = graph.export_calm()
98
+
99
+ # Import from CALM
100
+ imported_graph = domainforge.Graph.import_calm(calm_json)
101
+ ```
102
+
103
+ ## API Reference
104
+
105
+ ### Core Classes
106
+
107
+ | Class | Description |
108
+ | ------------------ | ------------------------------------------------------ |
109
+ | `Entity` | Business actors, locations, organizational units (WHO) |
110
+ | `Resource` | Quantifiable subjects of value (WHAT) |
111
+ | `Flow` | Transfers of resources between entities |
112
+ | `Instance` | Entity type instances with named fields |
113
+ | `ResourceInstance` | Physical instances at entity locations |
114
+ | `Role` | Roles that entities can play |
115
+ | `Relation` | Relationships between roles |
116
+ | `Graph` | Container with validation and query capabilities |
117
+
118
+ ### Graph Methods
119
+
120
+ ```python
121
+ # Add primitives
122
+ graph.add_entity(entity)
123
+ graph.add_resource(resource)
124
+ graph.add_flow(flow)
125
+ graph.add_instance(instance)
126
+ graph.add_role(role)
127
+ graph.add_relation(relation)
128
+
129
+ # Counts
130
+ graph.entity_count()
131
+ graph.resource_count()
132
+ graph.flow_count()
133
+
134
+ # Lookup
135
+ graph.find_entity_by_name("Warehouse")
136
+ graph.find_resource_by_name("Cameras")
137
+
138
+ # Flow queries
139
+ graph.flows_from(entity_id)
140
+ graph.flows_to(entity_id)
141
+
142
+ # Get all
143
+ graph.all_entities()
144
+ graph.all_resources()
145
+ graph.all_flows()
146
+
147
+ # Policy evaluation
148
+ graph.add_policy(policy)
149
+ graph.evaluate_policy(policy_json)
150
+ graph.set_evaluation_mode(use_three_valued=True)
151
+
152
+ # CALM integration
153
+ graph.export_calm()
154
+ Graph.import_calm(json_str)
155
+ ```
156
+
157
+ ### NamespaceRegistry
158
+
159
+ ```python
160
+ # Load workspace registry
161
+ reg = domainforge.NamespaceRegistry.from_file('.sea-registry.toml')
162
+
163
+ # Resolve files
164
+ for binding in reg.resolve_files():
165
+ print(f"{binding.path} => {binding.namespace}")
166
+
167
+ # Query namespace for file
168
+ ns = reg.namespace_for('/path/to/file.sea')
169
+ ```
170
+
171
+ ## Development
172
+
173
+ ### Building from Source
174
+
175
+ ```bash
176
+ # Clone the repository
177
+ git clone https://github.com/GodSpeedAI/DomainForge.git
178
+ cd DomainForge
179
+
180
+ # Install maturin
181
+ pip install maturin
182
+
183
+ # Build and install in development mode
184
+ maturin develop
185
+
186
+ # Run tests
187
+ pytest tests/
188
+ ```
189
+
190
+ ### Using Just (Recommended)
191
+
192
+ ```bash
193
+ just python-setup # Create venv and install deps
194
+ just python-test # Run test suite
195
+ just python-clean # Remove venv
196
+ ```
197
+
198
+ ## Platform Support
199
+
200
+ Pre-built wheels are available for:
201
+
202
+ | Platform | Architectures |
203
+ | -------- | ----------------------------- |
204
+ | Linux | x86_64, aarch64 |
205
+ | macOS | x86_64, arm64 (Apple Silicon) |
206
+ | Windows | x86_64 |
207
+
208
+ Build from source for other platforms.
209
+
210
+ ## Related Packages
211
+
212
+ | Package | Registry | Description |
213
+ | -------------------------------------------------------------------- | --------- | ------------------------------ |
214
+ | [`domainforge-core`](https://crates.io/crates/domainforge-core) | crates.io | Rust core library |
215
+ | [`domainforge`](https://pypi.org/project/domainforge/) | PyPI | Python bindings (this package) |
216
+ | [`@godspeedai/domainforge`](https://www.npmjs.com/package/@godspeedai/domainforge) | npm | TypeScript/Node.js bindings |
217
+
218
+ ## Policy Authority
219
+
220
+ DomainForge includes a Policy Authority system for executable business authority:
221
+
222
+ ```python
223
+ from domainforge import AuthorityEnvironment, evaluate_authority
224
+
225
+ # Create and validate environment
226
+ env = AuthorityEnvironment(config_json)
227
+ env.validate()
228
+
229
+ # Evaluate a request
230
+ trace_json, decision_json = env.evaluate(request_json, facts_json)
231
+
232
+ # Or use the convenience function
233
+ trace, decision = evaluate_authority(config_json, request_json, facts_json)
234
+ ```
235
+
236
+ **Available types:**
237
+ - `FinalDecision` — Allow, Deny, Escalate, NotApplicable, Reject
238
+ - `PolicyModality` — Permission, Prohibition, Obligation, Override
239
+ - `SourceClass` — CallerSupplied, RuntimeObserved, SystemOfRecord, Attested, ManualApproval, Derived, UnknownSource
240
+ - `ClaimLevel` — AuditBacked, Validated, FormallyProven
241
+ - `AuthorityEnvironment` — Full authority evaluation environment
242
+ - `evaluate_authority()` — One-shot evaluation function
243
+
244
+ ## Documentation
245
+
246
+ - 📖 [SEA DSL Guide](https://github.com/GodSpeedAI/DomainForge/blob/main/docs/reference/grammar-spec.md) — Language specification
247
+ - 🏗️ [Architecture](https://github.com/GodSpeedAI/DomainForge/blob/main/docs/explanations/architecture-overview.md) — Design overview
248
+ - 📚 [API Reference](https://github.com/GodSpeedAI/DomainForge/blob/main/docs/reference/python-api.md) — Full Python API
249
+
250
+ ## License
251
+
252
+ [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)
253
+
254
+ ---
255
+
256
+ Part of the [DomainForge](https://github.com/GodSpeedAI/DomainForge) project.
@@ -0,0 +1,305 @@
1
+ # @godspeedai/domainforge
2
+
3
+ [![npm](https://img.shields.io/npm/v/@godspeedai/domainforge.svg)](https://www.npmjs.com/package/@godspeedai/domainforge)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@godspeedai/domainforge.svg)](https://www.npmjs.com/package/@godspeedai/domainforge)
5
+ [![License](https://img.shields.io/npm/l/@godspeedai/domainforge.svg)](https://github.com/GodSpeedAI/DomainForge/blob/main/LICENSE)
6
+ [![CI](https://github.com/GodSpeedAI/DomainForge/actions/workflows/ci.yml/badge.svg)](https://github.com/GodSpeedAI/DomainForge/actions/workflows/ci.yml)
7
+ [![Node Version](https://img.shields.io/node/v/@godspeedai/domainforge.svg)](https://nodejs.org)
8
+
9
+ TypeScript/Node.js bindings for the **SEA DSL** (Semantic Enterprise Architecture) domain-specific language. Part of the [DomainForge](https://github.com/GodSpeedAI/DomainForge) ecosystem.
10
+
11
+ ## Features
12
+
13
+ - 🏗️ **Domain Primitives** — Entities, Resources, Flows, Roles, Relations, Instances
14
+ - 📐 **Unit System** — First-class dimensional analysis with type-safe quantities
15
+ - ✅ **Policy Engine** — Constraint validation with three-valued logic
16
+ - 🔄 **DSL Parsing** — Parse SEA source code into queryable graph structures
17
+ - 🌐 **CALM Integration** — Export/import FINOS CALM architecture-as-code format
18
+ - ⚡ **Native Performance** — Rust-powered core via N-API
19
+ - 📦 **Full TypeScript Support** — Complete type definitions included
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ npm install @godspeedai/domainforge
25
+ ```
26
+
27
+ ```bash
28
+ yarn add @godspeedai/domainforge
29
+ ```
30
+
31
+ ```bash
32
+ pnpm add @godspeedai/domainforge
33
+ ```
34
+
35
+ **Requires:** Node.js 18+
36
+
37
+ ## Quick Start
38
+
39
+ ### Parse from DSL
40
+
41
+ ```typescript
42
+ import { Graph } from "@godspeedai/domainforge";
43
+
44
+ const source = `
45
+ @namespace "supply_chain"
46
+
47
+ Entity "Warehouse" in logistics
48
+ Entity "Factory" in manufacturing
49
+
50
+ Resource "Cameras" units
51
+
52
+ Flow "Cameras" from "Warehouse" to "Factory" quantity 100
53
+ `;
54
+
55
+ const graph = Graph.parse(source);
56
+
57
+ console.log(`Entities: ${graph.entityCount()}`);
58
+ console.log(`Resources: ${graph.resourceCount()}`);
59
+ console.log(`Flows: ${graph.flowCount()}`);
60
+ ```
61
+
62
+ ### Build Programmatically
63
+
64
+ ```typescript
65
+ import { Graph, Entity, Resource, Flow } from "@godspeedai/domainforge";
66
+
67
+ const graph = new Graph();
68
+
69
+ // Create primitives
70
+ const warehouse = new Entity("Warehouse", "logistics");
71
+ const factory = new Entity("Factory", "manufacturing");
72
+ const cameras = new Resource("Cameras", "units");
73
+
74
+ graph.addEntity(warehouse);
75
+ graph.addEntity(factory);
76
+ graph.addResource(cameras);
77
+
78
+ // Create flow
79
+ const flow = new Flow(cameras.id, warehouse.id, factory.id, 100);
80
+ graph.addFlow(flow);
81
+
82
+ // Query the graph
83
+ for (const entity of graph.allEntities()) {
84
+ console.log(`${entity.name} in ${entity.namespace}`);
85
+ }
86
+ ```
87
+
88
+ ### Work with Attributes
89
+
90
+ ```typescript
91
+ const entity = new Entity("Warehouse");
92
+ entity.setAttribute("capacity", JSON.stringify(10000));
93
+ entity.setAttribute("location", JSON.stringify({ lat: 40.7128, lng: -74.006 }));
94
+
95
+ const capacity = JSON.parse(entity.getAttribute("capacity")!); // 10000
96
+ const location = JSON.parse(entity.getAttribute("location")!);
97
+ ```
98
+
99
+ ### CALM Integration
100
+
101
+ ```typescript
102
+ // Export to CALM JSON
103
+ const calmJson = graph.exportCalm();
104
+
105
+ // Import from CALM
106
+ const imported = Graph.importCalm(calmJson);
107
+ ```
108
+
109
+ ## API Reference
110
+
111
+ ### Core Classes
112
+
113
+ | Class | Description |
114
+ | ------------------ | ------------------------------------------------------ |
115
+ | `Entity` | Business actors, locations, organizational units (WHO) |
116
+ | `Resource` | Quantifiable subjects of value (WHAT) |
117
+ | `Flow` | Transfers of resources between entities |
118
+ | `Instance` | Entity type instances with named fields |
119
+ | `ResourceInstance` | Physical instances at entity locations |
120
+ | `Role` | Roles that entities can play |
121
+ | `Relation` | Relationships between roles |
122
+ | `Graph` | Container with validation and query capabilities |
123
+
124
+ ### Entity
125
+
126
+ ```typescript
127
+ class Entity {
128
+ constructor(name: string, namespace?: string | null);
129
+
130
+ get id(): string;
131
+ get name(): string;
132
+ get namespace(): string | null;
133
+ setAttribute(key: string, valueJson: string): void;
134
+ getAttribute(key: string): string | null;
135
+ }
136
+ ```
137
+
138
+ ### Resource
139
+
140
+ ```typescript
141
+ class Resource {
142
+ constructor(name: string, unit: string, namespace?: string | null);
143
+
144
+ get id(): string;
145
+ get name(): string;
146
+ get unit(): string;
147
+ get namespace(): string | null;
148
+ }
149
+ ```
150
+
151
+ ### Flow
152
+
153
+ ```typescript
154
+ class Flow {
155
+ constructor(
156
+ resourceId: string,
157
+ fromId: string,
158
+ toId: string,
159
+ quantity: number
160
+ );
161
+
162
+ get id(): string;
163
+ get resourceId(): string;
164
+ get fromId(): string;
165
+ get toId(): string;
166
+ get quantity(): number;
167
+ }
168
+ ```
169
+
170
+ ### Graph
171
+
172
+ ```typescript
173
+ class Graph {
174
+ constructor();
175
+
176
+ // Add primitives
177
+ addEntity(entity: Entity): void;
178
+ addResource(resource: Resource): void;
179
+ addFlow(flow: Flow): void;
180
+
181
+ // Counts
182
+ entityCount(): number;
183
+ resourceCount(): number;
184
+ flowCount(): number;
185
+
186
+ // Lookup
187
+ findEntityByName(name: string): string | null;
188
+ findResourceByName(name: string): string | null;
189
+ getEntity(id: string): Entity | null;
190
+ getResource(id: string): Resource | null;
191
+
192
+ // Flow queries
193
+ flowsFrom(entityId: string): Flow[];
194
+ flowsTo(entityId: string): Flow[];
195
+
196
+ // Get all
197
+ allEntities(): Entity[];
198
+ allResources(): Resource[];
199
+ allFlows(): Flow[];
200
+
201
+ // Parsing
202
+ static parse(source: string): Graph;
203
+
204
+ // CALM integration
205
+ exportCalm(): string;
206
+ static importCalm(calmJson: string): Graph;
207
+
208
+ // Policy evaluation
209
+ addPolicy(policyJson: string): void;
210
+ evaluatePolicy(policyJson: string): EvaluationResult;
211
+ setEvaluationMode(useThreeValuedLogic: boolean): void;
212
+ }
213
+ ```
214
+
215
+ ### NamespaceRegistry
216
+
217
+ ```typescript
218
+ import { NamespaceRegistry } from "@godspeedai/domainforge";
219
+
220
+ // Load workspace registry
221
+ const reg = NamespaceRegistry.fromFile(".sea-registry.toml");
222
+
223
+ // Resolve files
224
+ for (const binding of reg.resolveFiles()) {
225
+ console.log(`${binding.path} => ${binding.namespace}`);
226
+ }
227
+
228
+ // Query namespace for file
229
+ const ns = reg.namespaceFor("/path/to/file.sea");
230
+ ```
231
+
232
+ ## Platform Support
233
+
234
+ Pre-built binaries are available for:
235
+
236
+ | Platform | Architecture |
237
+ | -------- | -------------------------- |
238
+ | Linux | x64, arm64 |
239
+ | macOS | x64, arm64 (Apple Silicon) |
240
+ | Windows | x64 |
241
+
242
+ Build from source for other platforms using `npm run build`.
243
+
244
+ ## Development
245
+
246
+ ### Building from Source
247
+
248
+ ```bash
249
+ # Clone the repository
250
+ git clone https://github.com/GodSpeedAI/DomainForge.git
251
+ cd DomainForge
252
+
253
+ # Install dependencies
254
+ npm install
255
+
256
+ # Build the native module
257
+ npm run build
258
+
259
+ # Run tests
260
+ npm test
261
+ ```
262
+
263
+ ## Related Packages
264
+
265
+ | Package | Registry | Description |
266
+ | -------------------------------------------------------------------- | --------- | ---------------------------------- |
267
+ | [`domainforge-core`](https://crates.io/crates/domainforge-core) | crates.io | Rust core library |
268
+ | [`domainforge`](https://pypi.org/project/domainforge/) | PyPI | Python bindings |
269
+ | [`@godspeedai/domainforge`](https://www.npmjs.com/package/@godspeedai/domainforge) | npm | TypeScript bindings (this package) |
270
+
271
+ ## Policy Authority
272
+
273
+ DomainForge includes a Policy Authority system for executable business authority:
274
+
275
+ ```typescript
276
+ import { evaluateAuthority, FinalDecision, PolicyModality, SourceClass, ClaimLevel } from '@godspeedai/domainforge';
277
+
278
+ const result = evaluateAuthority(configJson, requestJson, factsJson);
279
+ const decision = JSON.parse(result.decisionJson);
280
+
281
+ if (decision.finalDecision === FinalDecision.Deny) {
282
+ console.log('Action denied:', decision.reasonCode);
283
+ }
284
+ ```
285
+
286
+ **Available exports:**
287
+ - `FinalDecision` enum — Allow, Deny, Escalate, NotApplicable, Reject
288
+ - `PolicyModality` enum — Permission, Prohibition, Obligation, Override
289
+ - `SourceClass` enum — CallerSupplied, RuntimeObserved, SystemOfRecord, etc.
290
+ - `ClaimLevel` enum — AuditBacked, Validated, FormallyProven
291
+ - `evaluateAuthority(configJson, requestJson, factsJson?)` — One-shot evaluation
292
+
293
+ ## Documentation
294
+
295
+ - 📖 [SEA DSL Guide](https://github.com/GodSpeedAI/DomainForge/blob/main/docs/reference/grammar-spec.md) — Language specification
296
+ - 🏗️ [Architecture](https://github.com/GodSpeedAI/DomainForge/blob/main/docs/explanations/architecture-overview.md) — Design overview
297
+ - 📚 [API Reference](https://github.com/GodSpeedAI/DomainForge/blob/main/docs/reference/typescript-api.md) — Full TypeScript API
298
+
299
+ ## License
300
+
301
+ [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)
302
+
303
+ ---
304
+
305
+ Part of the [DomainForge](https://github.com/GodSpeedAI/DomainForge) project.