@lapxo/bound 0.2.5 → 0.2.6

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 (237) hide show
  1. package/CITATION.cff +1 -1
  2. package/README.md +20 -3
  3. package/TARGET.bound +75 -42
  4. package/dist/cli/accept.js +59 -70
  5. package/dist/cli/act-result.js +3 -3
  6. package/dist/cli/args.js +1 -1
  7. package/dist/cli/host.js +1 -1
  8. package/dist/cli/native.js +1 -1
  9. package/dist/cli/pass.js +22 -21
  10. package/dist/cli/place.js +6 -6
  11. package/dist/cli/release-result.js +3 -3
  12. package/dist/cli/retained-judgment.js +1 -1
  13. package/dist/cli/standing-result.js +3 -3
  14. package/dist/cli/takes.js +10 -10
  15. package/dist/cli/verb.js +79 -77
  16. package/dist/engine/computation.js +1 -1
  17. package/dist/engine/index.js +1 -1
  18. package/dist/engine/object.js +1 -1
  19. package/dist/engine/ports.js +1 -1
  20. package/dist/fold/admission-history.js +1 -1
  21. package/dist/fold/ceilings.js +1 -1
  22. package/dist/fold/claims.js +2 -2
  23. package/dist/fold/closed.js +1 -1
  24. package/dist/fold/configures.js +1 -1
  25. package/dist/fold/digests.js +10 -10
  26. package/dist/fold/evidence.js +1 -1
  27. package/dist/fold/keys.js +3 -3
  28. package/dist/fold/laid.js +1 -1
  29. package/dist/fold/observed.js +27 -26
  30. package/dist/fold/opened.js +1 -1
  31. package/dist/fold/own.js +3 -3
  32. package/dist/fold/paid.js +1 -1
  33. package/dist/fold/place-inputs.js +1 -1
  34. package/dist/fold/places.js +1 -1
  35. package/dist/fold/reach.js +1 -1
  36. package/dist/fold/readers.js +1 -1
  37. package/dist/fold/region.js +1 -1
  38. package/dist/fold/release-policy.js +1 -1
  39. package/dist/fold/resolved.js +1 -1
  40. package/dist/fold/roles.js +1 -1
  41. package/dist/fold/shards.js +8 -8
  42. package/dist/fold/signed.js +3 -3
  43. package/dist/fold/signers.js +1 -1
  44. package/dist/fold/stranger.js +6 -6
  45. package/dist/fold/wire.js +1 -1
  46. package/dist/fold/zoom.js +1 -1
  47. package/dist/host/act-cost.js +1 -1
  48. package/dist/host/adapters/keys/ed25519.js +1 -1
  49. package/dist/host/adapters/transport/http.js +1 -1
  50. package/dist/host/admitted-place.js +1 -1
  51. package/dist/host/call-context.js +1 -1
  52. package/dist/host/capsule-process.js +1 -1
  53. package/dist/host/capsule.js +1 -1
  54. package/dist/host/cell-receipts.js +1 -1
  55. package/dist/host/command-server.js +4 -0
  56. package/dist/host/content-store.js +1 -1
  57. package/dist/host/contextual-place.js +1 -1
  58. package/dist/host/digest.js +1 -1
  59. package/dist/host/host-controls.js +1 -1
  60. package/dist/host/in-process-act.js +1 -1
  61. package/dist/host/in-process-context.js +1 -1
  62. package/dist/host/in-process-root.js +1 -1
  63. package/dist/host/in-process.js +1 -1
  64. package/dist/host/index.d.ts +1 -1
  65. package/dist/host/index.js +1 -1
  66. package/dist/host/located.js +6 -6
  67. package/dist/host/native/authority-card-view.js +5 -0
  68. package/dist/host/native/authority-card.js +1 -0
  69. package/dist/host/native/command.js +1 -1
  70. package/dist/host/native/custody.js +1 -1
  71. package/dist/host/native/generated-custodian.js +1 -1
  72. package/dist/host/native/installed-package.d.ts +1 -0
  73. package/dist/host/native/installed-package.js +5 -0
  74. package/dist/host/native/module-delivery.d.ts +1 -1
  75. package/dist/host/native/module-delivery.js +1 -1
  76. package/dist/host/native/module-inventory.js +2 -0
  77. package/dist/host/native/module-syntax.js +1 -1
  78. package/dist/host/native/native-binary.js +1 -1
  79. package/dist/host/native/probes.js +1 -0
  80. package/dist/host/native/reading-witness-admission.js +5 -0
  81. package/dist/host/native/reading.js +1 -1
  82. package/dist/host/native/route.js +1 -1
  83. package/dist/host/native-place-state.js +1 -0
  84. package/dist/host/native-receiver.js +1 -1
  85. package/dist/host/objects.js +1 -1
  86. package/dist/host/persistent-host.js +1 -0
  87. package/dist/host/physical-lines.d.ts +1 -0
  88. package/dist/host/physical-lines.js +1 -0
  89. package/dist/host/place-act-transaction.js +1 -1
  90. package/dist/host/place-clock-selection.js +1 -1
  91. package/dist/host/ports/local-act.js +1 -1
  92. package/dist/host/ports/place-act.js +1 -1
  93. package/dist/host/ports/store.js +1 -1
  94. package/dist/host/ports/transport.js +1 -1
  95. package/dist/host/profile-composition.d.ts +1 -0
  96. package/dist/host/profile-composition.js +2 -0
  97. package/dist/host/reading-closures.js +6 -6
  98. package/dist/host/reading-context.js +1 -1
  99. package/dist/host/reading-identity.js +2 -2
  100. package/dist/host/reading-preparation.js +1 -1
  101. package/dist/host/reference-authenticated.d.ts +1 -1
  102. package/dist/host/reference-authenticated.js +1 -1
  103. package/dist/host/reference-export.js +1 -1
  104. package/dist/host/reference-native-api.d.ts +1 -1
  105. package/dist/host/reference-native-api.js +1 -1
  106. package/dist/host/reference-native.js +1 -1
  107. package/dist/host/reference-standing.js +1 -1
  108. package/dist/host/reference.js +1 -1
  109. package/dist/host/refusals.js +2 -2
  110. package/dist/host/release.js +1 -1
  111. package/dist/host/root-clock-source.js +1 -1
  112. package/dist/host/selected-capsules.js +1 -1
  113. package/dist/host/selected-topos.js +1 -1
  114. package/dist/host/signing.js +2 -2
  115. package/dist/host/source-content.js +1 -1
  116. package/dist/host/standing-carrier.js +1 -1
  117. package/dist/host/standing-projection.js +1 -1
  118. package/dist/host/timing.js +1 -1
  119. package/dist/host/walk.js +1 -1
  120. package/dist/host/work-trace.js +1 -0
  121. package/dist/judge/late.js +1 -1
  122. package/dist/judge/take.js +1 -1
  123. package/dist/judge/widening.js +1 -1
  124. package/dist/land/act.js +6 -6
  125. package/dist/land/alias.js +1 -1
  126. package/dist/land/held.js +1 -1
  127. package/dist/land/ledger.js +5 -6
  128. package/dist/land/sign.js +1 -1
  129. package/dist/land/standing-pin.js +1 -1
  130. package/dist/land/vouched.js +1 -1
  131. package/dist/land/withdraw.js +1 -1
  132. package/dist/observe/files.js +1 -1
  133. package/dist/observe/identity.js +1 -1
  134. package/dist/observe/match.js +1 -1
  135. package/dist/observe/regions.js +1 -1
  136. package/dist/observe/run.js +1 -2
  137. package/dist/observe/runner.js +1 -1
  138. package/dist/public-types.d.ts +945 -40
  139. package/dist/render/capsule.js +1 -1
  140. package/dist/render/field.js +1 -1
  141. package/dist/render/open.js +1 -1
  142. package/dist/render/page.js +1 -1
  143. package/dist/render/receipt-projection.js +1 -0
  144. package/dist/render/receipts.js +1 -1
  145. package/dist/render/shape.js +1 -1
  146. package/dist/render/target.js +4 -4
  147. package/dist/render/view.js +5 -5
  148. package/dist/vendor/bundle.json +1 -1
  149. package/dist/vendor/library14.js +1 -0
  150. package/dist/vendor/runtime.js +53 -30
  151. package/dist/wasm/adapter.d.ts +1 -1
  152. package/docs/contracts/authenticated-reference.publication.json +1 -1
  153. package/docs/contracts/authority-preflight.md +17 -0
  154. package/docs/contracts/authority-preflight.publication.json +25 -0
  155. package/docs/contracts/installed-package.md +21 -0
  156. package/docs/contracts/installed-package.publication.json +25 -0
  157. package/docs/contracts/materialized-leaf-sequence.md +15 -0
  158. package/docs/contracts/materialized-leaf-sequence.publication.json +25 -0
  159. package/docs/contracts/module-inventory.md +15 -0
  160. package/docs/contracts/module-inventory.publication.json +25 -0
  161. package/docs/contracts/native-host.md +29 -1
  162. package/docs/contracts/native-host.publication.json +4 -4
  163. package/docs/contracts/native-probes.md +13 -0
  164. package/docs/contracts/native-probes.publication.json +25 -0
  165. package/docs/contracts/native-publication.inventory.json +9 -1
  166. package/docs/contracts/native-view-batch.md +17 -0
  167. package/docs/contracts/native-view-batch.publication.json +25 -0
  168. package/docs/contracts/physical-lines.md +19 -0
  169. package/docs/contracts/physical-lines.publication.json +25 -0
  170. package/docs/contracts/profile-composition.md +17 -0
  171. package/docs/contracts/profile-composition.publication.json +25 -0
  172. package/docs/contracts/profile-preparation-native-meaning.md +9 -0
  173. package/docs/contracts/publication.md +12 -0
  174. package/docs/contracts/reading-identity.md +26 -2
  175. package/docs/contracts/reading-identity.publication.json +4 -4
  176. package/docs/contracts/reading-witness-admission.md +49 -0
  177. package/docs/contracts/readme.publication.json +1 -1
  178. package/docs/contracts/reference-port.md +11 -0
  179. package/docs/contracts/reference-port.publication.json +1 -1
  180. package/docs/contracts/refusals.bound +346 -145
  181. package/docs/contracts/refusals.md +119 -54
  182. package/docs/contracts/refusals.publication.json +2 -2
  183. package/docs/reference.md +8 -0
  184. package/licenses/wasm/{fast-text-encoding.txt → NOTICE.txt} +111 -0
  185. package/package.json +69 -8
  186. package/receipts.bound +12921 -11722
  187. package/samples/authority-preflight/no.json +6 -0
  188. package/samples/authority-preflight/yes.json +30 -0
  189. package/samples/engine-alphabet/reader.js +3 -1457
  190. package/samples/engine-alphabet/receipts.bound +7 -7
  191. package/samples/engine-interval/reader.js +3 -1457
  192. package/samples/engine-interval/receipts.bound +7 -7
  193. package/samples/installed-package/consumer.mjs +29 -0
  194. package/samples/installed-package/fixture.json +48 -0
  195. package/samples/installed-package/no.json +10 -0
  196. package/samples/installed-package/yes.json +52 -0
  197. package/samples/materialized-leaf-sequence/no.json +11 -0
  198. package/samples/materialized-leaf-sequence/yes.json +10 -0
  199. package/samples/module-inventory/yes.json +28 -0
  200. package/samples/native/physical-line-reader.mjs +1 -0
  201. package/samples/native/physical-line-reader.source.mjs +13 -0
  202. package/samples/native-host/no.json +6 -1
  203. package/samples/native-host/yes.json +18 -1
  204. package/samples/native-probes/inputs/inspection.json +28 -0
  205. package/samples/native-probes/no.json +7 -0
  206. package/samples/native-probes/yes.json +28 -0
  207. package/samples/native-view-batch/no.json +14 -0
  208. package/samples/native-view-batch/yes.json +10 -0
  209. package/samples/no/engine-order/reader.js +3 -1457
  210. package/samples/no/module-inventory/no.json +10 -0
  211. package/samples/physical-lines/no.json +5 -0
  212. package/samples/physical-lines/yes.json +9 -0
  213. package/samples/profile-composition/no.json +6 -0
  214. package/samples/profile-composition/yes.json +14 -0
  215. package/samples/reading-identity/no.json +7 -1
  216. package/samples/reading-identity/yes.json +24 -1
  217. package/vectors/native/authority-preflight.vector.json +55 -0
  218. package/vectors/native/installed-package.vector.json +31 -0
  219. package/vectors/native/materialized-leaf-sequence.vector.json +31 -0
  220. package/vectors/native/module-inventory.vector.json +56 -0
  221. package/vectors/native/native-host.vector.json +214 -0
  222. package/vectors/native/native-probes.vector.json +31 -0
  223. package/vectors/native/native-view-batch.vector.json +31 -0
  224. package/vectors/native/physical-lines.vector.json +105 -0
  225. package/vectors/native/profile-composition.vector.json +53 -0
  226. package/vectors/native/reading-identity.vector.json +38 -0
  227. package/vectors/native/refusals.vector.json +36 -2
  228. package/dist/vendor/library11.js +0 -1
  229. package/dist/vendor/sources.json +0 -1
  230. package/licenses/wasm/bound.txt +0 -21
  231. package/licenses/wasm/jitl-quickjs-ffi-types.txt +0 -21
  232. package/licenses/wasm/jitl-quickjs-wasmfile-release-sync.txt +0 -47
  233. package/licenses/wasm/obligations.txt +0 -21
  234. package/licenses/wasm/quickjs-emscripten-core.txt +0 -21
  235. package/licenses/wasm/topos.txt +0 -21
  236. /package/dist/vendor/{50086958553b9376d600583f7dff354196bfeb41170fc6d1482ca7bea7c493e2.LICENSE → 28cba430228db1c04f446c93f81b09a2705d6bf3e222d35adbe5a4cee4061884.LICENSE} +0 -0
  237. /package/dist/vendor/{b3e938d28f88a1851af303a40c749e12ebd5a686daac4f0b343b5cdd2e040419.LICENSE → 7aca161279d14bc0e054dcc281cd110aeb95be2e026b42fdf527a260e58b2aae.LICENSE} +0 -0
