Two pure-Lua packs that don't need network or LLM — pure offline utilities.
unit_convert (resources/commands/unit_convert/, 4 commands)
- convert.length "переведи 100 метров в футы" / "сколько 5 миль в км"
meters↔feet, km↔miles. Pluralises russian unit names.
- convert.weight "переведи 70 кг в фунты"
kg↔lbs.
- convert.temperature "переведи 100 цельсий в фаренгейт" / "минус 40 в цельсий"
Handles negative numbers. C↔F formulas inline.
- convert.speed "переведи 100 км в час в мили в час"
km/h↔mph.
- All round results to 1-2 decimal places, speak with proper Russian
grammatical number (фут/фута/футов).
generators (resources/commands/generators/, 3 commands)
- gen.coin "подбрось монету" / "орёл или решка"
→ "Орёл!" or "Решка!" (math.random with time+minute seed)
- gen.password "сгенерируй пароль 16 символов"
→ cryptographically-ish 6..64-char password,
alphanumeric + !@#$%^&*-_=+, copies to clipboard,
SPEAKS LENGTH ONLY (never echoes the password).
Default 16 chars if no number in phrase.
- gen.uuid "сгенерируй uuid" / "юид"
→ v4 UUID, copies to clipboard, speaks last 4 chars
(confirmation without 32-char monologue).
Tests: 112/112 pass (commands::tests auto-validates).
Pack count: 62 → 64.
82 lines
2.2 KiB
TOML
82 lines
2.2 KiB
TOML
# Unit conversion — length, weight, temperature, speed, volume.
|
||
# Pure Lua, no external API.
|
||
|
||
[[commands]]
|
||
id = "convert.length"
|
||
type = "lua"
|
||
script = "length.lua"
|
||
sandbox = "minimal"
|
||
timeout = 2000
|
||
|
||
[commands.phrases]
|
||
ru = [
|
||
"переведи метры в футы",
|
||
"переведи футы в метры",
|
||
"сколько метров",
|
||
"сколько футов",
|
||
"сколько километров",
|
||
"сколько миль",
|
||
"переведи в метры",
|
||
"переведи в футы",
|
||
"переведи в км",
|
||
"переведи в мили",
|
||
]
|
||
en = ["convert meters to feet", "convert feet to meters", "how many meters", "how many feet"]
|
||
ua = ["переведи метри у фути"]
|
||
|
||
|
||
[[commands]]
|
||
id = "convert.weight"
|
||
type = "lua"
|
||
script = "weight.lua"
|
||
sandbox = "minimal"
|
||
timeout = 2000
|
||
|
||
[commands.phrases]
|
||
ru = [
|
||
"переведи килограммы в фунты",
|
||
"переведи фунты в килограммы",
|
||
"сколько кг в фунтах",
|
||
"сколько фунтов",
|
||
"сколько килограммов",
|
||
]
|
||
en = ["convert kg to pounds", "how many pounds", "how many kg"]
|
||
ua = ["переведи кг у фунти"]
|
||
|
||
|
||
[[commands]]
|
||
id = "convert.temperature"
|
||
type = "lua"
|
||
script = "temperature.lua"
|
||
sandbox = "minimal"
|
||
timeout = 2000
|
||
|
||
[commands.phrases]
|
||
ru = [
|
||
"переведи цельсий в фаренгейт",
|
||
"переведи фаренгейт в цельсий",
|
||
"сколько по фаренгейту",
|
||
"сколько по цельсию",
|
||
"сколько градусов в фаренгейтах",
|
||
]
|
||
en = ["convert celsius to fahrenheit", "celsius to fahrenheit", "fahrenheit to celsius"]
|
||
ua = ["переведи цельсій у фаренгейт"]
|
||
|
||
|
||
[[commands]]
|
||
id = "convert.speed"
|
||
type = "lua"
|
||
script = "speed.lua"
|
||
sandbox = "minimal"
|
||
timeout = 2000
|
||
|
||
[commands.phrases]
|
||
ru = [
|
||
"переведи километры в час в мили в час",
|
||
"переведи в кмч",
|
||
"переведи в мили в час",
|
||
"сколько миль в час",
|
||
"сколько км в час",
|
||
]
|
||
en = ["convert kmh to mph", "kmh to mph", "mph to kmh"]
|
||
ua = ["переведи кмг у миль на годину"]
|