@sapiom/mcp 0.6.0 → 0.7.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.
@@ -24,10 +24,14 @@ export interface ResolvedEnvironment {
24
24
  /**
25
25
  * Resolve the active environment configuration.
26
26
  *
27
- * Priority: SAPIOM_ENVIRONMENT env var > file's currentEnvironment > "production"
27
+ * Priority: SAPIOM_ENVIRONMENT env var > file's currentEnvironment > "production".
28
+ * The names `prod` and `dev` are accepted as aliases for `production` and
29
+ * `staging`.
28
30
  *
29
- * If the file doesn't exist and environment is "production", returns hardcoded defaults.
30
- * If the file doesn't exist and environment is custom, throws (file must define custom envs).
31
+ * Resolution order for the chosen environment:
32
+ * 1. A matching entry in `~/.sapiom/credentials.json` (carries URLs + creds).
33
+ * 2. A built-in preset (`production`, `staging`) — no file edit required.
34
+ * 3. Otherwise throws (a custom environment must be defined in the file).
31
35
  */
32
36
  export declare function resolveEnvironment(envOverride?: string): Promise<ResolvedEnvironment>;
33
37
  export declare function readCredentials(envName: string): Promise<CredentialEntry | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACrC;AAuBD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC,CA+C9B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGjC;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrE"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACrC;AAuBD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC,CAiD9B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGjC;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrE"}
@@ -1,9 +1,25 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  import * as os from "node:os";
4
- const DEFAULT_APP_URL = "https://app.sapiom.ai";
5
- const DEFAULT_API_URL = "https://api.sapiom.ai";
6
4
  const DEFAULT_ENVIRONMENT = "production";
5
+ /** Friendly aliases → canonical environment name. */
6
+ const ENVIRONMENT_ALIASES = {
7
+ prod: "production",
8
+ dev: "staging",
9
+ };
10
+ /**
11
+ * Built-in environment presets, so the common targets resolve to the right URLs
12
+ * without anyone hand-editing `~/.sapiom/credentials.json`. A matching
13
+ * environment defined in the file always takes precedence over a preset (so a
14
+ * custom override, or one carrying credentials, still wins).
15
+ */
16
+ const ENVIRONMENT_PRESETS = {
17
+ production: { appURL: "https://app.sapiom.ai", apiURL: "https://api.sapiom.ai" },
18
+ staging: { appURL: "https://app.sapiom.dev", apiURL: "https://api.sapiom.dev" },
19
+ };
20
+ function canonicalEnvironmentName(name) {
21
+ return ENVIRONMENT_ALIASES[name] ?? name;
22
+ }
7
23
  function getCredentialsPath() {
8
24
  return path.join(os.homedir(), ".sapiom", "credentials.json");
9
25
  }
@@ -26,15 +42,19 @@ async function writeCredentialsFile(file) {
26
42
  /**
27
43
  * Resolve the active environment configuration.
28
44
  *
29
- * Priority: SAPIOM_ENVIRONMENT env var > file's currentEnvironment > "production"
45
+ * Priority: SAPIOM_ENVIRONMENT env var > file's currentEnvironment > "production".
46
+ * The names `prod` and `dev` are accepted as aliases for `production` and
47
+ * `staging`.
30
48
  *
31
- * If the file doesn't exist and environment is "production", returns hardcoded defaults.
32
- * If the file doesn't exist and environment is custom, throws (file must define custom envs).
49
+ * Resolution order for the chosen environment:
50
+ * 1. A matching entry in `~/.sapiom/credentials.json` (carries URLs + creds).
51
+ * 2. A built-in preset (`production`, `staging`) — no file edit required.
52
+ * 3. Otherwise throws (a custom environment must be defined in the file).
33
53
  */
34
54
  export async function resolveEnvironment(envOverride) {
35
55
  const file = await readCredentialsFile();
36
- const name = envOverride ?? file?.currentEnvironment ?? DEFAULT_ENVIRONMENT;
37
- // Look up in file
56
+ const name = canonicalEnvironmentName(envOverride ?? file?.currentEnvironment ?? DEFAULT_ENVIRONMENT);
57
+ // A matching environment in the file always wins.
38
58
  const envConfig = file?.environments[name];
39
59
  if (envConfig) {
40
60
  return {
@@ -45,12 +65,13 @@ export async function resolveEnvironment(envOverride) {
45
65
  credentials: envConfig.credentials ?? null,
46
66
  };
47
67
  }
48
- // Environment not in file use production defaults or error
49
- if (name === DEFAULT_ENVIRONMENT) {
68
+ // Otherwise fall back to a built-in preset (no creds file needed).
69
+ const preset = ENVIRONMENT_PRESETS[name];
70
+ if (preset) {
50
71
  return {
51
72
  name,
52
- appURL: DEFAULT_APP_URL,
53
- apiURL: DEFAULT_API_URL,
73
+ appURL: preset.appURL,
74
+ apiURL: preset.apiURL,
54
75
  services: {},
55
76
  credentials: null,
56
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapiom/mcp",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Sapiom MCP server for Claude Code — browser-based authentication and API tools",
5
5
  "mcpName": "io.github.sapiom/mcp",
6
6
  "keywords": [
@@ -35,7 +35,7 @@
35
35
  "zod": "^3.25.0",
36
36
  "@sapiom/core": "0.5.0",
37
37
  "@sapiom/fetch": "0.5.0",
38
- "@sapiom/orchestration-core": "^0.3.0"
38
+ "@sapiom/orchestration-core": "^0.3.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^20.11.30",