@hyperscale0/hsx 1.0.0-beta.1 → 1.0.0-rc.1

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 (234) hide show
  1. package/CHANGELOG.md +41 -9
  2. package/LICENSING.md +3 -3
  3. package/README.md +37 -149
  4. package/TRADEMARKS.md +4 -4
  5. package/dist/src/ast.d.ts +129 -10
  6. package/dist/src/ast.d.ts.map +1 -1
  7. package/dist/src/cli.d.ts +2 -1
  8. package/dist/src/cli.d.ts.map +1 -1
  9. package/dist/src/cli.js +148 -12
  10. package/dist/src/cli.js.map +1 -1
  11. package/dist/src/compile.d.ts +41 -4
  12. package/dist/src/compile.d.ts.map +1 -1
  13. package/dist/src/compile.js +82 -15
  14. package/dist/src/compile.js.map +1 -1
  15. package/dist/src/cost.d.ts +78 -0
  16. package/dist/src/cost.d.ts.map +1 -0
  17. package/dist/src/cost.js +369 -0
  18. package/dist/src/cost.js.map +1 -0
  19. package/dist/src/diagnostics.d.ts +11 -0
  20. package/dist/src/diagnostics.d.ts.map +1 -0
  21. package/dist/src/diagnostics.js +420 -0
  22. package/dist/src/diagnostics.js.map +1 -0
  23. package/dist/src/emit.d.ts +35 -0
  24. package/dist/src/emit.d.ts.map +1 -0
  25. package/dist/src/emit.js +359 -0
  26. package/dist/src/emit.js.map +1 -0
  27. package/dist/src/entry-overrides.d.ts +17 -3
  28. package/dist/src/entry-overrides.d.ts.map +1 -1
  29. package/dist/src/entry-overrides.js +180 -35
  30. package/dist/src/entry-overrides.js.map +1 -1
  31. package/dist/src/format.d.ts +10 -0
  32. package/dist/src/format.d.ts.map +1 -0
  33. package/dist/src/format.js +183 -0
  34. package/dist/src/format.js.map +1 -0
  35. package/dist/src/index.d.ts +10 -4
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +8 -3
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/ir.d.ts +66 -0
  40. package/dist/src/ir.d.ts.map +1 -0
  41. package/dist/src/ir.js +15 -0
  42. package/dist/src/ir.js.map +1 -0
  43. package/dist/src/lex.d.ts +9 -1
  44. package/dist/src/lex.d.ts.map +1 -1
  45. package/dist/src/lex.js +50 -4
  46. package/dist/src/lex.js.map +1 -1
  47. package/dist/src/limits.d.ts +2 -3
  48. package/dist/src/limits.d.ts.map +1 -1
  49. package/dist/src/limits.js +2 -3
  50. package/dist/src/limits.js.map +1 -1
  51. package/dist/src/modules.d.ts +36 -0
  52. package/dist/src/modules.d.ts.map +1 -0
  53. package/dist/src/modules.js +372 -0
  54. package/dist/src/modules.js.map +1 -0
  55. package/dist/src/parse.d.ts.map +1 -1
  56. package/dist/src/parse.js +590 -17
  57. package/dist/src/parse.js.map +1 -1
  58. package/dist/src/typecheck.d.ts +8 -0
  59. package/dist/src/typecheck.d.ts.map +1 -0
  60. package/dist/src/typecheck.js +2958 -0
  61. package/dist/src/typecheck.js.map +1 -0
  62. package/dist/src/version.d.ts +4 -15
  63. package/dist/src/version.d.ts.map +1 -1
  64. package/dist/src/version.js +4 -15
  65. package/dist/src/version.js.map +1 -1
  66. package/docs/README.md +23 -0
  67. package/docs/guide/01-first-program.md +24 -0
  68. package/docs/guide/02-money.md +25 -0
  69. package/docs/guide/03-instruments.md +22 -0
  70. package/docs/guide/04-lifecycles.md +25 -0
  71. package/docs/guide/05-fees-and-splits.md +45 -0
  72. package/docs/guide/06-schedules.md +22 -0
  73. package/docs/guide/07-composition.md +46 -0
  74. package/docs/guide/08-writing-a-module.md +26 -0
  75. package/docs/guide/09-cost.md +24 -0
  76. package/docs/guide/10-diagnostics.md +27 -0
  77. package/docs/llms-full.txt +1738 -0
  78. package/docs/llms.txt +45 -0
  79. package/docs/reference/cli.md +33 -0
  80. package/docs/reference/diagnostics.md +619 -0
  81. package/docs/reference/grammar.md +39 -0
  82. package/docs/reference/std/advance.md +35 -0
  83. package/docs/reference/std/cancellable_booking.md +35 -0
  84. package/docs/reference/std/captured_payment.md +43 -0
  85. package/docs/reference/std/conditional_disbursement.md +33 -0
  86. package/docs/reference/std/credit_facility.md +35 -0
  87. package/docs/reference/std/held_payment.md +64 -0
  88. package/docs/reference/std/instant_transfer.md +30 -0
  89. package/docs/reference/std/metered.md +27 -0
  90. package/docs/reference/std/pooled_split.md +26 -0
  91. package/docs/reference/std/premium_forward.md +39 -0
  92. package/docs/reference/std/reconciled_payout.md +33 -0
  93. package/docs/reference/std/recurring_collection.md +25 -0
  94. package/docs/reference/std/rotating_pool.md +42 -0
  95. package/docs/reference/std/scheduled.md +51 -0
  96. package/docs/reference/std/security_deposit.md +46 -0
  97. package/docs/reference/std/settlement_batch.md +42 -0
  98. package/docs/reference/std/swap.md +46 -0
  99. package/docs/reference/std/threshold_pool.md +47 -0
  100. package/docs/reference/std/weighted_distribution.md +39 -0
  101. package/docs/reference/types.md +20 -0
  102. package/docs/reference/udl-output.md +14 -0
  103. package/docs/sessions/2026-09-02-two-instruments.hsx +21 -0
  104. package/docs/sessions/2026-09-02-two-instruments.md +41 -0
  105. package/examples/01-first-program/README.md +45 -0
  106. package/examples/01-first-program/tip-jar.hsx +17 -0
  107. package/examples/02-imports-and-archetypes/README.md +99 -0
  108. package/examples/02-imports-and-archetypes/photo-booth.hsx +37 -0
  109. package/examples/03-diagnostics/README.md +68 -0
  110. package/examples/03-diagnostics/corner-shop-fixed.hsx +22 -0
  111. package/examples/03-diagnostics/corner-shop.hsx +19 -0
  112. package/examples/04-complete-product/README.md +87 -0
  113. package/examples/04-complete-product/study-hall.hsx +67 -0
  114. package/examples/05-watch-club/README.md +9 -0
  115. package/examples/05-watch-club/watch-club.hsx +124 -0
  116. package/examples/README.md +18 -0
  117. package/examples/advance/README.md +3 -0
  118. package/examples/advance/advance.hsx +13 -0
  119. package/examples/advance/advance.udl +339 -0
  120. package/examples/cancellable_booking/README.md +3 -0
  121. package/examples/cancellable_booking/cancellable_booking.hsx +14 -0
  122. package/examples/cancellable_booking/cancellable_booking.udl +391 -0
  123. package/examples/captured_payment/README.md +3 -0
  124. package/examples/captured_payment/captured_payment.hsx +21 -0
  125. package/examples/captured_payment/captured_payment.udl +677 -0
  126. package/examples/conditional_disbursement/README.md +3 -0
  127. package/examples/conditional_disbursement/conditional_disbursement.hsx +17 -0
  128. package/examples/conditional_disbursement/conditional_disbursement.udl +412 -0
  129. package/examples/cost-table.json +386 -0
  130. package/examples/credit_facility/README.md +3 -0
  131. package/examples/credit_facility/credit_facility.hsx +27 -0
  132. package/examples/credit_facility/credit_facility.udl +1373 -0
  133. package/examples/held_payment/README.md +3 -0
  134. package/examples/held_payment/held_payment.hsx +13 -0
  135. package/examples/held_payment/held_payment.udl +507 -0
  136. package/examples/instant_transfer/README.md +3 -0
  137. package/examples/instant_transfer/instant_transfer.hsx +16 -0
  138. package/examples/instant_transfer/instant_transfer.udl +364 -0
  139. package/examples/metered/README.md +3 -0
  140. package/examples/metered/metered.hsx +13 -0
  141. package/examples/metered/metered.udl +247 -0
  142. package/examples/pooled_split/README.md +3 -0
  143. package/examples/pooled_split/pooled_split.hsx +15 -0
  144. package/examples/pooled_split/pooled_split.udl +425 -0
  145. package/examples/premium_forward/README.md +3 -0
  146. package/examples/premium_forward/premium_forward.hsx +19 -0
  147. package/examples/premium_forward/premium_forward.udl +594 -0
  148. package/examples/reconciled_payout/README.md +3 -0
  149. package/examples/reconciled_payout/reconciled_payout.hsx +13 -0
  150. package/examples/reconciled_payout/reconciled_payout.udl +303 -0
  151. package/examples/recurring_collection/README.md +3 -0
  152. package/examples/recurring_collection/recurring_collection.hsx +21 -0
  153. package/examples/recurring_collection/recurring_collection.udl +1130 -0
  154. package/examples/rotating_pool/README.md +3 -0
  155. package/examples/rotating_pool/rotating_pool.hsx +18 -0
  156. package/examples/rotating_pool/rotating_pool.udl +4352 -0
  157. package/examples/scheduled/README.md +3 -0
  158. package/examples/scheduled/scheduled.hsx +12 -0
  159. package/examples/scheduled/scheduled.udl +335 -0
  160. package/examples/security_deposit/README.md +3 -0
  161. package/examples/security_deposit/security_deposit.hsx +21 -0
  162. package/examples/security_deposit/security_deposit.udl +293 -0
  163. package/examples/settlement_batch/README.md +3 -0
  164. package/examples/settlement_batch/settlement_batch.hsx +19 -0
  165. package/examples/settlement_batch/settlement_batch.udl +753 -0
  166. package/examples/swap/README.md +3 -0
  167. package/examples/swap/swap.hsx +19 -0
  168. package/examples/swap/swap.udl +876 -0
  169. package/examples/threshold_pool/README.md +3 -0
  170. package/examples/threshold_pool/threshold_pool.hsx +16 -0
  171. package/examples/threshold_pool/threshold_pool.udl +667 -0
  172. package/examples/weighted_distribution/README.md +3 -0
  173. package/examples/weighted_distribution/weighted_distribution.hsx +20 -0
  174. package/examples/weighted_distribution/weighted_distribution.udl +337 -0
  175. package/package.json +19 -6
  176. package/skills/hsx/SKILL.md +483 -0
  177. package/src/ast.ts +163 -9
  178. package/src/cli.ts +164 -12
  179. package/src/compile.ts +160 -20
  180. package/src/cost.ts +579 -0
  181. package/src/diagnostics.ts +442 -0
  182. package/src/emit.ts +447 -0
  183. package/src/entry-overrides.ts +263 -48
  184. package/src/format.ts +261 -0
  185. package/src/index.ts +32 -4
  186. package/src/ir.ts +99 -0
  187. package/src/lex.ts +59 -4
  188. package/src/limits.ts +2 -3
  189. package/src/modules.ts +444 -0
  190. package/src/parse.ts +655 -21
  191. package/src/typecheck.ts +3876 -0
  192. package/src/version.ts +4 -16
  193. package/std/SEMANTICS.md +130 -0
  194. package/std/settlements/advance.hsx +177 -0
  195. package/std/settlements/cancellable_booking.hsx +87 -0
  196. package/std/settlements/captured_payment.hsx +144 -0
  197. package/std/settlements/conditional_disbursement.hsx +185 -0
  198. package/std/settlements/credit_facility.hsx +167 -0
  199. package/std/settlements/held_payment.hsx +578 -0
  200. package/std/settlements/index.hsx +3 -0
  201. package/std/settlements/instant_transfer.hsx +190 -0
  202. package/std/settlements/metered.hsx +67 -0
  203. package/std/settlements/pooled_split.hsx +68 -0
  204. package/std/settlements/premium_forward.hsx +257 -0
  205. package/std/settlements/reconciled_payout.hsx +77 -0
  206. package/std/settlements/recurring_collection.hsx +27 -0
  207. package/std/settlements/rotating_pool.hsx +252 -0
  208. package/std/settlements/scheduled.hsx +641 -0
  209. package/std/settlements/security_deposit.hsx +166 -0
  210. package/std/settlements/settlement_batch.hsx +122 -0
  211. package/std/settlements/swap.hsx +1114 -0
  212. package/std/settlements/threshold_pool.hsx +221 -0
  213. package/std/settlements/weighted_distribution.hsx +141 -0
  214. package/dist/src/archetypes.d.ts +0 -17
  215. package/dist/src/archetypes.d.ts.map +0 -1
  216. package/dist/src/archetypes.js +0 -327
  217. package/dist/src/archetypes.js.map +0 -1
  218. package/dist/src/check.d.ts +0 -12
  219. package/dist/src/check.d.ts.map +0 -1
  220. package/dist/src/check.js +0 -1910
  221. package/dist/src/check.js.map +0 -1
  222. package/dist/src/lower.d.ts +0 -146
  223. package/dist/src/lower.d.ts.map +0 -1
  224. package/dist/src/lower.js +0 -4570
  225. package/dist/src/lower.js.map +0 -1
  226. package/dist/src/model.d.ts +0 -467
  227. package/dist/src/model.d.ts.map +0 -1
  228. package/dist/src/model.js +0 -15
  229. package/dist/src/model.js.map +0 -1
  230. package/spec/hsx-ir.schema.json +0 -920
  231. package/src/archetypes.ts +0 -340
  232. package/src/check.ts +0 -2938
  233. package/src/lower.ts +0 -5416
  234. package/src/model.ts +0 -519
