@perkos/agent-sdk 0.7.1 → 0.8.0-rc.1

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 (83) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +69 -17
  3. package/dist/builders.d.ts +5 -1
  4. package/dist/builders.d.ts.map +1 -1
  5. package/dist/builders.js +155 -11
  6. package/dist/builders.js.map +1 -1
  7. package/dist/client.d.ts +8 -1
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +168 -26
  10. package/dist/client.js.map +1 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +2 -0
  13. package/dist/constants.js.map +1 -1
  14. package/dist/custody/backend.d.ts +4 -0
  15. package/dist/custody/backend.d.ts.map +1 -0
  16. package/dist/custody/backend.js +149 -0
  17. package/dist/custody/backend.js.map +1 -0
  18. package/dist/custody/cli.d.ts +3 -0
  19. package/dist/custody/cli.d.ts.map +1 -0
  20. package/dist/custody/cli.js +43 -0
  21. package/dist/custody/cli.js.map +1 -0
  22. package/dist/custody/engine.d.ts +54 -0
  23. package/dist/custody/engine.d.ts.map +1 -0
  24. package/dist/custody/engine.js +115 -0
  25. package/dist/custody/engine.js.map +1 -0
  26. package/dist/custody/ledger.d.ts +24 -0
  27. package/dist/custody/ledger.d.ts.map +1 -0
  28. package/dist/custody/ledger.js +122 -0
  29. package/dist/custody/ledger.js.map +1 -0
  30. package/dist/custody/permit.d.ts +42 -0
  31. package/dist/custody/permit.d.ts.map +1 -0
  32. package/dist/custody/permit.js +91 -0
  33. package/dist/custody/permit.js.map +1 -0
  34. package/dist/custody/socket.d.ts +11 -0
  35. package/dist/custody/socket.d.ts.map +1 -0
  36. package/dist/custody/socket.js +118 -0
  37. package/dist/custody/socket.js.map +1 -0
  38. package/dist/evaluation-commitments.d.ts +47 -0
  39. package/dist/evaluation-commitments.d.ts.map +1 -0
  40. package/dist/evaluation-commitments.js +96 -0
  41. package/dist/evaluation-commitments.js.map +1 -0
  42. package/dist/index.d.ts +6 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/mcp/cli.d.ts +3 -0
  47. package/dist/mcp/cli.d.ts.map +1 -0
  48. package/dist/mcp/cli.js +36 -0
  49. package/dist/mcp/cli.js.map +1 -0
  50. package/dist/mcp/evaluation.d.ts +33 -0
  51. package/dist/mcp/evaluation.d.ts.map +1 -0
  52. package/dist/mcp/evaluation.js +141 -0
  53. package/dist/mcp/evaluation.js.map +1 -0
  54. package/dist/mcp/server.d.ts +27 -0
  55. package/dist/mcp/server.d.ts.map +1 -0
  56. package/dist/mcp/server.js +207 -0
  57. package/dist/mcp/server.js.map +1 -0
  58. package/dist/policy.d.ts.map +1 -1
  59. package/dist/policy.js +7 -2
  60. package/dist/policy.js.map +1 -1
  61. package/dist/service-fees.d.ts +15 -0
  62. package/dist/service-fees.d.ts.map +1 -0
  63. package/dist/service-fees.js +109 -0
  64. package/dist/service-fees.js.map +1 -0
  65. package/dist/types.d.ts +66 -2
  66. package/dist/types.d.ts.map +1 -1
  67. package/docs/ARCHITECTURE.md +18 -2
  68. package/docs/EXISTING_AGENT.md +123 -0
  69. package/docs/HERMES_BUYER.md +91 -0
  70. package/docs/HERMES_CHECKPOINTS.md +88 -0
  71. package/docs/HERMES_CUSTODY.md +164 -0
  72. package/docs/HERMES_MCP.md +157 -0
  73. package/docs/HERMES_PROVIDER.md +98 -0
  74. package/docs/RELEASE_0.8.0_RC1.md +60 -0
  75. package/docs/SERVICE_FEES.md +108 -0
  76. package/docs/TESTNET_QUICKSTART.md +123 -0
  77. package/docs/VALIDATION_AND_RELEASE.md +82 -0
  78. package/docs/WALLET_SIGNER_SETUP.md +52 -0
  79. package/examples/service-fees.ts +36 -0
  80. package/examples/testnet-journal.ts +57 -0
  81. package/examples/testnet-lifecycle.ts +188 -294
  82. package/examples/testnet.env.example +12 -14
  83. package/package.json +7 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,56 @@ All notable changes to `@perkos/agent-sdk` are documented here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.8.0-rc.1 — QA release candidate (not published)
8
+
9
+ This candidate packages the QA additions below without changing the default v5/v4 contracts.
10
+ Publication requires separate approval and must use the `next` tag, leaving `latest` at 0.7.1.
11
+ See [candidate release notes](docs/RELEASE_0.8.0_RC1.md) for installation and validation gates.
12
+
13
+ - Record the verified internal Hermes sBTC lifecycle and its public settlement evidence.
14
+ Separate published npm 0.7.1 from the reviewed QA artifact, conversation completion from
15
+ on-chain outcomes, and manifest hashes from versioned commitments. Preserve all release,
16
+ signing and production boundaries; no npm publication or default changes.
17
+
18
+ - Return `null` for absent reputation-sync records on autonomous STX/sBTC contracts
19
+ (`u823`/`u923`), preserving earlier `u623`/`u723` handling. Keep unrelated contract
20
+ errors visible; add regression coverage and readable error descriptions. No changes
21
+ to signing, settlement, contract defaults or npm publication.
22
+
23
+ - Allow 45 seconds for public QA evaluation admission (15 seconds for status reads)
24
+ to accommodate paced eligibility checks. Return sanitized, actionable quota,
25
+ eligibility and transport errors without automatic retries or budget changes.
26
+ Preserve deterministic-ID reconciliation after an ambiguous response.
27
+
28
+ - Document wallet funding versus escrow, per-role QA budgets, six-burn custody confirmation,
29
+ job-bound provider handoff and ambiguous-operation recovery. Align README and buyer/provider
30
+ manuals without changing SDK runtime, production defaults or npm publication.
31
+
32
+ - Start external onboarding with an already running agent and its own LLM; no PerkOS-LLM
33
+ account or model migration required. Add separate operator-owned wallet/signer preparation,
34
+ registration confirmation/read-back, role handoffs and release boundaries. Align the Hermes
35
+ examples and README; no wallet-generation tool, runtime behavior or npm release changes.
36
+
37
+ - Add explicit provider-only QA MCP evaluation admission/status, bound to a custody-authorized
38
+ job and confirmed submission. Validate on-chain identity, budget and commitments; query the
39
+ deterministic evaluation ID before admission. Fixed public endpoint, bounded/sanitized replies,
40
+ no evaluator credentials, new signing, automatic retry, extra fee or x402 purchase. Off by default.
41
+
42
+ - Add opt-in QA custody delegation: Linux signer service, immutable per-job/role permits, fixed gas and escrow caps, durable pre-sign reservation/pre-broadcast txid, nonce/chain guards and fail-closed replay/recovery. Signing stays off by default. No mainnet, npm publication, live Hermes validation or deployment is implied.
43
+ - Add real Unix-socket/MCP protocol tests, offline fixture signing and actual SDK lifecycle planning against mocked testnet reads. Document the separate-UID isolation gate, fee consent and remaining evaluator/x402/video work.
44
+
45
+ - Package a Node-only QA MCP stdio binary with six read/prepare tools per role, fixed testnet contracts, strict inputs and sanitized failures. No wallet, signing, broadcast or x402 capabilities are added to this adapter.
46
+ - Add official MCP protocol/stdio tests and an honest candidate installation guide. Browser exports, published npm package and deployments remain unchanged.
47
+
48
+ - Add QA commitment helpers for client criteria and provider evidence using existing contract fields.
49
+ - Replace the old centralized lifecycle example with role-separated, journaled actions and appeal-aware finalization; offline preview remains default.
50
+ - Document candidate-only onboarding, isolated custody, fee consent and deployment/E2E limitations; npm and deployment defaults are unchanged.
51
+
52
+ - Add explicit opt-in STX v6/sBTC v5 earned-service-fee reads, initialization, waiver and treasury-funded refund methods. Published 0.7.1 and deployed defaults remain unchanged.
53
+ - Require client/provider acceptance of gross budget, 200 bps, treasury and net rejection refund before candidate funding/submission; fail closed on inconsistent live state.
54
+ - Preserve aggregate gross deny-mode settlement constraints and job-pinned sBTC tokens; account for treasury refunds in spending limits.
55
+ - Add a signer-free fee inspection example, candidate integration guide, accounting/consent/role regression tests. No x402 second charge, contract deployment or npm publication is introduced.
56
+
7
57
  ## 0.7.1 - 2026-09-02
8
58
 
9
59
  ### Changed
package/README.md CHANGED
@@ -9,22 +9,68 @@ This repository is the continuation of `PerkOS-xyz/PerkOS-Agent-SDK`, renamed to
9
9
  public SDK with the Nayori product identity. The npm package remains `@perkos/agent-sdk` and the
10
10
  complete Git history, releases, issues, and pull requests are preserved.
11
11
 
12
- > Status: 0.7.1 is the release candidate that promotes Nayori's verified v5/v4 contracts as the
12
+ > Status: npm 0.7.1 uses Nayori's verified v5/v4 contracts as the
13
13
  > default integration. Read clients,
14
14
  > transaction builders, browser and headless signer