@@ -4,9 +4,67 @@ declare class BoundRefusal extends Error {
4
4
  constructor(code: string, diagnostic: string);
5
5
  }
6
6
  declare const PLACE_ACT_CONTEXT = "place-act-context@1";
7
+ declare const nativeAuthorityRequestIdentity: (action: NativeAuthorityAction) => string;
8
+ declare const profileDigest: (bytes: string) => string;
7
9
  /** Snapshot identity, not a new wire, authority algorithm or current permit. */
8
10
  declare const rootLotSnapshot: (root: string) => string;
11
+ /** The verifier is the actual rerun above, never a callback from card bytes. */
12
+ declare function answerNativeAuthorityCard(card: AuthorityCard, request: string, context: NativeAuthorityCardContext): Promise<{
13
+ kind: "refuse";
14
+ code: string;
15
+ diagnostic: string;
16
+ } | {
17
+ status: "refused";
18
+ code: "not-in-card";
19
+ next: "request-card-entry";
20
+ needs?: undefined;
21
+ decision?: undefined;
22
+ source?: undefined;
23
+ } | {
24
+ status: "open";
25
+ needs: readonly [
26
+ "authority-card/verified-judgment"
27
+ ];
28
+ code?: undefined;
29
+ next?: undefined;
30
+ decision?: undefined;
31
+ source?: undefined;
32
+ } | {
33
+ status: "observed";
34
+ decision: "allow" | "ask" | "deny";
35
+ source: "consumer-verified-judgment";
36
+ code?: undefined;
37
+ next?: undefined;
38
+ needs?: undefined;
39
+ } | {
40
+ status: "refused";
41
+ code: "card-stale";
42
+ next: "refresh-card";
43
+ }>;
44
+ /** Exact result bindings, declared producer authorization, and proof verification are independent checks. */
45
+ declare function authenticatePhysicalLinesWitness(reading: PhysicalLinesReading, line: string, authority: PhysicalLinesWitnessAuthority): string;
9
46
  declare function authorityOf(fields: Readonly<Record<string, string>>, signers: readonly Signer[], verify: Verify, published?: Published): SignerVerdict;
47
+ /** Resolve pinned declarations, then reuse the consumer's current signature,
48
+ * window, region coverage and widening judge. This prepares a lot; it never lands it. */
49
+ declare function composeProfile(request: ProfileCompositionRequest): {
50
+ status: "prepared";
51
+ digest: string;
52
+ inspection: {
53
+ status: "declared";
54
+ fields: {
55
+ coordinate: string;
56
+ composition: "compatible" | "incompatible" | "unread";
57
+ transition: string;
58
+ witness: boolean;
59
+ }[];
60
+ pins: CategoryPin[];
61
+ needs: string[];
62
+ authority: "not established";
63
+ };
64
+ lines: string[];
65
+ pins: CategoryPin[];
66
+ releases: readonly string[];
67
+ };
10
68
  declare function decodeReference(fragment: string): StandingReference;
