arkaos 2.5.2 → 2.6.0
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/VERSION +1 -1
- package/config/hooks/user-prompt-submit-v2.sh +26 -1
- package/config/providers-registry.json +16 -3
- package/installer/update.js +15 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.6.0
|
|
@@ -18,6 +18,31 @@ for v1_path in "${V1_PATHS[@]}"; do
|
|
|
18
18
|
fi
|
|
19
19
|
done
|
|
20
20
|
|
|
21
|
+
# ─── Sync Version Detection ────────────────────────────────────────────
|
|
22
|
+
SYNC_STATE="$HOME/.arkaos/sync-state.json"
|
|
23
|
+
ARKAOS_VERSION_FILE="$HOME/.arkaos/.repo-path"
|
|
24
|
+
|
|
25
|
+
if [ -f "$ARKAOS_VERSION_FILE" ]; then
|
|
26
|
+
_REPO_PATH=$(cat "$ARKAOS_VERSION_FILE")
|
|
27
|
+
if [ -f "$_REPO_PATH/VERSION" ]; then
|
|
28
|
+
_CURRENT_VERSION=$(cat "$_REPO_PATH/VERSION")
|
|
29
|
+
elif [ -f "$_REPO_PATH/package.json" ]; then
|
|
30
|
+
_CURRENT_VERSION=$(python3 -c "import json; print(json.load(open('$_REPO_PATH/package.json'))['version'])" 2>/dev/null || echo "")
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
if [ -n "${_CURRENT_VERSION:-}" ]; then
|
|
34
|
+
if [ -f "$SYNC_STATE" ]; then
|
|
35
|
+
_SYNCED_VERSION=$(python3 -c "import json; print(json.load(open('$SYNC_STATE'))['version'])" 2>/dev/null || echo "none")
|
|
36
|
+
else
|
|
37
|
+
_SYNCED_VERSION="none"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
if [ "$_CURRENT_VERSION" != "$_SYNCED_VERSION" ]; then
|
|
41
|
+
_SYNC_NOTICE="[arka:update-available] ArkaOS v${_CURRENT_VERSION} installed (synced: ${_SYNCED_VERSION}). Run /arka update to sync all projects. "
|
|
42
|
+
fi
|
|
43
|
+
fi
|
|
44
|
+
fi
|
|
45
|
+
|
|
21
46
|
# ─── Performance Timing ──────────────────────────────────────────────────
|
|
22
47
|
_HOOK_START_NS=$(date +%s%N 2>/dev/null || echo "0")
|
|
23
48
|
_hook_ms() {
|
|
@@ -103,7 +128,7 @@ if [ -z "$python_result" ]; then
|
|
|
103
128
|
fi
|
|
104
129
|
|
|
105
130
|
# ─── Output ──────────────────────────────────────────────────────────────
|
|
106
|
-
echo "{\"additionalContext\": \"$python_result\"}"
|
|
131
|
+
echo "{\"additionalContext\": \"${_SYNC_NOTICE:-}$python_result\"}"
|
|
107
132
|
|
|
108
133
|
# ─── Metrics ─────────────────────────────────────────────────────────────
|
|
109
134
|
elapsed=$(_hook_ms)
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"auth_env": "OPENAI_API_KEY",
|
|
11
11
|
"auth_header": "Authorization: Bearer",
|
|
12
12
|
"models": {
|
|
13
|
-
"
|
|
14
|
-
"
|
|
13
|
+
"whisper-1": { "type": "audio", "description": "Whisper — speech-to-text transcription" },
|
|
14
|
+
"tts-1": { "type": "audio", "description": "TTS — text-to-speech" }
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"replicate": {
|
|
@@ -36,6 +36,17 @@
|
|
|
36
36
|
"fal-ai/runway-gen3/turbo/image-to-video": { "type": "video", "description": "Runway Gen3 Turbo" }
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
|
+
"gemini": {
|
|
40
|
+
"name": "Google Gemini (Nano Banana)",
|
|
41
|
+
"base_url": "https://generativelanguage.googleapis.com/v1beta",
|
|
42
|
+
"auth_env": "GOOGLE_API_KEY",
|
|
43
|
+
"auth_header": "x-goog-api-key",
|
|
44
|
+
"models": {
|
|
45
|
+
"gemini-3.1-flash-image-preview": { "type": "image", "description": "Nano Banana 2 — fast, high-quality, up to 4K, search grounding" },
|
|
46
|
+
"gemini-3-pro-image-preview": { "type": "image", "description": "Nano Banana Pro — professional assets, thinking mode, up to 4K" },
|
|
47
|
+
"gemini-2.5-flash-image": { "type": "image", "description": "Nano Banana — speed optimized, 1K resolution" }
|
|
48
|
+
}
|
|
49
|
+
},
|
|
39
50
|
"openrouter": {
|
|
40
51
|
"name": "OpenRouter",
|
|
41
52
|
"base_url": "https://openrouter.ai/api/v1",
|
|
@@ -49,7 +60,9 @@
|
|
|
49
60
|
}
|
|
50
61
|
},
|
|
51
62
|
"routing": {
|
|
52
|
-
"image-generation": ["
|
|
63
|
+
"image-generation": ["gemini/gemini-3.1-flash-image-preview", "gemini/gemini-3-pro-image-preview", "gemini/gemini-2.5-flash-image", "fal/fal-ai/flux-pro/v1.1", "replicate/black-forest-labs/flux-1.1-pro"],
|
|
64
|
+
"audio-transcription": ["openai/whisper-1"],
|
|
65
|
+
"text-to-speech": ["openai/tts-1"],
|
|
53
66
|
"video-generation": ["fal/fal-ai/kling-video/v2/master", "fal/fal-ai/runway-gen3/turbo/image-to-video", "replicate/minimax/video-01"],
|
|
54
67
|
"text-completion": ["openrouter/google/gemini-2.5-pro", "openrouter/deepseek/deepseek-r1"]
|
|
55
68
|
}
|
package/installer/update.js
CHANGED
|
@@ -135,6 +135,20 @@ export async function update() {
|
|
|
135
135
|
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
|
|
136
136
|
console.log(" ✓ Manifest updated");
|
|
137
137
|
|
|
138
|
+
// Reset sync state to trigger /arka update on next session
|
|
139
|
+
const syncStatePath = join(installDir, "sync-state.json");
|
|
140
|
+
const syncState = {
|
|
141
|
+
version: "pending-sync",
|
|
142
|
+
last_sync: null,
|
|
143
|
+
projects_synced: 0,
|
|
144
|
+
skills_synced: 0,
|
|
145
|
+
errors: [],
|
|
146
|
+
core_updated_to: VERSION,
|
|
147
|
+
core_updated_at: new Date().toISOString()
|
|
148
|
+
};
|
|
149
|
+
writeFileSync(syncStatePath, JSON.stringify(syncState, null, 2));
|
|
150
|
+
console.log(" ✓ Sync state reset (run /arka update to sync projects)");
|
|
151
|
+
|
|
138
152
|
console.log(`
|
|
139
153
|
╔══════════════════════════════════════════╗
|
|
140
154
|
║ ArkaOS updated to v${VERSION} ║
|
|
@@ -146,6 +160,6 @@ export async function update() {
|
|
|
146
160
|
Projects: ${profile.projectsDir || "not set"}
|
|
147
161
|
Vault: ${profile.vaultPath || "not set"}
|
|
148
162
|
|
|
149
|
-
Run
|
|
163
|
+
⚠ Run /arka update in Claude Code to sync all projects.
|
|
150
164
|
`);
|
|
151
165
|
}
|
package/package.json
CHANGED