15
15
  > adapters, confirmation receipts, safety policies, and a transactional testnet quickstart are
16
16
  > implemented. The x402 v2 client and Stacks facilitator foundations are implemented, with
17
- > wallet-linked OAuth and MCP support for the invite-only testnet pilot. The hosted testnet rollout
18
- > is live; external review and independently attributable adoption evidence remain open. The direct x402
17
+ > wallet-linked OAuth and MCP support for invite-only partners. QA uses Stacks testnet;
18
+ > production uses mainnet. External review and independently attributable adoption evidence remain open. The direct x402
19
19
  > profile includes request-bound pure verification
20
20
  > and payer-side intent, policy, Leather, and remote-signer foundations for STX, sBTC, and USDCx.
21
21
  > The SDK also implements the MPP PaymentAuth `usdc`/`charge` Stacks profile for direct USDCx,
22
22
  > including canonical challenges, credentials, pure verification and settlement receipts.
23
23
  > Every payment signature remains delegated to the configured wallet or custody boundary. Mainnet
24
- > facilitator settlement remains disabled.
24
+ > facilitator settlement is confirmation-gated and payer-approved; sponsorship remains disabled.
25
+
26
+ ## Connect an existing agent
27
+
28
+ This source prepares **0.8.0-rc.1**, an unpublished QA candidate. Stable npm remains 0.7.1.
29
+ See [candidate release notes and exact installation](docs/RELEASE_0.8.0_RC1.md).
30
+ The candidate preserves default v5/v4 contracts; its Hermes signer pilot is testnet-only.
31
+
32
+ Your agent is already installed and working with your own LLM. Keep that setup: Nayori does not
33
+ require PerkOS-LLM, Hermes or sharing model credentials. Start with the
34
+ [existing-agent onboarding guide](docs/EXISTING_AGENT.md): choose SDK/MCP → prepare your own
35
+ wallet/signer separately → pin testnet and limits → register and verify the agent ID → create
36
+ or fulfill work → verify settlement and reputation. Wallet creation is not registration, and
37
+ OAuth access is not payment authority. The Hermes walkthrough is an unreleased QA example,
38
+ not a prerequisite. One operator-supervised internal sBTC lifecycle has passed; this is not
39
+ certification of external onboarding. See [validation and release boundaries](docs/VALIDATION_AND_RELEASE.md).
40
+
41
+ Use the [QA checkpoints and confirmation guide](docs/HERMES_CHECKPOINTS.md) to distinguish
42
+ wallet funding, registration, funded escrow, submitted work and final settlement. The custody
43
+ pilot requires six subsequent Bitcoin burn blocks before advancing an operation; a txid or
44
+ explorer success alone does not clear that gate. Preserve the journal rather than re-signing.
25
45
 
26
46
  ## Requirements
27
47
 
48
+ ### Unreleased Hermes MCP foundation
49
+
50
+ The QA candidate includes the Node-only `nayori-mcp` stdio binary for public testnet
51
+ reads and offline buyer/provider commitments. It has **no signer, broadcast, x402 purchase
52
+ or wallet-generation tools by default**. Optional operator-configured delegation to the separate
53
+ `nayori-custody` candidate enables bounded QA actions without putting a key in MCP. Neither
54
+ candidate is published. The reviewed QA source passed one funded, operator-supervised Hermes
55
+ buyer/provider lifecycle; npm-only installation, broader autonomy and x402 remain separate gates.
56
+ Provider operators may additionally enable public QA evaluation admission for the permitted,
57
+ confirmed submission; this does not enable x402 purchases or expose evaluator credentials. See
58
+ [MCP setup](docs/HERMES_MCP.md) and [custody permissions, limits and release gates](docs/HERMES_CUSTODY.md).
59
+ Role-specific recording/QA guides: [buyer](docs/HERMES_BUYER.md) and [provider](docs/HERMES_PROVIDER.md).
60
+ Evaluation admission has a bounded 45-second timeout; status reads retain 15 seconds.
61
+ Check evaluator capacity before submission and reconcile the existing evaluation ID after
62
+ an error. Do not retry an expired review or increase spending limits automatically.
63
+
64
+ ### Unreleased earned-service-fee integration
65
+
66
+ This branch adds opt-in STX v6/sBTC v5 support for a 2% **included**, evaluation-earned fee:
67
+ net provider payout on approval or net client refund on evaluated rejection. The full budget
68
+ stays in escrow until final settlement. The new methods are not in npm 0.7.1 and the candidate
69
+ contracts are not deployed defaults. Existing jobs remain unchanged. See the
70
+ [integration and accounting guide](docs/SERVICE_FEES.md) before enabling any signer.
71
+
72
+ ### Runtime
73
+
28
74
  - Node.js 20 or newer
29
75
  - npm 10 or newer
30
76
 
