@treeseed/sdk 0.13.0-rc.88 → 0.13.0-rc.89

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.
@@ -1 +1 @@
1
- {"completedAt":"2026-09-05T04:21:52.801Z"}
1
+ {"completedAt":"2026-09-05T04:40:44.268Z"}
@@ -28,7 +28,7 @@ function operation(name, method) {
28
28
  oauthScopes: read ? ["treeseed:read"] : ["treeseed:projects:write"],
29
29
  kind: read ? "read" : "mutation",
30
30
  riskClass: read ? "ordinary" : "credential",
31
- confirmation: read ? "never" : "input_required",
31
+ confirmation: "never",
32
32
  surfaces: ["rest"],
33
33
  cacheScope: "none",
34
34
  pagination: "none",
@@ -56,8 +56,9 @@ function validateControlPlaneCatalog(catalog) {
56
56
  diagnostics.push({ code: "upstream_binding_invalid", path: `${path}.upstream`, message: "Upstream bindings require an operation ID and exact SHA-256 contract digest." });
57
57
  }
58
58
  const elevatedRisk = operation.riskClass !== "ordinary";
59
- if (elevatedRisk !== (operation.confirmation === "input_required")) {
60
- diagnostics.push({ code: "confirmation_policy_invalid", path: `${path}.confirmation`, message: "Elevated-risk operations require input_required; ordinary operations must not." });
59
+ const directCredential = operation.riskClass === "credential" && operation.confirmation === "never" && operation.authentication === "oauth" && operation.redactedPaths.includes("body.values");
60
+ if (!directCredential && elevatedRisk !== (operation.confirmation === "input_required")) {
61
+ diagnostics.push({ code: "confirmation_policy_invalid", path: `${path}.confirmation`, message: "Elevated-risk operations require input_required unless authenticated credential input is explicitly redacted; ordinary operations must not." });
61
62
  }
62
63
  if (operation.kind === "read" && (operation.idempotency.required || operation.concurrency.required || operation.receipt)) {
63
64
  diagnostics.push({ code: "read_mutation_contract_invalid", path, message: "Read operations cannot require mutation idempotency, write concurrency, or mutation receipts." });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@treeseed/sdk",
3
- "version": "0.13.0-rc.88",
3
+ "version": "0.13.0-rc.89",
4
4
  "description": "Portable TreeSeed contracts, standards, and typed remote control-plane clients.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {