@aifinpay/skill 2.8.0 → 2.9.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.
@@ -12,7 +12,7 @@
12
12
  "name": "aifinpay",
13
13
  "source": "./",
14
14
  "description": "Payment rail skills for paying agents and API merchants.",
15
- "version": "2.8.0",
15
+ "version": "2.9.0",
16
16
  "author": {
17
17
  "name": "AiFinPay Support",
18
18
  "email": "contact@aifinpay.io"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aifinpay",
3
3
  "description": "Payment rail for AI agents: pay for x402 APIs or charge agents for yours.",
4
- "version": "2.8.0",
4
+ "version": "2.9.0",
5
5
  "author": { "name": "AiFinPay Support" },
6
6
  "homepage": "https://aifinpay.io",
7
7
  "repository": "https://github.com/AiFinPay/skill",
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## 2.9.0 — reporting cohort source candidate
2
+
3
+ - Align package, lock, plugin and both skill versions with the coordinated
4
+ MCP2.8.0 / Node SDK2.6.0 / Python SDK2.5.1 release target; preserve dated
5
+ published baselines without claiming this cohort is published or active.
6
+ - Describe the explicit merchant reporting v2 target for Node gate0.4.0 and
7
+ Python gate0.1.3: observed challenge/admission/completion, consent and
8
+ memory-only capabilities, bounded queue loss and acknowledged producer health.
9
+ Observations do not establish verified identity, payment or complete coverage.
10
+ - Keep the existing gated MCP tools, signing, receipt/budget/recovery and
11
+ network activation requirements. Canonical payer bytes must be copied into
12
+ the paired MCP build before its exact cohort and registry release gates.
13
+ - Validate matching payer/merchant/README targets, dated payer publication
14
+ baseline and changelog metadata; test drift refusals without dependencies.
15
+
1
16
  ## 2.8.0 — source candidate
2
17
 
3
18
  - Describe the MCP2.7 / Node and Python2.5 Solana source target with explicit
package/README.md CHANGED
@@ -9,8 +9,13 @@ any client that loads `SKILL.md`).
9
9
  | `aifinpay` | Paying — agent buys x402-gated API access | `agent/skills/aifinpay/SKILL.md` |
10
10
  | `aifinpay-merchant` | Earning — merchant charges agents per request | `agent/skills/aifinpay-merchant/SKILL.md` |
11
11
 
12
- Version2.8.0 describes the coordinated MCP2.7.0 / Node and Python SDK2.5.0
13
- release target, including the Solana source adapter. Canonical disabled Solana
12
+ Version **2.9.0** describes a coordinated reporting release target.
13
+ Release target: MCP **2.8.0**, Node SDK **2.6.0**, Python **2.5.1**.
14
+ Reporting release target: Node gate **0.4.0**, Python gate **0.1.3**.
15
+ The merchant guide describes explicit opt-in observations, consent, queue loss
16
+ and producer health using the SDK's reporting v2 contract. It adds no MCP tools
17
+ or signing authority and does not establish publication or partner rollout.
18
+ The payer guide retains the Solana source adapter. Canonical disabled Solana
14
19
  records remain unavailable until accepted and served. Its nine EVM descriptors
15
20
  require explicit owner and merchant
16
21
  network consent plus backend readiness; installing instructions does not
@@ -21,6 +26,13 @@ Rule of thumb: if the user wants to **pay** for a paid API, load `aifinpay`.
21
26
  If they **own** a site/API agents visit, load `aifinpay-merchant` — and mention
22
27
  the other side exists.
23
28
 
