@x12i/ai-profiles 1.7.0 → 1.8.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.
Files changed (56) hide show
  1. package/README.md +25 -10
  2. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -1
  3. package/dist/buildCatalogFromOpenRouterApi.js +2 -1
  4. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -1
  5. package/dist/buildResolvedProfile.d.ts.map +1 -1
  6. package/dist/buildResolvedProfile.js +7 -0
  7. package/dist/buildResolvedProfile.js.map +1 -1
  8. package/dist/data/models-catalog.json +335 -1584
  9. package/dist/data/models-profiles.json +37 -113
  10. package/dist/data/models-registry.json +18 -825
  11. package/dist/data/profiles-shortcuts.json +0 -14
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/logger.d.ts +2 -0
  17. package/dist/logger.d.ts.map +1 -0
  18. package/dist/logger.js +7 -0
  19. package/dist/logger.js.map +1 -0
  20. package/dist/modelInputFallback.d.ts +20 -0
  21. package/dist/modelInputFallback.d.ts.map +1 -0
  22. package/dist/modelInputFallback.js +261 -0
  23. package/dist/modelInputFallback.js.map +1 -0
  24. package/dist/openRouterSlugPolicy.d.ts +20 -0
  25. package/dist/openRouterSlugPolicy.d.ts.map +1 -0
  26. package/dist/openRouterSlugPolicy.js +66 -0
  27. package/dist/openRouterSlugPolicy.js.map +1 -0
  28. package/dist/profileCatalogSupplement.d.ts.map +1 -1
  29. package/dist/profileCatalogSupplement.js +0 -66
  30. package/dist/profileCatalogSupplement.js.map +1 -1
  31. package/dist/profileModelFallback.d.ts +13 -0
  32. package/dist/profileModelFallback.d.ts.map +1 -0
  33. package/dist/profileModelFallback.js +180 -0
  34. package/dist/profileModelFallback.js.map +1 -0
  35. package/dist/profileRegistryV3.d.ts.map +1 -1
  36. package/dist/profileRegistryV3.js +25 -28
  37. package/dist/profileRegistryV3.js.map +1 -1
  38. package/dist/resolveAIProfile.d.ts.map +1 -1
  39. package/dist/resolveAIProfile.js +21 -0
  40. package/dist/resolveAIProfile.js.map +1 -1
  41. package/dist/resolveModelIdentity.d.ts.map +1 -1
  42. package/dist/resolveModelIdentity.js +16 -0
  43. package/dist/resolveModelIdentity.js.map +1 -1
  44. package/dist/types.d.ts +4 -2
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/validateProfileCatalogLinkage.d.ts.map +1 -1
  47. package/dist/validateProfileCatalogLinkage.js +35 -8
  48. package/dist/validateProfileCatalogLinkage.js.map +1 -1
  49. package/dist/validateProfileTransportPolicy.d.ts +8 -0
  50. package/dist/validateProfileTransportPolicy.d.ts.map +1 -0
  51. package/dist/validateProfileTransportPolicy.js +69 -0
  52. package/dist/validateProfileTransportPolicy.js.map +1 -0
  53. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  54. package/dist/validation/validateModelsProfilesJson.js +10 -1
  55. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  56. package/package.json +6 -6
@@ -2,7 +2,7 @@
2
2
  "schema": "x12i.ai-profiles.model-registry.v3",
3
3
  "registryId": "models-profiles",
4
4
  "generatedAt": "2026-05-29T00:00:00.000Z",
5
- "lastVerifiedAt": "2026-05-30T20:44:08Z",
5
+ "lastVerifiedAt": "2026-05-30T21:56:06Z",
6
6
  "version": "3.0.0",
7
7
  "currency": "USD",
8
8
  "pricingUnit": "1M_tokens",
@@ -13,7 +13,8 @@
13
13
  "openRouterModelId": "Resolved from models-catalog.json at runtime; never stored on profile choices.",
14
14
  "modelStatus": "verified = stable vendor SKU; predicted = forward-looking placeholder — not guaranteed callable.",
15
15
  "requiredCapabilities": "Profile intent contract; concrete model picks remain suggestions until Optimixer selects dynamically.",
