xoonya 1.24.0 → 1.26.0

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.
@@ -0,0 +1,27 @@
1
+ # xoonya Compatibility Note
2
+
3
+ `xoonya` is a first public contract built from private lineage.
4
+
5
+ That means the current public center of gravity is:
6
+
7
+ - `Canonical Event Bundle`
8
+ - `Receipt`
9
+ - `Proof Bundle`
10
+
11
+ Older compact receipt and profile helpers remain available because they are useful support breadth, not because the public contract is required to center on them.
12
+
13
+ Current retained compatibility helpers include:
14
+
15
+ - `createReceipt(...)`
16
+ - `verifyReceipt(...)`
17
+ - `createReceiptV2(...)`
18
+ - `verifyReceiptV2(...)`
19
+ - `createProofEnvelopeV1(...)`
20
+ - `verifyProofEnvelopeV1(...)`
21
+ - profile verification helpers
22
+
23
+ Public guidance:
24
+
25
+ - use the canonical event and proof-bundle flow first
26
+ - treat retained compact helpers as compatibility/support utilities
27
+ - do not model new integrations as if the older helper lineage were the only public proof contract
@@ -0,0 +1,47 @@
1
+ # xoonya Cross-Runtime Posture
2
+
3
+ `xoonya` is intended to be reproducible across runtimes.
4
+
5
+ The current reference implementation is Node.js, but the proof contract is designed so that:
6
+
7
+ - canonical event normalization is explicit
8
+ - hashing is deterministic
9
+ - receipt derivation is deterministic
10
+ - proof-bundle verification is deterministic
11
+
12
+ ## Current reference runtime
13
+
14
+ - Node.js `>=18`
15
+
16
+ ## What is already explicit
17
+
18
+ - canonical object ordering is defined by the proof implementation
19
+ - event commitment is derived from canonical serialized event content
20
+ - receipt IDs are derived from canonical receipt-signing material
21
+ - proof-bundle verification checks deterministic structural invariants
22
+
23
+ ## Current publication artifacts
24
+
25
+ - `vectors/conformance-vectors.json`
26
+ - `vectors/adversarial-vectors.json`
27
+
28
+ These vectors are intended to be reusable by future implementations in other runtimes.
29
+
30
+ ## Current limitation
31
+
32
+ This repo does not yet ship a second-language reference implementation.
33
+
34
+ So the current cross-runtime posture is:
35
+
36
+ - contract and vectors are published
37
+ - Node.js reference behavior is enforced
38
+ - additional runtime implementations can now target the same vector sets
39
+
40
+ ## Final release expectation
41
+
42
+ Before calling the proof product fully closed, future implementations should be able to replay the published vectors and reach the same outcomes for:
43
+
44
+ - canonical event commitments
45
+ - receipt IDs
46
+ - proof-bundle verification
47
+ - adversarial rejection reasons where contractually stable
@@ -0,0 +1,445 @@
1
+ # xoonya Final Contract
2
+
3
+ ## Purpose
4
+
5
+ `xoonya` is the neutral proof foundation for machine actions.
6
+
7
+ It exists to make machine-action evidence:
8
+
9
+ - deterministic
10
+ - portable
11
+ - minimal
12
+ - verifiable
13
+ - replayable
14
+ - independent of payment rails, settlement systems, and workflow engines
15
+
16
+ `xoonya` is not a commerce system, policy engine, or execution runtime.
17
+
18
+ ## Public Release Stance
19
+
20
+ This product is being prepared as a first public release from private lineage.
21
+
22
+ That means:
23
+
24
+ - prior internal proof formats are design history, not public obligations
25
+ - useful lineage may be preserved where it strengthens the final product
26
+ - historical private helper shapes do not automatically become the public contract
27
+
28
+ The public baseline should therefore be chosen for correctness, clarity, determinism, and extensibility, not for backward compatibility with prior private repos.
29
+
30
+ ## Product Boundary
31
+
32
+ `xoonya` owns:
33
+
34
+ - canonical event commitment rules
35
+ - canonical hashing rules
36
+ - receipt construction
37
+ - proof bundle construction
38
+ - receipt verification
39
+ - proof bundle verification
40
+ - conformance vectors
41
+ - versioned proof schemas
42
+
43
+ `xoonya` does not own:
44
+
45
+ - pricing
46
+ - balances
47
+ - refunds
48
+ - treasury logic
49
+ - workflow semantics
50
+ - task catalogs
51
+ - execution orchestration
52
+ - settlement orchestration
53
+ - market rules
54
+ - governance policy
55
+
56
+ ## Core Doctrine
57
+
58
+ The proof model is layered.
59
+
60
+ ### Layer 1: Canonical Event Bundle
61
+
62
+ This is the machine fact being committed.
63
+
64
+ It is the canonical, deterministic representation of an externally consequential machine event.
65
+
66
+ ### Layer 2: Receipt
67
+
68
+ This is the minimal commitment artifact.
69
+
70
+ It proves that a specific identity committed to a specific canonical event commitment under a specific versioned receipt contract.
71
+
72
+ ### Layer 3: Proof Bundle
73
+
74
+ This carries the richer proof context around the receipt:
75
+
76
+ - anchors
77
+ - attestation references
78
+ - evidence references
79
+ - batch inclusion material
80
+ - metadata
81
+
82
+ ### Layer 4: Profiles
83
+
84
+ Profiles are optional domain-specific overlays for things like:
85
+
86
+ - economic handoff
87
+ - registry lifecycle
88
+ - compliance
89
+ - industry-specific evidence rules
90
+
91
+ Profiles must not mutate the base proof contract.
92
+
93
+ ## Non-Negotiable Invariants
94
+
95
+ The following invariants must hold for all final versions.
96
+
97
+ ### 1. Deterministic canonicalization
98
+
99
+ The same logical event must always produce the same canonical byte representation.
100
+
101
+ No implementation may depend on:
102
+
103
+ - locale
104
+ - timezone
105
+ - object insertion order
106
+ - language-specific serializer behavior
107
+ - non-canonical map ordering
108
+
109
+ ### 2. Deterministic hashing
110
+
111
+ The same canonical event bytes must always yield the same commitment hash.
112
+
113
+ Hashing must use explicit domain separation.
114
+
115
+ ### 3. Minimal receipt
116
+
117
+ The receipt must stay small and stable.
118
+
119
+ It must not absorb:
120
+
121
+ - economics
122
+ - payment semantics
123
+ - execution transcript detail
124
+ - attestation bodies
125
+ - anchor proofs
126
+
127
+ ### 4. Optional anchoring
128
+
129
+ Anchoring is optional.
130
+
131
+ Proof validity must not depend on anchoring.
132
+
133
+ Anchoring strengthens external assurance and chronology, but does not define whether the receipt is well-formed or verifiable.
134
+
135
+ ### 5. Single machine truth format
136
+
137
+ There must be one machine-native proof contract.
138
+
139
+ Human-readable renderings are views or encodings of the same proof objects, not separate proof protocols.
140
+
141
+ ### 6. Versioned stability
142
+
143
+ Versions are explicit and strict.
144
+
145
+ Older versions remain historically valid.
146
+
147
+ New versions must not silently reinterpret older receipts.
148
+
149
+ ## Canonical Event Bundle v1
150
+
151
+ The canonical event bundle is the fact layer.
152
+
153
+ Its purpose is to represent an externally consequential machine event in a deterministic and portable way.
154
+
155
+ ### Required fields
156
+
157
+ - `version`
158
+ - `domain_id`
159
+ - `sequence`
160
+ - `actor_id`
161
+ - `adapter_source`
162
+ - `event_type`
163
+ - `event_hash`
164
+
165
+ ### Optional fields
166
+
167
+ - `timestamp_ns`
168
+ - `parent_refs`
169
+ - `capability_refs`
170
+ - `attestation_ref`
171
+ - `semantic_slots`
172
+
173
+ ### Rules
174
+
175
+ - ordering is determined by explicit replay-safe fields, not by timestamps
176
+ - timestamps may exist, but must not define event ordering
177
+ - semantic slots are interpretation hints and must not change the event commitment semantics
178
+ - attestation references are optional and external
179
+
180
+ ### Commitment rule
181
+
182
+ The canonical event bundle commitment must be derived from the canonical serialized form of the full event bundle object, not from a hand-picked concatenation of selected fields.
183
+
184
+ This is the preferred rule because it:
185
+
186
+ - reduces hidden ambiguity
187
+ - reduces implementation drift
188
+ - makes conformance easier to test
189
+ - makes schema evolution cleaner
190
+
191
+ ## Receipt v1
192
+
193
+ The receipt is the minimal commitment artifact.
194
+
195
+ ### Purpose
196
+
197
+ The receipt proves:
198
+
199
+ - which proof contract version applies
200
+ - which identity issued the commitment
201
+ - which canonical event commitment is being committed
202
+ - that the issuer signed or committed that event commitment
203
+
204
+ ### Required fields
205
+
206
+ - `version`
207
+ - `receipt_id`
208
+ - `agent_identity`
209
+ - `domain_id`
210
+ - `sequence`
211
+ - `event_commitment`
212
+ - `signature`
213
+
214
+ ### Optional fields
215
+
216
+ - `algorithm`
217
+
218
+ ### Rules
219
+
220
+ - `receipt_id` must be deterministic or derivable in a stable way
221
+ - `agent_identity` must be a stable identity reference, not a commerce-specific account handle
222
+ - `event_commitment` must equal the canonical event bundle commitment
223
+ - `signature` must verify against the exact commitment material defined by the contract
224
+
225
+ ### Explicit exclusions
226
+
227
+ The receipt must not directly carry:
228
+
229
+ - prices
230
+ - balances
231
+ - refunds
232
+ - quote details
233
+ - settlement details
234
+ - anchor records
235
+ - Merkle paths
236
+ - attestation bodies
237
+ - execution transcripts
238
+
239
+ ## Proof Bundle v1
240
+
241
+ The proof bundle is the portable richer proof container.
242
+
243
+ ### Required fields
244
+
245
+ - `ceb`
246
+ - `receipt`
247
+
248
+ ### Optional fields
249
+
250
+ - `anchors`
251
+ - `attestations`
252
+ - `evidence_refs`
253
+ - `batch_refs`
254
+ - `metadata`
255
+
256
+ ### Purpose
257
+
258
+ The proof bundle is where richer proof and portability features live without bloating the receipt.
259
+
260
+ This is the correct place for:
261
+
262
+ - chain or ledger anchors
263
+ - block references
264
+ - batch roots
265
+ - inclusion proofs
266
+ - external evidence references
267
+ - optional attestation references
268
+
269
+ ### Rules
270
+
271
+ - the receipt remains valid without a proof bundle
272
+ - the proof bundle must never alter the meaning of the receipt
273
+ - all optional fields must be additive, not redefining
274
+
275
+ ## Attestation Relationship
276
+
277
+ Attestation is separate from proof.
278
+
279
+ `xoonya` may reference attestation material, commit to attestation hashes, and verify attestation-shaped adjuncts if needed, but attestation must remain conceptually separate from the receipt core.
280
+
281
+ ### Rule
282
+
283
+ Attestation may be consumed.
284
+ It must not become the receipt.
285
+
286
+ ## Profiles
287
+
288
+ Profiles are optional structured overlays built on top of base proof primitives.
289
+
290
+ Examples:
291
+
292
+ - economic receipt profile
293
+ - registry lifecycle profile
294
+ - compliance profile
295
+
296
+ ### Profile rule
297
+
298
+ Profiles may:
299
+
300
+ - reference receipts
301
+ - reference proof bundles
302
+ - define domain-specific payload semantics
303
+ - define domain-specific verification logic
304
+
305
+ Profiles may not:
306
+
307
+ - redefine base receipt meaning
308
+ - redefine canonical event bundle meaning
309
+ - create hidden alternate proof cores
310
+
311
+ ## Batching
312
+
313
+ Batching is supported, but not part of the minimal receipt core.
314
+
315
+ ### Rule
316
+
317
+ Multiple proof commitments may be compressed into a deterministic batch root.
318
+
319
+ Batch-related material belongs in:
320
+
321
+ - proof bundle
322
+ - batch metadata
323
+ - inclusion proofs
324
+ - anchor references
325
+
326
+ not in the base receipt itself.
327
+
328
+ ## Verification Contract
329
+
330
+ Verification must produce deterministic outcomes.
331
+
332
+ ### Verification result fields
333
+
334
+ - `ok`
335
+ - `code`
336
+ - `message`
337
+ - optional `details`
338
+
339
+ ### Canonical failure classes
340
+
341
+ - invalid schema
342
+ - unsupported version
343
+ - hash mismatch
344
+ - signature mismatch
345
+ - receipt mismatch
346
+ - bundle mismatch
347
+ - profile mismatch
348
+
349
+ ### Rule
350
+
351
+ The same invalid input must fail the same way across conformant implementations.
352
+
353
+ ## Versioning Strategy
354
+
355
+ ### v1
356
+
357
+ Freeze:
358
+
359
+ - canonical event bundle v1
360
+ - receipt v1
361
+ - proof bundle v1
362
+ - verification result contract v1
363
+
364
+ ### Future versions
365
+
366
+ A new version is justified only when:
367
+
368
+ - commitment semantics change
369
+ - canonicalization semantics change
370
+ - identity/signature semantics change in a breaking way
371
+ - proof container semantics change in a breaking way
372
+
373
+ New profiles do not require a new core proof version unless they change base semantics.
374
+
375
+ ## Conformance Requirements
376
+
377
+ Any implementation claiming compatibility must pass:
378
+
379
+ - canonicalization vectors
380
+ - hashing vectors
381
+ - receipt creation vectors
382
+ - receipt verification vectors
383
+ - proof bundle verification vectors
384
+ - adversarial vectors
385
+
386
+ ### Adversarial vector classes
387
+
388
+ - field ordering drift
389
+ - null / absent field ambiguity
390
+ - unicode normalization edge cases
391
+ - timestamp representation drift
392
+ - duplicate proof entries
393
+ - wrong anchor references
394
+ - wrong batch inclusion paths
395
+ - signature mismatch
396
+ - tampered metadata
397
+ - version mismatch
398
+
399
+ ## Public API Direction
400
+
401
+ The public API of `xoonya` should center on:
402
+
403
+ - `canonicalizeEvent`
404
+ - `hashEvent`
405
+ - `emitReceipt`
406
+ - `verifyReceipt`
407
+ - `buildProofBundle`
408
+ - `verifyProofBundle`
409
+
410
+ Optional profile helpers may be added separately.
411
+
412
+ ## What Should Be Carried Forward From Older Shoonya Lineage
413
+
414
+ Keep:
415
+
416
+ - minimal commitment philosophy
417
+ - strict domain separation
418
+ - optional anchoring
419
+ - proof envelope / bundle layering
420
+ - additive profile concept
421
+ - strong conformance vector discipline
422
+
423
+ Do not freeze directly:
424
+
425
+ - historical internal names
426
+ - historical version labels
427
+ - exact old byte-count decisions as sacred
428
+ - old rail-shaped assumptions
429
+
430
+ ## Final Product Position
431
+
432
+ `xoonya` should become:
433
+
434
+ - the neutral machine truth layer
435
+ - the portable proof layer
436
+ - the deterministic evidence layer
437
+
438
+ It should be usable:
439
+
440
+ - independently of `xytara`
441
+ - independently of any chain
442
+ - independently of any specific payment rail
443
+ - independently of any specific runtime
444
+
445
+ That independence is the foundation of the whole stack.
package/README.md CHANGED
@@ -12,6 +12,31 @@ It exists to make machine evidence:
12
12
 
13
13
  This repo is the proof-side half of the final two-repo public stack. It focuses on canonical events, receipts, proof bundles, and verification. It does not own pricing, catalogs, workflow orchestration, payment rails, or settlement policy.
14
14
 
15
+ ## Start Here
16
+
17
+ If you are new to the proof-side package, use this order:
18
+
19
+ 1. read [START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/START_HERE.md)
20
+ 2. run `node examples/package_quickstart.js`
21
+ 3. run `npm run verify:all`
22
+ 4. use [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/FINAL_CONTRACT.md) and [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/SERVICE_CONTRACT.md) as the durable public contract
23
+
24
+ If you are integrating from outside the stack, also read:
25
+
26
+ - [CROSS_RUNTIME_POSTURE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/CROSS_RUNTIME_POSTURE.md)
27
+ - [integrations/PROOF_INTEGRATION_PROCESS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/integrations/PROOF_INTEGRATION_PROCESS.md)
28
+
29
+ ## Production Path
30
+
31
+ The intended production-facing proof path is now:
32
+
33
+ 1. receive the transaction-side handoff or default path artifact from `xytara`
34
+ 2. inspect the proof-side review posture
35
+ 3. confirm carry and run posture
36
+ 4. emit and verify the proof-native completion path
37
+
38
+ The rest of this README explains the broader route ladder, but the public starting posture should now be understandable from that one proof-side path.
39
+
15
40
  The package and service now also expose a default proof center surface so the intended proof-native path is easy to inspect directly:
16
41
 
17
42
  - canonical event bundle v1
@@ -168,6 +193,9 @@ Primary proof-model routes:
168
193
  - `POST /v1/proof-center/result-package-handoff/review/operating-path`
169
194
  - `POST /v1/proof-center/result-package-handoff/review/operating-path-carry`
170
195
  - `POST /v1/proof-center/result-package-handoff/review/operating-path-run`
196
+ - `POST /v1/proof-center/result-package-handoff/review/complete-default-path`
197
+ - `POST /v1/proof-center/result-package-handoff/review/complete-default-path-carry`
198
+ - `POST /v1/proof-center/result-package-handoff/review/complete-default-path-run`
171
199
  - `POST /v1/proof-center/result-package-handoff/review/handoff-run`
172
200
  - `POST /v1/proof-center/result-package-handoff/run`
173
201
 
@@ -246,6 +274,24 @@ The current `1.24.0` line starts turning that adapter-integrable operating path
246
274
  - clearer operating-path ids across review, carry, and proof-native run posture
247
275
 
248
276
  This is intended to make the proof-side continuation path easier to use as the obvious first public adapter path instead of only a path that is integrable with a little extra coordination.
277
+
278
+ The current `1.25.0` line starts turning that adapter-ready default path into a clearer adapter-complete default path:
279
+
280
+ - proof-side complete-default-path posture on top of the operating-path path
281
+ - compact complete-default-path carry for direct complete proof-side path carry
282
+ - proof-side complete-default-path run posture for direct default proof-native complete path posture
283
+ - clearer complete-default-path ids across review, carry, and proof-native run posture
284
+
285
+ This is intended to make the proof-side continuation path easier to adopt as the complete public default path an outside builder can use without needing private interpretation.
286
+
287
+ The current `1.26.0` line finalizes that public shape into a cleaner production-ready package:
288
+
289
+ - a publishable [START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/START_HERE.md) onboarding path
290
+ - clearer top-level README entry points for the default proof-side production flow
291
+ - publishable contract, compatibility, and terminology docs carried in the package tarball
292
+ - naming cleanup that keeps the public story anchored to `xytara` and `xoonya`
293
+
294
+ This is intended to make the public proof-side package feel like a finished production-facing product instead of a strong stack that still assumes milestone-history context.
249
295
  - `POST /v1/events/canonicalize`