package/CHANGELOG.md CHANGED
@@ -11,6 +11,37 @@ listed here.
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [1.0.0-rc.1] - 2026-09-02
15
+
16
+ ### Added
17
+
18
+ - Added the repository guide, generated compiler reference, `llms.txt`, and
19
+ `llms-full.txt`. Tests compile every guide program and compare generated
20
+ files byte for byte.
21
+ - Added one compiled example and pinned canonical UDL file for every standard
22
+ library module.
23
+ - Added the public HSX agent skill and moved language examples into it.
24
+ - Added `hsx explain` for the stable diagnostics catalog.
25
+ - Added a generated VS Code grammar, standard-library snippets, and a CI-built
26
+ `hsx.vsix` artifact.
27
+
28
+ ### Changed
29
+
30
+ - `hsx cost` now prints a versioned effect table by default. `--json` prints the
31
+ complete manifest, and `--out <file.json>` writes that JSON. Basis-point rows
32
+ label their total as amount-dependent because the compiler has no priced
33
+ runtime amount. No cost flags were removed.
34
+ - The npm package now includes `docs/` and `skills/`. It no longer lists the
35
+ deleted `spec/` directory.
36
+ - The package exports its shipped standard-library files through `./std/*`.
37
+
38
+ ### Fixed
39
+
40
+ - Diagnostics raised from an imported module now name that module and its own
41
+ source coordinates.
42
+ - `premium_forward` now reports `HSX1011` when endorsement selects a path that
43
+ needs `renewal_due`. It no longer reaches an internal lowering refusal.
44
+
14
45
  ## [1.0.0-beta.1] - 2026-08-29
