@hyperscale0/adl 1.0.0-beta.6 → 1.0.0-beta.7

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 CHANGED
@@ -4,7 +4,12 @@ All notable changes to this package are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project
5
5
  follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) from 1.0.0.
6
6
 
7
- ## [Unreleased]
7
+ ## [1.0.0-beta.7] - 2026-09-21
8
+
9
+ - Added optional `subjectRequirements` on operation bindings: subject fields an action collects before dispatch.
10
+ - Added `BoundaryInstruction`, `BoundaryObservation`, `BoundaryOutcome` and `BoundaryAdapter`.
11
+ - Replaced bank profiles and certification with generic binding conformance.
12
+ - Removed the fictional bank example and its status, rail and calendar vocabulary.
8
13
 
9
14
  ## [1.0.0-beta.6] - 2026-09-20
10
15
 
package/README.md CHANGED
@@ -10,19 +10,7 @@
10
10
 
11
11
  # ADL
12
12
 
13
- Hyperscale™ ADL. Declare how a bank or provider behaves behind a contract.
14
-
15
- ADL is the Adapter Declaration Language: the public format for declaring how a bank or provider behaves at the control-plane boundary. Its validator and conformance suite refuse incomplete interface facts before a generic runtime can poll, classify, reconcile, or deduplicate provider results. The three language boundaries stay separate: HSX authors settlement behavior, UDL defines the canonical product contract, and ADL declares how an external provider performs or confirms work behind that contract.
16
-
17
- **Status: beta.** Current release is 1.0.0-beta.1. Pre-1.0 releases can change on minor versions until 1.0.0.
18
-
19
- ## Adapter symmetry
20
-
21
- Hyperscale first-party bank adapters are written against this package and nothing more. There is no private adapter API and no second interface for first-party code. When an adapter needs a seam ADL lacks, the seam is added here, in public, or not at all.
22
-
23
- An adapter is a declaration, not a client. It is a plain object stating what the provider does: which commands exist, how responses classify, what bank status tokens mean, when statements can be fetched, and which reference returns on a debit. The generic execution runtime ships with the platform. An adapter opens no sockets, holds no credentials, and decides nothing about what a payment means.
24
-
25
- Conformance checks a declaration. It does not contact a bank, verify a credential, certify regulatory readiness, or make a Product live.
13
+ ADL declares provider bindings and the instruction and observation contract for external work. HSX authors money behavior; UDL carries that contract into execution. The runtime owns money accounts, reservations and evidence consumption.
26
14
 
27
15
  ## Install
28
16
 
@@ -30,88 +18,29 @@ Conformance checks a declaration. It does not contact a bank, verify a credentia
30
18
  npm install @hyperscale0/adl
31
19
  ```
32
20
 
33
- Pre-1.0 releases are prerelease versions (alpha and beta). Pin an exact version if needed: until 1.0.0, a change to the surface ships as a minor bump, not a major. The package has no runtime dependencies.
21
+ Pre-1.0 releases are prerelease versions (alpha and beta). Pin an exact version if needed: until 1.0.0, a change to the surface ships as a minor bump, not a major. ADL depends on `@hyperscale0/udl` for object field schema validation.
34
22
 
35
23
  ## Adapter declaration
36
24
 
37
- A provider adapter declaration using verified package exports and the repository example profile:
38
-
39
- ```ts
40
- import {
41
- certifyPartnerBankAdapter,
42
- createProviderAdapterRegistry,
43
- type ProviderAdapterVocabulary,
44
- } from "@hyperscale0/adl";
45
- import { meridianProfile } from "./examples/meridian-bank/index.js";
46
-
47
- interface MyVocabulary extends ProviderAdapterVocabulary {
48
- capability: "payout_execution";
49
- operation: "payout.submit";
50
- resource: "payout";
51
- }
52
-
53
- const defineAdapters = createProviderAdapterRegistry<MyVocabulary>();
54
-
55
- export const adapters = defineAdapters([
56
- {
57
- provider: "meridian_bank",
58
- capability: "payout_execution",
59
- egress: "rest",
60
- operationMap: {
61
- "payout.submit": {
62
- operation: "payout.submit",
63
- direction: "tenant_initiated",
64
- envelope: "http_status_error_body",
65
- statusEnquiry: {
66
- keys: "provider_reference",
67
- pathTemplate: "/v2/payments/{providerReference}",
68
- },
69
- obligationKind: "payout_submission",
70
- resourceKind: "payout",
71
- resourceIdPath: "payoutId",
72
- },
73
- },
74
- webhookMap: {},
75
- bindings: { payout: "claim" },
76
- config: {
77
- credentialRef: { source: "environment", name: "MERIDIAN_CREDENTIALS" },
78
- },
79
- profile: meridianProfile,
80
- },
81
- ]);
82
-
83
- for (const adapter of adapters) {
84
- certifyPartnerBankAdapter(adapter);
85
- }
86
- ```
25
+ Use `createProviderAdapterRegistry` to validate `ProviderAdapter` declarations and `adapterConformanceFindings` to report incomplete bindings. `BoundaryAdapter` dispatches immutable `BoundaryInstruction` values and returns explicit `BoundaryObservation` values. HTTP success never confirms settlement.
87
26
 
88
- `createProviderAdapterRegistry` validates at import and preserves literal types. `certifyPartnerBankAdapter` throws with every gap listed at once; an empty finding list is the certification.
27
+ The [generic fixture](src/boundary-fixture.ts) has no network, clock or account policy. Check it from this package:
89
28
 
90
- Check an adapter declaration with conformance:
91
-
92
- ```bash
93
- bun run conformance -- ./examples/meridian-bank
94
- ```
95
-
96
- ```
97
- ok meridian_bank:payout_execution
98
- ok meridian_bank:bank_credit
99
- 2 adapter(s) checked, 0 finding(s) reported
29
+ ```sh
30
+ bun run conformance -- ./src/boundary-fixture.ts
100
31
  ```
101
32
 
102
- The command exits 0 on success and 1 when findings are reported.
103
-
104
33
  ## Documentation
105
34
 
106
35
  - [Authoring guide](docs/authoring-guide.md)
107
- - [Meridian Bank example](examples/meridian-bank)
108
36
  - [Conformance test cases](conformance/cases.json)
37
+ - [Subject adapter fixture](conformance/subject-adapter.ts)
109
38
  - [Manifest JSON schema](spec/manifest.schema.json)
110
39
  - [Contributing](CONTRIBUTING.md)
111
40
 
112
41
  ## Versioning
113
42
 
114
- Semantic versioning from 1.0.0. Until then, prereleases may change the surface on a minor version. Conformance codes are append-only: a released code is never renamed or removed. Removing a value from a vocabulary in `src/vocabulary.ts` is a breaking change documented in [CHANGELOG.md](CHANGELOG.md).
43
+ Semantic versioning from 1.0.0. Until then, prereleases may change the surface on a minor version. Removing a value from a vocabulary in `src/vocabulary.ts` is a breaking change documented in [CHANGELOG.md](CHANGELOG.md).
115
44
 
116
45
  ## License and security
117
46