@gramatr/mcp 0.7.2 → 0.7.5

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 (54) hide show
  1. package/README.md +5 -5
  2. package/dist/bin/add-api-key.d.ts +14 -0
  3. package/dist/bin/add-api-key.d.ts.map +1 -1
  4. package/dist/bin/add-api-key.js +11 -12
  5. package/dist/bin/add-api-key.js.map +1 -1
  6. package/dist/bin/build-mcpb.d.ts +53 -0
  7. package/dist/bin/build-mcpb.d.ts.map +1 -1
  8. package/dist/bin/build-mcpb.js +109 -23
  9. package/dist/bin/build-mcpb.js.map +1 -1
  10. package/dist/bin/gramatr-mcp.d.ts +2 -1
  11. package/dist/bin/gramatr-mcp.d.ts.map +1 -1
  12. package/dist/bin/gramatr-mcp.js +32 -25
  13. package/dist/bin/gramatr-mcp.js.map +1 -1
  14. package/dist/bin/login.d.ts +30 -1
  15. package/dist/bin/login.d.ts.map +1 -1
  16. package/dist/bin/login.js +15 -16
  17. package/dist/bin/login.js.map +1 -1
  18. package/dist/bin/setup.d.ts +46 -0
  19. package/dist/bin/setup.d.ts.map +1 -1
  20. package/dist/bin/setup.js +35 -15
  21. package/dist/bin/setup.js.map +1 -1
  22. package/dist/hooks/index.d.ts.map +1 -1
  23. package/dist/hooks/index.js +1 -0
  24. package/dist/hooks/index.js.map +1 -1
  25. package/dist/hooks/lib/session.d.ts +4 -0
  26. package/dist/hooks/lib/session.d.ts.map +1 -1
  27. package/dist/hooks/lib/session.js +17 -6
  28. package/dist/hooks/lib/session.js.map +1 -1
  29. package/dist/hooks/lib/types.d.ts.map +1 -1
  30. package/dist/hooks/lib/types.js +1 -0
  31. package/dist/hooks/lib/types.js.map +1 -1
  32. package/dist/hooks/session-end.d.ts.map +1 -1
  33. package/dist/hooks/session-end.js +12 -6
  34. package/dist/hooks/session-end.js.map +1 -1
  35. package/dist/hooks/session-start.d.ts.map +1 -1
  36. package/dist/hooks/session-start.js +5 -7
  37. package/dist/hooks/session-start.js.map +1 -1
  38. package/dist/hooks/user-prompt-submit.d.ts.map +1 -1
  39. package/dist/hooks/user-prompt-submit.js +2 -1
  40. package/dist/hooks/user-prompt-submit.js.map +1 -1
  41. package/dist/server/auth.d.ts +6 -1
  42. package/dist/server/auth.d.ts.map +1 -1
  43. package/dist/server/auth.js +40 -32
  44. package/dist/server/auth.js.map +1 -1
  45. package/dist/server/server.js +2 -2
  46. package/dist/server/server.js.map +1 -1
  47. package/dist/setup/instructions.d.ts +2 -0
  48. package/dist/setup/instructions.d.ts.map +1 -1
  49. package/dist/setup/instructions.js +59 -0
  50. package/dist/setup/instructions.js.map +1 -1
  51. package/dist/tools/local-tools.d.ts.map +1 -1
  52. package/dist/tools/local-tools.js +2 -1
  53. package/dist/tools/local-tools.js.map +1 -1
  54. package/package.json +1 -1
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @gramatr/mcp
2
2
 