16
- "deploymentType": "How the model is operated (proprietary API vs hosted open weights vs self-hosted).",
16
+ "deploymentType": "How the model is operated (proprietary API vs self-hosted CPU). Remote profiles require OpenRouter catalog backing.",
17
+ "cpuLocalProfile": "Only the \"local\" profile runs on-device CPU (funcx / Transformers.js). No OpenRouter.",
17
18
  "inputModalities": "Required input media types for profile intent (text, image, audio, video, file).",
18
19
  "outputModalities": "Required output media types for profile intent (text, image, audio, video, file).",
19
20
  "choiceModalities": "Optional per-choice modality override when catalog linkage is missing."
@@ -253,7 +254,7 @@
253
254
  "openrouter:catalog"
254
255
  ]
255
256
  },
256
- "modelStatus": "predicted"
257
+ "modelStatus": "verified"
257
258
  },
258
259
  "anthropic_fast": {
259
260
  "choice": "anthropic_fast",
@@ -418,7 +419,7 @@
418
419
  "openrouter:catalog"
419
420
  ]
420
421
  },
421
- "modelStatus": "predicted"
422
+ "modelStatus": "verified"
422
423
  },
423
424
  "minimax_balanced": {
424
425
  "choice": "minimax_balanced",
@@ -539,7 +540,7 @@
539
540
  "openrouter:catalog"
540
541
  ]
541
542
  },
542
- "modelStatus": "predicted"
543
+ "modelStatus": "verified"
543
544
  },
544
545
  "deepseek_pro": {
545
546
  "choice": "deepseek_pro",
@@ -789,7 +790,7 @@
789
790
  "openrouter:catalog"
790
791
  ]
791
792
  },
792
- "modelStatus": "predicted"
793
+ "modelStatus": "verified"
793
794
  },
794
795
  "anthropic_json": {
795
796
  "choice": "anthropic_json",
@@ -910,7 +911,7 @@
910
911
  "openrouter:catalog"
911
912
  ]
912
913
  },
913
- "modelStatus": "predicted"
914
+ "modelStatus": "verified"
914
915
  },
915
916
  "minimax_agentic": {
916
917
  "choice": "minimax_agentic",
@@ -1045,7 +1046,7 @@
1045
1046
  "openrouter:catalog"
1046
1047
  ]
1047
1048
  },
1048
- "modelStatus": "predicted"
1049
+ "modelStatus": "verified"
1049
1050
  }
1050
1051
  },
1051
1052
  "fallbackChoiceOrder": [
@@ -1120,7 +1121,7 @@
1120
1121
  "openrouter:catalog"
1121
1122
  ]
1122
1123
  },
1123
- "modelStatus": "predicted"
1124
+ "modelStatus": "verified"
1124
1125
  },
1125
1126
  "deep_forensics": {
1126
1127
  "choice": "deep_forensics",
@@ -1219,7 +1220,7 @@
1219
1220
  "openrouter:catalog"
1220
1221
  ]
1221
1222
  },
1222
- "modelStatus": "predicted"
1223
+ "modelStatus": "verified"
1223
1224
  },
1224
1225
  "brand_voice": {
1225
1226
  "choice": "brand_voice",
@@ -1300,13 +1301,13 @@
1300
1301
  "displayName": "Mega Context Summarization",
1301
1302
  "description": "Compressing entire repositories, books, or multi-year document histories.",
1302
1303
  "provider": "google",
1303
- "modelId": "gemini-2.5-pro",
1304
+ "modelId": "gemini-3.5-flash",
1304
1305
  "runtime": {
1305
1306
  "reasoningEffort": "high",
1306
1307
  "toolPolicy": "none",
1307
1308
  "outputMode": "text"
1308
1309
  },
1309
- "reason": "When input exceeds ~200k tokens, Pro-tier long context handles needle-in-haystack retrieval best.",
1310
+ "reason": "When input exceeds ~200k tokens, Gemini 3.5 Flash long context handles needle-in-haystack retrieval best.",
1310
1311
  "verification": {
1311
1312
  "lastVerifiedAt": "2026-05-29T17:08:03Z",
1312
1313
  "sourceRefs": [
@@ -1407,98 +1408,10 @@
1407
1408
  ]
1408
1409
  }
1409
1410
  },
