@kodycodes/cli 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +16 -3
  2. package/dist/add-mcp-install.d.ts +36 -0
  3. package/dist/add-mcp-install.js +48 -0
  4. package/dist/add-mcp-install.js.map +1 -0
  5. package/dist/auth.d.ts +1 -1
  6. package/dist/auth.js +91 -89
  7. package/dist/auth.js.map +1 -1
  8. package/dist/cli.d.ts +3 -1
  9. package/dist/cli.js +17 -2
  10. package/dist/cli.js.map +1 -1
  11. package/dist/defaults.d.ts +10 -0
  12. package/dist/defaults.js +16 -0
  13. package/dist/defaults.js.map +1 -1
  14. package/dist/detect-running-hosts.d.ts +4 -0
  15. package/dist/detect-running-hosts.js +13 -0
  16. package/dist/detect-running-hosts.js.map +1 -0
  17. package/dist/help.js +9 -1
  18. package/dist/help.js.map +1 -1
  19. package/dist/host-catalog.d.ts +27 -0
  20. package/dist/host-catalog.js +355 -0
  21. package/dist/host-catalog.js.map +1 -0
  22. package/dist/host-config.d.ts +23 -0
  23. package/dist/host-config.js +80 -0
  24. package/dist/host-config.js.map +1 -0
  25. package/dist/install-hosts.d.ts +31 -0
  26. package/dist/install-hosts.js +322 -0
  27. package/dist/install-hosts.js.map +1 -0
  28. package/dist/install.d.ts +32 -0
  29. package/dist/install.js +120 -0
  30. package/dist/install.js.map +1 -0
  31. package/dist/mcp.js +6 -7
  32. package/dist/mcp.js.map +1 -1
  33. package/dist/oauth-provider.d.ts +12 -0
  34. package/dist/oauth-provider.js +89 -0
  35. package/dist/oauth-provider.js.map +1 -0
  36. package/dist/onboarding-prompt.d.ts +2 -0
  37. package/dist/onboarding-prompt.js +15 -0
  38. package/dist/onboarding-prompt.js.map +1 -0
  39. package/dist/process-info.d.ts +8 -0
  40. package/dist/process-info.js +14 -0
  41. package/dist/process-info.js.map +1 -0
  42. package/dist/which.d.ts +1 -0
  43. package/dist/which.js +22 -0
  44. package/dist/which.js.map +1 -0
  45. package/package.json +6 -3
  46. package/skills/kody/SKILL.md +11 -1