11
69
  /** The host selects already authenticated snapshots and resolution, never the
12
70
  * offered program. This prepares unchanged ESM files, not a JS sandbox, signer,
@@ -76,15 +134,96 @@ declare function inspectAuthenticatedReference(fragment: string, trust: Referenc
76
134
  semanticStanding: string;
77
135
  originalRecords: readonly string[];
78
136
  }>;
79
- declare function inspectReference(fragment: string, policy: readonly string[]): Promise<{
137
+ declare function inspectReference(fragment: string, policy: readonly string[], options?: HTTPOptions): Promise<{
80
138
  reference: StandingReference;
81
139
  lines: readonly string[];
82
140
  standing: string;
83
141
  authentication: string;
142
+ } | {
143
+ kind: "needs";
144
+ reference: LocatedReference;
145
+ identity: string;
146
+ needs: string;
147
+ authentication: "not demonstrated; inspect only";
148
+ } | {
149
+ reference: LocatedReference;
150
+ authentication: "not demonstrated; inspect only";
151
+ kind: "present";
152
+ identity: string;
153
+ standing: string;
154
+ lines: readonly string[];
84
155
  }>;
156
+ /** A declared preview is inspected independently of content and authority; never fetched or substituted. */
157
+ declare function inspectReferencePreview(line: string, budget: RecordBudget, maxInlineBytes: number): {
158
+ status: "declared";
159
+ referenceIdentity: string;
160
+ projection: {
161
+ readonly profile: string;
162
+ readonly text: string;
163
+ readonly digest: string;
164
+ } | null;
165
+ relations: readonly {
166
+ readonly relation: string;
167
+ readonly target: string;
168
+ }[];
169
+ needs: string[];
170
+ projectionCompleteness: "not demonstrated";
171
+ authentication: "not verified";
172
+ fragmentPrivacy: "not promised";
173
+ };
174
+ /** Receiver-selected complete installed bytes; the physical root never enters this digest. */
175
+ declare function installedHostInstrument(request: InstalledPackageRequest, entry: string): NativeHostInstrument & {
176
+ readonly digest: string;
177
+ };
178
+ /** Identity of a complete installed byte snapshot and its selected consumed module
179
+ * closure. Reuses the package export proof, file closure and verified inventory;
180
+ * no compiler, execution, archive reconstruction or package discovery. */
181
+ declare function installedPackageIdentity(request: InstalledPackageRequest): {
182
+ format: "bound-installed-package/1";
183
+ digest: string;
184
+ lines: string;
185
+ snapshot: string;
186
+ manifest: string;
187
+ members: number;
188
+ bytes: number;
189
+ exportInventory: readonly string[];
190
+ modules: ModuleInventory;
191
+ delivery: ClosureDelivery;
192
+ consumedPins: {
193
+ specifier: string;
194
+ parent: string;
195
+ snapshot: string;
196
+ source: string;
197
+ version: string;
198
+ }[];
199
+ };
85
200
  /** Acquire canonical line signatures only. The line protocol is not widened
86
201
  * for contextual receipt frames. Both operations share bounds and response checks. */
87
202
  declare function invokeSigningPort(lot: SigningLot, sign: SigningPort, limits: PortLimits, signal?: AbortSignal): Promise<readonly SignatureRecord[]>;
203
+ /** This adapter delegates all threshold and widening decisions to the existing Bound judges. */
204
+ declare function judgePhysicalLines(input: {
205
+ readonly reading: PhysicalLinesReading;
206
+ readonly standing: readonly string[];
207
+ readonly proposed: readonly string[];
208
+ readonly witness?: string;
209
+ readonly authority?: PhysicalLinesWitnessAuthority;
210
+ }): {
211
+ status: "BLOCK" | "UNMEASURED" | "READY";
212
+ rejected: string[];
213
+ unmeasured: {
214
+ scope: string;
215
+ cause: string;
216
+ selectors: readonly string[];
217
+ }[];
218
+ stray: any[];
219
+ observations: {
220
+ scope: string;
221
+ file?: string;
222
+ value: string;
223
+ }[];
224
+ thresholds: CeilingFold[];
225
+ reading: string;
226
+ };
88
227
  /** Signs receiver receipts through the bounded existing signer protocol. Exact
89
228
  * original declarations/proofs remain unchanged. Replay is historical recovery,
90
229
  * never a new permission. A refusal after visibility is not a rollback claim. */
@@ -181,11 +320,29 @@ declare function landRootLotInProcess(context: RootLotContext, ports: RootLotPor
181
320
  value?: undefined;
182
321
  identity?: undefined;
183
322
  }>;
323
+ /** Project a verified delivery without a second traversal, I/O, compilation,
324
+ * source transformation or execution. Notices remain in the delivery, separate
325
+ * from executable module units. Extra source declarations cannot add modules.
326
+ */
327
+ declare function moduleInventory(bytes: Uint8Array, expected: string, limits: ClosureDeliveryLimits, sources: readonly ModuleInventorySource[], context: ModuleInventoryContext): ModuleInventory;
184
328
  /** Host-selected archive and entry, never a verifier assertion from the program.
185
329
  * This proves content identity only; standing admission and runtime capabilities
186
330
  * are separate prerequisites. Binary resources are not executable text members.
187
331
  */
188
332
  declare function moduleSnapshot(archive: Uint8Array, expected: string, entry: string): ModuleClosureSnapshot;
333
+ /** The receiver supplies Root and implementation. Only authenticated selection
334
+ * chooses a bounded local request; document bytes supply neither authority. */
335
+ declare function nativeAuthorityCardView(root: string, instrument: NativeHostInstrument, scope: string): Promise<{
336
+ kind: "fact";
337
+ value: NativeAuthorityCardValue;
338
+ } | {
339
+ kind: "refuse";
340
+ code: string;
341
+ diagnostic: string;
342
+ }>;
343
+ /** The consumer supplies the environment. Ambient preload/loader and libuv
344
+ * controls cannot cross the fixed host boundary. Values are never logged. */
345
+ declare function nativeHostEnvironment(input: Readonly<Record<string, string | undefined>>): Record<string, string>;
189
346
  /** Explicit installed/source ESM selection, never consumer argv or packet data.
190
347
  * Identity and public configuration do not certify implementation correctness. */
191
348
  declare function nativeHostInstrument(root: string, entry: string): NativeHostInstrument;
@@ -229,9 +386,28 @@ declare function openAuthenticatedReference(root: string, fragment: string, opti
229
386
  semanticStanding: string;
230
387
  originalRecords: readonly string[];
231
388
  }>;
389
+ declare function parseNativeAuthorityCardRequest(text: string, expectedDigest: string, limits: RecordBudget): NativeAuthorityCardRequest;
390
+ /** Projects region selectors from already admitted standing; parsing grants no authority. */
391
+ declare function physicalLinesRegions(standing: readonly string[]): readonly PhysicalLinesRegion[];
232
392
  declare function preflight(request: WasmRequest): void;
393
+ /** Read-only, freshly authenticated native preflight. This does not grant an act. */
394
+ declare function prepareNativeAuthorityCard(context: NativeAuthorityCardContext, issuedAt?: number): Promise<{
395
+ kind: "fact";
396
+ value: NativeAuthorityCardValue;
397
+ } | {
398
+ kind: "refuse";
399
+ code: string;
400
+ diagnostic: string;
401
+ }>;
402
+ /** A recognized public reading of the existing captured native projection.
403
+ * No fold, evaluator, retained-result cache or persistent receipt is entered.
404
+ * A charged attempt stays charged even if the selected projection refuses. */
405
+ declare function prepareNativeProbe(context: NativeProbeContext): NativeProbeResult;
233
406
  /** Receiver-selected instrument and admitted Root; no consumer-owned verifier or directory fingerprint. */
234
407
  declare function prepareNativeReadingIdentity(context: NativeReadingIdentityContext): Promise<NativeReadingIdentityResult>;
408
+ /** Each view retains its own input identity. A batch shares one fresh observation,
409
+ * never a persistent cache, and returns nothing if any selection or check fails. */
410
+ declare function prepareNativeViewIdentities(context: NativeViewIdentitiesContext): NativeViewIdentitiesResult;
235
411
  /** Prepare only native configuration projections. No foldPlace, observation,
236
412
  * executable reader, resolver, persistence, lease or Root exclusion is entered.
237
413
  * The returned text and identity share one immutable committed observation. */
@@ -284,7 +460,295 @@ declare function readContextualStandingInProcess(context: RootStandingHostContex
284
460
  diagnostic: string;
285
461
  value?: undefined;
286
462
  }>;
