@hyperscale0/udl 1.0.0-rc.1 → 1.0.123
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.
- package/CHANGELOG.md +5 -211
- package/LICENSE.md +356 -0
- package/NOTICE.md +8 -0
- package/README.md +14 -106
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +1 -29
- package/dist/canonical.js.map +1 -1
- package/dist/diagnostics.d.ts +13 -165
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +33 -157
- package/dist/diagnostics.js.map +1 -1
- package/dist/field-value.d.ts +5 -0
- package/dist/field-value.d.ts.map +1 -0
- package/dist/field-value.js +85 -0
- package/dist/field-value.js.map +1 -0
- package/dist/finance.d.ts +10 -53
- package/dist/finance.d.ts.map +1 -1
- package/dist/finance.js +252 -536
- package/dist/finance.js.map +1 -1
- package/dist/index.d.ts +9 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +2 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +30 -0
- package/dist/json.js.map +1 -0
- package/dist/limits.d.ts +3 -28
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +5 -31
- package/dist/limits.js.map +1 -1
- package/dist/object-contract.d.ts +140 -0
- package/dist/object-contract.d.ts.map +1 -0
- package/dist/object-contract.js +314 -0
- package/dist/object-contract.js.map +1 -0
- package/dist/object-semantics-schema.d.ts +5710 -0
- package/dist/object-semantics-schema.d.ts.map +1 -0
- package/dist/object-semantics-schema.js +119 -0
- package/dist/object-semantics-schema.js.map +1 -0
- package/dist/object-semantics.d.ts +6 -0
- package/dist/object-semantics.d.ts.map +1 -0
- package/dist/object-semantics.js +279 -0
- package/dist/object-semantics.js.map +1 -0
- package/dist/object-structures.d.ts +4 -0
- package/dist/object-structures.d.ts.map +1 -0
- package/dist/object-structures.js +134 -0
- package/dist/object-structures.js.map +1 -0
- package/dist/reporting-validation.d.ts +8 -0
- package/dist/reporting-validation.d.ts.map +1 -0
- package/dist/reporting-validation.js +252 -0
- package/dist/reporting-validation.js.map +1 -0
- package/dist/reporting.d.ts +477 -0
- package/dist/reporting.d.ts.map +1 -0
- package/dist/reporting.js +169 -0
- package/dist/reporting.js.map +1 -0
- package/dist/schema.d.ts +5572 -2710
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +444 -1121
- package/dist/schema.js.map +1 -1
- package/dist/validation.d.ts +10 -73
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +1109 -2569
- package/dist/validation.js.map +1 -1
- package/docs/assets/brand/manifest.json +30 -0
- package/docs/assets/brand/udl-horizontal-white.svg +1 -0
- package/docs/assets/brand/udl-horizontal.svg +1 -0
- package/docs/assets/brand/udl-stacked-white.svg +1 -0
- package/docs/assets/brand/udl-stacked.svg +1 -0
- package/docs/assets/udl.svg +11 -0
- package/package.json +13 -22
- package/spec/README.md +300 -172
- package/spec/cars.udl.json +249 -0
- package/spec/udl.schema.json +3066 -2242
- package/src/canonical.ts +1 -35
- package/src/diagnostics.ts +76 -209
- package/src/field-value.ts +87 -0
- package/src/finance.ts +327 -832
- package/src/index.ts +18 -95
- package/src/json.ts +34 -0
- package/src/limits.ts +5 -31
- package/src/object-contract.ts +559 -0
- package/src/object-semantics-schema.ts +148 -0
- package/src/object-semantics.ts +378 -0
- package/src/object-structures.ts +255 -0
- package/src/reporting-validation.ts +383 -0
- package/src/reporting.ts +178 -0
- package/src/schema.ts +510 -1277
- package/src/validation.ts +1630 -4545
- package/LICENSE +0 -661
- package/LICENSING.md +0 -51
- package/TRADEMARKS.md +0 -35
- package/conformance/README.md +0 -82
- package/conformance/evolution/action-contract.expected.json +0 -10
- package/conformance/evolution/action-contract.live.udl +0 -44
- package/conformance/evolution/action-contract.next.udl +0 -45
- package/conformance/evolution/product-identity.expected.json +0 -10
- package/conformance/evolution/product-identity.live.udl +0 -55
- package/conformance/evolution/product-identity.next.udl +0 -55
- package/conformance/evolution/version-required.expected.json +0 -10
- package/conformance/evolution/version-required.live.udl +0 -55
- package/conformance/evolution/version-required.next.udl +0 -58
- package/conformance/invalid/action-without-transition.expected.json +0 -10
- package/conformance/invalid/action-without-transition.udl +0 -60
- package/conformance/invalid/agent-description-too-long.expected.json +0 -10
- package/conformance/invalid/agent-description-too-long.udl +0 -57
- package/conformance/invalid/blank-title.expected.json +0 -10
- package/conformance/invalid/blank-title.udl +0 -54
- package/conformance/invalid/composition-dial-duplicate-key.expected.json +0 -10
- package/conformance/invalid/composition-dial-duplicate-key.udl +0 -73
- package/conformance/invalid/depth-budget.expected.json +0 -10
- package/conformance/invalid/depth-budget.udl +0 -49
- package/conformance/invalid/duplicate-subject.expected.json +0 -10
- package/conformance/invalid/duplicate-subject.udl +0 -230
- package/conformance/invalid/forged-effects.expected.json +0 -10
- package/conformance/invalid/forged-effects.udl +0 -76
- package/conformance/invalid/format-version.expected.json +0 -10
- package/conformance/invalid/format-version.udl +0 -54
- package/conformance/invalid/instrument-id-not-snake-case.expected.json +0 -10
- package/conformance/invalid/instrument-id-not-snake-case.udl +0 -54
- package/conformance/invalid/invalid-aggregate-gate-shape.expected.json +0 -10
- package/conformance/invalid/invalid-aggregate-gate-shape.udl +0 -1819
- package/conformance/invalid/invalid-check-duration.expected.json +0 -10
- package/conformance/invalid/invalid-check-duration.udl +0 -219
- package/conformance/invalid/invalid-dial-anchor.expected.json +0 -10
- package/conformance/invalid/invalid-dial-anchor.udl +0 -219
- package/conformance/invalid/invalid-exception-parent-ref.expected.json +0 -10
- package/conformance/invalid/invalid-exception-parent-ref.udl +0 -2487
- package/conformance/invalid/invalid-exposure-shape.expected.json +0 -10
- package/conformance/invalid/invalid-exposure-shape.udl +0 -1819
- package/conformance/invalid/invalid-remainder.expected.json +0 -10
- package/conformance/invalid/invalid-remainder.udl +0 -220
- package/conformance/invalid/invalid-schema-keyword.expected.json +0 -10
- package/conformance/invalid/invalid-schema-keyword.udl +0 -220
- package/conformance/invalid/invalid-utf8.expected.json +0 -10
- package/conformance/invalid/invalid-utf8.udl +0 -1
- package/conformance/invalid/malformed-json.expected.json +0 -10
- package/conformance/invalid/malformed-json.udl +0 -1
- package/conformance/invalid/missing-create-action.expected.json +0 -10
- package/conformance/invalid/missing-create-action.udl +0 -48
- package/conformance/invalid/missing-exception-amount-field.expected.json +0 -10
- package/conformance/invalid/missing-exception-amount-field.udl +0 -2487
- package/conformance/invalid/missing-exception-contract.expected.json +0 -14
- package/conformance/invalid/missing-exception-contract.udl +0 -2523
- package/conformance/invalid/missing-exception-reason-field.expected.json +0 -10
- package/conformance/invalid/missing-exception-reason-field.udl +0 -2487
- package/conformance/invalid/not-an-object.expected.json +0 -10
- package/conformance/invalid/not-an-object.udl +0 -1
- package/conformance/invalid/payout-reconcile-not-a-bank-debit.expected.json +0 -10
- package/conformance/invalid/payout-reconcile-not-a-bank-debit.udl +0 -259
- package/conformance/invalid/quote-freeze-set-incomplete.expected.json +0 -10
- package/conformance/invalid/quote-freeze-set-incomplete.udl +0 -261
- package/conformance/invalid/quote-named-reference-gate.expected.json +0 -10
- package/conformance/invalid/quote-named-reference-gate.udl +0 -50
- package/conformance/invalid/reconcile-named-reference-gate.expected.json +0 -10
- package/conformance/invalid/reconcile-named-reference-gate.udl +0 -50
- package/conformance/invalid/unknown-key.expected.json +0 -10
- package/conformance/invalid/unknown-key.udl +0 -55
- package/conformance/invalid/unknown-reference-gate-field.expected.json +0 -10
- package/conformance/invalid/unknown-reference-gate-field.udl +0 -1819
- package/conformance/invalid/unknown-required-field.expected.json +0 -10
- package/conformance/invalid/unknown-required-field.udl +0 -220
- package/conformance/invalid/unreachable-state.expected.json +0 -10
- package/conformance/invalid/unreachable-state.udl +0 -55
- package/conformance/invalid/wrong-exception-amount-field.expected.json +0 -10
- package/conformance/invalid/wrong-exception-amount-field.udl +0 -2487
- package/conformance/invalid/wrong-exception-reason-field.expected.json +0 -10
- package/conformance/invalid/wrong-exception-reason-field.udl +0 -2487
- package/conformance/valid/agent-description.expected.json +0 -6
- package/conformance/valid/agent-description.udl +0 -66
- package/conformance/valid/cards.expected.json +0 -6
- package/conformance/valid/cards.udl +0 -1579
- package/conformance/valid/commerce-escrow.expected.json +0 -6
- package/conformance/valid/commerce-escrow.udl +0 -1512
- package/conformance/valid/compiled-crowdfunding.expected.json +0 -6
- package/conformance/valid/compiled-crowdfunding.udl +0 -1843
- package/conformance/valid/compiled-watch-club.expected.json +0 -6
- package/conformance/valid/compiled-watch-club.udl +0 -2486
- package/conformance/valid/complete-contract.expected.json +0 -6
- package/conformance/valid/complete-contract.udl +0 -218
- package/conformance/valid/effect-signatures.expected.json +0 -6
- package/conformance/valid/effect-signatures.udl +0 -75
- package/conformance/valid/hand-edited.expected.json +0 -6
- package/conformance/valid/hand-edited.udl +0 -1
- package/conformance/valid/insured-car-marketplace.expected.json +0 -6
- package/conformance/valid/insured-car-marketplace.udl +0 -1050
- package/conformance/valid/insured-travel.expected.json +0 -6
- package/conformance/valid/insured-travel.udl +0 -3469
- package/conformance/valid/minimal.expected.json +0 -6
- package/conformance/valid/minimal.udl +0 -54
- package/conformance/valid/protection.expected.json +0 -6
- package/conformance/valid/protection.udl +0 -1551
- package/conformance/valid/string-escaping.expected.json +0 -6
- package/conformance/valid/string-escaping.udl +0 -54
- package/dist/check-profiles.d.ts +0 -57
- package/dist/check-profiles.d.ts.map +0 -1
- package/dist/check-profiles.js +0 -62
- package/dist/check-profiles.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -184
- package/dist/cli.js.map +0 -1
- package/dist/effects.d.ts +0 -41
- package/dist/effects.d.ts.map +0 -1
- package/dist/effects.js +0 -110
- package/dist/effects.js.map +0 -1
- package/dist/evolution.d.ts +0 -120
- package/dist/evolution.d.ts.map +0 -1
- package/dist/evolution.js +0 -567
- package/dist/evolution.js.map +0 -1
- package/dist/parser.d.ts +0 -4
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -44
- package/dist/parser.js.map +0 -1
- package/docs/README.md +0 -14
- package/docs/guide/01-a-document.md +0 -37
- package/docs/guide/02-money-steps.md +0 -23
- package/docs/guide/03-laws.md +0 -18
- package/docs/guide/04-fees-and-remainder.md +0 -15
- package/docs/guide/05-checks-updates-dials.md +0 -7
- package/docs/guide/06-effects.md +0 -11
- package/docs/guide/07-evolution.md +0 -11
- package/docs/guide/08-implementing.md +0 -13
- package/docs/llms-full.txt +0 -1241
- package/docs/llms.txt +0 -14
- package/docs/reference/canonical.md +0 -16
- package/docs/reference/clauses.md +0 -986
- package/docs/reference/cli.md +0 -22
- package/docs/reference/diagnostics.md +0 -32
- package/skills/udl/SKILL.md +0 -28
- package/src/check-profiles.ts +0 -80
- package/src/cli.ts +0 -196
- package/src/effects.ts +0 -163
- package/src/evolution.ts +0 -965
- package/src/parser.ts +0 -58
package/CHANGELOG.md
CHANGED
|
@@ -1,214 +1,8 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this package
|
|
5
|
-
follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
3
|
+
## 1.0.123
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## [Unreleased]
|
|
12
|
-
|
|
13
|
-
## [1.0.0-rc.1] - 2026-09-02
|
|
14
|
-
|
|
15
|
-
### Added
|
|
16
|
-
|
|
17
|
-
- Stable `UDL####` diagnostics include a category, fix, message, and JSON path.
|
|
18
|
-
- Evolution comparison returns coded issues instead of strings.
|
|
19
|
-
- `canonicalDigest` returns a promise for SHA-256 over canonical UTF-8 bytes.
|
|
20
|
-
- `udl canon` prints canonical bytes or their digest, and `udl explain` prints
|
|
21
|
-
the catalog entry for one code.
|
|
22
|
-
- The conformance runner has evolution pairs and pins canonical digests, issue
|
|
23
|
-
codes, and paths.
|
|
24
|
-
- Eight guides, generated clause, diagnostic, and command references,
|
|
25
|
-
`llms.txt`, `llms-full.txt`, and an agent skill now ship with the package.
|
|
26
|
-
|
|
27
|
-
- `reconcile` declares one expectation about money an action cannot see yet:
|
|
28
|
-
the amount path, currency field, direction, the ref naming the provider-side
|
|
29
|
-
row, exactly one evidence source, a match law, and a window. The match law is
|
|
30
|
-
`exact`, `tolerance` bounded by a `reconcile_tolerance` dial, or `window`. An
|
|
31
|
-
expectation that never matches by the end of its window is carried by the
|
|
32
|
-
named exception child, capped by `maxOpen`. The child is declared and
|
|
33
|
-
validated at admission, not materialized: the transition refuses with
|
|
34
|
-
`state_conflict` naming it and the due sweep re-arms the expectation.
|
|
35
|
-
`UdlReconcile` exposes the clause type.
|
|
36
|
-
- An action may declare a `quote` offer and exactly one other action may spend
|
|
37
|
-
it through `commit`. Both the base money field and the net destination are
|
|
38
|
-
mandatory members of `fixes`, and `fixes` and `updates` may not overlap.
|
|
39
|
-
|
|
40
|
-
### Removed
|
|
41
|
-
|
|
42
|
-
- `requiresSettlement` and `UdlRequiresSettlement` are gone. A payout-owning
|
|
43
|
-
instrument now declares exactly one action carrying `reconcile` against a
|
|
44
|
-
debit statement line, under any match law. There is no wrapper and no alias.
|
|
45
|
-
|
|
46
|
-
### Changed
|
|
47
|
-
|
|
48
|
-
- The npm package includes `docs/` and `skills/`.
|
|
49
|
-
- Derived effect rows for `quote`, `commit`, and `reconcile` change the canonical
|
|
50
|
-
bytes of stored documents that carry `effects` for those clauses.
|
|
51
|
-
- Format 1 now carries every instrument contract clause. Instrument metadata
|
|
52
|
-
includes archetype template, navigation, visibility, dials, caller-parked
|
|
53
|
-
states, and extensible subjects. Actions include check gates, remainder
|
|
54
|
-
arithmetic, field updates, principal policy, and sandbox failure points.
|
|
55
|
-
- Remainder clauses declare their computed money refs, so computed money has
|
|
56
|
-
one authored source.
|
|
57
|
-
- Evolution snapshots protect lifted clauses that affect composition,
|
|
58
|
-
admission, or execution. Navigation, examples, and parked-state reason text
|
|
59
|
-
remain editable presentation.
|
|
60
|
-
|
|
61
|
-
## [1.0.0-beta.1] - 2026-08-29
|
|
62
|
-
|
|
63
|
-
- This is the first beta and has no package behavior changes from
|
|
64
|
-
1.0.0-alpha.5.
|
|
65
|
-
|
|
66
|
-
## [1.0.0-alpha.5] - 2026-08-29
|
|
67
|
-
|
|
68
|
-
### Added
|
|
69
|
-
|
|
70
|
-
- Actions may declare a camelCase `publicAction` as their author-approved public
|
|
71
|
-
name while the action key remains the lifecycle and execution identity. System
|
|
72
|
-
due actions must omit it. `udlPublicActionSchema` is exported for consumers
|
|
73
|
-
that admit the same name outside a complete document.
|
|
74
|
-
- `captureInput` maps declared action input fields into durable receipt refs.
|
|
75
|
-
Declare only input properties from that action and allocate each captured key
|
|
76
|
-
in the instrument's shared ref namespace.
|
|
77
|
-
- `signedSum` computes stored add and subtract subtotals over typed child money,
|
|
78
|
-
then captures one net amount for exactly one payout or instrument transfer. Authors
|
|
79
|
-
must declare the child reference, money field, currency, admitted statuses,
|
|
80
|
-
and explicit negative and zero policies.
|
|
81
|
-
- `requiresExposure` gates a child amount against a stored cap, with an optional
|
|
82
|
-
anchor-specific cap, and `setsAt.marker` records occurrence timestamps that
|
|
83
|
-
cannot drive a due condition or deadline. Use these clauses for bounded
|
|
84
|
-
installment writes and per-anchor occurrence markers.
|
|
85
|
-
- `distribute` allocates one parent money field or remainder-computed money ref
|
|
86
|
-
across typed children selected by status and stored weight. The validator
|
|
87
|
-
resolves the parent, weight, statuses, and pool before admitting the document.
|
|
88
|
-
- Instruments may declare up to four `derivedAmounts`. Each rule computes a declared
|
|
89
|
-
money field as 1 through 9,999 basis points of another declared money field
|
|
90
|
-
with floor rounding. Callers supply neither the result nor a fixed or tiered
|
|
91
|
-
rule, and a rule may not derive a field from itself.
|
|
92
|
-
- Actions may declare one `payout` intent that reads stored money, currency,
|
|
93
|
-
source-account, and beneficiary values and captures the payout reference.
|
|
94
|
-
This does not add an operation to the seven-instruction kernel.
|
|
95
|
-
- A system-only `requiresSettlement` transition may read a captured payout
|
|
96
|
-
reference and capture the durable evidence record that matched it. The
|
|
97
|
-
validator rejects caller input, decision ports, public actions, due and
|
|
98
|
-
deadline triggers, kernel steps, and money moves on that transition.
|
|
99
|
-
- `validateUdlJsonSchema` validates one schema against UDL's sealed JSON Schema
|
|
100
|
-
subset without applying it to a value. `UdlPayout` and
|
|
101
|
-
`UdlRequiresSettlement` expose the new clause types to TypeScript consumers.
|
|
102
|
-
|
|
103
|
-
### Changed
|
|
104
|
-
|
|
105
|
-
- Evolution snapshots freeze public actions, captured receipt input,
|
|
106
|
-
distribution rules, exposure gates, signed sums, computed money clauses, and
|
|
107
|
-
derived-amount arithmetic once a instrument has live instances. Older snapshots
|
|
108
|
-
remain readable when those keys are absent.
|
|
109
|
-
- Evolution snapshots freeze both payout intents and settlement evidence gates.
|
|
110
|
-
- Receipt refs written by the new clauses share the instrument ref namespace with
|
|
111
|
-
kernel captures, input captures, signed sums, subject refs, and unwind refs.
|
|
112
|
-
|
|
113
|
-
## [1.0.0-alpha.4] - 2026-08-26
|
|
114
|
-
|
|
115
|
-
### Removed
|
|
116
|
-
|
|
117
|
-
- `diffUdlEvolution`. It validated both arguments and then handed off to
|
|
118
|
-
`diffValidatedUdlEvolution`, and nothing called it: `udl diff` and the
|
|
119
|
-
engine's composer both take the validated door. Two doors onto one comparison
|
|
120
|
-
meant every caller first had to work out which one it was standing in.
|
|
121
|
-
Validate with `validateUdl` or `assertValidUdl`, then call
|
|
122
|
-
`diffValidatedUdlEvolution`, whose `UdlDocument` parameters keep the compiler
|
|
123
|
-
on the right side of that rule.
|
|
124
|
-
|
|
125
|
-
## [1.0.0-alpha.3] - 2026-08-25
|
|
126
|
-
|
|
127
|
-
### Changed
|
|
128
|
-
|
|
129
|
-
- `diffUdlEvolution` validates both arguments, so a document `validateUdl`
|
|
130
|
-
refuses now throws a `UdlError` carrying that document's issues where
|
|
131
|
-
alpha.2 returned evolution violations. Measured on
|
|
132
|
-
`conformance/valid/protection.udl` with the product renamed to
|
|
133
|
-
`protection_v2` and the live `claim` instrument dropped: alpha.2 returned three
|
|
134
|
-
violations, naming the rename, the removed live instrument, and the version that
|
|
135
|
-
did not move; this release throws `invalid_semantics` at
|
|
136
|
-
`$.instruments[0].aggregateInvariants[0].childInstrumentId`, because another instrument's
|
|
137
|
-
aggregate still references `claim`.
|
|
138
|
-
|
|
139
|
-
Read the throw as a refusal to judge, not as a verdict of no violations.
|
|
140
|
-
A `catch` that treats it as a schema problem and carries on has skipped the
|
|
141
|
-
append-only check entirely, and the candidate above is exactly the kind that
|
|
142
|
-
then sails through: dropping a live instrument is the headline violation the law
|
|
143
|
-
exists to catch. Fix the document, or use `diffValidatedUdlEvolution`.
|
|
144
|
-
|
|
145
|
-
The parameters are `unknown` because the function now accepts input nobody
|
|
146
|
-
has parsed. A caller who wants the compiler checking the call should hold
|
|
147
|
-
two validated documents and use `diffValidatedUdlEvolution`, which keeps the
|
|
148
|
-
`UdlDocument` parameter types.
|
|
149
|
-
|
|
150
|
-
### Fixed
|
|
151
|
-
|
|
152
|
-
- The evolution exports no longer route around the validator. `diffUdlEvolution`
|
|
153
|
-
took typed `UdlDocument` arguments and called neither `validateUdl` nor
|
|
154
|
-
`assertValidUdl` before reaching the diff's comparison key, so a caller
|
|
155
|
-
handing it an object it had never parsed got a `RangeError` off the call
|
|
156
|
-
stack where `validateUdl` returns a `resource_limit` issue for the same
|
|
157
|
-
object. It takes `unknown` now and validates both arguments.
|
|
158
|
-
- The comparison key behind every diff carries the same depth budget the
|
|
159
|
-
validator applies to a document (`UDL_LIMITS.maxDepth`, 24 levels; the
|
|
160
|
-
deepest conformance document reaches 12). This is what protects
|
|
161
|
-
`diffInstrumentEvolution`, which takes snapshots no validator has seen, and it
|
|
162
|
-
closes the case where `snapshotUdlInstrument` returns a cyclic snapshot that only
|
|
163
|
-
detonates when something later stringifies it.
|
|
164
|
-
|
|
165
|
-
### Added
|
|
166
|
-
|
|
167
|
-
- `diffValidatedUdlEvolution`, the same comparison for a caller holding two
|
|
168
|
-
documents `validateUdl` has already admitted. It keeps the `UdlDocument`
|
|
169
|
-
parameter types, and it is the door for judging a candidate that is not yet
|
|
170
|
-
valid on its own. It also skips a validation the caller has already paid
|
|
171
|
-
for: on the commerce-escrow fixture `validateUdl` costs 0.57 ms against the
|
|
172
|
-
diff's 0.38 ms, so `udl diff`, which parses both files first, takes this
|
|
173
|
-
door rather than validating four documents to compare two.
|
|
174
|
-
|
|
175
|
-
## [1.0.0-alpha.2] - 2026-08-23
|
|
176
|
-
|
|
177
|
-
### Fixed
|
|
178
|
-
|
|
179
|
-
- `bin` points at the built JavaScript; alpha.1's registry metadata pointed at
|
|
180
|
-
TypeScript source. npm builds the packument from package.json as it sits on
|
|
181
|
-
disk after `postpack`, so the pack-time rewrite never reached `bin`, and
|
|
182
|
-
every install linked `.bin/udl` to `src/cli.ts`, which Node refuses to
|
|
183
|
-
execute.
|
|
184
|
-
|
|
185
|
-
### Changed
|
|
186
|
-
|
|
187
|
-
- Licensed AGPL-3.0-only with a commercial license from Hyperscale LLC;
|
|
188
|
-
copyright holder Hyperscale LLC; repository renamed to
|
|
189
|
-
`hyperscale0/hyperscale-udl`.
|
|
190
|
-
|
|
191
|
-
## [1.0.0-alpha.1] - 2026-08-22
|
|
192
|
-
|
|
193
|
-
First public release. Format version 1.
|
|
194
|
-
|
|
195
|
-
### Added
|
|
196
|
-
|
|
197
|
-
- `spec/udl.schema.json`, JSON Schema 2020-12 generated from the grammar, plus
|
|
198
|
-
`spec/README.md` carrying the ten laws, the canonical form, and the issue
|
|
199
|
-
codes.
|
|
200
|
-
- `conformance/`, the format's semantic spec as data: 7 valid documents with
|
|
201
|
-
their canonical bytes and 11 refused documents with the issue codes and JSON
|
|
202
|
-
paths they must report, runnable from any language.
|
|
203
|
-
- The `udl` command: `udl validate`, `udl fmt [--write]`, and `udl diff`.
|
|
204
|
-
- `bun run spec:check`, which fails when the committed schema drifts from the
|
|
205
|
-
grammar it was generated from.
|
|
206
|
-
|
|
207
|
-
[Unreleased]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-rc.1...HEAD
|
|
208
|
-
[1.0.0-rc.1]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-beta.1...v1.0.0-rc.1
|
|
209
|
-
[1.0.0-beta.1]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.5...v1.0.0-beta.1
|
|
210
|
-
[1.0.0-alpha.5]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.4...v1.0.0-alpha.5
|
|
211
|
-
[1.0.0-alpha.4]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.3...v1.0.0-alpha.4
|
|
212
|
-
[1.0.0-alpha.3]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.2...v1.0.0-alpha.3
|
|
213
|
-
[1.0.0-alpha.2]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.1...v1.0.0-alpha.2
|
|
214
|
-
[1.0.0-alpha.1]: https://github.com/hyperscale0/hyperscale-udl/releases/tag/v1.0.0-alpha.1
|
|
5
|
+
First unified release. Every public Hyperscale package now ships under one
|
|
6
|
+
version that follows the platform release number, so release 123 is 1.0.123.
|
|
7
|
+
The compiled contract format is UDL 1 and the HSX header-manifest edition is
|
|
8
|
+
HSX 1.
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
# Hyperscale Intellectual Property and Copyright License
|
|
2
|
+
|
|
3
|
+
Version 1.0, effective 18 September 2026. This text is under review by
|
|
4
|
+
Hyperscale LLC's counsel. Until a revised version replaces it, it states the
|
|
5
|
+
terms on which Hyperscale makes the Software available.
|
|
6
|
+
|
|
7
|
+
SPDX identifier: `LicenseRef-Hyperscale-IPCL-1.0`
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2026 Hyperscale LLC. All rights reserved.
|
|
10
|
+
|
|
11
|
+
This is not an open source license. The Software is proprietary. Hyperscale
|
|
12
|
+
publishes some of it so that you can read it, learn it, build on the Hyperscale
|
|
13
|
+
platform with it, and verify what Hyperscale runs. Publishing is not a gift of
|
|
14
|
+
rights. Every right not written in this License stays with Hyperscale.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. Acceptance
|
|
19
|
+
|
|
20
|
+
By accessing, viewing, downloading, cloning, installing, copying, compiling,
|
|
21
|
+
running, or otherwise using any part of the Software, you accept this License.
|
|
22
|
+
If you do not accept it, do none of those things. If you act for an
|
|
23
|
+
organisation, you confirm you have authority to bind it, and "you" means that
|
|
24
|
+
organisation and every person acting for it.
|
|
25
|
+
|
|
26
|
+
## 2. Definitions
|
|
27
|
+
|
|
28
|
+
"Hyperscale" means Hyperscale LLC, a limited liability company organised under
|
|
29
|
+
the laws of the Kingdom of Saudi Arabia, and its successors and assigns.
|
|
30
|
+
|
|
31
|
+
"Software" means every work Hyperscale distributes under this License, in any
|
|
32
|
+
form: source code, compiled or bundled code, schemas, grammars, standard
|
|
33
|
+
libraries, headers, example programs, fixtures, conformance cases, generated
|
|
34
|
+
artifacts, documentation, designs, images, and data files, and every update,
|
|
35
|
+
version, or part of any of them.
|
|
36
|
+
|
|
37
|
+
"Specification" means the parts of the Software that Hyperscale designates as a
|
|
38
|
+
Specification in the applicable Notice: a schema, grammar, wire format,
|
|
39
|
+
manifest format, vocabulary, or interface description, together with its
|
|
40
|
+
documentation and published example inputs and outputs.
|
|
41
|
+
|
|
42
|
+
"Hyperscale Platform" means the products and services Hyperscale offers or
|
|
43
|
+
operates, in any form and under any name, including Hyperscale Arc, Architect,
|
|
44
|
+
Composer, the Hyperscale engine, portals, registries, hosted compilers, hosted
|
|
45
|
+
MCP servers, generated SDKs, and every successor product.
|
|
46
|
+
|
|
47
|
+
"Notice" means the file named `NOTICE` or `NOTICE.md`, or the license
|
|
48
|
+
statement in a package manifest, that accompanies a copy of the Software and
|
|
49
|
+
states which Tier under section 4 applies to it.
|
|
50
|
+
|
|
51
|
+
"Tier" means one of the three permission levels in section 4.
|
|
52
|
+
|
|
53
|
+
"Derivative Work" means any work that is based on, incorporates, translates,
|
|
54
|
+
adapts, ports, reimplements, transforms, or is derived from the Software or any
|
|
55
|
+
part of it, in any language or form, including a work produced by studying the
|
|
56
|
+
Software and then writing new code that performs the same function.
|
|
57
|
+
|
|
58
|
+
"Competing Product" means any product, service, library, platform, or tool,
|
|
59
|
+
whether or not sold, that performs or is offered as performing substantially the
|
|
60
|
+
same function as the Hyperscale Platform or any part of it, including: a
|
|
61
|
+
language, compiler, or checker for financial programs; an engine, runtime, or
|
|
62
|
+
ledger that executes financial product definitions; a framework for declaring,
|
|
63
|
+
conforming, or operating bank or payment provider adapters; a service that
|
|
64
|
+
generates APIs, SDKs, or agent tools from a financial product definition; or a
|
|
65
|
+
hosted or embedded version of any of those. A product you build on the
|
|
66
|
+
Hyperscale Platform for your own customers is not a Competing Product.
|
|
67
|
+
|
|
68
|
+
"Hosted Use" means making the functionality of the Software available to any
|
|
69
|
+
third party over a network, whether as a service, an API, an agent tool, an
|
|
70
|
+
embedded feature, or otherwise.
|
|
71
|
+
|
|
72
|
+
"Contribution" means any work of authorship you intentionally submit to
|
|
73
|
+
Hyperscale for inclusion in the Software, by any means, unless you clearly mark
|
|
74
|
+
it "not a contribution".
|
|
75
|
+
|
|
76
|
+
"Marks" means the names, logos, and trade dress of Hyperscale and its products,
|
|
77
|
+
including "Hyperscale", "Hyperscale Arc", "HSX", "UDL", "ADL", "Architect",
|
|
78
|
+
"Composer", the `hyperscale0` GitHub organisation, the `@hyperscale0` npm
|
|
79
|
+
scope, and every confusingly similar name or sign.
|
|
80
|
+
|
|
81
|
+
"Confidential Material" means Software distributed under Tier 3, and any part
|
|
82
|
+
of the Software that Hyperscale has not made publicly available.
|
|
83
|
+
|
|
84
|
+
## 3. Ownership
|
|
85
|
+
|
|
86
|
+
Hyperscale owns all right, title, and interest in the Software, the
|
|
87
|
+
Specifications, the Marks, and every Derivative Work Hyperscale creates,
|
|
88
|
+
including all copyright, patent, trade secret, design, database, and moral
|
|
89
|
+
rights, worldwide. The Software is licensed, not sold. This License transfers
|
|
90
|
+
no ownership of anything to you. Your possession of a copy, in any form, gives
|
|
91
|
+
you no right in it beyond what this License states.
|
|
92
|
+
|
|
93
|
+
The Specifications describe how the Hyperscale Platform works. The design
|
|
94
|
+
choices they record, the vocabulary they fix, the structure of the financial
|
|
95
|
+
programs, products, ledgers, and adapters they define, and the standard library
|
|
96
|
+
of financial instruments Hyperscale publishes are Hyperscale's intellectual
|
|
97
|
+
property. Publication does not place any of it in the public domain.
|
|
98
|
+
|
|
99
|
+
## 4. Tiers of permission
|
|
100
|
+
|
|
101
|
+
Every copy of the Software carries a Notice naming its Tier. If a copy carries
|
|
102
|
+
no Notice, Tier 3 applies. A permission granted at a higher-numbered Tier is
|
|
103
|
+
never implied at a lower-numbered one.
|
|
104
|
+
|
|
105
|
+
### Tier 1: Open Specification
|
|
106
|
+
|
|
107
|
+
For Software designated as a Specification, Hyperscale grants you a worldwide,
|
|
108
|
+
non-exclusive, non-transferable, royalty-free, revocable license to:
|
|
109
|
+
|
|
110
|
+
1. read, copy, and redistribute the Specification, unmodified and with all
|
|
111
|
+
notices intact;
|
|
112
|
+
2. write programs, documents, and data that conform to the Specification, and
|
|
113
|
+
use them in any way, including commercially;
|
|
114
|
+
3. write and distribute software that reads, writes, validates, or displays
|
|
115
|
+
data conforming to the Specification, solely for the purpose of using or
|
|
116
|
+
interoperating with the Hyperscale Platform or with products built on it;
|
|
117
|
+
4. quote reasonable portions of the Specification in documentation, teaching,
|
|
118
|
+
and commentary, with attribution to Hyperscale.
|
|
119
|
+
|
|
120
|
+
Tier 1 does not permit you to build a Competing Product, to publish a modified
|
|
121
|
+
Specification under any name that includes or resembles a Mark, or to claim
|
|
122
|
+
conformance or compatibility except as section 8 allows.
|
|
123
|
+
|
|
124
|
+
### Tier 2: Source Available
|
|
125
|
+
|
|
126
|
+
For Software designated as Source Available, Hyperscale grants you a worldwide,
|
|
127
|
+
non-exclusive, non-transferable, non-sublicensable, royalty-free, revocable
|
|
128
|
+
license to:
|
|
129
|
+
|
|
130
|
+
1. view, download, and study the source;
|
|
131
|
+
2. install, compile, and run the Software, unmodified or modified, on systems
|
|
132
|
+
you control, for the purpose of building, testing, operating, and
|
|
133
|
+
maintaining your own products on the Hyperscale Platform;
|
|
134
|
+
3. modify the Software for that purpose and keep the modification for your own
|
|
135
|
+
internal use;
|
|
136
|
+
4. submit modifications to Hyperscale as Contributions;
|
|
137
|
+
5. redistribute unmodified copies of the Software, in the form Hyperscale
|
|
138
|
+
published them, with all notices and this License intact, for example by
|
|
139
|
+
mirroring a package or vendoring a dependency.
|
|
140
|
+
|
|
141
|
+
Tier 2 does not permit Hosted Use, distribution of modified copies,
|
|
142
|
+
distribution of compiled or bundled forms other than those Hyperscale
|
|
143
|
+
published, or any use in or toward a Competing Product.
|
|
144
|
+
|
|
145
|
+
### Tier 3: Confidential
|
|
146
|
+
|
|
147
|
+
For Software designated as Confidential, or carrying no Notice, Hyperscale
|
|
148
|
+
grants you only the license written in the agreement under which you received
|
|
149
|
+
it. If there is no such agreement, you have no license, and you must not use,
|
|
150
|
+
copy, disclose, or retain the Software. Confidential Material includes generated
|
|
151
|
+
SDKs, downloadable product artifacts, private repositories, and anything you
|
|
152
|
+
obtain through a portal, a registry, or a signed-in session. You may use
|
|
153
|
+
Confidential Material only for your own organisation's Hyperscale integration,
|
|
154
|
+
must not publish it to any public repository or package registry, must not
|
|
155
|
+
disclose it beyond personnel and contractors who need it and are bound by
|
|
156
|
+
confidentiality at least as protective as this License, and must destroy it on
|
|
157
|
+
request or when your access ends.
|
|
158
|
+
|
|
159
|
+
## 5. Restrictions
|
|
160
|
+
|
|
161
|
+
Whatever the Tier, you must not, and must not help or allow anyone else to:
|
|
162
|
+
|
|
163
|
+
1. build, contribute to, market, sell, or operate a Competing Product using
|
|
164
|
+
the Software, a Derivative Work, or knowledge gained from the Software;
|
|
165
|
+
2. create a Derivative Work except as Tier 2 permits for internal use;
|
|
166
|
+
3. reimplement, port, translate, or clone the Software or any part of it, in
|
|
167
|
+
any programming language, whether by copying or by studying it and
|
|
168
|
+
rewriting it;
|
|
169
|
+
4. offer the Software or a Derivative Work for Hosted Use;
|
|
170
|
+
5. sublicense, sell, rent, lease, lend, or assign the Software or any right in
|
|
171
|
+
it;
|
|
172
|
+
6. remove, hide, or alter any copyright, trademark, license, or attribution
|
|
173
|
+
notice, or misstate the origin of the Software;
|
|
174
|
+
7. reverse engineer, decompile, disassemble, or unminify any compiled, bundled,
|
|
175
|
+
or generated form of the Software, except where a law forbids this
|
|
176
|
+
restriction and only to the extent it does;
|
|
177
|
+
8. circumvent, disable, or evade any license check, access control, rate limit,
|
|
178
|
+
key, or technical protection in the Software or the Hyperscale Platform;
|
|
179
|
+
9. use the Software, the Specifications, or any output of the Hyperscale
|
|
180
|
+
Platform as training, fine-tuning, evaluation, or retrieval data for any
|
|
181
|
+
machine-learning model, or to generate a Competing Product with such a
|
|
182
|
+
model, without Hyperscale's prior written consent;
|
|
183
|
+
10. use the Software to benchmark or compare the Hyperscale Platform in any
|
|
184
|
+
publication without Hyperscale's prior written consent;
|
|
185
|
+
11. register, apply for, or claim any patent, trademark, design, or domain
|
|
186
|
+
name that covers or resembles the Software, the Specifications, or the
|
|
187
|
+
Marks;
|
|
188
|
+
12. use the Software in violation of any law, sanction, or export control;
|
|
189
|
+
13. use the Software for any purpose this License does not expressly permit.
|
|
190
|
+
|
|
191
|
+
## 6. Contributions
|
|
192
|
+
|
|
193
|
+
You are not required to contribute. If you do, then on submission you grant
|
|
194
|
+
Hyperscale, and everyone who receives the Software from Hyperscale, a
|
|
195
|
+
perpetual, worldwide, non-exclusive, irrevocable, royalty-free license to use,
|
|
196
|
+
reproduce, modify, distribute, sublicense, and relicense your Contribution
|
|
197
|
+
under any terms, including this License and any commercial license, and you
|
|
198
|
+
grant Hyperscale a patent license of the same scope covering the claims your
|
|
199
|
+
Contribution alone or in combination with the Software would infringe. You
|
|
200
|
+
confirm you have the right to make these grants and that the Contribution is
|
|
201
|
+
your own work or that you have permission to submit it. Hyperscale may require
|
|
202
|
+
a signed contributor agreement before merging any Contribution and may decline
|
|
203
|
+
any Contribution for any reason. Feedback, suggestions, and ideas you send
|
|
204
|
+
about the Software are not confidential and Hyperscale may use them freely.
|
|
205
|
+
|
|
206
|
+
## 7. Marks
|
|
207
|
+
|
|
208
|
+
This License grants no right to any Mark. You may refer to the Software and to
|
|
209
|
+
the Hyperscale Platform by name to describe truthfully that your product uses
|
|
210
|
+
or integrates with them. You must not use any Mark as or in the name of your
|
|
211
|
+
product, company, package, domain, or repository, in a logo, or in any way that
|
|
212
|
+
suggests Hyperscale made, sponsors, certifies, or endorses your work.
|
|
213
|
+
|
|
214
|
+
## 8. Conformance and compatibility claims
|
|
215
|
+
|
|
216
|
+
You may state that your product "conforms to" or "is compatible with" a named
|
|
217
|
+
Specification version only if, at the time of the claim, your product
|
|
218
|
+
validates against the Specification exactly as Hyperscale published it, using
|
|
219
|
+
Hyperscale's published example inputs unmodified, and you built the product
|
|
220
|
+
under Tier 1 for the purpose of interoperating with the Hyperscale Platform.
|
|
221
|
+
The claim is a statement about your product and never an endorsement by
|
|
222
|
+
Hyperscale. Hyperscale may require you to withdraw a claim it considers false.
|
|
223
|
+
No claim of conformance permits a Competing Product.
|
|
224
|
+
|
|
225
|
+
## 9. Commercial license
|
|
226
|
+
|
|
227
|
+
Hyperscale offers a commercial license to organisations whose use falls
|
|
228
|
+
outside this License, including Hosted Use, distribution of modified copies,
|
|
229
|
+
embedding in a proprietary product, or any use a procurement policy cannot
|
|
230
|
+
accept under these terms. Ask through <https://hyperscale0.ai>. Nothing in this
|
|
231
|
+
section grants any right until a commercial agreement is signed.
|
|
232
|
+
|
|
233
|
+
## 10. Prior releases
|
|
234
|
+
|
|
235
|
+
Any version of the Software that Hyperscale released under a different license
|
|
236
|
+
remains available under that license for that version only. This License
|
|
237
|
+
applies to every version that carries it and to every later version unless
|
|
238
|
+
that version states otherwise. Nothing in this License narrows a right you
|
|
239
|
+
already hold in a prior version under its own license.
|
|
240
|
+
|
|
241
|
+
## 11. Term and termination
|
|
242
|
+
|
|
243
|
+
This License takes effect when you accept it and lasts until terminated. It
|
|
244
|
+
terminates automatically, with no notice, the moment you breach section 5 or
|
|
245
|
+
section 7. For any other breach, it terminates thirty days after Hyperscale
|
|
246
|
+
notifies you, unless you cure the breach within that period and it is the
|
|
247
|
+
first notice you have received. Hyperscale may also terminate this License for
|
|
248
|
+
convenience for any Tier 3 material, on notice. On termination you must stop
|
|
249
|
+
all use, destroy every copy in your possession or control, including
|
|
250
|
+
Derivative Works, and confirm destruction in writing if asked. Sections 3, 5,
|
|
251
|
+
6, 7, 11, 12, 13, 14, 15, and 16 survive termination.
|
|
252
|
+
|
|
253
|
+
## 12. Disclaimer of warranty
|
|
254
|
+
|
|
255
|
+
The Software is provided "as is" and "as available". Hyperscale makes no
|
|
256
|
+
warranty of any kind, express, implied, or statutory, including any warranty
|
|
257
|
+
of merchantability, fitness for a particular purpose, title, non-infringement,
|
|
258
|
+
accuracy, or that the Software will be error-free or uninterrupted. Hyperscale
|
|
259
|
+
is not a bank, does not hold money, and gives no assurance that any financial
|
|
260
|
+
program, product, or adapter written with the Software is lawful, licensed,
|
|
261
|
+
or fit for any real-world financial use in any jurisdiction.
|
|
262
|
+
|
|
263
|
+
## 13. Limitation of liability
|
|
264
|
+
|
|
265
|
+
To the fullest extent the law allows, Hyperscale is not liable to you or any
|
|
266
|
+
third party for any indirect, incidental, special, consequential, exemplary, or
|
|
267
|
+
punitive damages, or for any loss of profit, revenue, data, goodwill, or
|
|
268
|
+
business opportunity, arising from or related to the Software or this
|
|
269
|
+
License, however caused and under any theory of liability, even if advised of
|
|
270
|
+
the possibility. Hyperscale's total liability under this License is limited to
|
|
271
|
+
one thousand Saudi riyals (SAR 1,000) or the amount you paid Hyperscale for the
|
|
272
|
+
Software in the twelve months before the claim, whichever is greater.
|
|
273
|
+
|
|
274
|
+
## 14. Indemnity
|
|
275
|
+
|
|
276
|
+
You will defend, indemnify, and hold harmless Hyperscale, its owners,
|
|
277
|
+
officers, employees, and agents from every claim, loss, damage, liability,
|
|
278
|
+
cost, and expense, including reasonable legal fees, arising from your use of
|
|
279
|
+
the Software, your Derivative Works, your products, or your breach of this
|
|
280
|
+
License.
|
|
281
|
+
|
|
282
|
+
## 15. Remedies and enforcement
|
|
283
|
+
|
|
284
|
+
You acknowledge that the Software embodies valuable trade secrets and
|
|
285
|
+
intellectual property of Hyperscale, that a breach of section 3, 4, 5, or 7
|
|
286
|
+
would cause Hyperscale irreparable harm that money alone cannot repair, and
|
|
287
|
+
that Hyperscale is entitled to injunctive and other equitable relief in any
|
|
288
|
+
court of competent jurisdiction to stop or prevent a breach, without posting a
|
|
289
|
+
bond and in addition to every other remedy. You will pay Hyperscale's
|
|
290
|
+
reasonable legal fees and costs in any action in which Hyperscale enforces
|
|
291
|
+
this License and prevails on any claim. Hyperscale may bring an action in the
|
|
292
|
+
courts named in section 16 or in any jurisdiction where the Software is used,
|
|
293
|
+
a Derivative Work is made, or a Competing Product is offered, and you consent
|
|
294
|
+
to the jurisdiction of those courts.
|
|
295
|
+
|
|
296
|
+
## 16. Governing law and venue
|
|
297
|
+
|
|
298
|
+
This License is governed by the laws of the Kingdom of Saudi Arabia, including
|
|
299
|
+
the Copyright Law issued by Royal Decree M/41 and its implementing
|
|
300
|
+
regulations, without regard to conflict-of-law rules. The competent courts of
|
|
301
|
+
Riyadh have exclusive jurisdiction over any dispute arising from this License,
|
|
302
|
+
subject to Hyperscale's right under section 15 to enforce elsewhere. The
|
|
303
|
+
Berne Convention and the TRIPS Agreement apply to the protection of the
|
|
304
|
+
Software in every member state. Where a law of another jurisdiction gives you
|
|
305
|
+
a right this License cannot exclude, that right is preserved to the minimum
|
|
306
|
+
extent that law requires and no further.
|
|
307
|
+
|
|
308
|
+
## 17. General
|
|
309
|
+
|
|
310
|
+
1. This License is the entire agreement between you and Hyperscale about the
|
|
311
|
+
Software under its Tier, and replaces every earlier or contemporaneous
|
|
312
|
+
understanding, except a signed commercial agreement, which prevails where
|
|
313
|
+
the two conflict.
|
|
314
|
+
2. If any provision is held unenforceable, it is limited to the minimum
|
|
315
|
+
extent necessary and the rest stays in force.
|
|
316
|
+
3. Hyperscale's failure or delay in enforcing any provision is not a waiver.
|
|
317
|
+
A waiver is effective only in writing signed by Hyperscale.
|
|
318
|
+
4. You may not assign or transfer this License or any right under it, by
|
|
319
|
+
operation of law or otherwise, and any attempt is void. Hyperscale may
|
|
320
|
+
assign it freely.
|
|
321
|
+
5. Hyperscale may publish new versions of this License. Each version of the
|
|
322
|
+
Software carries the License version it was released under, and a new
|
|
323
|
+
License version applies only to Software that carries it.
|
|
324
|
+
6. This License is written in English. Hyperscale may publish an Arabic
|
|
325
|
+
translation. Where a court requires an Arabic text, the certified Arabic
|
|
326
|
+
translation Hyperscale provides is the text of record; in every other case
|
|
327
|
+
the English text governs.
|
|
328
|
+
7. Nothing in this License creates a partnership, joint venture, agency, or
|
|
329
|
+
employment relationship between you and Hyperscale.
|
|
330
|
+
8. Notices to Hyperscale go to the address published at
|
|
331
|
+
<https://hyperscale0.ai/legal>.
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Applying this License
|
|
336
|
+
|
|
337
|
+
A copy of the Software must carry this file as `LICENSE.md` and a `NOTICE.md`
|
|
338
|
+
that states the Tier. The form is:
|
|
339
|
+
|
|
340
|
+
```
|
|
341
|
+
This work is licensed under the Hyperscale Intellectual Property and
|
|
342
|
+
Copyright License, version 1.0 (LicenseRef-Hyperscale-IPCL-1.0).
|
|
343
|
+
Copyright (c) 2026 Hyperscale LLC. All rights reserved.
|
|
344
|
+
|
|
345
|
+
Tier: 2 (Source Available)
|
|
346
|
+
Specifications under Tier 1 in this repository: spec/, docs/grammar.md
|
|
347
|
+
|
|
348
|
+
Not open source. See LICENSE.md.
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
A package manifest states `"license": "SEE LICENSE IN LICENSE.md"`. A source
|
|
352
|
+
file may carry the one-line header:
|
|
353
|
+
|
|
354
|
+
```
|
|
355
|
+
// Copyright (c) 2026 Hyperscale LLC. Licensed under LicenseRef-Hyperscale-IPCL-1.0. Not open source.
|
|
356
|
+
```
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
This work is licensed under the Hyperscale Intellectual Property and
|
|
2
|
+
Copyright License, version 1.0 (`LicenseRef-Hyperscale-IPCL-1.0`).
|
|
3
|
+
Copyright (c) 2026 Hyperscale LLC. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Tier: 2 (Source Available)
|
|
6
|
+
Specifications under Tier 1 (Open Specification) in this repository: spec/, docs/
|
|
7
|
+
|
|
8
|
+
Not open source. See [LICENSE.md](LICENSE.md).
|