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 CHANGED
@@ -1 +1 @@
1
- 2.5.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
- "gpt-image-1": { "type": "image", "description": "GPT Image 1 — latest" },
14
- "dall-e-3": { "type": "image", "description": "DALL-E 3" }
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": ["openai/gpt-image-1", "openai/dall-e-3", "fal/fal-ai/flux-pro/v1.1", "replicate/black-forest-labs/flux-1.1-pro"],
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
  }
@@ -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 'npx arkaos doctor' to verify.
163
+ Run /arka update in Claude Code to sync all projects.
150
164
  `);
151
165
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkaos",
3
- "version": "2.5.2",
3
+ "version": "2.6.0",
4
4
  "description": "The Operating System for AI Agent Teams",
5
5
  "type": "module",
6
6
  "bin": {
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "arkaos-core"
3
- version = "2.5.2"
3
+ version = "2.6.0"
4
4
  description = "Core engine for ArkaOS — The Operating System for AI Agent Teams"
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}