3
- Local MCP server for [gramatr](https://gramatr.com) -- your cross-agent AI brain.
3
+ Intelligence middleware for AI agents by [gramatr](https://gramatr.com).
4
4
 
5
- Proxies all remote gramatr tools with local auth injection, input validation,
6
- LRU caching, and offline queueing. Works with Claude Code, Claude Desktop,
7
- Cursor, Codex, ChatGPT Desktop, and Gemini CLI.
5
+ Pre-classifies every request, injects relevant memory and behavioral context,
6
+ enforces data quality, and maintains session continuity across Claude, ChatGPT,
7
+ Codex, Cursor, Gemini, and any MCP-compatible client.
8
8
 
9
9
  ## Quick Install
10
10
 
@@ -132,4 +132,4 @@ Or via npx (slower, checks npm on every start):
132
132
 
133
133
  ## License
134
134
 
135
- See [LICENSE](../../LICENSE) in the repository root.
135
+ See [LICENSE](LICENSE) in this package.
@@ -1,3 +1,17 @@
1
1
  #!/usr/bin/env node
2
+ export declare function gmtrJsonPath(): string;
3
+ export declare function log(msg?: string): void;
4
+ export declare function err(msg: string): void;
5
+ export declare function parseArgs(argv: string[]): {
6
+ fromEnv?: string;
7
+ force: boolean;
8
+ help: boolean;
9
+ };
10
+ export declare function showHelp(): void;
11
+ export declare function validateFormat(key: string): boolean;
12
+ export declare function readPipedStdin(): Promise<string | null>;
13
+ export declare function readInteractive(): Promise<string>;
14
+ export declare function validateAgainstServer(key: string): Promise<boolean>;
15
+ export declare function writeKey(key: string): void;
2
16
  export declare function main(argv?: string[]): Promise<number>;
3
17
  //# sourceMappingURL=add-api-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-api-key.d.ts","sourceRoot":"","sources":["../../src/bin/add-api-key.ts"],"names":[],"mappings":";AAyHA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAqClF"}
1
+ {"version":3,"file":"add-api-key.d.ts","sourceRoot":"","sources":["../../src/bin/add-api-key.ts"],"names":[],"mappings":";AAOA,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAKD,wBAAgB,GAAG,CAAC,GAAG,GAAE,MAAW,GAAG,IAAI,CAE1C;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAErC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAW7F;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAU/B;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ7D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAavD;AAED,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BzE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAU1C;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAqClF"}
@@ -3,19 +3,19 @@ import { chmodSync, existsSync, readFileSync, writeFileSync } from 'fs';
3
3
  import { join } from 'path';
4
4
  import { createInterface } from 'readline';
5
5
  import { getHomeDir, getGramatrUrlFromEnv } from '../config-runtime.js';
6
- function gmtrJsonPath() {
6
+ export function gmtrJsonPath() {
7
7
  return join(getHomeDir(), '.gramatr.json');
8
8
  }
9
9
  const SERVER_BASE = (getGramatrUrlFromEnv() || 'https://api.gramatr.com').replace(/\/mcp\/?$/, '');
10
10
  const KEY_FORMAT = /^(gramatr|gmtr|aios)_(sk|pk)_[A-Za-z0-9_-]+$/;
11
11
  const LEGACY_OPAQUE = /^[A-Za-z0-9_.-]{32,}$/;
12
- function log(msg = '') {
12
+ export function log(msg = '') {
13
13
  process.stdout.write(`${msg}\n`);
14
14
  }
15
- function err(msg) {
15
+ export function err(msg) {
16
16
  process.stderr.write(`${msg}\n`);
17
17
  }
18
- function parseArgs(argv) {
18
+ export function parseArgs(argv) {
19
19
  let fromEnv;
20
20
  let force = false;
21
21
  let help = false;
@@ -30,7 +30,7 @@ function parseArgs(argv) {
30
30
  }
31
31
  return { fromEnv, force, help };
32
32
  }
33
- function showHelp() {
33
+ export function showHelp() {
34
34
  log(`gramatr-mcp add-api-key — Add a gramatr API key to ~/.gramatr.json
35
35
 
36
36
  Usage:
@@ -41,10 +41,10 @@ Usage:
41
41
 
42
42
  Server: ${SERVER_BASE}`);
43
43
  }
44
- function validateFormat(key) {
44
+ export function validateFormat(key) {
45
45
  return KEY_FORMAT.test(key) || (LEGACY_OPAQUE.test(key) && !key.includes(' '));
46
46
  }
47
- async function readPipedStdin() {
47
+ export async function readPipedStdin() {
48
48
  if (process.stdin.isTTY)
49
49
  return null;
50
50
  return new Promise((resolve) => {
@@ -54,7 +54,7 @@ async function readPipedStdin() {
54
54
  process.stdin.on('error', () => resolve(null));
55
55
  });
56
56
  }
57
- async function readInteractive() {
57
+ export async function readInteractive() {
58
58
  log('');
59
59
  log('Paste your gramatr API key below.');
60
60
  log('(keys usually start with gramatr_sk_)');
@@ -68,7 +68,7 @@ async function readInteractive() {
68
68
  });
69
69
  });
70
70
  }
71
- async function validateAgainstServer(key) {
71
+ export async function validateAgainstServer(key) {
72
72
  try {
73
73
  const res = await fetch(`${SERVER_BASE}/mcp`, {
74
74
  method: 'POST',
@@ -99,7 +99,7 @@ async function validateAgainstServer(key) {
99
99
  return false;
100
100
  }
101
101
  }
102
- function writeKey(key) {
102
+ export function writeKey(key) {
103
103
  let existing = {};
104
104
  if (existsSync(gmtrJsonPath())) {
105
105
  try {
@@ -108,8 +108,7 @@ function writeKey(key) {
108
108
  catch { }
109
109
  }
110
110
  existing.token = key;
111
- existing.token_type =
112
- key.startsWith('gramatr_sk_') || key.startsWith('aios_sk_') ? 'api_key' : 'oauth';
111
+ existing.token_type = /^[a-z]+_(?:sk|pk)_/i.test(key) ? 'api_key' : 'oauth';
113
112
  existing.authenticated_at = new Date().toISOString();
114
113
  writeFileSync(gmtrJsonPath(), `${JSON.stringify(existing, null, 2)}\n`, 'utf8');
115
114
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"add-api-key.js","sourceRoot":"","sources":["../../src/bin/add-api-key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-api-key.js","sourceRoot":"","sources":["../../src/bin/add-api-key.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAExE,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC;AACD,MAAM,WAAW,GAAG,CAAC,oBAAoB,EAAE,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACnG,MAAM,UAAU,GAAG,8CAA8C,CAAC;AAClE,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,IAAI,OAA2B,CAAC;IAChC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,YAAY;YAAE,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACvC,IAAI,CAAC,KAAK,SAAS;YAAE,KAAK,GAAG,IAAI,CAAC;aAClC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,GAAG,CAAC;;;;;;;;UAQI,WAAW,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACzC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,MAAM,EAAE;YAC5C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,qCAAqC;gBAC7C,aAAa,EAAE,UAAU,GAAG,EAAE;aAC/B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE;aACnD,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QAC3D,IACE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,QAAQ,GAAwB,EAAE,CAAC;IACvC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IAC/E,CAAC;IACD,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5E,QAAQ,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChF,IAAI,CAAC;QAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,GAAG,CAAC,kBAAkB,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,GAAG,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,yEAAyE,CAAC,CAAC;YAC/E,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,CAAC;IACd,GAAG,CAAC,oBAAoB,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,SAAS,EAAE;IACzC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAEvC,IAAI,MAAM,EAAE,CAAC;IACX,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,56 @@
1
1
  #!/usr/bin/env node
2
+ interface McpbManifest {
3
+ manifest_version: string;
4
+ name: string;
5
+ display_name: string;
6
+ version: string;
7
+ description: string;
8
+ long_description: string;
9
+ author: {
10
+ name: string;
11
+ url: string;
12
+ };
13
+ homepage: string;
14
+ documentation: string;
15
+ repository: {
16
+ type: string;
17
+ url: string;
18
+ };
19
+ license: string;
20
+ keywords: string[];
21
+ icon?: string;
22
+ server: {
23
+ type: 'node';
24
+ entry_point: string;
25
+ mcp_config: {
26
+ command: 'node';
27
+ args: string[];
28
+ env: Record<string, string>;
29
+ };
30
+ };
31
+ user_config: Record<string, {
32
+ type: string;
33
+ title: string;
34
+ description: string;
35
+ sensitive?: boolean;
36
+ required: boolean;
37
+ }>;
38
+ compatibility: {
39
+ claude_desktop: string;
40
+ platforms: string[];
41
+ runtimes: {
42
+ node: string;
43
+ };
44
+ };
45
+ privacy_policies: string[];
46
+ tools_generated: boolean;
47
+ prompts_generated: boolean;
48
+ }
49
+ export declare function buildManifest(version: string): McpbManifest;
50
+ export declare function buildMcpb(outDir: string, version: string): {
51
+ bundleDir: string;
52
+ archivePath: string;
53
+ manifest: McpbManifest;
54
+ };
2
55
  export {};
3
56
  //# sourceMappingURL=build-mcpb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-mcpb.d.ts","sourceRoot":"","sources":["../../src/bin/build-mcpb.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"build-mcpb.d.ts","sourceRoot":"","sources":["../../src/bin/build-mcpb.ts"],"names":[],"mappings":";AAwBA,UAAU,YAAY;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,EAAE,CAAC;YACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC7B,CAAC;KACH,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1H,aAAa,EAAE;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5B,CAAC;IACF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAgBD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAmD3D;AAiFD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAa7H"}
@@ -1,23 +1,29 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
3
- import { dirname, join } from 'path';
4
- import { fileURLToPath } from 'url';
2
+ import { copyFileSync, cpSync, existsSync, mkdirSync, readFileSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
3
+ import { execFileSync } from 'node:child_process';
4
+ import { dirname, join, resolve } from 'node:path';
5
+ import { createRequire } from 'node:module';
6
+ import { fileURLToPath } from 'node:url';
5
7
  import { getGramatrUrlFromEnv } from '../config-runtime.js';
6
8
  const currentFile = fileURLToPath(import.meta.url);
7
9
  const binDir = dirname(currentFile);
8
10
  const packageDir = dirname(dirname(binDir));
9
11
  const repoRoot = dirname(dirname(packageDir));
12
+ const require = createRequire(import.meta.url);
13
+ function readPackageJson(path) {
14
+ return JSON.parse(readFileSync(path, 'utf8'));
15
+ }
10
16
  function readPackageVersion() {
11
17
  try {
12
18
  const pkgPath = join(packageDir, 'package.json');
13
- const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
19
+ const pkg = readPackageJson(pkgPath);
14
20
  return pkg.version || '0.0.0';
15
21
  }
16
22
  catch {
17
23
  return '0.0.0';
18
24
  }
19
25
  }
20
- function buildManifest(version) {
26
+ export function buildManifest(version) {
21
27
  const mcpUrl = getGramatrUrlFromEnv() || 'https://api.gramatr.com/mcp';
22
28
  const baseUrl = mcpUrl.replace(/\/mcp\/?$/, '');
23
29
  return {
@@ -25,21 +31,29 @@ function buildManifest(version) {
25
31
  name: 'gramatr',
26
32
  display_name: 'gramatr',
27
33
  version,
28
- description: 'gramatr local MCP runtime and hosted intelligence integration for Claude Desktop.',
34
+ description: 'gramatr local MCP runtime for Claude Desktop with hosted intelligence proxying.',
29
35
  long_description: [
30
- 'gramatr provides decision routing, memory, and learning signals across supported AI tools.',
31
- 'Claude Desktop connects through the gramatr MCP integration surface.',
36
+ 'gramatr runs locally inside Claude Desktop and proxies authenticated requests to the hosted gramatr intelligence layer.',
37
+ 'This keeps tool validation and local runtime isolation in the desktop extension while minimizing prompt overhead.',
32
38
  ].join('\n'),
33
39
  author: { name: 'gramatr', url: 'https://gramatr.com' },
34
40
  homepage: 'https://gramatr.com',
35
41
  documentation: `${baseUrl}/.well-known/mcp/server-card.json`,
36
42
  repository: { type: 'git', url: 'https://github.com/gramatr/gramatr' },
37
43
  license: 'SEE LICENSE IN LICENSE',
38
- keywords: ['ai', 'mcp', 'routing', 'memory', 'gramatr'],
44
+ keywords: ['ai', 'mcp', 'routing', 'memory', 'gramatr', 'claude-desktop'],
45
+ icon: 'icon.png',
39
46
  server: {
40
- type: 'remote',
41
- transport: 'streamable-http',
42
- url: mcpUrl,
47
+ type: 'node',
48
+ entry_point: 'dist/bin/gramatr-mcp.js',
49
+ mcp_config: {
50
+ command: 'node',
51
+ args: ['${__dirname}/dist/bin/gramatr-mcp.js'],
52
+ env: {
53
+ GRAMATR_API_KEY: '${user_config.api_key}',
54
+ GRAMATR_URL: mcpUrl,
55
+ },
56
+ },
43
57
  },
44
58
  user_config: {
45
59
  api_key: {
@@ -50,28 +64,100 @@ function buildManifest(version) {
50
64
  required: true,
51
65
  },
52
66
  },
53
- compatibility: { claude_desktop: '>=1.0.0', platforms: ['darwin', 'win32'] },
67
+ compatibility: {
68
+ claude_desktop: '>=1.0.0',
69
+ platforms: ['darwin', 'win32'],
70
+ runtimes: { node: '>=20.0.0' },
71
+ },
54
72
  privacy_policies: ['https://gramatr.com/privacy'],
55
73
  tools_generated: true,
56
74
  prompts_generated: true,
57
75
  };
58
76
  }
77
+ function ensureDir(path) {
78
+ mkdirSync(path, { recursive: true });
79
+ }
80
+ function resolvePackageRoot(packageName) {
81
+ return realpathSync(join(repoRoot, 'node_modules', ...packageName.split('/')));
82
+ }
83
+ function copyPackageRecursive(packageName, nodeModulesDir, seen = new Set()) {
84
+ if (seen.has(packageName))
85
+ return;
86
+ seen.add(packageName);
87
+ const packageRoot = resolvePackageRoot(packageName);
88
+ const packageJson = readPackageJson(join(packageRoot, 'package.json'));
89
+ const destination = join(nodeModulesDir, ...packageName.split('/'));
90
+ ensureDir(dirname(destination));
91
+ cpSync(packageRoot, destination, { recursive: true });
92
+ const dependencies = Object.keys(packageJson.dependencies || {});
93
+ const peerDependencies = Object.entries(packageJson.peerDependencies || {})
94
+ .filter(([name]) => !packageJson.peerDependenciesMeta?.[name]?.optional)
95
+ .map(([name]) => name);
96
+ for (const dependency of [...dependencies, ...peerDependencies]) {
97
+ copyPackageRecursive(dependency, nodeModulesDir, seen);
98
+ }
99
+ }
100
+ function writeRuntimePackageJson(bundleDir, version) {
101
+ const runtimePackage = {
102
+ name: 'gramatr-mcpb-runtime',
103
+ version,
104
+ private: true,
105
+ type: 'module',
106
+ };
107
+ writeFileSync(join(bundleDir, 'package.json'), `${JSON.stringify(runtimePackage, null, 2)}\n`, 'utf8');
108
+ }
109
+ function writeManifest(bundleDir, manifest) {
110
+ writeFileSync(join(bundleDir, 'manifest.json'), `${JSON.stringify(manifest, null, 2)}\n`, 'utf8');
111
+ }
112
+ function copyRuntimeFiles(bundleDir, version) {
113
+ cpSync(join(packageDir, 'dist'), join(bundleDir, 'dist'), { recursive: true });
114
+ copyPackageRecursive('@modelcontextprotocol/sdk', join(bundleDir, 'node_modules'));
115
+ writeRuntimePackageJson(bundleDir, version);
116
+ const licensePath = join(repoRoot, 'LICENSE');
117
+ if (existsSync(licensePath)) {
118
+ copyFileSync(licensePath, join(bundleDir, 'LICENSE'));
119
+ }
120
+ const iconPath = join(repoRoot, 'packages', 'mcp-server', 'assets', 'logo.png');
121
+ if (existsSync(iconPath)) {
122
+ copyFileSync(iconPath, join(bundleDir, 'icon.png'));
123
+ }
124
+ }
125
+ function buildArchive(bundleDir, archivePath) {
126
+ rmSync(archivePath, { force: true });
127
+ if (process.platform === 'win32') {
128
+ execFileSync('powershell.exe', [
129
+ '-NoProfile',
130
+ '-Command',
131
+ `Compress-Archive -Path * -DestinationPath '${archivePath.replace(/'/g, "''")}' -Force`,
132
+ ], { cwd: bundleDir, stdio: 'inherit' });
133
+ return;
134
+ }
135
+ execFileSync('zip', ['-qr', archivePath, '.'], { cwd: bundleDir, stdio: 'inherit' });
136
+ }
137
+ export function buildMcpb(outDir, version) {
138
+ const manifest = buildManifest(version);
139
+ const stagingDir = join(outDir, 'gramatr.mcpb.contents');
140
+ const archivePath = join(outDir, 'gramatr.mcpb');
141
+ rmSync(stagingDir, { recursive: true, force: true });
142
+ ensureDir(stagingDir);
143
+ writeManifest(stagingDir, manifest);
144
+ copyRuntimeFiles(stagingDir, version);
145
+ buildArchive(stagingDir, archivePath);
146
+ return { bundleDir: stagingDir, archivePath, manifest };
147
+ }
59
148
  function main() {
60
149
  const args = process.argv.slice(2);
61
150
  const normalized = args[0] === 'build-mcpb' ? args.slice(1) : args;
62
151
  const outIndex = normalized.indexOf('--out');
63
- const outDir = outIndex >= 0 && normalized[outIndex + 1] ? normalized[outIndex + 1] : join(repoRoot, 'dist');
152
+ const outDir = outIndex >= 0 && normalized[outIndex + 1] ? resolve(normalized[outIndex + 1]) : join(repoRoot, 'dist');
153
+ ensureDir(outDir);
64
154
  const version = readPackageVersion();
65
- const manifest = buildManifest(version);
66
- const mcpbDir = join(outDir, 'gramatr.mcpb');
67
- if (!existsSync(mcpbDir))
68
- mkdirSync(mcpbDir, { recursive: true });
69
- const manifestPath = join(mcpbDir, 'manifest.json');
70
- writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, 'utf8');
71
- process.stdout.write(`OK Built .mcpb package\n`);
72
- process.stdout.write(` Manifest: ${manifestPath}\n`);
155
+ const result = buildMcpb(outDir, version);
156
+ process.stdout.write('OK Built .mcpb package\n');
157
+ process.stdout.write(` Archive: ${result.archivePath}\n`);
158
+ process.stdout.write(` Staging: ${result.bundleDir}\n`);
73
159
  process.stdout.write(` Version: ${version}\n`);
74
- process.stdout.write(` Server: ${manifest.server.url}\n`);
160
+ process.stdout.write(` Entry: ${result.manifest.server.entry_point}\n`);
75
161
  }
76
162
  main();
77
163
  //# sourceMappingURL=build-mcpb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-mcpb.js","sourceRoot":"","sources":["../../src/bin/build-mcpb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-mcpb.js","sourceRoot":"","sources":["../../src/bin/build-mcpb.ts"],"names":[],"mappings":"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"}
@@ -32,5 +32,6 @@
32
32
  * client hooks (Claude Code, Codex, Gemini) invoke this binary directly
33
33
  * instead of shipping duplicated TypeScript in each integration package.
34
34
  */
35
- export {};
35
+ export declare function printHelp(): void;
36
+ export declare function cliMain(cliArgs?: string[]): Promise<void>;
36
37
  //# sourceMappingURL=gramatr-mcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gramatr-mcp.d.ts","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}
1
+ {"version":3,"file":"gramatr-mcp.d.ts","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,wBAAgB,SAAS,IAAI,IAAI,CAwChC;AAED,wBAAsB,OAAO,CAAC,OAAO,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHtF"}
@@ -32,12 +32,9 @@
32
32
  * client hooks (Claude Code, Codex, Gemini) invoke this binary directly
33
33
  * instead of shipping duplicated TypeScript in each integration package.
34
34
  */
35
- const args = process.argv.slice(2);
36
- if (args.includes('--version') || args.includes('-v')) {
37
- process.stdout.write('0.0.5\n');
38
- process.exit(0);
39
- }
40
- if (args.includes('--help') || args.includes('-h')) {
35
+ import { VERSION } from '../hooks/lib/version.js';
36
+ import { fileURLToPath } from 'node:url';
37
+ export function printHelp() {
41
38
  process.stderr.write(`
42
39
  gramatr-mcp — Local MCP server for grāmatr
43
40
 
@@ -77,42 +74,49 @@ if (args.includes('--help') || args.includes('-h')) {
77
74
  gramatr-mcp setup gemini Write Gemini extension manifest/hooks
78
75
  gramatr-mcp setup claude --dry Preview without writing
79
76
  `);
80
- process.exit(0);
81
77
  }
82
- async function main() {
78
+ export async function cliMain(cliArgs = process.argv.slice(2)) {
83
79
  // Handle hook subcommand — MUST be before any heavyweight imports so hook
84
80
  // invocation stays under the 250ms cold-start budget for UserPromptSubmit /
85
81
  // SessionStart. See issue #652 comment 4230136578 for the latency budget.
86
- if (args[0] === 'hook') {
82
+ if (cliArgs.includes('--version') || cliArgs.includes('-v')) {
83
+ process.stdout.write(`${VERSION}\n`);
84
+ process.exit(0);
85
+ }
86
+ if (cliArgs.includes('--help') || cliArgs.includes('-h')) {
87
+ printHelp();
88
+ process.exit(0);
89
+ }
90
+ if (cliArgs[0] === 'hook') {
87
91
  const { runHook } = await import('./hook-dispatcher.js');
88
- const code = await runHook(args[1], args.slice(2));
92
+ const code = await runHook(cliArgs[1], cliArgs.slice(2));
89
93
  process.exit(code);
90
94
  }
91
- if (args[0] === 'login') {
95
+ if (cliArgs[0] === 'login') {
92
96
  const { main: runLogin } = await import('./login.js');
93
97
  await runLogin();
94
98
  return;
95
99
  }
96
- if (args[0] === 'add-api-key') {
100
+ if (cliArgs[0] === 'add-api-key') {
97
101
  const { main: runAddApiKey } = await import('./add-api-key.js');
98
102
  process.exit(await runAddApiKey());
99
103
  }
100
- if (args[0] === 'logout') {
104
+ if (cliArgs[0] === 'logout') {
101
105
  const { main: runLogout } = await import('./logout.js');
102
106
  process.exit(runLogout());
103
107
  }
104
- if (args[0] === 'clear-creds') {
108
+ if (cliArgs[0] === 'clear-creds') {
105
109
  const { main: runClearCreds } = await import('./clear-creds.js');
106
110
  process.exit(runClearCreds());
107
111
  }
108
- if (args[0] === 'build-mcpb') {
112
+ if (cliArgs[0] === 'build-mcpb') {
109
113
  await import('./build-mcpb.js');
110
114
  return;
111
115
  }
112
116
  // Handle setup subcommand
113
- if (args[0] === 'setup') {
114
- const target = args[1];
115
- const dryRun = args.includes('--dry');
117
+ if (cliArgs[0] === 'setup') {
118
+ const target = cliArgs[1];
119
+ const dryRun = cliArgs.includes('--dry');
116
120
  if (target === 'claude') {
117
121
  const { setupClaude } = await import('./setup.js');
118
122
  setupClaude(dryRun);
@@ -154,7 +158,7 @@ async function main() {
154
158
  return;
155
159
  }
156
160
  if (target === 'web') {
157
- const webTarget = args[2];
161
+ const webTarget = cliArgs[2];
158
162
  const resolved = webTarget === 'chatgpt' ? 'chatgpt-web'
159
163
  : webTarget === 'gemini' ? 'gemini-web'
160
164
  : 'claude-web';
@@ -171,10 +175,13 @@ async function main() {
171
175
  const { startServer } = await import('../server/server.js');
172
176
  await startServer();
173
177
  }
174
- main().catch((error) => {
175
- const message = error instanceof Error ? error.message : String(error);
176
- process.stderr.write(`[gramatr-mcp] Fatal: ${message}\n`);
177
- process.exit(1);
178
- });
179
- export {};
178
+ const isEntrypoint = process.argv[1] != null
179
+ && fileURLToPath(import.meta.url) === process.argv[1];
180
+ if (isEntrypoint) {
181
+ cliMain().catch((error) => {
182
+ const message = error instanceof Error ? error.message : String(error);
183
+ process.stderr.write(`[gramatr-mcp] Fatal: ${message}\n`);
184
+ process.exit(1);
185
+ });
186
+ }
180
187
  //# sourceMappingURL=gramatr-mcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gramatr-mcp.js","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gramatr-mcp.js","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,34 @@
14
14
  * Token is stored in ~/.gramatr.json under the "token" key.
15
15
  * The local gramatr MCP runtime reads this on every proxied request.
16
16
  */
17
- export declare function main(): Promise<void>;
17
+ export declare function isHeadless(forceFlag?: boolean): boolean;
18
+ export declare function readConfig(): Record<string, any>;
19
+ export declare function writeConfig(config: Record<string, any>): void;
20
+ export declare function readJsonRecord(response: Response): Promise<Record<string, any>>;
21
+ export declare function checkServerHealth(): Promise<{
22
+ ok: boolean;
23
+ version?: string;
24
+ error?: string;
25
+ }>;
26
+ export declare function testToken(token: string): Promise<{
27
+ valid: boolean;
28
+ user?: string;
29
+ error?: string;
30
+ }>;
31
+ export declare function startDeviceAuthorization(): Promise<{
32
+ device_code: string;
33
+ user_code: string;
34
+ verification_uri: string;
35
+ verification_uri_complete?: string;
36
+ expires_in: number;
37
+ interval: number;
38
+ }>;
39
+ export declare function pollDeviceAuthorization(deviceCode: string): Promise<string>;
40
+ export declare function showStatus(): Promise<void>;
41
+ export declare function logout(): Promise<void>;
42
+ export declare function loginWithToken(token: string): Promise<void>;
43
+ export declare function loginBrowser(opts?: {
44
+ forceHeadless?: boolean;
45
+ }): Promise<void>;
46
+ export declare function main(rawArgs?: string[]): Promise<void>;
18
47
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/bin/login.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAgqBH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAmE1C"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/bin/login.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAmLH,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAe9D;AAID,wBAAgB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAMhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE7D;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAIrF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAWpG;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8CzG;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CA6BD;AAED,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBjF;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAiChD;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ5C;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjE;AAED,wBAAsB,YAAY,CAAC,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgQxF;AAWD,wBAAsB,IAAI,CAAC,OAAO,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEnF"}