15
46
 
16
47
  - This is the first beta and has no package behavior changes from
@@ -21,7 +52,7 @@ listed here.
21
52
  ### Fixed
22
53
 
23
54
  - Alpha.6 carries a `held_payment` or `premium_forward` release port's actor
24
- allowlist and declared input fields into the generated release verb. Alpha.5
55
+ allowlist and declared input fields into the generated release action. Alpha.5
25
56
  kept those constraints in the checked program and Business Frame but dropped
26
57
  them from HSX-JSON IR, so a runtime consuming the IR could admit the release
27
58
  without the declared actor or evidence. Recompile affected programs with
@@ -31,7 +62,7 @@ listed here.
31
62
 
32
63
  ### Added
33
64
 
34
- - Six settlement archetypes now compile and lower. `funding_round` caps locked
65
+ - Six settlement archetypes now compile and lower. `threshold_pool` caps locked
35
66
  commitments and contributor count, then collects or refunds each commitment
36
67
  whole. `weighted_distribution` freezes evidence-backed weights and pays by
37
68
  deterministic largest remainder. `credit_facility` owns draw capacity while
@@ -75,7 +106,7 @@ listed here.
75
106
  ### Changed
76
107
 
77
108
  - `scheduled` accepts `mode: obligation` for installment obligations. It emits
