@stellar-agent-services/provider-kit 0.0.0-stage → 0.1.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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +508 -2
  3. package/dist/approve/assets/index-BazIJAI2.css +1 -0
  4. package/dist/approve/assets/index-CL28cSJy.js +420 -0
  5. package/dist/approve/favicon.svg +1 -0
  6. package/dist/approve/index.html +18 -0
  7. package/dist/cli/approval-view.d.ts +80 -0
  8. package/dist/cli/approval-view.d.ts.map +1 -0
  9. package/dist/cli/approval-view.js +5 -0
  10. package/dist/cli/approval-view.js.map +1 -0
  11. package/dist/cli/approval.d.ts +132 -0
  12. package/dist/cli/approval.d.ts.map +1 -0
  13. package/dist/cli/approval.js +542 -0
  14. package/dist/cli/approval.js.map +1 -0
  15. package/dist/cli/check.d.ts +3 -0
  16. package/dist/cli/check.d.ts.map +1 -0
  17. package/dist/cli/check.js +137 -0
  18. package/dist/cli/check.js.map +1 -0
  19. package/dist/cli/dev-account.d.ts +28 -0
  20. package/dist/cli/dev-account.d.ts.map +1 -0
  21. package/dist/cli/dev-account.js +62 -0
  22. package/dist/cli/dev-account.js.map +1 -0
  23. package/dist/cli/dev.d.ts +27 -0
  24. package/dist/cli/dev.d.ts.map +1 -0
  25. package/dist/cli/dev.js +226 -0
  26. package/dist/cli/dev.js.map +1 -0
  27. package/dist/cli/discovery.d.ts +20 -0
  28. package/dist/cli/discovery.d.ts.map +1 -0
  29. package/dist/cli/discovery.js +202 -0
  30. package/dist/cli/discovery.js.map +1 -0
  31. package/dist/cli/env-file.d.ts +16 -0
  32. package/dist/cli/env-file.d.ts.map +1 -0
  33. package/dist/cli/env-file.js +77 -0
  34. package/dist/cli/env-file.js.map +1 -0
  35. package/dist/cli/fly.d.ts +28 -0
  36. package/dist/cli/fly.d.ts.map +1 -0
  37. package/dist/cli/fly.js +92 -0
  38. package/dist/cli/fly.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -0
  40. package/dist/cli/index.d.ts.map +1 -0
  41. package/dist/cli/index.js +11 -0
  42. package/dist/cli/index.js.map +1 -0
  43. package/dist/cli/init.d.ts +3 -0
  44. package/dist/cli/init.d.ts.map +1 -0
  45. package/dist/cli/init.js +170 -0
  46. package/dist/cli/init.js.map +1 -0
  47. package/dist/cli/launch.d.ts +21 -0
  48. package/dist/cli/launch.d.ts.map +1 -0
  49. package/dist/cli/launch.js +627 -0
  50. package/dist/cli/launch.js.map +1 -0
  51. package/dist/cli/main.d.ts +2 -0
  52. package/dist/cli/main.d.ts.map +1 -0
  53. package/dist/cli/main.js +158 -0
  54. package/dist/cli/main.js.map +1 -0
  55. package/dist/cli/owner-chain.d.ts +88 -0
  56. package/dist/cli/owner-chain.d.ts.map +1 -0
  57. package/dist/cli/owner-chain.js +284 -0
  58. package/dist/cli/owner-chain.js.map +1 -0
  59. package/dist/cli/owner-steps.d.ts +33 -0
  60. package/dist/cli/owner-steps.d.ts.map +1 -0
  61. package/dist/cli/owner-steps.js +121 -0
  62. package/dist/cli/owner-steps.js.map +1 -0
  63. package/dist/cli/processes.d.ts +47 -0
  64. package/dist/cli/processes.d.ts.map +1 -0
  65. package/dist/cli/processes.js +129 -0
  66. package/dist/cli/processes.js.map +1 -0
  67. package/dist/cli/reconcile.d.ts +3 -0
  68. package/dist/cli/reconcile.d.ts.map +1 -0
  69. package/dist/cli/reconcile.js +76 -0
  70. package/dist/cli/reconcile.js.map +1 -0
  71. package/dist/cli/register.d.ts +9 -0
  72. package/dist/cli/register.d.ts.map +1 -0
  73. package/dist/cli/register.js +209 -0
  74. package/dist/cli/register.js.map +1 -0
  75. package/dist/cli/request-validation.d.ts +5 -0
  76. package/dist/cli/request-validation.d.ts.map +1 -0
  77. package/dist/cli/request-validation.js +144 -0
  78. package/dist/cli/request-validation.js.map +1 -0
  79. package/dist/cli/serve.d.ts +25 -0
  80. package/dist/cli/serve.d.ts.map +1 -0
  81. package/dist/cli/serve.js +73 -0
  82. package/dist/cli/serve.js.map +1 -0
  83. package/dist/cli/shared.d.ts +142 -0
  84. package/dist/cli/shared.d.ts.map +1 -0
  85. package/dist/cli/shared.js +110 -0
  86. package/dist/cli/shared.js.map +1 -0
  87. package/dist/cli/status.d.ts +32 -0
  88. package/dist/cli/status.d.ts.map +1 -0
  89. package/dist/cli/status.js +248 -0
  90. package/dist/cli/status.js.map +1 -0
  91. package/dist/cli/target.d.ts +14 -0
  92. package/dist/cli/target.d.ts.map +1 -0
  93. package/dist/cli/target.js +43 -0
  94. package/dist/cli/target.js.map +1 -0
  95. package/dist/cli/trustline.d.ts +3 -0
  96. package/dist/cli/trustline.d.ts.map +1 -0
  97. package/dist/cli/trustline.js +114 -0
  98. package/dist/cli/trustline.js.map +1 -0
  99. package/dist/cli/try.d.ts +54 -0
  100. package/dist/cli/try.d.ts.map +1 -0
  101. package/dist/cli/try.js +450 -0
  102. package/dist/cli/try.js.map +1 -0
  103. package/dist/cli/tunnel.d.ts +13 -0
  104. package/dist/cli/tunnel.d.ts.map +1 -0
  105. package/dist/cli/tunnel.js +43 -0
  106. package/dist/cli/tunnel.js.map +1 -0
  107. package/dist/cli/validators.d.ts +6 -0
  108. package/dist/cli/validators.d.ts.map +1 -0
  109. package/dist/cli/validators.js +14 -0
  110. package/dist/cli/validators.js.map +1 -0
  111. package/dist/define-service.d.ts +71 -0
  112. package/dist/define-service.d.ts.map +1 -0
  113. package/dist/define-service.js +86 -0
  114. package/dist/define-service.js.map +1 -0
  115. package/dist/gateway/config.d.ts +88 -0
  116. package/dist/gateway/config.d.ts.map +1 -0
  117. package/dist/gateway/config.js +201 -0
  118. package/dist/gateway/config.js.map +1 -0
  119. package/dist/gateway/openapi.d.ts +69 -0
  120. package/dist/gateway/openapi.d.ts.map +1 -0
  121. package/dist/gateway/openapi.js +677 -0
  122. package/dist/gateway/openapi.js.map +1 -0
  123. package/dist/gateway/upstream.d.ts +15 -0
  124. package/dist/gateway/upstream.d.ts.map +1 -0
  125. package/dist/gateway/upstream.js +95 -0
  126. package/dist/gateway/upstream.js.map +1 -0
  127. package/dist/http/bounded.d.ts +3 -0
  128. package/dist/http/bounded.d.ts.map +1 -0
  129. package/dist/http/bounded.js +23 -0
  130. package/dist/http/bounded.js.map +1 -0
  131. package/dist/http/node-server.d.ts +15 -0
  132. package/dist/http/node-server.d.ts.map +1 -0
  133. package/dist/http/node-server.js +120 -0
  134. package/dist/http/node-server.js.map +1 -0
  135. package/dist/http/rate-limit.d.ts +11 -0
  136. package/dist/http/rate-limit.d.ts.map +1 -0
  137. package/dist/http/rate-limit.js +35 -0
  138. package/dist/http/rate-limit.js.map +1 -0
  139. package/dist/http/router.d.ts +29 -0
  140. package/dist/http/router.d.ts.map +1 -0
  141. package/dist/http/router.js +329 -0
  142. package/dist/http/router.js.map +1 -0
  143. package/dist/index.d.ts +20 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +31 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/jobs/memory-store.d.ts +3 -0
  148. package/dist/jobs/memory-store.d.ts.map +1 -0
  149. package/dist/jobs/memory-store.js +121 -0
  150. package/dist/jobs/memory-store.js.map +1 -0
  151. package/dist/jobs/reconcile.d.ts +22 -0
  152. package/dist/jobs/reconcile.d.ts.map +1 -0
  153. package/dist/jobs/reconcile.js +82 -0
  154. package/dist/jobs/reconcile.js.map +1 -0
  155. package/dist/jobs/recovery.d.ts +19 -0
  156. package/dist/jobs/recovery.d.ts.map +1 -0
  157. package/dist/jobs/recovery.js +65 -0
  158. package/dist/jobs/recovery.js.map +1 -0
  159. package/dist/jobs/runner.d.ts +38 -0
  160. package/dist/jobs/runner.d.ts.map +1 -0
  161. package/dist/jobs/runner.js +194 -0
  162. package/dist/jobs/runner.js.map +1 -0
  163. package/dist/jobs/scheduler.d.ts +66 -0
  164. package/dist/jobs/scheduler.d.ts.map +1 -0
  165. package/dist/jobs/scheduler.js +197 -0
  166. package/dist/jobs/scheduler.js.map +1 -0
  167. package/dist/jobs/sqlite-store.d.ts +8 -0
  168. package/dist/jobs/sqlite-store.d.ts.map +1 -0
  169. package/dist/jobs/sqlite-store.js +231 -0
  170. package/dist/jobs/sqlite-store.js.map +1 -0
  171. package/dist/jobs/store.d.ts +118 -0
  172. package/dist/jobs/store.d.ts.map +1 -0
  173. package/dist/jobs/store.js +36 -0
  174. package/dist/jobs/store.js.map +1 -0
  175. package/dist/manifest.d.ts +11 -0
  176. package/dist/manifest.d.ts.map +1 -0
  177. package/dist/manifest.js +99 -0
  178. package/dist/manifest.js.map +1 -0
  179. package/dist/payments/chain.d.ts +23 -0
  180. package/dist/payments/chain.d.ts.map +1 -0
  181. package/dist/payments/chain.js +108 -0
  182. package/dist/payments/chain.js.map +1 -0
  183. package/dist/payments/facilitator.d.ts +44 -0
  184. package/dist/payments/facilitator.d.ts.map +1 -0
  185. package/dist/payments/facilitator.js +125 -0
  186. package/dist/payments/facilitator.js.map +1 -0
  187. package/dist/payments/onchain.d.ts +36 -0
  188. package/dist/payments/onchain.d.ts.map +1 -0
  189. package/dist/payments/onchain.js +191 -0
  190. package/dist/payments/onchain.js.map +1 -0
  191. package/dist/payments/payload-checks.d.ts +22 -0
  192. package/dist/payments/payload-checks.d.ts.map +1 -0
  193. package/dist/payments/payload-checks.js +113 -0
  194. package/dist/payments/payload-checks.js.map +1 -0
  195. package/dist/payments/settlement.d.ts +22 -0
  196. package/dist/payments/settlement.d.ts.map +1 -0
  197. package/dist/payments/settlement.js +65 -0
  198. package/dist/payments/settlement.js.map +1 -0
  199. package/dist/payments/x402-server.d.ts +8 -0
  200. package/dist/payments/x402-server.d.ts.map +1 -0
  201. package/dist/payments/x402-server.js +74 -0
  202. package/dist/payments/x402-server.js.map +1 -0
  203. package/dist/provider.d.ts +63 -0
  204. package/dist/provider.d.ts.map +1 -0
  205. package/dist/provider.js +177 -0
  206. package/dist/provider.js.map +1 -0
  207. package/dist/registration.d.ts +86 -0
  208. package/dist/registration.d.ts.map +1 -0
  209. package/dist/registration.js +162 -0
  210. package/dist/registration.js.map +1 -0
  211. package/dist/testing.d.ts +13 -0
  212. package/dist/testing.d.ts.map +1 -0
  213. package/dist/testing.js +48 -0
  214. package/dist/testing.js.map +1 -0
  215. package/dist/validation-request.d.ts +36 -0
  216. package/dist/validation-request.d.ts.map +1 -0
  217. package/dist/validation-request.js +101 -0
  218. package/dist/validation-request.js.map +1 -0
  219. package/package.json +55 -4
  220. package/schemas/gateway-config.schema.json +140 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-chain.js","sourceRoot":"","sources":["../../src/cli/owner-chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { PreparedValidationRequest } from "../validation-request.js";
