@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/src/archetypes.ts DELETED
@@ -1,340 +0,0 @@
1
- /**
2
- * Settlement declarations shared by checking and lowering. A local event cap
3
- * limits one settlement before the whole-program budget applies.
4
- */
5
-
6
- export const SETTLEMENT_ARCHETYPES = [
7
- "advance",
8
- "captured_payment",
9
- "conditional_disbursement",
10
- "credit_facility",
11
- "deposit",
12
- "funding_round",
13
- "held_payment",
14
- "instant_transfer",
15
- "metered",
16
- "pooled_split",
17
- "premium_forward",
18
- "recurring_collection",
19
- "rotating_pool",
20
- "scheduled",
21
- "settlement_batch",
22
- "swap",
23
- "weighted_distribution",
24
- ] as const;
25
-
26
- export type ArchetypeName = (typeof SETTLEMENT_ARCHETYPES)[number];
27
-
28
- interface ArchetypeDefinition {
29
- readonly eventCap: number;
30
- readonly keys: readonly string[];
31
- readonly maxRates?: number;
32
- readonly maxRecipients?: number;
33
- readonly referenceableExits: readonly string[];
34
- readonly required: readonly string[];
35
- }
36
-
37
- export const ARCHETYPE_DEFINITIONS: Record<ArchetypeName, ArchetypeDefinition> =
38
- {
39
- advance: {
40
- eventCap: 2,
41
- keys: [
42
- "against",
43
- "amount",
44
- "count",
45
- "every",
46
- "fee",
47
- "first_due",
48
- "funder",
49
- "to",
50
- ],
51
- referenceableExits: [],
52
- // The repayment source is one of two shapes, so the advance checker states
53
- // that requirement instead of listing either shape's keys as required.
54
- required: ["funder", "to", "amount"],
55
- },
56
- captured_payment: {
57
- eventCap: 4,
58
- keys: [
59
- "amount",
60
- "capture_mode",
61
- "correction",
62
- "correction_mode",
63
- "external_reversal",
64
- "fees",
65
- "negative_position",
66
- "payee",
67
- "payer",
68
- "reserve_until",
69
- "timeout",
70
- ],
71
- referenceableExits: [],
72
- required: [
73
- "payer",
74
- "payee",
75
- "amount",
76
- "capture_mode",
77
- "reserve_until",
78
- "correction",
79
- "external_reversal",
80
- "correction_mode",
81
- "negative_position",
82
- "timeout",
83
- ],
84
- },
85
- conditional_disbursement: {
86
- eventCap: 1,
87
- keys: [
88
- "amount",
89
- "cap",
90
- "decision",
91
- "destination",
92
- "recovery_policy",
93
- "reopen_policy",
94
- "source",
95
- ],
96
- referenceableExits: [],
97
- required: [
98
- "source",
99
- "destination",
100
- "cap",
101
- "amount",
102
- "decision",
103
- "reopen_policy",
104
- "recovery_policy",
105
- ],
106
- },
107
- credit_facility: {
108
- eventCap: 1,
109
- keys: [
110
- "availability_policy",
111
- "borrower",
112
- "close_policy",
113
- "draw_destination",
114
- "expires_at",
115
- "expiry_policy",
116
- "lender",
117
- "limit",
118
- "obligation",
119
- ],
120
- referenceableExits: [],
121
- required: [
122
- "lender",
123
- "borrower",
124
- "draw_destination",
125
- "limit",
126
- "expires_at",
127
- "obligation",
128
- "availability_policy",
129
- "expiry_policy",
130
- "close_policy",
131
- ],
132
- },
133
- deposit: {
134
- eventCap: 1,
135
- keys: ["amount", "claim", "holder", "payer", "return"],
136
- referenceableExits: [],
137
- required: ["payer", "holder", "amount", "claim", "return"],
138
- },
139
- funding_round: {
140
- eventCap: 4,
141
- keys: [
142
- "beneficiary",
143
- "cancel_policy",
144
- "close_by",
145
- "close_policy",
146
- "commitment",
147
- "contributor",
148
- "fail_policy",
149
- "max_contributors",
150
- "overfund_policy",
151
- "target",
152
- ],
153
- referenceableExits: [],
154
- required: [
155
- "contributor",
156
- "beneficiary",
157
- "target",
158
- "commitment",
159
- "max_contributors",
160
- "close_by",
161
- "close_policy",
162
- "overfund_policy",
163
- "cancel_policy",
164
- "fail_policy",
165
- ],
166
- },
167
- held_payment: {
168
- eventCap: 7,
169
- keys: ["amount", "fees", "on_cancel", "payer", "payee", "release"],
170
- referenceableExits: ["release"],
171
- required: ["payer", "payee", "amount", "release"],
172
- },
173
- instant_transfer: {
174
- eventCap: 3,
175
- keys: ["amount", "fees", "payer", "payee"],
176
- referenceableExits: [],
177
- required: ["payer", "payee", "amount"],
178
- },
179
- metered: {
180
- eventCap: 14,
181
- keys: ["close_by", "payer", "payee", "rates"],
182
- maxRates: 14,
183
- referenceableExits: [],
184
- required: ["payer", "payee", "rates", "close_by"],
185
- },
186
- pooled_split: {
187
- eventCap: 14,
188
- keys: ["amount", "payer", "payout_due", "split"],
189
- maxRecipients: 7,
190
- referenceableExits: [],
191
- required: ["payer", "amount", "split", "payout_due"],
192
- },
193
- premium_forward: {
194
- eventCap: 6,
195
- keys: [
196
- "amount",
197
- "bind",
198
- "carrier",
199
- "commission",
200
- "endorsement",
201
- "endorsement_policy",
202
- "lapse_policy",
203
- "on_cancel",
204
- "payer",
205
- "policy_ref",
206
- "renewal_due",
207
- "renewal_policy",
208
- ],
209
- referenceableExits: [],
210
- required: ["payer", "carrier", "amount", "bind"],
211
- },
212
- recurring_collection: {
213
- eventCap: 0,
214
- keys: [
215
- "attempt_policy",
216
- "failure_policy",
217
- "mandate",
218
- "obligation",
219
- "period_idempotency",
220
- "retry_policy",
221
- ],
222
- referenceableExits: [],
223
- required: [
224
- "obligation",
225
- "mandate",
226
- "attempt_policy",
227
- "period_idempotency",
228
- "retry_policy",
229
- "failure_policy",
230
- ],
231
- },
232
- rotating_pool: {
233
- eventCap: 3,
234
- keys: [
235
- "contribution",
236
- "count",
237
- "default_policy",
238
- "every",
239
- "exit_policy",
240
- "first_due",
241
- "guarantee_policy",
242
- "guarantor",
243
- "members",
244
- "payout_order",
245
- ],
246
- referenceableExits: [],
247
- required: [
248
- "members",
249
- "contribution",
250
- "count",
251
- "every",
252
- "first_due",
253
- "payout_order",
254
- "default_policy",
255
- "guarantee_policy",
256
- "exit_policy",
257
- ],
258
- },
259
- scheduled: {
260
- eventCap: 3,
261
- keys: [
262
- "advance_to",
263
- "amount",
264
- "count",
265
- "debtor",
266
- "delinquency_policy",
267
- "every",
268
- "first_due",
269
- "mode",
270
- "partial_payment",
271
- "payer",
272
- "payee",
273
- "refund_policy",
274
- "repayment_matching",
275
- "reschedule_policy",
276
- ],
277
- referenceableExits: ["obligation"],
278
- required: ["payer", "payee", "amount", "count", "every", "first_due"],
279
- },
280
- settlement_batch: {
281
- eventCap: 1,
282
- keys: [
283
- "close_trigger",
284
- "external_reversal_offsets",
285
- "fee_entries",
286
- "negative_position",
287
- "payout_destination",
288
- "payout_acknowledgement",
289
- "payout_beneficiary_ref",
290
- "settlement_account",
291
- "source_capture_refs",
292
- ],
293
- referenceableExits: [],
294
- required: [
295
- "settlement_account",
296
- "source_capture_refs",
297
- "fee_entries",
298
- "external_reversal_offsets",
299
- "close_trigger",
300
- "payout_destination",
301
- "negative_position",
302
- "payout_acknowledgement",
303
- "payout_beneficiary_ref",
304
- ],
305
- },
306
- swap: {
307
- eventCap: 10,
308
- keys: ["amounts", "between", "dispute", "fees", "release"],
309
- referenceableExits: [],
310
- required: ["between", "amounts", "release"],
311
- },
312
- weighted_distribution: {
313
- eventCap: 1,
314
- keys: [
315
- "amount",
316
- "correction_policy",
317
- "max_recipients",
318
- "recipient",
319
- "record_at",
320
- "rounding_policy",
321
- "snapshot",
322
- "source",
323
- "weight",
324
- "withholding_policy",
325
- ],
326
- referenceableExits: [],
327
- required: [
328
- "source",
329
- "recipient",
330
- "amount",
331
- "weight",
332
- "max_recipients",
333
- "record_at",
334
- "snapshot",
335
- "rounding_policy",
336
- "withholding_policy",
337
- "correction_policy",
338
- ],
339
- },
340
- };