@billjr99/pi-openai-compat 1.1.29 → 1.1.31
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/README.md +2 -0
- package/add-provider.sh +21 -0
- package/index.ts +23 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -66,6 +66,8 @@ If pi is already running when you install, type `/reload` first.
|
|
|
66
66
|
| **TeamoRouter** | `https://api.teamorouter.com/v1` | `sk-teamo-...` key from teamorouter.com (teamorouter.com/docs) |
|
|
67
67
|
| **GMI Cloud** | `https://api.gmi-serving.com/v1` | API key from console.gmicloud.ai → Organization Settings → API Keys |
|
|
68
68
|
| **Token Harbor** | `https://tokenharbor.ai/v1` | `thk_live_...` Universal Key from tokenharbor.ai/dashboard/api-keys |
|
|
69
|
+
| **Atria ASI** | `https://api.atria-asi.ai/v1` | `atr_...` key from api.atria-asi.ai/console/keys (Google sign-in) |
|
|
70
|
+
| **Unbiased AI** | `https://api.unbiased.ai/v1` | `sk_...` key from platform.unbiased.ai (signup reviewed by hand) |
|
|
69
71
|
| **Ollama (local)** | `http://localhost:11434/v1` (editable) | Optional bearer token; leave blank for a default local install |
|
|
70
72
|
| **Ollama Cloud** | `https://ollama.com/v1` | Ollama Cloud API key from ollama.com |
|
|
71
73
|
| **llmproxy** | `http://localhost:8080/v1` (editable) | Keyless by default; bearer token if your instance requires one |
|
package/add-provider.sh
CHANGED
|
@@ -54,6 +54,24 @@ const BUILTIN = {
|
|
|
54
54
|
keyless: false,
|
|
55
55
|
keyHint: "console.gmicloud.ai → Organization Settings → API Keys (docs at docs.gmicloud.ai/inference-engine)",
|
|
56
56
|
},
|
|
57
|
+
tokenharbor: {
|
|
58
|
+
displayName: "Token Harbor",
|
|
59
|
+
baseUrl: "https://tokenharbor.ai/v1",
|
|
60
|
+
keyless: false,
|
|
61
|
+
keyHint: "tokenharbor.ai/dashboard/api-keys (Universal Key, format thk_live_...; docs at tokenharbor.ai/docs)",
|
|
62
|
+
},
|
|
63
|
+
atria_asi: {
|
|
64
|
+
displayName: "Atria ASI",
|
|
65
|
+
baseUrl: "https://api.atria-asi.ai/v1",
|
|
66
|
+
keyless: false,
|
|
67
|
+
keyHint: "api.atria-asi.ai/console/keys (Google sign-in; keys look like atr_...; docs at api.atria-asi.ai/docs)",
|
|
68
|
+
},
|
|
69
|
+
unbiased_ai: {
|
|
70
|
+
displayName: "Unbiased AI",
|
|
71
|
+
baseUrl: "https://api.unbiased.ai/v1",
|
|
72
|
+
keyless: false,
|
|
73
|
+
keyHint: "platform.unbiased.ai (signup is reviewed by hand; keys look like sk_...)",
|
|
74
|
+
},
|
|
57
75
|
};
|
|
58
76
|
|
|
59
77
|
// README "Auth" column text for the built-in providers, used only by patchreadme.
|
|
@@ -61,6 +79,9 @@ const BUILTIN_AUTH = {
|
|
|
61
79
|
xkiro: "`sk-xt-...` key from the xKiro console at xkiro.com (docs.xkiro.com)",
|
|
62
80
|
teamorouter: "`sk-teamo-...` key from teamorouter.com (teamorouter.com/docs)",
|
|
63
81
|
gmi: "API key from console.gmicloud.ai → Organization Settings → API Keys",
|
|
82
|
+
tokenharbor: "`thk_live_...` Universal Key from tokenharbor.ai/dashboard/api-keys",
|
|
83
|
+
atria_asi: "`atr_...` key from api.atria-asi.ai/console/keys (Google sign-in)",
|
|
84
|
+
unbiased_ai: "`sk_...` key from platform.unbiased.ai (signup reviewed by hand)",
|
|
64
85
|
};
|
|
65
86
|
|
|
66
87
|
/**
|
package/index.ts
CHANGED
|
@@ -395,6 +395,29 @@ export const TEMPLATES: Record<string, {
|
|
|
395
395
|
// One "Universal Key" reaches every model; free models carry a ":free" id suffix.
|
|
396
396
|
keyHint: "tokenharbor.ai/dashboard/api-keys (Universal Key, format thk_live_...; docs at tokenharbor.ai/docs)",
|
|
397
397
|
},
|
|
398
|
+
atria_asi: {
|
|
399
|
+
displayName: "Atria ASI",
|
|
400
|
+
baseUrl: "https://api.atria-asi.ai/v1",
|
|
401
|
+
keyless: false,
|
|
402
|
+
// One model, Atria-Dawn-Preview: 256K context, text-only input. GET
|
|
403
|
+
// /v1/models is undocumented but registered and key-gated (it answers 401,
|
|
404
|
+
// where an unknown /v1 path answers 404), which is exactly what fetchModels
|
|
405
|
+
// already sends, so no modelsUrl or fallbackModels override is needed.
|
|
406
|
+
keyHint: "api.atria-asi.ai/console/keys (Google sign-in; keys look like atr_...; docs at api.atria-asi.ai/docs)",
|
|
407
|
+
},
|
|
408
|
+
unbiased_ai: {
|
|
409
|
+
displayName: "Unbiased AI",
|
|
410
|
+
baseUrl: "https://api.unbiased.ai/v1",
|
|
411
|
+
keyless: false,
|
|
412
|
+
// One model, "pareto", a blend of frontier and open models. The endpoint
|
|
413
|
+
// answers both /v1/chat/completions and Anthropic's /v1/messages and takes
|
|
414
|
+
// either Authorization: Bearer or x-api-key; pi is registered with the
|
|
415
|
+
// OpenAI pair, which is what registerProvider and fetchModels already send.
|
|
416
|
+
// GET /v1/models is registered and key-gated (a well-formed sk_ key gets
|
|
417
|
+
// "Invalid API key" rather than a format complaint), so no modelsUrl or
|
|
418
|
+
// fallbackModels override is needed.
|
|
419
|
+
keyHint: "platform.unbiased.ai (signup is reviewed by hand; keys look like sk_...)",
|
|
420
|
+
},
|
|
398
421
|
custom: {
|
|
399
422
|
displayName: "Custom Endpoint",
|
|
400
423
|
baseUrl: "",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@billjr99/pi-openai-compat",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.31",
|
|
4
4
|
"description": "pi-coding-agent extension: OpenAI-compatible endpoint support (OpenRouter, NVIDIA NIM, Nous Portal, Ollama, custom)",
|
|
5
5
|
"author": "Bill Mongan <https://github.com/BillJr99>",
|
|
6
6
|
"license": "MIT",
|