287
- /** Pure machine contract reader. A catalog is data, never an authority grant. */
463
+ /** Reads an actual finite inventory. Links and special files are named rather than silently omitted. */
464
+ declare function readPlacePhysicalLines(input: PhysicalLinesPlaceInput): {
465
+ status: "unmeasured";
466
+ cause: "region-measure/budget";
467
+ required: string;
468
+ workUnit: "declared-input-rows";
469
+ model?: undefined;
470
+ unit?: undefined;
471
+ arithmetic?: undefined;
472
+ readings?: undefined;
473
+ union?: undefined;
474
+ sumOfRegions?: undefined;
475
+ overlapExcess?: undefined;
476
+ disjointBySupport?: undefined;
477
+ overlaps?: undefined;
478
+ unassigned?: undefined;
479
+ work?: undefined;
480
+ } | {
481
+ status: "unmeasured";
482
+ cause: "physical-lines/byte-budget";
483
+ required: string;
484
+ workUnit: "input-bytes";
485
+ profile?: undefined;
486
+ snapshot?: undefined;
487
+ model?: undefined;
488
+ policy?: undefined;
489
+ textDomain?: undefined;
490
+ inputFiles?: undefined;
491
+ regions?: undefined;
492
+ valuation?: undefined;
493
+ work?: undefined;
494
+ verification?: undefined;
495
+ } | {
496
+ status: "unmeasured";
497
+ cause: "physical-lines/selection-budget";
498
+ required: string;
499
+ workUnit: "selector-code-units-times-candidates";
500
+ profile?: undefined;
501
+ snapshot?: undefined;
502
+ model?: undefined;
503
+ policy?: undefined;
504
+ textDomain?: undefined;
505
+ inputFiles?: undefined;
506
+ regions?: undefined;
507
+ valuation?: undefined;
508
+ work?: undefined;
509
+ verification?: undefined;
510
+ } | {
511
+ status: "read";
512
+ identity: string;
513
+ bindings: {
514
+ contract: "sha256:636ace16eeaa46eafb7b07c28d1d57916bc9108b188e96b5a8bf7bed6dc15707";
515
+ model: string;
516
+ params: string;
517
+ inputs: string;
518
+ selection: string;
519
+ unit: string;
520
+ scale: string;
521
+ resolution: string;
522
+ reader: string;
523
+ implementation: string;
524
+ context: string;
525
+ run: string;
526
+ result: string;
527
+ reading: string;
528
+ };
529
+ reading: {
530
+ status: "read";
531
+ profile: "topos-physical-lines/1";
532
+ snapshot: string;
533
+ model: {
534
+ readonly name: "finite-nonnegative-atomic-valuation@1";
535
+ readonly contract: "sha256:636ace16eeaa46eafb7b07c28d1d57916bc9108b188e96b5a8bf7bed6dc15707";
536
+ readonly implementation: "sha256:ef7e39d0ac44b0dd3d4b68220d3c381f737eb2729d0017ed3271ce119d408b13";
537
+ };
538
+ policy: {
539
+ byteBudget: string;
540
+ rowBudget: string;
541
+ };
542
+ textDomain: "utf8-lf-crlf-reject-isolated-cr@1";
543
+ inputFiles: {
544
+ name: any;
545
+ digest: any;
546
+ }[];
547
+ regions: ({
548
+ status: "measured";
549
+ value: Readonly<{
550
+ numerator: string;
551
+ denominator: string;
552
+ }>;
553
+ scope: string;
554
+ selectors: string[];
555
+ selections: ({
556
+ selector: string;
557
+ members: any[];
558
+ status: "selected";
559
+ cause?: undefined;
560
+ } | {
561
+ selector: string;
562
+ members: any[];
563
+ status: "unmeasured";
564
+ cause: "selector-no-match";
565
+ })[];
566
+ members: any[];
567
+ } | {
568
+ status: "unmeasured";
569
+ cause: "selector-no-match";
570
+ scope: string;
571
+ selectors: string[];
572
+ selections: ({
573
+ selector: string;
574
+ members: any[];
575
+ status: "selected";
576
+ cause?: undefined;
577
+ } | {
578
+ selector: string;
579
+ members: any[];
580
+ status: "unmeasured";
581
+ cause: "selector-no-match";
582
+ })[];
583
+ members: any[];
584
+ })[];
585
+ valuation: {
586
+ status: "measured";
587
+ model: "finite-nonnegative-atomic-valuation@1";
588
+ unit: string;
589
+ arithmetic: "exact-rational";
590
+ readings: {
591
+ region: any;
592
+ members: string[];
593
+ value: Readonly<{
594
+ numerator: string;
595
+ denominator: string;
596
+ }>;
597
+ }[];
598
+ union: {
599
+ members: string[];
600
+ value: Readonly<{
601
+ numerator: string;
602
+ denominator: string;
603
+ }>;
604
+ };
605
+ sumOfRegions: Readonly<{
606
+ numerator: string;
607
+ denominator: string;
608
+ }>;
609
+ overlapExcess: Readonly<{
610
+ numerator: string;
611
+ denominator: string;
612
+ }>;
613
+ disjointBySupport: boolean;
614
+ overlaps: {
615
+ atom: string;
616
+ regions: string[];
617
+ }[];
618
+ unassigned: string[];
619
+ work: {
620
+ unit: "declared-input-rows";
621
+ required: string;
622
+ };
623
+ cause?: undefined;
624
+ required?: undefined;
625
+ workUnit?: undefined;
626
+ };
627
+ work: {
628
+ inputBytes: string;
629
+ selectionUnits: string;
630
+ };
631
+ verification: "supplied inventory and snapshot; authority and completeness are consumer obligations";
632
+ cause?: undefined;
633
+ required?: undefined;
634
+ workUnit?: undefined;
635
+ };
636
+ perFile: {
637
+ status: "read";
638
+ profile: "topos-physical-lines/1";
639
+ snapshot: string;
640
+ model: {
641
+ readonly name: "finite-nonnegative-atomic-valuation@1";
642
+ readonly contract: "sha256:636ace16eeaa46eafb7b07c28d1d57916bc9108b188e96b5a8bf7bed6dc15707";
643
+ readonly implementation: "sha256:ef7e39d0ac44b0dd3d4b68220d3c381f737eb2729d0017ed3271ce119d408b13";
644
+ };
645
+ policy: {
646
+ byteBudget: string;
647
+ rowBudget: string;
648
+ };
649
+ textDomain: "utf8-lf-crlf-reject-isolated-cr@1";
650
+ inputFiles: {
651
+ name: any;
652
+ digest: any;
653
+ }[];
654
+ regions: ({
655
+ status: "measured";
656
+ value: Readonly<{
657
+ numerator: string;
658
+ denominator: string;
659
+ }>;
660
+ scope: string;
661
+ selectors: string[];
662
+ selections: ({
663
+ selector: string;
664
+ members: any[];
665
+ status: "selected";
666
+ cause?: undefined;
667
+ } | {
668
+ selector: string;
669
+ members: any[];
670
+ status: "unmeasured";
671
+ cause: "selector-no-match";
672
+ })[];
673
+ members: any[];
674
+ } | {
675
+ status: "unmeasured";
676
+ cause: "selector-no-match";
677
+ scope: string;
678
+ selectors: string[];
679
+ selections: ({
680
+ selector: string;
681
+ members: any[];
682
+ status: "selected";
683
+ cause?: undefined;
684
+ } | {
685
+ selector: string;
686
+ members: any[];
687
+ status: "unmeasured";
688
+ cause: "selector-no-match";
689
+ })[];
690
+ members: any[];
691
+ })[];
692
+ valuation: {
693
+ status: "measured";
694
+ model: "finite-nonnegative-atomic-valuation@1";
695
+ unit: string;
696
+ arithmetic: "exact-rational";
697
+ readings: {
698
+ region: any;
699
+ members: string[];
700
+ value: Readonly<{
701
+ numerator: string;
702
+ denominator: string;
703
+ }>;
704
+ }[];
705
+ union: {
706
+ members: string[];
707
+ value: Readonly<{
708
+ numerator: string;
709
+ denominator: string;
710
+ }>;
711
+ };
712
+ sumOfRegions: Readonly<{
713
+ numerator: string;
714
+ denominator: string;
715
+ }>;
716
+ overlapExcess: Readonly<{
717
+ numerator: string;
718
+ denominator: string;
719
+ }>;
720
+ disjointBySupport: boolean;
721
+ overlaps: {
722
+ atom: string;
723
+ regions: string[];
724
+ }[];
725
+ unassigned: string[];
726
+ work: {
727
+ unit: "declared-input-rows";
728
+ required: string;
729
+ };
730
+ cause?: undefined;
731
+ required?: undefined;
732
+ workUnit?: undefined;
733
+ };
734
+ work: {
735
+ inputBytes: string;
736
+ selectionUnits: string;
737
+ };
738
+ verification: "supplied inventory and snapshot; authority and completeness are consumer obligations";
739
+ cause?: undefined;
740
+ required?: undefined;
741
+ workUnit?: undefined;
742
+ };
743
+ stray: any[];
744
+ } | {
745
+ status: "unmeasured";
746
+ cause: string;
747
+ unavailable: {
748
+ name: string;
749
+ cause: string;
750
+ }[];
751
+ };
288
752
  declare function readRefusalCatalog(text: string): readonly RefusalEntry[];
289
753
  /** Uses the existing bounded content port, authority evaluator and projection.
290
754
  * It projects the Root component of a complete signed Root wire snapshot; it has no persistence callback,
@@ -332,6 +796,8 @@ declare function recoverRootActInProcess(identity: string, ports: Pick<RootLotPo
332
796
  diagnostic: string;
333
797
  value?: undefined;
334
798
  };
799
+ /** Exact declared category selection, with no code-family or scope-prefix rule. */
800
+ declare function releaseCategoryPins(pins: readonly CategoryPin[], categories: readonly ReleaseCategory[], standing: readonly string[]): readonly string[];
335
801
  /** Verify before invoking retention; no operation automatically writes the projected result. */
336
802
  declare function retainContent(digest: string, bytes: Uint8Array, ports: {
337
803
  readonly retain: PersistencePort;
@@ -349,6 +815,9 @@ declare function runConformance(bytes: Uint8Array, receiver: ConformanceReceiver
349
815
  readonly maxCases: number;
350
816
  }, signal?: AbortSignal): Promise<ConformanceReport>;
351
817
  declare function runWasmRequest(request: WasmRequest): Promise<WasmResult>;
818
+ /** One consumer-owned native dispatcher, not a daemon or a second interpreter.
819
+ * The child exits on IPC disconnect, including an ungraceful client exit. */
820
+ declare function startNativeHost(options: NativeHostOptions): Promise<NativeCommandHost>;
352
821
  declare function validateObjectContext(records: readonly ObjectRecord[], context: ObjectContext): Outcome<readonly ObjectRecord[]>;
353
822
  /** The receiver supplies the expected implementation, question, policy,
354
823
  * environment and verification port. The carrier cannot choose any of them. */
@@ -367,6 +836,45 @@ interface ActResult {
367
836
  readonly records: readonly string[];
368
837
  readonly receipt: string;
369
838
  }
839
+ interface AuthorityCard {
840
+ readonly place: string;
841
+ readonly snapshot: string;
842
+ readonly key: string;
843
+ readonly authority: string;
844
+ readonly coverage: string;
845
+ readonly policy: string;
846
+ readonly budget: string;
847
+ readonly catalog: string;
848
+ readonly standingContract: string;
849
+ readonly grants: readonly string[];
850
+ readonly retirements: readonly string[];
851
+ readonly demands: readonly string[];
852
+ readonly horizon: RegistryHorizon;
853
+ readonly issuedAt: number;
854
+ readonly actions: readonly {
855
+ readonly request: string;
856
+ readonly decision: "allow" | "ask" | "deny";
857
+ }[];
858
+ readonly evidence: string;
859
+ }
860
+ interface CategoryPin {
861
+ readonly category: string;
862
+ readonly class: string;
863
+ readonly algorithm: "sha256";
864
+ readonly digest: string;
865
+ }
866
+ interface CeilingFold {
867
+ readonly read: readonly string[];
868
+ readonly over: readonly {
869
+ readonly ceiling: string;
870
+ readonly question: string;
871
+ readonly got: string;
872
+ readonly side: Side;
873
+ }[];
874
+ readonly unread: readonly string[];
875
+ readonly vacuous: readonly string[];
876
+ readonly readings: ReadonlyMap<string, readonly string[]>;
877
+ }
370
878
  interface Cell<T> {
371
879
  readonly floor: T;
372
880
  readonly ceiling: T;
@@ -495,6 +1003,10 @@ interface Fork {
495
1003
  readonly lines: readonly string[];
496
1004
  readonly state?: string;
497
1005
  }
1006
+ interface HTTPOptions {
1007
+ readonly signal?: AbortSignal;
1008
+ readonly allowedOrigins?: readonly string[];
1009
+ }
498
1010
  interface HostClockSelection {
499
1011
  readonly profile: typeof PLACE_ACT_CONTEXT;
500
1012
  readonly namespace: string;
@@ -524,6 +1036,28 @@ interface HostInstrumentRuntime {
524
1036
  readonly extension: ".ts" | ".js";
525
1037
  readonly lock: readonly string[];
526
1038
  }
1039
+ interface InstalledPackageMember {
1040
+ readonly coordinate: string;
1041
+ readonly digest: string;
1042
+ }
1043
+ interface InstalledPackagePin extends ModuleInventorySource {
1044
+ readonly specifier: string;
1045
+ readonly parent: string;
1046
+ readonly snapshot: string;
1047
+ readonly module: ModuleClosureSnapshot;
1048
+ }
1049
+ interface InstalledPackageRequest {
1050
+ readonly directory: string;
1051
+ /** Shape selected by the receiving instrument's admitted pin-shape contract. */
1052
+ readonly shape: string;
1053
+ /** Complete authenticated file inventory, relative to the selected package root. */
1054
+ readonly members: readonly InstalledPackageMember[];
1055
+ /** Explicit package export selectors; symbols are never pruning units. */
1056
+ readonly exports: readonly (readonly string[])[];
1057
+ /** Already authenticated snapshots and resolution selected by the host. */
1058
+ readonly pins: readonly InstalledPackagePin[];
1059
+ readonly limits: ClosureDeliveryLimits;
1060
+ }
527
1061
  interface JoinSemilattice<T> extends Poset<T> {
528
1062
  readonly bottom: T;
529
1063
  join(a: T, b: T): T;
@@ -538,6 +1072,14 @@ interface LocalActBundle {
538
1072
  records: string;
539
1073
  }[];
540
1074
  }
1075
+ interface LocatedReference {
1076
+ readonly class: "standing";
1077
+ readonly algorithm: "sha256";
1078
+ readonly digest: string;
1079
+ readonly blob: string;
1080
+ readonly location?: string;
1081
+ readonly "location-class"?: "viewer" | "holder";
1082
+ }
541
1083
  interface Mark<T> {
542
1084
  readonly pole: "floor" | "ceiling";
543
1085
  readonly reach: "local" | "travels";
@@ -568,9 +1110,134 @@ interface ModuleClosureSnapshot {
568
1110
  readonly entry: string;
569
1111
  readonly members: ReadonlyMap<string, ModuleClosureMember>;
570
1112
  }
1113
+ interface ModuleInventory {
1114
+ readonly format: "verified-module-inventory/1";
1115
+ readonly delivery: string;
1116
+ readonly closure: string;
1117
+ readonly modules: readonly ModuleInventoryLine[];
1118
+ /** Existing canonical wire; descriptive module metadata stays in about. */
1119
+ readonly lines: string;
1120
+ }
1121
+ interface ModuleInventoryContext {
1122
+ readonly scope: string;
1123
+ readonly by: string;
1124
+ readonly at: string;
1125
+ }
1126
+ interface ModuleInventoryLine extends ModuleInventorySource {
1127
+ readonly unit: "module";
1128
+ readonly module: string;
1129
+ readonly digest: string;
1130
+ /** The verified closure which reached this module, not an immediate importer. */
1131
+ readonly reachedFrom: string;
1132
+ }
1133
+ /** Source names and versions are declarations supplied by the receiving host.
1134
+ * The snapshot pins their bytes; this projection does not authenticate a
1135
+ * publisher's version claim or infer symbol reachability.
1136
+ */
1137
+ interface ModuleInventorySource {
1138
+ readonly snapshot: string;
1139
+ readonly source: string;
1140
+ readonly version: string;
1141
+ }
1142
+ interface NativeAuthorityAction {
1143
+ readonly kind: "record-coverage" | "admission";
1144
+ readonly records: readonly string[];
1145
+ }
1146
+ interface NativeAuthorityCardContext {
1147
+ readonly root: string;
1148
+ readonly place: string;
1149
+ readonly key: string;
1150
+ readonly instrument: NativeHostInstrument;
1151
+ readonly authorityEpoch: number;
1152
+ readonly clock: {
1153
+ readonly name: string;
1154
+ readonly unit: string;
1155
+ readonly now: number;
1156
+ };
1157
+ readonly horizon: RegistryHorizon;
1158
+ readonly limits: RecordBudget;
1159
+ readonly actions: readonly NativeAuthorityAction[];
1160
+ }
1161
+ interface NativeAuthorityCardValue {
1162
+ readonly card: AuthorityCard;
1163
+ readonly line: string;
1164
+ readonly identity: string;
1165
+ readonly judgments: readonly NativeAuthorityJudgment[];
1166
+ readonly needs: readonly string[];
1167
+ }
1168
+ interface NativeAuthorityJudgment {
1169
+ readonly request: string;
1170
+ readonly decision: "allow" | "ask" | "deny" | "open";
1171
+ readonly evidence: readonly unknown[];
1172
+ readonly needs: readonly string[];
1173
+ }
1174
+ interface NativeCommand {
1175
+ readonly verb: "fold" | "sign" | "land";
1176
+ readonly args: readonly string[];
1177
+ readonly signer?: string;
1178
+ readonly inputs?: readonly {
1179
+ readonly name: string;
1180
+ readonly text: string;
1181
+ }[];
1182
+ }
1183
+ interface NativeCommandHost {
1184
+ readonly pid: number;
1185
+ readonly environment: Readonly<Record<string, string>>;
1186
+ readonly flags: readonly string[];
1187
+ request(command: NativeCommand, signal?: AbortSignal): Promise<NativeCommandResult>;
1188
+ close(): Promise<void>;
1189
+ }
1190
+ interface NativeCommandResult {
1191
+ readonly status: number;
1192
+ readonly stdout: string;
1193
+ readonly stderr: string;
1194
+ }
571
1195
  interface NativeHostInstrument {
572
1196
  readonly name: string;
573
1197
  readonly runtime: HostInstrumentRuntime;
1198
+ readonly installed?: {
1199
+ readonly digest: string;
1200
+ readonly request: InstalledPackageRequest;
1201
+ };
1202
+ }
1203
+ interface NativeHostLimits {
1204
+ readonly requestBytes: number;
1205
+ readonly responseBytes: number;
1206
+ readonly timeoutMs: number;
1207
+ readonly heapMiB: number;
1208
+ readonly queuedRequests: number;
1209
+ }
1210
+ interface NativeHostOptions {
1211
+ readonly place: string;
1212
+ readonly instrument: NativeHostInstrument;
1213
+ readonly expectedInstrument: string;
1214
+ readonly limits: NativeHostLimits;
1215
+ readonly environment: Readonly<Record<string, string | undefined>>;
1216
+ readonly scratchParent?: string;
1217
+ readonly signer?: {
1218
+ readonly keyId: string;
1219
+ readonly name: string;
1220
+ readonly sign: SigningPort;
1221
+ };
1222
+ readonly signers?: ReadonlyMap<string, {
1223
+ readonly name: string;
1224
+ readonly sign: SigningPort;
1225
+ }>;
1226
+ }
1227
+ interface NativeProbeContext extends NativeViewIdentityContext {
1228
+ readonly port: NativeProbePort;
1229
+ readonly counter: NativeProbeCounter;
1230
+ readonly signal?: AbortSignal;
1231
+ }
1232
+ /** This meter belongs to the consumer's operation. Keep it across calls and
1233
+ * share it between requests using the same port. It is never persisted by Bound. */
1234
+ interface NativeProbeCounter {
1235
+ readonly used: Map<string, number>;
1236
+ }
1237
+ interface NativeProbePort {
1238
+ readonly coordinate: string;
1239
+ readonly probes: number;
1240
+ readonly responseBytes: number;
574
1241
  }
575
1242
  interface NativeReadingIdentityContext {
576
1243
  readonly place: string;
@@ -578,6 +1245,12 @@ interface NativeReadingIdentityContext {
578
1245
  readonly limits: ReadingPreparationLimits;
579
1246
  readonly reader?: string;
580
1247
  }
1248
+ interface NativeViewIdentitiesContext {
1249
+ readonly place: string;
1250
+ readonly instrument: NativeHostInstrument;
1251
+ readonly views: readonly string[];
1252
+ readonly expectedIdentities?: Readonly<Record<string, string>>;
1253
+ }
581
1254
  interface NativeViewIdentityContext {
582
1255
  readonly place: string;
583
1256
  readonly instrument: NativeHostInstrument;
@@ -609,6 +1282,36 @@ interface ObjectRecord {
609
1282
  readonly record: "cell" | "claim" | "mark";
610
1283
  readonly fields: Readonly<Record<string, string>>;
611
1284
  }
1285
+ interface PhysicalLinesPlaceInput {
1286
+ readonly root: string;
1287
+ /** Explicit inventory boundaries, also bound into the reading identity. No implicit exclusions. */
1288
+ readonly inventory: readonly string[];
1289
+ readonly regions: readonly PhysicalLinesRegion[];
1290
+ readonly policy: PhysicalLinesPolicy;
1291
+ readonly context: string;
1292
+ readonly reader: string;
1293
+ readonly implementation: string;
1294
+ readonly run: string;
1295
+ }
1296
+ interface PhysicalLinesPolicy {
1297
+ readonly byteBudget: string;
1298
+ readonly rowBudget: string;
1299
+ readonly entryBudget: number;
1300
+ }
1301
+ interface PhysicalLinesRegion {
1302
+ readonly scope: string;
1303
+ readonly selectors: readonly string[];
1304
+ }
1305
+ interface PhysicalLinesWitnessAuthority {
1306
+ /** Supplied by the host from its admitted, current producer policy, never from the witness. */
1307
+ readonly producers: readonly ReadingProducerPolicy[];
1308
+ /** Must verify actual signature/coverage or CI evidence bytes over this exact statement. URL presence is insufficient. */
1309
+ readonly verify: (input: {
1310
+ readonly witness: ReadingWitness;
1311
+ readonly statementBytes: string;
1312
+ readonly producer: ReadingProducerPolicy;
1313
+ }) => boolean;
1314
+ }
612
1315
  interface PlaceActBudget {
613
1316
  readonly acts: number;
614
1317
  readonly bytes: number;
@@ -679,6 +1382,15 @@ interface PlaceReceipt {
679
1382
  readonly place: string;
680
1383
  readonly signature: string;
681
1384
  }
1385
+ interface PolicyField<T> {
1386
+ readonly coordinate: string;
1387
+ readonly mode: "meet" | "exact" | "own";
1388
+ /** Values are interpreted by the selected form. Algebra is supplied by
1389
+ * Obligations, never reconstructed with interval endpoints here. */
1390
+ readonly decode: (value: string) => T;
1391
+ readonly lattice: MeetSemilattice<T>;
1392
+ readonly inhabited: (value: T) => boolean;
1393
+ }
682
1394
  interface PortLimits {
683
1395
  readonly timeoutMs: number;
684
1396
  readonly maxBytes: number;
@@ -697,6 +1409,39 @@ interface Poset<T> {
697
1409
  leq(a: T, b: T): boolean;
698
1410
  show(x: T): string;
699
1411
  }
1412
+ interface ProfileComposition {
1413
+ readonly name: string;
1414
+ readonly parents: readonly string[];
1415
+ readonly fields: readonly {
1416
+ readonly coordinate: string;
1417
+ readonly contract: string;
1418
+ readonly value: string;
1419
+ }[];
1420
+ readonly pins: readonly CategoryPin[];
1421
+ readonly witnesses: readonly {
1422
+ readonly coordinate: string;
1423
+ readonly reading: ReadingWitness;
1424
+ }[];
1425
+ }
1426
+ interface ProfileCompositionRequest {
1427
+ readonly root: string;
1428
+ readonly place: string;
1429
+ readonly profile: ProfileComposition;
1430
+ readonly profiles: ReadonlyMap<string, string>;
1431
+ readonly fields: readonly ProfileFieldBinding[];
1432
+ /** Original signed lines; drafts and parent bytes supply no authority. */
1433
+ readonly statements: readonly string[];
1434
+ readonly budget: RecordBudget;
1435
+ readonly categories: readonly ReleaseCategory[];
1436
+ }
1437
+ interface ProfileFieldBinding {
1438
+ readonly contract: string;
1439
+ readonly field: PolicyField<unknown>;
1440
+ readonly scope: string;
1441
+ readonly role: "reads" | "writes";
1442
+ readonly form: "interval" | "alphabet";
1443
+ readonly measure: string;
1444
+ }
700
1445
  interface PublicationStorage {
701
1446
  publish(staged: string, committed: string): void;
702
1447
  }
@@ -704,6 +1449,23 @@ interface Published {
704
1449
  readonly digest: string;
705
1450
  readonly pins: readonly string[];
706
1451
  }
1452
+ interface ReadingContext {
1453
+ readonly class: "attest";
1454
+ readonly reading: string;
1455
+ readonly contract: string;
1456
+ readonly model: string;
1457
+ readonly params: string;
1458
+ readonly inputs: string;
1459
+ readonly selection: string;
1460
+ readonly unit: string;
1461
+ readonly scale: string;
1462
+ readonly resolution: string;
1463
+ readonly reader: string;
1464
+ readonly implementation: string;
1465
+ readonly context: string;
1466
+ readonly run: string;
1467
+ readonly result: string;
1468
+ }
707
1469
  interface ReadingIdentityContext {
708
1470
  readonly instrument: string;
709
1471
  readonly implementation: string;
@@ -726,6 +1488,10 @@ interface ReadingPreparationLimits {
726
1488
  readonly probes: number;
727
1489
  readonly signal?: AbortSignal;
728
1490
  }
1491
+ interface RecordBudget {
1492
+ readonly bytes: number;
1493
+ readonly items: number;
1494
+ }
729
1495
  interface ReferenceTrust {
730
1496
  readonly snapshot: string;
731
1497
  readonly epoch: number;
@@ -751,6 +1517,19 @@ interface RefusalEntry {
751
1517
  readonly meaning: string;
752
1518
  readonly next: string;
753
1519
  }
1520
+ interface RegistryHorizon {
1521
+ readonly clock: string;
1522
+ readonly unit: string;
1523
+ readonly from: number;
1524
+ readonly through: number;
1525
+ }
1526
+ interface ReleaseCategory {
1527
+ readonly category: string;
1528
+ readonly class: string;
1529
+ readonly scope: string;
1530
+ readonly role: "reads" | "writes";
1531
+ readonly measure: "digest";
1532
+ }
754
1533
  interface RootContext {
755
1534
  readonly namespace: string;
756
1535
  readonly snapshot: string;
@@ -924,6 +1703,22 @@ type ContentReadPort = (source: string, digest: string, signal: AbortSignal) =>
924
1703
  type DigestPort = (bytes: Uint8Array) => string | Promise<string>;
925
1704
  type KeyClass = "attest" | "authorize";
926
1705
  type Library = (specifier: string, parent: ModuleClosureSnapshot) => ModuleClosureSnapshot | undefined;
1706
+ type NativeAuthorityCardRequest = Omit<NativeAuthorityCardContext, "root" | "instrument"> & {
1707
+ readonly profile: "native-authority-card-request/1";
1708
+ };
1709
+ type NativeProbeForm = "lines" | "evidence";
1710
+ type NativeProbeResult = {
1711
+ readonly kind: "fact";
1712
+ readonly form: NativeProbeForm;
1713
+ readonly port: string;
1714
+ readonly identity: string;
1715
+ readonly text: string;
1716
+ readonly probes: 1;
1717
+ } | {
1718
+ readonly kind: "refuse";
1719
+ readonly code: string;
1720
+ readonly diagnostic: string;
1721
+ };
927
1722
  type NativeReadingIdentityResult = {
928
1723
  readonly kind: "fact";
929
1724
  readonly preparations: readonly ReadingPreparationResult[];
@@ -932,6 +1727,14 @@ type NativeReadingIdentityResult = {
932
1727
  readonly code: string;
933
1728
  readonly diagnostic: string;
934
1729
  };
1730
+ type NativeViewIdentitiesResult = {
1731
+ readonly kind: "fact";
1732
+ readonly views: readonly Extract<NativeViewIdentityResult, {
1733
+ kind: "fact";
1734
+ }>[];
1735
+ } | Extract<NativeViewIdentityResult, {
1736
+ kind: "refuse";
1737
+ }>;
935
1738
  type NativeViewIdentityResult = {
936
1739
  readonly kind: "fact";
937
1740
  readonly view: "lines" | "evidence";
@@ -956,6 +1759,9 @@ type Outcome<T> = {
956
1759
  };
957
1760
  /** Atomic byte retention supplied by the host. This is neither admission nor a current-answer cache. */
958
1761
  type PersistencePort = (digest: string, bytes: Uint8Array, signal: AbortSignal) => Promise<void>;
1762
+ type PhysicalLinesReading = Extract<ReturnType<typeof readPlacePhysicalLines>, {
1763
+ status: "read";
1764
+ }>;
959
1765
  type PreparedReading = {
960
1766
  readonly scope: string;
961
1767
  readonly kind: "ready";
@@ -981,6 +1787,31 @@ type ReadingPreparationResult = {
981
1787
  readonly code: string;
982
1788
  readonly diagnostic: string;
983
1789
  };
1790
+ type ReadingProducerPolicy = {
1791
+ readonly authentication: "key-covered";
1792
+ readonly key: string;
1793
+ readonly coverage: string;
1794
+ } | {
1795
+ readonly authentication: "ci-run-unkeyed";
1796
+ readonly repository: string;
1797
+ readonly commit: string;
1798
+ readonly workflow: string;
1799
+ readonly run: string;
1800
+ readonly attempt: string;
1801
+ };
1802
+ type ReadingWitness = ReadingContext & ({
1803
+ readonly authentication: "key-covered";
1804
+ readonly key: string;
1805
+ readonly coverage: string;
1806
+ readonly evidence: string;
1807
+ } | {
1808
+ readonly authentication: "ci-run-unkeyed";
1809
+ readonly repository: string;
1810
+ readonly commit: string;
1811
+ readonly workflow: string;
1812
+ readonly attempt: string;
1813
+ readonly evidence: string;
1814
+ });
984
1815
  type RootStandingHostResult = {
985
1816
  readonly kind: "fact";
986
1817
  readonly value: {
@@ -995,6 +1826,7 @@ type RootStandingHostResult = {
995
1826
  readonly code: string;
996
1827
  readonly diagnostic: string;
997
1828
  };
1829
+ type Side = "short" | "over";
998
1830
  type SignatureVerificationPort = (bytes: string, signature: SignatureRecord, algorithm: string, signal: AbortSignal) => Promise<boolean>;
999
1831
  type Signer$1 = Parameters<typeof authorityOf>[1][number];
1000
1832
  type SignerVerdict = {
@@ -1012,12 +1844,12 @@ type SigningPort = (lot: SigningLot, signal: AbortSignal) => Promise<readonly Si
1012
1844
  type Verify = (fields: Readonly<Record<string, string>>, publicKey: string) => boolean;
1013
1845
 
1014
1846
  export {
1015
- BoundRefusal as public4_BoundRefusal,
1847
+ BoundRefusal as public7_BoundRefusal,
1016
1848
  ByteComputationPort as public1_ByteComputationPort,
1017
- ClosureDelivery as public3_ClosureDelivery,
1018
- ClosureDeliveryLimits as public3_ClosureDeliveryLimits,
1019
- ClosureDeliveryManifest as public3_ClosureDeliveryManifest,
1020
- ClosureNotice as public3_ClosureNotice,
1849
+ ClosureDelivery as public4_ClosureDelivery,
1850
+ ClosureDeliveryLimits as public4_ClosureDeliveryLimits,
1851
+ ClosureDeliveryManifest as public4_ClosureDeliveryManifest,
1852
+ ClosureNotice as public4_ClosureNotice,
1021
1853
  ComputationContext as public1_ComputationContext,
1022
1854
  ComputationStatement as public1_ComputationStatement,
1023
1855
  ConformanceCase as public1_ConformanceCase,
@@ -1025,90 +1857,163 @@ export {
1025
1857
  ConformanceReport as public1_ConformanceReport,
1026
1858
  ConformanceSuite as public1_ConformanceSuite,
1027
1859
  ContentReadPort as public1_ContentReadPort,
1028
- ContentReadPort as public4_ContentReadPort,
1860
+ ContentReadPort as public7_ContentReadPort,
1029
1861
  DigestPort as public1_DigestPort,
1030
- DigestPort as public4_DigestPort,
1862
+ DigestPort as public7_DigestPort,
1031
1863
  HostInstrumentRuntime as public2_HostInstrumentRuntime,
1032
- ModuleClosureSnapshot as public3_ModuleClosureSnapshot,
1864
+ InstalledPackageMember as public2_InstalledPackageMember,
1865
+ InstalledPackageMember as public3_InstalledPackageMember,
1866
+ InstalledPackagePin as public2_InstalledPackagePin,
1867
+ InstalledPackagePin as public3_InstalledPackagePin,
1868
+ InstalledPackageRequest as public2_InstalledPackageRequest,
1869
+ InstalledPackageRequest as public3_InstalledPackageRequest,
1870
+ ModuleClosureSnapshot as public4_ModuleClosureSnapshot,
1871
+ ModuleInventory as public4_ModuleInventory,
1872
+ ModuleInventoryContext as public4_ModuleInventoryContext,
1873
+ ModuleInventoryLine as public4_ModuleInventoryLine,
1874
+ ModuleInventorySource as public4_ModuleInventorySource,
1875
+ NativeAuthorityAction as public2_NativeAuthorityAction,
1876
+ NativeAuthorityCardContext as public2_NativeAuthorityCardContext,
1877
+ NativeAuthorityCardRequest as public2_NativeAuthorityCardRequest,
1878
+ NativeAuthorityCardValue as public2_NativeAuthorityCardValue,
1879
+ NativeAuthorityJudgment as public2_NativeAuthorityJudgment,
1880
+ NativeCommand as public2_NativeCommand,
1881
+ NativeCommandHost as public2_NativeCommandHost,
1882
+ NativeCommandResult as public2_NativeCommandResult,
1033
1883
  NativeHostInstrument as public2_NativeHostInstrument,
1884
+ NativeHostLimits as public2_NativeHostLimits,
1885
+ NativeHostOptions as public2_NativeHostOptions,
1886
+ NativeProbeContext as public2_NativeProbeContext,
1887
+ NativeProbeCounter as public2_NativeProbeCounter,
1888
+ NativeProbeForm as public2_NativeProbeForm,
1889
+ NativeProbePort as public2_NativeProbePort,
1890
+ NativeProbeResult as public2_NativeProbeResult,
1034
1891
  NativeReadingIdentityContext as public2_NativeReadingIdentityContext,
1035
1892
  NativeReadingIdentityResult as public2_NativeReadingIdentityResult,
1893
+ NativeViewIdentitiesContext as public2_NativeViewIdentitiesContext,
1894
+ NativeViewIdentitiesResult as public2_NativeViewIdentitiesResult,
1036
1895
  NativeViewIdentityContext as public2_NativeViewIdentityContext,
1037
1896
  NativeViewIdentityResult as public2_NativeViewIdentityResult,
1038
1897
  ObjectContext as public1_ObjectContext,
1039
1898
  ObjectReading as public1_ObjectReading,
1040
1899
  ObjectRecord as public1_ObjectRecord,
1041
1900
  PersistencePort as public1_PersistencePort,
1042
- PersistencePort as public4_PersistencePort,
1901
+ PersistencePort as public7_PersistencePort,
1902
+ PhysicalLinesPlaceInput as public2_PhysicalLinesPlaceInput,
1903
+ PhysicalLinesPlaceInput as public5_PhysicalLinesPlaceInput,
1904
+ PhysicalLinesPolicy as public2_PhysicalLinesPolicy,
1905
+ PhysicalLinesPolicy as public5_PhysicalLinesPolicy,
1906
+ PhysicalLinesReading as public2_PhysicalLinesReading,
1907
+ PhysicalLinesReading as public5_PhysicalLinesReading,
1908
+ PhysicalLinesRegion as public2_PhysicalLinesRegion,
1909
+ PhysicalLinesRegion as public5_PhysicalLinesRegion,
1910
+ PhysicalLinesWitnessAuthority as public2_PhysicalLinesWitnessAuthority,
1911
+ PhysicalLinesWitnessAuthority as public5_PhysicalLinesWitnessAuthority,
1043
1912
  PlaceActBudget as public2_PlaceActBudget,
1044
1913
  PlaceActHostContext as public2_PlaceActHostContext,
1045
1914
  PlaceActHostPorts as public2_PlaceActHostPorts,
1046
1915
  PlaceActPersistence as public2_PlaceActPersistence,
1047
1916
  PlaceActTrust as public2_PlaceActTrust,
1048
1917
  PortLimits as public1_PortLimits,
1049
- PortLimits as public4_PortLimits,
1918
+ PortLimits as public7_PortLimits,
1050
1919
  PreparedReading as public2_PreparedReading,
1920
+ ProfileCompositionRequest as public2_ProfileCompositionRequest,
1921
+ ProfileCompositionRequest as public6_ProfileCompositionRequest,
1922
+ ProfileFieldBinding as public2_ProfileFieldBinding,
1923
+ ProfileFieldBinding as public6_ProfileFieldBinding,
1051
1924
  PublicationStorage as public2_PublicationStorage,
1052
1925
  ReadingPreparationLimits as public2_ReadingPreparationLimits,
1053
1926
  ReadingPreparationResult as public2_ReadingPreparationResult,
1054
- ReferenceTrust as public4_ReferenceTrust,
1927
+ ReadingProducerPolicy as public2_ReadingProducerPolicy,
1928
+ ReadingProducerPolicy as public5_ReadingProducerPolicy,
1929
+ ReferenceTrust as public7_ReferenceTrust,
1055
1930
  RefusalEntry as public1_RefusalEntry,
1056
- RefusalEntry as public4_RefusalEntry,
1931
+ RefusalEntry as public7_RefusalEntry,
1932
+ ReleaseCategory as public2_ReleaseCategory,
1933
+ ReleaseCategory as public6_ReleaseCategory,
1057
1934
  RootLotContext as public2_RootLotContext,
1058
1935
  RootLotPorts as public2_RootLotPorts,
1059
1936
  RootStandingHostContext as public2_RootStandingHostContext,
1060
1937
  RootStandingHostResult as public2_RootStandingHostResult,
1061
1938
  SignatureRecord as public1_SignatureRecord,
1062
- SignatureRecord as public4_SignatureRecord,
1939
+ SignatureRecord as public7_SignatureRecord,
1063
1940
  SignatureVerificationPort as public1_SignatureVerificationPort,
1064
1941
  SigningLot as public1_SigningLot,
1065
- SigningLot as public4_SigningLot,
1942
+ SigningLot as public7_SigningLot,
1066
1943
  SigningPort as public1_SigningPort,
1067
- SigningPort as public4_SigningPort,
1068
- WasmLimits as public6_WasmLimits,
1069
- WasmRequest as public6_WasmRequest,
1070
- WasmResult as public6_WasmResult,
1071
- WasmTrust as public6_WasmTrust,
1072
- WorkerPort as public6_WorkerPort,
1073
- decodeReference as public4_decodeReference,
1074
- deliverModuleClosure as public3_deliverModuleClosure,
1075
- describeRefusal as public4_describeRefusal,
1076
- digest as public6_digest,
1077
- encodeReference as public4_encodeReference,
1078
- evaluateWasm as public6_evaluateWasm,
1944
+ SigningPort as public7_SigningPort,
1945
+ WasmLimits as public9_WasmLimits,
1946
+ WasmRequest as public9_WasmRequest,
1947
+ WasmResult as public9_WasmResult,
1948
+ WasmTrust as public9_WasmTrust,
1949
+ WorkerPort as public9_WorkerPort,
1950
+ answerNativeAuthorityCard as public2_answerNativeAuthorityCard,
1951
+ authenticatePhysicalLinesWitness as public2_authenticatePhysicalLinesWitness,
1952
+ authenticatePhysicalLinesWitness as public5_authenticatePhysicalLinesWitness,
1953
+ composeProfile as public2_composeProfile,
1954
+ composeProfile as public6_composeProfile,
1955
+ decodeReference as public7_decodeReference,
1956
+ deliverModuleClosure as public4_deliverModuleClosure,
1957
+ describeRefusal as public7_describeRefusal,
1958
+ digest as public9_digest,
1959
+ encodeReference as public7_encodeReference,
1960
+ evaluateWasm as public9_evaluateWasm,
1079
1961
  executeComputation as public1_executeComputation,
1080
- exportAuthenticatedReference as public5_exportAuthenticatedReference,
1081
- inspectAuthenticatedReference as public4_inspectAuthenticatedReference,
1082
- inspectReference as public5_inspectReference,
1962
+ exportAuthenticatedReference as public8_exportAuthenticatedReference,
1963
+ inspectAuthenticatedReference as public7_inspectAuthenticatedReference,
1964
+ inspectReference as public8_inspectReference,
1965
+ inspectReferencePreview as public8_inspectReferencePreview,
1966
+ installedHostInstrument as public2_installedHostInstrument,
1967
+ installedPackageIdentity as public2_installedPackageIdentity,
1968
+ installedPackageIdentity as public3_installedPackageIdentity,
1083
1969
  invokeSigningPort as public1_invokeSigningPort,
1084
- invokeSigningPort as public4_invokeSigningPort,
1970
+ invokeSigningPort as public7_invokeSigningPort,
1971
+ judgePhysicalLines as public2_judgePhysicalLines,
1972
+ judgePhysicalLines as public5_judgePhysicalLines,
1085
1973
  landPlaceActInProcess as public2_landPlaceActInProcess,
1086
1974
  landRootLotInProcess as public2_landRootLotInProcess,
1087
- moduleSnapshot as public3_moduleSnapshot,
1975
+ moduleInventory as public4_moduleInventory,
1976
+ moduleSnapshot as public4_moduleSnapshot,
1977
+ nativeAuthorityCardView as public2_nativeAuthorityCardView,
1978
+ nativeAuthorityRequestIdentity as public2_nativeAuthorityRequestIdentity,
1979
+ nativeHostEnvironment as public2_nativeHostEnvironment,
1088
1980
  nativeHostInstrument as public2_nativeHostInstrument,
1089
1981
  nativePlaceActPersistence as public2_nativePlaceActPersistence,
1090
1982
  nativePlaceActReceiver as public2_nativePlaceActReceiver,
1091
1983
  objectFold as public1_objectFold,
1092
1984
  objectFoldBytes as public1_objectFoldBytes,
1093
- openAuthenticatedReference as public5_openAuthenticatedReference,
1094
- preflight as public6_preflight,
1985
+ openAuthenticatedReference as public8_openAuthenticatedReference,
1986
+ parseNativeAuthorityCardRequest as public2_parseNativeAuthorityCardRequest,
1987
+ physicalLinesRegions as public2_physicalLinesRegions,
1988
+ physicalLinesRegions as public5_physicalLinesRegions,
1989
+ preflight as public9_preflight,
1990
+ prepareNativeAuthorityCard as public2_prepareNativeAuthorityCard,
1991
+ prepareNativeProbe as public2_prepareNativeProbe,
1095
1992
  prepareNativeReadingIdentity as public2_prepareNativeReadingIdentity,
1993
+ prepareNativeViewIdentities as public2_prepareNativeViewIdentities,
1096
1994
  prepareNativeViewIdentity as public2_prepareNativeViewIdentity,
1995
+ profileDigest as public2_profileDigest,
1996
+ profileDigest as public6_profileDigest,
1097
1997
  readContent as public1_readContent,
1098
- readContent as public4_readContent,
1998
+ readContent as public7_readContent,
1099
1999
  readContextualStandingInProcess as public2_readContextualStandingInProcess,
2000
+ readPlacePhysicalLines as public2_readPlacePhysicalLines,
2001
+ readPlacePhysicalLines as public5_readPlacePhysicalLines,
1100
2002
  readRefusalCatalog as public1_readRefusalCatalog,
1101
- readRefusalCatalog as public4_readRefusalCatalog,
2003
+ readRefusalCatalog as public7_readRefusalCatalog,
1102
2004
  readRootStandingInProcess as public2_readRootStandingInProcess,
1103
2005
  recoverPlaceActInProcess as public2_recoverPlaceActInProcess,
1104
2006
  recoverRootActInProcess as public2_recoverRootActInProcess,
2007
+ releaseCategoryPins as public2_releaseCategoryPins,
2008
+ releaseCategoryPins as public6_releaseCategoryPins,
1105
2009
  retainContent as public1_retainContent,
1106
- retainContent as public4_retainContent,
2010
+ retainContent as public7_retainContent,
1107
2011
  rootLotSnapshot as public2_rootLotSnapshot,
1108
2012
  runConformance as public1_runConformance,
1109
- runWasmRequest as public6_runWasmRequest,
2013
+ runWasmRequest as public9_runWasmRequest,
2014
+ startNativeHost as public2_startNativeHost,
1110
2015
  verifyComputation as public1_verifyComputation,
1111
- verifyModuleDelivery as public3_verifyModuleDelivery,
2016
+ verifyModuleDelivery as public4_verifyModuleDelivery,
1112
2017
  };
1113
2018
 
1114
2019
  export {};