@@ -78,19 +124,20 @@ offline, contains no private key and does not request a wallet signature or broa
78
124
  npm run quickstart:mpp
79
125
  ```
80
126
 
81
- The transactional quickstart is also safe by default: it only prints a seven-step sBTC testnet
82
- lifecycle and its funding-policy decision.
127
+ The candidate transactional quickstart is safe by default: it prints an offline, role-separated
128
+ STX/sBTC testnet workflow with committed criteria, provider evidence and appeal-aware settlement.
83
129
 
84
130
  ```bash
85
131
  npm run quickstart:testnet
86
132
  ```
87
133
 
88
- Live testnet execution requires three distinct funded roles and the exact opt-in documented in
89
- [`examples/testnet.env.example`](examples/testnet.env.example). It confirms every transaction
90
- before moving to the next lifecycle step. The complete flow was verified on testnet with exact
91
- 100-satoshi escrow, provider payout, cleared escrow, and reputation update; the
92
- [completion transaction](https://explorer.hiro.so/txid/0x5cf34295641a9291a2b6785d6db95a5c56b4d3b40d4281c86da194acd4c64248?chain=testnet)
93
- is publicly inspectable.
134
+ Use the [role-separated QA guide](docs/TESTNET_QUICKSTART.md) and
135
+ [`examples/testnet.env.example`](examples/testnet.env.example). Each process uses only its own
136
+ client or provider signer; neither receives the evaluator key. One action runs per invocation.
137
+ An external journal preserves txids and refuses automatic retries after ambiguous signing.
138
+ The new bridge and quickstart are **unreleased QA candidates**, not a completed public Hermes
139
+ integration or a new on-chain E2E result. Existing historical completion receipts concern an
140
+ earlier workflow and do not verify these changes.
94
141
 
95
142
  ## Read on-chain state
96
143
 
@@ -595,12 +642,17 @@ See [Architecture](docs/ARCHITECTURE.md), [x402 payments](docs/X402_PAYMENTS.md)
595
642
  [Security](SECURITY.md) for the trust boundaries and
596
643
  responsible disclosure process.
597
644
 
598
- ## QA-first release
645
+ ## QA promotion
646
+
647
+ New integration work is reviewed in pull requests targeting `qa`; promotion to `main` is a
648
+ separate reviewed release after QA verification. QA consumes an exact commit or tarball and
649
+ never publishes npm as a side effect. Operator deployments are initiated from the approved Mac,
650
+ with image builds on the VPS; do not assume GitHub-hosted runners can reach that server.
599
651
 
600
- `qa` is the protected integration branch and `main` is production. Every QA commit must pass the
601
- SDK verification matrix, package dry-run, dependency audit and a clean-consumer package smoke on
602
- the Nayori VPS before an exact-SHA release branch may target `main`. npm publication remains a
603
- separate explicit release action and is never triggered by a branch push.
652
+ The repository also retains the historical `Promote exact main commit to QA` workflow. It accepts
653
+ only a full SHA already in `main` and a fast-forward from `qa`. It is not the forward path for
654
+ new QA-only changes: do not force or rewind branches to make it run. Branch protection and
655
+ restricted GitHub Actions bypass remain required where that legacy workflow is used.
604
656
 
605
657
  ## Development
606
658
 
@@ -1,4 +1,4 @@
1
- import type { AppealDecisionInput, AssignProviderInput, ContractCallPlan, CreateJobInput, DecisionSettlementInput, FundJobInput, JobAmountInput, PaymentAsset, RateProviderInput, RecordDecisionInput, RegisterAgentInput, ResolvedPerkOSConfig, ResolveAppealPlanInput, SettleJobInput, SubmitWorkInput, UpdateAgentInput } from "./types.js";
1
+ import type { AppealDecisionInput, AssignProviderInput, ContractCallPlan, CreateJobInput, DecisionSettlementInput, FundJobInput, InitializeServiceFeeProtocolInput, RefundServiceFeePlanInput, WaiveServiceFeePlanInput, JobAmountInput, PaymentAsset, RateProviderInput, RecordDecisionInput, RegisterAgentInput, ResolvedPerkOSConfig, ResolveAppealPlanInput, SettleJobInput, SubmitWorkInput, UpdateAgentInput } from "./types.js";
2
2
  export declare class PerkOSTransactionBuilder {
3
3
  readonly config: ResolvedPerkOSConfig;
4
4
  constructor(config: ResolvedPerkOSConfig);
@@ -21,6 +21,10 @@ export declare class PerkOSTransactionBuilder {
21
21
  settleAppealTimeout(input: DecisionSettlementInput): ContractCallPlan;
22
22
  retryReputationSync(asset: PaymentAsset, jobIdInput: bigint | number | string): ContractCallPlan;
23
23
  rateProvider(input: RateProviderInput): ContractCallPlan;
24
+ initializeServiceFeeProtocol(input: InitializeServiceFeeProtocolInput): ContractCallPlan;
25
+ waiveServiceFee(input: WaiveServiceFeePlanInput): ContractCallPlan;
26
+ refundServiceFee(input: RefundServiceFeePlanInput): ContractCallPlan;
27
+ private requireServiceFees;
24
28
  private decisionSettlement;
25
29
  private settlement;
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,cAAc,EAEd,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAuFpB,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;gBAE1B,MAAM,EAAE,oBAAoB;IAIxC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,gBAAgB;IA8B1D,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB;IAuBtD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,gBAAgB;IAWzE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAsBlD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAYlD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB;IA2B9C,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB;IAiB5D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB;IAWpD,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAIpD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAIlD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAIlD,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAI5D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB;IAgB5D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB;IAc5D,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB;IAMlE,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,gBAAgB;IAQ9D,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB;IAMrE,mBAAmB,CACjB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GACnC,gBAAgB;IAWnB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,gBAAgB;IAgBxD,OAAO,CAAC,kBAAkB;IAkC1B,OAAO,CAAC,UAAU;CAoCnB"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,iCAAiC,EACjC,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EAEd,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAiGpB,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;gBAE1B,MAAM,EAAE,oBAAoB;IAIxC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,gBAAgB;IAiC1D,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB;IA4BtD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,gBAAgB;IAWzE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IA0BlD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAYlD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB;IAkE9C,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB;IAiB5D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB;IAsDpD,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAIpD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAIlD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAIlD,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB;IAI5D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB;IAgB5D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,gBAAgB;IAW5D,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB;IAMlE,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,gBAAgB;IAQ9D,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB;IAMrE,mBAAmB,CACjB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GACnC,gBAAgB;IAWnB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,gBAAgB;IAgBxD,4BAA4B,CAC1B,KAAK,EAAE,iCAAiC,GACvC,gBAAgB;IAsCnB,eAAe,CAAC,KAAK,EAAE,wBAAwB,GAAG,gBAAgB;IAkBlE,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,GAAG,gBAAgB;IAyCpE,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IA0D1B,OAAO,CAAC,UAAU;CA6CnB"}
package/dist/builders.js CHANGED
@@ -1,8 +1,11 @@
1
1
  import { Cl, Pc } from "@stacks/transactions";
2
2
  import { PerkOSError } from "./errors.js";
3
+ import { quoteServiceFee, supportsServiceFees, validateServiceFeeSplit, } from "./service-fees.js";
3
4
  import { assertAscii, assertPrincipal, parseContractId, toHash32, toUint, } from "./validation.js";
4
5
  function commerceContract(config, asset) {
5
- return asset === "sbtc" ? config.contracts.sbtcCommerce : config.contracts.stxCommerce;
6
+ return asset === "sbtc"
7
+ ? config.contracts.sbtcCommerce
8
+ : config.contracts.stxCommerce;
6
9
  }
7
10
  function plan(config, contract, functionName, functionArgs, intent, postConditions = []) {
8
11
  return {
@@ -21,7 +24,9 @@ function tokenArg(config, tokenContract = config.contracts.sbtcToken) {
21
24
  return Cl.contractPrincipal(token.address, token.name);
22
25
  }
23
26
  function escrowArgs(config, asset, baseArgs, sbtcToken) {
24
- return asset === "sbtc" ? [...baseArgs, tokenArg(config, sbtcToken)] : baseArgs;
27
+ return asset === "sbtc"
28
+ ? [...baseArgs, tokenArg(config, sbtcToken)]
29
+ : baseArgs;
25
30
  }
26
31
  function exactTransfer(config, asset, sender, amount, sbtcToken) {
27
32
  if (asset === "stx") {
@@ -85,11 +90,15 @@ export class PerkOSTransactionBuilder {
85
90
  }
86
91
  return plan(this.config, this.config.contracts.agentRegistry, "update-agent", [
87
92
  Cl.uint(agentId),
88
- input.name === undefined ? Cl.none() : Cl.some(Cl.stringAscii(input.name)),
93
+ input.name === undefined
94
+ ? Cl.none()
95
+ : Cl.some(Cl.stringAscii(input.name)),
89
96
  input.description === undefined
90
97
  ? Cl.none()
91
98
  : Cl.some(Cl.stringAscii(input.description)),
92
- input.wallet === undefined ? Cl.none() : Cl.some(Cl.principal(input.wallet)),
99
+ input.wallet === undefined
100
+ ? Cl.none()
101
+ : Cl.some(Cl.principal(input.wallet)),
93
102
  ], { operation: "update-agent" });
94
103
  }
95
104
  deactivateAgent(agentIdInput) {
@@ -125,12 +134,40 @@ export class PerkOSTransactionBuilder {
125
134
  }
126
135
  assertPrincipal(input.sender, "sender", this.config.network);
127
136
  const contract = commerceContract(this.config, input.asset);
137
+ if (supportsServiceFees(contract, input.asset)) {
138
+ const acceptance = input.serviceFeeAcceptance;
139
+ if (!acceptance ||
140
+ acceptance.gross !== amount ||
141
+ acceptance.basisPoints !== 200 ||
142
+ acceptance.rejectionRefund !== "net-after-evaluation") {
143
+ throw new PerkOSError("INPUT_INVALID", "Explicit 2% earned-fee acceptance, including net rejection refund, is required.");
144
+ }
145
+ validateServiceFeeSplit({
146
+ ...quoteServiceFee(amount),
147
+ treasury: acceptance.treasury,
148
+ waived: false,
149
+ }, amount, this.config.network);
150
+ if (acceptance.treasury === input.sender)
151
+ throw new PerkOSError("INPUT_INVALID", "Treasury cannot fund a job.");
152
+ }
153
+ else if (input.serviceFeeAcceptance) {
154
+ throw new PerkOSError("INPUT_INVALID", "This contract generation has no earned service fee.");
155
+ }
128
156
  return plan(this.config, contract, "fund-job", escrowArgs(this.config, input.asset, [Cl.uint(jobId)]), {
129
157
  operation: "fund-job",
130
158
  asset: input.asset,
131
159
  amount,
132
160
  jobId,
133
161
  sender: input.sender,
162
+ ...(input.serviceFeeAcceptance
163
+ ? {
164
+ serviceFee: {
165
+ ...quoteServiceFee(amount),
166
+ treasury: input.serviceFeeAcceptance.treasury,
167
+ waived: false,
168
+ },
169
+ }
170
+ : {}),
134
171
  }, [exactTransfer(this.config, input.asset, input.sender, amount)]);
135
172
  }
136
173
  assignProvider(input) {
@@ -145,7 +182,36 @@ export class PerkOSTransactionBuilder {
145
182
  }
146
183
  submitWork(input) {
147
184
  const jobId = toUint(input.jobId, "jobId");
148
- return plan(this.config, commerceContract(this.config, input.asset), "submit-work", [Cl.uint(jobId), Cl.buffer(deliverableBuffer(input.deliverable))], { operation: "submit-work", asset: input.asset, jobId });
185
+ const acceptance = input.serviceFeeAcceptance;
186
+ const feeContract = supportsServiceFees(commerceContract(this.config, input.asset), input.asset);
187
+ if (feeContract) {
188
+ if (!acceptance ||
189
+ acceptance.gross <= 0n ||
190
+ acceptance.basisPoints !== 200 ||
191
+ acceptance.rejectionRefund !== "net-after-evaluation")
192
+ throw new PerkOSError("INPUT_INVALID", "Provider must accept the gross budget and earned fee before submission.");
193
+ validateServiceFeeSplit({
194
+ ...quoteServiceFee(acceptance.gross),
195
+ treasury: acceptance.treasury,
196
+ waived: false,
197
+ }, acceptance.gross, this.config.network);
198
+ }
199
+ else if (acceptance)
200
+ throw new PerkOSError("INPUT_INVALID", "Unexpected service fee acceptance for this generation.");
201
+ return plan(this.config, commerceContract(this.config, input.asset), "submit-work", [Cl.uint(jobId), Cl.buffer(deliverableBuffer(input.deliverable))], {
202
+ operation: "submit-work",
203
+ asset: input.asset,
204
+ jobId,
205
+ ...(acceptance
206
+ ? {
207
+ serviceFee: {
208
+ ...quoteServiceFee(acceptance.gross),
209
+ treasury: acceptance.treasury,
210
+ waived: false,
211
+ },
212
+ }
213
+ : {}),
214
+ });
149
215
  }
150
216
  completeJob(input) {
151
217
  return this.settlement("complete-job", input);
@@ -170,10 +236,7 @@ export class PerkOSTransactionBuilder {
170
236
  }
171
237
  appealDecision(input) {
172
238
  const jobId = toUint(input.jobId, "jobId");
173
- return plan(this.config, commerceContract(this.config, input.asset), "appeal-decision", [
174
- Cl.uint(jobId),
175
- Cl.buffer(toHash32(input.evidenceHash, "evidenceHash")),
176
- ], { operation: "appeal-decision", asset: input.asset, jobId });
239
+ return plan(this.config, commerceContract(this.config, input.asset), "appeal-decision", [Cl.uint(jobId), Cl.buffer(toHash32(input.evidenceHash, "evidenceHash"))], { operation: "appeal-decision", asset: input.asset, jobId });
177
240
  }
178
241
  finalizeDecision(input) {
179
242
  return this.decisionSettlement("finalize-decision", input, [
@@ -205,13 +268,89 @@ export class PerkOSTransactionBuilder {
205
268
  assertAscii(input.comment, "comment", 256, true);
206
269
  return plan(this.config, commerceContract(this.config, input.asset), "rate-provider", [Cl.uint(jobId), Cl.uint(score), Cl.stringAscii(input.comment)], { operation: "rate-provider", asset: input.asset, jobId });
207
270
  }
271
+ initializeServiceFeeProtocol(input) {
272
+ const contract = this.requireServiceFees(input.asset);
273
+ const appealWindow = toUint(input.appealWindow, "appealWindow");
274
+ const expectedWindow = this.config.network === "mainnet" ? 144n : 3n;
275
+ for (const [field, value] of Object.entries({
276
+ owner: input.owner,
277
+ treasury: input.treasury,
278
+ appealAuthority: input.appealAuthority,
279
+ })) {
280
+ assertPrincipal(value, field, this.config.network);
281
+ }
282
+ if (appealWindow !== expectedWindow ||
283
+ input.treasury === input.owner ||
284
+ input.treasury === input.appealAuthority) {
285
+ throw new PerkOSError("INPUT_INVALID", "Initialization requires a separate treasury and the network-specific appeal window (testnet 3, mainnet 144).");
286
+ }
287
+ return plan(this.config, contract, "initialize-protocol", [
288
+ Cl.uint(appealWindow),
289
+ Cl.principal(input.appealAuthority),
290
+ Cl.principal(input.treasury),
291
+ ], {
292
+ operation: "initialize-protocol",
293
+ asset: input.asset,
294
+ sender: input.owner,
295
+ });
296
+ }
297
+ waiveServiceFee(input) {
298
+ const contract = this.requireServiceFees(input.asset);
299
+ const jobId = toUint(input.jobId, "jobId");
300
+ assertPrincipal(input.authority, "authority", this.config.network);
301
+ return plan(this.config, contract, "waive-service-fee", [Cl.uint(jobId), Cl.buffer(toHash32(input.evidenceHash, "evidenceHash"))], {
302
+ operation: "waive-service-fee",
303
+ asset: input.asset,
304
+ jobId,
305
+ sender: input.authority,
306
+ });
307
+ }
308
+ refundServiceFee(input) {
309
+ const contract = this.requireServiceFees(input.asset);
310
+ const jobId = toUint(input.jobId, "jobId");
311
+ const amount = toUint(input.amount, "amount");
312
+ assertPrincipal(input.treasury, "treasury", this.config.network);
313
+ assertPrincipal(input.recipient, "recipient", this.config.network);
314
+ if (input.treasury === input.recipient)
315
+ throw new PerkOSError("INPUT_INVALID", "Refund recipient cannot be treasury.");
316
+ if (input.asset === "sbtc" && !input.sbtcToken)
317
+ throw new PerkOSError("INPUT_INVALID", "Refund requires the job-pinned sBTC token.");
318
+ return plan(this.config, contract, "refund-service-fee", escrowArgs(this.config, input.asset, [Cl.uint(jobId)], input.sbtcToken), {
319
+ operation: "refund-service-fee",
320
+ asset: input.asset,
321
+ jobId,
322
+ amount,
323
+ sender: input.treasury,
324
+ recipient: input.recipient,
325
+ }, [
326
+ exactTransfer(this.config, input.asset, input.treasury, amount, input.sbtcToken),
327
+ ]);
328
+ }
329
+ requireServiceFees(asset) {
330
+ const contract = commerceContract(this.config, asset);
331
+ if (!supportsServiceFees(contract, asset))
332
+ throw new PerkOSError("INPUT_INVALID", "Operation requires STX v6 or sBTC v5 explicitly configured.");
333
+ return contract;
334
+ }
208
335
  decisionSettlement(operation, input, functionArgs) {
209
336
  const jobId = toUint(input.jobId, "jobId");
210
337
  const amount = toUint(input.amount, "amount", true);
211
338
  assertPrincipal(input.recipient, "recipient", this.config.network);
212
339
  const contract = commerceContract(this.config, input.asset);
340
+ if (supportsServiceFees(contract, input.asset)) {
341
+ if (!input.serviceFee || amount === 0n)
342
+ throw new PerkOSError("INPUT_INVALID", "Fee settlement requires a verified split and positive gross escrow.");
343
+ validateServiceFeeSplit(input.serviceFee, amount, this.config.network);
344
+ if (input.serviceFee.treasury === input.recipient)
345
+ throw new PerkOSError("INPUT_INVALID", "Economic recipient cannot be treasury.");
346
+ if (input.asset === "sbtc" && !input.sbtcToken)
347
+ throw new PerkOSError("INPUT_INVALID", "Settlement requires the job-pinned sBTC token.");
348
+ }
349
+ else if (input.serviceFee) {
350
+ throw new PerkOSError("INPUT_INVALID", "Unexpected fee metadata for a no-fee contract.");
351
+ }
213
352
  const sbtcToken = input.asset === "sbtc"
214
- ? input.sbtcToken ?? this.config.contracts.sbtcToken
353
+ ? (input.sbtcToken ?? this.config.contracts.sbtcToken)
215
354
  : undefined;
216
355
  if (sbtcToken)
217
356
  parseContractId(sbtcToken, "sbtcToken", this.config.network);
@@ -224,6 +363,7 @@ export class PerkOSTransactionBuilder {
224
363
  amount,
225
364
  jobId,
226
365
  recipient: input.recipient,
366
+ ...(input.serviceFee ? { serviceFee: input.serviceFee } : {}),
227
367
  }, postConditions);
228
368
  }
229
369
  settlement(operation, input) {
@@ -231,8 +371,12 @@ export class PerkOSTransactionBuilder {
231
371
  const amount = toUint(input.amount, "amount", true);
232
372
  assertPrincipal(input.recipient, "recipient", this.config.network);
233
373
  const contract = commerceContract(this.config, input.asset);
374
+ if (supportsServiceFees(contract, input.asset) &&
375
+ (operation === "complete-job" || operation === "reject-job")) {
376
+ throw new PerkOSError("INPUT_INVALID", "Use recordDecision and the autonomous decision settlement flow for this generation.");
377
+ }
234
378
  const sbtcToken = input.asset === "sbtc"
235
- ? input.sbtcToken ?? this.config.contracts.sbtcToken
379
+ ? (input.sbtcToken ?? this.config.contracts.sbtcToken)
236
380
  : undefined;
237
381
  if (sbtcToken)
238
382
  parseContractId(sbtcToken, "sbtcToken", this.config.network);
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PerkOSTransactionBuilder } from "./builders.js";
2
2
  import { SpendingPolicy } from "./policy.js";
3
- import type { AgentRecord, AppealDecisionInput, AssignProviderInput, ConfirmationOptions, ConfirmedTransactionReceipt, ContractCallPlan, ContractId, CreateJobInput, DecisionRecord, FundJobInput, JobAmountInput, JobRecord, PaymentAsset, PerkOSConfig, RateProviderInput, RecordDecisionInput, RegisterAgentInput, ReputationRecord, ReputationSyncRecord, ResolveAppealInput, SpendingApproval, SubmitWorkInput, TransactionConfirmation, TransactionReceipt, TransactionTrackerLike, UpdateAgentInput } from "./types.js";
3
+ import type { AgentRecord, AppealDecisionInput, AssignProviderInput, ConfirmationOptions, ConfirmedTransactionReceipt, ContractCallPlan, ContractId, CreateJobInput, DecisionRecord, JobServiceFeeRecord, ServiceFeePolicy, InitializeServiceFeeProtocolInput, WaiveServiceFeeInput, FundJobInput, JobAmountInput, JobRecord, PaymentAsset, PerkOSConfig, RateProviderInput, RecordDecisionInput, RegisterAgentInput, ReputationRecord, ReputationSyncRecord, ResolveAppealInput, SpendingApproval, SubmitWorkInput, TransactionConfirmation, TransactionReceipt, TransactionTrackerLike, UpdateAgentInput } from "./types.js";
4
4
  export declare class PerkOSClient {
5
5
  readonly config: import("./types.js").ResolvedPerkOSConfig;
6
6
  readonly transactions: PerkOSTransactionBuilder;
@@ -18,6 +18,13 @@ export declare class PerkOSClient {
18
18
  getJobCount(asset: PaymentAsset): Promise<bigint>;
19
19
  getJob(asset: PaymentAsset, jobIdInput: bigint | number | string): Promise<JobRecord | null>;
20
20
  getEscrowBalance(asset: PaymentAsset, jobIdInput: bigint | number | string): Promise<bigint>;
21
+ /** Explicit opt-in capability; deployed defaults remain the no-fee generation. */
22
+ supportsServiceFees(asset: PaymentAsset): boolean;
23
+ getServiceFeePolicy(asset: PaymentAsset): Promise<ServiceFeePolicy>;
24
+ getJobServiceFee(asset: PaymentAsset, jobIdInput: bigint | number | string): Promise<JobServiceFeeRecord>;
25
+ initializeServiceFeeProtocol(input: InitializeServiceFeeProtocolInput): Promise<TransactionReceipt>;
26
+ waiveServiceFee(input: WaiveServiceFeeInput): Promise<TransactionReceipt>;
27
+ refundServiceFee(asset: PaymentAsset, jobIdInput: bigint | number | string): Promise<TransactionReceipt>;
21
28
  getConfiguredSbtcToken(): Promise<string>;
22
29
  getJobPaymentToken(jobIdInput: bigint | number | string): Promise<ContractId>;
23
30
  getReviewWindow(asset: PaymentAsset): Promise<bigint>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}