29
+ For merchant reporting, follow the merchant guide's optional reporting section
30
+ and the SDK's [Node](https://github.com/AiFinPay/sdk/blob/main/gate/REPORTING-V2.md)
31
+ or [Python](https://github.com/AiFinPay/sdk/blob/main/python-gate/REPORTING-V2.md)
32
+ instructions. Observation events, admission and resource completion are
33
+ distinct; payments require confirmed settlement evidence. Producer health
34
+ and pending/drop coverage describe telemetry completeness, not payment success.
35
+
24
36
  ## Install
25
37
 
26
38
  Install the skills with the `skills` CLI:
@@ -6,7 +6,7 @@ description: Pay for x402-gated APIs and sites as an agent (AIFP-1 on an owner-s
6
6
  wallet, payment history, prepaid quotas and Agent Passport records through
7
7
  the AiFinPay MCP server or SDK.
8
8
  license: MIT
9
- version: 2.8.0
9
+ version: 2.9.0
10
10
  author: AiFinPay Support
11
11
  metadata:
12
12
  hermes:
@@ -61,7 +61,7 @@ your language. There is no "install together" scenario.
61
61
 
62
62
  ## Version and release status
63
63
 
64
- Release target: MCP **2.7.0**, Node SDK **2.5.0**, Python **2.5.0**.
64
+ Release target: MCP **2.8.0**, Node SDK **2.6.0**, Python **2.5.1**.
65
65
  This skill describes that coordinated package cohort. Check the installed
66
66
  versions before using its additional-network instructions; a release target
67
67
  does not establish npm/PyPI publication or production network activation.
@@ -71,8 +71,8 @@ Published packages remain usable within their documented capabilities.
71
71
 
72
72
  | Surface | Can it pay? |
73
73
  |---|---|
74
- | MCP `@aifinpay/mcp` 2.7.x | `payable_fetch`, only with a persistent wallet and every owner limit set. Polygon is the default; other networks require explicit `AIFINPAY_PAY_CHAIN`. The merchant and backend must authorize and serve that network. `scope: "merchant"` buys a site-wide batch. |
75
- | Node `@aifinpay/agent` 2.5.x | `fetchPaid` with a v14 journal, gas cap and owner budgets. Select another network with `v14.chain`; select a pinned stablecoin with `v14.asset`. Native payments require an independent native/USD rate. |
74
+ | MCP `@aifinpay/mcp` 2.8.x | `payable_fetch`, only with a persistent wallet and every owner limit set. Polygon is the default; other networks require explicit `AIFINPAY_PAY_CHAIN`. The merchant and backend must authorize and serve that network. `scope: "merchant"` buys a site-wide batch. |
75
+ | Node `@aifinpay/agent` 2.6.x | `fetchPaid` with a v14 journal, gas cap and owner budgets. Select another network with `v14.chain`; select a pinned stablecoin with `v14.asset`. Native payments require an independent native/USD rate. |
76
76
  | Python `aifinpay-agent` 2.5.x | `agent.fetch_paid(url, allowed_origins=…, max_amount_usd=…, daily_amount_usd=…)`; use explicit `chain` and the chain's native gas cap for another network, or a pinned stablecoin `asset`. `agent.recover_paid(journal_path)` recovers the original transaction. |
77
77
 
78
78
  The client descriptors below are shared by the target cohort. They do not
@@ -166,7 +166,7 @@ or event log alone does not prove a valid paid request.
166
166
 
167
167
  # AiFinPay agent workflow
168
168
 
169
- Use the tools actually returned by MCP tools/list. MCP 2.7.0 exposes
169
+ Use the tools actually returned by MCP tools/list. MCP 2.8.0 exposes
170
170
  agent_address, agent_reload, agent_claim_self, agent_history, agent_quota,
171
171
  agent_passport_resolve, settlement_routes, settlement_invoice and
172
172
  deployment_info; `payable_fetch` appears when the owner has enabled payments.
@@ -4,7 +4,7 @@ description: Configure an HTTP 402 gate for agent access to a website or API,
4
4
  with owner-selected routes, verified payouts and explicitly accepted EVM
5
5
  networks. Agents settle from their own wallets; the merchant receives 99%.
6
6
  license: MIT
7
- version: 2.8.0
7
+ version: 2.9.0
8
8
  author: AiFinPay Support
9
9
  metadata:
10
10
  hermes:
@@ -155,7 +155,9 @@ Gate 0.3.3 source adds `instructions_url` (payer skill),
155
155
  links to maintained public instructions, not stored wallet or receipt data.
156
156
  Existing sites must upgrade/redeploy gate to emit those new fields.
157
157
 
158
- This skill's release target is MCP2.7.0 and Node/Python SDK2.5.0. Those clients
158
+ Release target: MCP **2.8.0**, Node SDK **2.6.0**, Python **2.5.1**.
159
+ This coordinated target does not establish publication or reporting rollout.
160
+ Those clients
159
161
  reuse the signed v1.4 payment kernel for nine EVM network descriptors; network
160
162
  metadata does not activate a deployment or verifier. Production served Polygon
161
163
  and Base at the 2026-10-04 baseline check. Additional networks require a ready
@@ -178,6 +180,62 @@ network until their owner updates them. Read the selected issuer's
178
180
  payment readiness. Do not change a payout wallet, accepted network set or
179
181
  settlement version without the merchant owner's authorization.
180
182
 
183
+ ## Optional observation and reporting
184
+
185
+ Reporting release target: Node gate **0.4.0**, Python gate **0.1.3**.
186
+ Use these instructions only after checking the installed packages and the
187
+ backend's reporting v2 readiness. Installing the skill does not enable reporting
188
+ or verify a partner integration. Opt in when the merchant owner requests it:
189
+ Node uses `createGateReporterV2` with `reporting: { version: 2, reporter,
190
+ context }`; Python uses `GateReporterV2` with `Gate(..., reporting=reporter,
191
+ reporting_context=...)`. Keep the existing receipt verification and shared
192
+ quota store. Use one producer per merchant per worker, created after fork in
193
+ Python; do not also attach the legacy `onEvent`/`on_event` reporter or report
194
+ the same request through both hosted and self-hosted instrumentation.
195
+
196
+ Declare only stages the adapter actually observes: `access_challenged` for an
197
+ emitted 402, `access_admitted` before the paid handler, and
198
+ `resource_response_completed` for its terminal success, redirect, error or
199
+ abort. A challenge is not a browser view; admission is not completion.
200
+ Neither stage counts a verified unique agent or proves payment. Payments and
201
+ revenue require confirmed settlement evidence, never purchased quota or
202
+ invented historical usage. Browser observations need their separate API;
203
+ the gate producer does not infer them from User-Agent or `AIFP-Agent-Id`.
204
+
205
+ Context carries an explicit channel and consent state. Only granted consent
206
+ allows an optional random, site-scoped `client_id`; it remains unverified.
207
+ Do not derive identity from a wallet, IP, fingerprint, headers or request body.
208
+ An optional flow minted by `mintFlow`/`mint_flow` carries a short-lived
209
+ `reporting_token` for observation only. It grants no access, payment authority,
210
+ ownership or integration verification. Keep it in memory, outside URLs,
211
+ logs, browser storage, cookies and payment/recovery files. The payer SDK's
212
+ optional `reportingToken`/`reporting_token` reaches only its fixed first-party
213
+ quote endpoints; never manually forward it to merchant, pay, RPC or JWKS
214
+ requests. Reporting failures preserve the original access/payment result.
215
+
216
+ Keep the merchant secret server-side. Report only registered route patterns,
217
+ never full URLs, queries, bodies, raw headers, IPs, receipt JWTs or wallet IDs.
218
+ Queues are in memory, bounded to 1000 events, with batches of at most 50,
219
+ 3-second request deadlines and at most 5 attempts within 15 minutes.
220
+ Retries retain the same event IDs, timestamps and facts; outages, overflow
221
+ and crashes lose observations. Permanent errors and redirects are not retried;
222
+ fix credentials/configuration before replacing a stopped producer.
223
+
224
+ Node health auto-samples every 60 seconds; Python normally samples every 5
225
+ seconds. All health attempts are at least 5 seconds apart, and retries may
226
+ delay samples. A health acknowledgement is exactly `{version: 2, duplicate: boolean}`,
227
+ separate from the event-batch acknowledgement. Until a sample is acknowledged,
228
+ remote pending/drop coverage is unknown; a health gap over 5 minutes remains
229
+ a coverage gap. Local counters and successful HTTP responses do not prove a
230
+ complete report, and superseding lifetime health counters must not be summed.
231
+ Drain HTTP requests before closing the producer in the existing shutdown hook;
232
+ flush/close do not promise delivery.
233
+
234
+ Read the exact wiring and consent/loss rules before implementation:
235
+ [Node reporting v2](https://github.com/AiFinPay/sdk/blob/main/gate/REPORTING-V2.md)
236
+ and [Python reporting v2](https://github.com/AiFinPay/sdk/blob/main/python-gate/REPORTING-V2.md).
237
+ This reporting target adds no MCP tools or signing authority.
238
+
181
239
  ## Register the site (get your merchant_id)
182
240
 
183
241
  The gate needs a `merchant_id`. Two ways to get one:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aifinpay/skill",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "AiFinPay agent skills: pay for x402-gated APIs as an agent (aifinpay) and charge agents for your API as a merchant (aifinpay-merchant).",
5
5
  "type": "module",
6
6
  "files": [
@@ -11,7 +11,7 @@
11
11
  "CHANGELOG.md"
12
12
  ],
13
13
  "scripts": {
14
- "test": "node scripts/validate.mjs",
14
+ "test": "node scripts/validate.mjs && node --test scripts/validate.test.mjs",
15
15
  "prepublishOnly": "npm test"
16
16
  },
17
17
  "keywords": [