78
- one payment noun per anchor, binds each payment to its obligation and anchor,
109
+ one payment instrument per anchor, binds each payment to its obligation and anchor,
79
110
  allows partial and early payments, and refunds one stored paid row whole.
80
111
  Obligation mode accepts 2 through 7 anchors and refuses rescheduling. Use the
81
112
  original transfer schedule without `mode`, or declare the debtor and every
@@ -83,13 +114,13 @@ listed here.
83
114
  - The program money-event budget is 20 instead of 14, and every settlement has
84
115
  its own event cap. Advance carves now validate their amount field, currency,
85
116
  recourse, and fee rules. Settlement references resolve through
86
- archetype-declared exits, and lowering binds referenced noun identity,
117
+ archetype-declared exits, and lowering binds referenced instrument identity,
87
118
  statuses, amounts, and currency before movement. Recompile programs that
88
119
  previously sat near the budget or used an advance carve. The stricter checker
89
120
  may refuse a carve or reference that alpha.4 accepted.
90
- - HSX-JSON IR version 1 grew new noun fields for generated-child prefixes,
121
+ - HSX-JSON IR version 1 grew new instrument fields for generated-child prefixes,
91
122
  aggregate invariants, derived amounts, typed references, beneficiary IDs,
92
- currency, text, counts, and constants. Verbs gained public intents, reference
123
+ currency, text, counts, and constants. Actions gained public actions, reference
93
124
  bindings, captured input, payout instructions, signed sums, deterministic
94
125
  distribution, aggregate and exposure checks, and durable-settlement gates.
95
126
  Money events gained fixed, remaining-balance, and runtime-bounded amount
@@ -143,7 +174,7 @@ listed here.
143
174
  The depth budget counts nested expressions and blocks, which is not the same
144
175
  number as source levels: `key { … }` spends one per level and `key: { … }`
145
176
  spends two, so the budget buys 63 levels of the first and 31 of the second.
146
- `docs/reference.md` carries the conversion for every shape. Both refusals are
177
+ The release reference carried the conversion for every shape. Both refusals are
147
178
  ordinary parse diagnostics, not exceptions.
148
179
 
149
180
  ## [1.0.0-alpha.2] - 2026-08-23
@@ -183,7 +214,7 @@ This is the first version published as a package anyone can install.
183
214
  - `spec/hsx-ir.schema.json`, JSON Schema 2020-12 for the HSX-JSON IR document
184
215
  and the Business Frame. Every `.hsx` file in the repository is validated
185
216
  against it in CI.
186
- - `docs/reference.md`: the lexical grammar, the EBNF the parser accepts, what
217
+ - The release reference: the lexical grammar, the EBNF the parser accepts, what
187
218
  each stage does, the diagnostic model, and all nine `settlement` archetypes
188
219
  with their parameters and constraints.
189
220
  - `examples/`, four teaching programs compiled by the test suite.
@@ -200,7 +231,8 @@ This is the first version published as a package anyone can install.
200
231
  program that needs more is refused with a diagnostic saying so.
201
232
  - **`party` takes no attribute block yet**, though the grammar parses one.
202
233
 
203
- [Unreleased]: https://github.com/hyperscale0/hyperscale-hsx/compare/v1.0.0-beta.1...HEAD
234
+ [Unreleased]: https://github.com/hyperscale0/hyperscale-hsx/compare/v1.0.0-rc.1...HEAD
235
+ [1.0.0-rc.1]: https://github.com/hyperscale0/hyperscale-hsx/compare/v1.0.0-beta.1...v1.0.0-rc.1
204
236
  [1.0.0-beta.1]: https://github.com/hyperscale0/hyperscale-hsx/compare/v1.0.0-alpha.6...v1.0.0-beta.1
205
237
  [1.0.0-alpha.6]: https://github.com/hyperscale0/hyperscale-hsx/compare/v1.0.0-alpha.5...v1.0.0-alpha.6
206
238
  [1.0.0-alpha.5]: https://github.com/hyperscale0/hyperscale-hsx/compare/v1.0.0-alpha.4...v1.0.0-alpha.5
package/LICENSING.md CHANGED
@@ -39,9 +39,9 @@ says nothing about trademarks in either direction, so
39
39
 
40
40
  ## The language is not the compiler
41
41
 
42
- HSX the language and the HSX-JSON IR are separate from this compiler. The IR
43
- schema in [`spec/`](./spec) and the fixtures under [`examples/`](./examples)
44
- are data describing a language, and anyone may write their own compiler,
42
+ HSX the language and its output contract are separate from this compiler. The
43
+ canonical UDL schema published by the UDL repository and the fixtures under
44
+ [`examples/`](./examples) are data describing a language, and anyone may write their own compiler,
45
45
  formatter, or runtime against them, in any language, under any license, without
46
46
  touching this code.
47
47
 
package/README.md CHANGED
@@ -1,170 +1,58 @@
1
1
  # HSX
2
2
 