250
296
  - `POST /v1/events/hash`
251
297
  - `POST /v1/receipts/emit`
@@ -0,0 +1,59 @@
1
+ # xoonya Service Contract
2
+
3
+ This file freezes the public service contract for `xoonya`.
4
+
5
+ ## Public Routes
6
+
7
+ Primary proof-model routes:
8
+
9
+ - `GET /health`
10
+ - `POST /v1/events/canonicalize`
11
+ - `POST /v1/events/hash`
12
+ - `POST /v1/receipts/emit`
13
+ - `POST /v1/proof-bundles/build`
14
+ - `POST /v1/proof-bundles/verify`
15
+
16
+ Compatibility routes:
17
+
18
+ - `POST /validate`
19
+ - `POST /v1/receipts/verify`
20
+ - `POST /v1/receipts/inspect`
21
+ - `POST /v1/proofs/verify`
22
+ - `POST /v1/profiles/economic/verify`
23
+ - `POST /v1/profiles/registry/verify`
24
+
25
+ ## Error-Shape Expectations
26
+
27
+ Primary error posture:
28
+
29
+ - invalid request payloads return `400`
30
+ - unknown routes return `404`
31
+ - unexpected server failures return `500`
32
+
33
+ Expected error shapes:
34
+
35
+ - validation-style failures:
36
+ - `{ "valid": false, "reason": "<message>" }`
37
+ - not found:
38
+ - `{ "status": "not_found", "path": "<path>" }`
39
+ - server failure:
40
+ - `{ "status": "error", "reason": "<message>" }`
41
+
42
+ Compatibility routes may return proof/profile-specific verification payloads, but the top-level shape should still remain predictable.
43
+
44
+ ## Final-Loop Verification
45
+
46
+ The constitutional proof loop for `xoonya` is:
47
+
48
+ 1. canonicalize event
49
+ 2. hash event
50
+ 3. emit receipt
51
+ 4. build proof bundle
52
+ 5. verify proof bundle
53
+
54
+ This loop is exercised through:
55
+
56
+ - package verification
57
+ - example verification
58
+ - service verification
59
+ - conformance/adversarial vector verification
package/START_HERE.md ADDED
@@ -0,0 +1,60 @@
1
+ # xoonya Start Here
2
+
3
+ This is the shortest reliable path for understanding and using the public `xoonya` package in production-facing order.
4
+
5
+ ## 1. Understand The Role
6
+
7
+ `xoonya` is the proof-side half of the public stack.
8
+
9
+ Its job is to let a caller:
10
+
11
+ 1. receive the transaction-side handoff from `xytara`
12
+ 2. inspect review and run posture
13
+ 3. emit proof-native completion artifacts
14
+ 4. verify the final proof bundle
15
+
16
+ ## 2. Run The Fastest Real Example
17
+
18
+ Run:
19
+
20
+ ```bash
21
+ node examples/package_quickstart.js
22
+ ```
23
+
24
+ This is the fastest way to see the intended proof-side package story end-to-end.
25
+
26
+ ## 3. Verify The Whole Package
27
+
28
+ Run:
29
+
30
+ ```bash
31
+ npm run verify:all
32
+ ```
33
+
34
+ This is the production-confidence check for the published proof package surface.
35
+
36
+ ## 4. Read The Durable Contract
37
+
38
+ For long-term product understanding, read:
39
+
40
+ - [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/FINAL_CONTRACT.md)
41
+ - [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/SERVICE_CONTRACT.md)
42
+ - [TERMINOLOGY.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/TERMINOLOGY.md)
43
+
44
+ ## 5. If You Are Integrating From Outside
45
+
46
+ Continue with:
47
+
48
+ - [CROSS_RUNTIME_POSTURE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/CROSS_RUNTIME_POSTURE.md)
49
+ - [integrations/PROOF_INTEGRATION_PROCESS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/integrations/PROOF_INTEGRATION_PROCESS.md)
50
+ - [COMPATIBILITY_NOTE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/COMPATIBILITY_NOTE.md)
51
+
52
+ ## 6. Production Reading Rule
53
+
54
+ If you only remember one thing, remember this:
55
+
56
+ The main public path is no longer "understand every proof helper first."
57
+
58
+ It is:
59
+
60
+ receive handoff -> inspect review posture -> confirm run posture -> emit and verify proof
package/TERMINOLOGY.md ADDED
@@ -0,0 +1,55 @@
1
+ # xoonya Terminology
2
+
3
+ This file freezes the public terminology used by `xoonya`.
4
+
5
+ The goal is simple:
6
+
7
+ - one public name for the repo
8
+ - one stable set of proof terms
9
+ - no private-lineage naming leakage
10
+
11
+ ## Public Name
12
+
13
+ - repo name: `xoonya`
14
+ - package name: `xoonya`
15
+ - service name: `xoonya`
16
+
17
+ Use `xoonya` only for this repo and its public proof product identity.
18
+
19
+ ## Preferred Proof Terms
20
+
21
+ Use these terms consistently:
22
+
23
+ - `Canonical Event Bundle`
24
+ - `Receipt`
25
+ - `Proof Bundle`
26
+ - `Profiles`
27
+ - `deterministic canonicalization`
28
+ - `deterministic hashing`
29
+ - `conformance vectors`
30
+ - `adversarial vectors`
31
+
32
+ ## Terms To Avoid In Public Copy
33
+
34
+ Avoid older private-lineage naming in release-facing docs unless explicitly discussing lineage.
35
+
36
+ Avoid:
37
+
38
+ - internal project names as product labels
39
+ - multiple public names for the same proof object
40
+ - receipt-first wording that hides the canonical event model
41
+
42
+ ## Cross-Repo Reference Rule
43
+
44
+ If this repo needs to mention the other repo, use generic wording:
45
+
46
+ - `the commerce repo`
47
+ - `the commerce layer`
48
+
49
+ Do not brand the other repo inside this repo's core public copy.
50
+
51
+ ## Naming Rule
52
+
53
+ This repo should read like a self-contained public proof product.
54
+
55
+ If wording does not strengthen that outcome, keep it generic.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xoonya",
3
- "version": "1.24.0",
3
+ "version": "1.26.0",
4
4
  "description": "Deterministic proof SDK for canonical events, receipts, proof bundles, and verification.",