package/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  Turn one-off agent work into something you can rerun: a local MCP client for
4
4
  [Kody](https://kody.codes) with login, OS keychain token storage, `search`, and
5
- `execute`.
5
+ `execute`. Talks MCP `2026-07-28` (Kody's stateless `/mcp` lane) and logs in
6
+ with Client ID Metadata Documents (SEP-991).
6
7
 
7
8
  ```bash
9
+ npx @kodycodes/cli install
8
10
  npx @kodycodes/cli login
9
11
  npx @kodycodes/cli search "what can you do"
10
12
  npx @kodycodes/cli skill install
@@ -25,7 +27,8 @@ Or run via `npx @kodycodes/cli` without a global install.
25
27
 
26
28
  | Command | Purpose |
27
29
  | --- | --- |
28
- | `kody login` | Browser OAuth (DCR + PKCE). Stores access and refresh tokens. |
30
+ | `kody install` | Detect running local MCP clients, write their config, and start host OAuth. |
31
+ | `kody login` | Browser OAuth (CIMD + PKCE). Stores access and refresh tokens. |
29
32
  | `kody logout` | Deletes stored credentials. |
30
33
  | `kody status` | Shows login state without printing secrets. |
31
34
  | `kody whoami` | Confirms the MCP connection and lists tools. |
@@ -33,6 +36,16 @@ Or run via `npx @kodycodes/cli` without a global install.
33
36
  | `kody execute` | Calls Kody `execute` (`--code`, `--file`, or stdin via `--file -`). |
34
37
  | `kody skill install` | Copies the getting-started skill into Claude Code / Cursor / Agents. |
35
38
 
39
+ `kody install` lists **running local** agents (Cursor, Claude Desktop, VS Code,
40
+ Goose, Claude Code, Codex, Windsurf, Zed, and similar) and writes each host's
41
+ remote MCP entry for `https://kody.codes/mcp`. Common host formats go through
42
+ [`add-mcp`](https://www.npmjs.com/package/add-mcp). It does not list web clients.
43
+ For ChatGPT, Claude.ai, and Grok, use [kody.codes/onboarding](https://kody.codes/onboarding).
44
+
45
+ After install, the CLI prints a prompt you can paste into the configured agent
46
+ to continue onboarding. Host OAuth stays in that client — `kody login` is only
47
+ for the CLI itself.
48
+
36
49
  `--mcp-url` or `KODY_MCP_URL` overrides the default `https://kody.codes/mcp`.
37
50
  `--json` prints structured MCP results.
38
51
 
@@ -45,7 +58,7 @@ Credentials are stored in the OS secret store:
45
58
  - Linux: Secret Service / libsecret
46
59
 
47
60
  If the keychain is unavailable (common on headless Linux), the CLI writes a
48
- `0600` file under `$XDG_CONFIG_HOME/kody` (or `%APPDATA%\\kody` on Windows,
61
+ `0600` file under `$XDG_CONFIG_HOME/kody` (or `%APPDATA%\kody` on Windows,
49
62
  `~/Library/Application Support/kody` on macOS). Tokens are never printed.
50
63
 
51
64
  Access tokens refresh automatically on expiry or HTTP 401.
@@ -0,0 +1,36 @@
1
+ import { type AgentType, type InstallResult, type McpServerConfig } from 'add-mcp';
2
+ import type { HostId } from './host-catalog.js';
3
+ /**
4
+ * Hosts whose on-disk MCP config `add-mcp` already knows how to merge.
5
+ * Claude Desktop is intentionally omitted: remote MCP lives in Connectors, not
6
+ * `claude_desktop_config.json`.
7
+ */
8
+ export declare const addMcpAgentByHostId: {
9
+ readonly antigravity: "antigravity";
10
+ readonly cline: "cline";
11
+ readonly 'cline-cli': "cline-cli";
12
+ readonly 'claude-code': "claude-code";
13
+ readonly codex: "codex";
14
+ readonly cursor: "cursor";
15
+ readonly 'gemini-cli': "gemini-cli";
16
+ readonly goose: "goose";
17
+ readonly 'copilot-cli': "github-copilot-cli";
18
+ readonly 'grok-build': "grok-build";
19
+ readonly mcporter: "mcporter";
20
+ readonly opencode: "opencode";
21
+ readonly vscode: "vscode";
22
+ readonly windsurf: "windsurf";
23
+ readonly zed: "zed";
24
+ };
25
+ export type AddMcpHostId = keyof typeof addMcpAgentByHostId;
26
+ export type UpsertServerFn = (agentType: AgentType, serverName: string, serverConfig: McpServerConfig, options?: {
27
+ local?: boolean;
28
+ cwd?: string;
29
+ }) => InstallResult;
30
+ export declare function isAddMcpHostId(id: HostId): id is AddMcpHostId;
31
+ export declare function addMcpUsesProjectScope(id: AddMcpHostId, project: boolean): boolean;
32
+ export declare function kodyRemoteConfig(mcpUrl: string): McpServerConfig;
33
+ export declare function defaultUpsertServer(agentType: AgentType, serverName: string, serverConfig: McpServerConfig, options?: {
34
+ local?: boolean;
35
+ cwd?: string;
36
+ }): InstallResult;
@@ -0,0 +1,48 @@
1
+ import { upsertServer, } from 'add-mcp';
2
+ /**
3
+ * Hosts whose on-disk MCP config `add-mcp` already knows how to merge.
4
+ * Claude Desktop is intentionally omitted: remote MCP lives in Connectors, not
5
+ * `claude_desktop_config.json`.
6
+ */
7
+ export const addMcpAgentByHostId = {
8
+ antigravity: 'antigravity',
9
+ cline: 'cline',
10
+ 'cline-cli': 'cline-cli',
11
+ 'claude-code': 'claude-code',
12
+ codex: 'codex',
13
+ cursor: 'cursor',
14
+ 'gemini-cli': 'gemini-cli',
15
+ goose: 'goose',
16
+ 'copilot-cli': 'github-copilot-cli',
17
+ 'grok-build': 'grok-build',
18
+ mcporter: 'mcporter',
19
+ opencode: 'opencode',
20
+ vscode: 'vscode',
21
+ windsurf: 'windsurf',
22
+ zed: 'zed',
23
+ };
24
+ const addMcpProjectHosts = new Set([
25
+ 'claude-code',
26
+ 'codex',
27
+ 'cursor',
28
+ 'gemini-cli',
29
+ 'copilot-cli',
30
+ 'grok-build',
31
+ 'mcporter',
32
+ 'opencode',
33
+ 'vscode',
34
+ 'zed',
35
+ ]);
36
+ export function isAddMcpHostId(id) {
37
+ return Object.hasOwn(addMcpAgentByHostId, id);
38
+ }
39
+ export function addMcpUsesProjectScope(id, project) {
40
+ return project && addMcpProjectHosts.has(id);
41
+ }
42
+ export function kodyRemoteConfig(mcpUrl) {
43
+ return { type: 'http', url: mcpUrl };
44
+ }
45
+ export function defaultUpsertServer(agentType, serverName, serverConfig, options) {
46
+ return upsertServer(agentType, serverName, serverConfig, options);
47
+ }
48
+ //# sourceMappingURL=add-mcp-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-mcp-install.js","sourceRoot":"","sources":["../src/add-mcp-install.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,GAIZ,MAAM,SAAS,CAAA;AAGhB;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,oBAAoB;IACnC,YAAY,EAAE,YAAY;IAC1B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;CAC4C,CAAA;AAIvD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAe;IAChD,aAAa;IACb,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,KAAK;CACL,CAAC,CAAA;AASF,MAAM,UAAU,cAAc,CAAC,EAAU;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAgB,EAAE,OAAgB;IACxE,OAAO,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,SAAoB,EACpB,UAAkB,EAClB,YAA6B,EAC7B,OAA2C;IAE3C,OAAO,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC"}
package/dist/auth.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { OAuthClientInformationMixed, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
1
+ import { type OAuthClientInformationMixed, type OAuthTokens } from '@modelcontextprotocol/client';
2
2
  import { type SecretBackend, type StoredCredentials } from './store.js';
3
3
  export type LoginOptions = {
4
4
  mcpUrl?: string;
package/dist/auth.js CHANGED
@@ -1,17 +1,9 @@
1
1
  import { createServer, } from 'node:http';
2
- import { discoverOAuthServerInfo, exchangeAuthorization, refreshAuthorization, registerClient, startAuthorization, } from '@modelcontextprotocol/sdk/client/auth.js';
3
- import { accessTokenSkewMs, defaultMcpUrl, defaultScopes, loginTimeoutMs, } from './defaults.js';
4
- import { openUrl } from './open-url.js';
2
+ import { auth, } from '@modelcontextprotocol/client';
3
+ import { accessTokenSkewMs, cliRedirectUrl, defaultMcpUrl, defaultScopes, loginTimeoutMs, } from './defaults.js';
4
+ import { createCliOAuthProvider } from './oauth-provider.js';
5
5
  import { redactError } from './redact.js';
6
6
  import { loadCredentials, saveCredentials, } from './store.js';
7
- function clientInformationFrom(credentials) {
8
- return {
9
- client_id: credentials.clientId,
10
- ...(credentials.clientSecret
11
- ? { client_secret: credentials.clientSecret }
12
- : {}),
13
- };
14
- }
15
7
  export function isAccessTokenExpired(credentials, now = Date.now()) {
16
8
  if (!credentials.expiresAt)
17
9
  return false;
@@ -38,31 +30,54 @@ export function credentialsFromTokens(input) {
38
30
  scope: input.tokens.scope ?? input.previous?.scope,
39
31
  };
40
32
  }
33
+ async function persistAuthorizedSession(input) {
34
+ const tokens = await input.provider.tokens();
35
+ const client = await input.provider.clientInformation();
36
+ if (!tokens || !client) {
37
+ throw new Error('OAuth completed without tokens. Run `kody login`.');
38
+ }
39
+ const credentials = credentialsFromTokens({
40
+ mcpUrl: input.mcpUrl,
41
+ resource: input.mcpUrl,
42
+ authorizationServerUrl: tokens.issuer ??
43
+ input.previous?.authorizationServerUrl ??
44
+ new URL(input.mcpUrl).origin,
45
+ client,
46
+ tokens,
47
+ previous: input.previous,
48
+ now: input.now,
49
+ });
50
+ const saved = saveCredentials(credentials, input.backend);
51
+ return { credentials, saved };
52
+ }
41
53
  export async function refreshStoredCredentials(input) {
42
54
  const { credentials } = input;
43
55
  if (!credentials.refreshToken) {
44
56
  throw new Error('No refresh token is stored. Run `kody login`.');
45
57
  }
46
- const info = await discoverOAuthServerInfo(credentials.mcpUrl, {
47
- fetchFn: input.fetchFn,
58
+ const provider = createCliOAuthProvider({
59
+ mcpUrl: credentials.mcpUrl,
60
+ redirectUri: cliRedirectUrl(),
61
+ existing: credentials,
62
+ loadStoredTokens: true,
63
+ openBrowser: false,
64
+ expectedState: crypto.randomUUID(),
48
65
  });
49
- const tokens = await refreshAuthorization(info.authorizationServerUrl, {
50
- metadata: info.authorizationServerMetadata,
51
- clientInformation: clientInformationFrom(credentials),
52
- refreshToken: credentials.refreshToken,
53
- resource: new URL(credentials.resource),
66
+ const result = await auth(provider, {
67
+ serverUrl: credentials.mcpUrl,
68
+ scope: defaultScopes.join(' '),
54
69
  fetchFn: input.fetchFn,
55
70
  });
56
- const next = credentialsFromTokens({
71
+ if (result !== 'AUTHORIZED') {
72
+ throw new Error('Token refresh requires a new `kody login`.');
73
+ }
74
+ const { credentials: next } = await persistAuthorizedSession({
57
75
  mcpUrl: credentials.mcpUrl,
58
- resource: credentials.resource,
59
- authorizationServerUrl: credentials.authorizationServerUrl,
60
- client: clientInformationFrom(credentials),
61
- tokens,
76
+ provider,
77
+ backend: input.backend,
62
78
  previous: credentials,
63
79
  now: input.now,
64
80
  });
65
- saveCredentials(next, input.backend);
66
81
  return next;
67
82
  }
68
83
  export async function ensureFreshCredentials(input) {
@@ -81,33 +96,29 @@ export async function ensureFreshCredentials(input) {
81
96
  fetchFn: input.fetchFn,
82
97
  });
83
98
  }
84
- function startCallbackServer() {
99
+ function startCallbackServer(redirectUri) {
85
100
  return new Promise((resolve, reject) => {
86
101
  const server = createServer();
87
- server.listen(0, '127.0.0.1', () => {
88
- const address = server.address();
89
- if (!address || typeof address === 'string') {
90
- server.close();
91
- reject(new Error('Could not bind a localhost callback port.'));
102
+ const port = Number(redirectUri.port);
103
+ server.listen(port, redirectUri.hostname, () => resolve(server));
104
+ server.on('error', (error) => {
105
+ if ('code' in error && error.code === 'EADDRINUSE') {
106
+ reject(new Error(`Login callback port ${port} is in use. Stop the other listener and retry.`));
92
107
  return;
93
108
  }
94
- resolve({
95
- server,
96
- redirectUri: new URL(`http://127.0.0.1:${address.port}/callback`),
97
- });
109
+ reject(error);
98
110
  });
99
- server.on('error', reject);
100
111
  });
101
112
  }
102
113
  function waitForCallback(input) {
103
114
  return new Promise((resolve, reject) => {
104
- const finish = (error, code) => {
115
+ const finish = (error, result) => {
105
116
  clearTimeout(timer);
106
117
  input.server.close();
107
118
  if (error)
108
119
  reject(error);
109
120
  else
110
- resolve(code ?? '');
121
+ resolve(result ?? { code: '' });
111
122
  };
112
123
  const timer = setTimeout(() => {
113
124
  finish(new Error('Timed out waiting for the browser login.'));
@@ -130,6 +141,7 @@ function waitForCallback(input) {
130
141
  }
131
142
  const state = url.searchParams.get('state');
132
143
  const code = url.searchParams.get('code');
144
+ const iss = url.searchParams.get('iss') ?? undefined;
133
145
  if (state !== input.expectedState || !code) {
134
146
  response
135
147
  .writeHead(400, { 'Content-Type': 'text/html' })
@@ -140,7 +152,7 @@ function waitForCallback(input) {
140
152
  response
141
153
  .writeHead(200, { 'Content-Type': 'text/html' })
142
154
  .end('<p>Kody CLI is signed in. You can close this window.</p>');
143
- finish(null, code);
155
+ finish(null, { code, ...(iss ? { iss } : {}) });
144
156
  }
145
157
  catch (error) {
146
158
  finish(redactError(error));
@@ -150,64 +162,54 @@ function waitForCallback(input) {
150
162
  }
151
163
  export async function login(options = {}) {
152
164
  const mcpUrl = options.mcpUrl ?? defaultMcpUrl;
153
- const fetchFn = options.fetchFn;
154
- const info = await discoverOAuthServerInfo(mcpUrl, { fetchFn });
155
- const resource = info.resourceMetadata?.resource ??
156
- `${new URL(mcpUrl).origin}${new URL(mcpUrl).pathname}`;
157
- const { server, redirectUri } = await startCallbackServer();
165
+ const redirectUri = cliRedirectUrl();
166
+ const expectedState = crypto.randomUUID();
167
+ const server = await startCallbackServer(redirectUri);
168
+ let authorizationUrl = redirectUri;
169
+ const provider = createCliOAuthProvider({
170
+ mcpUrl,
171
+ redirectUri,
172
+ loadStoredTokens: false,
173
+ openBrowser: options.openBrowser !== false,
174
+ expectedState,
175
+ onAuthorizationUrl: (url) => {
176
+ authorizationUrl = url;
177
+ options.onAuthorizationUrl?.(url);
178
+ },
179
+ });
158
180
  try {
159
- const metadata = info.authorizationServerMetadata;
160
- const client = await registerClient(info.authorizationServerUrl, {
161
- metadata,
162
- clientMetadata: {
163
- redirect_uris: [redirectUri.href],
164
- client_name: 'Kody CLI',
165
- client_uri: 'https://github.com/kody-bot/cli',
166
- grant_types: ['authorization_code', 'refresh_token'],
167
- response_types: ['code'],
168
- token_endpoint_auth_method: 'none',
169
- scope: defaultScopes.join(' '),
170
- },
181
+ const first = await auth(provider, {
182
+ serverUrl: mcpUrl,
171
183
  scope: defaultScopes.join(' '),
172
- fetchFn,
184
+ fetchFn: options.fetchFn,
173
185
  });
174
- const state = crypto.randomUUID();
175
- const { authorizationUrl, codeVerifier } = await startAuthorization(info.authorizationServerUrl, {
176
- metadata,
177
- clientInformation: client,
178
- redirectUrl: redirectUri,
179
- scope: defaultScopes.join(' '),
180
- state,
181
- resource: new URL(resource),
182
- });
183
- options.onAuthorizationUrl?.(authorizationUrl);
184
- if (options.openBrowser !== false) {
185
- await openUrl(authorizationUrl.href);
186
+ if (first !== 'AUTHORIZED') {
187
+ const callback = await waitForCallback({
188
+ server,
189
+ redirectUri,
190
+ expectedState,
191
+ timeoutMs: options.timeoutMs ?? loginTimeoutMs,
192
+ });
193
+ const exchanged = await auth(provider, {
194
+ serverUrl: mcpUrl,
195
+ authorizationCode: callback.code,
196
+ ...(callback.iss ? { iss: callback.iss } : {}),
197
+ scope: defaultScopes.join(' '),
198
+ fetchFn: options.fetchFn,
199
+ });
200
+ if (exchanged !== 'AUTHORIZED') {
201
+ throw new Error('OAuth redirect completed without tokens.');
202
+ }
186
203
  }
187
- const code = await waitForCallback({
188
- server,
189
- redirectUri,
190
- expectedState: state,
191
- timeoutMs: options.timeoutMs ?? loginTimeoutMs,
192
- });
193
- const tokens = await exchangeAuthorization(info.authorizationServerUrl, {
194
- metadata,
195
- clientInformation: client,
196
- authorizationCode: code,
197
- codeVerifier,
198
- redirectUri,
199
- resource: new URL(resource),
200
- fetchFn,
201
- });
202
- const credentials = credentialsFromTokens({
204
+ else {
205
+ server.close();
206
+ }
207
+ const { credentials, saved } = await persistAuthorizedSession({
203
208
  mcpUrl,
204
- resource,
205
- authorizationServerUrl: info.authorizationServerUrl,
206
- client,
207
- tokens,
209
+ provider,
210
+ backend: options.backend,
208
211
  now: options.now?.(),
209
212
  });
210
- const saved = saveCredentials(credentials, options.backend);
211
213
  return {
212
214
  credentials,
213
215
  authorizationUrl,
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type CommandName = 'login' | 'logout' | 'status' | 'whoami' | 'search' | 'execute' | 'skill' | 'help' | 'version';
1
+ export type CommandName = 'login' | 'logout' | 'status' | 'whoami' | 'search' | 'execute' | 'install' | 'skill' | 'help' | 'version';
2
2
  declare function parseKnown(args: Array<string>): {
3
3
  values: {
4
4
  [longOption: string]: string | boolean | undefined;
@@ -16,6 +16,8 @@ declare function parseKnown(args: Array<string>): {
16
16
  'conversation-id'?: string | boolean | undefined;
17
17
  project?: string | boolean | undefined;
18
18
  'no-browser'?: string | boolean | undefined;
19
+ clients?: string | boolean | undefined;
20
+ yes?: string | boolean | undefined;
19
21
  };
20
22
  positionals: string[];
21
23
  };
package/dist/cli.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { parseArgs } from 'node:util';
2
2
  import { readFile } from 'node:fs/promises';
3
- import { defaultMcpUrl } from './defaults.js';
3
+ import { defaultMcpUrl, modernMcpProtocolVersion } from './defaults.js';
4
4
  import { usage } from './help.js';
5
5
  import { ensureFreshCredentials, login } from './auth.js';
6
6
  import { deleteCredentials, loadCredentials } from './store.js';
7
7
  import { callKodyTool, formatToolResult, listKodyTools } from './mcp.js';
8
+ import { runInstall } from './install.js';
8
9
  import { installSkill } from './skill.js';
9
10
  import { readPackageVersion } from './package-info.js';
10
11
  import { redactError } from './redact.js';
@@ -30,6 +31,8 @@ function parseKnown(args) {
30
31
  'conversation-id': { type: 'string' },
31
32
  project: { type: 'boolean' },
32
33
  'no-browser': { type: 'boolean' },
34
+ clients: { type: 'string' },
35
+ yes: { type: 'boolean', short: 'y' },
33
36
  },
34
37
  });
35
38
  }
@@ -51,6 +54,7 @@ export function resolveCommand(argv) {
51
54
  case 'whoami':
52
55
  case 'search':
53
56
  case 'execute':
57
+ case 'install':
54
58
  case 'skill':
55
59
  case 'help':
56
60
  case 'version':
@@ -135,12 +139,13 @@ async function dispatch(parsed, write) {
135
139
  if (json) {
136
140
  write(`${JSON.stringify({
137
141
  mcpUrl: credentials.mcpUrl,
142
+ protocol: modernMcpProtocolVersion,
138
143
  scope: credentials.scope ?? null,
139
144
  tools: tools.map((tool) => tool.name),
140
145
  }, null, 2)}\n`);
141
146
  return 0;
142
147
  }
143
- write(`Connected to ${credentials.mcpUrl}\nTools: ${tools.map((tool) => tool.name).join(', ') || '(none)'}\n`);
148
+ write(`Connected to ${credentials.mcpUrl} (${modernMcpProtocolVersion})\nTools: ${tools.map((tool) => tool.name).join(', ') || '(none)'}\n`);
144
149
  return 0;
145
150
  }
146
151
  case 'search': {
@@ -180,6 +185,16 @@ async function dispatch(parsed, write) {
180
185
  write(formatToolResult(result, json));
181
186
  return result.isError ? 1 : 0;
182
187
  }
188
+ case 'install': {
189
+ const result = await runInstall({
190
+ mcpUrl,
191
+ clients: typeof parsed.values.clients === 'string' ? parsed.values.clients : undefined,
192
+ yes: parsed.values.yes === true,
193
+ project: parsed.values.project === true,
194
+ json,
195
+ }, { stdout: write });
196
+ return result.code;
197
+ }
183
198
  case 'skill': {
184
199
  const action = parsed.positionals[0] ?? 'install';
185
200
  if (action !== 'install') {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAczC,SAAS,UAAU,CAAC,MAA2B;IAC9C,OAAO,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,aAAa,CAAA;AAClE,CAAC;AAED,SAAS,UAAU,CAAC,IAAmB;IACtC,OAAO,SAAS,CAAC;QAChB,IAAI;QACJ,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACR,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACpC;KACD,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAmB;IAKjD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IAChD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IACnD,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IACzD,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACb,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;QACnE;YACC,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,SAAS,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,OAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAC3C,KAA2E,EAAE;IAE7E,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5E,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACrD,KAAK,CAAC,KAAK,CAAC,CAAA;YACZ,OAAO,CAAC,CAAA;QACT,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACT,CAAC;AACF,CAAC;AAED,KAAK,UAAU,QAAQ,CACtB,MAAyC,EACzC,KAA6B;IAE7B,MAAM,MAAM,GAAG,UAAU,CAAC;QACzB,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3F,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAA;IAExC,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM;YACV,KAAK,CAAC,KAAK,CAAC,CAAA;YACZ,OAAO,CAAC,CAAA;QACT,KAAK,SAAS;YACb,KAAK,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAA;YAClC,OAAO,CAAC,CAAA;QACT,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,KAAK,CAAC,gDAAgD,CAAC,CAAA;YACvD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;gBAC1B,MAAM;gBACN,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI;gBACjD,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC3B,KAAK,CAAC,yCAAyC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAA;gBAC7D,CAAC;aACD,CAAC,CAAA;YACF,KAAK,CAAC,gBAAgB,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAA;YACrD,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzD,KAAK,CACJ,qDAAqD,MAAM,CAAC,WAAW,iBAAiB,CACxF,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAClD,CAAC;YACD,OAAO,CAAC,CAAA;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;YACxC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAA;YACpE,OAAO,CAAC,CAAA;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,KAAK,CAAC,kBAAkB,CAAC,CAAA;gBACzB,OAAO,CAAC,CAAA;YACT,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS;gBACpC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;gBAC/C,CAAC,CAAC,SAAS,CAAA;YACZ,KAAK,CACJ;gBACC,QAAQ,WAAW,CAAC,MAAM,EAAE;gBAC5B,gBAAgB;gBAChB,yBAAyB,OAAO,EAAE;gBAClC,kBAAkB,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC3D,UAAU,WAAW,CAAC,KAAK,IAAI,SAAS,EAAE;gBAC1C,EAAE;aACF,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ,CAAA;YACD,OAAO,CAAC,CAAA;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC7C,IAAI,IAAI,EAAE,CAAC;gBACV,KAAK,CACJ,GAAG,IAAI,CAAC,SAAS,CAChB;oBACC,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,QAAQ,EAAE,wBAAwB;oBAClC,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,IAAI;oBAChC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACrC,EACD,IAAI,EACJ,CAAC,CACD,IAAI,CACL,CAAA;gBACD,OAAO,CAAC,CAAA;YACT,CAAC;YACD,KAAK,CACJ,gBAAgB,WAAW,CAAC,MAAM,KAAK,wBAAwB,aAAa,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,CACrI,CAAA;YACD,OAAO,CAAC,CAAA;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;YACjD,MAAM,IAAI,GAA4B,EAAE,CAAA;YACxC,IAAI,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAC7B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA;YAChF,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA;YAChF,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACrF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YACnE,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YACrC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GACT,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACrC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;gBACpB,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;oBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG;wBAC3B,CAAC,CAAC,MAAM,SAAS,EAAE;wBACnB,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC/D,CAAC;YACD,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAA;YAC9C,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/C,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;YACvD,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YACpE,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YACrC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,UAAU,CAC9B;gBACC,MAAM;gBACN,OAAO,EACN,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC9E,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI;gBAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;gBACvC,IAAI;aACJ,EACD,EAAE,MAAM,EAAE,KAAK,EAAE,CACjB,CAAA;YACD,OAAO,MAAM,CAAC,IAAI,CAAA;QACnB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;YACjD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;YACzD,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAA;YAC/E,KAAK,CACJ,iCAAiC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC3G,CAAA;YACD,OAAO,CAAC,CAAA;QACT,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,UAAU,GAAU,MAAM,CAAC,OAAO,CAAA;YACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC5D,CAAC;IACF,CAAC;AACF,CAAC;AAED,KAAK,UAAU,SAAS;IACvB,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC"}
@@ -1,6 +1,16 @@
1
1
  export declare const defaultMcpUrl = "https://kody.codes/mcp";
2
+ /** Pin to Kody's stateless `/mcp` lane. */
3
+ export declare const modernMcpProtocolVersion = "2026-07-28";
2
4
  export declare const defaultScopes: readonly ["profile", "email"];
3
5
  export declare const keyringService = "kody.codes";
4
6
  export declare const loginTimeoutMs: number;
5
7
  export declare const accessTokenSkewMs = 60000;
6
8
  export declare const cliName = "@kodycodes/cli";
9
+ export declare const cliClientUri = "https://github.com/kody-bot/cli";
10
+ /** Fixed loopback port so CIMD can list an exact redirect URI. */
11
+ export declare const oauthCallbackPort = 43742;
12
+ export declare const cliClientIdMetadataPath = "/oauth/cli-client-metadata.json";
13
+ export declare function cliClientMetadataUrl(mcpUrl: string): string;
14
+ export declare function cliRedirectUrl(port?: number): URL;
15
+ export declare const onboardingPath = "/onboarding";
16
+ export declare function onboardingUrl(mcpUrl: string): string;
package/dist/defaults.js CHANGED
@@ -1,7 +1,23 @@
1
1
  export const defaultMcpUrl = 'https://kody.codes/mcp';
2
+ /** Pin to Kody's stateless `/mcp` lane. */
3
+ export const modernMcpProtocolVersion = '2026-07-28';
2
4
  export const defaultScopes = ['profile', 'email'];
3
5
  export const keyringService = 'kody.codes';
4
6
  export const loginTimeoutMs = 5 * 60 * 1000;
5
7
  export const accessTokenSkewMs = 60_000;
6
8
  export const cliName = '@kodycodes/cli';
9
+ export const cliClientUri = 'https://github.com/kody-bot/cli';
10
+ /** Fixed loopback port so CIMD can list an exact redirect URI. */
11
+ export const oauthCallbackPort = 43742;
12
+ export const cliClientIdMetadataPath = '/oauth/cli-client-metadata.json';
13
+ export function cliClientMetadataUrl(mcpUrl) {
14
+ return new URL(cliClientIdMetadataPath, mcpUrl).href;
15
+ }
16
+ export function cliRedirectUrl(port = oauthCallbackPort) {
17
+ return new URL(`http://127.0.0.1:${port}/callback`);
18
+ }
19
+ export const onboardingPath = '/onboarding';
20
+ export function onboardingUrl(mcpUrl) {
21
+ return new URL(onboardingPath, mcpUrl).href;
22
+ }
7
23
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAA;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,CAAU,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAA;AACrD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAA;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,CAAU,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAA;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,iCAAiC,CAAA;AAC7D,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAA;AACtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AAExE,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAClD,OAAO,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,iBAAiB;IAC9D,OAAO,IAAI,GAAG,CAAC,oBAAoB,IAAI,WAAW,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA;AAE3C,MAAM,UAAU,aAAa,CAAC,MAAc;IAC3C,OAAO,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type HostDefinition } from './host-catalog.js';
2
+ import type { ProcessInfo } from './process-info.js';
3
+ export declare function listRunningProcesses(): Promise<Array<ProcessInfo>>;
4
+ export declare function detectRunningHosts(processes: Array<ProcessInfo>, catalog?: ReadonlyArray<HostDefinition>): Array<HostDefinition>;
@@ -0,0 +1,13 @@
1
+ import psList from 'ps-list';
2
+ import { hostCatalog } from './host-catalog.js';
3
+ export async function listRunningProcesses() {
4
+ const processes = await psList();
5
+ return processes.map((process) => ({
6
+ name: process.name,
7
+ cmd: process.cmd,
8
+ }));
9
+ }
10
+ export function detectRunningHosts(processes, catalog = hostCatalog) {
11
+ return catalog.filter((host) => processes.some((process) => host.matches(process)));
12
+ }
13
+ //# sourceMappingURL=detect-running-hosts.js.map