@paybond/kit 0.12.4 → 0.12.6

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 (114) hide show
  1. package/dist/agent/facade.d.ts +2 -0
  2. package/dist/agent/facade.js +10 -2
  3. package/dist/agent/guarded-agent.d.ts +3 -1
  4. package/dist/agent/guarded-agent.js +13 -2
  5. package/dist/agent/index.d.ts +2 -2
  6. package/dist/agent/index.js +1 -1
  7. package/dist/agent/instrument.d.ts +3 -0
  8. package/dist/agent/instrument.js +21 -10
  9. package/dist/agent/interceptor.js +19 -0
  10. package/dist/agent/types.d.ts +14 -0
  11. package/dist/agent-receipt-acta.d.ts +58 -0
  12. package/dist/agent-receipt-acta.js +140 -0
  13. package/dist/agent-receipt-inclusion.d.ts +40 -0
  14. package/dist/agent-receipt-inclusion.js +209 -0
  15. package/dist/agent-receipt-owner-disclosure.d.ts +71 -0
  16. package/dist/agent-receipt-owner-disclosure.js +277 -0
  17. package/dist/agent-receipt-pef.d.ts +69 -0
  18. package/dist/agent-receipt-pef.js +121 -0
  19. package/dist/agent-receipt-scitt.d.ts +50 -0
  20. package/dist/agent-receipt-scitt.js +382 -0
  21. package/dist/agent-receipt.d.ts +55 -0
  22. package/dist/agent-receipt.js +297 -4
  23. package/dist/claude-agents/config.d.ts +21 -2
  24. package/dist/claude-agents/config.js +37 -0
  25. package/dist/claude-agents/index.d.ts +1 -1
  26. package/dist/claude-agents/index.js +1 -1
  27. package/dist/cli/agent/demo-loaders.d.ts +1 -0
  28. package/dist/cli/agent/demo-loaders.js +12 -0
  29. package/dist/cli/command-spec.js +16 -1
  30. package/dist/cli/commands/agent.d.ts +4 -0
  31. package/dist/cli/commands/agent.js +107 -1
  32. package/dist/cli/help.js +4 -1
  33. package/dist/cloudflare-agents/config.d.ts +1 -1
  34. package/dist/cloudflare-agents/config.js +2 -2
  35. package/dist/google-adk/config.d.ts +36 -0
  36. package/dist/google-adk/config.js +172 -0
  37. package/dist/google-adk/index.d.ts +2 -0
  38. package/dist/google-adk/index.js +2 -0
  39. package/dist/google-adk/sandbox-demo.d.ts +32 -0
  40. package/dist/google-adk/sandbox-demo.js +104 -0
  41. package/dist/index.d.ts +10 -2
  42. package/dist/index.js +11 -3
  43. package/dist/init.js +29 -0
  44. package/dist/mcp-receipt-resource.js +3 -1
  45. package/dist/mcp-server.js +182 -10
  46. package/dist/policy/adapter-options.d.ts +9 -0
  47. package/dist/policy/adapter-options.js +11 -0
  48. package/dist/policy/index.d.ts +1 -0
  49. package/dist/policy/index.js +1 -0
  50. package/dist/policy/load.d.ts +7 -0
  51. package/dist/policy/load.js +13 -0
  52. package/dist/policy/merge.js +26 -0
  53. package/dist/policy/schema.d.ts +20 -0
  54. package/dist/policy/schema.js +34 -2
  55. package/dist/shopify/instrument.d.ts +8 -8
  56. package/dist/template-init.d.ts +2 -2
  57. package/dist/template-init.js +12 -4
  58. package/dist/vercel-ai/config.d.ts +2 -1
  59. package/dist/vercel-ai/config.js +2 -2
  60. package/dist/vercel-ai/index.d.ts +2 -1
  61. package/dist/vercel-ai/index.js +2 -1
  62. package/dist/vercel-ai/provider-executed.d.ts +7 -0
  63. package/dist/vercel-ai/provider-executed.js +20 -0
  64. package/dist/vercel-ai/tool-approval.d.ts +5 -0
  65. package/dist/vercel-ai/tool-approval.js +8 -1
  66. package/dist/vercel-ai/wrap-tools.d.ts +8 -1
  67. package/dist/vercel-ai/wrap-tools.js +17 -4
  68. package/glama.json +6 -0
  69. package/package.json +15 -5
  70. package/templates/manifest.json +57 -12
  71. package/templates/openai-shopping-agent/package-lock.json +379 -14
  72. package/templates/openai-shopping-agent/package.json +2 -2
  73. package/templates/paybond-aws-operator/package-lock.json +376 -11
  74. package/templates/paybond-aws-operator/package.json +2 -2
  75. package/templates/paybond-claude-agents-demo/package-lock.json +379 -14
  76. package/templates/paybond-claude-agents-demo/package.json +2 -2
  77. package/templates/paybond-cloudflare-shopping-agent/.env.example +3 -0
  78. package/templates/paybond-cloudflare-shopping-agent/.github/workflows/smoke.yml +20 -0
  79. package/templates/paybond-cloudflare-shopping-agent/LICENSE +201 -0
  80. package/templates/paybond-cloudflare-shopping-agent/README.md +29 -0
  81. package/templates/paybond-cloudflare-shopping-agent/package-lock.json +2671 -0
  82. package/templates/paybond-cloudflare-shopping-agent/package.json +23 -0
  83. package/templates/paybond-cloudflare-shopping-agent/paybond.policy.yaml +22 -0
  84. package/templates/paybond-cloudflare-shopping-agent/src/agent.ts +109 -0
  85. package/templates/paybond-cloudflare-shopping-agent/src/index.ts +22 -0
  86. package/templates/paybond-cloudflare-shopping-agent/src/paybond.config.ts +51 -0
  87. package/templates/paybond-cloudflare-shopping-agent/tsconfig.json +13 -0
  88. package/templates/paybond-crewai-procurement-agent/.env.example +3 -0
  89. package/templates/paybond-crewai-procurement-agent/.github/workflows/smoke.yml +19 -0
  90. package/templates/paybond-crewai-procurement-agent/LICENSE +201 -0
  91. package/templates/paybond-crewai-procurement-agent/README.md +73 -0
  92. package/templates/paybond-crewai-procurement-agent/app.py +79 -0
  93. package/templates/paybond-crewai-procurement-agent/crew.py +117 -0
  94. package/templates/paybond-crewai-procurement-agent/package.json +6 -0
  95. package/templates/paybond-crewai-procurement-agent/paybond.policy.yaml +28 -0
  96. package/templates/paybond-crewai-procurement-agent/paybond_config.py +45 -0
  97. package/templates/paybond-crewai-procurement-agent/requirements.txt +2 -0
  98. package/templates/paybond-invoice-agent/requirements.txt +1 -1
  99. package/templates/paybond-mastra-travel-agent/package-lock.json +379 -14
  100. package/templates/paybond-mastra-travel-agent/package.json +2 -2
  101. package/templates/paybond-mcp-coding-agent/package-lock.json +376 -11
  102. package/templates/paybond-mcp-coding-agent/package.json +2 -2
  103. package/templates/paybond-openai-agents-demo/package-lock.json +379 -14
  104. package/templates/paybond-openai-agents-demo/package.json +2 -2
  105. package/templates/paybond-procurement-agent/package-lock.json +376 -11
  106. package/templates/paybond-procurement-agent/package.json +2 -2
  107. package/templates/paybond-shopify-shopping-agent/package-lock.json +376 -11
  108. package/templates/paybond-shopify-shopping-agent/package.json +2 -2
  109. package/templates/paybond-stripe-agent-demo/package-lock.json +376 -11
  110. package/templates/paybond-stripe-agent-demo/package.json +2 -2
  111. package/templates/paybond-travel-agent/package-lock.json +376 -11
  112. package/templates/paybond-travel-agent/package.json +2 -2
  113. package/templates/paybond-vercel-shopping-agent/package-lock.json +376 -11
  114. package/templates/paybond-vercel-shopping-agent/package.json +2 -2
