agent-dj 0.1.0 → 0.1.2

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/dist/server.js CHANGED
@@ -270980,6 +270980,24 @@ async function getOrCreateProvider(config) {
270980
270980
  baseURL: config.baseUrl ?? "http://localhost:11434/v1"
270981
270981
  });
270982
270982
  break;
270983
+ case "deepseek":
270984
+ instance = createOpenAI({
270985
+ apiKey: config.apiKey,
270986
+ baseURL: "https://api.deepseek.com/v1"
270987
+ });
270988
+ break;
270989
+ case "xai":
270990
+ instance = createOpenAI({
270991
+ apiKey: config.apiKey,
270992
+ baseURL: "https://api.x.ai/v1"
270993
+ });
270994
+ break;
270995
+ case "mistral":
270996
+ instance = createOpenAI({
270997
+ apiKey: config.apiKey,
270998
+ baseURL: "https://api.mistral.ai/v1"
270999
+ });
271000
+ break;
270983
271001
  default:
270984
271002
  throw new Error(`Unsupported provider: ${config.provider}`);
270985
271003
  }
@@ -270987,7 +271005,7 @@ async function getOrCreateProvider(config) {
270987
271005
  return instance;
270988
271006
  }
270989
271007
  function getLanguageModel(config, modelId) {
270990
- const model = modelId ?? config.model ?? getDefaultModel(config.provider);
271008
+ const model = modelId || config.model || getDefaultModel(config.provider);
270991
271009
  if (config.provider === "anthropic" && config.authType === "session_token") {
270992
271010
  _lastSessionTokenSupportsTools = false;
270993
271011
  if (isClaudeCliAvailable()) {
@@ -271023,7 +271041,10 @@ function getDefaultModel(provider) {
271023
271041
  openai: "gpt-4o",
271024
271042
  google: "gemini-2.0-flash",
271025
271043
  groq: "llama-3.3-70b-versatile",
271026
- ollama: "llama3.2"
271044
+ ollama: "llama3.2",
271045
+ deepseek: "deepseek-chat",
271046
+ xai: "grok-3",
271047
+ mistral: "mistral-large-latest"
271027
271048
  };
271028
271049
  return defaults[provider];
271029
271050
  }
@@ -272494,7 +272515,19 @@ var MODEL_CATALOG = [
272494
272515
  { id: "llama-3.1-8b-instant", name: "Llama 3.1 8B", provider: "groq", contextWindow: 128e3, costTier: "cheap", supportsTools: true, supportsVision: false },
272495
272516
  // Ollama
272496
272517
  { id: "llama3.2", name: "Llama 3.2", provider: "ollama", contextWindow: 128e3, costTier: "cheap", supportsTools: true, supportsVision: false },
272497
- { id: "mistral", name: "Mistral", provider: "ollama", contextWindow: 32e3, costTier: "cheap", supportsTools: true, supportsVision: false }
272518
+ { id: "mistral", name: "Mistral", provider: "ollama", contextWindow: 32e3, costTier: "cheap", supportsTools: true, supportsVision: false },
272519
+ // DeepSeek
272520
+ { id: "deepseek-chat", name: "DeepSeek Chat", provider: "deepseek", contextWindow: 128e3, costTier: "cheap", supportsTools: true, supportsVision: true },
272521
+ { id: "deepseek-reasoner", name: "DeepSeek Reasoner", provider: "deepseek", contextWindow: 128e3, costTier: "standard", supportsTools: false, supportsVision: false },
272522
+ // xAI
272523
+ { id: "grok-3", name: "Grok 3", provider: "xai", contextWindow: 131072, costTier: "premium", supportsTools: true, supportsVision: true },
272524
+ { id: "grok-3-mini", name: "Grok 3 Mini", provider: "xai", contextWindow: 131072, costTier: "standard", supportsTools: true, supportsVision: true },
272525
+ { id: "grok-2", name: "Grok 2", provider: "xai", contextWindow: 131072, costTier: "standard", supportsTools: true, supportsVision: true },
272526
+ { id: "grok-2-mini", name: "Grok 2 Mini", provider: "xai", contextWindow: 131072, costTier: "cheap", supportsTools: true, supportsVision: false },
272527
+ // Mistral
272528
+ { id: "mistral-large-latest", name: "Mistral Large", provider: "mistral", contextWindow: 128e3, costTier: "standard", supportsTools: true, supportsVision: false },
272529
+ { id: "codestral-latest", name: "Codestral", provider: "mistral", contextWindow: 256e3, costTier: "cheap", supportsTools: true, supportsVision: false },
272530
+ { id: "mistral-small-latest", name: "Mistral Small", provider: "mistral", contextWindow: 128e3, costTier: "cheap", supportsTools: true, supportsVision: false }
272498
272531
  ];
272499
272532
  function getModelInfo(modelId) {
272500
272533
  return MODEL_CATALOG.find((m) => m.id === modelId);
@@ -273669,6 +273702,18 @@ settingsRoutes.post("/providers", async (c) => {
273669
273702
  saveConfig(updated);
273670
273703
  return c.json({ ok: true });
273671
273704
  });
273705
+ settingsRoutes.delete("/providers/:name", (c) => {
273706
+ const name = c.req.param("name");
273707
+ const config = loadConfig();
273708
+ const idx = config.providers.findIndex((p) => p.provider === name);
273709
+ if (idx < 0) return c.json({ error: "Provider not found" }, 404);
273710
+ if (config.defaultProvider === name) {
273711
+ return c.json({ error: "Cannot delete the default provider. Set another as default first." }, 400);
273712
+ }
273713
+ config.providers.splice(idx, 1);
273714
+ saveConfig(config);
273715
+ return c.json({ ok: true });
273716
+ });
273672
273717
  settingsRoutes.get("/system", (c) => {
273673
273718
  const stats = getSystemStats();
273674
273719
  return c.json(stats);
@@ -273735,214 +273780,109 @@ var DEFAULT_CATALOG = {
273735
273780
  lastUpdated: (/* @__PURE__ */ new Date()).toISOString(),
273736
273781
  apps: [
273737
273782
  {
273738
- id: "signlang",
273739
- name: "SignLang",
273740
- bundleId: "com.bakyt.signlang",
273741
- version: "1.2.0",
273742
- category: "education",
273743
- description: "Learn American Sign Language with AI-powered camera practice. Point your camera at your hands and get real-time feedback on your sign accuracy. Includes 500+ signs, quizzes, and daily practice goals.",
273744
- shortDescription: "AI-powered sign language learning",
273783
+ id: "tryonai",
273784
+ name: "Dressy - TryOnAI",
273785
+ bundleId: "com.tryonai.dzhumabaevs.app",
273786
+ version: "1.0.0",
273787
+ category: "lifestyle",
273788
+ description: "Virtual try-on powered by AI. Upload a photo and see how different outfits look on you before buying. Uses advanced AI to realistically overlay clothing onto your body with accurate fit and drape.",
273789
+ shortDescription: "AI-powered virtual clothing try-on",
273745
273790
  developer: "Bakyt",
273746
- iconUrl: "/api/apps/icon/signlang",
273791
+ iconUrl: "http://65.109.4.13/store/icons/tryonai.png",
273747
273792
  screenshots: [],
273748
- sizeMb: 45,
273749
- minIosVersion: "16.0",
273750
- releaseDate: "2024-06-15",
273793
+ sizeMb: 35,
273794
+ minIosVersion: "17.0",
273795
+ releaseDate: "2025-01-15",
273751
273796
  lastUpdated: "2025-03-10",
273752
- changelog: "Added 50 new signs, improved hand detection accuracy",
273753
- installMethods: ["quick_install", "altstore"],
273754
- downloadUrl: "",
273755
- status: "available",
273756
- tags: ["ai", "accessibility", "camera", "asl"]
273757
- },
273758
- {
273759
- id: "caloriessnap",
273760
- name: "CaloriesSnap",
273761
- bundleId: "com.bakyt.caloriessnap",
273762
- version: "2.0.1",
273763
- category: "health",
273764
- description: "Snap a photo of your meal and instantly get calorie counts and macro breakdowns. Uses on-device AI to identify foods, portion sizes, and nutritional information. Track your daily intake with beautiful charts.",
273765
- shortDescription: "AI calorie tracking from photos",
273766
- developer: "Bakyt",
273767
- iconUrl: "/api/apps/icon/caloriessnap",
273768
- screenshots: [],
273769
- sizeMb: 38,
273770
- minIosVersion: "16.0",
273771
- releaseDate: "2024-04-20",
273772
- lastUpdated: "2025-02-28",
273773
- changelog: "Improved food recognition, added meal history export",
273774
- installMethods: ["quick_install", "altstore", "testflight"],
273775
- downloadUrl: "",
273776
- status: "available",
273777
- tags: ["ai", "health", "nutrition", "camera"]
273778
- },
273779
- {
273780
- id: "vibelens",
273781
- name: "VibeLens",
273782
- bundleId: "com.bakyt.vibelens",
273783
- version: "1.5.0",
273784
- category: "photography",
273785
- description: "Transform your photos with AI-powered mood filters. VibeLens analyzes the emotional tone of your image and applies cinematic color grading to match. Choose from 30+ vibe presets or let AI pick the perfect one.",
273786
- shortDescription: "AI mood-based photo filters",
273787
- developer: "Bakyt",
273788
- iconUrl: "/api/apps/icon/vibelens",
273789
- screenshots: [],
273790
- sizeMb: 52,
273791
- minIosVersion: "16.0",
273792
- releaseDate: "2024-08-01",
273793
- lastUpdated: "2025-01-15",
273794
- changelog: "New film grain presets, batch processing support",
273797
+ changelog: "Initial release",
273795
273798
  installMethods: ["quick_install", "altstore"],
273796
- downloadUrl: "",
273799
+ downloadUrl: "http://65.109.4.13/store/ipas/tryonai-latest.ipa",
273797
273800
  status: "available",
273798
- tags: ["ai", "photos", "filters", "creative"]
273801
+ tags: ["ai", "fashion", "camera", "ar"]
273799
273802
  },
273800
273803
  {
273801
- id: "posescope",
273802
- name: "PoseScope",
273803
- bundleId: "com.bakyt.posescope",
273804
- version: "1.1.0",
273805
- category: "health",
273806
- description: "Real-time pose analysis for yoga, workouts, and physical therapy. Uses your camera to track body position and provides instant feedback on form. Includes guided routines and progress tracking.",
273807
- shortDescription: "AI pose analysis for fitness",
273808
- developer: "Bakyt",
273809
- iconUrl: "/api/apps/icon/posescope",
273810
- screenshots: [],
273811
- sizeMb: 41,
273812
- minIosVersion: "16.0",
273813
- releaseDate: "2024-09-12",
273814
- lastUpdated: "2025-02-05",
273815
- changelog: "Added 20 new yoga poses, improved joint detection",
273816
- installMethods: ["quick_install", "altstore"],
273817
- downloadUrl: "",
273818
- status: "available",
273819
- tags: ["ai", "fitness", "yoga", "camera", "health"]
273820
- },
273821
- {
273822
- id: "soundsig",
273823
- name: "SoundSig",
273824
- bundleId: "com.bakyt.soundsig",
273825
- version: "1.0.3",
273804
+ id: "fakecall",
273805
+ name: "Alibi",
273806
+ bundleId: "com.dzhumabaevs.fakecall",
273807
+ version: "1.2",
273826
273808
  category: "utilities",
273827
- description: "Identify any sound around you. SoundSig listens and classifies ambient sounds \u2014 bird species, musical instruments, machinery, alarms, and more. Build a personal sound library and get notifications for specific sounds.",
273828
- shortDescription: "AI sound identification",
273809
+ description: "Schedule realistic fake phone calls to get out of awkward situations. Customize caller name, photo, ringtone, and timing. The call screen looks exactly like a real incoming call \u2014 nobody will know the difference.",
273810
+ shortDescription: "Realistic fake incoming calls on demand",
273829
273811
  developer: "Bakyt",
273830
- iconUrl: "/api/apps/icon/soundsig",
273812
+ iconUrl: "http://65.109.4.13/store/icons/fakecall.png",
273831
273813
  screenshots: [],
273832
- sizeMb: 29,
273833
- minIosVersion: "16.0",
273814
+ sizeMb: 15,
273815
+ minIosVersion: "17.0",
273834
273816
  releaseDate: "2024-11-01",
273835
- lastUpdated: "2025-01-20",
273836
- changelog: "Added 200+ new sound categories",
273837
- installMethods: ["quick_install", "altstore"],
273838
- downloadUrl: "",
273839
- status: "available",
273840
- tags: ["ai", "audio", "identification", "accessibility"]
273841
- },
273842
- {
273843
- id: "aura",
273844
- name: "Aura",
273845
- bundleId: "com.bakyt.aura",
273846
- version: "2.1.0",
273847
- category: "lifestyle",
273848
- description: "Your personal mood and energy tracker. Aura uses AI to analyze your daily patterns \u2014 sleep, activity, weather, and screen time \u2014 to predict your energy levels and suggest optimal times for focus, exercise, and rest.",
273849
- shortDescription: "AI-powered mood & energy tracker",
273850
- developer: "Bakyt",
273851
- iconUrl: "/api/apps/icon/aura",
273852
- screenshots: [],
273853
- sizeMb: 22,
273854
- minIosVersion: "16.0",
273855
- releaseDate: "2024-03-05",
273856
- lastUpdated: "2025-03-01",
273857
- changelog: "New sleep quality insights, widget support",
273858
- installMethods: ["quick_install", "altstore", "testflight"],
273859
- downloadUrl: "",
273860
- status: "available",
273861
- tags: ["ai", "wellness", "mood", "tracking"]
273862
- },
273863
- {
273864
- id: "sightx",
273865
- name: "SightX",
273866
- bundleId: "com.bakyt.sightx",
273867
- version: "1.3.0",
273868
- category: "utilities",
273869
- description: "Point your camera at any object and get instant information. SightX identifies plants, animals, landmarks, products, and text in 40+ languages. Save discoveries to your personal visual encyclopedia.",
273870
- shortDescription: "Visual search & object identification",
273871
- developer: "Bakyt",
273872
- iconUrl: "/api/apps/icon/sightx",
273873
- screenshots: [],
273874
- sizeMb: 56,
273875
- minIosVersion: "16.0",
273876
- releaseDate: "2024-05-18",
273877
273817
  lastUpdated: "2025-02-20",
273878
- changelog: "Added plant disease detection, improved OCR",
273818
+ changelog: "v1.2: Added custom ringtones and contact photos",
273879
273819
  installMethods: ["quick_install", "altstore"],
273880
- downloadUrl: "",
273820
+ downloadUrl: "http://65.109.4.13/store/ipas/fakecall-latest.ipa",
273881
273821
  status: "available",
273882
- tags: ["ai", "camera", "identification", "ar"]
273822
+ tags: ["utility", "prank", "social"]
273883
273823
  },
273884
273824
  {
273885
- id: "tamakpet",
273886
- name: "TamakPet",
273887
- bundleId: "com.bakyt.tamakpet",
273888
- version: "1.0.0",
273825
+ id: "soundvault",
273826
+ name: "SoundVault",
273827
+ bundleId: "com.dzhumabaevs.soundvault",
273828
+ version: "1.0.2",
273889
273829
  category: "entertainment",
273890
- description: "A modern AI-powered virtual pet that lives on your phone. Feed, play, and train your TamakPet. It learns your schedule and sends you messages. Each pet develops a unique personality based on how you interact.",
273891
- shortDescription: "AI virtual pet companion",
273830
+ description: "Your personal sound library and audio manager. Record, organize, and play back sounds with a beautiful interface. Create soundboards, tag your recordings, and access them instantly. Perfect for musicians, content creators, and sound enthusiasts.",
273831
+ shortDescription: "Personal sound library and audio manager",
273892
273832
  developer: "Bakyt",
273893
- iconUrl: "/api/apps/icon/tamakpet",
273833
+ iconUrl: "http://65.109.4.13/store/icons/soundvault.png",
273894
273834
  screenshots: [],
273895
- sizeMb: 34,
273896
- minIosVersion: "16.0",
273897
- releaseDate: "2025-01-10",
273898
- lastUpdated: "2025-03-05",
273899
- changelog: "Initial release with 5 pet types",
273835
+ sizeMb: 20,
273836
+ minIosVersion: "17.0",
273837
+ releaseDate: "2024-12-01",
273838
+ lastUpdated: "2025-01-15",
273839
+ changelog: "v1.0.2: Bug fixes and performance improvements",
273900
273840
  installMethods: ["quick_install", "altstore"],
273901
- downloadUrl: "",
273841
+ downloadUrl: "http://65.109.4.13/store/ipas/soundvault-latest.ipa",
273902
273842
  status: "available",
273903
- tags: ["ai", "game", "virtual-pet", "fun"]
273843
+ tags: ["audio", "music", "recording", "creative"]
273904
273844
  },
273905
273845
  {
273906
- id: "archaman",
273907
- name: "Archaman",
273908
- bundleId: "com.bakyt.archaman",
273909
- version: "1.4.0",
273846
+ id: "pianomaster",
273847
+ name: "PianoMaster",
273848
+ bundleId: "com.dzhumabaevs.pianomaster",
273849
+ version: "1.0",
273910
273850
  category: "education",
273911
- description: "Explore historical architecture through AR. Point your camera at any building and Archaman overlays historical information, architectural style analysis, and 3D reconstructions of how the building looked in different eras.",
273912
- shortDescription: "AR architecture explorer",
273851
+ description: "Learn to play piano with interactive lessons and real-time feedback. Follow along with guided tutorials, practice scales and chords, and track your progress. Features a beautiful on-screen keyboard with realistic sound.",
273852
+ shortDescription: "Interactive piano learning app",
273913
273853
  developer: "Bakyt",
273914
- iconUrl: "/api/apps/icon/archaman",
273854
+ iconUrl: "http://65.109.4.13/store/icons/pianomaster.png",
273915
273855
  screenshots: [],
273916
- sizeMb: 78,
273917
- minIosVersion: "16.0",
273918
- releaseDate: "2024-07-22",
273919
- lastUpdated: "2025-02-15",
273920
- changelog: "Added 500+ new buildings, improved AR stability",
273856
+ sizeMb: 25,
273857
+ minIosVersion: "17.0",
273858
+ releaseDate: "2025-02-01",
273859
+ lastUpdated: "2025-03-01",
273860
+ changelog: "Initial release",
273921
273861
  installMethods: ["quick_install", "altstore"],
273922
- downloadUrl: "",
273862
+ downloadUrl: "http://65.109.4.13/store/ipas/pianomaster-latest.ipa",
273923
273863
  status: "available",
273924
- tags: ["ai", "ar", "architecture", "history", "camera"]
273864
+ tags: ["music", "piano", "education", "learning"]
273925
273865
  },
273926
273866
  {
273927
- id: "focusflow",
273928
- name: "FocusFlow",
273929
- bundleId: "com.bakyt.focusflow",
273930
- version: "1.2.0",
273931
- category: "productivity",
273932
- description: "AI-powered focus sessions that adapt to your work patterns. FocusFlow learns when you are most productive and suggests optimal work/break intervals. Integrates with your calendar and blocks distracting apps during focus time.",
273933
- shortDescription: "Adaptive AI focus timer",
273867
+ id: "metaminor",
273868
+ name: "MetaMinor",
273869
+ bundleId: "com.dzhumabaevsz.metaminor",
273870
+ version: "1.0",
273871
+ category: "utilities",
273872
+ description: "View and edit metadata for your photos, videos, and files. MetaMinor lets you inspect EXIF data, GPS coordinates, timestamps, camera settings, and more. Batch edit metadata, strip location data for privacy, and export clean files.",
273873
+ shortDescription: "Photo & file metadata viewer and editor",
273934
273874
  developer: "Bakyt",
273935
- iconUrl: "/api/apps/icon/focusflow",
273875
+ iconUrl: "http://65.109.4.13/store/icons/metaminor.png",
273936
273876
  screenshots: [],
273937
- sizeMb: 18,
273938
- minIosVersion: "16.0",
273939
- releaseDate: "2024-10-05",
273940
- lastUpdated: "2025-03-08",
273941
- changelog: "Calendar sync, new ambient sounds",
273942
- installMethods: ["quick_install", "altstore", "testflight"],
273943
- downloadUrl: "",
273877
+ sizeMb: 12,
273878
+ minIosVersion: "17.0",
273879
+ releaseDate: "2025-01-20",
273880
+ lastUpdated: "2025-02-10",
273881
+ changelog: "Initial release",
273882
+ installMethods: ["quick_install", "altstore"],
273883
+ downloadUrl: "http://65.109.4.13/store/ipas/metaminor-latest.ipa",
273944
273884
  status: "available",
273945
- tags: ["ai", "productivity", "focus", "timer"]
273885
+ tags: ["utility", "metadata", "photos", "privacy"]
273946
273886
  }
273947
273887
  ]
273948
273888
  };
@@ -273952,7 +273892,7 @@ import { readFileSync as readFileSync5, existsSync as existsSync4 } from "fs";
273952
273892
  import { join as join7 } from "path";
273953
273893
  import { homedir as homedir3 } from "os";
273954
273894
  var appsRoutes = new Hono8();
273955
- var CATALOG_URL = process.env.DJAGENT_CATALOG_URL || "";
273895
+ var CATALOG_URL = process.env.DJAGENT_CATALOG_URL || "http://65.109.4.13/store/catalog.json";
273956
273896
  var LOCAL_CATALOG_PATH = join7(homedir3(), ".agent-dj", "catalog.json");
273957
273897
  var cachedCatalog = DEFAULT_CATALOG;
273958
273898
  var lastFetchTime = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-dj",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Self-hosted AI agent platform with beautiful dashboard. One command install, multi-agent orchestration, RAG, MCP support.",
5
5
  "type": "module",
6
6
  "bin": {