@warmio/mcp 11.0.5 → 11.0.9

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 CHANGED
@@ -6,16 +6,77 @@
6
6
  npx -y @warmio/mcp@latest install
7
7
  ```
8
8
 
9
- Each client starts the server with:
9
+ Each client starts the server with the canonical latest launcher spec from `@warmio/contracts/mcp`:
10
10
 
11
11
  ```sh
12
12
  npx -y @warmio/mcp@latest mcp
13
13
  ```
14
14
 
15
- The server exposes financial-context read tools plus the automation operation catalog. The installer
16
- stores the local credential with owner-only file permissions. Importing `@warmio/mcp` exposes the
17
- library API without starting the CLI.
15
+ The server exposes financial-context read tools plus the automation operation catalog. The installer stores the local credential with owner-only file permissions. Importing `@warmio/mcp` exposes the library API without starting the CLI.
18
16
 
19
- ## Cursor Marketplace
17
+ ## OpenCode 2
20
18
 
21
- For Cursor users, install the official [Warm plugin](https://cursor.com/marketplace) directly from the Cursor Marketplace for one-click setup. The plugin is also available at [`.cursor-plugin/`](.cursor-plugin/) in this package.
19
+ The installer configures OpenCode 2 using `mcp.servers.warm`. It uses an existing
20
+ `~/.config/opencode/opencode.jsonc` file when present, otherwise `opencode.json`.
21
+ Comments and unrelated settings remain in place.
22
+
23
+ When reinstalling, the installer moves existing OpenCode 1 MCP server entries under
24
+ `mcp.servers`. It converts `enabled`, numeric timeouts, and OAuth field names to their
25
+ OpenCode 2 equivalents. Conflicting old and new entries for another server stop the
26
+ installation without writing files. The installer replaces Warm's own entry after
27
+ the existing reinstall confirmation, or when `--force` is supplied.
28
+
29
+ The installer migrates MCP settings only. Migrate the rest of an OpenCode 1 configuration
30
+ using OpenCode's [migration guide](https://opencode.ai/v2/docs/migrate-v1/) before using
31
+ OpenCode 2. New installer output targets OpenCode 2 rather than OpenCode 1.
32
+
33
+ No plugin is required. OpenCode 2 discovers Warm's tools through MCP and enables Code
34
+ Mode by default. Warm still requires Plus or Pro and staying within the plan's
35
+ bank-login limit.
36
+
37
+ ## Environment precedence
38
+
39
+ Credential and config resolution is fixed and never loaded from ancestor or project `.env` files by default:
40
+
41
+ 1. `WARM_API_KEY` — direct process environment value wins over every file-backed credential.
42
+ 2. `WARM_API_KEY_FILE` — overrides the default stored-key path (`$WARM_CONFIG_DIR/api_key` or the platform default Warm config directory).
43
+ 3. `WARM_CONFIG_DIR` — overrides the default Warm config directory used for the stored API key file.
44
+
45
+ API traffic always uses the canonical `API_ORIGIN` (`https://app.warm.io`). The only supported endpoint override is an explicit programmatic `apiUrl` option passed by trusted callers such as tests; ambient `WARM_API_URL` and project `.env` values are ignored.
46
+
47
+ Optional local development: set `WARM_LOAD_PROJECT_ENV=1` before starting the CLI to load only `process.cwd()/.env`. Even with that opt-in, `WARM_API_KEY`, `WARM_API_KEY_FILE`, `WARM_CONFIG_DIR`, and `WARM_API_URL` are blocked and must be supplied through the process environment or installer storage instead.
48
+
49
+ ## Launcher integrity contract
50
+
51
+ Setup commands and generated launcher configs use the approved `@warmio/mcp@latest` tag. The manifest separately retains the exact release `packageSpec` and `packageVersion` for provenance. Its `packageIntegrity` contract applies to that exact release. The `.github/workflows/publish-mcp.yml` workflow requires an exact merged source SHA and npm registry readback for that version. A registry integrity value does not attest which release the floating `latest` tag resolves to. Until that gate passes, treat `registryIntegrity: null` as an external deployment requirement rather than a local hash to copy by hand.
52
+
53
+ Set `WARM_MCP_REQUIRE_REGISTRY_INTEGRITY=1` to require an exact registry readback. When the manifest still has `registryIntegrity: null`, set `WARM_MCP_REGISTRY_INTEGRITY` to the trusted workflow's `dist.integrity` value. The gate rejects missing or malformed values. Default installs and launcher generation remain allowed until this opt-in gate is enabled.
54
+
55
+ ## Claude Desktop Extension
56
+
57
+ For Claude Desktop users, the fixed-tree extension is produced only by the guarded, context-aware flow:
58
+
59
+ ```sh
60
+ /absolute/worktree/tools/tasks/run-plan-gate.mjs \
61
+ --target-id P0_MCPB_FIXED_TREE \
62
+ --argv-json '[\"/usr/bin/node\",\"/absolute/worktree/libraries/mcp/mcpb/build.js\",\"--contracts-tar\",\"/absolute/worktree/libraries/mcp/mcpb/.inputs/contracts.tgz\",\"--mcp-tar\",\"/absolute/worktree/libraries/mcp/mcpb/.inputs/mcp.tgz\"]' \
63
+ --context /absolute/context.json
64
+ ```
65
+
66
+ The flow consumes only the exact local closure tarballs, materializes and packs offline, then
67
+ securely extracts and smokes the unpacked MCPB. It produces `warm.mcpb`; registry and network
68
+ fallbacks are forbidden.
69
+
70
+ ## Cursor Plugin
71
+
72
+ The official Cursor plugin packaging lives in a separate public repository:
73
+
74
+ **https://github.com/jasonstockman/warm-cursor-plugin**
75
+
76
+ This package (`@warmio/mcp`) is the MCP implementation. The public plugin repo contains only:
77
+
78
+ - `.cursor-plugin/plugin.json` — Plugin metadata and marketplace configuration
79
+ - `skills/warm/SKILL.md` — Agent-facing tool documentation
80
+ - User-facing installation and usage docs
81
+
82
+ When tool schemas or behavior change here, update `skills/warm/SKILL.md` in the plugin repo to keep agent docs in sync.
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // This entrypoint is intentionally separate from the package root so importing
3
3
  // @warmio/mcp remains side-effect free while the executable can dispatch CLI commands.
4
4
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5
- import { WARM_MCP_INSTALLER_COMMAND, WARM_MCP_SERVER_COMMAND } from '@warmio/contracts/mcp';
5
+ import { assertWarmMcpLauncherContract, maybeRequireWarmMcpRegistryIntegrity, WARM_MCP_MANIFEST, WARM_MCP_INSTALLER_COMMAND, WARM_MCP_SERVER_COMMAND, } from '@warmio/contracts/mcp';
6
6
  import { install } from './install.js';
7
7
  import { loadDotEnv } from './load-env.js';
8
8
  import { createWarmServer } from './server.js';
@@ -13,6 +13,8 @@ async function main(args) {
13
13
  loadDotEnv();
14
14
  const command = args[0] || (process.stdin.isTTY && process.stdout.isTTY ? 'install' : 'mcp');
15
15
  if (command === 'mcp') {
16
+ assertWarmMcpLauncherContract(WARM_MCP_MANIFEST);
17
+ maybeRequireWarmMcpRegistryIntegrity(WARM_MCP_MANIFEST.packageIntegrity.registryIntegrity);
16
18
  const server = createWarmServer();
17
19
  await server.connect(new StdioServerTransport());
18
20
  return;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,+EAA+E;AAC/E,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,KAAK;IACZ,OAAO,CAAC,GAAG,CAAC,UAAU,0BAA0B,gBAAgB,uBAAuB,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,UAAU,EAAE,CAAC;IACb,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7F,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QACjF,IAAI,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,+EAA+E;AAC/E,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,KAAK;IACZ,OAAO,CAAC,GAAG,CAAC,UAAU,0BAA0B,gBAAgB,uBAAuB,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,UAAU,EAAE,CAAC;IACb,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7F,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;QACjD,oCAAoC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QACjF,IAAI,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-paths.d.ts","sourceRoot":"","sources":["../src/config-paths.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,IAAI,MAAM,CAUzC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE"}
1
+ {"version":3,"file":"config-paths.d.ts","sourceRoot":"","sources":["../src/config-paths.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,IAAI,MAAM,CAazC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE"}
@@ -3,13 +3,13 @@ import * as os from 'node:os';
3
3
  import * as path from 'node:path';
4
4
  import { WARM_MCP_CREDENTIALS } from '@warmio/contracts/mcp';
5
5
  export function getWarmConfigDir() {
6
- if (process.env.WARM_CONFIG_DIR?.trim())
7
- return process.env.WARM_CONFIG_DIR.trim();
6
+ if (process.env['WARM_CONFIG_DIR']?.trim())
7
+ return process.env['WARM_CONFIG_DIR'].trim();
8
8
  if (process.platform === 'win32') {
9
- return path.join(process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'), 'Warm');
9
+ return path.join(process.env['APPDATA'] || path.join(os.homedir(), 'AppData', 'Roaming'), 'Warm');
10
10
  }
11
- if (process.env.XDG_CONFIG_HOME?.trim())
12
- return path.join(process.env.XDG_CONFIG_HOME.trim(), 'warm');
11
+ if (process.env['XDG_CONFIG_HOME']?.trim())
12
+ return path.join(process.env['XDG_CONFIG_HOME'].trim(), 'warm');
13
13
  return process.platform === 'darwin'
14
14
  ? path.join(os.homedir(), 'Library', 'Application Support', 'Warm')
15
15
  : path.join(os.homedir(), '.config', 'warm');
@@ -1 +1 @@
1
- {"version":3,"file":"config-paths.js","sourceRoot":"","sources":["../src/config-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACnF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IACzE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config-paths.js","sourceRoot":"","sources":["../src/config-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;IACzF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EACvE,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IACzE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAsCA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAMF,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,KAAK,CAAC;IACnC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7E;AA2WD,2EAA2E;AAC3E,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCzE"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AA4CA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAcF,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,KAAK,CAAC;IACnC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7E;AAucD,2EAA2E;AAC3E,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCzE"}
package/dist/install.js CHANGED
@@ -3,9 +3,15 @@ import * as fs from 'node:fs';
3
3
  import * as os from 'node:os';
4
4
  import * as path from 'node:path';
5
5
  import { createInterface } from 'node:readline';
6
+ import { applyEdits, modify, parse } from 'jsonc-parser';
7
+ import { z } from 'zod';
6
8
  import { API_ORIGIN, WARM_API_KEY_PREFIX } from '@warmio/contracts/api';
7
- import { WARM_MCP_CLIENTS, WARM_MCP_PROJECT_CONFIGS, WARM_MCP_SERVER_CONFIG, } from '@warmio/contracts/mcp';
9
+ import { assertWarmMcpLauncherContract, maybeRequireWarmMcpRegistryIntegrity, WARM_MCP_CLIENTS, WARM_MCP_MANIFEST, WARM_MCP_PROJECT_CONFIGS, WARM_MCP_SERVER_CONFIG, } from '@warmio/contracts/mcp';
8
10
  import { getWarmApiKeyPath } from './config-paths.js';
11
+ import { BANK_LOGIN_CAPACITY_EXCEEDED_CODE } from './warm-api-client.js';
12
+ function hasReadlineWriter(readline) {
13
+ return '_writeToOutput' in readline && readline._writeToOutput instanceof Function;
14
+ }
9
15
  // Client configuration is intentionally an open JSON object owned by each MCP client.
10
16
  // oxlint-disable-next-line anti-slop/no-unknown-parameters -- filesystem JSON is decoded at this object guard.
11
17
  function isRecord(value) {
@@ -15,7 +21,7 @@ function isRecord(value) {
15
21
  const API_KEY_PATTERN = new RegExp(`^${WARM_API_KEY_PREFIX}[A-Za-z0-9_-]{43}$`);
16
22
  function configPath(config, homeDir) {
17
23
  const root = config.root === 'appData'
18
- ? process.env.APPDATA?.trim() || path.join(homeDir, 'AppData', 'Roaming')
24
+ ? process.env['APPDATA']?.trim() || path.join(homeDir, 'AppData', 'Roaming')
19
25
  : homeDir;
20
26
  return path.join(root, ...config.segments);
21
27
  }
@@ -47,7 +53,14 @@ function supportedClients(homeDir, workingDirectory) {
47
53
  return clients;
48
54
  }, []);
49
55
  const configPaths = new Set();
50
- return [...globalClients, ...projectClients].filter((client) => {
56
+ return [...globalClients, ...projectClients]
57
+ .map((client) => {
58
+ if (client.configDialect !== 'openCode')
59
+ return client;
60
+ const jsoncPath = `${client.configPath}c`;
61
+ return fs.existsSync(jsoncPath) ? { ...client, configPath: jsoncPath } : client;
62
+ })
63
+ .filter((client) => {
51
64
  if (configPaths.has(client.configPath))
52
65
  return false;
53
66
  configPaths.add(client.configPath);
@@ -58,25 +71,30 @@ function isCurrentWarmConfig(client, server) {
58
71
  if (!isRecord(server))
59
72
  return false;
60
73
  if (client.configDialect === 'openCode') {
61
- return (server.type === 'local' &&
62
- Array.isArray(server.command) &&
63
- server.command.length === WARM_MCP_SERVER_CONFIG.args.length + 1 &&
64
- server.command[0] === WARM_MCP_SERVER_CONFIG.command &&
65
- server.command
74
+ return (server['type'] === 'local' &&
75
+ Array.isArray(server['command']) &&
76
+ server['command'].length === WARM_MCP_SERVER_CONFIG.args.length + 1 &&
77
+ server['command'][0] === WARM_MCP_SERVER_CONFIG.command &&
78
+ server['command']
66
79
  .slice(1)
67
80
  .every((argument, index) => argument === WARM_MCP_SERVER_CONFIG.args[index]) &&
68
81
  Object.keys(server).length === 2);
69
82
  }
70
- return (server.command === WARM_MCP_SERVER_CONFIG.command &&
71
- Array.isArray(server.args) &&
72
- server.args.length === WARM_MCP_SERVER_CONFIG.args.length &&
73
- server.args.every((argument, index) => argument === WARM_MCP_SERVER_CONFIG.args[index]) &&
83
+ return (server['command'] === WARM_MCP_SERVER_CONFIG.command &&
84
+ Array.isArray(server['args']) &&
85
+ server['args'].length === WARM_MCP_SERVER_CONFIG.args.length &&
86
+ server['args'].every((argument, index) => argument === WARM_MCP_SERVER_CONFIG.args[index]) &&
74
87
  Object.keys(server).length === 2);
75
88
  }
76
89
  function parseJsonConfig(client, content) {
77
90
  if (!content)
78
91
  return {};
79
- const parsed = JSON.parse(content);
92
+ const errors = [];
93
+ const parsed = client.configDialect === 'openCode'
94
+ ? parse(content, errors, { allowTrailingComma: true })
95
+ : JSON.parse(content);
96
+ if (errors.length > 0)
97
+ throw new Error(`${client.name} config is not valid JSONC.`);
80
98
  if (!isRecord(parsed))
81
99
  throw new Error(`${client.name} config is not a JSON object.`);
82
100
  return parsed;
@@ -84,6 +102,17 @@ function parseJsonConfig(client, content) {
84
102
  function readJsonConfig(client) {
85
103
  return parseJsonConfig(client, fs.existsSync(client.configPath) ? fs.readFileSync(client.configPath, 'utf8') : '');
86
104
  }
105
+ function openCodeMcpConfig(config) {
106
+ if (config['mcp'] === undefined)
107
+ return {};
108
+ if (!isRecord(config['mcp']))
109
+ throw new Error('OpenCode mcp config must be an object.');
110
+ const mcp = config['mcp'];
111
+ if (mcp['servers'] !== undefined && !isRecord(mcp['servers'])) {
112
+ throw new Error('OpenCode mcp.servers config must be an object.');
113
+ }
114
+ return mcp;
115
+ }
87
116
  const WARM_TOML_BLOCK = /\n?\[mcp_servers\.warm\][\s\S]*?(?=\n\[[^\n]+\]|\s*$)/g;
88
117
  const WARM_TOML_ENV_BLOCK = /\n?\[mcp_servers\.warm\.env\][\s\S]*?(?=\n\[[^\n]+\]|\s*$)/g;
89
118
  function existingWarmConfig(client) {
@@ -93,7 +122,7 @@ function existingWarmConfig(client) {
93
122
  : '';
94
123
  const section = content.match(WARM_TOML_BLOCK)?.[0];
95
124
  return {
96
- current: Boolean(section) &&
125
+ current: section !== undefined &&
97
126
  !content.includes('[mcp_servers.warm.env]') &&
98
127
  section.trim() ===
99
128
  [
@@ -106,42 +135,94 @@ function existingWarmConfig(client) {
106
135
  }
107
136
  const config = readJsonConfig(client);
108
137
  if (client.configDialect === 'openCode') {
109
- const servers = isRecord(config.mcp) ? config.mcp : {};
110
- const legacyServers = isRecord(config.mcpServers) ? config.mcpServers : {};
138
+ const mcp = openCodeMcpConfig(config);
139
+ const servers = isRecord(mcp['servers']) ? mcp['servers'] : {};
140
+ const legacyServers = isRecord(config['mcpServers']) ? config['mcpServers'] : {};
111
141
  const hasLegacyWarmConfig = 'warm' in legacyServers;
112
142
  return {
113
- current: isRecord(servers.warm) && isCurrentWarmConfig(client, servers.warm) && !hasLegacyWarmConfig,
114
- exists: 'warm' in servers || hasLegacyWarmConfig,
143
+ current: isRecord(servers['warm']) &&
144
+ isCurrentWarmConfig(client, servers['warm']) &&
145
+ !('warm' in mcp) &&
146
+ !hasLegacyWarmConfig,
147
+ exists: 'warm' in servers || 'warm' in mcp || hasLegacyWarmConfig,
115
148
  };
116
149
  }
117
- const servers = isRecord(config.mcpServers) ? config.mcpServers : {};
150
+ const servers = isRecord(config['mcpServers']) ? config['mcpServers'] : {};
118
151
  return {
119
- current: isRecord(servers.warm) && isCurrentWarmConfig(client, servers.warm),
152
+ current: isRecord(servers['warm']) && isCurrentWarmConfig(client, servers['warm']),
120
153
  exists: 'warm' in servers,
121
154
  };
122
155
  }
156
+ function openCodeServerConfig(server) {
157
+ const migrated = { ...server };
158
+ if (server['enabled'] === true || server['enabled'] === false) {
159
+ migrated['disabled'] = !server['enabled'];
160
+ delete migrated['enabled'];
161
+ }
162
+ const timeout = z.number().safeParse(server['timeout']);
163
+ if (timeout.success)
164
+ migrated['timeout'] = { catalog: timeout.data, execution: timeout.data };
165
+ if (isRecord(server['oauth'])) {
166
+ const oauth = { ...server['oauth'] };
167
+ for (const [oldName, newName] of [
168
+ ['clientId', 'client_id'],
169
+ ['clientSecret', 'client_secret'],
170
+ ['callbackPort', 'callback_port'],
171
+ ['redirectUri', 'redirect_uri'],
172
+ ]) {
173
+ if (!(oldName in oauth))
174
+ continue;
175
+ if (!(newName in oauth))
176
+ oauth[newName] = oauth[oldName];
177
+ delete oauth[oldName];
178
+ }
179
+ migrated['oauth'] = oauth;
180
+ }
181
+ return migrated;
182
+ }
183
+ function prepareOpenCodeConfig(config, current) {
184
+ const mcp = openCodeMcpConfig(config);
185
+ const servers = isRecord(mcp['servers']) ? mcp['servers'] : {};
186
+ let content = current || '{}';
187
+ const edit = (location, value) => {
188
+ content = applyEdits(content, modify(content, location, value, {
189
+ formattingOptions: { insertSpaces: true, tabSize: 2, eol: '\n' },
190
+ }));
191
+ };
192
+ for (const [name, server] of Object.entries(mcp)) {
193
+ if (name === 'warm' ||
194
+ !isRecord(server) ||
195
+ (server['type'] !== 'local' && server['type'] !== 'remote'))
196
+ continue;
197
+ if (name in servers)
198
+ throw new Error(`OpenCode config has conflicting MCP entries for ${name}.`);
199
+ edit(['mcp', 'servers', name], openCodeServerConfig(server));
200
+ edit(['mcp', name], undefined);
201
+ }
202
+ edit(['mcp', 'servers', 'warm'], {
203
+ type: 'local',
204
+ command: [WARM_MCP_SERVER_CONFIG.command, ...WARM_MCP_SERVER_CONFIG.args],
205
+ });
206
+ if ('warm' in mcp)
207
+ edit(['mcp', 'warm'], undefined);
208
+ if (isRecord(config['mcpServers']) && 'warm' in config['mcpServers']) {
209
+ edit(['mcpServers', 'warm'], undefined);
210
+ if (Object.keys(config['mcpServers']).length === 1)
211
+ edit(['mcpServers'], undefined);
212
+ }
213
+ return `${content.trimEnd()}\n`;
214
+ }
123
215
  function prepareJsonConfig(client, current) {
124
216
  const config = parseJsonConfig(client, current);
125
217
  if (client.configDialect === 'openCode') {
126
- const servers = isRecord(config.mcp) ? config.mcp : {};
127
- servers.warm = {
128
- type: 'local',
129
- command: [WARM_MCP_SERVER_CONFIG.command, ...WARM_MCP_SERVER_CONFIG.args],
130
- };
131
- config.mcp = servers;
132
- if (isRecord(config.mcpServers) && 'warm' in config.mcpServers) {
133
- delete config.mcpServers.warm;
134
- if (Object.keys(config.mcpServers).length === 0)
135
- delete config.mcpServers;
136
- }
137
- return `${JSON.stringify(config, null, 2)}\n`;
218
+ return prepareOpenCodeConfig(config, current);
138
219
  }
139
- const servers = isRecord(config.mcpServers) ? config.mcpServers : {};
140
- servers.warm = {
220
+ const servers = isRecord(config['mcpServers']) ? config['mcpServers'] : {};
221
+ servers['warm'] = {
141
222
  command: WARM_MCP_SERVER_CONFIG.command,
142
223
  args: [...WARM_MCP_SERVER_CONFIG.args],
143
224
  };
144
- config.mcpServers = servers;
225
+ config['mcpServers'] = servers;
145
226
  return `${JSON.stringify(config, null, 2)}\n`;
146
227
  }
147
228
  function prepareTomlConfig(current) {
@@ -166,6 +247,7 @@ function snapshotFile(target) {
166
247
  };
167
248
  }
168
249
  catch (error) {
250
+ // oxlint-disable-next-line typescript/consistent-type-assertions -- [typescript/consistent-type-assertions] Pre-existing production TypeScript assertion surfaced by the corrected assertion-expression family classifier.
169
251
  if (error.code !== 'ENOENT')
170
252
  throw error;
171
253
  return { content: '', exists: false, mode: 0o666 };
@@ -262,11 +344,13 @@ function readlinePrompt(question, options) {
262
344
  input: process.stdin,
263
345
  output: process.stdout,
264
346
  });
265
- const maskedReadline = readline;
266
- const writeToOutput = maskedReadline._writeToOutput?.bind(readline);
267
- if (options.hidden && writeToOutput && process.stdin.isTTY && process.stdout.isTTY) {
268
- writeToOutput(question);
269
- maskedReadline._writeToOutput = (value) => writeToOutput(value.replace(/[^\r\n]/g, '•'));
347
+ if (options.hidden &&
348
+ hasReadlineWriter(readline) &&
349
+ process.stdin.isTTY &&
350
+ process.stdout.isTTY) {
351
+ const writeToOutput = readline._writeToOutput;
352
+ writeToOutput.call(readline, question);
353
+ readline._writeToOutput = (value) => writeToOutput.call(readline, value.replace(/[^\r\n]/g, '•'));
270
354
  }
271
355
  readline.question(options.hidden ? '' : question, (answer) => {
272
356
  readline.close();
@@ -274,9 +358,13 @@ function readlinePrompt(question, options) {
274
358
  });
275
359
  });
276
360
  }
361
+ const API_KEY_VALIDATION_FAILED_MESSAGE = 'Warm API key validation failed. Check Warm Settings and try again.';
362
+ const BANK_LOGIN_CAPACITY_RESOLUTION_MESSAGE = 'This Warm API key is valid, but your account holds more bank logins than your plan includes. Remove a bank login or change your plan in Warm, then run the installer again.';
363
+ class WarmApiCapacityError extends Error {
364
+ }
277
365
  async function validateApiKey(apiKey, options) {
278
366
  if (!API_KEY_PATTERN.test(apiKey)) {
279
- throw new Error('Warm API key validation failed. Check Warm Settings and try again.');
367
+ throw new Error(API_KEY_VALIDATION_FAILED_MESSAGE);
280
368
  }
281
369
  const response = await (options.fetchImplementation || fetch)(new URL('/api/verify', options.apiUrl || API_ORIGIN), {
282
370
  headers: {
@@ -286,9 +374,13 @@ async function validateApiKey(apiKey, options) {
286
374
  });
287
375
  const text = await response.text();
288
376
  const body = parseJsonResponse(text);
289
- if (!response.ok || !isRecord(body) || body.valid !== true || Object.keys(body).length !== 1) {
290
- throw new Error('Warm API key validation failed. Check Warm Settings and try again.');
377
+ if (response.ok && isRecord(body) && body['valid'] === true && Object.keys(body).length === 1) {
378
+ return;
379
+ }
380
+ if (!response.ok && isRecord(body) && body['code'] === BANK_LOGIN_CAPACITY_EXCEEDED_CODE) {
381
+ throw new WarmApiCapacityError(BANK_LOGIN_CAPACITY_RESOLUTION_MESSAGE);
291
382
  }
383
+ throw new Error(API_KEY_VALIDATION_FAILED_MESSAGE);
292
384
  }
293
385
  function parseJsonResponse(text) {
294
386
  try {
@@ -320,7 +412,9 @@ async function resolveApiKey(target, ask, options) {
320
412
  await validateApiKey(storedApiKey, options);
321
413
  return { apiKey: storedApiKey, replaceStoredKey: false };
322
414
  }
323
- catch {
415
+ catch (error) {
416
+ if (error instanceof WarmApiCapacityError)
417
+ throw error;
324
418
  return {
325
419
  apiKey: await requestedApiKey(ask, options, INVALID_STORED_API_KEY_PASTE_PROMPT),
326
420
  replaceStoredKey: true,
@@ -329,6 +423,8 @@ async function resolveApiKey(target, ask, options) {
329
423
  }
330
424
  /** Configure detected supported MCP clients for the local stdio server. */
331
425
  export async function install(options = {}) {
426
+ assertWarmMcpLauncherContract(WARM_MCP_MANIFEST);
427
+ maybeRequireWarmMcpRegistryIntegrity(WARM_MCP_MANIFEST.packageIntegrity.registryIntegrity);
332
428
  const homeDir = options.homeDir || os.homedir();
333
429
  const workingDirectory = options.workingDirectory || process.cwd();
334
430
  const ask = options.prompt || readlinePrompt;
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,5 @@
1
+ export declare const WARM_LOAD_PROJECT_ENV = "WARM_LOAD_PROJECT_ENV";
2
+ export declare const BLOCKED_PROJECT_ENV_KEYS: readonly ['WARM_API_KEY', 'WARM_API_KEY_FILE', 'WARM_CONFIG_DIR', 'WARM_API_URL'];
1
3
  export declare function loadDotEnv(): void;
4
+ export declare function resetLoadDotEnvState(): void;
2
5
  //# sourceMappingURL=load-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../src/load-env.ts"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,IAAI,IAAI,CAWjC"}
1
+ {"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../src/load-env.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,eAAO,MAAM,wBAAwB,YACnC,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,CACN,CAAC;AAIX,wBAAgB,UAAU,IAAI,IAAI,CAajC;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
package/dist/load-env.js CHANGED
@@ -1,19 +1,33 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
- import { config as loadEnvFile } from 'dotenv';
3
+ import { parse as parseEnvFile } from 'dotenv';
4
4
  let loaded = false;
5
+ export const WARM_LOAD_PROJECT_ENV = 'WARM_LOAD_PROJECT_ENV';
6
+ export const BLOCKED_PROJECT_ENV_KEYS = [
7
+ 'WARM_API_KEY',
8
+ 'WARM_API_KEY_FILE',
9
+ 'WARM_CONFIG_DIR',
10
+ 'WARM_API_URL',
11
+ ];
12
+ const blockedProjectEnvKeys = new Set(BLOCKED_PROJECT_ENV_KEYS);
5
13
  export function loadDotEnv() {
6
14
  if (loaded)
7
15
  return;
8
16
  loaded = true;
9
- for (let current = process.cwd();; current = path.dirname(current)) {
10
- const candidate = path.join(current, '.env');
11
- if (fs.existsSync(candidate)) {
12
- loadEnvFile({ path: candidate, override: false, quiet: true });
13
- return;
14
- }
15
- if (path.dirname(current) === current)
16
- return;
17
+ if (process.env[WARM_LOAD_PROJECT_ENV]?.trim() !== '1')
18
+ return;
19
+ const candidate = path.join(process.cwd(), '.env');
20
+ if (!fs.existsSync(candidate))
21
+ return;
22
+ const parsed = parseEnvFile(fs.readFileSync(candidate));
23
+ for (const [key, value] of Object.entries(parsed)) {
24
+ if (blockedProjectEnvKeys.has(key))
25
+ continue;
26
+ if (process.env[key] === undefined)
27
+ process.env[key] = value;
17
28
  }
18
29
  }
30
+ export function resetLoadDotEnvState() {
31
+ loaded = false;
32
+ }
19
33
  //# sourceMappingURL=load-env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-env.js","sourceRoot":"","sources":["../src/load-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,UAAU,UAAU;IACxB,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,GAAG,IAAI,CAAC;IACd,KAAK,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO;YAAE,OAAO;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"load-env.js","sourceRoot":"","sources":["../src/load-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE/C,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;CACN,CAAC;AAEX,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,wBAAwB,CAAC,CAAC;AAExE,MAAM,UAAU,UAAU;IACxB,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,GAAG,IAAI,CAAC;IACd,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO;IAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO;IAEtC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,KAAK,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EAIL,KAAK,4BAA4B,EAEjC,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AACD,MAAM,WAAW,yBAA0B,SAAQ,4BAA4B;IAC7E,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAgBD,eAAO,MAAM,gBAAgB;IAAK,IAAI;IAAU,OAAO;CAAoB,CAAC;AAwI5E,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,SAAS,CAM3E;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,SAAS,CAKtF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAKL,KAAK,cAAc,EAGpB,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EAIL,KAAK,4BAA4B,EAEjC,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AACD,MAAM,WAAW,yBAA0B,SAAQ,4BAA4B;IAC7E,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAkBD,eAAO,MAAM,gBAAgB;IAAK,IAAI;IAAU,OAAO;CAAoB,CAAC;AA+K5E,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,SAAS,CAM3E;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,SAAS,CAKtF"}