2
+ import type { ApprovalStep } from "./approval.js";
3
+ import { type OwnerChain } from "./owner-chain.js";
4
+ /**
5
+ * What `address` needs before its own step: test XLM when it is a new testnet account, and with `trustline`
6
+ * a USDC trustline when it has none. A new account on Mainnet can't be funded from here.
7
+ */
8
+ export declare function accountSteps(chain: OwnerChain, address: string, options: {
9
+ trustline: boolean;
10
+ }): Promise<ApprovalStep[]>;
11
+ /** A USDC trustline for `address`, so it can be paid [P2]. */
12
+ export declare function trustlineStep(chain: OwnerChain, address: string): ApprovalStep;
13
+ export interface RegisterStepOptions {
14
+ /** The identity registry contract. */
15
+ identity: string;
16
+ /** The connected account, which signs. */
17
+ caller: string;
18
+ agentUri: string;
19
+ manifestUrl: string;
20
+ providerName: string;
21
+ /** Set to update this agent's registration; unset to register a new agent. */
22
+ agentId?: number;
23
+ /** Called with the new agent's id. */
24
+ onRegistered?(agentId: number): void;
25
+ }
26
+ /** register_with_uri for a new agent, or set_agent_uri for an existing one [I1]. */
27
+ export declare function registerStep(chain: OwnerChain, options: RegisterStepOptions): ApprovalStep;
28
+ /**
29
+ * validation_request from `caller`, as prepareValidationRequest() built and checked it. `prepared` may be a function
30
+ * that prepares it when the step is due, such as after an earlier step of the same session registered the agent.
31
+ */
32
+ export declare function validationRequestStep(chain: OwnerChain, caller: string, prepared: PreparedValidationRequest | (() => Promise<PreparedValidationRequest>), onSent?: (prepared: PreparedValidationRequest) => void): ApprovalStep;
33
+ //# sourceMappingURL=owner-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-steps.d.ts","sourceRoot":"","sources":["../../src/cli/owner-steps.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAiG,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElJ;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuB/H;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAkB9E;AAED,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAgC1F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,yBAAyB,GAAG,CAAC,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAChF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GACrD,YAAY,CA6Bd"}
@@ -0,0 +1,121 @@
1
+ // The owner's actions as approval steps (cli/approval.ts): test XLM for a new testnet account, the USDC
2
+ // trustline [P2], the Stellar 8004 registration [I1]–[I3] and the validation request. Each one says in plain
3
+ // words what signing it does; the approval page shows that above the transaction itself.
4
+ import { USDC_ISSUER } from "@stellar-agent-services/protocol";
5
+ import { scValToNative } from "@stellar/stellar-sdk";
6
+ import { ApprovalError, explorerUrl, networkName, registerCall, setAgentUriCall, validationRequestCall } from "./owner-chain.js";
7
+ /**
8
+ * What `address` needs before its own step: test XLM when it is a new testnet account, and with `trustline`
9
+ * a USDC trustline when it has none. A new account on Mainnet can't be funded from here.
10
+ */
11
+ export async function accountSteps(chain, address, options) {
12
+ const state = await chain.account(address);
13
+ const steps = [];
14
+ if (!state.exists) {
15
+ if (chain.network !== "stellar:testnet") {
16
+ throw new ApprovalError(`This account isn't on ${networkName(chain.network)} yet`, `Send ${address} some XLM first: 2 XLM covers the account and a USDC trustline. Then connect again.`, "connect");
17
+ }
18
+ steps.push({
19
+ kind: "auto",
20
+ id: "fund",
21
+ title: "Get test XLM",
22
+ run: async () => {
23
+ await chain.fund(address);
24
+ return "funded by Friendbot";
25
+ },
26
+ });
27
+ }
28
+ if (options.trustline && !state.usdcTrustline)
29
+ steps.push(trustlineStep(chain, address));
30
+ return steps;
31
+ }
32
+ /** A USDC trustline for `address`, so it can be paid [P2]. */
33
+ export function trustlineStep(chain, address) {
34
+ const issuer = USDC_ISSUER[chain.network];
35
+ return {
36
+ kind: "sign",
37
+ id: "trustline",
38
+ title: "Add USDC",
39
+ build: async () => ({
40
+ transaction: await chain.trustline(address),
41
+ summary: "Lets this account hold USDC, so clients can pay your service. Stellar keeps 0.5 XLM of its balance in reserve while it holds USDC.",
42
+ details: [
43
+ { label: "Asset", value: "USDC" },
44
+ { label: "Issuer", value: issuer, mono: true, href: explorerUrl(chain.network, "account", issuer) },
45
+ { label: "Operation", value: "change_trust", mono: true },
46
+ { label: "Reserve", value: "0.5 XLM, held while the trustline exists" },
47
+ ],
48
+ }),
49
+ done: () => "USDC trustline added",
50
+ };
51
+ }
52
+ /** register_with_uri for a new agent, or set_agent_uri for an existing one [I1]. */
53
+ export function registerStep(chain, options) {
54
+ const { identity, caller, agentUri, manifestUrl, agentId } = options;
55
+ const update = agentId !== undefined;
56
+ const call = update ? setAgentUriCall(identity, caller, agentId, agentUri) : registerCall(identity, caller, agentUri);
57
+ return {
58
+ kind: "sign",
59
+ id: "register",
60
+ title: update ? "Update registration" : "Register",
61
+ build: async () => ({
62
+ transaction: await chain.invoke(caller, call),
63
+ summary: update
64
+ ? `Replaces agent ${agentId}'s registration file with one that names your manifest.`
65
+ : "Creates your agent in the Stellar 8004 identity registry. This account becomes its owner and its wallet, so your service is paid here.",
66
+ details: [
67
+ { label: "Service", value: options.providerName },
68
+ { label: "Manifest", value: manifestUrl, href: manifestUrl },
69
+ update ? { label: "Agent", value: String(agentId) } : { label: "Owner and wallet", value: caller, mono: true, href: explorerUrl(chain.network, "account", caller) },
70
+ agentUri.startsWith("data:")
71
+ ? { label: "Registration file", value: `Stored on chain, ${(agentUri.length / 1024).toFixed(1)} KB` }
72
+ : { label: "Registration file", value: agentUri, href: agentUri },
73
+ { label: "Contract", value: identity, mono: true, href: explorerUrl(chain.network, "contract", identity) },
74
+ { label: "Function", value: call.method, mono: true },
75
+ ],
76
+ }),
77
+ done(sent) {
78
+ if (update)
79
+ return `agent ${agentId} updated`;
80
+ const id = sent.returnValue === undefined ? undefined : scValToNative(sent.returnValue);
81
+ if (typeof id !== "number" || !Number.isInteger(id))
82
+ throw new Error("the registry returned no agent id");
83
+ options.onRegistered?.(id);
84
+ return `agent ${id}`;
85
+ },
86
+ };
87
+ }
88
+ /**
89
+ * validation_request from `caller`, as prepareValidationRequest() built and checked it. `prepared` may be a function
90
+ * that prepares it when the step is due, such as after an earlier step of the same session registered the agent.
91
+ */
92
+ export function validationRequestStep(chain, caller, prepared, onSent) {
93
+ let ready = typeof prepared === "function" ? undefined : prepared;
94
+ return {
95
+ kind: "sign",
96
+ id: "request-validation",
97
+ title: "Request validation",
98
+ build: async () => {
99
+ // Prepared once: building again after a refusal sends the same request, with the same hash.
100
+ ready ??= await prepared();
101
+ const { request, requestHash, contractId } = ready;
102
+ return {
103
+ transaction: await chain.invoke(caller, validationRequestCall(caller, ready)),
104
+ summary: "Asks the verifier to check your service and answer in the Stellar 8004 Validation Registry. The request document goes on chain with it, so there is nothing to host.",
105
+ details: [
106
+ { label: "Agent", value: String(request.agentId) },
107
+ { label: "Verifier", value: request.validator, mono: true, href: explorerUrl(chain.network, "account", request.validator) },
108
+ { label: "Manifest", value: request.manifest.url, href: request.manifest.url },
109
+ { label: "Request hash", value: requestHash, mono: true },
110
+ { label: "Contract", value: contractId, mono: true, href: explorerUrl(chain.network, "contract", contractId) },
111
+ { label: "Function", value: "validation_request", mono: true },
112
+ ],
113
+ };
114
+ },
115
+ done: () => {
116
+ onSent?.(ready);
117
+ return `request ${ready.requestHash.slice(0, 12)}…`;
118
+ },
119
+ };
120
+ }
121
+ //# sourceMappingURL=owner-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-steps.js","sourceRoot":"","sources":["../../src/cli/owner-steps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ProviderManifest } from "@stellar-agent-services/protocol";
2
+ /** A program running in the background. */
3
+ export interface Started {
4
+ /** The exit code, once it exits. */
5
+ readonly exited: Promise<number>;
6
+ /** Its output so far, when it isn't shown as it comes. */
7
+ output(): string;
8
+ /** Stops it and what it started: SIGTERM, then SIGKILL if it is still there after a few seconds. */
9
+ stop(): Promise<void>;
10
+ }
11
+ /**
12
+ * Starts a shell command line in the background. `env` is added to this process's environment. With `show`, its output
13
+ * shows as it comes, otherwise it is kept for output().
14
+ */
15
+ export declare function startCommand(command: string, options?: {
16
+ env?: NodeJS.ProcessEnv;
17
+ show?: boolean;
18
+ cwd?: string;
19
+ }): Started;
20
+ /** Starts a program in the foreground: it shares the terminal, and Ctrl+C reaches it as it reaches this process. */
21
+ export declare function startForeground(program: string, args: string[], options?: {
22
+ env?: NodeJS.ProcessEnv;
23
+ shell?: boolean;
24
+ }): Started;
25
+ /** Runs a program to its end. With `inherit` the developer sees it and can answer its questions; `input` goes to its standard input. */
26
+ export declare function runProgram(program: string, args: string[], options?: {
27
+ inherit?: boolean;
28
+ input?: string;
29
+ cwd?: string;
30
+ env?: NodeJS.ProcessEnv;
31
+ }): Promise<{
32
+ code: number;
33
+ output: string;
34
+ }>;
35
+ /** A free TCP port on this computer. */
36
+ export declare function freePort(): Promise<number>;
37
+ /**
38
+ * Waits until `url` serves a provider's manifest, and returns it. Stops waiting with an error when `exited` resolves
39
+ * first (the program that should serve it stopped), or after `timeoutMs`.
40
+ */
41
+ export declare function waitForManifest(url: string, options?: {
42
+ exited?: Promise<number>;
43
+ timeoutMs?: number;
44
+ fetch?: typeof fetch;
45
+ intervalMs?: number;
46
+ }): Promise<ProviderManifest>;
47
+ //# sourceMappingURL=processes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../src/cli/processes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,2CAA2C;AAC3C,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,0DAA0D;IAC1D,MAAM,IAAI,MAAM,CAAC;IACjB,oGAAoG;IACpG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAU9H;AAED,oHAAoH;AACpH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAGpI;AAyCD,wIAAwI;AACxI,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACzF,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAc3C;AAED,wCAAwC;AACxC,wBAAgB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAS1C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACxG,OAAO,CAAC,gBAAgB,CAAC,CAmB3B"}
@@ -0,0 +1,129 @@
1
+ // Programs the CLI starts and stops: a provider's own command (`dev -- <command>`, `try --start`, `launch --start`),
2
+ // a program running next to the gateway (`dev --with`), and tools such as flyctl and cloudflared.
3
+ //
4
+ // A program started in the background gets its own process group, so stopping it also stops what it started, such as
5
+ // the server under `npm run dev`. Its output is kept, and shown only when it fails to start. waitForManifest() is how
6
+ // the CLI knows a provider it started is up: its manifest answers.
7
+ import { spawn } from "node:child_process";
8
+ import { createServer } from "node:net";
9
+ /** How long stop() waits after SIGTERM. */
10
+ const STOP_GRACE_MS = 5000;
11
+ const OUTPUT_KEPT = 64 * 1024;
12
+ /**
13
+ * Starts a shell command line in the background. `env` is added to this process's environment. With `show`, its output
14
+ * shows as it comes, otherwise it is kept for output().
15
+ */
16
+ export function startCommand(command, options = {}) {
17
+ const ownGroup = process.platform !== "win32";
18
+ const child = spawn(command, {
19
+ shell: true,
20
+ detached: ownGroup,
21
+ cwd: options.cwd,
22
+ env: { ...process.env, ...options.env },
23
+ stdio: options.show ? ["ignore", "inherit", "inherit"] : ["ignore", "pipe", "pipe"],
24
+ });
25
+ return track(child, ownGroup);
26
+ }
27
+ /** Starts a program in the foreground: it shares the terminal, and Ctrl+C reaches it as it reaches this process. */
28
+ export function startForeground(program, args, options = {}) {
29
+ const child = spawn(program, args, { env: { ...process.env, ...options.env }, stdio: "inherit", shell: options.shell ?? false });
30
+ return track(child, false);
31
+ }
32
+ function track(child, ownGroup) {
33
+ let output = "";
34
+ const keep = (chunk) => {
35
+ output = (output + chunk.toString()).slice(-OUTPUT_KEPT);
36
+ };
37
+ child.stdout?.on("data", keep);
38
+ child.stderr?.on("data", keep);
39
+ const exited = new Promise((resolve) => {
40
+ child.once("error", (error) => {
41
+ keep(Buffer.from(`${error.message}\n`));
42
+ resolve(127);
43
+ });
44
+ child.once("exit", (code, signal) => resolve(code ?? (signal === null ? 1 : 128)));
45
+ });
46
+ let stopping;
47
+ const signal = (name) => {
48
+ try {
49
+ if (ownGroup && child.pid !== undefined)
50
+ process.kill(-child.pid, name);
51
+ else
52
+ child.kill(name);
53
+ }
54
+ catch {
55
+ // Already gone.
56
+ }
57
+ };
58
+ return {
59
+ exited,
60
+ output: () => output,
61
+ stop() {
62
+ stopping ??= (async () => {
63
+ if (child.exitCode !== null || child.signalCode !== null)
64
+ return;
65
+ signal("SIGTERM");
66
+ const timer = setTimeout(() => signal("SIGKILL"), STOP_GRACE_MS);
67
+ await exited;
68
+ clearTimeout(timer);
69
+ })();
70
+ return stopping;
71
+ },
72
+ };
73
+ }
74
+ /** Runs a program to its end. With `inherit` the developer sees it and can answer its questions; `input` goes to its standard input. */
75
+ export function runProgram(program, args, options = {}) {
76
+ return new Promise((resolve) => {
77
+ const child = spawn(program, args, {
78
+ cwd: options.cwd,
79
+ env: { ...process.env, ...options.env },
80
+ stdio: [options.input === undefined ? (options.inherit ? "inherit" : "ignore") : "pipe", options.inherit ? "inherit" : "pipe", options.inherit ? "inherit" : "pipe"],
81
+ });
82
+ let output = "";
83
+ child.stdout?.on("data", (chunk) => (output += chunk.toString()));
84
+ child.stderr?.on("data", (chunk) => (output += chunk.toString()));
85
+ if (options.input !== undefined)
86
+ child.stdin?.end(options.input);
87
+ child.once("error", (error) => resolve({ code: 127, output: `${output}${error.message}\n` }));
88
+ child.once("close", (code) => resolve({ code: code ?? 1, output }));
89
+ });
90
+ }
91
+ /** A free TCP port on this computer. */
92
+ export function freePort() {
93
+ return new Promise((resolve, reject) => {
94
+ const server = createServer();
95
+ server.once("error", reject);
96
+ server.listen(0, "127.0.0.1", () => {
97
+ const { port } = server.address();
98
+ server.close(() => resolve(port));
99
+ });
100
+ });
101
+ }
102
+ /**
103
+ * Waits until `url` serves a provider's manifest, and returns it. Stops waiting with an error when `exited` resolves
104
+ * first (the program that should serve it stopped), or after `timeoutMs`.
105
+ */
106
+ export async function waitForManifest(url, options = {}) {
107
+ const fetcher = options.fetch ?? fetch;
108
+ const deadline = Date.now() + (options.timeoutMs ?? 60_000);
109
+ let stopped;
110
+ void options.exited?.then((code) => (stopped = code));
111
+ let last = "nothing answered";
112
+ while (Date.now() < deadline) {
113
+ if (stopped !== undefined)
114
+ throw new Error(`it stopped (exit code ${stopped}) before serving its manifest`);
115
+ try {
116
+ const response = await fetcher(url, { redirect: "manual", headers: { Accept: "application/json" }, signal: AbortSignal.timeout(5000) });
117
+ if (response.status === 200)
118
+ return (await response.json());
119
+ last = `the manifest answered ${response.status}`;
120
+ await response.body?.cancel();
121
+ }
122
+ catch (error) {
123
+ last = error instanceof TypeError ? "nothing answered" : error.message;
124
+ }
125
+ await new Promise((resolve) => setTimeout(resolve, options.intervalMs ?? 250));
126
+ }
127
+ throw new Error(`${url} didn't serve a manifest in time: ${last}`);
128
+ }
129
+ //# sourceMappingURL=processes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/cli/processes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type CliFlags } from "./shared.js";
2
+ export declare function reconcile(flags: CliFlags): Promise<number>;
3
+ //# sourceMappingURL=reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/cli/reconcile.ts"],"names":[],"mappings":"AAeA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAaxD,wBAAsB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBhE"}
@@ -0,0 +1,76 @@
1
+ // provider-kit reconcile: decides payment_uncertain jobs from on-chain data [J13].
2
+ //
3
+ // A provider with a Soroban RPC does this by itself after every recovery sweep (jobs/reconcile.ts).
4
+ // This command is for the operator: to see where uncertain jobs stand (--dry-run), to decide them
5
+ // while the provider is stopped or has no RPC, or with another RPC (--rpc), such as one that keeps
6
+ // more history. It reads the chain and writes only the job store, compare-and-set, so it is safe next
7
+ // to a running provider. It signs nothing.
8
+ import { existsSync } from "node:fs";
9
+ import { USDC_ASSET } from "@stellar-agent-services/protocol";
10
+ import { loadGatewayConfig } from "../gateway/config.js";
11
+ import { reconcile as reconcileStore } from "../jobs/reconcile.js";
12
+ import { sqliteStore } from "../jobs/sqlite-store.js";
13
+ import { rpcChain } from "../payments/chain.js";
14
+ import { UsageError } from "./shared.js";
15
+ const NETWORKS = {
16
+ testnet: "stellar:testnet",
17
+ "stellar:testnet": "stellar:testnet",
18
+ mainnet: "stellar:pubnet",
19
+ pubnet: "stellar:pubnet",
20
+ "stellar:pubnet": "stellar:pubnet",
21
+ };
22
+ /** Jobs looked at in one run, oldest first: run it again for more. */
23
+ const LIMIT = 1000;
24
+ export async function reconcile(flags) {
25
+ const { store, network, rpcUrl, source } = await openJobs(flags);
26
+ try {
27
+ const chain = rpcChain(network, flags.rpc ?? rpcUrl, { dev: flags.dev ?? false });
28
+ if (chain === undefined)
29
+ throw new UsageError(`there is no public Soroban RPC for ${network}: pass --rpc <url>`);
30
+ const dryRun = flags["dry-run"] ?? false;
31
+ console.log(`Reconciling the payment_uncertain jobs of ${source} on ${network}${dryRun ? " (dry run: nothing changes)" : ""}`);
32
+ const results = await reconcileStore(store, { chain, network, asset: USDC_ASSET[network], dryRun, limit: LIMIT });
33
+ if (results.length === 0) {
34
+ console.log("No payment_uncertain jobs.");
35
+ return 0;
36
+ }
37
+ for (const result of results)
38
+ console.log(` ${describe(result, dryRun)}`);
39
+ const undecided = results.filter((result) => result.outcome === "undecided").length;
40
+ console.log(`${results.length} job(s): ${results.length - undecided} decided, ${undecided} undecided.`);
41
+ if (results.length === LIMIT)
42
+ console.log(`Looked at the oldest ${LIMIT}; run it again for the rest.`);
43
+ return undecided === 0 ? 0 : 1;
44
+ }
45
+ finally {
46
+ await store.close?.();
47
+ }
48
+ }
49
+ async function openJobs(flags) {
50
+ if ((flags.config === undefined) === (flags.store === undefined))
51
+ throw new UsageError("pass --config <file>, or --store <file> with --network");
52
+ if (flags.config !== undefined) {
53
+ const { config } = await loadGatewayConfig(flags.config, { overrides: flags.dev ? { dev: true } : {} });
54
+ return { store: config.store, network: config.network, rpcUrl: typeof config.rpc === "string" ? config.rpc : undefined, source: flags.config };
55
+ }
56
+ const network = NETWORKS[flags.network ?? ""];
57
+ if (network === undefined)
58
+ throw new UsageError("--store needs --network testnet or pubnet");
59
+ // sqliteStore() would create a missing file: a typo must not look like a store with nothing to do.
60
+ if (!existsSync(flags.store))
61
+ throw new Error(`there is no job store at ${flags.store}`);
62
+ return { store: sqliteStore(flags.store), network, rpcUrl: undefined, source: flags.store };
63
+ }
64
+ function describe(result, dryRun) {
65
+ const job = `${result.jobId} (${result.service})`;
66
+ const now = `${dryRun ? "would be" : "now"} ${result.status}`;
67
+ switch (result.outcome) {
68
+ case "settled":
69
+ return `✓ ${job}: settled in ${result.transaction}; ${now}`;
70
+ case "not_settled":
71
+ return `✓ ${job}: not settled, nothing was charged (${result.reason}); ${now}`;
72
+ case "undecided":
73
+ return `! ${job}: undecided, still payment_uncertain: ${result.reason}`;
74
+ }
75
+ }
76
+ //# sourceMappingURL=reconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/cli/reconcile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type CliFlags, type OwnerIo } from "./shared.js";
2
+ export declare function register(flags: CliFlags, io?: OwnerIo): Promise<number>;
3
+ /**
4
+ * Writes `agentId` into a gateway config's provider object, keeping the rest of the file as it was: its keys,
5
+ * their order and its indentation. False, and nothing written, when the file reads provider.agentId from the
6
+ * environment.
7
+ */
8
+ export declare function saveAgentId(path: string, agentId: number): Promise<boolean>;
9
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/cli/register.ts"],"names":[],"mappings":"AAsBA,OAAO,EAA8B,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAiBtF,wBAAsB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAE,OAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B7F;AAqJD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAajF"}