5
5
  "main": "index.js",
6
6
  "type": "commonjs",
@@ -28,6 +28,12 @@
28
28
  "vectors/",
29
29
  ".env.example",
30
30
  "README.md",
31
+ "START_HERE.md",
32
+ "FINAL_CONTRACT.md",
33
+ "SERVICE_CONTRACT.md",
34
+ "TERMINOLOGY.md",
35
+ "CROSS_RUNTIME_POSTURE.md",
36
+ "COMPATIBILITY_NOTE.md",
31
37
  "LICENSE",
32
38
  "NOTICE"
33
39
  ],
package/proof_sdk.js CHANGED
@@ -1909,6 +1909,45 @@ function summarizeReviewOperatingPathRun(input) {
1909
1909
  };
1910
1910
  }
1911
1911
 
1912
+ function summarizeReviewCompleteDefaultPath(input) {
1913
+ const operatingPath = summarizeReviewOperatingPathRun(input);
1914
+ return {
1915
+ ok: operatingPath.ok === true,
1916
+ operating_path_ref: operatingPath.operating_path_ref || null,
1917
+ complete_default_path_ref: operatingPath.operating_path_ref ? `complete.${operatingPath.operating_path_ref}` : null,
1918
+ accepted_complete_default_path_ids: Array.isArray(operatingPath.accepted_operating_path_ids) ? operatingPath.accepted_operating_path_ids : [],
1919
+ adapter_complete_by_default: operatingPath.operating_path_ready_by_default === true,
1920
+ run_surface: operatingPath.run_surface || null,
1921
+ run_path_ids: Array.isArray(operatingPath.default_run_path_ids) ? operatingPath.default_run_path_ids : []
1922
+ };
1923
+ }
1924
+
1925
+ function summarizeReviewCompleteDefaultPathCarry(input) {
1926
+ const completePath = summarizeReviewCompleteDefaultPath(input);
1927
+ return {
1928
+ ok: completePath.ok === true,
1929
+ complete_default_path_ref: completePath.complete_default_path_ref || null,
1930
+ accepted_complete_default_path_ids: Array.isArray(completePath.accepted_complete_default_path_ids) ? completePath.accepted_complete_default_path_ids : [],
1931
+ complete_default_path_carry: {
1932
+ run_surface: completePath.run_surface || null,
1933
+ run_path_ids: Array.isArray(completePath.run_path_ids) ? completePath.run_path_ids : []
1934
+ },
1935
+ adapter_complete_by_default: completePath.adapter_complete_by_default === true
1936
+ };
1937
+ }
1938
+
1939
+ function summarizeReviewCompleteDefaultPathRun(input) {
1940
+ const completePath = summarizeReviewCompleteDefaultPath(input);
1941
+ return {
1942
+ ok: completePath.ok === true,
1943
+ complete_default_path_ref: completePath.complete_default_path_ref || null,
1944
+ accepted_complete_default_path_ids: Array.isArray(completePath.accepted_complete_default_path_ids) ? completePath.accepted_complete_default_path_ids : [],
1945
+ complete_default_path_ready: completePath.adapter_complete_by_default === true,
1946
+ run_surface: completePath.run_surface || null,
1947
+ default_run_path_ids: Array.isArray(completePath.run_path_ids) ? completePath.run_path_ids : []
1948
+ };
1949
+ }
1950
+
1912
1951
  function runDefaultProofLoop(loopRef, input) {
1913
1952
  const loop = getDefaultProofLoop(loopRef);
1914
1953
  if (!loop) {
@@ -2001,6 +2040,9 @@ module.exports = {
2001
2040
  summarizeReviewOperatingPath,
2002
2041
  summarizeReviewOperatingPathCarry,
2003
2042
  summarizeReviewOperatingPathRun,
2043
+ summarizeReviewCompleteDefaultPath,
2044
+ summarizeReviewCompleteDefaultPathCarry,
2045
+ summarizeReviewCompleteDefaultPathRun,
2004
2046
  summarizeReviewHandoffRun,
2005
2047
  runInteractionResultPackageHandoff,
2006
2048
  runInteractionSpineProofHandoff,
package/server.js CHANGED
@@ -600,6 +600,39 @@ async function routeRequest(req, res) {
600
600
  return;
601
601
  }
602
602
 
603
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/complete-default-path') {
604
+ try {
605
+ const body = await readJsonBody(req);
606
+ const result = proofSdk.summarizeReviewCompleteDefaultPath(body);
607
+ sendJson(res, 200, result);
608
+ } catch (error) {
609
+ sendJson(res, 400, { ok: false, reason: error.message });
610
+ }
611
+ return;
612
+ }
613
+
614
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/complete-default-path-carry') {
615
+ try {
616
+ const body = await readJsonBody(req);
617
+ const result = proofSdk.summarizeReviewCompleteDefaultPathCarry(body);
618
+ sendJson(res, 200, result);
619
+ } catch (error) {
620
+ sendJson(res, 400, { ok: false, reason: error.message });
621
+ }
622
+ return;
623
+ }
624
+
625
+ if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/complete-default-path-run') {
626
+ try {
627
+ const body = await readJsonBody(req);
628
+ const result = proofSdk.summarizeReviewCompleteDefaultPathRun(body);
629
+ sendJson(res, 200, result);
630
+ } catch (error) {
631
+ sendJson(res, 400, { ok: false, reason: error.message });
632
+ }
633
+ return;
634
+ }
635
+
603
636
  if (req.method === 'POST' && url.pathname === '/v1/proof-center/result-package-handoff/review/handoff-run') {
604
637
  try {
605
638
  const body = await readJsonBody(req);