Start
Founder login

Plan an HSX program or compiled .udl document against a build

Accepts HSX source text or a compiled .udl object. HSX compilation uses catalogRevisionId and the tenant overlay. The operation checks the compiled document, diffs it against the Product's current Build or an empty one, and returns every changed term with its cause, the open agreements that stay on the current Build, the deterministic complexity price and planDigest, which product.recompose takes as expectedPlanDigest. liveBlockedCapabilityIds names capabilities with no live provider admission, and unboundParties names businesses still to bind. The operation reads the build without changing it. Every successful read returns operationId and receiptId for its durable receipt.

post/v1/composer/plan

Request

  • Base URL: https://hyperscale0.ai
  • URL: https://hyperscale0.ai/v1/composer/plan
  • Auth: HTTP bearer

Headers

X-Hyperscale-Environment'sandbox' | 'live'

Request body

tenantIdstring required

Organization tenant ID

catalogRevisionIdstring

Immutable tenant catalog revision used when document is HSX source

productIdstring

Plan against this Product's current build; omit to plan a fresh composition

partyBindingsobject required

Response

Success

operationIdstring required

Hyperscale operation ID

receiptIdstring required

Hyperscale receipt ID

catalogRevisionIdstring nullable required

Immutable tenant catalog revision pinned into a Product build

digeststring required

SHA-256 of the compiled program

declaredPartiesobject required
currentBuildDigeststring nullable required

The Build the plan diffs against; null for a first version

changesProductPlanChange[] required(unresolved $ref)

Every term that changes for agreements opened after the save. Running agreements keep their Build.

termChangesProductPlanTermChange[] required(unresolved $ref)

The std terms behind changes, named as the author wrote them, such as late_forfeit 0% (std) to 50% (program). A current Build saved before terms were recorded lists its toolchain changes as UDL paths only.

exposureDeltaComposerExposureDelta required(unresolved $ref)
runningAgreementsinteger required

Open agreements on the current Build. They stay on it; agreements opened after saving use the new Build.

planDigeststring required

SHA-256 of the canonical plan: Build digests, document digest, changes, term changes, exposure delta, price, capabilities, live blockers and toolchain digests. Send it as expectedPlanDigest.

pricingComposerPlanPricing required(unresolved $ref)
unboundPartiesUnboundProductParty[] required(unresolved $ref)

Businesses the program names with no partyBindings entry, with the attachments that use each. The Product still saves; those actions refuse with subject_party_unbound, and product.promote refuses until every business is bound

liveBlockedCapabilityIdsstring[]

Capabilities in this composition with no live provider admission; present only when the composition is sandbox-only, and the reason product.promote would refuse it

Changes

No recorded changes to this operation across all 1 revision of this API.