3
- HSX is the authoring language for a composed financial company. You declare
4
- the parties, assets, and settlement bricks that define how value moves. The
5
- compiler emits HSX-JSON IR plus a congruent Business Frame. Hyperscale's
6
- composer checks that output, expands it into UDL, plans the change, and freezes
7
- the admitted contract into a Product build.
8
-
9
- Seventeen lines of HSX ([`car-escrow.hsx`](./test/fixtures/car-escrow.hsx)) are
10
- a used-car escrow: the buyer's money is held, the buyer's own backend confirms
11
- the handover, the platform takes asymmetric fees, and a cancellation splits the
12
- held amount to the basis point. There is no account provisioning in it, no
13
- lifecycle table, no transfer plumbing. That is the point: those are consequences
14
- of the settlement you named, so the compiler derives them instead of asking you
15
- to hand-write them and get them right.
16
-
17
- The line here is the one HCL draws with Terraform. **The language is open.**
18
- The lexer, the parser, the typechecker, the lowering, the diagnostics, the IR
19
- schema, and this compiler are AGPL-3.0-only and are in this repository. **The
20
- composer and runtime are the product**, and they are not open. HSX targets the
21
- composer the way HCL targets a provider: you can read every compiler rule,
22
- compile any program, and inspect the exact document and Business Frame the
23
- composer receives. This package never executes an operation or moves money.
24
-
25
- ## Install
26
-
27
- ```bash
28
- npm install @hyperscale0/hsx
29
- ```
30
-
31
- Every release before 1.0.0 is an alpha, and `latest` follows the newest one, so
32
- a bare install gets it. Pin an exact version if you need one: until 1.0.0 a
33
- change to the surface ships as a minor bump, not a major.
34
-
35
- ## A program
36
-
37
- [`photo-booth.hsx`](./examples/02-imports-and-archetypes/photo-booth.hsx), a
38
- booth rental company, whole apart from its comments:
3
+ HSX is the typed language for money on the Hyperscale operating system. It
4
+ defines general instruments, composes a standard library, checks
5
+ currency-indexed linear money, and calculates cost at compile time.
6
+ HSX compiles each accepted program to canonical UDL.
39
7
 
40
8
  ```hsx
41
- program photo_booth "Photo booth rentals"
42
-
43
- import { held_payment } from "settlement"
44
-
45
- party renter: person
46
- party company: business
47
-
48
- asset booth: good { title_transfer: off_platform }
49
-
50
- settlement booking = held_payment {
51
- payer: renter
52
- payee: company
53
- amount: bookingFee: money(SAR)
54
- fees { renter: 1%, company: 3% }
55
- release: port confirm_delivery
56
- on_cancel(funded) { renter: 90%, company: 10% }
9
+ program held_sale "Held sale"
10
+ import { held_payment } from "std/settlements"
11
+ party buyer: person
12
+ party seller: business
13
+ settlement sale = held_payment {
14
+ payer: buyer
15
+ payee: seller
16
+ amount: price: money(SAR)
17
+ release: port accept_delivery
57
18
  }
58
19
 
59
- port confirm_delivery {
60
- allowed: [company]
61
- shape {
62
- boothId: id(booth)
63
- deliveredOn: date
64
- }
65
- }
20
+ port accept_delivery { allowed: [buyer] }
66
21
  ```
67
22
 
68
- ```ts
69
- import { compile } from "@hyperscale0/hsx";
70
-
71
- const result = compile(await Bun.file("photo-booth.hsx").text());
72
-
73
- result.verdict; // "valid" | "warning" | "invalid"
74
- result.diagnostics; // [{ line, column, severity, stage, message }]
75
- result.artifacts; // present unless the verdict is "invalid"
23
+ ```sh
24
+ npm install @hyperscale0/hsx @hyperscale0/udl
25
+ npx hsx check product.hsx
76
26
  ```
77
27
 
78
- `result.artifacts.document` is the HSX-JSON IR. Those 20 lines compile to one
79
- escrow noun, `booking`, carrying:
80
-
81
- - **five money fields**: `bookingFee`, the three pieces it partitions into
82
- (90%, 7%, 3%: the finest split that every exit agrees on, since release pays
83
- 97/3 to company and platform while cancellation pays 90/10 to renter and
84
- company), and `serviceFeeAmount` for the renter's 1% charged on top;
85
- - **a `partitions` clause** proving those pieces sum to `bookingFee` exactly,
86
- checked at create admission before any money moves;
87
- - **fifteen verbs**: the funding chain, the fee collection, the port itself,
88
- the release payout, the cancellation unwind, and the abandonment refunds,
89
- each with its `from` states, its `to` state, and its ledger moves.
90
-
91
- `result.artifacts.frame` is the congruent Business Frame: the same product as
92
- actors, money events, rules, and fees, for the surfaces people read rather
93
- than the runtime that executes.
28
+ After installing dependencies in a repository checkout, run `bun run bin/hsx.ts check product.hsx`.
94
29
 
95
- Both shapes are specified in
96
- [`spec/hsx-ir.schema.json`](./spec/hsx-ir.schema.json) (JSON Schema 2020-12),
97
- and every file under `examples/` and `test/fixtures/` is validated against it
98
- in CI.
99
-
100
- ## The command
101
-
102
- ```bash
103
- hsx check photo-booth.hsx # diagnostics, nothing else
104
- hsx check photo-booth.hsx --strict # warnings fail too
105
- hsx build photo-booth.hsx # artifacts to stdout
106
- hsx build photo-booth.hsx --out ir.json
30
+ ```ts
31
+ import { compile } from "@hyperscale0/hsx";
32
+ const result = compile(source, { costTable });
33
+ const { document, frame, originMap, costManifest } = result.artifacts!;
107
34
  ```
108
35
 
109
- Exit codes: `0` the program compiled, `1` it was refused, `2` the command line
110
- or the input file could not be used. A refused program and a mistyped command
111
- are different failures, so they get different codes.
112
-
113
- There is no `hsx fmt`. This package ships no formatter, and shipping a bad one
114
- is worse than shipping none.
115
-
116
- ## Learn it
117
-
118
- - [`examples/`](./examples/) has four programs, in order: the smallest one that
119
- moves money, settlement bricks and ports, a walk through the diagnostics,
120
- and a complete small product. Each has its own README, and each is compiled
121
- by the test suite so they cannot rot.
122
- - [`docs/reference.md`](./docs/reference.md) is the language reference: lexical
123
- grammar, EBNF, what each stage does, the diagnostic model, and every
124
- brick in the `settlement` standard library with its parameters and
125
- constraints.
126
- - [`editors/vscode/`](./editors/vscode/) carries the syntax highlighting.
127
-
128
- ## Versioning
129
-
130
- Two numbers move independently.
131
-
132
- **IR version** is the literal `"hsx": 1` stamped into every compiled document.
133
- A consumer reads that one integer off the document to decide whether it
134
- understands it. It moves only when the emitted IR shape changes in a way a
135
- consumer must notice.
36
+ The compiler returns four artifacts named `document`, `frame`, `originMap`, and `costManifest`.
136
37
 