@@ -0,0 +1,117 @@
1
+ """CrewAI procurement crew with Paybond spend gates on tool calls.
2
+
3
+ Requires OPENAI_API_KEY (or your CrewAI LLM provider env) for a live kickoff.
4
+ For Harbor authorize + evidence without an LLM, use `python app.py` instead.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import asyncio
10
+ import json
11
+ import os
12
+
13
+ from crewai import Agent, Crew, Process, Task
14
+ from crewai.tools import tool
15
+
16
+ from paybond_config import create_paybond_client
17
+
18
+
19
+ @tool("procurement.search_catalog")
20
+ def search_catalog(query: str) -> str:
21
+ """Search the procurement catalog (read-only; not side-effecting)."""
22
+ return json.dumps(
23
+ {
24
+ "query": query,
25
+ "items": [
26
+ {"sku": "LAP-14", "vendor_id": "vendor-acme", "unit_cents": 12000},
27
+ {"sku": "MON-27", "vendor_id": "vendor-north", "unit_cents": 8900},
28
+ ],
29
+ }
30
+ )
31
+
32
+
33
+ @tool("procurement.submit_po")
34
+ def submit_po(vendor_id: str, amount_cents: int) -> str:
35
+ """Submit a purchase order. Paybond Harbor must approve before this runs."""
36
+ return json.dumps(
37
+ {
38
+ "status": "completed",
39
+ "vendor_id": vendor_id,
40
+ "cost_cents": amount_cents,
41
+ "po_id": f"po-{vendor_id}-{amount_cents}",
42
+ }
43
+ )
44
+
45
+
46
+ async def build_crew() -> Crew:
47
+ paybond = await create_paybond_client()
48
+ result = await paybond.agent(
49
+ policy="./paybond.policy.yaml",
50
+ framework="crewai",
51
+ tools=[search_catalog, submit_po],
52
+ )
53
+ guarded_tools = result.tools
54
+
55
+ buyer = Agent(
56
+ role="Procurement buyer",
57
+ goal="Find a catalog item and submit a purchase order within policy limits",
58
+ backstory="You buy hardware for an engineering team and never exceed approved spend.",
59
+ tools=guarded_tools,
60
+ verbose=True,
61
+ allow_delegation=False,
62
+ )
63
+ reviewer = Agent(
64
+ role="Spend reviewer",
65
+ goal="Confirm the PO amount stays under the Harbor budget and summarize the receipt",
66
+ backstory="You enforce corporate spend controls and call out denials or approval holds.",
67
+ verbose=True,
68
+ allow_delegation=False,
69
+ )
70
+
71
+ find_item = Task(
72
+ description=(
73
+ "Search the catalog for a 14-inch laptop. "
74
+ "Then submit a PO for vendor-acme at 12000 cents using procurement.submit_po."
75
+ ),
76
+ expected_output="JSON PO confirmation or a clear Paybond deny/hold message",
77
+ agent=buyer,
78
+ )
79
+ review = Task(
80
+ description=(
81
+ "Review the buyer result. If Paybond denied or held spend, explain why. "
82
+ "If approved, summarize vendor_id, cost_cents, and po_id."
83
+ ),
84
+ expected_output="Short spend-control summary for an operator",
85
+ agent=reviewer,
86
+ context=[find_item],
87
+ )
88
+
89
+ crew = Crew(
90
+ agents=[buyer, reviewer],
91
+ tasks=[find_item, review],
92
+ process=Process.sequential,
93
+ verbose=True,
94
+ )
95
+ # Keep the Paybond client alive for the crew lifetime via closure.
96
+ crew._paybond_client = paybond # type: ignore[attr-defined]
97
+ return crew
98
+
99
+
100
+ async def main() -> None:
101
+ if not os.environ.get("OPENAI_API_KEY", "").strip():
102
+ raise SystemExit(
103
+ "OPENAI_API_KEY is required for crew kickoff. "
104
+ "Use `python app.py` for a no-LLM Harbor smoke, or set your LLM key."
105
+ )
106
+ crew = await build_crew()
107
+ try:
108
+ output = crew.kickoff()
109
+ print(output)
110
+ finally:
111
+ paybond = getattr(crew, "_paybond_client", None)
112
+ if paybond is not None:
113
+ await paybond.aclose()
114
+
115
+
116
+ if __name__ == "__main__":
117
+ asyncio.run(main())
@@ -0,0 +1,6 @@
1
+ {
2
+ "private": true,
3
+ "scripts": {
4
+ "smoke": "paybond agent sandbox smoke --policy-file paybond.policy.yaml --operation procurement.submit_po --requested-spend-cents 12000 --result-body '{\"status\":\"completed\",\"cost_cents\":12000}' --format json"
5
+ }
6
+ }
@@ -0,0 +1,28 @@
1
+ # Reference implementation — edit freely. Regenerate with:
2
+ # edit paybond.policy.yaml directly
3
+
4
+ version: 1
5
+ name: procurement-agent-v1
6
+ default_deny: true
7
+
8
+ tools:
9
+ procurement.submit_po:
10
+ side_effecting: true
11
+ spend_from_args: amount_cents
12
+ evidence_preset: cost_and_completion
13
+
14
+ procurement.list_vendors:
15
+ side_effecting: false
16
+
17
+ procurement.get_quote:
18
+ side_effecting: false
19
+
20
+ procurement.search_catalog:
21
+ side_effecting: false
22
+
23
+ intent:
24
+ allowed_tools:
25
+ - procurement.submit_po
26
+ budget:
27
+ currency: usd
28
+ max_spend_usd: 250
@@ -0,0 +1,45 @@
1
+ import os
2
+ from pathlib import Path
3
+
4
+ from paybond_kit import Paybond
5
+
6
+
7
+ def _read_env_value(body: str, key: str) -> str | None:
8
+ for raw_line in body.splitlines():
9
+ line = raw_line.strip()
10
+ for prefix in (f"export {key}=", f"{key}="):
11
+ if line.startswith(prefix):
12
+ value = line[len(prefix):].strip()
13
+ if len(value) >= 2 and value[0] == value[-1] and value[0] in "'\"":
14
+ value = value[1:-1]
15
+ return value.strip() or None
16
+ return None
17
+
18
+
19
+ def load_paybond_env_file(env_file: str = ".env.local") -> None:
20
+ if os.environ.get("PAYBOND_API_KEY", "").strip():
21
+ return
22
+ path = Path(env_file)
23
+ try:
24
+ body = path.read_text(encoding="utf-8")
25
+ except FileNotFoundError:
26
+ return
27
+ api_key = _read_env_value(body, "PAYBOND_API_KEY")
28
+ if api_key:
29
+ os.environ["PAYBOND_API_KEY"] = api_key
30
+
31
+
32
+ async def create_paybond_client() -> Paybond:
33
+ load_paybond_env_file(".env.local")
34
+ api_key = os.environ.get("PAYBOND_API_KEY", "").strip()
35
+ if not api_key:
36
+ raise RuntimeError("PAYBOND_API_KEY is required; run paybond login")
37
+ return await Paybond.open(
38
+ api_key=api_key,
39
+ gateway_base_url=(
40
+ os.environ.get("PAYBOND_GATEWAY_URL")
41
+ or os.environ.get("PAYBOND_GATEWAY_BASE_URL")
42
+ or "https://api.paybond.ai"
43
+ ),
44
+ expected_environment="sandbox",
45
+ )
@@ -0,0 +1,2 @@
1
+ paybond-kit[crewai]>=0.12.6
2
+ crewai>=0.80.0
@@ -1,2 +1,2 @@
1
- paybond-kit>=0.11.11
1
+ paybond-kit>=0.12.6
2
2
  langgraph>=1.2.0
@@ -7,12 +7,12 @@
7
7
  "name": "paybond-mastra-travel-agent",
8
8
  "dependencies": {
9
9
  "@mastra/core": "^1.49.0",
10
- "@paybond/kit": "^0.12.4",
10
+ "@paybond/kit": "^0.12.6",
11
11
  "zod": "^4.2.0"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@types/node": "^22.10.1",
15
- "typescript": "^5.7.2"
15
+ "typescript": "^7.0.2"
16
16
  },
17
17
  "engines": {
18
18
  "node": ">=22"
@@ -412,9 +412,9 @@
412
412
  }
413
413
  },
414
414
  "node_modules/@paybond/kit": {
415
- "version": "0.12.4",
416
- "resolved": "https://registry.npmjs.org/@paybond/kit/-/kit-0.12.4.tgz",
417
- "integrity": "sha512-Wo2v0MBEdrvxGcSSJ/hG1TGOfw/hm0TTnpVXH70PVq0Y+xL97o4J9A1Z2dKVdfRnp5O0KM0AkJKA2MeOQ7qkFw==",
415
+ "version": "0.12.6",
416
+ "resolved": "https://registry.npmjs.org/@paybond/kit/-/kit-0.12.6.tgz",
417
+ "integrity": "sha512-rkZ+7SjXm3aZ9TIGkCYvwTWV+NPRxuol+UmBGd0NPzOilHmHhP84aYH1Ro4syVA2pqIdyqCItSszGQMETPjNTA==",
418
418
  "license": "Apache-2.0",
419
419
  "dependencies": {
420
420
  "@noble/ed25519": "^2.2.1",
@@ -436,6 +436,7 @@
436
436
  },
437
437
  "peerDependencies": {
438
438
  "@anthropic-ai/claude-agent-sdk": ">=0.2.100",
439
+ "@google/adk": ">=1.0.0",
439
440
  "@langchain/core": ">=0.3.0",
440
441
  "@langchain/langgraph": ">=0.2.50",
441
442
  "@mastra/core": ">=1.0.0",
@@ -448,6 +449,9 @@
448
449
  "@anthropic-ai/claude-agent-sdk": {
449
450
  "optional": true
450
451
  },
452
+ "@google/adk": {
453
+ "optional": true
454
+ },
451
455
  "@langchain/core": {
452
456
  "optional": true
453
457
  },
@@ -594,6 +598,346 @@
594
598
  "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
595
599
  "license": "MIT"
596
600
  },
601
+ "node_modules/@typescript/typescript-aix-ppc64": {
602
+ "version": "7.0.2",
603
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz",
604
+ "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==",
605
+ "cpu": [
606
+ "ppc64"
607
+ ],
608
+ "dev": true,
609
+ "license": "Apache-2.0",
610
+ "optional": true,
611
+ "os": [
612
+ "aix"
613
+ ],
614
+ "engines": {
615
+ "node": ">=16.20.0"
616
+ }
617
+ },
618
+ "node_modules/@typescript/typescript-darwin-arm64": {
619
+ "version": "7.0.2",
620
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz",
621
+ "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==",
622
+ "cpu": [
623
+ "arm64"
624
+ ],
625
+ "dev": true,
626
+ "license": "Apache-2.0",
627
+ "optional": true,
628
+ "os": [
629
+ "darwin"
630
+ ],
631
+ "engines": {
632
+ "node": ">=16.20.0"
633
+ }
634
+ },
635
+ "node_modules/@typescript/typescript-darwin-x64": {
636
+ "version": "7.0.2",
637
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz",
638
+ "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==",
639
+ "cpu": [
640
+ "x64"
641
+ ],
642
+ "dev": true,
643
+ "license": "Apache-2.0",
644
+ "optional": true,
645
+ "os": [
646
+ "darwin"
647
+ ],
648
+ "engines": {
649
+ "node": ">=16.20.0"
650
+ }
651
+ },
652
+ "node_modules/@typescript/typescript-freebsd-arm64": {
653
+ "version": "7.0.2",
654
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz",
655
+ "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==",
656
+ "cpu": [
657
+ "arm64"
658
+ ],
659
+ "dev": true,
660
+ "license": "Apache-2.0",
661
+ "optional": true,
662
+ "os": [
663
+ "freebsd"
664
+ ],
665
+ "engines": {
666
+ "node": ">=16.20.0"
667
+ }
668
+ },
669
+ "node_modules/@typescript/typescript-freebsd-x64": {
670
+ "version": "7.0.2",
671
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz",
672
+ "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==",
673
+ "cpu": [
674
+ "x64"
675
+ ],
676
+ "dev": true,
677
+ "license": "Apache-2.0",
678
+ "optional": true,
679
+ "os": [
680
+ "freebsd"
681
+ ],
682
+ "engines": {
683
+ "node": ">=16.20.0"
684
+ }
685
+ },
686
+ "node_modules/@typescript/typescript-linux-arm": {
687
+ "version": "7.0.2",
688
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz",
689
+ "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==",
690
+ "cpu": [
691
+ "arm"
692
+ ],
693
+ "dev": true,
694
+ "license": "Apache-2.0",
695
+ "optional": true,
696
+ "os": [
697
+ "linux"
698
+ ],
699
+ "engines": {
700
+ "node": ">=16.20.0"
701
+ }
702
+ },
703
+ "node_modules/@typescript/typescript-linux-arm64": {
704
+ "version": "7.0.2",
705
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz",
706
+ "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==",
707
+ "cpu": [
708
+ "arm64"
709
+ ],
710
+ "dev": true,
711
+ "license": "Apache-2.0",
712
+ "optional": true,
713
+ "os": [
714
+ "linux"
715
+ ],
716
+ "engines": {
717
+ "node": ">=16.20.0"
718
+ }
719
+ },
720
+ "node_modules/@typescript/typescript-linux-loong64": {
721
+ "version": "7.0.2",
722
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz",
723
+ "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==",
724
+ "cpu": [
725
+ "loong64"
726
+ ],
727
+ "dev": true,
728
+ "license": "Apache-2.0",
729
+ "optional": true,
730
+ "os": [
731
+ "linux"
732
+ ],
733
+ "engines": {
734
+ "node": ">=16.20.0"
735
+ }
736
+ },
737
+ "node_modules/@typescript/typescript-linux-mips64el": {
738
+ "version": "7.0.2",
739
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz",
740
+ "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==",
741
+ "cpu": [
742
+ "mips64el"
743
+ ],
744
+ "dev": true,
745
+ "license": "Apache-2.0",
746
+ "optional": true,
747
+ "os": [
748
+ "linux"
749
+ ],
750
+ "engines": {
751
+ "node": ">=16.20.0"
752
+ }
753
+ },
754
+ "node_modules/@typescript/typescript-linux-ppc64": {
755
+ "version": "7.0.2",
756
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz",
757
+ "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==",
758
+ "cpu": [
759
+ "ppc64"
760
+ ],
761
+ "dev": true,
762
+ "license": "Apache-2.0",
763
+ "optional": true,
764
+ "os": [
765
+ "linux"
766
+ ],
767
+ "engines": {
768
+ "node": ">=16.20.0"
769
+ }
770
+ },
771
+ "node_modules/@typescript/typescript-linux-riscv64": {
772
+ "version": "7.0.2",
773
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz",
774
+ "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==",
775
+ "cpu": [
776
+ "riscv64"
777
+ ],
778
+ "dev": true,
779
+ "license": "Apache-2.0",
780
+ "optional": true,
781
+ "os": [
782
+ "linux"
783
+ ],
784
+ "engines": {
785
+ "node": ">=16.20.0"
786
+ }
787
+ },
788
+ "node_modules/@typescript/typescript-linux-s390x": {
789
+ "version": "7.0.2",
790
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz",
791
+ "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==",
792
+ "cpu": [
793
+ "s390x"
794
+ ],
795
+ "dev": true,
796
+ "license": "Apache-2.0",
797
+ "optional": true,
798
+ "os": [
799
+ "linux"
800
+ ],
801
+ "engines": {
802
+ "node": ">=16.20.0"
803
+ }
804
+ },
805
+ "node_modules/@typescript/typescript-linux-x64": {
806
+ "version": "7.0.2",
807
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz",
808
+ "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==",
809
+ "cpu": [
810
+ "x64"
811
+ ],
812
+ "dev": true,
813
+ "license": "Apache-2.0",
814
+ "optional": true,
815
+ "os": [
816
+ "linux"
817
+ ],
818
+ "engines": {
819
+ "node": ">=16.20.0"
820
+ }
821
+ },
822
+ "node_modules/@typescript/typescript-netbsd-arm64": {
823
+ "version": "7.0.2",
824
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz",
825
+ "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==",
826
+ "cpu": [
827
+ "arm64"
828
+ ],
829
+ "dev": true,
830
+ "license": "Apache-2.0",
831
+ "optional": true,
832
+ "os": [
833
+ "netbsd"
834
+ ],
835
+ "engines": {
836
+ "node": ">=16.20.0"
837
+ }
838
+ },
839
+ "node_modules/@typescript/typescript-netbsd-x64": {
840
+ "version": "7.0.2",
841
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz",
842
+ "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==",
843
+ "cpu": [
844
+ "x64"
845
+ ],
846
+ "dev": true,
847
+ "license": "Apache-2.0",
848
+ "optional": true,
849
+ "os": [
850
+ "netbsd"
851
+ ],
852
+ "engines": {
853
+ "node": ">=16.20.0"
854
+ }
855
+ },
856
+ "node_modules/@typescript/typescript-openbsd-arm64": {
857
+ "version": "7.0.2",
858
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz",
859
+ "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==",
860
+ "cpu": [
861
+ "arm64"
862
+ ],
863
+ "dev": true,
864
+ "license": "Apache-2.0",
865
+ "optional": true,
866
+ "os": [
867
+ "openbsd"
868
+ ],
869
+ "engines": {
870
+ "node": ">=16.20.0"
871
+ }
872
+ },
873
+ "node_modules/@typescript/typescript-openbsd-x64": {
874
+ "version": "7.0.2",
875
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz",
876
+ "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==",
877
+ "cpu": [
878
+ "x64"
879
+ ],
880
+ "dev": true,
881
+ "license": "Apache-2.0",
882
+ "optional": true,
883
+ "os": [
884
+ "openbsd"
885
+ ],
886
+ "engines": {
887
+ "node": ">=16.20.0"
888
+ }
889
+ },
890
+ "node_modules/@typescript/typescript-sunos-x64": {
891
+ "version": "7.0.2",
892
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz",
893
+ "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==",
894
+ "cpu": [
895
+ "x64"
896
+ ],
897
+ "dev": true,
898
+ "license": "Apache-2.0",
899
+ "optional": true,
900
+ "os": [
901
+ "sunos"
902
+ ],
903
+ "engines": {
904
+ "node": ">=16.20.0"
905
+ }
906
+ },
907
+ "node_modules/@typescript/typescript-win32-arm64": {
908
+ "version": "7.0.2",
909
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz",
910
+ "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==",
911
+ "cpu": [
912
+ "arm64"
913
+ ],
914
+ "dev": true,
915
+ "license": "Apache-2.0",
916
+ "optional": true,
917
+ "os": [
918
+ "win32"
919
+ ],
920
+ "engines": {
921
+ "node": ">=16.20.0"
922
+ }
923
+ },
924
+ "node_modules/@typescript/typescript-win32-x64": {
925
+ "version": "7.0.2",
926
+ "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz",
927
+ "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==",
928
+ "cpu": [
929
+ "x64"
930
+ ],
931
+ "dev": true,
932
+ "license": "Apache-2.0",
933
+ "optional": true,
934
+ "os": [
935
+ "win32"
936
+ ],
937
+ "engines": {
938
+ "node": ">=16.20.0"
939
+ }
940
+ },
597
941
  "node_modules/@workflow/serde": {
598
942
  "version": "4.1.0",
599
943
  "resolved": "https://registry.npmjs.org/@workflow/serde/-/serde-4.1.0.tgz",
@@ -1390,9 +1734,9 @@
1390
1734
  }
1391
1735
  },
1392
1736
  "node_modules/hono": {
1393
- "version": "4.12.29",
1394
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.29.tgz",
1395
- "integrity": "sha512-1hNiRjawYrLq/4m3DQQjPGFg0VZkk4RjQJDff/excI6Dm9BiL75qxGrd7/c6YOxPdq6AscP3LiXhQ6fKFC1Waw==",
1737
+ "version": "4.12.30",
1738
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.30.tgz",
1739
+ "integrity": "sha512-emn+JoJjrN9YTpRDS5it/UI2SO9BAE37T6I3d963RxcZ81G9A4pr2SZTEiiaiKbzx+NKRg5BZ89fCL7gCJCUog==",
1396
1740
  "license": "MIT",
1397
1741
  "engines": {
1398
1742
  "node": ">=16.9.0"
@@ -3092,17 +3436,38 @@
3092
3436
  }
3093
3437
  },
3094
3438
  "node_modules/typescript": {
3095
- "version": "5.9.3",
3096
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
3097
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
3439
+ "version": "7.0.2",
3440
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz",
3441
+ "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==",
3098
3442
  "dev": true,
3099
3443
  "license": "Apache-2.0",
3100
3444
  "bin": {
3101
- "tsc": "bin/tsc",
3102
- "tsserver": "bin/tsserver"
3445
+ "tsc": "bin/tsc"
3103
3446
  },
3104
3447
  "engines": {
3105
- "node": ">=14.17"
3448
+ "node": ">=16.20.0"
3449
+ },
3450
+ "optionalDependencies": {
3451
+ "@typescript/typescript-aix-ppc64": "7.0.2",
3452
+ "@typescript/typescript-darwin-arm64": "7.0.2",
3453
+ "@typescript/typescript-darwin-x64": "7.0.2",
3454
+ "@typescript/typescript-freebsd-arm64": "7.0.2",
3455
+ "@typescript/typescript-freebsd-x64": "7.0.2",
3456
+ "@typescript/typescript-linux-arm": "7.0.2",
3457
+ "@typescript/typescript-linux-arm64": "7.0.2",
3458
+ "@typescript/typescript-linux-loong64": "7.0.2",
3459
+ "@typescript/typescript-linux-mips64el": "7.0.2",
3460
+ "@typescript/typescript-linux-ppc64": "7.0.2",
3461
+ "@typescript/typescript-linux-riscv64": "7.0.2",
3462
+ "@typescript/typescript-linux-s390x": "7.0.2",
3463
+ "@typescript/typescript-linux-x64": "7.0.2",
3464
+ "@typescript/typescript-netbsd-arm64": "7.0.2",
3465
+ "@typescript/typescript-netbsd-x64": "7.0.2",
3466
+ "@typescript/typescript-openbsd-arm64": "7.0.2",
3467
+ "@typescript/typescript-openbsd-x64": "7.0.2",
3468
+ "@typescript/typescript-sunos-x64": "7.0.2",
3469
+ "@typescript/typescript-win32-arm64": "7.0.2",
3470
+ "@typescript/typescript-win32-x64": "7.0.2"
3106
3471
  }
3107
3472
  },
3108
3473
  "node_modules/undici-types": {
@@ -8,13 +8,13 @@
8
8
  "smoke": "paybond agent sandbox smoke --policy-file paybond.policy.yaml --operation travel.book_hotel --requested-spend-cents 18700 --result-body '{\"status\":\"completed\",\"cost_cents\":18700}' --format json"
9
9
  },
10
10
  "dependencies": {
11
- "@paybond/kit": "^0.11.11",
11
+ "@paybond/kit": "^0.12.6",
12
12
  "@mastra/core": "^1.49.0",
13
13
  "zod": "^4.2.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@types/node": "^22.10.1",
17
- "typescript": "^5.7.2"
17
+ "typescript": "^7.0.2"
18
18
  },
19
19
  "engines": {
20
20
  "node": ">=22"