@idcloudhost/ai-connect 0.1.0 → 0.1.1
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 +6 -1
- package/dist/cli.js +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +63 -9
- package/dist/commands/login.js.map +1 -1
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +18 -2
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/management.d.ts +18 -0
- package/dist/core/management.d.ts.map +1 -1
- package/dist/core/management.js +24 -0
- package/dist/core/management.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,6 +55,10 @@ dashboard. The secret is shown exactly once, so save it when it appears.
|
|
|
55
55
|
reads the gateway URL from the dashboard and can mint a key if you are an admin.
|
|
56
56
|
Otherwise paste the URL and key you already have.
|
|
57
57
|
|
|
58
|
+
You are never asked for an organization id. The dashboard UI does not show one,
|
|
59
|
+
so the tool asks the API which organizations your token can act on and lets you
|
|
60
|
+
pick by name (admin and owner roles first, since creating a key needs one).
|
|
61
|
+
|
|
58
62
|
The gateway URL is **not** hard-coded in this package. It is per-environment and
|
|
59
63
|
published by the dashboard at runtime, so the tool discovers it rather than
|
|
60
64
|
guessing.
|
|
@@ -235,7 +239,8 @@ are exported too.
|
|
|
235
239
|
| `--base-url` | `IDCH_AI_BASE_URL` | Gateway base URL |
|
|
236
240
|
| `--api-key` | `IDCH_AI_API_KEY` | Virtual key |
|
|
237
241
|
| `--profile` | | Named saved profile |
|
|
238
|
-
| `--dashboard-url`, `--token
|
|
242
|
+
| `--dashboard-url`, `--token` | | Discover the gateway through the dashboard API |
|
|
243
|
+
| `--org` | | Organization id — optional, resolved from your token |
|
|
239
244
|
| `--model` | | Model to make the default |
|
|
240
245
|
| `--only a,b` | | Register only these models |
|
|
241
246
|
| `--provider-id` | | Key the block is written under (default `idcloudhost`) |
|
package/dist/cli.js
CHANGED
|
@@ -40,7 +40,7 @@ ${c.bold('CONNECTION')}
|
|
|
40
40
|
--profile <name> Use a saved profile (default: the current one)
|
|
41
41
|
--dashboard-url <url> Discover the gateway through the dashboard API
|
|
42
42
|
--token <jwt> Dashboard access token
|
|
43
|
-
--org <id> Organization id
|
|
43
|
+
--org <id> Organization id (optional — resolved from your token)
|
|
44
44
|
|
|
45
45
|
${c.bold('BEHAVIOUR')}
|
|
46
46
|
--model <id> Model to make the default (repeatable via --only)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,sFAAsF;AACtF,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAoCtF;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,sFAAsF;AACtF,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAoCtF;AAsJD,6EAA6E;AAC7E,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBtE"}
|
package/dist/commands/login.js
CHANGED
|
@@ -50,17 +50,12 @@ async function promptViaDashboard(flags) {
|
|
|
50
50
|
message: 'Dashboard access token',
|
|
51
51
|
validate: (v) => (v.trim() ? true : 'required'),
|
|
52
52
|
},
|
|
53
|
-
{
|
|
54
|
-
type: 'text',
|
|
55
|
-
name: 'org',
|
|
56
|
-
message: 'Organization id',
|
|
57
|
-
initial: flags.org ?? '',
|
|
58
|
-
validate: (v) => (v.trim() ? true : 'required'),
|
|
59
|
-
},
|
|
60
53
|
], cancel));
|
|
61
|
-
if (!answers.token
|
|
54
|
+
if (!answers.token)
|
|
62
55
|
process.exit(130);
|
|
63
|
-
const
|
|
56
|
+
const dashboardUrl = answers.dashboardUrl ?? DEFAULT_DASHBOARD_URL;
|
|
57
|
+
const org = await chooseOrganization(dashboardUrl, answers.token, flags.org);
|
|
58
|
+
const client = new ManagementClient(dashboardUrl, answers.token, org);
|
|
64
59
|
let baseUrl;
|
|
65
60
|
try {
|
|
66
61
|
const status = await client.status();
|
|
@@ -104,6 +99,65 @@ async function promptViaDashboard(flags) {
|
|
|
104
99
|
process.exit(130);
|
|
105
100
|
return { baseUrl, apiKey: apiKey.trim(), from: { baseUrl: 'dashboard', apiKey: 'prompt' } };
|
|
106
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Pick the organization by name.
|
|
104
|
+
*
|
|
105
|
+
* The dashboard UI never surfaces a raw organization id, so prompting for one
|
|
106
|
+
* asks the customer for a value they have no way to look up. Ask the API which
|
|
107
|
+
* organizations the token can act on and show names; only fall back to typing an
|
|
108
|
+
* id if that call fails.
|
|
109
|
+
*/
|
|
110
|
+
async function chooseOrganization(dashboardUrl, token, preset) {
|
|
111
|
+
if (preset?.trim())
|
|
112
|
+
return preset.trim();
|
|
113
|
+
let orgs;
|
|
114
|
+
try {
|
|
115
|
+
orgs = await new ManagementClient(dashboardUrl, token).organizations();
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
ui.warn(`could not list your organizations: ${explainManagementError(err)}`);
|
|
119
|
+
return promptOrgIdFallback();
|
|
120
|
+
}
|
|
121
|
+
if (!orgs.length) {
|
|
122
|
+
ui.warn('this token belongs to no organizations.');
|
|
123
|
+
return promptOrgIdFallback();
|
|
124
|
+
}
|
|
125
|
+
if (orgs.length === 1) {
|
|
126
|
+
const only = orgs[0];
|
|
127
|
+
ui.ok(`Organization: ${c.bold(only.name)}${only.role ? c.dim(` (${only.role})`) : ''}`);
|
|
128
|
+
return only.id;
|
|
129
|
+
}
|
|
130
|
+
// Admins first: creating a key needs one, and a member picking their read-only
|
|
131
|
+
// org would only hit a 403 two prompts later.
|
|
132
|
+
const ranked = [...orgs].sort((a, b) => rankRole(b.role) - rankRole(a.role));
|
|
133
|
+
const { picked } = (await prompts({
|
|
134
|
+
type: 'select',
|
|
135
|
+
name: 'picked',
|
|
136
|
+
message: 'Which organization?',
|
|
137
|
+
choices: ranked.map((o) => ({
|
|
138
|
+
title: `${o.name}${o.role ? c.dim(` — ${o.role}`) : ''}${o.isPersonal ? c.dim(' (personal)') : ''}`,
|
|
139
|
+
value: o.id,
|
|
140
|
+
})),
|
|
141
|
+
}, cancel));
|
|
142
|
+
if (!picked)
|
|
143
|
+
process.exit(130);
|
|
144
|
+
return picked;
|
|
145
|
+
}
|
|
146
|
+
function rankRole(role) {
|
|
147
|
+
const r = role.toLowerCase();
|
|
148
|
+
if (r.includes('owner'))
|
|
149
|
+
return 3;
|
|
150
|
+
if (r.includes('admin'))
|
|
151
|
+
return 2;
|
|
152
|
+
return 1;
|
|
153
|
+
}
|
|
154
|
+
async function promptOrgIdFallback() {
|
|
155
|
+
ui.info('You can read the id out of the dashboard URL: /organizations/<id>/...');
|
|
156
|
+
const { org } = (await prompts({ type: 'text', name: 'org', message: 'Organization id', validate: (v) => (v.trim() ? true : 'required') }, cancel));
|
|
157
|
+
if (!org)
|
|
158
|
+
process.exit(130);
|
|
159
|
+
return org.trim();
|
|
160
|
+
}
|
|
107
161
|
function hostSuffix() {
|
|
108
162
|
return (process.env.HOSTNAME ?? process.env.USER ?? 'cli').replace(/[^a-z0-9-]/gi, '').slice(0, 16) || 'cli';
|
|
109
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAI1C,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAErD,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAkB;IAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAC5B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,qCAAqC,EAAE,KAAK,EAAE,QAAQ,EAAE;YACjE,EAAE,KAAK,EAAE,0CAA0C,EAAE,KAAK,EAAE,WAAW,EAAE;SAC1E;KACF,EACD,MAAM,CACP,CAAqB,CAAC;IAEvB,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAC5B;QACE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;SACxD;QACD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;KAClH,EACD,MAAM,CACP,CAA0C,CAAC;IAE5C,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAkB;IAClD,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAC5B;QACE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,KAAK,CAAC,YAAY,IAAI,qBAAqB;SACrD;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;SACxD;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAI1C,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAErD,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAkB;IAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAC5B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,qCAAqC,EAAE,KAAK,EAAE,QAAQ,EAAE;YACjE,EAAE,KAAK,EAAE,0CAA0C,EAAE,KAAK,EAAE,WAAW,EAAE;SAC1E;KACF,EACD,MAAM,CACP,CAAqB,CAAC;IAEvB,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAC5B;QACE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;SACxD;QACD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;KAClH,EACD,MAAM,CACP,CAA0C,CAAC;IAE5C,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAkB;IAClD,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAC5B;QACE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,KAAK,CAAC,YAAY,IAAI,qBAAqB;SACrD;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;SACxD;KACF,EACD,MAAM,CACP,CAA8C,CAAC;IAEhD,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtE,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC7G,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACjC,EAAE,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACrG,KAAK,EAAE,CAAC,CAAC,MAAM;KAChB,CAAC,CAAC,CAAC;IAEJ,gFAAgF;IAChF,kFAAkF;IAClF,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,OAAO,CAC7B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,wBAAwB;QACnG,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,6CAA6C,EAAE,KAAK,EAAE,QAAQ,EAAE;YACzE,EAAE,KAAK,EAAE,6BAA6B,EAAE,KAAK,EAAE,OAAO,EAAE;SACzD;KACF,EACD,MAAM,CACP,CAAsB,CAAC;IAExB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,OAAO,CAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,cAAc,UAAU,EAAE,EAAE,EAAE,EACvG,MAAM,CACP,CAAuB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,cAAc,UAAU,EAAE,EAAE,CAAC,CAAC;YAC9E,EAAE,CAAC,EAAE,CAAC,eAAe,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;YACtG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC;QACzG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EACjH,MAAM,CACP,CAAwB,CAAC;IAC1B,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC9F,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAAC,YAAoB,EAAE,KAAa,EAAE,MAAe;IACpF,IAAI,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,IAAI,CAAC,sCAAsC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,EAAE,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACnD,OAAO,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACtB,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,+EAA+E;IAC/E,8CAA8C;IAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAC/B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YACnG,KAAK,EAAE,CAAC,CAAC,EAAE;SACZ,CAAC,CAAC;KACJ,EACD,MAAM,CACP,CAAwB,CAAC;IAE1B,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,EAAE,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IACjF,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAClH,MAAM,CACP,CAAqB,CAAC;IACvB,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;AAC/G,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAkB;IACnD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACzG,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM;QAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,OAAO,uDAAuD,CAAC,CAAC;IAEnH,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5G,EAAE,CAAC,EAAE,CAAC,kBAAkB,IAAI,QAAQ,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,EAAE,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAC/B,EAAE,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAA0C,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAI3F,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAA0C,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAI3F,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAoEhF;AAED,oEAAoE;AACpE,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsCxG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAmB7F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAI3E"}
|
package/dist/core/discovery.js
CHANGED
|
@@ -31,8 +31,24 @@ export async function resolveSource(input) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
if (!baseUrl && input.dashboardUrl && input.token
|
|
35
|
-
|
|
34
|
+
if (!baseUrl && input.dashboardUrl && input.token) {
|
|
35
|
+
// No --org given: resolve it rather than bailing. Organization ids are not
|
|
36
|
+
// shown anywhere in the dashboard UI, so requiring one made the flag
|
|
37
|
+
// effectively unusable.
|
|
38
|
+
let orgId = input.org;
|
|
39
|
+
if (!orgId) {
|
|
40
|
+
const orgs = await new ManagementClient(input.dashboardUrl, input.token).organizations().catch(() => []);
|
|
41
|
+
if (orgs.length === 1)
|
|
42
|
+
orgId = orgs[0].id;
|
|
43
|
+
else if (orgs.length > 1) {
|
|
44
|
+
throw new Error(`you belong to ${orgs.length} organizations — pass --org with one of:\n` +
|
|
45
|
+
orgs.map((o) => ` ${o.id} ${o.name}${o.role ? ` (${o.role})` : ''}`).join('\n'));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error('could not determine your organization from the dashboard. Pass --org explicitly.');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const client = new ManagementClient(input.dashboardUrl, input.token, orgId);
|
|
36
52
|
try {
|
|
37
53
|
const status = await client.status();
|
|
38
54
|
if (!status.integration_available) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAuB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0BxC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAmB;IACrD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAEtE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC7C,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAChC,IAAI,CAAC,OAAO,GAAG,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9B,IAAI,CAAC,MAAM,GAAG,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,13 @@ export interface AiStatus {
|
|
|
15
15
|
/** The OpenAI-compatible gateway URL. Discovered, never hard-coded. */
|
|
16
16
|
public_base_url?: string;
|
|
17
17
|
}
|
|
18
|
+
/** One organization the signed-in user belongs to. */
|
|
19
|
+
export interface OrgRow {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
role: string;
|
|
23
|
+
isPersonal: boolean;
|
|
24
|
+
}
|
|
18
25
|
export interface KeyRow {
|
|
19
26
|
key_id: string;
|
|
20
27
|
key_alias?: string;
|
|
@@ -30,6 +37,17 @@ export declare class ManagementClient {
|
|
|
30
37
|
constructor(dashboardUrl: string, token: string, orgId?: string | undefined);
|
|
31
38
|
private headers;
|
|
32
39
|
private url;
|
|
40
|
+
/**
|
|
41
|
+
* The organizations this token can act on.
|
|
42
|
+
*
|
|
43
|
+
* The dashboard never shows a raw organization id anywhere in its UI, so asking
|
|
44
|
+
* a customer to type one is asking for something they cannot look up. List them
|
|
45
|
+
* and let them pick by name instead.
|
|
46
|
+
*
|
|
47
|
+
* Note this endpoint wraps its payload in {success, data}, unlike the AI
|
|
48
|
+
* endpoints which return the object directly.
|
|
49
|
+
*/
|
|
50
|
+
organizations(): Promise<OrgRow[]>;
|
|
33
51
|
status(): Promise<AiStatus>;
|
|
34
52
|
models(): Promise<GatewayModel[]>;
|
|
35
53
|
keys(): Promise<KeyRow[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../src/core/management.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../src/core/management.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoBD,sDAAsD;AACtD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IALzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAG5B,YAAY,EAAE,MAAM,EACH,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,YAAA;IAKjC,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,GAAG;IAKX;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAelC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQjC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ/B,iFAAiF;IAC3E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAMlH,yDAAyD;WAC5C,YAAY,CAAC,YAAY,SAAwB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAKzF;AAcD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAc3D"}
|
package/dist/core/management.js
CHANGED
|
@@ -20,6 +20,30 @@ export class ManagementClient {
|
|
|
20
20
|
throw new Error('an organization id is required for this call');
|
|
21
21
|
return `${this.root}/api/v1/organizations/${encodeURIComponent(this.orgId)}/ai${suffix}`;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* The organizations this token can act on.
|
|
25
|
+
*
|
|
26
|
+
* The dashboard never shows a raw organization id anywhere in its UI, so asking
|
|
27
|
+
* a customer to type one is asking for something they cannot look up. List them
|
|
28
|
+
* and let them pick by name instead.
|
|
29
|
+
*
|
|
30
|
+
* Note this endpoint wraps its payload in {success, data}, unlike the AI
|
|
31
|
+
* endpoints which return the object directly.
|
|
32
|
+
*/
|
|
33
|
+
async organizations() {
|
|
34
|
+
const res = await requestJson(`${this.root}/api/v1/users/organizations`, {
|
|
35
|
+
headers: { authorization: `Bearer ${this.token}` },
|
|
36
|
+
timeoutMs: 20_000,
|
|
37
|
+
});
|
|
38
|
+
return (res.data ?? [])
|
|
39
|
+
.map((o) => ({
|
|
40
|
+
id: String(o.organization_id ?? '').trim(),
|
|
41
|
+
name: (o.display_name || o.name || o.slug || 'unnamed').trim(),
|
|
42
|
+
role: (o.role ?? '').trim(),
|
|
43
|
+
isPersonal: o.is_personal === true,
|
|
44
|
+
}))
|
|
45
|
+
.filter((o) => o.id.length > 0);
|
|
46
|
+
}
|
|
23
47
|
async status() {
|
|
24
48
|
return requestJson(this.url('/status'), { headers: this.headers(), timeoutMs: 20_000 });
|
|
25
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"management.js","sourceRoot":"","sources":["../../src/core/management.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"management.js","sourceRoot":"","sources":["../../src/core/management.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idcloudhost/ai-connect",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Connect any AI agent (opencode, pi, omp, hermes, OpenClaw, Codex, Claude Code, Goose, Crush, Aider, Continue, Zed …) to the IDCloudHost PaaS OpenAI-compatible AI gateway in one command.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"idcloudhost",
|