@justhandledlabs/agent-client 0.7.0 → 0.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # JustHandled Agent Client
2
2
 
3
- A guarded CLI, JavaScript client, and local MCP server for the [JustHandled Agent Utility Gateway](https://justhandledlabs.com/agent-gateway/). The package exposes twenty-eight deterministic preflights, maintained-data lookups, and evidence products. Twenty-two products cost $0.05 USDC; six evidence-heavy products cost $0.25, including Agent Distribution Readiness, Community Rule & Credibility Preflight, and Qualified Demand Ledger. Every paid call returns a versioned evidence receipt.
3
+ A guarded CLI, JavaScript client, and local MCP server for the [JustHandled Agent Utility Gateway](https://justhandledlabs.com/agent-gateway/). The package exposes thirty-one deterministic preflights, maintained-data lookups, and evidence products. Twenty-two products cost $0.05 USDC; nine evidence-heavy products cost $0.25, including Channel-Fit Evidence Matrix, Proof-to-Channel Evidence Packet, and Channel Experiment Postmortem. Every paid call returns a versioned evidence receipt.
4
4
 
5
5
  The client fails closed before signing. It accepts only the pinned JustHandled gateway, Base mainnet, canonical Base USDC, the exact per-product price, and the published merchant receiver. Customer inputs are not persisted by the gateway.
6
6
 
@@ -13,6 +13,9 @@ npx --package @justhandledlabs/agent-client justhandled-agent preview agent-run-
13
13
  npx --package @justhandledlabs/agent-client justhandled-agent preview agent-distribution-readiness-pack --file agent-distribution-readiness-pack.sample.json
14
14
  npx --package @justhandledlabs/agent-client justhandled-agent preview community-rule-credibility-preflight --file community-rule-credibility-preflight.sample.json
15
15
  npx --package @justhandledlabs/agent-client justhandled-agent preview qualified-demand-ledger --file qualified-demand-ledger.sample.json
16
+ npx --package @justhandledlabs/agent-client justhandled-agent preview channel-fit-evidence-matrix --file channel-fit-evidence-matrix.sample.json
17
+ npx --package @justhandledlabs/agent-client justhandled-agent preview proof-to-channel-evidence-packet --file proof-to-channel-evidence-packet.sample.json
18
+ npx --package @justhandledlabs/agent-client justhandled-agent preview channel-experiment-postmortem --file channel-experiment-postmortem.sample.json
16
19
  ```
17
20
 
18
21
  Preview performs an unpaid request and validates the returned x402 terms. It does not sign or spend.
@@ -60,7 +63,7 @@ The package declares the official MCP Registry identity `io.github.justhandledla
60
63
  ## Security model
61
64
 
62
65
  - Price, chain, asset, receiver, and gateway origin are pinned in code.
63
- - The six $0.25 products' 250,000-base-unit price is pinned separately from 50,000-base-unit checks.
66
+ - The seven $0.25 products' 250,000-base-unit price is pinned separately from 50,000-base-unit checks.
64
67
  - Every execution starts with an unpaid 402 preview.
65
68
  - A mismatched term aborts before signing.
66
69
  - The package never prints the private key.
package/dist/config.js CHANGED
@@ -14,6 +14,9 @@ export const QUARTER_DOLLAR_UTILITIES = new Set([
14
14
  "agent-distribution-readiness-pack",
15
15
  "community-rule-credibility-preflight",
16
16
  "qualified-demand-ledger",
17
+ "channel-fit-evidence-matrix",
18
+ "proof-to-channel-evidence-packet",
19
+ "channel-experiment-postmortem",
17
20
  ]);
18
21
  export function expectedPriceForUtility(utility) {
19
22
  return QUARTER_DOLLAR_UTILITIES.has(utility) ? AGENT_RUN_EVIDENCE_PACK_PRICE_USDC : PRICE_USDC;
package/dist/mcp.js CHANGED
@@ -3,7 +3,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { getCatalog, runPaidUtility } from "./client.js";
6
- const server = new Server({ name: "justhandled-agent-gateway", version: "0.7.0" }, { capabilities: { tools: {} } });
6
+ const server = new Server({ name: "justhandled-agent-gateway", version: "0.9.0" }, { capabilities: { tools: {} } });
7
7
  server.setRequestHandler(ListToolsRequestSchema, async () => {
8
8
  const catalog = await getCatalog();
9
9
  return {
@@ -0,0 +1,9 @@
1
+ {
2
+ "observed_at": "2026-08-16T00:00:00Z",
3
+ "experiment": {"id":"directory-proof-v1","channel":"agent-directory","hypothesis":"A concrete evidence packet will produce at least two attributable checkout openings in 14 days.","objective":"qualified-demand","started_at":"2026-08-01T00:00:00Z","ended_at":"2026-08-15T00:00:00Z","declared_before_start":true,"gate":{"metric":"checkout-open","threshold":2,"window_days":14},"variables":{"channel":"agent-directory","offer":"$19 evidence skill","artifact":"proof-led listing","audience":"AI agent builders","timing":"14-day launch window"},"changed_variables":["artifact"],"max_cost_usd":0,"max_effort_hours":5,"cooldown_days":7},
4
+ "events": [{"id":"open-1","type":"checkout-open","occurred_at":"2026-08-05T12:00:00Z","evidence_ref":"checkout:open:1","external_actor":true,"owner_controlled":false,"attribution":"verified"},{"id":"open-2","type":"checkout-open","occurred_at":"2026-08-09T12:00:00Z","evidence_ref":"checkout:open:2","external_actor":true,"owner_controlled":false,"attribution":"direct"}],
5
+ "cost_usd": 0,
6
+ "effort_hours": 3,
7
+ "attribution_complete": true,
8
+ "owner_activity_excluded": true
9
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "observed_at": "2026-08-01T22:30:00Z",
3
+ "objective": "qualified-demand",
4
+ "constraints": {
5
+ "budget_usd": 50,
6
+ "effort_hours": 12,
7
+ "max_parallel_tests": 2,
8
+ "rules_max_age_days": 30
9
+ },
10
+ "evidence": [
11
+ {
12
+ "id": "rule-agent-directory",
13
+ "type": "platform-rule",
14
+ "captured_at": "2026-08-01T20:00:00Z",
15
+ "source_url": "https://example.com/directory-rules",
16
+ "observed": true
17
+ },
18
+ {
19
+ "id": "rule-marketplace",
20
+ "type": "platform-rule",
21
+ "captured_at": "2026-08-01T20:10:00Z",
22
+ "source_url": "https://example.com/marketplace-rules",
23
+ "observed": true
24
+ },
25
+ {
26
+ "id": "proof-live",
27
+ "type": "product-proof",
28
+ "captured_at": "2026-08-01T21:00:00Z",
29
+ "source_url": "https://example.com/product",
30
+ "observed": true
31
+ },
32
+ {
33
+ "id": "proof-readiness",
34
+ "type": "distribution-readiness",
35
+ "captured_at": "2026-08-01T21:10:00Z",
36
+ "source_url": "https://example.com/readiness-receipt",
37
+ "observed": true
38
+ }
39
+ ],
40
+ "channels": [
41
+ {
42
+ "id": "agent-directory",
43
+ "kind": "agent-directory",
44
+ "audience_match": 5,
45
+ "buyer_intent": 4,
46
+ "format_match": 5,
47
+ "saturation": 3,
48
+ "rule_status": "verified",
49
+ "rule_evidence_id": "rule-agent-directory",
50
+ "product_evidence_ids": ["proof-live", "proof-readiness"],
51
+ "attribution": "verified",
52
+ "attribution_mechanism": "Unique source token preserved through the unpaid challenge and settlement receipt.",
53
+ "existing_access": "account",
54
+ "offer_path_ready": true,
55
+ "estimated_cost_usd": 0,
56
+ "estimated_effort_hours": 2,
57
+ "owner_presence_required": false,
58
+ "owner_available": true,
59
+ "outcome_gate": {
60
+ "metric": "payment-initiation",
61
+ "threshold": 2,
62
+ "window_days": 14,
63
+ "max_cost_usd": 0,
64
+ "max_effort_hours": 4
65
+ }
66
+ },
67
+ {
68
+ "id": "marketplace",
69
+ "kind": "marketplace",
70
+ "audience_match": 4,
71
+ "buyer_intent": 5,
72
+ "format_match": 4,
73
+ "saturation": 4,
74
+ "rule_status": "verified",
75
+ "rule_evidence_id": "rule-marketplace",
76
+ "product_evidence_ids": ["proof-live"],
77
+ "attribution": "direct",
78
+ "attribution_mechanism": "Marketplace listing identifier linked to checkout-opening evidence.",
79
+ "existing_access": "account",
80
+ "offer_path_ready": true,
81
+ "estimated_cost_usd": 0,
82
+ "estimated_effort_hours": 3,
83
+ "owner_presence_required": false,
84
+ "owner_available": true,
85
+ "outcome_gate": {
86
+ "metric": "checkout-open",
87
+ "threshold": 2,
88
+ "window_days": 14,
89
+ "max_cost_usd": 0,
90
+ "max_effort_hours": 5
91
+ }
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "observed_at": "2026-08-01T23:30:00Z",
3
+ "max_evidence_age_days": 30,
4
+ "product": {"id":"example-agent","name":"Example Agent","version":"1.0.0","canonical_url":"https://example.com/agent","offer_url":"https://example.com/agent/try","price_usd":19},
5
+ "channel": {"name":"Example Agent Directory","kind":"agent-directory","rules_captured_at":"2026-08-01T22:00:00Z","rules_source_url":"https://example.com/directory/rules","rule_status":"verified","link_policy":"allowed","pricing_disclosure_required":true,"demo_required":true,"screenshots_required":1,"identity_fields":[]},
6
+ "claims": [{"id":"deterministic","text":"Produces a deterministic evidence report from normalized input.","evidence_ids":["docs","demo"],"required_for_submission":true,"personal_experience":false}],
7
+ "evidence": [{"id":"docs","type":"documentation","source_url":"https://example.com/agent/docs","captured_at":"2026-08-01T22:30:00Z","observed":true,"supports_claim_ids":["deterministic"]},{"id":"demo","type":"demo","source_url":"https://example.com/agent/demo","captured_at":"2026-08-01T22:35:00Z","observed":true,"supports_claim_ids":["deterministic"]},{"id":"shot","type":"screenshot","source_url":"https://example.com/agent/screenshot","captured_at":"2026-08-01T22:40:00Z","observed":true,"supports_claim_ids":[]}],
8
+ "artifacts": {"demo_url":"https://example.com/agent/demo","install_path":"Run npx example-agent with the supplied JSON file.","screenshots":[{"id":"hero","evidence_id":"shot"}],"pricing_disclosure":"$19 one-time download.","link_target":"https://example.com/agent/try?source=directory","attribution_mechanism":"Preserve the source token through checkout-open and settlement receipts."},
9
+ "human_authored_fields": {}
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justhandledlabs/agent-client",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Guarded CLI and MCP client for JustHandled's x402 utility gateway",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/server.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.justhandledlabs/agent-gateway",
4
4
  "title": "JustHandled Agent Utility Gateway",
5
- "description": "Twenty-eight guarded pay-per-call preflights and evidence products over USDC x402.",
6
- "version": "0.7.0",
5
+ "description": "Thirty-one guarded pay-per-call preflights and evidence products over USDC x402.",
6
+ "version": "0.9.0",
7
7
  "repository": {
8
8
  "url": "https://github.com/justhandledlabs/justhandled-agent-client",
9
9
  "source": "github"
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@justhandledlabs/agent-client",
15
- "version": "0.7.0",
15
+ "version": "0.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },