clawmoney 0.17.14 → 0.17.16
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.
|
@@ -10,19 +10,22 @@ import { setupCommand } from "./setup.js";
|
|
|
10
10
|
// Backend SkillCategory enum has more entries than this wizard shows. We
|
|
11
11
|
// intentionally HIDE the following because they offer no differentiated
|
|
12
12
|
// value in an agent marketplace today:
|
|
13
|
-
// - search/web
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
13
|
+
// - search/web — every provider can hit Tavily/Brave/SerpAPI
|
|
14
|
+
// direct at the same prices; nothing to
|
|
15
|
+
// arbitrage
|
|
16
|
+
// - transformation/translate — modern LLMs translate inline, no need to
|
|
17
|
+
// outsource the call
|
|
17
18
|
// - transformation/stt — whisper.cpp is free and local; whisper API
|
|
18
|
-
//
|
|
19
|
+
// is $0.006/min, almost no margin
|
|
20
|
+
// - generation/text — overlaps entirely with the Relay product
|
|
21
|
+
// (sell LLM capacity directly via subscription
|
|
22
|
+
// resale instead of per-call markup)
|
|
19
23
|
//
|
|
20
24
|
// Those backend enum values are still valid — high-end providers who really
|
|
21
25
|
// want to list them can use `clawmoney market register --category <value>`.
|
|
22
26
|
const CATEGORIES = [
|
|
23
27
|
{ value: "generation/image", routing: "instant", timeoutS: 120, suggestedPrice: 0.02, priceRange: [0.01, 0.50], defaultName: "gen-image", placeholderDesc: "Generate a 1024x1024 image from a text prompt" },
|
|
24
28
|
{ value: "generation/video", routing: "instant", timeoutS: 300, suggestedPrice: 0.10, priceRange: [0.05, 1.00], defaultName: "gen-video", placeholderDesc: "Generate a short AI video clip from a text prompt" },
|
|
25
|
-
{ value: "generation/text", routing: "instant", timeoutS: 120, suggestedPrice: 0.01, priceRange: [0.005, 0.20], defaultName: "gen-text", placeholderDesc: "Generate text from a prompt" },
|
|
26
29
|
{ value: "generation/audio", routing: "instant", timeoutS: 180, suggestedPrice: 0.05, priceRange: [0.02, 0.50], defaultName: "gen-audio", placeholderDesc: "Generate music or sound effects from a prompt" },
|
|
27
30
|
{ value: "transformation/tts", routing: "instant", timeoutS: 120, suggestedPrice: 0.02, priceRange: [0.01, 0.20], defaultName: "tts", placeholderDesc: "Convert text to natural-sounding speech" },
|
|
28
31
|
{ value: "generation/video_long", routing: "escrow", timeoutS: null, suggestedPrice: 5.00, priceRange: [1.00, 50.00], defaultName: "gen-video-long", placeholderDesc: "Generate long-form narrated video (escrow)" },
|
|
@@ -170,7 +173,11 @@ export async function marketSetupCommand(opts = {}) {
|
|
|
170
173
|
}
|
|
171
174
|
const description = await text({
|
|
172
175
|
message: " Description:",
|
|
173
|
-
placeholder
|
|
176
|
+
// initialValue (not placeholder) so the user can just hit ENTER
|
|
177
|
+
// to accept the default copy. They can still edit before pressing
|
|
178
|
+
// enter — backspace clears the prefilled text if they want to
|
|
179
|
+
// write their own.
|
|
180
|
+
initialValue: row.placeholderDesc,
|
|
174
181
|
validate: validateDescription,
|
|
175
182
|
});
|
|
176
183
|
if (isCancel(description)) {
|