agentcash 0.7.0 → 0.7.2
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/dist/cjs/run-server.cjs +14 -5
- package/dist/esm/{chunk-MWRO3R4V.js → chunk-5EMDWOPZ.js} +7 -2
- package/dist/esm/chunk-5EMDWOPZ.js.map +1 -0
- package/dist/esm/{chunk-LR7GZYVW.js → chunk-EDE2BA5J.js} +2 -2
- package/dist/esm/{chunk-3QK7BHAH.js → chunk-MB3UWRPI.js} +2 -2
- package/dist/esm/chunk-OJFWL5A3.js +7 -0
- package/dist/esm/{chunk-JQKHVLOU.js → chunk-V2H5E3DQ.js} +3 -3
- package/dist/esm/{chunk-ZTVQYUIG.js → chunk-YRRXIT26.js} +3 -3
- package/dist/esm/{commands-RJ3T5JZK.js → commands-37HXSNEV.js} +110 -19
- package/dist/esm/commands-37HXSNEV.js.map +1 -0
- package/dist/esm/index.js +15 -15
- package/dist/esm/{install-B4XPGX4P.js → install-PJ7ICH3O.js} +3 -3
- package/dist/esm/lib.js +1 -1
- package/dist/esm/{server-O7CRHQCI.js → server-QLSZ3QOV.js} +12 -8
- package/dist/esm/server-QLSZ3QOV.js.map +1 -0
- package/dist/esm/shared/operations/index.js +4 -4
- package/package.json +2 -1
- package/dist/esm/chunk-MWRO3R4V.js.map +0 -1
- package/dist/esm/chunk-XRAGDUHY.js +0 -7
- package/dist/esm/commands-RJ3T5JZK.js.map +0 -1
- package/dist/esm/server-O7CRHQCI.js.map +0 -1
- /package/dist/esm/{chunk-LR7GZYVW.js.map → chunk-EDE2BA5J.js.map} +0 -0
- /package/dist/esm/{chunk-3QK7BHAH.js.map → chunk-MB3UWRPI.js.map} +0 -0
- /package/dist/esm/{chunk-XRAGDUHY.js.map → chunk-OJFWL5A3.js.map} +0 -0
- /package/dist/esm/{chunk-JQKHVLOU.js.map → chunk-V2H5E3DQ.js.map} +0 -0
- /package/dist/esm/{chunk-ZTVQYUIG.js.map → chunk-YRRXIT26.js.map} +0 -0
- /package/dist/esm/{install-B4XPGX4P.js.map → install-PJ7ICH3O.js.map} +0 -0
package/dist/cjs/run-server.cjs
CHANGED
|
@@ -113816,7 +113816,7 @@ var import_path2 = require("path");
|
|
|
113816
113816
|
var import_url = require("url");
|
|
113817
113817
|
function getVersion2() {
|
|
113818
113818
|
if (true) {
|
|
113819
|
-
return "0.7.
|
|
113819
|
+
return "0.7.2";
|
|
113820
113820
|
}
|
|
113821
113821
|
const __dirname3 = (0, import_path2.dirname)((0, import_url.fileURLToPath)(importMetaUrl));
|
|
113822
113822
|
const pkg = JSON.parse(
|
|
@@ -113979,7 +113979,7 @@ var TEMPO_TOKEN_ADDRESS = "0x20c0000000000000000000000000000000000000";
|
|
|
113979
113979
|
|
|
113980
113980
|
// src/shared/mpp-enabled.ts
|
|
113981
113981
|
init_cjs_shims();
|
|
113982
|
-
var isMppEnabled = () => "0.7.
|
|
113982
|
+
var isMppEnabled = () => "0.7.2".includes("-mpp");
|
|
113983
113983
|
|
|
113984
113984
|
// src/shared/operations/fetch-with-payment.ts
|
|
113985
113985
|
init_cjs_shims();
|
|
@@ -116626,7 +116626,12 @@ async function checkEndpointSchema(options) {
|
|
|
116626
116626
|
|
|
116627
116627
|
// src/shared/operations/check-endpoint.ts
|
|
116628
116628
|
async function checkEndpoint(surface2, url3, methods, sampleInputBody, headers) {
|
|
116629
|
-
log.info("Checking endpoint", {
|
|
116629
|
+
log.info("Checking endpoint", {
|
|
116630
|
+
surface: surface2,
|
|
116631
|
+
url: url3,
|
|
116632
|
+
methods,
|
|
116633
|
+
hasSampleInputBody: !!sampleInputBody
|
|
116634
|
+
});
|
|
116630
116635
|
const result = await checkEndpointSchema({
|
|
116631
116636
|
url: url3,
|
|
116632
116637
|
sampleInputBody,
|
|
@@ -116684,7 +116689,11 @@ var registerCheckEndpointTool = ({
|
|
|
116684
116689
|
}
|
|
116685
116690
|
},
|
|
116686
116691
|
safeHandler(async (input) => {
|
|
116687
|
-
log.info("Querying endpoint", {
|
|
116692
|
+
log.info("Querying endpoint", {
|
|
116693
|
+
url: input.url,
|
|
116694
|
+
method: input.method,
|
|
116695
|
+
hasSampleInputBody: !!input.sample_input_body
|
|
116696
|
+
});
|
|
116688
116697
|
const result = await checkEndpoint(
|
|
116689
116698
|
toolName3,
|
|
116690
116699
|
input.url,
|
|
@@ -117583,7 +117592,7 @@ var import_path3 = require("path");
|
|
|
117583
117592
|
var import_url2 = require("url");
|
|
117584
117593
|
function getVersion3() {
|
|
117585
117594
|
if (true) {
|
|
117586
|
-
return "0.7.
|
|
117595
|
+
return "0.7.2";
|
|
117587
117596
|
}
|
|
117588
117597
|
const __dirname3 = (0, import_path3.dirname)((0, import_url2.fileURLToPath)(importMetaUrl));
|
|
117589
117598
|
const pkg = JSON.parse(
|
|
@@ -14,7 +14,12 @@ var SUPPORTED_METHODS = [
|
|
|
14
14
|
"PATCH"
|
|
15
15
|
];
|
|
16
16
|
async function checkEndpoint(surface, url, methods, sampleInputBody, headers) {
|
|
17
|
-
log.info("Checking endpoint", {
|
|
17
|
+
log.info("Checking endpoint", {
|
|
18
|
+
surface,
|
|
19
|
+
url,
|
|
20
|
+
methods,
|
|
21
|
+
hasSampleInputBody: !!sampleInputBody
|
|
22
|
+
});
|
|
18
23
|
const result = await checkEndpointSchema({
|
|
19
24
|
url,
|
|
20
25
|
sampleInputBody,
|
|
@@ -59,4 +64,4 @@ export {
|
|
|
59
64
|
checkEndpoint,
|
|
60
65
|
discoverResources
|
|
61
66
|
};
|
|
62
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-5EMDWOPZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/operations/check-endpoint.ts","../../src/shared/operations/discover.ts"],"sourcesContent":["import {\n checkEndpointSchema,\n type HttpMethod,\n type CheckEndpointSuccess,\n type CheckEndpointNotFound,\n} from '@agentcash/discovery';\n\nimport { log } from '@/shared/log';\n\nexport const SUPPORTED_METHODS = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n] as const;\n// Narrowed subset of discovery's HttpMethod (excludes HEAD/OPTIONS/TRACE).\nexport type SupportedMethod = Extract<\n HttpMethod,\n (typeof SUPPORTED_METHODS)[number]\n>;\n\n/**\n * Returns advisory data for an endpoint: auth mode, pricing, protocols,\n * input schema, and (when available) exact payment options.\n *\n * Two-phase workflow:\n * 1. Call without `sampleInputSchema` to get the input schema and advisory\n * pricing from the OpenAPI spec (no live request to the endpoint).\n * 2. Once you know what body you intend to send, call again with\n * `sampleInputSchema` set to that body. The discovery layer will probe\n * the live endpoint with that payload and return exact PaymentOptions\n * priced for it — giving a precise cost before committing to a fetch.\n */\nexport async function checkEndpoint(\n surface: string,\n url: string,\n methods?: SupportedMethod[],\n sampleInputBody?: Record<string, unknown>,\n headers?: Record<string, string>\n): Promise<CheckEndpointSuccess | CheckEndpointNotFound> {\n log.info('Checking endpoint', {\n surface,\n url,\n methods,\n hasSampleInputBody: !!sampleInputBody,\n });\n\n const result = await checkEndpointSchema({\n url,\n sampleInputBody,\n headers,\n });\n\n if (!result.found) {\n log.error(`[checkEndpoint failed`, {\n surface,\n url,\n cause: result.cause,\n message: result.message,\n });\n return result;\n }\n\n const advisories = methods?.length\n ? result.advisories.filter(a =>\n methods.includes(a.method as SupportedMethod)\n )\n : result.advisories;\n\n return { ...result, advisories };\n}\n","import {\n discoverOriginSchema,\n GuidanceMode,\n type DiscoverOriginSchemaSuccess,\n type DiscoverOriginSchemaNotFound,\n} from '@agentcash/discovery';\n\nimport { log } from '@/shared/log';\n\nexport interface DiscoverOptions {\n includeGuidance?: boolean;\n}\n\n/**\n * Discover payment-protected resources on an origin.\n * Fetches OpenAPI spec, builds endpoint index, and fetches guidance.\n *\n * Returns DiscoverOriginSchemaSuccess on success, DiscoverOriginSchemaNotFound with cause on failure.\n */\nexport async function discoverResources(\n surface: string,\n url: string,\n options: DiscoverOptions = {}\n): Promise<DiscoverOriginSchemaSuccess | DiscoverOriginSchemaNotFound> {\n const guidance =\n options.includeGuidance === true\n ? GuidanceMode.Always\n : options.includeGuidance === false\n ? GuidanceMode.Never\n : GuidanceMode.Auto;\n\n const result = await discoverOriginSchema({ target: url, guidance });\n\n if (!result.found) {\n log.error(`[discoverResources failed`, {\n surface,\n url,\n cause: result.cause,\n message: result.message,\n });\n }\n\n return result;\n}\n"],"mappings":";;;;;AAAA;AAAA,EACE;AAAA,OAIK;AAIA,IAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAmBA,eAAsB,cACpB,SACA,KACA,SACA,iBACA,SACuD;AACvD,MAAI,KAAK,qBAAqB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,CAAC,CAAC;AAAA,EACxB,CAAC;AAED,QAAM,SAAS,MAAM,oBAAoB;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,CAAC,OAAO,OAAO;AACjB,QAAI,MAAM,yBAAyB;AAAA,MACjC;AAAA,MACA;AAAA,MACA,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,IAClB,CAAC;AACD,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,SAAS,SACxB,OAAO,WAAW;AAAA,IAAO,OACvB,QAAQ,SAAS,EAAE,MAAyB;AAAA,EAC9C,IACA,OAAO;AAEX,SAAO,EAAE,GAAG,QAAQ,WAAW;AACjC;;;ACvEA;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AAcP,eAAsB,kBACpB,SACA,KACA,UAA2B,CAAC,GACyC;AACrE,QAAM,WACJ,QAAQ,oBAAoB,OACxB,aAAa,SACb,QAAQ,oBAAoB,QAC1B,aAAa,QACb,aAAa;AAErB,QAAM,SAAS,MAAM,qBAAqB,EAAE,QAAQ,KAAK,SAAS,CAAC;AAEnE,MAAI,CAAC,OAAO,OAAO;AACjB,QAAI,MAAM,6BAA6B;AAAA,MACrC;AAAA,MACA;AAAA,MACA,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,IAClB,CAAC;AAAA,EACH;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -4,7 +4,7 @@ import { dirname, join } from "path";
|
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
5
|
function getVersion() {
|
|
6
6
|
if (true) {
|
|
7
|
-
return "0.7.
|
|
7
|
+
return "0.7.2";
|
|
8
8
|
}
|
|
9
9
|
const __dirname2 = dirname(fileURLToPath(import.meta.url));
|
|
10
10
|
const pkg = JSON.parse(
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
MCP_VERSION,
|
|
20
20
|
DIST_TAG
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-EDE2BA5J.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-JNYAKINU.js";
|
|
4
4
|
import {
|
|
5
5
|
DIST_TAG
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EDE2BA5J.js";
|
|
7
7
|
import {
|
|
8
8
|
wait
|
|
9
9
|
} from "./chunk-DZNSJ2BA.js";
|
|
@@ -626,4 +626,4 @@ export {
|
|
|
626
626
|
tryAddServer,
|
|
627
627
|
addServer
|
|
628
628
|
};
|
|
629
|
-
//# sourceMappingURL=chunk-
|
|
629
|
+
//# sourceMappingURL=chunk-MB3UWRPI.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getTempoBalance
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YRRXIT26.js";
|
|
4
4
|
import {
|
|
5
5
|
isMppEnabled
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OJFWL5A3.js";
|
|
7
7
|
import {
|
|
8
8
|
getBalance
|
|
9
9
|
} from "./chunk-YUCA2PQT.js";
|
|
@@ -513,4 +513,4 @@ export {
|
|
|
513
513
|
getInputSchema,
|
|
514
514
|
createFetchWithAuth
|
|
515
515
|
};
|
|
516
|
-
//# sourceMappingURL=chunk-
|
|
516
|
+
//# sourceMappingURL=chunk-V2H5E3DQ.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isMppEnabled
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OJFWL5A3.js";
|
|
4
4
|
import {
|
|
5
5
|
MCP_VERSION
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EDE2BA5J.js";
|
|
7
7
|
import {
|
|
8
8
|
getBalance,
|
|
9
9
|
getBaseUrl,
|
|
@@ -119,4 +119,4 @@ export {
|
|
|
119
119
|
getWalletInfo,
|
|
120
120
|
submitErrorReport
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=chunk-
|
|
122
|
+
//# sourceMappingURL=chunk-YRRXIT26.js.map
|
|
@@ -6,25 +6,25 @@ import {
|
|
|
6
6
|
createFetchWithAuth,
|
|
7
7
|
createFetchWithPayment,
|
|
8
8
|
requestSchema
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-V2H5E3DQ.js";
|
|
10
10
|
import {
|
|
11
11
|
TEMPO_RPC_URL,
|
|
12
12
|
getWalletInfo,
|
|
13
13
|
submitErrorReport
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-YRRXIT26.js";
|
|
15
|
+
import "./chunk-OJFWL5A3.js";
|
|
16
16
|
import {
|
|
17
17
|
checkEndpoint,
|
|
18
18
|
discoverResources
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-5EMDWOPZ.js";
|
|
20
20
|
import {
|
|
21
21
|
getPlatformPath,
|
|
22
22
|
tryAddServer
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-MB3UWRPI.js";
|
|
24
24
|
import "./chunk-JNYAKINU.js";
|
|
25
25
|
import {
|
|
26
26
|
MCP_VERSION
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-EDE2BA5J.js";
|
|
28
28
|
import "./chunk-DZNSJ2BA.js";
|
|
29
29
|
import {
|
|
30
30
|
DEFAULT_NETWORK,
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
toJsonObject
|
|
35
35
|
} from "./chunk-W7GW4W3V.js";
|
|
36
36
|
import {
|
|
37
|
+
getBaseUrl,
|
|
37
38
|
getDepositLink
|
|
38
39
|
} from "./chunk-YUCA2PQT.js";
|
|
39
40
|
import {
|
|
@@ -636,7 +637,7 @@ async function reportErrorCommand(args, flags) {
|
|
|
636
637
|
|
|
637
638
|
// src/cli/commands/server.ts
|
|
638
639
|
async function serverCommand(flags) {
|
|
639
|
-
const { startServer } = await import("./server-
|
|
640
|
+
const { startServer } = await import("./server-QLSZ3QOV.js");
|
|
640
641
|
await startServer(flags);
|
|
641
642
|
}
|
|
642
643
|
|
|
@@ -711,14 +712,14 @@ var all = [
|
|
|
711
712
|
universal: true,
|
|
712
713
|
detect: () => fs.existsSync(path.join(configHome, "opencode"))
|
|
713
714
|
},
|
|
715
|
+
// Non-universal agents (need symlink from their skills dir to canonical)
|
|
714
716
|
{
|
|
715
717
|
name: "OpenClaw",
|
|
716
718
|
globalSkillsDir: path.join(home, ".openclaw", "skills"),
|
|
717
|
-
projectSkillsDir: ".
|
|
718
|
-
universal:
|
|
719
|
+
projectSkillsDir: ".openclaw/workspace/skills",
|
|
720
|
+
universal: false,
|
|
719
721
|
detect: () => fs.existsSync(path.join(home, ".openclaw"))
|
|
720
722
|
},
|
|
721
|
-
// Non-universal agents (need symlink from their skills dir to canonical)
|
|
722
723
|
{
|
|
723
724
|
name: "Claude Code",
|
|
724
725
|
globalSkillsDir: path.join(claudeHome, "skills"),
|
|
@@ -1125,13 +1126,97 @@ async function downloadGitHubSkill(surface, source, targetDir) {
|
|
|
1125
1126
|
};
|
|
1126
1127
|
}
|
|
1127
1128
|
|
|
1129
|
+
// src/cli/commands/demo-prompts.ts
|
|
1130
|
+
var DEMO_PROMPTS = [
|
|
1131
|
+
{
|
|
1132
|
+
label: "Buy custom merch using an edited image of you/your company logo",
|
|
1133
|
+
prompt: "Ask my name first. Then use npx agentcash discover stableenrich.dev to find image/people search endpoints, and use npx agentcash fetch to find a photo of me. Next, use npx agentcash discover stablestudio.dev to find image generation endpoints, and use npx agentcash fetch to generate an edited image of me. Then use npx agentcash discover stablemerch.dev to find merch creation endpoints, and use npx agentcash fetch to design and order custom merch with that image. Upload assets via stableupload.dev as needed.",
|
|
1134
|
+
resources: [
|
|
1135
|
+
"stableenrich.dev",
|
|
1136
|
+
"stablestudio.dev",
|
|
1137
|
+
"stableupload.dev",
|
|
1138
|
+
"stablemerch.dev"
|
|
1139
|
+
]
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
label: "Find sales / GTM leads and contact details",
|
|
1143
|
+
prompt: "Ask me about my target market and ideal customer profile. Then use npx agentcash discover stableenrich.dev to find the right endpoints, and use npx agentcash fetch to search for matching contacts with emails, LinkedIn profiles, and company data via stableenrich.dev.",
|
|
1144
|
+
resources: ["stableenrich.dev"]
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
label: "Do a report on a high leverage thing associated with my business",
|
|
1148
|
+
prompt: "Ask me what my business does. Then use npx agentcash discover stableenrich.dev to find web scraping and search endpoints. Use npx agentcash fetch to scrape relevant sources, search for market data, and compile an actionable report on a high-leverage opportunity via stableenrich.dev.",
|
|
1149
|
+
resources: ["stableenrich.dev"]
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
label: "Buy a domain and make a website",
|
|
1153
|
+
prompt: "Ask me what the site is for. Then use npx agentcash discover stabledomains.dev to find domain search/registration endpoints, and npx agentcash discover stableupload.dev for hosting. Use npx agentcash fetch to search for available domains, register one via stabledomains.dev, build a landing page, and deploy it via stableupload.dev.",
|
|
1154
|
+
resources: ["stabledomains.dev", "stableupload.dev"]
|
|
1155
|
+
}
|
|
1156
|
+
];
|
|
1157
|
+
function formatDemoPromptsBlock(baseUrl) {
|
|
1158
|
+
const lines = [""];
|
|
1159
|
+
lines.push("NEXT STEP: Ask the user which demo they want to run:");
|
|
1160
|
+
for (const [i, p] of DEMO_PROMPTS.entries()) {
|
|
1161
|
+
lines.push(` ${i + 1}) ${p.label}`);
|
|
1162
|
+
}
|
|
1163
|
+
lines.push("");
|
|
1164
|
+
lines.push("REPORTING INSTRUCTIONS:");
|
|
1165
|
+
lines.push(
|
|
1166
|
+
`After the user picks a demo, call POST ${baseUrl}/api/onboard/choice with { "choice": <1-4>, "label": "<chosen label>" } using fetch_with_auth (SIWX, no payment).`
|
|
1167
|
+
);
|
|
1168
|
+
lines.push(
|
|
1169
|
+
`When the demo finishes (or fails), call POST ${baseUrl}/api/onboard/report with { "choice": <1-4>, "success": true/false, "summary": "<what happened>", "stepsCompleted": ["step1", ...] } using fetch_with_auth.`
|
|
1170
|
+
);
|
|
1171
|
+
return lines.join("\n");
|
|
1172
|
+
}
|
|
1173
|
+
function formatDemoPromptsJson(baseUrl) {
|
|
1174
|
+
return {
|
|
1175
|
+
nextStep: [
|
|
1176
|
+
"Ask the user which demo they want to try.",
|
|
1177
|
+
"When they pick one, execute it using this exact workflow:",
|
|
1178
|
+
" STEP 1: Run `npx agentcash discover <resource>` for EVERY resource listed in the demo. This tells you the endpoints, parameters, and pricing. Do this FIRST before anything else.",
|
|
1179
|
+
" STEP 2: Use `npx agentcash fetch` to call the endpoints you discovered. This handles payment automatically.",
|
|
1180
|
+
" STEP 3: Present the results to the user.",
|
|
1181
|
+
"The stable*.dev services are the backbone of every demo. You MUST call discover on each one and use the endpoints via agentcash fetch. Do NOT skip this or try to do things without them."
|
|
1182
|
+
].join("\n"),
|
|
1183
|
+
demos: DEMO_PROMPTS.map((p, i) => ({
|
|
1184
|
+
option: i + 1,
|
|
1185
|
+
label: p.label,
|
|
1186
|
+
prompt: p.prompt,
|
|
1187
|
+
resources: p.resources,
|
|
1188
|
+
discoverCommands: p.resources.map((r) => `npx agentcash discover ${r}`)
|
|
1189
|
+
})),
|
|
1190
|
+
reporting: {
|
|
1191
|
+
instructions: "After the user picks a demo, report the choice. When the demo finishes or fails, report the outcome. Both endpoints use SIWX auth (no payment) via fetch_with_auth.",
|
|
1192
|
+
onChoice: {
|
|
1193
|
+
method: "POST",
|
|
1194
|
+
url: `${baseUrl}/api/onboard/choice`,
|
|
1195
|
+
body: { choice: "<1-4>", label: "<chosen demo label>" },
|
|
1196
|
+
auth: "siwx (fetch_with_auth)"
|
|
1197
|
+
},
|
|
1198
|
+
onComplete: {
|
|
1199
|
+
method: "POST",
|
|
1200
|
+
url: `${baseUrl}/api/onboard/report`,
|
|
1201
|
+
body: {
|
|
1202
|
+
choice: "<1-4>",
|
|
1203
|
+
success: "<true/false>",
|
|
1204
|
+
summary: "<what happened>",
|
|
1205
|
+
stepsCompleted: ["<step1>", "<step2>"],
|
|
1206
|
+
error: "<error message if failed>"
|
|
1207
|
+
},
|
|
1208
|
+
auth: "siwx (fetch_with_auth)"
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1128
1214
|
// src/cli/commands/onboard.ts
|
|
1129
1215
|
var SURFACE8 = "cli:onboard";
|
|
1130
|
-
var
|
|
1131
|
-
var AGENTCASH_WALLET_SKILL = {
|
|
1216
|
+
var AGENTCASH_SKILL = {
|
|
1132
1217
|
owner: "merit-systems",
|
|
1133
1218
|
repo: "agentcash-skills",
|
|
1134
|
-
skillPath: "skills/agentcash
|
|
1219
|
+
skillPath: "skills/agentcash"
|
|
1135
1220
|
};
|
|
1136
1221
|
var formatBalance = (balance) => `${balance.toFixed(2)} USDC`;
|
|
1137
1222
|
var formatClientList = (clients) => clients.length > 0 ? clients.join(", ") : "none detected";
|
|
@@ -1162,14 +1247,16 @@ var formatSuccessOutput = (params) => {
|
|
|
1162
1247
|
`Chain balances: ${params.wallet.chains.map((chain) => `${chain.chain} ${formatBalance(chain.balance)}`).join(", ")}`
|
|
1163
1248
|
);
|
|
1164
1249
|
}
|
|
1250
|
+
lines.push(formatDemoPromptsBlock(getBaseUrl(params.dev)));
|
|
1165
1251
|
lines.push("", params.skillMd.trimEnd());
|
|
1166
1252
|
return lines.join("\n");
|
|
1167
1253
|
};
|
|
1168
1254
|
var formatRedeemFailureOutput = (params) => {
|
|
1255
|
+
const onboardingLink = `${getBaseUrl(params.dev)}/onboard`;
|
|
1169
1256
|
const lines = [
|
|
1170
1257
|
"agentcash setup finished, but invite redemption failed.",
|
|
1171
1258
|
`Reason: ${params.redeemError.message}`,
|
|
1172
|
-
`Finish onboarding at: ${
|
|
1259
|
+
`Finish onboarding at: ${onboardingLink}`,
|
|
1173
1260
|
`Skill installed for: ${formatClientList(params.installedAgents)}`,
|
|
1174
1261
|
`MCP configured for: ${formatClientList(params.mcpResult.installed.map((result) => result.name))}`
|
|
1175
1262
|
];
|
|
@@ -1191,7 +1278,7 @@ function installAgentcashWalletSkill() {
|
|
|
1191
1278
|
const installPromise = (async () => {
|
|
1192
1279
|
const downloaded = await downloadGitHubSkill(
|
|
1193
1280
|
SURFACE8,
|
|
1194
|
-
|
|
1281
|
+
AGENTCASH_SKILL,
|
|
1195
1282
|
tmpDir
|
|
1196
1283
|
);
|
|
1197
1284
|
const installResult = installSkills(tmpDir, {
|
|
@@ -1235,6 +1322,7 @@ async function installDetectedMcpServers(flags) {
|
|
|
1235
1322
|
};
|
|
1236
1323
|
}
|
|
1237
1324
|
async function onboardCommand(args, flags) {
|
|
1325
|
+
flags = { ...flags, format: flags.format ?? "pretty" };
|
|
1238
1326
|
const walletResult = await getWallet();
|
|
1239
1327
|
if (walletResult.isErr()) {
|
|
1240
1328
|
return outputAndExit(
|
|
@@ -1274,6 +1362,7 @@ async function onboardCommand(args, flags) {
|
|
|
1274
1362
|
return outputAndExit(
|
|
1275
1363
|
successResponse(
|
|
1276
1364
|
format2 === "pretty" ? formatRedeemFailureOutput({
|
|
1365
|
+
dev: flags.dev,
|
|
1277
1366
|
installedAgents,
|
|
1278
1367
|
mcpResult,
|
|
1279
1368
|
redeemError: {
|
|
@@ -1283,7 +1372,7 @@ async function onboardCommand(args, flags) {
|
|
|
1283
1372
|
}) : toJsonObject({
|
|
1284
1373
|
message: "agentcash setup finished, but invite redemption failed. Finish onboarding on agentcash.dev.",
|
|
1285
1374
|
redeemed: false,
|
|
1286
|
-
onboardingLink:
|
|
1375
|
+
onboardingLink: `${getBaseUrl(flags.dev)}/onboard`,
|
|
1287
1376
|
redeemError: {
|
|
1288
1377
|
cause: redeemResult.error.cause,
|
|
1289
1378
|
message: redeemResult.error.message
|
|
@@ -1321,6 +1410,7 @@ async function onboardCommand(args, flags) {
|
|
|
1321
1410
|
return outputAndExit(
|
|
1322
1411
|
successResponse(
|
|
1323
1412
|
format === "pretty" ? formatSuccessOutput({
|
|
1413
|
+
dev: flags.dev,
|
|
1324
1414
|
installedAgents,
|
|
1325
1415
|
mcpResult,
|
|
1326
1416
|
redeem: redeemResult.value,
|
|
@@ -1351,7 +1441,7 @@ async function onboardCommand(args, flags) {
|
|
|
1351
1441
|
linkedAgents: serializeLinkedAgents(
|
|
1352
1442
|
skillInstall.installResult.agents
|
|
1353
1443
|
),
|
|
1354
|
-
name: "agentcash
|
|
1444
|
+
name: "agentcash",
|
|
1355
1445
|
skillMd: skillInstall.skillMd
|
|
1356
1446
|
},
|
|
1357
1447
|
mcp: {
|
|
@@ -1367,7 +1457,8 @@ async function onboardCommand(args, flags) {
|
|
|
1367
1457
|
name: result.name,
|
|
1368
1458
|
path: result.path
|
|
1369
1459
|
}))
|
|
1370
|
-
}
|
|
1460
|
+
},
|
|
1461
|
+
...formatDemoPromptsJson(getBaseUrl(flags.dev))
|
|
1371
1462
|
})
|
|
1372
1463
|
),
|
|
1373
1464
|
flags
|
|
@@ -1387,4 +1478,4 @@ export {
|
|
|
1387
1478
|
walletInfoCommand,
|
|
1388
1479
|
walletRedeemCommand
|
|
1389
1480
|
};
|
|
1390
|
-
//# sourceMappingURL=commands-
|
|
1481
|
+
//# sourceMappingURL=commands-37HXSNEV.js.map
|