This commit is contained in:
fiatjaf
2025-03-05 11:13:08 -03:00
parent b3b8d5804d
commit 1090fbb0b6
3 changed files with 315 additions and 0 deletions

1
nip90/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
data-vending-machines

90
nip90/justfile Normal file
View File

@@ -0,0 +1,90 @@
generate: dvm_repo
#!/usr/bin/env fish
echo 'package nip90
type Job struct {
InputKind int
OutputKind int
Name string
Description string
InputType string
Params []string
}
' > kinds.go
for kindf in (ls data-vending-machines/kinds)
set file "data-vending-machines/kinds/$kindf"
set kind (echo $kindf | ag -o '\d+')
set okind (echo $kind | jq -r '. + 1000')
set title (ag '^title:' $file | awk '{$1=""; sub(/^ +/, "", $0); print}' | string collect | string trim)
set desc (ag '^description:' $file | awk '{$1=""; sub(/^ +/, "", $0); print}' | string collect | string trim)
set inputtype (cat $file | ag -o '\["i",[^]]*]' | jq -r '.[2]')
echo "var Job$kind = Job{
InputKind: $kind,
OutputKind: $okind,
Name: \"$name\",
Description: \"$desc\",
InputType: \"$inputtype\",
Params: []string{" >> kinds.go
for param in (fq '
def drill_to_code:
if (type == "object" and .children) then
.children
| map(drill_to_code)
else
select
( (type == "object") and (.type == "code")
)
| .literal
end
;
.children
| . as $sections
|
( $sections
| map(.type == "heading" and .children == ["Params"])
| index(true)
) as $startParams
| if $startParams == null
then []
else
( $sections[($startParams + 1):]
| map(.type == "heading" and .level == ($sections[$startParams].level))
| index(true)
| . + $startParams + 1
) as $endParams
| ( $sections[($startParams + 1):$endParams]
| map
( .children
| select(.)
| map(drill_to_code)
)
| flatten
| select(. | length > 1)
| unique
)
end
| .[]
' -d markdown -r $file
)
echo "\"$param\"", >> kinds.go
end
echo "},
}
" >> kinds.go
end
go fmt kinds.go
dvm_repo:
#!/usr/bin/env fish
if [ ! -d data-vending-machines ]
git clone https://github.com/nostr-protocol/data-vending-machines.git
end
cd data-vending-machines
git reset --hard HEAD
git pull

224
nip90/kinds.go Normal file
View File

@@ -0,0 +1,224 @@
package nip90
type Job struct {
InputKind int
OutputKind int
Name string
Description string
InputType string
Params []string
}
var Job5000 = Job{
InputKind: 5000,
OutputKind: 6000,
Name: "",
Description: "Job request to extract text from some kind of input.",
InputType: "",
Params: []string{
"alignment",
"range",
"raw",
"segment",
"word",
},
}
var Job5001 = Job{
InputKind: 5001,
OutputKind: 6001,
Name: "",
Description: "Summarize input(s)",
InputType: "",
Params: []string{
"length",
"paragraphs",
"words",
},
}
var Job5002 = Job{
InputKind: 5002,
OutputKind: 6002,
Name: "",
Description: "Translate input(s)",
InputType: "",
Params: []string{},
}
var Job5050 = Job{
InputKind: 5050,
OutputKind: 6050,
Name: "",
Description: "Job request to generate text using AI models.",
InputType: "",
Params: []string{
"frequency_penalty",
"max_tokens",
"model",
"temperature",
"top_k",
"top_p",
},
}
var Job5100 = Job{
InputKind: 5100,
OutputKind: 6100,
Name: "",
Description: "Job request to generate Images using AI models.",
InputType: "",
Params: []string{
"${width}x${height}",
"1024x768",
"512x512",
"lora",
"model",
"negative_prompt",
"ratio",
"size",
},
}
var Job5200 = Job{
InputKind: 5200,
OutputKind: 6200,
Name: "",
Description: "Job request to convert a Video to another Format.",
InputType: "",
Params: []string{},
}
var Job5201 = Job{
InputKind: 5201,
OutputKind: 6201,
Name: "",
Description: "Job request to translate video audio content into target language with or without subtitles.",
InputType: "",
Params: []string{
"format",
"language",
"range",
"subtitle",
},
}
var Job5202 = Job{
InputKind: 5202,
OutputKind: 6202,
Name: "",
Description: "Job request to convert a static Image to a a short animated video clip",
InputType: "",
Params: []string{},
}
var Job5250 = Job{
InputKind: 5250,
OutputKind: 6250,
Name: "",
Description: "Job request to convert text input to an audio file.",
InputType: "",
Params: []string{},
}
var Job5300 = Job{
InputKind: 5300,
OutputKind: 6300,
Name: "",
Description: "Job request to discover nostr-native content",
InputType: "",
Params: []string{},
}
var Job5301 = Job{
InputKind: 5301,
OutputKind: 6301,
Name: "",
Description: "Job request to discover nostr pubkeys",
InputType: "",
Params: []string{},
}
var Job5302 = Job{
InputKind: 5302,
OutputKind: 6302,
Name: "",
Description: "Job to search for notes based on a prompt",
InputType: "",
Params: []string{
"max_results",
"since",
"until",
"users",
},
}
var Job5303 = Job{
InputKind: 5303,
OutputKind: 6303,
Name: "",
Description: "Job to search for profiles based on a prompt",
InputType: "",
Params: []string{},
}
var Job5400 = Job{
InputKind: 5400,
OutputKind: 6400,
Name: "",
Description: "Job request to count matching events",
InputType: "",
Params: []string{
"content",
"group",
"pubkey",
"relay",
"reply",
"root",
},
}
var Job5500 = Job{
InputKind: 5500,
OutputKind: 6500,
Name: "",
Description: "Job request to perform a Malware Scan on files.",
InputType: "url",
Params: []string{},
}
var Job5900 = Job{
InputKind: 5900,
OutputKind: 6900,
Name: "",
Description: "NIP-03 Timestamping of nostr events",
InputType: "",
Params: []string{},
}
var Job5901 = Job{
InputKind: 5901,
OutputKind: 6901,
Name: "",
Description: "Create a bitcoin transaction with an OP_RETURN",
InputType: "text",
Params: []string{},
}
var Job5905 = Job{
InputKind: 5905,
OutputKind: 6905,
Name: "",
Description: "Schedule nostr events for future publishing",
InputType: "",
Params: []string{},
}
var Job5970 = Job{
InputKind: 5970,
OutputKind: 6970,
Name: "",
Description: "Delegate PoW of an event to a provider.",
InputType: "",
Params: []string{},
}