blun-king-cli 9.1.597 → 9.1.600
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.md +17 -1
- package/agent-spine-plugin/CHANGELOG.md +1 -1
- package/agent-spine-plugin/docs/host-integration.md +1 -15
- package/agent-spine-plugin/docs/preflight-recall.md +1 -1
- package/agent-spine-plugin/scripts/check-install.js +1 -6
- package/agent-spine-plugin/scripts/hermetic-process.js +8 -0
- package/agent-spine-plugin/scripts/release-check.js +2 -3
- package/agent-spine-plugin/scripts/run-tests-hermetic.js +8 -11
- package/agent-spine-plugin/src/hook.js +40 -40
- package/agent-spine-plugin/src/lib/briefing.js +6 -3
- package/agent-spine-plugin/src/lib/hook-context.js +63 -64
- package/agent-spine-plugin/src/lib/hook-output.js +115 -94
- package/agent-spine-plugin/src/lib/hook-timeline.js +20 -11
- package/agent-spine-plugin/src/lib/host-instruction-budget.js +8 -14
- package/agent-spine-plugin/src/lib/mcp-timeline-tools.js +0 -7
- package/agent-spine-plugin/src/lib/pre-answer-timeline-recall.js +104 -0
- package/agent-spine-plugin/src/lib/session-timeline-codex.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-enrollment-source.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline-enrollment-storage.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-enrollment-transport.js +0 -2
- package/agent-spine-plugin/src/lib/session-timeline-enrollment.js +0 -22
- package/agent-spine-plugin/src/lib/session-timeline-host-origin.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-prior.js +42 -50
- package/agent-spine-plugin/src/lib/session-timeline-provider.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline-query.js +0 -1
- package/agent-spine-plugin/src/lib/session-timeline-sid-acl.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-source.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline-transport.js +0 -8
- package/agent-spine-plugin/src/lib/session-timeline-windows-acl.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline.js +370 -408
- package/agent-spine-plugin/src/lib/source-roots.js +26 -16
- package/agent-spine-plugin/src/lib/timeline-user-feedback.js +0 -1
- package/bin/core-bootstrap.js +18 -10
- package/bin/launcher-mode.js +5 -0
- package/bin/launcher-runtime.js +27 -0
- package/bin/verify-bundled-agent-sources.cjs +28 -2
- package/blun.mjs +798 -143
- package/bundled-agent-sources.json +192 -155
- package/package.json +1 -1
- package/standard-skills/translate-native/README.md +1334 -1
- package/standard-skills/translate-native/SKILL.md +1 -1
- package/standard-skills/translate-native/VERSION +1 -1
- package/standard-skills/translate-native/docs/PREMORTEM.md +901 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION.md +208 -41
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_API.md +1319 -77
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_EVIDENCE_HTTP.md +66 -11
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HTTP_PROVIDER.md +19 -1
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_RECEIPT_VERIFIER_HTTP.md +24 -6
- package/standard-skills/translate-native/integrations/commercial_localization_profile.py +23 -0
- package/standard-skills/translate-native/integrations/website_localization.py +234 -10
- package/standard-skills/translate-native/integrations/website_localization_benchmark.py +39 -3
- package/standard-skills/translate-native/integrations/website_localization_cms.py +512 -10
- package/standard-skills/translate-native/integrations/website_localization_cms_client.py +116 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver.py +101 -11
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver_runtime.py +12 -1
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver_store.py +186 -24
- package/standard-skills/translate-native/integrations/website_localization_cms_source_client.py +64 -1
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery.py +528 -5
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_auth.py +918 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_auth_runtime.py +609 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_client.py +885 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_http.py +1244 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_runtime.py +220 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_sidecar_adapter.py +331 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_capabilities_http.py +444 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_client.py +673 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch.py +1317 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_client.py +826 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_http.py +1152 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_openapi.py +896 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_runtime.py +621 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_http.py +1180 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_runtime.py +1479 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_http.py +133 -17
- package/standard-skills/translate-native/integrations/website_localization_cms_source_runtime.py +319 -4
- package/standard-skills/translate-native/integrations/website_localization_cms_source_service.py +72 -2
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_http.py +13 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver.py +56 -13
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_openapi.py +335 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_runtime.py +66 -1
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_processing_monitor.py +73 -7
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_receiver_client.py +93 -9
- package/standard-skills/translate-native/integrations/website_localization_evidence_http.py +221 -11
- package/standard-skills/translate-native/integrations/website_localization_health.py +6 -0
- package/standard-skills/translate-native/integrations/website_localization_http_provider.py +1 -1
- package/standard-skills/translate-native/integrations/website_localization_quality_profiles.py +350 -0
- package/standard-skills/translate-native/integrations/website_localization_queue.py +126 -56
- package/standard-skills/translate-native/integrations/website_localization_receipt_verifier_http.py +166 -13
- package/standard-skills/translate-native/integrations/website_localization_release.py +423 -17
- package/standard-skills/translate-native/integrations/website_localization_release_coordinator.py +168 -13
- package/standard-skills/translate-native/integrations/website_localization_runner.py +10 -0
- package/standard-skills/translate-native/integrations/website_localization_worker.py +213 -9
- package/standard-skills/translate-native/provenance.json +2 -2
- package/standard-skills/translate-native/references/commercial-localization.md +96 -17
- package/standard-skills/translate-native/scripts/blun_language_guard.py +3 -1
- package/standard-skills/translate-native/scripts/check_commercial_review.py +69 -9
- package/standard-skills/translate-native/scripts/commercial_localization_profile.py +829 -31
- package/standard-tools/language-guard/VERSION +1 -1
- package/standard-tools/language-guard/blun_language_guard.py +3 -1
- package/standard-tools/language-guard/check_commercial_review.py +69 -9
- package/standard-tools/language-guard/commercial_localization_profile.py +829 -31
- package/standard-tools/language-guard/provenance.json +2 -2
- package/standard-tools/manifest.json +1 -1
- package/worker-host.mjs +215 -82
- package/agent-spine-plugin/scripts/check-install-king.js +0 -37
|
@@ -87,7 +87,8 @@ are derived from canonical JSON bound to:
|
|
|
87
87
|
plus content type;
|
|
88
88
|
- glossary and quality-policy versions;
|
|
89
89
|
- provider, model ID, and model version;
|
|
90
|
-
- Translate Native software version
|
|
90
|
+
- Translate Native software version;
|
|
91
|
+
- for commercial work, the exact current review-evidence-contract SHA-256.
|
|
91
92
|
|
|
92
93
|
Changing any bound value creates a new job and plan identity. A queue may
|
|
93
94
|
therefore deduplicate an exact retry, while stale work cannot silently survive
|
|
@@ -110,6 +111,20 @@ states, bounded attempt counts, the next eligible attempt time, result hashes,
|
|
|
110
111
|
and stable error codes. Free-form error detail is represented only by a
|
|
111
112
|
SHA-256 hash so status inspection does not disclose customer prose. Payloads
|
|
112
113
|
are hashed on insertion and checked again before a worker receives them.
|
|
114
|
+
Immediately before leasing, the queue also replays the exact current worker
|
|
115
|
+
binding. A stale but internally consistent job becomes terminal with
|
|
116
|
+
`job_binding_invalid` without consuming an attempt or reaching caches, asset
|
|
117
|
+
resolvers, or providers. A bounded batch of up to 24 consecutive stale jobs is
|
|
118
|
+
quarantined in the same transaction before the first current job is leased,
|
|
119
|
+
covering one complete EU-locale plan without an unbounded write transaction.
|
|
120
|
+
Expected contract mismatch is distinct from validator unavailability:
|
|
121
|
+
unexpected failure or payload mutation rolls back the complete
|
|
122
|
+
quarantine-and-lease batch and leaves every job pending.
|
|
123
|
+
The read-only health monitor additionally replays the complete current
|
|
124
|
+
planner/worker validation for every stored job. Canonical but obsolete jobs,
|
|
125
|
+
including commercial jobs from an earlier evidence-contract generation, block
|
|
126
|
+
health locally with `queue.job_binding_invalid`, independently of provider
|
|
127
|
+
health and without changing queue state.
|
|
113
128
|
|
|
114
129
|
Queue `succeeded` means only that a worker returned finite, NFC JSON. It is not
|
|
115
130
|
a native-quality attestation, signed release, or publication permission. The
|
|
@@ -856,7 +871,7 @@ byte-for-byte without signing again. A failed, omitted, duplicated, exchanged,
|
|
|
856
871
|
or policy-stale work item therefore cannot disappear behind a partial aggregate,
|
|
857
872
|
and a crash cannot silently replace the report used for a claim. Existing v1
|
|
858
873
|
and v2 campaign databases migrate transactionally to the v3 report schema.
|
|
859
|
-
Case-result schema
|
|
874
|
+
Case-result schema v8 and report schema v11 bind the same `valid_until` value.
|
|
860
875
|
|
|
861
876
|
After finalization, `BenchmarkCampaignStore.load_report` is the read-only
|
|
862
877
|
consumer boundary. It opens a consistent snapshot, requires the exact complete
|
|
@@ -1031,16 +1046,24 @@ service or hardware-backed signer; the repository tests use HMAC only as a
|
|
|
1031
1046
|
deterministic test double.
|
|
1032
1047
|
|
|
1033
1048
|
The receipt-verifier contract receives exactly `binding` and `receipt`.
|
|
1034
|
-
`binding` uses `blun.localization-quality-receipt-binding.
|
|
1049
|
+
`binding` uses `blun.localization-quality-receipt-binding.v9` and contains the
|
|
1035
1050
|
review purpose, job and canonical result hashes, full source and target text
|
|
1036
1051
|
plus hashes and locales, content type, glossary and policy versions, primary
|
|
1037
1052
|
and optional review-provider identities, software version, two-pass
|
|
1038
|
-
confidence, locale quality profile,
|
|
1039
|
-
|
|
1040
|
-
|
|
1053
|
+
confidence, locale quality profile, and, for commercial content, the exact
|
|
1054
|
+
nested locale-specific commercial profile plus its content-free targeted-review
|
|
1055
|
+
summary and exact advertised review-evidence-contract SHA-256, the canonical
|
|
1056
|
+
advertised routing-contract SHA-256 for every commercial result, the canonical
|
|
1057
|
+
advertised resolution-contract SHA-256 when targeted
|
|
1058
|
+
review is unresolved, the private text-free mapping from each opaque offer
|
|
1059
|
+
index to its ordered source and target Unicode code-point spans, and the
|
|
1060
|
+
human/independent-review
|
|
1061
|
+
requirements. It also carries the canonical quality-evidence request ID and
|
|
1062
|
+
evidence revision that produced the opaque receipt. The verifier must cryptographically
|
|
1041
1063
|
bind every field. It must reject a receipt issued for another result, policy,
|
|
1042
1064
|
model, profile, software version, locale, or review purpose. In particular, a
|
|
1043
|
-
quality receipt cannot satisfy a qualified-human or independent-model review
|
|
1065
|
+
quality receipt cannot satisfy a qualified-human or independent-model review,
|
|
1066
|
+
and an old receipt cannot be relabelled under a newer evidence response.
|
|
1044
1067
|
|
|
1045
1068
|
For deployments that keep verification behind a network trust boundary,
|
|
1046
1069
|
`integrations/website_localization_receipt_verifier_http.py` provides one
|
|
@@ -1098,13 +1121,18 @@ source and target, plus their hashes, the CMS event, plan and job identities,
|
|
|
1098
1121
|
source and target locales, content type, glossary and policy versions,
|
|
1099
1122
|
provider/model identity, software version, and a host-chosen
|
|
1100
1123
|
`evidence_revision`. Its deterministic `request_id` binds all non-text fields
|
|
1101
|
-
and the exact validated queue-result hash
|
|
1124
|
+
and the exact validated queue-result hash; both text hashes bind the complete
|
|
1125
|
+
source and target bytes. The durable store and HTTPS adapter independently
|
|
1126
|
+
recompute the ID from the same closed v8 identity field set before persistence
|
|
1127
|
+
or network access. The coordinator carries that exact ID and revision into
|
|
1128
|
+
each v5 receipt binding and the v5 signed approval; missing or substituted
|
|
1129
|
+
context blocks before receipt verification or signing. The adapter may call an independent
|
|
1102
1130
|
model, a qualified native reviewer, or a host-owned review service; no
|
|
1103
1131
|
provider transport or credential is built into the coordinator.
|
|
1104
1132
|
|
|
1105
1133
|
For deployments that need a concrete network boundary,
|
|
1106
1134
|
`integrations/website_localization_evidence_http.py` implements that interface
|
|
1107
|
-
as one request-bound HTTPS attempt. It validates the exact
|
|
1135
|
+
as one request-bound HTTPS attempt. It validates the exact v8 evidence request,
|
|
1108
1136
|
canonicalizes native Unicode without ASCII folding, binds the inner digest and
|
|
1109
1137
|
deterministic evidence ID in both headers and body, disables redirects, and
|
|
1110
1138
|
strictly validates the response envelope before the coordinator verifies its
|
|
@@ -1304,14 +1332,35 @@ creates one `blun.cms-localization-publication.v3` payload for the complete
|
|
|
1304
1332
|
locale set. It includes the site and website version, source identity, signed
|
|
1305
1333
|
source sequence and hash,
|
|
1306
1334
|
and, for each locale, the exact target text and hash, approval ID, expiry, and
|
|
1307
|
-
a `blun.website-localization-release-evidence.
|
|
1308
|
-
object binds the
|
|
1309
|
-
|
|
1310
|
-
|
|
1335
|
+
a `blun.website-localization-release-evidence.v14` object. That content-free
|
|
1336
|
+
object binds the exact machine-readable release-evidence-contract SHA-256,
|
|
1337
|
+
signed approval and worker-result hashes, quality-receipt
|
|
1338
|
+
hash, canonical evidence request ID and evidence revision, and the exact
|
|
1339
|
+
current target-locale quality-profile locale, version, and digest. It then
|
|
1340
|
+
binds either a null commercial scope or the exact commercial-profile ID,
|
|
1341
|
+
locale-specific commercial quality-profile version and digest, and validated
|
|
1342
|
+
review summary including its exact review-evidence-contract digest, plus the
|
|
1343
|
+
exact current content-free offer-routing- and resolution-contract digests. The
|
|
1344
|
+
resolution-policy digest is present even when the summary is already verified,
|
|
1345
|
+
while the separate resolution result remains absent. If that
|
|
1346
|
+
summary requires targeted review, the object also binds
|
|
1347
|
+
the exact ordered dimensions, commercial profile, resolution-contract digest,
|
|
1348
|
+
resolution method, receipt hash, primary provider identity, and independent
|
|
1349
|
+
provider identity when a second model was used. The receiver proves the two
|
|
1350
|
+
provider IDs differ and rejects a missing, stale, unexpected, cross-scope, or
|
|
1351
|
+
method-inconsistent resolution before the host commit. It contains no source
|
|
1352
|
+
text, target text, amount, private offer-routing map,
|
|
1311
1353
|
currency, tax wording, brand, or reviewer explanation. A CMS can therefore
|
|
1312
|
-
|
|
1354
|
+
identify the exact evidence and contract generation, pin the advertised profile, and reject
|
|
1355
|
+
missing, malformed, or drifted evidence
|
|
1313
1356
|
before replacing its current content, without treating a cross-language regex
|
|
1314
1357
|
as semantic proof.
|
|
1358
|
+
The reference receiver repeats the exact general locale-quality lookup for
|
|
1359
|
+
every active read, health check, and idempotent replay. This universal binding
|
|
1360
|
+
is independent of the additional commercial quality profile. A later language,
|
|
1361
|
+
morphology, terminology, or evaluation-profile generation therefore blocks the
|
|
1362
|
+
old bundle without overwriting it; the structural tombstone path remains
|
|
1363
|
+
available.
|
|
1315
1364
|
Its deterministic `delivery_id` is an idempotency key over those immutable
|
|
1316
1365
|
bytes. The host-owned publication authority signs and immediately verifies the
|
|
1317
1366
|
payload before the durable outbox accepts it. A partial, changed, expired, or
|
|
@@ -1399,8 +1448,17 @@ signed payload with a host-supplied
|
|
|
1399
1448
|
`PublicationExpectation`. That expectation binds the exact current event,
|
|
1400
1449
|
site, website version, plan, source identity, source generation and hash,
|
|
1401
1450
|
complete sorted required-locale set, content type, and commercial profile.
|
|
1402
|
-
|
|
1403
|
-
|
|
1451
|
+
The public capabilities additionally carry a separately hashed release-evidence
|
|
1452
|
+
contract with the exact field, digest, lineage, commercial-scope, and privacy
|
|
1453
|
+
rules. Every signed approval and release proof binds its exact contract digest.
|
|
1454
|
+
The runtime validates that complete contract against its canonical registry,
|
|
1455
|
+
so stale evidence and altered but self-rehashed substitutes block before host
|
|
1456
|
+
code.
|
|
1457
|
+
For commercial content, the receiver also recomputes each locale's canonical
|
|
1458
|
+
commercial quality-profile version and digest and requires the signed v7
|
|
1459
|
+
release evidence to match it exactly. A correctly signed but partial, stale,
|
|
1460
|
+
cross-locale, or differently scoped publication is therefore rejected before
|
|
1461
|
+
any CMS write.
|
|
1404
1462
|
|
|
1405
1463
|
The host supplies one commit callback. It must atomically and idempotently bind
|
|
1406
1464
|
the stable `(delivery_id, payload_sha256)` pair to the expected source revision,
|
|
@@ -1453,7 +1511,9 @@ must redact authorization headers and verified target text from logs.
|
|
|
1453
1511
|
Deployments without an existing atomic CMS transaction can use
|
|
1454
1512
|
`integrations/website_localization_cms_receiver_store.py` as the durable
|
|
1455
1513
|
reference host behind that WSGI application. Give `DurableCMSReceiverStore` a
|
|
1456
|
-
dedicated host-owned SQLite connection
|
|
1514
|
+
dedicated host-owned SQLite connection, the receiver's canonical
|
|
1515
|
+
`release_evidence_is_current` validator, and a closed validator backed by the
|
|
1516
|
+
configured publisher authority. The trusted CMS first calls
|
|
1457
1517
|
`register_source` with its exact current source expectation, then wires the
|
|
1458
1518
|
store's publication resolver, commit, tombstone resolver, delete, and health
|
|
1459
1519
|
methods directly into `CMSReceiverApplication`. Resolver results are exact
|
|
@@ -1473,10 +1533,19 @@ Backups and filesystem-level retention remain the host's responsibility. For
|
|
|
1473
1533
|
deletion, the trusted host must separately call `register_tombstone` with the exact active
|
|
1474
1534
|
publication ID, payload hash, generation, and locale set. A successful delete
|
|
1475
1535
|
atomically clears the active pointer, removes localized prose, and retains only
|
|
1476
|
-
content-free publication and tombstone bindings for replay detection.
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1536
|
+
content-free publication and tombstone bindings for replay detection. The exact
|
|
1537
|
+
canonical publisher signature is stored beside each active payload. Startup and
|
|
1538
|
+
health verify the schema, SQLite integrity, active pointers, canonical payload
|
|
1539
|
+
and expectation hashes, that publisher signature, every locale row, current
|
|
1540
|
+
release-evidence contract, approval expiry, and tombstone state. Active
|
|
1541
|
+
rendering and exact publication replay perform the same authorization checks
|
|
1542
|
+
after every restart. Schema v1 databases migrate to v2 without fabricating
|
|
1543
|
+
signatures: legacy active rows without the original proof stay blocked and
|
|
1544
|
+
unhealthy but remain structurally deletable.
|
|
1545
|
+
Structural-only tombstone operations deliberately remain available when an
|
|
1546
|
+
approval expires or a contract advances, so stale content can still be removed.
|
|
1547
|
+
This reference store is not a substitute for an existing CMS authorization
|
|
1548
|
+
model:
|
|
1480
1549
|
source and tombstone registration remain trusted host operations and its
|
|
1481
1550
|
content-reading method
|
|
1482
1551
|
requires the complete trusted publication expectation for the exact page
|
|
@@ -1648,30 +1717,100 @@ public request, response, deployment, and failure contract is documented in
|
|
|
1648
1717
|
|
|
1649
1718
|
Select `content_type: "commercial"` in the trusted CMS/backend for pricing,
|
|
1650
1719
|
offers, subscriptions and their contextual CTAs/conditions. This adds the
|
|
1651
|
-
versioned `translate-native.commercial.
|
|
1652
|
-
|
|
1653
|
-
|
|
1720
|
+
versioned `translate-native.commercial.v13` profile plus one exact
|
|
1721
|
+
`translate-native.commercial-locale-quality-profile.v2` object to the job
|
|
1722
|
+
payload, job ID and plan ID; the existing seven types retain their previous
|
|
1723
|
+
payloads and IDs. It is available for every planner locale, including `mt-MT`
|
|
1724
|
+
and `fi-FI`.
|
|
1654
1725
|
The public skill's [commercial guide](../translate-native/references/commercial-localization.md)
|
|
1655
1726
|
applies to all languages, with no hardcoded project prices, brands or products.
|
|
1727
|
+
For every review dimension, the private evidence must name exactly one verdict
|
|
1728
|
+
for each registered offer in registry order. The worker derives the global
|
|
1729
|
+
verdict from that matrix and requires offer-bound items for every equivalent,
|
|
1730
|
+
changed, or uncertain entry; evidence for one tier therefore cannot silently
|
|
1731
|
+
stand in for another tier.
|
|
1732
|
+
|
|
1733
|
+
When any offer-local verdict remains uncertain, the content-free review
|
|
1734
|
+
summary retains the affected dimension and zero-based position in the private
|
|
1735
|
+
offer registry. It never publishes configured offer identifiers. A qualified
|
|
1736
|
+
human or independent model resolution must acknowledge the exact same ordered
|
|
1737
|
+
scope; missing, duplicated, reordered, cross-dimension, or out-of-range entries
|
|
1738
|
+
block before publication. Global uncertainty remains representable with no
|
|
1739
|
+
offer positions when the evidence cannot safely identify an offer.
|
|
1740
|
+
|
|
1741
|
+
The 24 locale objects are not aliases for one universal prompt. Each has a
|
|
1742
|
+
distinct version and canonical SHA-256, binds the corresponding general locale
|
|
1743
|
+
quality generation, preserves that profile's native, fidelity, adversarial and
|
|
1744
|
+
institutional-reference focus, and adds the ten commercial checks. The worker
|
|
1745
|
+
reconstructs the object before provider access and supplies it to
|
|
1746
|
+
transcreation, source-hidden native review and source-aware fidelity review.
|
|
1747
|
+
Its version and digest are retained in the result's signed quality-profile
|
|
1748
|
+
binding. Changing either locale policy or the generic commercial generation
|
|
1749
|
+
therefore invalidates jobs, cache entries, review receipts and publication
|
|
1750
|
+
authority.
|
|
1751
|
+
|
|
1752
|
+
Each object also embeds `translate-native.commercial-rendering-reference.v1`
|
|
1753
|
+
from the tagged Unicode CLDR 48 JSON release. It records the resolved CLDR
|
|
1754
|
+
locale, default and native numbering systems, grouping threshold, decimal and
|
|
1755
|
+
grouping symbols, and the standard decimal, percent, currency, ISO-currency,
|
|
1756
|
+
approximation, limit, and range patterns. The explicit `de-AT`, `en-IE`, and
|
|
1757
|
+
`pt-PT` regional files are used where they exist; other profiles use the
|
|
1758
|
+
applicable language parent. Non-breaking and narrow non-breaking spaces remain
|
|
1759
|
+
exact Unicode data in the canonical profile and its digest.
|
|
1760
|
+
|
|
1761
|
+
These patterns guide native rendering; they do not prove semantic fidelity.
|
|
1762
|
+
Equivalent number words, written percentages, and digit forms are permitted,
|
|
1763
|
+
while exact values and currency identities must survive without rounding or
|
|
1764
|
+
conversion. Any ambiguity is routed to an independent model or qualified
|
|
1765
|
+
native-domain review and remains blocked until resolved.
|
|
1766
|
+
|
|
1767
|
+
At the outer CMS dispatch boundary,
|
|
1768
|
+
`GET /v1/localization/cms-submission-dispatch/commercial-profile` exposes this
|
|
1769
|
+
same complete profile and 24-locale rendering registry without project
|
|
1770
|
+
content. The separately scoped response is bound to both the public dispatch
|
|
1771
|
+
capability and the live website capability generation. A CMS can therefore
|
|
1772
|
+
discover the exact amount, currency, discount basis, qualifier, tax, billing,
|
|
1773
|
+
commitment, renewal, cancellation, condition, and offer-assignment rules it
|
|
1774
|
+
must preserve without receiving publication authority or any configured
|
|
1775
|
+
price, brand, or product value.
|
|
1776
|
+
|
|
1777
|
+
The profile now embeds a separately versioned and hashed
|
|
1778
|
+
`review_evidence_contract`. It gives CMS and provider adapters the exact closed
|
|
1779
|
+
report fields, limits, Unicode code-point span rules, offer containment,
|
|
1780
|
+
relation semantics, ten-dimension order and verdict invariants without exposing
|
|
1781
|
+
project prices, source or target text, actual spans, brands, or reviewer prose.
|
|
1782
|
+
Capability discovery rejects a missing, altered, reordered, or self-rehashed
|
|
1783
|
+
contract. The contract validates evidence structure only, grants no publication
|
|
1784
|
+
authority, and leaves uncertain meaning on the independent-review route.
|
|
1656
1785
|
|
|
1657
1786
|
The three provider calls stay ordered: transcreation, source-hidden native
|
|
1658
1787
|
editing, source-aware fidelity. Commercial fidelity additionally returns
|
|
1659
1788
|
`commercial_review` with the profile schema, `coverage` (`complete` or
|
|
1660
|
-
`uncertain`),
|
|
1789
|
+
`uncertain`), a canonical `offers` registry, and `checks` for
|
|
1790
|
+
`amount_currency`, `discount_basis`, `qualifiers`,
|
|
1661
1791
|
`tax_status`, `billing_interval`, `commitment`, `renewal`, `cancellation`,
|
|
1662
|
-
`conditions`, and `offer_assignment`.
|
|
1792
|
+
`conditions`, and `offer_assignment`. Each registered offer has a unique ID and
|
|
1793
|
+
ordered, non-overlapping source and target regions; multiple discontiguous
|
|
1794
|
+
regions may bind linked footnotes, but no region may overlap another offer.
|
|
1795
|
+
Every check has `status` (`equivalent`,
|
|
1663
1796
|
`not_present`, `changed`, `uncertain`) and `items`; each item has `offer`,
|
|
1664
1797
|
`relation` (`matched`, `source_only`, or `target_only`), `source_span`,
|
|
1665
1798
|
`target_span`, and `explanation`. Spans are zero-based Unicode code-point
|
|
1666
|
-
offsets with an exclusive end
|
|
1799
|
+
offsets with an exclusive end and must remain inside the named offer's declared
|
|
1800
|
+
regions. A one-sided item uses `null` only for the side
|
|
1667
1801
|
that is absent, so an omitted condition and an invented target claim can be
|
|
1668
|
-
represented without fabricating a counterpart. The
|
|
1669
|
-
dimension guidance are supplied
|
|
1802
|
+
represented without fabricating a counterpart. The illustrative response shape
|
|
1803
|
+
and dimension guidance are supplied alongside the complete, separately hashed
|
|
1804
|
+
`review_evidence_contract` in each commercial fidelity request. The worker
|
|
1805
|
+
verifies that contract against the installed public commercial profile before
|
|
1806
|
+
any provider access. It remains absent from transcreation and source-hidden
|
|
1807
|
+
native review, preserving the independent first quality stage.
|
|
1670
1808
|
|
|
1671
1809
|
Equivalent checks require matched evidence; absent dimensions require empty
|
|
1672
|
-
items
|
|
1673
|
-
|
|
1674
|
-
|
|
1810
|
+
items, and equivalent `offer_assignment` evidence names every registered offer
|
|
1811
|
+
exactly once. A dimension-level changed or uncertain verdict requires at least
|
|
1812
|
+
one specific evidence item, while globally uncertain coverage may remain
|
|
1813
|
+
span-free instead of inventing a location. Changed terms, missing dimensions, invalid
|
|
1675
1814
|
relations/spans or a normal PASS without the commercial report block the worker
|
|
1676
1815
|
without a publishable result. Uncertain coverage, an uncertain dimension or an
|
|
1677
1816
|
all-absent report instead preserve the candidate as a low-confidence fidelity
|
|
@@ -1682,15 +1821,42 @@ publish. The evidence request and independent verifier both receive the bound
|
|
|
1682
1821
|
commercial profile and policy context. The old known-good translation remains.
|
|
1683
1822
|
Do not classify legal text as commercial to bypass the legal human-review gate.
|
|
1684
1823
|
|
|
1685
|
-
The full commercial response hash stays in the normal quality-pass receipt
|
|
1686
|
-
|
|
1824
|
+
The full commercial response hash stays in the normal quality-pass receipt.
|
|
1825
|
+
Plan v3 and job v3 also carry the exact current review-evidence-contract
|
|
1826
|
+
SHA-256. That digest participates in every commercial job ID, idempotency key,
|
|
1827
|
+
and plan ID, and the worker joins it to the complete fidelity-request contract
|
|
1828
|
+
before provider access. A contract-only policy change therefore creates new
|
|
1829
|
+
work identity and cannot reuse a stale queue or translation-memory entry.
|
|
1687
1830
|
The content-free result summary uses
|
|
1688
|
-
`translate-native.commercial-review-summary.
|
|
1831
|
+
`translate-native.commercial-review-summary.v6`; the authenticated capability
|
|
1689
1832
|
response publishes its exact separately hashed machine contract, including the
|
|
1690
1833
|
ordered allowed dimensions and the invariant between status and unresolved
|
|
1691
|
-
dimensions.
|
|
1692
|
-
|
|
1693
|
-
|
|
1834
|
+
dimensions. Its evidence digest covers a versioned canonical binding of the
|
|
1835
|
+
commercial profile, exact advertised review-evidence-contract SHA-256, exact
|
|
1836
|
+
UTF-8 source and target hashes, and complete review evidence. Quality-evidence
|
|
1837
|
+
request v13 and receipt-binding v9 carry that exact summary. Every commercial
|
|
1838
|
+
evidence request now also carries the exact public routing-contract SHA-256,
|
|
1839
|
+
including verified results without a private route, so the evidence provider
|
|
1840
|
+
can issue a receipt for the same binding later enforced by the verifier and
|
|
1841
|
+
signed release. The digest participates in the deterministic request identity;
|
|
1842
|
+
non-commercial requests require `null`. When review is
|
|
1843
|
+
required, they additionally carry a private
|
|
1844
|
+
`translate-native.commercial-review-routing.v2` context that maps each opaque
|
|
1845
|
+
offer index to its exact ordered source and target regions. It contains no
|
|
1846
|
+
configured offer IDs, text, prices, brands, or reviewer prose, is validated
|
|
1847
|
+
against both complete texts before network access, and participates in request
|
|
1848
|
+
and receipt identity. Its required `contract_sha256` must match the separately
|
|
1849
|
+
advertised machine-readable routing contract, whose public shape fixes Unicode
|
|
1850
|
+
offset, exclusive-end, length, order, overlap, privacy, and trust-boundary
|
|
1851
|
+
semantics without exposing an actual route. The route itself is deliberately
|
|
1852
|
+
absent from CMS release evidence.
|
|
1853
|
+
The unresolved quality-evidence request carries the complete content-free
|
|
1854
|
+
routing contract beside the route. Its deterministic identity covers both, and
|
|
1855
|
+
the HTTPS adapter reconstructs the canonical contract before authentication or
|
|
1856
|
+
transport so an external reviewer need not rely on separate discovery.
|
|
1857
|
+
Adapters can therefore route a reviewer to the affected offer without exposing
|
|
1858
|
+
project configuration publicly, while rejecting unknown, reordered,
|
|
1859
|
+
contradictory, or transplanted scope.
|
|
1694
1860
|
As before, the host must verify an independent quality receipt before signing.
|
|
1695
1861
|
Schema validation does not prove that a model's semantic findings are true or
|
|
1696
1862
|
complete. The receipt verifier must validate evidence held by the trusted host;
|
|
@@ -1703,9 +1869,10 @@ allows equivalent locale forms, and converts unresolved evidence into a bound
|
|
|
1703
1869
|
low-confidence review route. Keeping source evidence out of the native pass
|
|
1704
1870
|
prevents source-shaped copy from receiving an
|
|
1705
1871
|
artificial advantage. Version-bound job IDs prevent old policy/cache reuse.
|
|
1706
|
-
Tests exercise
|
|
1707
|
-
native digit/number-word representations, multiple offers,
|
|
1708
|
-
queue terminal failures and the
|
|
1872
|
+
Tests exercise distinct canonical profiles across all 24 locale routes, ten
|
|
1873
|
+
defect dimensions, native digit/number-word representations, multiple offers,
|
|
1874
|
+
source blindness, locale-profile tampering, queue terminal failures and the
|
|
1875
|
+
actual worker-to-signed-publication path.
|
|
1709
1876
|
Scripted adapters test enforcement, not real native quality or DeepL superiority.
|
|
1710
1877
|
|
|
1711
1878
|
## One-transition service loop
|