@x12i/sdk 0.4.0 → 1.1.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/README.md +62 -0
- package/dist/admin-import.d.ts +6 -0
- package/dist/admin-import.js +127 -0
- package/dist/admin-import.js.map +1 -0
- package/dist/admin-mcp.d.ts +3 -0
- package/dist/admin-mcp.js +95 -0
- package/dist/admin-mcp.js.map +1 -0
- package/dist/admin.d.ts +156 -0
- package/dist/admin.js +369 -0
- package/dist/admin.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +68 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +74 -195
- package/dist/client.js +187 -695
- package/dist/client.js.map +1 -1
- package/dist/identity.d.ts +8 -0
- package/dist/identity.js +34 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +6 -22
- package/dist/index.js +6 -12
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +18 -0
- package/dist/init.js +147 -0
- package/dist/init.js.map +1 -0
- package/dist/maturity.d.ts +65 -0
- package/dist/maturity.js +138 -0
- package/dist/maturity.js.map +1 -0
- package/dist/mcp.d.ts +27 -0
- package/dist/mcp.js +168 -0
- package/dist/mcp.js.map +1 -0
- package/dist/protocol.d.ts +38 -0
- package/dist/protocol.js +168 -0
- package/dist/protocol.js.map +1 -0
- package/dist/rank.d.ts +19 -0
- package/dist/rank.js +82 -0
- package/dist/rank.js.map +1 -0
- package/dist/runner.d.ts +22 -0
- package/dist/runner.js +99 -0
- package/dist/runner.js.map +1 -0
- package/package.json +66 -61
- package/LICENSE +0 -21
- package/dist/client.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/registry.d.ts +0 -8
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -21
- package/dist/registry.js.map +0 -1
package/dist/admin.js
ADDED
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { SdkError, DEFAULT_SERVICE_URL } from "./client.js";
|
|
2
|
+
import { runImport } from "./admin-import.js";
|
|
3
|
+
import { runAdminMcp } from "./admin-mcp.js";
|
|
4
|
+
import { runValidationRunner } from "./runner.js";
|
|
5
|
+
/** Dev key the local catalog accepts when SDK_ADMIN_KEY is unset. Never sent to a remote host. */
|
|
6
|
+
export const LOCAL_ADMIN_KEY = "dev-only-x12i-sdk-admin-key";
|
|
7
|
+
function packagePath(name) {
|
|
8
|
+
const slash = name.indexOf("/");
|
|
9
|
+
return name.startsWith("@") && slash > 1 ? `${encodeURIComponent(name.slice(0, slash))}/${encodeURIComponent(name.slice(slash + 1))}` : encodeURIComponent(name);
|
|
10
|
+
}
|
|
11
|
+
export class X12iAdmin {
|
|
12
|
+
baseUrl;
|
|
13
|
+
adminKey;
|
|
14
|
+
fetchImpl;
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
this.baseUrl = (options.baseUrl ?? process.env.X12I_SDK_URL ?? DEFAULT_SERVICE_URL).replace(/\/$/, "");
|
|
17
|
+
this.adminKey = resolveAdminKey(this.baseUrl, options.adminKey);
|
|
18
|
+
this.fetchImpl = options.fetch ?? fetch;
|
|
19
|
+
}
|
|
20
|
+
/** Every catalog package, newest publish first, without README bodies. */
|
|
21
|
+
async catalog() {
|
|
22
|
+
return this.send("GET", "/v1/admin/catalog");
|
|
23
|
+
}
|
|
24
|
+
status() {
|
|
25
|
+
return this.send("GET", "/v1/admin/status");
|
|
26
|
+
}
|
|
27
|
+
refresh(target, budget) {
|
|
28
|
+
return this.send("POST", "/v1/admin/refresh", { target, budget });
|
|
29
|
+
}
|
|
30
|
+
refreshPackage(name) {
|
|
31
|
+
return this.send("POST", "/v1/admin/refresh", { target: "package", name });
|
|
32
|
+
}
|
|
33
|
+
/** Refresh the org listing, then READMEs, then vulnerability scans, until each queue is caught up. */
|
|
34
|
+
async refreshAll(onBatch) {
|
|
35
|
+
const listing = await this.refresh("listing", 40);
|
|
36
|
+
onBatch?.("listing", listing);
|
|
37
|
+
const readmes = await this.untilQuiet("readmes", 20, onBatch);
|
|
38
|
+
const audits = await this.untilQuiet("audits", 200, onBatch);
|
|
39
|
+
return { listing, readmes, audits };
|
|
40
|
+
}
|
|
41
|
+
async untilQuiet(target, budget, onBatch) {
|
|
42
|
+
let last = {};
|
|
43
|
+
for (let attempt = 0; attempt < 40; attempt += 1) {
|
|
44
|
+
last = await this.refresh(target, budget);
|
|
45
|
+
onBatch?.(target, last);
|
|
46
|
+
const pending = Number(last.pending ?? 0);
|
|
47
|
+
const moved = Number(last.updated ?? last.scanned ?? 0);
|
|
48
|
+
if (pending === 0 || moved === 0 || last.stopped === true)
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return last;
|
|
52
|
+
}
|
|
53
|
+
mint(scopes, label = "agent", limits = {}) {
|
|
54
|
+
return this.send("POST", "/v1/admin/capabilities", { scopes, label, ...limits });
|
|
55
|
+
}
|
|
56
|
+
importChunk(chunk) {
|
|
57
|
+
return this.send("POST", "/v1/admin/import", chunk);
|
|
58
|
+
}
|
|
59
|
+
finishImport(expectedRevision, reason = "Import catalog baseline") {
|
|
60
|
+
return this.send("POST", "/v1/admin/import/finish", { expectedRevision, reason });
|
|
61
|
+
}
|
|
62
|
+
exportCatalog(part) {
|
|
63
|
+
return this.send("GET", part ? `/v1/admin/export?part=${part}` : "/v1/admin/export");
|
|
64
|
+
}
|
|
65
|
+
taxonomy(body) {
|
|
66
|
+
return this.send("POST", "/v1/admin/taxonomy", body);
|
|
67
|
+
}
|
|
68
|
+
/** One package as the admin sees it, with the catalog revision an edit must name. */
|
|
69
|
+
getPackage(name) {
|
|
70
|
+
return this.send("GET", `/v1/admin/packages/${packagePath(name)}`);
|
|
71
|
+
}
|
|
72
|
+
/** Change any of a package's fields in one revision. Reads the current revision when it is not given. */
|
|
73
|
+
async editPackage(name, edit, reason, options = {}) {
|
|
74
|
+
const expectedRevision = options.expectedRevision ?? (await this.getPackage(name)).revision;
|
|
75
|
+
return this.send("POST", "/v1/admin/packages/edit", { package: name, expectedRevision, reason, preview: options.preview === true, ...edit });
|
|
76
|
+
}
|
|
77
|
+
products() {
|
|
78
|
+
return this.send("GET", "/v1/admin/products");
|
|
79
|
+
}
|
|
80
|
+
getProduct(id) {
|
|
81
|
+
return this.send("GET", `/v1/admin/products/${encodeURIComponent(id)}`);
|
|
82
|
+
}
|
|
83
|
+
async editProduct(id, edit, reason, options = {}) {
|
|
84
|
+
const expectedRevision = options.expectedRevision ?? (await this.getProduct(id)).revision;
|
|
85
|
+
return this.send("POST", "/v1/admin/products/edit", { product: id, expectedRevision, reason, preview: options.preview === true, ...edit });
|
|
86
|
+
}
|
|
87
|
+
tags() {
|
|
88
|
+
return this.send("GET", "/v1/admin/tags");
|
|
89
|
+
}
|
|
90
|
+
proposeReplacement(body) {
|
|
91
|
+
return this.send("POST", "/v1/admin/replacements", body);
|
|
92
|
+
}
|
|
93
|
+
confirmReplacement(proposalId, expectedRevision) {
|
|
94
|
+
return this.send("POST", "/v1/admin/replacements/confirm", { proposalId, expectedRevision });
|
|
95
|
+
}
|
|
96
|
+
gaps() {
|
|
97
|
+
return this.send("GET", "/v1/admin/gaps");
|
|
98
|
+
}
|
|
99
|
+
lineage() {
|
|
100
|
+
return this.send("GET", "/v1/admin/lineage");
|
|
101
|
+
}
|
|
102
|
+
reconcile() {
|
|
103
|
+
return this.send("GET", "/v1/admin/reconcile");
|
|
104
|
+
}
|
|
105
|
+
npmLinks() {
|
|
106
|
+
return this.send("GET", "/v1/admin/npm-links");
|
|
107
|
+
}
|
|
108
|
+
prepareDraft(body) {
|
|
109
|
+
return this.send("POST", "/v1/admin/drafts", body);
|
|
110
|
+
}
|
|
111
|
+
recordValidation(body) {
|
|
112
|
+
return this.send("POST", "/v1/admin/validations", body);
|
|
113
|
+
}
|
|
114
|
+
publishExample(body) {
|
|
115
|
+
return this.send("POST", "/v1/admin/publications", body);
|
|
116
|
+
}
|
|
117
|
+
withToken(token) {
|
|
118
|
+
return new X12iAdmin({ baseUrl: this.baseUrl, adminKey: token, fetch: this.fetchImpl });
|
|
119
|
+
}
|
|
120
|
+
operation(id) {
|
|
121
|
+
return this.send("GET", `/v1/admin/operations/${encodeURIComponent(id)}`);
|
|
122
|
+
}
|
|
123
|
+
cancelOperation(id) {
|
|
124
|
+
return this.send("POST", `/v1/admin/operations/${encodeURIComponent(id)}/cancel`, {});
|
|
125
|
+
}
|
|
126
|
+
resumeOperation(id) {
|
|
127
|
+
return this.send("POST", `/v1/admin/operations/${encodeURIComponent(id)}/resume`, {});
|
|
128
|
+
}
|
|
129
|
+
exampleBacklog() {
|
|
130
|
+
return this.send("POST", "/v1/admin/example-backlog", {});
|
|
131
|
+
}
|
|
132
|
+
async send(method, path, payload) {
|
|
133
|
+
const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
|
|
134
|
+
method,
|
|
135
|
+
headers: {
|
|
136
|
+
authorization: `Bearer ${this.adminKey}`,
|
|
137
|
+
...(payload ? { "content-type": "application/json" } : {}),
|
|
138
|
+
},
|
|
139
|
+
body: payload ? JSON.stringify(payload) : undefined,
|
|
140
|
+
});
|
|
141
|
+
const text = await response.text();
|
|
142
|
+
let body = {};
|
|
143
|
+
try {
|
|
144
|
+
body = text ? JSON.parse(text) : {};
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
throw new SdkError(`Admin request returned ${response.status}: ${text.replace(/\s+/g, " ").slice(0, 180)}`, response.status, "ADMIN_REQUEST_FAILED");
|
|
148
|
+
}
|
|
149
|
+
if (!response.ok) {
|
|
150
|
+
const message = body && typeof body === "object" && "error" in body ? String(body.error?.message ?? response.status) : `Admin request failed (${response.status})`;
|
|
151
|
+
throw new SdkError(message, response.status, "ADMIN_REQUEST_FAILED");
|
|
152
|
+
}
|
|
153
|
+
return body;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export async function runAdminCli(args) {
|
|
157
|
+
const [command, ...rest] = args;
|
|
158
|
+
if (!command || command === "help") {
|
|
159
|
+
process.stdout.write(adminHelp());
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const admin = new X12iAdmin();
|
|
163
|
+
if (command === "catalog") {
|
|
164
|
+
const catalog = await admin.catalog();
|
|
165
|
+
process.stdout.write(`${JSON.stringify(catalog, null, 2)}\n`);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (command === "status") {
|
|
169
|
+
process.stdout.write(`${JSON.stringify(await admin.status(), null, 2)}\n`);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (command === "mcp") {
|
|
173
|
+
await runAdminMcp(admin);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (command === "runner") {
|
|
177
|
+
const directory = rest.find((arg) => !arg.startsWith("--"));
|
|
178
|
+
process.stdout.write(`${JSON.stringify(await runValidationRunner(admin, directory), null, 2)}\n`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (command === "examples") {
|
|
182
|
+
const minted = await admin.mint(["catalog:read", "metadata:write"], "examples");
|
|
183
|
+
const scoped = admin.withToken(minted.token);
|
|
184
|
+
process.stdout.write(`${JSON.stringify(await scoped.exampleBacklog(), null, 2)}\n`);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (command === "package" || command === "edit" || command === "products" || command === "product" || command === "tags") {
|
|
188
|
+
const minted = await admin.mint(["catalog:read", "metadata:write"], command);
|
|
189
|
+
const scoped = admin.withToken(minted.token);
|
|
190
|
+
const target = rest[0] && !rest[0].startsWith("--") ? rest[0] : "";
|
|
191
|
+
const flags = parseFlags(rest.slice(target ? 1 : 0));
|
|
192
|
+
let result;
|
|
193
|
+
if (command === "tags")
|
|
194
|
+
result = await scoped.tags();
|
|
195
|
+
else if (command === "products")
|
|
196
|
+
result = await scoped.products();
|
|
197
|
+
else if (!target) {
|
|
198
|
+
process.stderr.write(`x12i-sdk admin ${command} <${command === "product" ? "product-id" : "package"}>\n`);
|
|
199
|
+
process.exitCode = 1;
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
else if (command === "package")
|
|
203
|
+
result = await scoped.getPackage(target);
|
|
204
|
+
else if (command === "product" && !hasEdit(flags))
|
|
205
|
+
result = await scoped.getProduct(target);
|
|
206
|
+
else {
|
|
207
|
+
const reason = flags.single("reason");
|
|
208
|
+
if (!reason) {
|
|
209
|
+
process.stderr.write("--reason is required for an edit\n");
|
|
210
|
+
process.exitCode = 1;
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const options = { preview: flags.has("preview") };
|
|
214
|
+
result = command === "product"
|
|
215
|
+
? await scoped.editProduct(target, { description: flags.single("description"), useCases: flags.useCases(), tags: flags.list("tags") }, reason, options)
|
|
216
|
+
: await scoped.editPackage(target, {
|
|
217
|
+
description: flags.single("description"),
|
|
218
|
+
useCases: flags.useCases(),
|
|
219
|
+
tags: flags.list("tags"),
|
|
220
|
+
addTags: flags.many("add-tag"),
|
|
221
|
+
removeTags: flags.many("remove-tag"),
|
|
222
|
+
tiers: flags.list("tiers"),
|
|
223
|
+
primary: flags.single("primary"),
|
|
224
|
+
product: flags.single("product"),
|
|
225
|
+
lifecycle: flags.single("lifecycle"),
|
|
226
|
+
}, reason, options);
|
|
227
|
+
}
|
|
228
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
if (command === "import") {
|
|
232
|
+
const dryRun = rest.includes("--dry-run");
|
|
233
|
+
const fromFlag = rest.indexOf("--from");
|
|
234
|
+
const root = fromFlag >= 0 ? rest[fromFlag + 1] : "";
|
|
235
|
+
if (!root) {
|
|
236
|
+
process.stderr.write("x12i-sdk admin import --from <catalog> [--dry-run]\n");
|
|
237
|
+
process.exitCode = 1;
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
const minted = await admin.mint(["catalog:read", "metadata:write", "examples:prepare", "examples:validate", "examples:publish", "release:prepare"], "import");
|
|
241
|
+
const scoped = admin.withToken(minted.token);
|
|
242
|
+
const result = await runImport(root, scoped, dryRun);
|
|
243
|
+
process.stdout.write(`${JSON.stringify({ ...result, capability: minted.id }, null, 2)}\n`);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
if (command === "export" || command === "gaps" || command === "lineage" || command === "reconcile" || command === "npm-links") {
|
|
247
|
+
const minted = await admin.mint(["catalog:read", "release:prepare"], command);
|
|
248
|
+
const reader = admin.withToken(minted.token);
|
|
249
|
+
const result = command === "export" ? await reader.exportCatalog() : command === "gaps" ? await reader.gaps() : command === "lineage" ? await reader.lineage() : command === "reconcile" ? await reader.reconcile() : await reader.npmLinks();
|
|
250
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (command === "refresh") {
|
|
254
|
+
const target = rest[0];
|
|
255
|
+
if (!target) {
|
|
256
|
+
const result = await admin.refreshAll((kind, batch) => {
|
|
257
|
+
process.stderr.write(`${kind} ${JSON.stringify(batch)}\n`);
|
|
258
|
+
});
|
|
259
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (target.startsWith("@") || target.includes("/")) {
|
|
263
|
+
process.stdout.write(`${JSON.stringify(await admin.refreshPackage(target), null, 2)}\n`);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (target === "listing" || target === "readmes" || target === "audits") {
|
|
267
|
+
const result = target === "listing" ? await admin.refresh("listing", 40) : await admin.refresh(target);
|
|
268
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
process.stderr.write(`Unknown refresh target ${target}\n${adminHelp()}`);
|
|
272
|
+
process.exitCode = 1;
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
process.stderr.write(adminHelp());
|
|
276
|
+
process.exitCode = 1;
|
|
277
|
+
}
|
|
278
|
+
/** --name value pairs. Repeated flags collect; --tags and --tiers take comma lists. */
|
|
279
|
+
export function parseFlags(args) {
|
|
280
|
+
const values = new Map();
|
|
281
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
282
|
+
const arg = args[index] ?? "";
|
|
283
|
+
if (!arg.startsWith("--"))
|
|
284
|
+
continue;
|
|
285
|
+
const eq = arg.indexOf("=");
|
|
286
|
+
const name = arg.slice(2, eq > 0 ? eq : undefined);
|
|
287
|
+
const next = args[index + 1];
|
|
288
|
+
const value = eq > 0 ? arg.slice(eq + 1) : next !== undefined && !next.startsWith("--") ? (index += 1, next) : "";
|
|
289
|
+
values.set(name, [...(values.get(name) ?? []), value]);
|
|
290
|
+
}
|
|
291
|
+
const many = (name) => values.get(name)?.map((value) => value.trim()).filter(Boolean);
|
|
292
|
+
return {
|
|
293
|
+
has: (name) => values.has(name),
|
|
294
|
+
single: (name) => values.get(name)?.at(-1),
|
|
295
|
+
many,
|
|
296
|
+
list: (name) => values.has(name) ? (values.get(name) ?? []).flatMap((value) => value.split(",")).map((value) => value.trim()).filter(Boolean) : undefined,
|
|
297
|
+
useCases: () => values.has("clear-use-cases") ? [] : many("use-case"),
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
function hasEdit(flags) {
|
|
301
|
+
return ["description", "use-case", "clear-use-cases", "tags"].some((name) => flags.has(name));
|
|
302
|
+
}
|
|
303
|
+
function adminHelp() {
|
|
304
|
+
return `x12i-sdk admin catalog
|
|
305
|
+
Print the entire catalog as JSON. Newest publish is first. README bodies stay on each package.
|
|
306
|
+
|
|
307
|
+
x12i-sdk admin package <package>
|
|
308
|
+
Print a package's description, use cases, product, tags, tiers, and lifecycle.
|
|
309
|
+
|
|
310
|
+
x12i-sdk admin edit <package> --reason <text> [--description <text>] [--use-case <text>]... [--clear-use-cases]
|
|
311
|
+
[--tags a,b] [--add-tag <tag>]... [--remove-tag <tag>]... [--tiers data,logic] [--primary <tier>]
|
|
312
|
+
[--product <id>] [--lifecycle active|experimental|deprecated|superseded|archived] [--preview]
|
|
313
|
+
Save one revision. --use-case replaces the list. A new tag name creates the tag. --preview saves nothing.
|
|
314
|
+
|
|
315
|
+
x12i-sdk admin products
|
|
316
|
+
x12i-sdk admin product <id> [--reason <text> --description <text> --use-case <text>... --tags a,b]
|
|
317
|
+
List products, or show or edit one.
|
|
318
|
+
|
|
319
|
+
x12i-sdk admin tags
|
|
320
|
+
List tags with their package counts.
|
|
321
|
+
|
|
322
|
+
x12i-sdk admin status
|
|
323
|
+
Package count, READMEs still due, and vulnerability scans still due.
|
|
324
|
+
|
|
325
|
+
x12i-sdk admin refresh
|
|
326
|
+
Update the org listing, then READMEs, then vulnerability scans.
|
|
327
|
+
|
|
328
|
+
x12i-sdk admin refresh listing|readmes|audits
|
|
329
|
+
Run one of those updates.
|
|
330
|
+
|
|
331
|
+
x12i-sdk admin refresh <package>
|
|
332
|
+
Update one package's record, README, and vulnerability scan.
|
|
333
|
+
|
|
334
|
+
x12i-sdk admin import --from <catalog> [--dry-run]
|
|
335
|
+
Check the handover hashes and import the managed catalog. --dry-run does not upload.
|
|
336
|
+
|
|
337
|
+
x12i-sdk admin export|gaps|lineage|reconcile|npm-links
|
|
338
|
+
Read the managed catalog. npm-links does not open pull requests.
|
|
339
|
+
|
|
340
|
+
x12i-sdk admin examples
|
|
341
|
+
Record a task for each package that still has no verified public example.
|
|
342
|
+
|
|
343
|
+
x12i-sdk admin runner <usage-directory>
|
|
344
|
+
Install with scripts disabled, run each consumer, and store a fixture validation.
|
|
345
|
+
|
|
346
|
+
x12i-sdk admin mcp
|
|
347
|
+
Admin MCP server. Set X12I_SDK_ADMIN_TOKEN to reuse a capability. Publishing tools dry-run unless asked.
|
|
348
|
+
|
|
349
|
+
Set X12I_SDK_URL for the catalog. Set X12I_SDK_ADMIN_KEY for any host other than 127.0.0.1 or localhost.
|
|
350
|
+
`;
|
|
351
|
+
}
|
|
352
|
+
function resolveAdminKey(baseUrl, explicit) {
|
|
353
|
+
if (explicit)
|
|
354
|
+
return explicit;
|
|
355
|
+
const fromEnv = process.env.X12I_SDK_ADMIN_KEY;
|
|
356
|
+
if (fromEnv)
|
|
357
|
+
return fromEnv;
|
|
358
|
+
let host = "";
|
|
359
|
+
try {
|
|
360
|
+
host = new URL(baseUrl).hostname;
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
host = "";
|
|
364
|
+
}
|
|
365
|
+
if (host === "127.0.0.1" || host === "localhost" || host === "[::1]")
|
|
366
|
+
return LOCAL_ADMIN_KEY;
|
|
367
|
+
throw new SdkError("Set X12I_SDK_ADMIN_KEY to use admin commands against this service.", 0, "ADMIN_KEY_REQUIRED");
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { X12iClient } from "./client.js";
|
|
3
|
+
import { loadOrCreateIdentity } from "./identity.js";
|
|
4
|
+
import { parseInitArgs, writeInit } from "./init.js";
|
|
5
|
+
import { runAdminCli } from "./admin.js";
|
|
6
|
+
import { serveMcp } from "./mcp.js";
|
|
7
|
+
const [command, ...rest] = process.argv.slice(2);
|
|
8
|
+
if (command === "mcp") {
|
|
9
|
+
await serveMcp(new X12iClient());
|
|
10
|
+
}
|
|
11
|
+
else if (command === "init") {
|
|
12
|
+
const options = parseInitArgs(rest);
|
|
13
|
+
const identity = await loadOrCreateIdentity();
|
|
14
|
+
const files = await writeInit(options);
|
|
15
|
+
process.stdout.write(`${JSON.stringify({ identity: identity.fingerprint, files }, null, 2)}\n`);
|
|
16
|
+
}
|
|
17
|
+
else if (command === "admin") {
|
|
18
|
+
await runAdminCli(rest);
|
|
19
|
+
}
|
|
20
|
+
else if (command === "readme" || command === "package") {
|
|
21
|
+
const name = rest[0];
|
|
22
|
+
if (!name) {
|
|
23
|
+
process.stderr.write(`Usage: x12i-sdk ${command} <package>\n`);
|
|
24
|
+
process.exitCode = 1;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const view = command === "readme" ? await new X12iClient().readme(name) : await new X12iClient().package(name);
|
|
28
|
+
process.stdout.write(command === "readme" ? formatReadme(view) : `${JSON.stringify(view, null, 2)}\n`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
process.stdout.write(`x12i-sdk readme <package>
|
|
33
|
+
Print the cached README, then the current one when the catalog knows the package was published again.
|
|
34
|
+
|
|
35
|
+
x12i-sdk package <package>
|
|
36
|
+
Print the cached package record, then refresh it when a newer publish is known.
|
|
37
|
+
|
|
38
|
+
x12i-sdk mcp
|
|
39
|
+
Start the stdio MCP server. Cursor, Claude Code, and Codex use this to search the @x12i catalog.
|
|
40
|
+
|
|
41
|
+
x12i-sdk init [--cursor] [--claude] [--codex] [--all] [--global] [--dir path]
|
|
42
|
+
Write the x12i MCP server into the current project. Cursor is the default.
|
|
43
|
+
--all writes Cursor, Claude Code, and Codex. --global writes user-level config for every agent.
|
|
44
|
+
|
|
45
|
+
x12i-sdk admin catalog
|
|
46
|
+
Print the entire catalog as JSON. x12i-sdk admin shows the update commands.
|
|
47
|
+
|
|
48
|
+
Set X12I_SDK_URL to point at a local catalog service. The default host is https://x12i-sdk.x12i.com.
|
|
49
|
+
Admin updates use X12I_SDK_ADMIN_KEY. Reviews and reports stay on the commands above.
|
|
50
|
+
`);
|
|
51
|
+
}
|
|
52
|
+
function formatReadme(view) {
|
|
53
|
+
if (view.source === "registry") {
|
|
54
|
+
return `The catalog service was unreachable. This README is from the npm registry.\n\n${view.readme}\n`;
|
|
55
|
+
}
|
|
56
|
+
if (view.cached.readmeStatus === "fresh") {
|
|
57
|
+
return `${view.name}\n\n${view.readme || "No README yet."}\n`;
|
|
58
|
+
}
|
|
59
|
+
const cachedText = view.cached.readme || "No README cached yet.";
|
|
60
|
+
if (view.refreshError) {
|
|
61
|
+
return `${view.name} · cached\n\n${cachedText}\n\nRefresh failed: ${view.refreshError}\n`;
|
|
62
|
+
}
|
|
63
|
+
if (!view.updated) {
|
|
64
|
+
return `${view.name} · cached\n\n${cachedText}\n\nThe latest publish matches this README.\n`;
|
|
65
|
+
}
|
|
66
|
+
return `${view.name} · cached\n\n${cachedText}\n\n---\nupdated\n\n${view.readme || "No README yet."}\n`;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|