@spec0/cli 0.4.1 → 0.5.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 (37) hide show
  1. package/README.md +3 -1
  2. package/dist/commands/api/delete.d.ts +10 -0
  3. package/dist/commands/api/delete.d.ts.map +1 -0
  4. package/dist/commands/api/delete.js +70 -0
  5. package/dist/commands/api/delete.js.map +1 -0
  6. package/dist/commands/api/index.d.ts.map +1 -1
  7. package/dist/commands/api/index.js +2 -0
  8. package/dist/commands/api/index.js.map +1 -1
  9. package/dist/commands/api/show.d.ts +5 -2
  10. package/dist/commands/api/show.d.ts.map +1 -1
  11. package/dist/commands/api/show.js +75 -20
  12. package/dist/commands/api/show.js.map +1 -1
  13. package/dist/commands/auth.d.ts.map +1 -1
  14. package/dist/commands/auth.js +13 -11
  15. package/dist/commands/auth.js.map +1 -1
  16. package/dist/commands/mcp.d.ts +7 -1
  17. package/dist/commands/mcp.d.ts.map +1 -1
  18. package/dist/commands/mcp.js +135 -29
  19. package/dist/commands/mcp.js.map +1 -1
  20. package/dist/commands/mock/delete.d.ts +11 -0
  21. package/dist/commands/mock/delete.d.ts.map +1 -0
  22. package/dist/commands/mock/delete.js +64 -0
  23. package/dist/commands/mock/delete.js.map +1 -0
  24. package/dist/commands/mock/index.d.ts.map +1 -1
  25. package/dist/commands/mock/index.js +2 -0
  26. package/dist/commands/mock/index.js.map +1 -1
  27. package/dist/commands/publish.js +2 -2
  28. package/dist/commands/publish.js.map +1 -1
  29. package/dist/lib/api-client.d.ts +2 -2
  30. package/dist/lib/api-client.d.ts.map +1 -1
  31. package/dist/lib/api-client.js +7 -4
  32. package/dist/lib/api-client.js.map +1 -1
  33. package/dist/lib/platform-defaults.d.ts +29 -4
  34. package/dist/lib/platform-defaults.d.ts.map +1 -1
  35. package/dist/lib/platform-defaults.js +34 -4
  36. package/dist/lib/platform-defaults.js.map +1 -1
  37. package/package.json +6 -6
package/README.md CHANGED
@@ -156,7 +156,8 @@ Every command supports `--output=text|json|yaml`. Progress / logs go to stderr,
156
156
  | -------------------------- | ------------------------------------------------------------------------ |
157
157
  | `spec0 commands` | List every command with its flags, args, and exit codes (JSON-friendly). |
158
158
  | `spec0 commands <pattern>` | Filter the manifest by substring. |
159
- | `spec0 mcp url` | Print the MCP server URL for Cursor / Claude. |
159
+ | `spec0 mcp url` | Print the MCP (Streamable HTTP) server config for Cursor / Claude. |
160
+ | `spec0 mcp install` | Install the MCP server into Cursor and/or Claude (`--client`). |
160
161
 
161
162
  ### Other
162
163
 
@@ -177,6 +178,7 @@ Two paths:
177
178
  | `SPEC0_ORG_ID` | UUID of the org the CLI acts against. | _required_ |
178
179
  | `SPEC0_API_URL` | Platform backend base URL. | `https://api.spec0.io` |
179
180
  | `SPEC0_APP_URL` | Platform web app (used for auth callback + dashboard links). | `https://spec0.io` |
181
+ | `SPEC0_MCP_URL` | MCP server endpoint (single Streamable HTTP URL) emitted by `spec0 mcp url` / `mcp install`. | `https://api.spec0.io/mcp` |
180
182
  | `SPEC0_MODE` | Set to `agent` to flip every default for machine callers: JSON output, no colour, no spinners, no update banner. See the [agent guide](docs/guides/ai-agents.md). | _unset_ (human mode) |
181
183
 
182
184
  `PLATFORM_*` variants are accepted for backwards compatibility; they'll be removed in the next major. Use `spec0 doctor` to see which source each value is resolving from.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * spec0 api delete <ref> — delete a team-scoped API.
3
+ *
4
+ * Uses PublicApisService.deleteTeamApi (`DELETE /api/v1/public/apis/team/{apiId}`).
5
+ * Resolves <ref> (name or UUID) via the shared ref-resolver. Requires `--yes`.
6
+ * Mirrors `spec0 team delete`'s destructive-op contract.
7
+ */
8
+ import { Command } from "commander";
9
+ export declare function registerApiDeleteCommand(api: Command): void;
10
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/api/delete.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,QAiEpD"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * spec0 api delete <ref> — delete a team-scoped API.
3
+ *
4
+ * Uses PublicApisService.deleteTeamApi (`DELETE /api/v1/public/apis/team/{apiId}`).
5
+ * Resolves <ref> (name or UUID) via the shared ref-resolver. Requires `--yes`.
6
+ * Mirrors `spec0 team delete`'s destructive-op contract.
7
+ */
8
+ import chalk from "chalk";
9
+ import { PublicApisService } from "@spec0/sdk-public-platform";
10
+ import { configureSdkAuth, errorStatusCode, is401, extractErrorMessage, } from "../../lib/api-client.js";
11
+ import { requireOrgContext } from "../../lib/auth-context.js";
12
+ import { ExitCode, exitCodeForHttpStatus } from "../../lib/exit-codes.js";
13
+ import { fail, progress, resolveOutputContext, } from "../../lib/output/index.js";
14
+ import { resolveRef, resolveApiId } from "../../lib/ref-resolver.js";
15
+ export function registerApiDeleteCommand(api) {
16
+ api
17
+ .command("delete <ref>")
18
+ .description("Delete a team-scoped API (name or UUID). Requires --yes.")
19
+ .option("--yes", "Skip the confirmation prompt (required for non-interactive use)")
20
+ .option("--org <uuid>", "Org id override")
21
+ .option("--output <format>", "Output format: text, json, or yaml (default: text)")
22
+ .action(async (ref, opts) => {
23
+ const outCtx = resolveOutputContext(opts);
24
+ if (!ref.trim()) {
25
+ fail(outCtx, ExitCode.USAGE, "API ref is required.");
26
+ }
27
+ if (!opts.yes) {
28
+ fail(outCtx, ExitCode.USAGE, "Refusing to delete without confirmation. Pass --yes to proceed.", { hint: "spec0 api delete <ref> --yes" });
29
+ }
30
+ let authCtx;
31
+ try {
32
+ authCtx = requireOrgContext(opts.org);
33
+ }
34
+ catch (e) {
35
+ fail(outCtx, ExitCode.AUTH_MISSING, e.message, {
36
+ hint: "Set SPEC0_TOKEN + SPEC0_ORG_ID, or run 'spec0 auth login'.",
37
+ });
38
+ }
39
+ configureSdkAuth(authCtx);
40
+ let apiId;
41
+ try {
42
+ apiId = await resolveApiId(resolveRef(ref, { defaultOrg: authCtx.orgName }));
43
+ }
44
+ catch (e) {
45
+ fail(outCtx, ExitCode.NOT_FOUND, e.message, {
46
+ hint: "Run 'spec0 api list' to see what exists in this org.",
47
+ });
48
+ }
49
+ try {
50
+ await PublicApisService.deleteTeamApi({ apiId });
51
+ progress(outCtx, chalk.green(`✓ Deleted API ${ref} (${apiId})`));
52
+ }
53
+ catch (err) {
54
+ if (is401(err)) {
55
+ fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
56
+ hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
57
+ });
58
+ }
59
+ const status = errorStatusCode(err);
60
+ const msg = extractErrorMessage(err) ?? err.message;
61
+ if (status === 404) {
62
+ fail(outCtx, ExitCode.NOT_FOUND, `API ${ref} not found.`, {
63
+ hint: "Run 'spec0 api list' to see what exists in this org.",
64
+ });
65
+ }
66
+ fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `api delete failed: ${msg}`);
67
+ }
68
+ });
69
+ }
70
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/api/delete.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAKnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAMnD"}
@@ -4,10 +4,12 @@
4
4
  import { registerApiListCommand } from "./list.js";
5
5
  import { registerApiShowCommand } from "./show.js";
6
6
  import { registerApiChangelogCommand } from "./changelog.js";
7
+ import { registerApiDeleteCommand } from "./delete.js";
7
8
  export function registerApiCommands(program) {
8
9
  const api = program.command("api").description("Manage APIs in your organisation");
9
10
  registerApiListCommand(api);
10
11
  registerApiShowCommand(api);
11
12
  registerApiChangelogCommand(api);
13
+ registerApiDeleteCommand(api);
12
14
  }
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IACnF,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,2BAA2B,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IACnF,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACjC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * spec0 api show <ref> — single-API metadata.
3
3
  *
4
- * Backed by GET /apis/{apiId}/summary. Resolves <ref> via ref-resolver:
5
- * accepts <org>/<api>, bare <api>, or a UUID.
4
+ * Prefers the rich internal GET /apis/{apiId}/summary (operations, env configs,
5
+ * subscriber count). A team/public principal (e.g. a SAT) isn't entitled to
6
+ * that endpoint (403) and some ids aren't present there (404), so it falls back
7
+ * to the leaner V1 team-API row, which the same principal can read.
8
+ * Resolves <ref> via ref-resolver: accepts <org>/<api>, bare <api>, or a UUID.
6
9
  */
7
10
  import { Command } from "commander";
8
11
  export declare function registerApiShowCommand(api: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,QA2DlD"}
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,QA0FlD"}
@@ -1,14 +1,18 @@
1
1
  /**
2
2
  * spec0 api show <ref> — single-API metadata.
3
3
  *
4
- * Backed by GET /apis/{apiId}/summary. Resolves <ref> via ref-resolver:
5
- * accepts <org>/<api>, bare <api>, or a UUID.
4
+ * Prefers the rich internal GET /apis/{apiId}/summary (operations, env configs,
5
+ * subscriber count). A team/public principal (e.g. a SAT) isn't entitled to
6
+ * that endpoint (403) and some ids aren't present there (404), so it falls back
7
+ * to the leaner V1 team-API row, which the same principal can read.
8
+ * Resolves <ref> via ref-resolver: accepts <org>/<api>, bare <api>, or a UUID.
6
9
  */
7
10
  import chalk from "chalk";
8
- import { configureSdkAuth, createOrgApiClient, is401 } from "../../lib/api-client.js";
11
+ import { PublicApisService } from "@spec0/sdk-public-platform";
12
+ import { configureSdkAuth, createOrgApiClient, is401, errorStatusCode, extractErrorMessage, } from "../../lib/api-client.js";
9
13
  import { requireOrgContext } from "../../lib/auth-context.js";
10
- import { ExitCode } from "../../lib/exit-codes.js";
11
- import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
14
+ import { ExitCode, exitCodeForHttpStatus } from "../../lib/exit-codes.js";
15
+ import { emit, fail, progress, resolveOutputContext, } from "../../lib/output/index.js";
12
16
  import { resolveRef, resolveApiId } from "../../lib/ref-resolver.js";
13
17
  import { getDefaultOrgId, getOrgConfig } from "../../lib/config.js";
14
18
  export function registerApiShowCommand(api) {
@@ -41,19 +45,26 @@ export function registerApiShowCommand(api) {
41
45
  }
42
46
  configureSdkAuth(authCtx);
43
47
  const client = createOrgApiClient(authCtx);
48
+ // resolveApiId hits PublicApisService.listTeamApis (V1) for names; UUIDs
49
+ // pass through. A name miss throws "No API named …" → NOT_FOUND.
50
+ let apiId;
44
51
  try {
45
- // resolveApiId now hits PublicApisService.listTeamApis (V1); the
46
- // /apis/{apiId}/summary call below stays on the legacy client because
47
- // its rich shape (operations, env configs, subscriber count) isn't on
48
- // the V1 surface yet.
49
- const apiId = await resolveApiId(parsed);
50
- const res = (await client.getJson(`/apis/${apiId}/summary`));
51
- if (!res.api) {
52
- fail(outCtx, ExitCode.NOT_FOUND, `No API found for ref '${ref}'.`, {
53
- hint: "Run 'spec0 api list' to see what exists in this org.",
52
+ apiId = await resolveApiId(parsed);
53
+ }
54
+ catch (err) {
55
+ if (is401(err)) {
56
+ fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
57
+ hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
54
58
  });
55
59
  }
56
- emit(outCtx, res.api, renderApiShowText);
60
+ fail(outCtx, ExitCode.NOT_FOUND, err.message, {
61
+ hint: "Run 'spec0 api list' to see what exists in this org.",
62
+ });
63
+ }
64
+ let summary;
65
+ try {
66
+ const res = (await client.getJson(`/apis/${apiId}/summary`));
67
+ summary = res.api;
57
68
  }
58
69
  catch (err) {
59
70
  if (is401(err)) {
@@ -61,15 +72,59 @@ export function registerApiShowCommand(api) {
61
72
  hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
62
73
  });
63
74
  }
64
- if (err.message?.includes("No API named")) {
65
- fail(outCtx, ExitCode.NOT_FOUND, err.message, {
66
- hint: "Run 'spec0 api list' to see what exists in this org.",
67
- });
75
+ // 403 (principal not entitled to the internal summary) or 404 (id not
76
+ // on that surface) → fall back to the leaner V1 team-API row. Other
77
+ // statuses map to the stable exit code (5xx SERVER_ERROR, …).
78
+ const status = errorStatusCode(err);
79
+ if (status === 403 || status === 404) {
80
+ summary = await leanSummaryFromList(apiId, parsed);
81
+ if (summary) {
82
+ progress(outCtx, chalk.gray("note: limited metadata — operations, environments and subscribers need internal API access."));
83
+ }
68
84
  }
69
- fail(outCtx, ExitCode.GENERIC, `api show failed: ${err.message}`);
85
+ else {
86
+ const msg = extractErrorMessage(err) ?? err.message;
87
+ fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `api show failed: ${msg}`);
88
+ }
89
+ }
90
+ if (!summary) {
91
+ fail(outCtx, ExitCode.NOT_FOUND, `No API found for ref '${ref}'.`, {
92
+ hint: "Run 'spec0 api list' to see what exists in this org.",
93
+ });
70
94
  }
95
+ emit(outCtx, summary, renderApiShowText);
71
96
  });
72
97
  }
98
+ /**
99
+ * Build a lean ApiSummary from the V1 team-API list, used when the rich
100
+ * internal summary is unavailable to the caller (e.g. a team SAT → 403).
101
+ * Matches on the resolved id first, then the name for a `<org>/<api>` ref.
102
+ */
103
+ async function leanSummaryFromList(apiId, ref) {
104
+ let rows;
105
+ try {
106
+ rows = await PublicApisService.listTeamApis();
107
+ }
108
+ catch {
109
+ // The fallback list is itself unavailable (e.g. an org-key principal has no
110
+ // team → 404). Degrade to "not found" rather than crashing.
111
+ return undefined;
112
+ }
113
+ const wantedName = ref.kind === "name" ? ref.api.toLowerCase() : undefined;
114
+ const row = rows.find((r) => r.apiId === apiId) ??
115
+ (wantedName ? rows.find((r) => (r.apiName ?? "").toLowerCase() === wantedName) : undefined);
116
+ if (!row)
117
+ return undefined;
118
+ return {
119
+ apiId: row.apiId,
120
+ apiName: row.apiName,
121
+ version: row.version ?? undefined,
122
+ description: row.description ?? undefined,
123
+ teamId: row.teamId ?? undefined,
124
+ teamName: row.teamName ?? undefined,
125
+ updatedAt: row.updatedAt ?? undefined,
126
+ };
127
+ }
73
128
  function renderApiShowText(api) {
74
129
  const lines = [];
75
130
  lines.push(chalk.bold(`${api.apiName ?? "?"} ${chalk.gray(`v${api.version ?? "?"}`)}`));
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAoJpD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAoJpD"}
@@ -6,6 +6,7 @@ import { createServer } from "http";
6
6
  import { randomBytes } from "crypto";
7
7
  import open from "open";
8
8
  import { getConfig, getDefaultOrgId, getOrgConfig, setOrgConfig, setDefaultOrg, clearConfig, } from "../lib/config.js";
9
+ import { resolveOrgContext } from "../lib/auth-context.js";
9
10
  import { resolvedPlatformAppUrl, resolvedPlatformApiUrl } from "../lib/platform-defaults.js";
10
11
  import { ExitCode, exit } from "../lib/exit-codes.js";
11
12
  function getAppUrl() {
@@ -15,21 +16,22 @@ function getApiUrl() {
15
16
  return resolvedPlatformApiUrl();
16
17
  }
17
18
  function printAuthStatus() {
18
- const defaultOrgId = getDefaultOrgId();
19
- if (!defaultOrgId) {
19
+ // Reflect the context commands will actually use: SPEC0_* env vars override the stored login
20
+ // (resolveOrgContext applies that precedence). Reading only the stored config here misreported
21
+ // the active target whenever the env vars were set.
22
+ const ctx = resolveOrgContext();
23
+ if (!ctx) {
20
24
  console.log(chalk.yellow("Not logged in. Run 'spec0 auth login'."));
21
25
  console.log(chalk.gray("For CI/CD, set SPEC0_TOKEN and SPEC0_ORG_ID environment variables."));
22
26
  return;
23
27
  }
24
- const org = getOrgConfig(defaultOrgId);
25
- if (!org) {
26
- console.log(chalk.yellow("Org config missing. Run 'spec0 auth login'."));
27
- return;
28
- }
29
- console.log(chalk.green("✓ Logged in"));
30
- console.log(` Org: ${org.name}`);
31
- console.log(` API URL: ${org.apiUrl}`);
32
- console.log(` Key: ${org.keyName ?? "(unnamed)"}`);
28
+ const fromEnv = Boolean((process.env.SPEC0_TOKEN ?? process.env.PLATFORM_API_TOKEN) &&
29
+ (process.env.SPEC0_ORG_ID ?? process.env.PLATFORM_ORG_ID));
30
+ const stored = getOrgConfig(ctx.orgId);
31
+ console.log(chalk.green("✓ Logged in") + (fromEnv ? chalk.gray(" (via environment)") : ""));
32
+ console.log(` Org: ${ctx.orgName ?? ctx.orgId}`);
33
+ console.log(` API URL: ${ctx.apiUrl}`);
34
+ console.log(` Key: ${fromEnv ? "SPEC0_TOKEN (env)" : (stored?.keyName ?? "(unnamed)")}`);
33
35
  }
34
36
  export function registerAuthCommands(program) {
35
37
  // Top-level whoami shorthand
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  /**
2
- * spec0 mcp url | test
2
+ * spec0 mcp url | test | install
3
+ *
4
+ * Helpers for pointing MCP clients (Cursor, Claude) at the Spec0 MCP server.
5
+ * The server is a single Streamable HTTP endpoint; a bearer token is optional
6
+ * (anonymous gets the public docs tools, a token unlocks org-scoped tools). The
7
+ * canonical config references `${SPEC0_TOKEN}` so the secret stays in the
8
+ * environment rather than being written into client config files.
3
9
  */
4
10
  import { Command } from "commander";
5
11
  export declare function registerMcpCommands(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAyDnD"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA6DnD"}
@@ -1,52 +1,70 @@
1
1
  /**
2
- * spec0 mcp url | test
2
+ * spec0 mcp url | test | install
3
+ *
4
+ * Helpers for pointing MCP clients (Cursor, Claude) at the Spec0 MCP server.
5
+ * The server is a single Streamable HTTP endpoint; a bearer token is optional
6
+ * (anonymous gets the public docs tools, a token unlocks org-scoped tools). The
7
+ * canonical config references `${SPEC0_TOKEN}` so the secret stays in the
8
+ * environment rather than being written into client config files.
3
9
  */
4
10
  import chalk from "chalk";
5
11
  import got from "got";
12
+ import { spawnSync } from "node:child_process";
13
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
14
+ import { homedir } from "node:os";
15
+ import { dirname, join } from "node:path";
6
16
  import { getDefaultOrgId, getOrgConfig } from "../lib/config.js";
17
+ import { resolvedPlatformMcpBaseUrl, resolvedPlatformMcpUrl } from "../lib/platform-defaults.js";
7
18
  import { ExitCode, exit, exitCodeForHttpStatus } from "../lib/exit-codes.js";
19
+ /** Server key used under `mcpServers` in every client config we write. */
20
+ const SERVER_KEY = "spec0";
21
+ /** Bearer header value — references the env var so the token never lands on disk. */
22
+ const AUTH_HEADER = "Bearer ${SPEC0_TOKEN}";
23
+ /** Canonical client config block for the Spec0 MCP server. */
24
+ function canonicalServerConfig(mcpUrl) {
25
+ return {
26
+ url: mcpUrl,
27
+ headers: { Authorization: AUTH_HEADER },
28
+ };
29
+ }
30
+ /**
31
+ * Exit early (code 3) unless the user is logged in or has env credentials.
32
+ * Mirrors the sibling MCP commands: a default org from config, or SPEC0_TOKEN
33
+ * with an org id, is enough.
34
+ */
35
+ function requireAuthOrExit() {
36
+ const orgId = process.env.SPEC0_ORG_ID ?? process.env.PLATFORM_ORG_ID ?? getDefaultOrgId();
37
+ const hasEnvToken = Boolean(process.env.SPEC0_TOKEN ?? process.env.PLATFORM_API_TOKEN);
38
+ const hasStoredOrg = Boolean(orgId && getOrgConfig(orgId));
39
+ if (!hasEnvToken && !hasStoredOrg) {
40
+ console.error(chalk.red("Not authenticated. Run 'spec0 auth login'."));
41
+ exit(ExitCode.AUTH_MISSING);
42
+ }
43
+ }
8
44
  export function registerMcpCommands(program) {
9
45
  const mcp = program.command("mcp").description("MCP server URL and config");
10
46
  mcp
11
47
  .command("url")
12
- .description("Print MCP server URL for Cursor/Claude config")
48
+ .description("Print MCP server config for Cursor/Claude")
13
49
  .action(async () => {
14
- const orgId = process.env.PLATFORM_ORG_ID ?? getDefaultOrgId();
15
- if (!orgId || !getOrgConfig(orgId)) {
16
- console.error(chalk.red("Not authenticated. Run 'spec0 auth login'."));
17
- exit(ExitCode.AUTH_MISSING);
18
- }
19
- const org = getOrgConfig(orgId);
20
- const mcpUrl = `https://mcp.spec0.io/org/${orgId}/mcp`;
50
+ requireAuthOrExit();
51
+ const mcpUrl = resolvedPlatformMcpUrl();
21
52
  console.log("Your MCP server URL:");
22
53
  console.log(` ${mcpUrl}`);
23
54
  console.log("");
24
- console.log("Add to Cursor settings:");
25
- console.log(JSON.stringify({
26
- mcpServers: {
27
- spec0: {
28
- url: mcpUrl,
29
- apiKey: org.apiKey,
30
- },
31
- },
32
- }, null, 2));
55
+ console.log("Add to your MCP client config (e.g. Cursor):");
56
+ console.log(JSON.stringify({ mcpServers: { [SERVER_KEY]: canonicalServerConfig(mcpUrl) } }, null, 2));
57
+ console.log("");
58
+ console.log(chalk.dim("SPEC0_TOKEN must be set in the client's environment for auth to succeed."));
33
59
  });
34
60
  mcp
35
61
  .command("test")
36
62
  .description("Verify MCP server is responding")
37
63
  .action(async () => {
38
- const orgId = process.env.PLATFORM_ORG_ID ?? getDefaultOrgId();
39
- if (!orgId || !getOrgConfig(orgId)) {
40
- console.error(chalk.red("Not authenticated. Run 'spec0 auth login'."));
41
- exit(ExitCode.AUTH_MISSING);
42
- }
43
- const org = getOrgConfig(orgId);
44
- const base = org.apiUrl.replace(/\/$/, "");
45
- const url = `${base}/mcp/org/${orgId}/health`;
64
+ requireAuthOrExit();
65
+ const url = `${resolvedPlatformMcpBaseUrl()}/health`;
46
66
  try {
47
- const res = await got.get(url, {
48
- headers: { Authorization: `Bearer ${org.apiKey}`, "X-Org-Id": orgId },
49
- });
67
+ const res = await got.get(url);
50
68
  console.log(chalk.green("MCP gateway OK:"), res.body);
51
69
  }
52
70
  catch (e) {
@@ -55,5 +73,93 @@ export function registerMcpCommands(program) {
55
73
  exit(status ? exitCodeForHttpStatus(status) : ExitCode.NETWORK_ERROR);
56
74
  }
57
75
  });
76
+ mcp
77
+ .command("install")
78
+ .description("Install the Spec0 MCP server into Cursor and/or Claude")
79
+ .option("--client <client>", "Target client: cursor, claude, or all", "all")
80
+ .action(async (opts) => {
81
+ requireAuthOrExit();
82
+ const client = opts.client.toLowerCase();
83
+ if (!["cursor", "claude", "all"].includes(client)) {
84
+ console.error(chalk.red(`Unknown client '${opts.client}'. Expected: cursor, claude, or all.`));
85
+ exit(ExitCode.USAGE);
86
+ }
87
+ const mcpUrl = resolvedPlatformMcpUrl();
88
+ if (client === "cursor" || client === "all") {
89
+ installCursor(mcpUrl);
90
+ }
91
+ if (client === "claude" || client === "all") {
92
+ installClaude(mcpUrl);
93
+ }
94
+ });
95
+ }
96
+ /**
97
+ * Read-merge-write `~/.cursor/mcp.json`, setting `mcpServers.spec0` while
98
+ * preserving any other servers already configured there. Creates the file/dir
99
+ * when absent. Pretty-prints with a trailing newline.
100
+ */
101
+ function installCursor(mcpUrl) {
102
+ const cursorConfigPath = join(homedir(), ".cursor", "mcp.json");
103
+ let config = {};
104
+ if (existsSync(cursorConfigPath)) {
105
+ try {
106
+ const raw = readFileSync(cursorConfigPath, "utf-8").trim();
107
+ if (raw)
108
+ config = JSON.parse(raw);
109
+ }
110
+ catch {
111
+ console.error(chalk.red(`Could not parse existing ${cursorConfigPath}; refusing to overwrite it.`));
112
+ console.error(chalk.dim("Fix or remove the file, then re-run 'spec0 mcp install'."));
113
+ exit(ExitCode.GENERIC);
114
+ }
115
+ }
116
+ const mcpServers = { ...(config.mcpServers ?? {}) };
117
+ mcpServers[SERVER_KEY] = canonicalServerConfig(mcpUrl);
118
+ const merged = { ...config, mcpServers };
119
+ mkdirSync(dirname(cursorConfigPath), { recursive: true });
120
+ writeFileSync(cursorConfigPath, `${JSON.stringify(merged, null, 2)}\n`, "utf-8");
121
+ console.log(chalk.green("Cursor:"), `wrote ${cursorConfigPath}`);
122
+ }
123
+ /**
124
+ * Register the server with Claude via `claude mcp add`. The flag form follows the
125
+ * current Claude CLI: all options precede the server name, the Streamable HTTP
126
+ * transport is selected explicitly (`--transport http`), and the bearer header is
127
+ * passed verbatim so the `${SPEC0_TOKEN}` placeholder is expanded by the client at
128
+ * connect time.
129
+ *
130
+ * If the `claude` binary isn't on PATH (or the invocation fails for any reason)
131
+ * we don't hard-fail: we print the exact command plus the manual JSON so the user
132
+ * can finish by hand.
133
+ */
134
+ function installClaude(mcpUrl) {
135
+ const args = [
136
+ "mcp",
137
+ "add",
138
+ "--transport",
139
+ "http",
140
+ SERVER_KEY,
141
+ mcpUrl,
142
+ "--header",
143
+ `Authorization: ${AUTH_HEADER}`,
144
+ ];
145
+ const printableCommand = `claude mcp add --transport http ${SERVER_KEY} ${mcpUrl} --header "Authorization: ${AUTH_HEADER}"`;
146
+ let result;
147
+ try {
148
+ result = spawnSync("claude", args, { stdio: "inherit" });
149
+ }
150
+ catch {
151
+ // Swallow — handled by the fallback below (e.g. spawn error on some platforms).
152
+ }
153
+ if (result && result.error === undefined && result.status === 0) {
154
+ console.log(chalk.green("Claude:"), "registered MCP server 'spec0'.");
155
+ return;
156
+ }
157
+ // Binary missing or command failed — guide the user instead of failing hard.
158
+ console.log(chalk.yellow("Claude:"), "could not run 'claude mcp add' automatically.");
159
+ console.log("Run this command yourself:");
160
+ console.log(` ${printableCommand}`);
161
+ console.log("");
162
+ console.log("Or add this to your Claude MCP config manually:");
163
+ console.log(JSON.stringify({ mcpServers: { [SERVER_KEY]: { type: "http", ...canonicalServerConfig(mcpUrl) } } }, null, 2));
58
164
  }
59
165
  //# sourceMappingURL=mcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * spec0 mock delete <api> — delete the mock server tied to <api>.
3
+ *
4
+ * No GET/DELETE-by-id-only endpoint, so we resolve the mock server id by
5
+ * listing mocks and filtering by API name or id (same as `mock show`), then
6
+ * PublicMocksService.deletePublicMock (`DELETE /api/v1/public/mocks/{id}`).
7
+ * Requires `--yes`.
8
+ */
9
+ import { Command } from "commander";
10
+ export declare function registerMockDeleteCommand(mock: Command): void;
11
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,QAgEtD"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * spec0 mock delete <api> — delete the mock server tied to <api>.
3
+ *
4
+ * No GET/DELETE-by-id-only endpoint, so we resolve the mock server id by
5
+ * listing mocks and filtering by API name or id (same as `mock show`), then
6
+ * PublicMocksService.deletePublicMock (`DELETE /api/v1/public/mocks/{id}`).
7
+ * Requires `--yes`.
8
+ */
9
+ import chalk from "chalk";
10
+ import { PublicMocksService } from "@spec0/sdk-public-platform";
11
+ import { configureSdkAuth, errorStatusCode, is401, extractErrorMessage, } from "../../lib/api-client.js";
12
+ import { requireOrgContext } from "../../lib/auth-context.js";
13
+ import { ExitCode, exitCodeForHttpStatus } from "../../lib/exit-codes.js";
14
+ import { fail, progress, resolveOutputContext, } from "../../lib/output/index.js";
15
+ export function registerMockDeleteCommand(mock) {
16
+ mock
17
+ .command("delete <api>")
18
+ .description("Delete the mock server tied to <api> (name or UUID). Requires --yes.")
19
+ .option("--yes", "Skip the confirmation prompt (required for non-interactive use)")
20
+ .option("--org <uuid>", "Org id override")
21
+ .option("--output <format>", "Output format: text, json, or yaml (default: text)")
22
+ .action(async (api, opts) => {
23
+ const outCtx = resolveOutputContext(opts);
24
+ if (!api.trim()) {
25
+ fail(outCtx, ExitCode.USAGE, "API ref is required.");
26
+ }
27
+ if (!opts.yes) {
28
+ fail(outCtx, ExitCode.USAGE, "Refusing to delete without confirmation. Pass --yes to proceed.", { hint: "spec0 mock delete <api> --yes" });
29
+ }
30
+ let authCtx;
31
+ try {
32
+ authCtx = requireOrgContext(opts.org);
33
+ }
34
+ catch (e) {
35
+ fail(outCtx, ExitCode.AUTH_MISSING, e.message, {
36
+ hint: "Set SPEC0_TOKEN + SPEC0_ORG_ID, or run 'spec0 auth login'.",
37
+ });
38
+ }
39
+ configureSdkAuth(authCtx);
40
+ try {
41
+ const rows = await PublicMocksService.listPublicMocks();
42
+ const needle = api.toLowerCase();
43
+ const hit = rows.find((r) => (r.apiName ?? "").toLowerCase() === needle || (r.apiId ?? "").toLowerCase() === needle);
44
+ if (!hit?.mockServerId) {
45
+ fail(outCtx, ExitCode.NOT_FOUND, `No mock server found for '${api}'.`, {
46
+ hint: "Run 'spec0 mock list' to see existing mocks.",
47
+ });
48
+ }
49
+ await PublicMocksService.deletePublicMock({ mockServerId: hit.mockServerId });
50
+ progress(outCtx, chalk.green(`✓ Deleted mock server for ${hit.apiName ?? api} (${hit.mockServerId})`));
51
+ }
52
+ catch (err) {
53
+ if (is401(err)) {
54
+ fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
55
+ hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
56
+ });
57
+ }
58
+ const status = errorStatusCode(err);
59
+ const msg = extractErrorMessage(err) ?? err.message;
60
+ fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `mock delete failed: ${msg}`);
61
+ }
62
+ });
63
+ }
64
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/mock/delete.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAMpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAOpD"}
@@ -8,11 +8,13 @@ import { registerMockCreateCommand } from "./create.js";
8
8
  import { registerMockListCommand } from "./list.js";
9
9
  import { registerMockShowCommand } from "./show.js";
10
10
  import { registerMockUrlCommand } from "./url.js";
11
+ import { registerMockDeleteCommand } from "./delete.js";
11
12
  export function registerMockCommands(program) {
12
13
  const mock = program.command("mock").description("Mock server management");
13
14
  registerMockCreateCommand(mock);
14
15
  registerMockListCommand(mock);
15
16
  registerMockShowCommand(mock);
16
17
  registerMockUrlCommand(mock);
18
+ registerMockDeleteCommand(mock);
17
19
  }
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/mock/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAC3E,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC9B,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC9B,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/mock/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAC3E,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC9B,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC9B,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,yBAAyB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"}
@@ -188,8 +188,8 @@ export function registerPublishCommand(program) {
188
188
  spinner.start("Publishing to public registry...");
189
189
  // Wire the @spec0/sdk-public-platform global config from the resolved
190
190
  // org context. The SDK targets `/api/v1/public/apis`; `configureSdkAuth`
191
- // sets `OpenAPI.BASE = ctx.apiUrl + '/api-management'` so the final URL
192
- // matches the legacy `/api-management/api/v1/public/apis` path.
191
+ // sets `OpenAPI.BASE = ctx.apiUrl` (the host root), so the final URL is
192
+ // `<host>/api/v1/public/apis`.
193
193
  configureSdkAuth(ctx);
194
194
  // `semver: boolean` is the new ADR-0026 shape. The SDK type still has the
195
195
  // legacy `versionBump` field; cast through `unknown` until the SDK is
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EACL,iBAAiB,GAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;AAElE,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,WAAW;QACX,gFAAgF;QAChF,oFAAoF;QACpF,4EAA4E;QAC5E,oFAAoF;QACpF,EAAE;QACF,oFAAoF;QACpF,uFAAuF;QACvF,mCAAmC;KACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,MAMhC;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,0FAA0F,CAC3F;SACA,QAAQ,CAAC,aAAa,EAAE,gEAAgE,CAAC;SACzF,MAAM,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,kCAAkC,CAAC;SAClE,MAAM,CACL,eAAe,EACf,kFAAkF,CACnF;SACA,MAAM,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;SACzF,MAAM,CAAC,sBAAsB,EAAE,8BAA8B,CAAC;SAC9D,MAAM,CACL,qBAAqB,EACrB,yGAAyG,CAC1G;SACA,MAAM,CACL,UAAU,EACV,+GAA+G,CAChH;SACA,MAAM,CACL,sBAAsB,EACtB,+DAA+D,EAC/D,WAAW,CACZ;SACA,MAAM,CAAC,wBAAwB,EAAE,gCAAgC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,mCAAmC,CAAC;SACvD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC;SACvC,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,qCAAqC,EAAE,MAAM,CAAC;SACvE,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACpD,MAAM,CACL,KAAK,EACH,OAA2B,EAC3B,IAAsC,EACtC,OAAgB,EAChB,EAAE;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,2BAA2B,CAC1C,OAAO,EACP,GAAG,EACH,IAAI,CAAC,QAA8B,EACnC,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,0GAA0G,CAC3G,CACF,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAuB,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAA0B,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAA2B,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAiC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,MAAkB,CAAC;QAC1C,MAAM,aAAa,GAAI,IAAI,CAAC,UAAqB,IAAI,WAAW,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAuB,CAAC;QAChE,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,CAAwB,IAAI,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,MAAkB,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,CAAE,IAAI,CAAC,QAAoB,CAAC;QAC9C,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,MAAM,CAAC;QAEjD,uEAAuE;QACvE,2EAA2E;QAC3E,gBAAgB;QAChB,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5E,sBAAsB;QACtB,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,yBAAyB,aAAa,2CAA2C,CAClF,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAE/C,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,gFAAgF;QAChF,IAAI,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAC5D,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBACnE,IAAI,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;4BACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBAChF,CAAC;wBACD,OAAO,GAAG,QAAQ,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,sEAAsE;gBACpE,wEAAwE,CAC3E,CACF,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;QAE1C,0EAA0E;QAC1E,YAAY;QACZ,0EAA0E;QAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC/C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC/B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;wBAClC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjF,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;wBACpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;oBACpF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;oBACjE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAED,0EAA0E;QAC1E,cAAc;QACd,0EAA0E;QAC1E,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAyB,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,UAAU;gBAC5B,CAAC,CAAC,WAAW,OAAO,EAAE;gBACtB,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,wBAAwB;oBAC1B,CAAC,CAAC,wBAAwB,CAAC;YAC/B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,mCAAmC,OAAO,IAAI,GAAG,IAAI,WAAW,eAAe,UAAU,EAAE,CAC5F,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,WAAW;QACX,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,gEAAgE;QAChE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,0EAA0E;QAC1E,sEAAsE;QACtE,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,IAAI,GAAG;YACX,WAAW;YACX,OAAO;YACP,KAAK;YACL,WAAW;YACX,UAAU,EAAE,UAAwB;YACpC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACzC,MAAM;YACN,WAAW;YACX,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,YAAY,EAAE,YAAY,IAAI,SAAS;SACH,CAAC;QAEvC,IAAI,CAAC;YACH,kFAAkF;YAClF,oFAAoF;YACpF,iEAAiE;YACjE,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YAC5C,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,IAAI,sBAAsB,OAAO,IAAI,EAAE,EAAE,CAAC;YACjF,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;YAC5C,0EAA0E;YAC1E,0EAA0E;YAC1E,0EAA0E;YAC1E,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,IAAI,EAAE,CAAC;YAErD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;oBACE,WAAW,EAAE,aAAa;oBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO;oBAC/B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,OAAO,EAAE,eAAe;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,UAAU;oBACxC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;oBAC7B,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,KAAK;oBAC3C,SAAS,EAAE,GAAG,UAAU,GAAG,iBAAiB,EAAE;iBAC/C,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,uBAAuB,CAAC;oBACtB,WAAW,EAAE,aAAa;oBAC1B,OAAO,EAAE,eAAe;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,UAAU;oBACxC,SAAS,EAAE,iBAAiB;oBAC5B,MAAM,EAAE,UAAU;iBACnB,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACtF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,2EAA2E;gBAC3E,8DAA8D;gBAC9D,MAAM,OAAO,GAAI,GAAsC,EAAE,IAAI,CAAC;gBAC9D,MAAM,UAAU,GAAI,GAAqD,EAAE,QAAQ;oBACjF,EAAE,IAAI,CAAC;gBACT,MAAM,GAAG,GACP,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,MAAM;oBAClB,iGAAiG,CAAC;gBACpG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/C,wEAAwE;gBACxE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,OAAO,IAAI,mBAAmB,CAAC;gBACnD,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,kCAAkC,WAAW,0CAA0C,CACxF,CACF,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,OAAO,GAAI,GAAsC,EAAE,IAAI,CAAC;YAC9D,MAAM,UAAU,GAAI,GAAqD,EAAE,QAAQ,EAAE,IAAI,CAAC;YAC1F,MAAM,GAAG,GACP,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAK,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YACjF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -35,8 +35,8 @@ export { orgHeaders };
35
35
  * resolved org context. The SDK's request builder formats URLs as
36
36
  * `OpenAPI.BASE + <service-path>`, where service paths look like
37
37
  * `/api/v1/public/apis`. The CLI's stored `apiUrl` is the platform host root
38
- * with no context path, so we append `/api-management` here to match the legacy
39
- * raw HTTP call sites (which prefixed `/api-management/api/v1/public/apis`).
38
+ * and the SDK already carries context-path-less service paths, so `OpenAPI.BASE`
39
+ * is the bare host with no suffix appended.
40
40
  *
41
41
  * `OpenAPI.TOKEN` is set to the org API key — the SDK adds the
42
42
  * `Authorization: Bearer <token>` header automatically. `X-Org-Id` rides on
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAY,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS;QAShC,CAAC,kBAAkB,MAAM,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;SASxD,CAAC,kBAAkB,MAAM,SAAS,OAAO,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;QAU1E,CAAC,kBAAkB,MAAM,SAAS,OAAO,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;WAUtE,CAAC,kBAAkB,MAAM,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;EASzE;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB;;YASxC,CAAC,kBAAkB,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;kBAOlE,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;aAU/D,CAAC,kBACR,MAAM,QACN,OAAO,YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;YAaC,CAAC,kBACP,MAAM,QACN,OAAO,YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;kBAaO,CAAC,kBACb,MAAM,UACJ,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,YAC5D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;eAaI,CAAC,kBAAkB,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EAQ5F;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAa/D"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAY,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS;QAShC,CAAC,kBAAkB,MAAM,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;SASxD,CAAC,kBAAkB,MAAM,SAAS,OAAO,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;QAU1E,CAAC,kBAAkB,MAAM,SAAS,OAAO,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;WAUtE,CAAC,kBAAkB,MAAM,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;EASzE;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB;;YAYxC,CAAC,kBAAkB,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;kBAOlE,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;aAU/D,CAAC,kBACR,MAAM,QACN,OAAO,YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;YAaC,CAAC,kBACP,MAAM,QACN,OAAO,YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;kBAaO,CAAC,kBACb,MAAM,UACJ,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,YAC5D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;eAaI,CAAC,kBAAkB,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EAQ5F;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAa/D"}
@@ -52,7 +52,10 @@ export function createApiClient(org) {
52
52
  }
53
53
  /** Org API key client (discovery, registry, CLI workspace). */
54
54
  export function createOrgApiClient(ctx) {
55
- const baseUrl = ctx.apiUrl;
55
+ // The platform API is served at the host root — the same base `configureSdkAuth()`
56
+ // gives the SDK. Call sites supply their own service path (e.g. `api show`), so we
57
+ // only normalize a trailing slash here and never append a context path.
58
+ const baseUrl = ctx.apiUrl.replace(/\/$/, "");
56
59
  const baseHeaders = {
57
60
  Authorization: `Bearer ${ctx.apiKey}`,
58
61
  "X-Org-Id": ctx.orgId,
@@ -130,8 +133,8 @@ export { orgHeaders };
130
133
  * resolved org context. The SDK's request builder formats URLs as
131
134
  * `OpenAPI.BASE + <service-path>`, where service paths look like
132
135
  * `/api/v1/public/apis`. The CLI's stored `apiUrl` is the platform host root
133
- * with no context path, so we append `/api-management` here to match the legacy
134
- * raw HTTP call sites (which prefixed `/api-management/api/v1/public/apis`).
136
+ * and the SDK already carries context-path-less service paths, so `OpenAPI.BASE`
137
+ * is the bare host with no suffix appended.
135
138
  *
136
139
  * `OpenAPI.TOKEN` is set to the org API key — the SDK adds the
137
140
  * `Authorization: Bearer <token>` header automatically. `X-Org-Id` rides on
@@ -141,7 +144,7 @@ export { orgHeaders };
141
144
  * idempotent and safe to invoke multiple times in the same process.
142
145
  */
143
146
  export function configureSdkAuth(ctx) {
144
- OpenAPI.BASE = `${ctx.apiUrl}/api-management`;
147
+ OpenAPI.BASE = ctx.apiUrl;
145
148
  OpenAPI.TOKEN = ctx.apiKey;
146
149
  OpenAPI.HEADERS = { "X-Org-Id": ctx.orgId };
147
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,GAAqB,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAU/D,SAAS,UAAU,CAAC,KAAa,EAAE,KAA8B;IAC/D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,UAAU,GAAG,CAAC,MAAM,EAAE;KACtC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,OAAiB;YACpD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC7C,GAAG,OAAO;gBACV,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;gBAC5C,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,IAAI,CAAc,IAAY,EAAE,IAAc,EAAE,OAAiB;YACrE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC9C,GAAG,OAAO;gBACV,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;gBAC5C,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,IAAc,EAAE,OAAiB;YACpE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC7C,GAAG,OAAO;gBACV,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;gBAC5C,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,MAAM,CAAc,IAAY,EAAE,OAAiB;YACvD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAChD,GAAG,OAAO;gBACV,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;gBAC5C,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB,CAAC,GAAuB;IACxD,mFAAmF;IACnF,mFAAmF;IACnF,wEAAwE;IACxE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,WAAW,GAA2B;QAC1C,aAAa,EAAE,UAAU,GAAG,CAAC,MAAM,EAAE;QACrC,UAAU,EAAE,GAAG,CAAC,KAAK;KACtB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,KAAK,CAAC,OAAO,CAAc,IAAY,EAAE,OAAgC;YACvE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC7C,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE;gBACnE,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAgC;YAC1D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC7C,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,MAAM,EAAE,qDAAqD;oBAC7D,GAAG,OAAO;iBACX;aACF,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,IAAa,EACb,OAAgC;YAEhC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC9C,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,kBAAkB;oBAC1B,GAAG,OAAO;iBACX;gBACD,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,IAAa,EACb,OAAgC;YAEhC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC7C,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,kBAAkB;oBAC1B,GAAG,OAAO;iBACX;gBACD,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,MAAsE,EACtE,OAAgC;YAEhC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC9C,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE;gBACnE,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,UAAU,CAAc,IAAY,EAAE,OAAgC;YAC1E,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBAChD,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE;gBACnE,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAS,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAuB;IACtD,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3B,OAAO,CAAC,OAAO,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC/C,OAAQ,GAA8C,EAAE,QAAQ,EAAE,UAAU,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,IAAI,IAAa,CAAC;IAClB,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,IAAI,GAAI,GAAyC,EAAE,QAAQ,EAAE,IAAI,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -8,20 +8,45 @@
8
8
  * lint, search, registry, …). Stored on login as `org.apiUrl` and used by
9
9
  * `createOrgApiClient` / `createApiClient`.
10
10
  *
11
- * Defaults below match local dev (Next :3000, Spring :8080 + context path). Override both for
11
+ * Defaults below match local dev (Next :3000, backend :8080 at the host root). Override both for
12
12
  * staging/production. `SPEC0_API_URL` should align with `NEXT_PUBLIC_API_BASE_URL` in
13
- * api-management-ui, not the Next.js site origin alone.
13
+ * the web UI, not the Next.js site origin alone.
14
14
  *
15
15
  * Legacy: `PLATFORM_APP_URL` / `PLATFORM_API_URL` are still accepted as fallbacks.
16
16
  */
17
17
  /** Next.js / browser app — CLI auth (`/cli-auth`) and push output links. */
18
18
  export declare const DEFAULT_PLATFORM_APP_URL = "https://app.spec0.io";
19
19
  /**
20
- * Spring Boot API base (include servlet context path if your deploy uses one).
20
+ * Backend API base. The platform serves at the host root, so this is a bare host
21
+ * with no path suffix; the SDK and raw call sites append their own service paths.
21
22
  */
22
- export declare const DEFAULT_PLATFORM_API_URL = "https://api.spec0.io/api-management";
23
+ export declare const DEFAULT_PLATFORM_API_URL = "https://api.spec0.io";
24
+ /**
25
+ * Canonical MCP (Model Context Protocol) server endpoint. This is the single
26
+ * Streamable HTTP endpoint that MCP clients (Cursor, Claude) connect to over
27
+ * HTTP POST. A bearer token is optional: anonymous access exposes the public
28
+ * docs tools, and an authenticated token unlocks the org-scoped tools. It is a
29
+ * different surface from the REST API base, so it has its own default and its
30
+ * own override env var.
31
+ */
32
+ export declare const DEFAULT_PLATFORM_MCP_URL = "https://api.spec0.io/mcp";
23
33
  /** Web app origin for auth + UI links — never used as the REST base. */
24
34
  export declare function resolvedPlatformAppUrl(): string;
25
35
  /** Backend base for all CLI REST calls — never derived from the app URL. */
26
36
  export declare function resolvedPlatformApiUrl(): string;
37
+ /**
38
+ * Canonical MCP Streamable HTTP endpoint clients connect to. Override with
39
+ * `SPEC0_MCP_URL` (legacy `PLATFORM_MCP_URL` accepted as a fallback) for
40
+ * staging/self-hosted.
41
+ */
42
+ export declare function resolvedPlatformMcpUrl(): string;
43
+ /**
44
+ * MCP base used as the root for sibling MCP paths such as the health probe
45
+ * behind `spec0 mcp test`. With the single Streamable HTTP endpoint the URL is
46
+ * already the base, so for back-compat we only trim a legacy trailing `/sse`
47
+ * (older overrides may still carry it) and otherwise return the endpoint as-is.
48
+ * Derived from the same default/override as {@link resolvedPlatformMcpUrl} so
49
+ * the two never drift apart — e.g. `…/mcp` → `…/mcp/health`.
50
+ */
51
+ export declare function resolvedPlatformMcpBaseUrl(): string;
27
52
  //# sourceMappingURL=platform-defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-defaults.d.ts","sourceRoot":"","sources":["../../src/lib/platform-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAM9E,wEAAwE;AACxE,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C"}
1
+ {"version":3,"file":"platform-defaults.d.ts","sourceRoot":"","sources":["../../src/lib/platform-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAMnE,wEAAwE;AACxE,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD"}
@@ -8,18 +8,28 @@
8
8
  * lint, search, registry, …). Stored on login as `org.apiUrl` and used by
9
9
  * `createOrgApiClient` / `createApiClient`.
10
10
  *
11
- * Defaults below match local dev (Next :3000, Spring :8080 + context path). Override both for
11
+ * Defaults below match local dev (Next :3000, backend :8080 at the host root). Override both for
12
12
  * staging/production. `SPEC0_API_URL` should align with `NEXT_PUBLIC_API_BASE_URL` in
13
- * api-management-ui, not the Next.js site origin alone.
13
+ * the web UI, not the Next.js site origin alone.
14
14
  *
15
15
  * Legacy: `PLATFORM_APP_URL` / `PLATFORM_API_URL` are still accepted as fallbacks.
16
16
  */
17
17
  /** Next.js / browser app — CLI auth (`/cli-auth`) and push output links. */
18
18
  export const DEFAULT_PLATFORM_APP_URL = "https://app.spec0.io";
19
19
  /**
20
- * Spring Boot API base (include servlet context path if your deploy uses one).
20
+ * Backend API base. The platform serves at the host root, so this is a bare host
21
+ * with no path suffix; the SDK and raw call sites append their own service paths.
21
22
  */
22
- export const DEFAULT_PLATFORM_API_URL = "https://api.spec0.io/api-management";
23
+ export const DEFAULT_PLATFORM_API_URL = "https://api.spec0.io";
24
+ /**
25
+ * Canonical MCP (Model Context Protocol) server endpoint. This is the single
26
+ * Streamable HTTP endpoint that MCP clients (Cursor, Claude) connect to over
27
+ * HTTP POST. A bearer token is optional: anonymous access exposes the public
28
+ * docs tools, and an authenticated token unlocks the org-scoped tools. It is a
29
+ * different surface from the REST API base, so it has its own default and its
30
+ * own override env var.
31
+ */
32
+ export const DEFAULT_PLATFORM_MCP_URL = "https://api.spec0.io/mcp";
23
33
  function normalizeOrigin(url) {
24
34
  return url.trim().replace(/\/$/, "");
25
35
  }
@@ -33,4 +43,24 @@ export function resolvedPlatformApiUrl() {
33
43
  const raw = (process.env.SPEC0_API_URL ?? process.env.PLATFORM_API_URL)?.trim();
34
44
  return normalizeOrigin(raw || DEFAULT_PLATFORM_API_URL);
35
45
  }
46
+ /**
47
+ * Canonical MCP Streamable HTTP endpoint clients connect to. Override with
48
+ * `SPEC0_MCP_URL` (legacy `PLATFORM_MCP_URL` accepted as a fallback) for
49
+ * staging/self-hosted.
50
+ */
51
+ export function resolvedPlatformMcpUrl() {
52
+ const raw = (process.env.SPEC0_MCP_URL ?? process.env.PLATFORM_MCP_URL)?.trim();
53
+ return normalizeOrigin(raw || DEFAULT_PLATFORM_MCP_URL);
54
+ }
55
+ /**
56
+ * MCP base used as the root for sibling MCP paths such as the health probe
57
+ * behind `spec0 mcp test`. With the single Streamable HTTP endpoint the URL is
58
+ * already the base, so for back-compat we only trim a legacy trailing `/sse`
59
+ * (older overrides may still carry it) and otherwise return the endpoint as-is.
60
+ * Derived from the same default/override as {@link resolvedPlatformMcpUrl} so
61
+ * the two never drift apart — e.g. `…/mcp` → `…/mcp/health`.
62
+ */
63
+ export function resolvedPlatformMcpBaseUrl() {
64
+ return resolvedPlatformMcpUrl().replace(/\/sse$/, "");
65
+ }
36
66
  //# sourceMappingURL=platform-defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-defaults.js","sourceRoot":"","sources":["../../src/lib/platform-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AAE9E,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAChF,OAAO,eAAe,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAChF,OAAO,eAAe,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"platform-defaults.js","sourceRoot":"","sources":["../../src/lib/platform-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAEnE,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAChF,OAAO,eAAe,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAChF,OAAO,eAAe,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAChF,OAAO,eAAe,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,sBAAsB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spec0/cli",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Spec0 CLI — publish API specs, create mock servers, lint, and interact with the Spec0 platform",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -54,16 +54,16 @@
54
54
  },
55
55
  "homepage": "https://github.com/spec-0/cli#readme",
56
56
  "dependencies": {
57
- "@inquirer/prompts": "^7.2.0",
58
- "@spec0/sdk-public-platform": "^1.2.0",
57
+ "@inquirer/prompts": "^8.5.2",
58
+ "@spec0/sdk-public-platform": "^1.3.1",
59
59
  "@stoplight/spectral-core": "^1.22.0",
60
60
  "@stoplight/spectral-parsers": "^1.0.0",
61
61
  "@stoplight/spectral-rulesets": "^1.22.1",
62
62
  "chalk": "^5.3.0",
63
63
  "cli-table3": "^0.6.5",
64
- "commander": "^12.1.0",
64
+ "commander": "^14.0.3",
65
65
  "conf": "^13.0.0",
66
- "diff": "^7.0.0",
66
+ "diff": "^9.0.0",
67
67
  "got": "^14.4.1",
68
68
  "open": "^10.0.0",
69
69
  "ora": "^8.1.0",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@commitlint/cli": "^20.5.0",
74
- "@commitlint/config-conventional": "^20.5.0",
74
+ "@commitlint/config-conventional": "^21.0.0",
75
75
  "@eslint/js": "^9.39.4",
76
76
  "@types/diff": "^7.0.0",
77
77
  "@types/jest": "^30.0.0",