1410
- "open_weights": {
1411
- "profile": "open_weights",
1412
- "displayName": "Open Weights Ecosystem",
1413
- "description": "Hosted open-source models as a hedge against proprietary lock-in, with pathways to self-hosting.",
1414
- "category": "resilience",
1415
- "aliases": [
1416
- "llama",
1417
- "qwen",
1418
- "mistral",
1419
- "self-hostable"
1420
- ],
1421
- "defaultChoice": "default",
1422
- "choices": {
1423
- "default": {
1424
- "choice": "default",
1425
- "displayName": "Llama 3.3 70B",
1426
- "description": "Standard open-weights workhorse with a clear self-hosting path when compliance requires it.",
1427
- "provider": "together",
1428
- "modelId": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
1429
- "runtime": {
1430
- "instructionTier": "default",
1431
- "backend": "openrouter",
1432
- "reasoningEffort": "medium",
1433
- "toolPolicy": "none",
1434
- "outputMode": "text"
1435
- },
1436
- "metadata": {
1437
- "openRouter": "vendor-direct"
1438
- },
1439
- "reason": "Direct pathway to self-hosting if privacy or vendor independence is required.",
1440
- "verification": {
1441
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
1442
- "sourceRefs": [
1443
- "vendor:together",
1444
- "openrouter:catalog"
1445
- ]
1446
- },
1447
- "modelStatus": "verified",
1448
- "deploymentType": "openWeightsHosted"
1449
- },
1450
- "multilingual_code": {
1451
- "choice": "multilingual_code",
1452
- "displayName": "Qwen 2.5 72B",
1453
- "description": "Strong open-weights option for coding and non-English workloads.",
1454
- "provider": "together",
1455
- "modelId": "Qwen/Qwen3-235B-A22B-Instruct-2507-tput",
1456
- "runtime": {
1457
- "instructionTier": "default",
1458
- "backend": "openrouter",
1459
- "reasoningEffort": "high",
1460
- "toolPolicy": "none",
1461
- "outputMode": "text"
1462
- },
1463
- "metadata": {
1464
- "openRouter": "vendor-direct"
1465
- },
1466
- "reason": "Top-tier Chinese open-weights model; exceptionally strong at coding and multilingual tasks.",
1467
- "verification": {
1468
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
1469
- "sourceRefs": [
1470
- "vendor:together",
1471
- "openrouter:catalog"
1472
- ]
1473
- },
1474
- "modelStatus": "verified",
1475
- "deploymentType": "openWeightsHosted"
1476
- }
1477
- },
1478
- "fallbackChoiceOrder": [
1479
- "default",
1480
- "multilingual_code"
1481
- ],
1482
- "requiredCapabilities": {
1483
- "reasoning": "medium",
1484
- "coding": true,
1485
- "cost": "medium",
1486
- "inputModalities": [
1487
- "text"
1488
- ],
1489
- "outputModalities": [
1490
- "text"
1491
- ]
1492
- },
1493
- "deploymentType": "openWeightsHosted",
1494
- "metadata": {
1495
- "deploymentStrategy": "openWeightsHosted"
1496
- }
1497
- },
1498
1411
  "local": {
1499
1412
  "profile": "local",
1500
- "displayName": "Local / CPU",
1501
- "description": "On-device inference via FuncX CPU backends. No OpenRouter. Uses cpu instruction tier.",
1413
+ "displayName": "Local / CPU (no OpenRouter)",
1414
+ "description": "On-device inference only — llama.cpp GGUF or Transformers.js on CPU. Does not call OpenRouter or any cloud LLM API.",
1502
1415
  "category": "local",
1503
1416
  "aliases": [
1504
1417
  "weak",
@@ -1506,56 +1419,66 @@
1506
1419
  "on-device"
1507
1420
  ],
1508
1421
  "defaultChoice": "llama_cpp_gguf",
1422
+ "deploymentType": "selfHosted",
1423
+ "metadata": {
1424
+ "transport": "cpu-local",
1425
+ "openRouter": "cpu-local",
1426
+ "billingModel": "self_hosted"
1427
+ },
1509
1428
  "choices": {
1510
1429
  "llama_cpp_gguf": {
1511
1430
  "choice": "llama_cpp_gguf",
1512
- "displayName": "llama.cpp (GGUF)",
1513
- "description": "Local GGUF via node-llama-cpp. Path from LLAMA_CPP_MODEL_PATH.",
1431
+ "displayName": "llama.cpp GGUF (CPU, offline)",
1432
+ "description": "Runs a local GGUF weights file via node-llama-cpp. Configure LLAMA_CPP_MODEL_PATH. No network LLM calls.",
1514
1433
  "provider": "local",
1515
1434
  "modelId": "funcx:llama-cpp:gguf",
1516
1435
  "runtime": {
1517
1436
  "instructionTier": "cpu",
1437
+ "executionMode": "offline",
1518
1438
  "backend": "llama-cpp",
1519
1439
  "reasoningEffort": "minimal",
1520
- "executionMode": "offline",
1521
1440
  "temperature": 0.1,
1522
1441
  "toolPolicy": "none",
1523
1442
  "outputMode": "text"
1524
1443
  },
1525
1444
  "metadata": {
1445
+ "openRouter": "cpu-local",
1526
1446
  "funcxBackend": "llama-cpp",
1527
1447
  "envModelPath": "LLAMA_CPP_MODEL_PATH",
1528
1448
  "envThreads": "LLAMA_CPP_THREADS",
1529
1449
  "envContextSize": "LLAMA_CPP_CONTEXT_SIZE",
1530
1450
  "defaultModelPath": "./models/model.gguf",
1531
1451
  "optionalDep": "node-llama-cpp",
1532
- "billingModel": "self_hosted"
1452
+ "billingModel": "self_hosted",
1453
+ "device": "cpu"
1533
1454
  },
1534
1455
  "verification": {
1535
1456
  "lastVerifiedAt": "2026-05-29T17:08:03Z",
1536
1457
  "sourceRefs": [
1537
1458
  "vendor:local",
1538
- "openrouter:catalog"
1459
+ "cpu:self-hosted"
1539
1460
  ]
1540
1461
  },
1541
- "modelStatus": "verified"
1462
+ "modelStatus": "verified",
1463
+ "deploymentType": "selfHosted"
1542
1464
  },
1543
1465
  "transformersjs_default": {
1544
1466
  "choice": "transformersjs_default",
1545
- "displayName": "Transformers.js (CPU)",
1546
- "description": "Hugging Face model via @huggingface/transformers on CPU.",
1467
+ "displayName": "Transformers.js (CPU, offline)",
1468
+ "description": "Runs a Hugging Face model in-browser/on-node via @huggingface/transformers on CPU only. No OpenRouter.",
1547
1469
  "provider": "local",
1548
1470
  "modelId": "Xenova/distilbart-cnn-6-6",
1549
1471
  "runtime": {
1550
1472
  "instructionTier": "cpu",
1473
+ "executionMode": "offline",
1551
1474
  "backend": "transformersjs",
1552
1475
  "reasoningEffort": "minimal",
1553
- "executionMode": "offline",
1554
1476
  "temperature": 0.1,
1555
1477
  "toolPolicy": "none",
1556
1478
  "outputMode": "text"
1557
1479
  },
1558
1480
  "metadata": {
1481
+ "openRouter": "cpu-local",
1559
1482
  "funcxBackend": "transformersjs",
1560
1483
  "envModelId": "TRANSFORMERS_JS_MODEL_ID",
1561
1484
  "envCacheDir": "TRANSFORMERS_JS_CACHE_DIR",
@@ -1569,10 +1492,11 @@
1569
1492
  "lastVerifiedAt": "2026-05-29T17:08:03Z",
1570
1493
  "sourceRefs": [
1571
1494
  "vendor:local",
1572
- "openrouter:catalog"
1495
+ "cpu:self-hosted"
1573
1496
  ]
1574
1497
  },
1575
- "modelStatus": "verified"
1498
+ "modelStatus": "verified",
1499
+ "deploymentType": "selfHosted"
1576
1500
  }
1577
1501
  },
1578
1502
  "fallbackChoiceOrder": [