137
- **Package version** is this package's semver, in `package.json`. It moves
138
- whenever the compiler changes, including changes that only affect a
139
- diagnostic's wording.
38
+ `document` is the canonical UDL value.
140
39
 
141
- IR version 1 is unstable until the package reaches 1.0.0. Until then an alpha
142
- release may change what the compiler emits, and every such change is listed in
143
- [`CHANGELOG.md`](./CHANGELOG.md). After 1.0.0, an incompatible IR change bumps
144
- the literal to `2`.
40
+ The built-in module resolver reads every settlement module in `std/settlements`.
145
41
 
146
- ## Status
42
+ The CLI exits 0 for an accepted program, 1 for a refused program, and 2 when it cannot use the command line or input file.
147
43
 
148
- Alpha. Seventeen settlement bricks ship and all seventeen lower. Hyperscale's
149
- composer and founder CLI use this compiler today. The package remains pre-1.0,
150
- so diagnostic wording and brick parameters can still change on a minor
151
- release. There are no stable diagnostic codes yet.
44
+ Every compiler diagnostic code appears in the generated diagnostics catalog.
152
45
 
153
- ## Contributing
46
+ Start with the [first program](./docs/guide/01-first-program.md), then read the
47
+ [guide in order](./docs/README.md). The generated [grammar](./docs/reference/grammar.md),
48
+ [standard library pages](./docs/reference/std/), and
49
+ [diagnostics catalog](./docs/reference/diagnostics.md) track the compiler.
154
50
 
155
- Issues only. Hyperscale makes the changes to the language and the compiler; you
156
- propose them in an issue carrying the program you were trying to write and the
157
- fixture the change would add. [`CONTRIBUTING.md`](./CONTRIBUTING.md) has that
158
- model in full, plus the setup, the test commands, and the one hard rule: a
159
- grammar change without a fixture is not a grammar change. Conduct:
160
- [`CODE_OF_CONDUCT.md`](./CODE_OF_CONDUCT.md). Vulnerabilities:
161
- [`SECURITY.md`](./SECURITY.md).
51
+ HSX is like Terraform for a financial product: the program declares the
52
+ contract, and the compiler refuses an invalid plan before a runtime reads it.
162
53
 
163
- ## License
54
+ The VS Code extension is built as `hsx.vsix` in CI. Download the workflow
55
+ artifact, then run `code --install-extension hsx.vsix`.
164
56
 
165
- AGPL-3.0-only, with a commercial license available from Hyperscale LLC for
166
- organisations that cannot accept the AGPL. See [`LICENSE`](./LICENSE) for the
167
- text and [`LICENSING.md`](./LICENSING.md) for which one you want and how to ask
168
- for the commercial one. The marks are not covered by either; see
169
- [`TRADEMARKS.md`](./TRADEMARKS.md), which also carries the rule for claiming
170
- HSX compatibility.
57
+ HSX is licensed under AGPL-3.0-only. See [LICENSE](./LICENSE) and
58
+ [LICENSING.md](./LICENSING.md).
package/TRADEMARKS.md CHANGED
@@ -9,7 +9,7 @@ has to guess where it sits.
9
9
 
10
10
  What that means in practice:
11
11
 
12
- - **Yes.** Say your project uses HSX, compiles HSX, or reads the HSX-JSON IR.
12
+ - **Yes.** Say your project uses HSX, compiles HSX, or reads its internal lowering record.
13
13
  Say it in your README, your docs, your talk, and your package description.
14
14
  Fork this repository and keep the notices intact.
15
15
  - **Yes.** Publish an HSX implementation or tool in another language, and name
@@ -23,9 +23,9 @@ What that means in practice:
23
23
  ## Claiming compatibility
24
24
 
25
25
  An independent implementation may say it "implements HSX IR version X" only
26
- while it emits IR that validates against the published schema for that version,
27
- from the published example programs, unmodified. The schema in
28
- [`spec/`](./spec) and the programs in [`examples/`](./examples) are the whole
26
+ while it emits canonical UDL that validates against the UDL schema published
27
+ for that version, from the published example programs, unmodified. The UDL
28
+ schema and the programs in [`examples/`](./examples) are the whole
29
29
  test: no edited fixture, no local relaxation of the schema.
30
30
 
31
31
  That claim is a statement about your implementation, so keep the marks out of
package/dist/src/ast.d.ts CHANGED
@@ -42,6 +42,8 @@ export declare function lineColIn(index: LineIndex, offset: number): LineCol;
42
42
  export interface IdentExpr {
43
43
  readonly kind: "ident";
44
44
  readonly name: string;
45
+ /** A literal quoted block key keeps its exact spelling during JSON lowering. */
46
+ readonly quoted?: boolean;
45
47
  readonly span: Span;
46
48
  }
