calvyn-code 0.14.11 → 0.14.13
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/bin/calvyn.js
CHANGED
|
@@ -56,15 +56,27 @@ function runPostinstallIfNeeded() {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const args = process.argv.slice(2)
|
|
59
|
-
runPostinstallIfNeeded()
|
|
59
|
+
const calvynBinary = runPostinstallIfNeeded()
|
|
60
60
|
const venvPython = resolveVenvPython()
|
|
61
61
|
const cliEntry = path.join(packageRoot, "cli.py")
|
|
62
|
-
const
|
|
62
|
+
const chatLikeFlags = new Set([
|
|
63
|
+
"", "chat", "-q", "--query", "-Q", "--quiet", "--model", "-m", "--image",
|
|
64
|
+
])
|
|
65
|
+
const firstArg = (args[0] || "").trim().toLowerCase()
|
|
66
|
+
const runClassicCli =
|
|
67
|
+
args.length === 0 ||
|
|
68
|
+
firstArg.startsWith("/") ||
|
|
69
|
+
chatLikeFlags.has(firstArg)
|
|
70
|
+
|
|
71
|
+
const command = runClassicCli ? venvPython : calvynBinary
|
|
72
|
+
const commandArgs = runClassicCli ? [cliEntry, ...args] : args
|
|
73
|
+
|
|
74
|
+
const result = spawnSync(command, commandArgs, {
|
|
63
75
|
stdio: "inherit",
|
|
64
76
|
shell: false,
|
|
65
77
|
env: {
|
|
66
78
|
...process.env,
|
|
67
|
-
CALVYN_LAUNCHED_FROM_NPM: "",
|
|
79
|
+
CALVYN_LAUNCHED_FROM_NPM: "1",
|
|
68
80
|
CALVYN_REPO_ROOT: packageRoot,
|
|
69
81
|
CALVYN_HOME: process.env.CALVYN_HOME || path.join(require("os").homedir(), ".calvyn"),
|
|
70
82
|
},
|
package/hermes_cli/config.py
CHANGED
|
@@ -124,9 +124,11 @@ _EXTRA_ENV_KEYS = frozenset({
|
|
|
124
124
|
"QQ_HOME_CHANNEL", "QQ_HOME_CHANNEL_NAME", # legacy aliases (pre-rename, still read for back-compat)
|
|
125
125
|
"QQ_ALLOWED_USERS", "QQ_GROUP_ALLOWED_USERS", "QQ_ALLOW_ALL_USERS", "QQ_MARKDOWN_SUPPORT",
|
|
126
126
|
"QQ_STT_API_KEY", "QQ_STT_BASE_URL", "QQ_STT_MODEL",
|
|
127
|
-
"IRC_SERVER", "IRC_PORT", "IRC_NICKNAME", "IRC_CHANNEL",
|
|
128
|
-
"IRC_USE_TLS", "IRC_SERVER_PASSWORD", "IRC_NICKSERV_PASSWORD",
|
|
129
|
-
"
|
|
127
|
+
"IRC_SERVER", "IRC_PORT", "IRC_NICKNAME", "IRC_CHANNEL",
|
|
128
|
+
"IRC_USE_TLS", "IRC_SERVER_PASSWORD", "IRC_NICKSERV_PASSWORD",
|
|
129
|
+
"FREEMODEL_API_KEY", "FREEMODEL_BASE_URL",
|
|
130
|
+
"FIREWORKS_API_KEY", "FIREWORKS_BASE_URL",
|
|
131
|
+
"TERMINAL_ENV", "TERMINAL_SSH_KEY", "TERMINAL_SSH_PORT",
|
|
130
132
|
"WHATSAPP_MODE", "WHATSAPP_ENABLED",
|
|
131
133
|
"MATTERMOST_HOME_CHANNEL", "MATTERMOST_HOME_CHANNEL_NAME", "MATTERMOST_REPLY_MODE",
|
|
132
134
|
"MATRIX_PASSWORD", "MATRIX_ENCRYPTION", "MATRIX_DEVICE_ID", "MATRIX_HOME_ROOM",
|
|
@@ -1841,18 +1843,50 @@ OPTIONAL_ENV_VARS = {
|
|
|
1841
1843
|
"category": "provider",
|
|
1842
1844
|
"advanced": True,
|
|
1843
1845
|
},
|
|
1844
|
-
"GMI_BASE_URL": {
|
|
1845
|
-
"description": "GMI Cloud base URL override",
|
|
1846
|
-
"prompt": "GMI Cloud base URL (leave empty for default)",
|
|
1847
|
-
"url": None,
|
|
1848
|
-
"password": False,
|
|
1849
|
-
"category": "provider",
|
|
1850
|
-
"advanced": True,
|
|
1851
|
-
},
|
|
1852
|
-
"
|
|
1853
|
-
"description": "
|
|
1854
|
-
"prompt": "
|
|
1855
|
-
"url": "https://
|
|
1846
|
+
"GMI_BASE_URL": {
|
|
1847
|
+
"description": "GMI Cloud base URL override",
|
|
1848
|
+
"prompt": "GMI Cloud base URL (leave empty for default)",
|
|
1849
|
+
"url": None,
|
|
1850
|
+
"password": False,
|
|
1851
|
+
"category": "provider",
|
|
1852
|
+
"advanced": True,
|
|
1853
|
+
},
|
|
1854
|
+
"FREEMODEL_API_KEY": {
|
|
1855
|
+
"description": "FreeModel API key",
|
|
1856
|
+
"prompt": "FreeModel API key",
|
|
1857
|
+
"url": "https://freemodel.dev/dashboard/usage",
|
|
1858
|
+
"password": True,
|
|
1859
|
+
"category": "provider",
|
|
1860
|
+
"advanced": True,
|
|
1861
|
+
},
|
|
1862
|
+
"FREEMODEL_BASE_URL": {
|
|
1863
|
+
"description": "FreeModel base URL override",
|
|
1864
|
+
"prompt": "FreeModel base URL (leave empty for default)",
|
|
1865
|
+
"url": None,
|
|
1866
|
+
"password": False,
|
|
1867
|
+
"category": "provider",
|
|
1868
|
+
"advanced": True,
|
|
1869
|
+
},
|
|
1870
|
+
"FIREWORKS_API_KEY": {
|
|
1871
|
+
"description": "Fireworks AI API key",
|
|
1872
|
+
"prompt": "Fireworks AI API key",
|
|
1873
|
+
"url": "https://docs.fireworks.ai/",
|
|
1874
|
+
"password": True,
|
|
1875
|
+
"category": "provider",
|
|
1876
|
+
"advanced": True,
|
|
1877
|
+
},
|
|
1878
|
+
"FIREWORKS_BASE_URL": {
|
|
1879
|
+
"description": "Fireworks AI base URL override",
|
|
1880
|
+
"prompt": "Fireworks AI base URL (leave empty for default)",
|
|
1881
|
+
"url": None,
|
|
1882
|
+
"password": False,
|
|
1883
|
+
"category": "provider",
|
|
1884
|
+
"advanced": True,
|
|
1885
|
+
},
|
|
1886
|
+
"MINIMAX_API_KEY": {
|
|
1887
|
+
"description": "MiniMax API key (international)",
|
|
1888
|
+
"prompt": "MiniMax API key",
|
|
1889
|
+
"url": "https://www.minimax.io/",
|
|
1856
1890
|
"password": True,
|
|
1857
1891
|
"category": "provider",
|
|
1858
1892
|
"advanced": True,
|
package/hermes_cli/models.py
CHANGED
|
@@ -348,6 +348,13 @@ _PROVIDER_MODELS: dict[str, list[str]] = {
|
|
|
348
348
|
"gpt-5.4-mini",
|
|
349
349
|
"gpt-5.3-codex",
|
|
350
350
|
],
|
|
351
|
+
"fireworks": [
|
|
352
|
+
"accounts/fireworks/models/gpt-oss-120b",
|
|
353
|
+
"accounts/fireworks/models/gpt-oss-20b",
|
|
354
|
+
"accounts/fireworks/models/llama4-maverick-instruct-basic",
|
|
355
|
+
"accounts/fireworks/models/deepseek-v3p1",
|
|
356
|
+
"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",
|
|
357
|
+
],
|
|
351
358
|
"opencode-zen": [
|
|
352
359
|
"kimi-k2.5",
|
|
353
360
|
"gpt-5.4-pro",
|
package/hermes_cli/providers.py
CHANGED
|
@@ -202,6 +202,12 @@ HERMES_OVERLAYS: Dict[str, HermesOverlay] = {
|
|
|
202
202
|
base_url_override="https://freemodel.dev/v1",
|
|
203
203
|
base_url_env_var="FREEMODEL_BASE_URL",
|
|
204
204
|
),
|
|
205
|
+
"fireworks": HermesOverlay(
|
|
206
|
+
transport="openai_chat",
|
|
207
|
+
extra_env_vars=("FIREWORKS_API_KEY",),
|
|
208
|
+
base_url_override="https://api.fireworks.ai/inference/v1",
|
|
209
|
+
base_url_env_var="FIREWORKS_BASE_URL",
|
|
210
|
+
),
|
|
205
211
|
"ollama-cloud": HermesOverlay(
|
|
206
212
|
transport="openai_chat",
|
|
207
213
|
base_url_env_var="OLLAMA_BASE_URL",
|
|
@@ -360,6 +366,9 @@ ALIASES: Dict[str, str] = {
|
|
|
360
366
|
"freemodel": "freemodel",
|
|
361
367
|
"free-model": "freemodel",
|
|
362
368
|
"free_model": "freemodel",
|
|
369
|
+
"fireworks": "fireworks",
|
|
370
|
+
"fireworks-ai": "fireworks",
|
|
371
|
+
"fireworks_ai": "fireworks",
|
|
363
372
|
|
|
364
373
|
# Local server aliases → virtual "local" concept (resolved via user config)
|
|
365
374
|
"lmstudio": "lmstudio",
|
package/package.json
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Fireworks AI provider profile."""
|
|
2
|
+
|
|
3
|
+
from providers import register_provider
|
|
4
|
+
from providers.base import ProviderProfile
|
|
5
|
+
|
|
6
|
+
fireworks = ProviderProfile(
|
|
7
|
+
name="fireworks",
|
|
8
|
+
aliases=("fireworks-ai", "fireworks_ai"),
|
|
9
|
+
display_name="Fireworks AI",
|
|
10
|
+
description="Fireworks AI — OpenAI-compatible direct API",
|
|
11
|
+
signup_url="https://docs.fireworks.ai/",
|
|
12
|
+
env_vars=("FIREWORKS_API_KEY", "FIREWORKS_BASE_URL"),
|
|
13
|
+
base_url="https://api.fireworks.ai/inference/v1",
|
|
14
|
+
fallback_models=(
|
|
15
|
+
"accounts/fireworks/models/gpt-oss-120b",
|
|
16
|
+
"accounts/fireworks/models/gpt-oss-20b",
|
|
17
|
+
"accounts/fireworks/models/llama4-maverick-instruct-basic",
|
|
18
|
+
"accounts/fireworks/models/deepseek-v3p1",
|
|
19
|
+
"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",
|
|
20
|
+
),
|
|
21
|
+
default_aux_model="accounts/fireworks/models/gpt-oss-20b",
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
register_provider(fireworks)
|