47
49
  export interface StringExpr {
@@ -49,12 +51,45 @@ export interface StringExpr {
49
51
  readonly span: Span;
50
52
  readonly value: string;
51
53
  }
52
- interface NumberExpr {
54
+ export interface NumberExpr {
53
55
  readonly kind: "number";
54
56
  /** The literal exactly as written, e.g. "99.5". Interpretation is typed later. */
55
57
  readonly raw: string;
56
58
  readonly span: Span;
57
59
  }
60
+ export interface BooleanExpr {
61
+ readonly kind: "boolean";
62
+ readonly span: Span;
63
+ readonly value: boolean;
64
+ }
65
+ /** A currency-indexed literal. The checker converts it to integer minor units. */
66
+ export interface MoneyExpr {
67
+ readonly currency: IdentExpr;
68
+ readonly kind: "money";
69
+ readonly raw: string;
70
+ readonly span: Span;
71
+ }
72
+ /** A dotted name used for modules, UDL operations, and field paths. */
73
+ export interface PathExpr {
74
+ readonly kind: "path";
75
+ readonly parts: readonly IdentExpr[];
76
+ readonly span: Span;
77
+ }
78
+ /** A nominal type application such as `money<SAR>` or `ref<invoice>`. */
79
+ export interface TypeApplyExpr {
80
+ readonly args: readonly Expr[];
81
+ readonly callee: IdentExpr;
82
+ readonly kind: "type_apply";
83
+ readonly span: Span;
84
+ }
85
+ /** A general instrument or constant application, with optional type arguments. */
86
+ export interface ApplyExpr {
87
+ readonly args: readonly Expr[];
88
+ readonly callee: PathExpr;
89
+ readonly kind: "apply";
90
+ readonly span: Span;
91
+ readonly typeArgs: readonly Expr[];
92
+ }
58
93
  export interface PercentExpr {
59
94
  /** Exact basis points: 99.5% is 9950. Percents never round. */
60
95
  readonly bps: number;
@@ -69,6 +104,15 @@ export interface CallExpr {
69
104
  readonly kind: "call";
70
105
  readonly span: Span;
71
106
  }
107
+ /**
108
+ * An exit amount chosen by a decision port and bounded by stored money:
109
+ * `decided { field: damageAmount, bound: depositAmount, remainder: return }`.
110
+ */
111
+ export interface DecidedAmountExpr {
112
+ readonly body: BlockExpr;
113
+ readonly kind: "decided_amount";
114
+ readonly span: Span;
115
+ }
72
116
  /**
73
117
  * A reference to a decision port, optionally bounded (`port dispute within
74
118
  * P14D`) or carrying the date that decides when the port has not
@@ -110,19 +154,24 @@ export interface BlockExpr {
110
154
  * `amount: price: money(SAR)` binds the field name `price` to type
111
155
  * `money(SAR)`: the entry key is `amount`, the value is this binding.
112
156
  */
113
- interface BindingExpr {
157
+ export interface BindingExpr {
114
158
  readonly kind: "binding";
115
159
  readonly name: IdentExpr;
116
160
  readonly span: Span;
117
161
  readonly type: Expr;
118
162
  }
119
- export type Expr = BindingExpr | BlockExpr | CallExpr | IdentExpr | ListExpr | NumberExpr | PercentExpr | PortRefExpr | SettlementRefExpr | StringExpr;
163
+ export type Expr = ApplyExpr | BindingExpr | BlockExpr | BooleanExpr | CallExpr | DecidedAmountExpr | IdentExpr | ListExpr | MoneyExpr | NumberExpr | PathExpr | PercentExpr | PortRefExpr | SettlementRefExpr | StringExpr | TypeApplyExpr;
120
164
  /**
121
165
  * One keyed entry inside a declaration body. Three surface shapes normalize
122
166
  * here: `payer: buyer` (key + value), `fees { ... }` (key + block value),
123
167
  * and `on_cancel(funded) { ... }` (key + qualifiers + block value).
124
168
  */
125
169
  export interface Entry {
170
+ /** `for item in bound { ... }`, expanded before binding or UDL lowering. */
171
+ readonly iteration?: {
172
+ readonly binding: IdentExpr;
173
+ readonly bound: Expr;
174
+ };
126
175
  readonly key: IdentExpr;
127
176
  readonly qualifiers: readonly IdentExpr[];
128
177
  readonly span: Span;
@@ -135,7 +184,21 @@ export interface ProgramDecl {
135
184
  readonly span: Span;
136
185
  readonly title?: StringExpr;
137
186
  }
138
- /** `import { held_payment } from "settlement"`. */
187
+ /** `use held_settlement` selects one published catalog instrument. */
188
+ export interface UseDecl {
189
+ readonly instrument: IdentExpr;
190
+ readonly kind: "use";
191
+ readonly span: Span;
192
+ }
193
+ /** `expose held_settlement.release as releaseFunds` names a public action. */
194
+ export interface ExposeDecl {
195
+ readonly action: IdentExpr;
196
+ readonly instrument: IdentExpr;
197
+ readonly kind: "expose";
198
+ readonly publicName: IdentExpr;
199
+ readonly span: Span;
200
+ }
201
+ /** `import { held_payment } from "std/settlements"`. */
139
202
  export interface ImportDecl {
140
203
  readonly from: StringExpr;
141
204
  readonly kind: "import";
@@ -158,11 +221,10 @@ export interface AssetDecl {
158
221
  readonly name: IdentExpr;
159
222
  readonly span: Span;
160
223
  }
161
- /** `settlement sale = held_payment { ... }`, an archetype instantiation. */
162
- export interface SettlementDecl {
163
- readonly archetype: IdentExpr;
224
+ /** A full UDL subject-kind declaration. `asset` remains shorthand for this form. */
225
+ export interface SubjectDecl {
164
226
  readonly body: BlockExpr;
165
- readonly kind: "settlement";
227
+ readonly kind: "subject";
166
228
  readonly name: IdentExpr;
167
229
  readonly span: Span;
168
230
  }
@@ -173,7 +235,63 @@ export interface PortDecl {
173
235
  readonly name: IdentExpr;
174
236
  readonly span: Span;
175
237
  }
176
- export type Decl = AssetDecl | ImportDecl | PartyDecl | PortDecl | ProgramDecl | SettlementDecl;
238
+ /** `module std.settlements` gives a file its importable module name. */
239
+ export interface ModuleDecl {
240
+ readonly kind: "module";
241
+ readonly name: PathExpr;
242
+ readonly span: Span;
243
+ }
244
+ export interface TypeParameter {
245
+ readonly name: IdentExpr;
246
+ readonly span: Span;
247
+ }
248
+ export interface Parameter {
249
+ readonly name: IdentExpr;
250
+ readonly span: Span;
251
+ readonly type: Expr;
252
+ }
253
+ /** The single general instrument definition form. */
254
+ export interface InstrumentDecl {
255
+ readonly body: BlockExpr;
256
+ /** Module-local declarations carried only while this template is bound. */
257
+ readonly declarationScope?: readonly ApplicationScopeDecl[];
258
+ readonly exported: boolean;
259
+ /** True when the source declared a parameter list, including an empty `()`. */
260
+ readonly hasParameterList: boolean;
261
+ readonly kind: "instrument";
262
+ readonly name: IdentExpr;
263
+ readonly parameters: readonly Parameter[];
264
+ readonly span: Span;
265
+ readonly typeParameters: readonly TypeParameter[];
266
+ }
267
+ /** Instantiation of an exported parameterized instrument. */
268
+ export interface InstrumentApplyDecl {
269
+ readonly application: ApplyExpr;
270
+ /** Module-local declarations carried only while this application is bound. */
271
+ readonly declarationScope?: readonly ApplicationScopeDecl[];
272
+ readonly exported: boolean;
273
+ readonly kind: "instrument_apply";
274
+ readonly metadata?: BlockExpr;
275
+ readonly name: IdentExpr;
276
+ readonly span: Span;
277
+ }
278
+ export interface TypeDecl {
279
+ readonly exported: boolean;
280
+ readonly kind: "type";
281
+ readonly name: IdentExpr;
282
+ readonly span: Span;
283
+ readonly value: Expr;
284
+ }
285
+ export interface ConstDecl {
286
+ readonly exported: boolean;
287
+ readonly kind: "const";
288
+ readonly name: IdentExpr;
289
+ readonly span: Span;
290
+ readonly type?: Expr;
291
+ readonly value: Expr;
292
+ }
293
+ export type ApplicationScopeDecl = ConstDecl | InstrumentDecl | PartyDecl | PortDecl | TypeDecl;
294
+ export type Decl = AssetDecl | ConstDecl | ExposeDecl | ImportDecl | InstrumentApplyDecl | InstrumentDecl | ModuleDecl | PartyDecl | PortDecl | ProgramDecl | SubjectDecl | TypeDecl | UseDecl;
177
295
  export interface Program {
178
296
  readonly decls: readonly Decl[];
179
297
  readonly span: Span;
@@ -183,8 +301,9 @@ export interface Program {
183
301
  * it never throws, it returns the best-effort tree plus these.
184
302
  */
185
303
  export interface Diagnostic {
304
+ readonly code?: string;
305
+ readonly fix?: string;
186
306
  readonly message: string;
187
307
  readonly span: Span;
188
308
  }
189
- export {};
190
309
  //# sourceMappingURL=ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,IAAI;IACnB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAWjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAMnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUnE;AAID,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,UAAU;IAClB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,sEAAsE;AACtE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,IAAI,GACZ,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,UAAU,GACV,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,UAAU,CAAC;AAIf;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AAID,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC7B;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,IAAI,GACZ,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,cAAc,CAAC;AAInB,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAID;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"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"}
package/dist/src/cli.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The `hsx` command line: two subcommands over the one compiler entry point.
2
+ * The `hsx` command line over the one compiler entry point and catalog.
3
3
  *
4
4
  * `check` prints diagnostics and says nothing else; `build` writes the
5
5
  * compiled artifacts as JSON. Neither reads the environment, neither touches
@@ -16,5 +16,6 @@ export interface Io {
16
16
  readonly readFile: (path: string) => Promise<string>;
17
17
  readonly writeFile: (path: string, contents: string) => Promise<void>;
18
18
  }
19
+ export declare const USAGE_TEXT = "hsx 1.0.0-rc.1, the HSX compiler\n\nUsage:\n hsx check <file.hsx> [--strict]\n hsx build <file.hsx> [--out <file.json>] [--strict]\n hsx cost <file.hsx> [--json] [--out <file.json>] [--strict]\n hsx explain <HSX####>\n hsx format <file.hsx>\n hsx --version\n hsx --help\n\nCommands:\n check Compile and report diagnostics. Prints nothing when the program is clean.\n build Compile and write canonical UDL and its Business Frame as JSON.\n cost Compile and print the version-pinned cost manifest as a table or JSON.\n explain Print one diagnostic title, fix, and source example.\n format Print the source in the one canonical HSX style.\n\nOptions:\n --json Print the cost manifest as JSON instead of a table.\n --out <file> Write build or cost JSON to this path instead of stdout.\n --strict Treat warning-severity diagnostics as failures.\n\nExit codes:\n 0 the program compiled (verdict valid, or warning without --strict)\n 1 the program was refused (verdict invalid, or warning with --strict)\n 2 the command line or the input file could not be used";
19
20
  export declare function runCli(argv: readonly string[], io: Io): Promise<number>;
20
21
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,kEAAkE;AAClE,MAAM,WAAW,EAAE;IACjB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AA+BD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8D7E"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,kEAAkE;AAClE,MAAM,WAAW,EAAE;IACjB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAUD,eAAO,MAAM,UAAU,4kCA0BmC,CAAC;AAE3D,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoG7E"}