@ai-support-agent/cli 0.0.4 → 0.0.5-beta.2

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 (42) hide show
  1. package/dist/agent-runner.d.ts +4 -1
  2. package/dist/agent-runner.d.ts.map +1 -1
  3. package/dist/agent-runner.js +17 -5
  4. package/dist/agent-runner.js.map +1 -1
  5. package/dist/api-client.d.ts.map +1 -1
  6. package/dist/api-client.js +6 -1
  7. package/dist/api-client.js.map +1 -1
  8. package/dist/appsync-subscriber.d.ts.map +1 -1
  9. package/dist/appsync-subscriber.js +3 -1
  10. package/dist/appsync-subscriber.js.map +1 -1
  11. package/dist/auto-updater.d.ts.map +1 -1
  12. package/dist/auto-updater.js +7 -2
  13. package/dist/auto-updater.js.map +1 -1
  14. package/dist/index.js +38 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/locales/en.json +12 -0
  17. package/dist/locales/ja.json +12 -0
  18. package/dist/locales/locales/en.json +12 -0
  19. package/dist/locales/locales/ja.json +12 -0
  20. package/dist/logger.d.ts +2 -0
  21. package/dist/logger.d.ts.map +1 -1
  22. package/dist/logger.js +20 -1
  23. package/dist/logger.js.map +1 -1
  24. package/dist/mcp/tools/credentials.d.ts +10 -1
  25. package/dist/mcp/tools/credentials.d.ts.map +1 -1
  26. package/dist/mcp/tools/credentials.js +10 -1
  27. package/dist/mcp/tools/credentials.js.map +1 -1
  28. package/dist/mcp/tools/db-query.d.ts +6 -2
  29. package/dist/mcp/tools/db-query.d.ts.map +1 -1
  30. package/dist/mcp/tools/db-query.js +41 -19
  31. package/dist/mcp/tools/db-query.js.map +1 -1
  32. package/dist/sentry.d.ts +14 -0
  33. package/dist/sentry.d.ts.map +1 -0
  34. package/dist/sentry.js +98 -0
  35. package/dist/sentry.js.map +1 -0
  36. package/dist/types.d.ts +2 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/update-checker.d.ts +26 -5
  39. package/dist/update-checker.d.ts.map +1 -1
  40. package/dist/update-checker.js +148 -8
  41. package/dist/update-checker.js.map +1 -1
  42. package/package.json +2 -1
@@ -33,30 +33,50 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.validateSelectOnly = validateSelectOnly;
36
+ exports.validateSql = validateSql;
37
37
  exports.executeQuery = executeQuery;
38
38
  exports.registerDbQueryTool = registerDbQueryTool;
39
39
  const zod_1 = require("zod");
40
40
  const mcp_response_1 = require("./mcp-response");
41
- /** SQL文が SELECT のみかどうか検証する */
42
- function validateSelectOnly(sql) {
41
+ /** SQL文を検証する。writePermissions INSERT/UPDATE/DELETE の許可を制御 */
42
+ function validateSql(sql, writePermissions) {
43
43
  const trimmed = sql.trim();
44
44
  if (!trimmed) {
45
45
  return { valid: false, error: 'SQL query is empty' };
46
46
  }
47
- // 禁止キーワードをチェック(大文字小文字無視)
48
- const forbidden = ['DROP', 'DELETE', 'UPDATE', 'INSERT', 'TRUNCATE', 'ALTER', 'CREATE', 'GRANT', 'REVOKE'];
49
47
  const upper = trimmed.toUpperCase();
50
- for (const keyword of forbidden) {
51
- // 単語境界でマッチ(前後が非単語文字 or 文字列の先頭/末尾)
48
+ // DDLは常に禁止
49
+ const ddlKeywords = ['DROP', 'TRUNCATE', 'ALTER', 'CREATE', 'GRANT', 'REVOKE'];
50
+ for (const keyword of ddlKeywords) {
52
51
  const regex = new RegExp(`(?<![A-Z_])${keyword}(?![A-Z_])`);
53
52
  if (regex.test(upper)) {
54
53
  return { valid: false, error: `Forbidden SQL operation: ${keyword}` };
55
54
  }
56
55
  }
57
- // SELECT で始まることを確認(WITH ... SELECT も許可)
58
- if (!upper.startsWith('SELECT') && !upper.startsWith('WITH') && !upper.startsWith('EXPLAIN')) {
59
- return { valid: false, error: 'Only SELECT, WITH, and EXPLAIN statements are allowed' };
56
+ // DML書き込み操作は writePermissions に基づいて許可/拒否
57
+ const dmlChecks = [
58
+ { keyword: 'INSERT', permission: writePermissions?.insert === true },
59
+ { keyword: 'UPDATE', permission: writePermissions?.update === true },
60
+ { keyword: 'DELETE', permission: writePermissions?.delete === true },
61
+ ];
62
+ for (const { keyword, permission } of dmlChecks) {
63
+ const regex = new RegExp(`(?<![A-Z_])${keyword}(?![A-Z_])`);
64
+ if (regex.test(upper) && !permission) {
65
+ return { valid: false, error: `Forbidden SQL operation: ${keyword}` };
66
+ }
67
+ }
68
+ // 許可される先頭キーワード
69
+ const allowedStarts = ['SELECT', 'WITH', 'EXPLAIN'];
70
+ if (writePermissions?.insert)
71
+ allowedStarts.push('INSERT');
72
+ if (writePermissions?.update)
73
+ allowedStarts.push('UPDATE');
74
+ if (writePermissions?.delete)
75
+ allowedStarts.push('DELETE');
76
+ const startsWithAllowed = allowedStarts.some((kw) => upper.startsWith(kw));
77
+ if (!startsWithAllowed) {
78
+ const allowed = allowedStarts.join(', ');
79
+ return { valid: false, error: `Only ${allowed} statements are allowed` };
60
80
  }
61
81
  return { valid: true };
62
82
  }
@@ -82,6 +102,8 @@ async function executeQuery(credentials, sql) {
82
102
  }
83
103
  if (credentials.engine === 'postgresql') {
84
104
  const { Client } = await Promise.resolve().then(() => __importStar(require('pg')));
105
+ const isLocalHost = credentials.host === 'localhost' || credentials.host === '127.0.0.1';
106
+ const useSsl = credentials.ssl !== undefined ? credentials.ssl : !isLocalHost;
85
107
  const client = new Client({
86
108
  host: credentials.host,
87
109
  port: credentials.port,
@@ -89,7 +111,7 @@ async function executeQuery(credentials, sql) {
89
111
  password: credentials.password,
90
112
  database: credentials.database,
91
113
  connectionTimeoutMillis: 10000,
92
- ssl: false,
114
+ ssl: useSsl ? { rejectUnauthorized: true } : false,
93
115
  });
94
116
  try {
95
117
  await client.connect();
@@ -104,18 +126,18 @@ async function executeQuery(credentials, sql) {
104
126
  }
105
127
  /** db_query ツールを MCP サーバーに登録する */
106
128
  function registerDbQueryTool(server, apiClient) {
107
- server.tool('db_query', 'Execute a SELECT query on a project database. Only SELECT/WITH/EXPLAIN statements are allowed.', {
129
+ server.tool('db_query', 'Execute a SQL query on a project database. Supports SELECT, INSERT, UPDATE, and DELETE. Write operations (INSERT/UPDATE/DELETE) are allowed when the database connection has the corresponding write permissions configured. DDL operations are always forbidden. Submit the SQL directly — permission checks are handled server-side.', {
108
130
  name: zod_1.z.string().describe('Database connection name (e.g. "MAIN", "READONLY")'),
109
- sql: zod_1.z.string().describe('SQL query to execute (SELECT only)'),
131
+ sql: zod_1.z.string().describe('SQL query to execute (SELECT, INSERT, UPDATE, DELETE)'),
110
132
  }, async ({ name, sql }) => {
111
- // Validate SQL
112
- const validation = validateSelectOnly(sql);
113
- if (!validation.valid) {
114
- return (0, mcp_response_1.mcpErrorResponse)(validation.error);
115
- }
116
133
  try {
117
- // Get credentials from API
134
+ // Get credentials from API (includes writePermissions)
118
135
  const credentials = await apiClient.getDbCredentials(name);
136
+ // Validate SQL with write permissions
137
+ const validation = validateSql(sql, credentials.writePermissions);
138
+ if (!validation.valid) {
139
+ return (0, mcp_response_1.mcpErrorResponse)(validation.error);
140
+ }
119
141
  // Execute query
120
142
  const rows = await executeQuery(credentials, sql);
121
143
  // Format result
@@ -1 +1 @@
1
- {"version":3,"file":"db-query.js","sourceRoot":"","sources":["../../../src/mcp/tools/db-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-query.js","sourceRoot":"","sources":["../../../src/mcp/tools/db-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Sentry を条件付きで初期化する。
3
+ * SENTRY_DSN が設定されていない場合は何もしない(オプトイン方式)。
4
+ */
5
+ export declare function initSentry(): Promise<void>;
6
+ /**
7
+ * 例外を Sentry に報告する。未初期化時は no-op。
8
+ */
9
+ export declare function captureException(error: unknown, context?: Record<string, unknown>): void;
10
+ /**
11
+ * Sentry のイベントキューをフラッシュする。プロセス終了前に呼び出す。
12
+ */
13
+ export declare function flushSentry(): Promise<void>;
14
+ //# sourceMappingURL=sentry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAGxF;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAGjD"}
package/dist/sentry.js ADDED
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.initSentry = initSentry;
37
+ exports.captureException = captureException;
38
+ exports.flushSentry = flushSentry;
39
+ const constants_1 = require("./constants");
40
+ const logger_1 = require("./logger");
41
+ let sentry = null;
42
+ /**
43
+ * Sentry を条件付きで初期化する。
44
+ * SENTRY_DSN が設定されていない場合は何もしない(オプトイン方式)。
45
+ */
46
+ async function initSentry() {
47
+ const dsn = process.env.SENTRY_DSN;
48
+ if (!dsn) {
49
+ return;
50
+ }
51
+ const Sentry = await Promise.resolve().then(() => __importStar(require('@sentry/node')));
52
+ Sentry.init({
53
+ dsn,
54
+ release: `ai-support-agent-cli@${constants_1.AGENT_VERSION}`,
55
+ environment: process.env.SENTRY_ENVIRONMENT || process.env.NODE_ENV || 'production',
56
+ tracesSampleRate: 0.05,
57
+ sendDefaultPii: false,
58
+ beforeSend(event) {
59
+ if (event.breadcrumbs) {
60
+ event.breadcrumbs = event.breadcrumbs.map((breadcrumb) => ({
61
+ ...breadcrumb,
62
+ message: breadcrumb.message ? (0, logger_1.maskSecrets)(breadcrumb.message) : breadcrumb.message,
63
+ }));
64
+ }
65
+ return event;
66
+ },
67
+ beforeBreadcrumb(breadcrumb) {
68
+ if (breadcrumb.category === 'http' && breadcrumb.data?.url) {
69
+ breadcrumb.data.url = maskUrlTokens(breadcrumb.data.url);
70
+ }
71
+ return breadcrumb;
72
+ },
73
+ });
74
+ sentry = Sentry;
75
+ }
76
+ /**
77
+ * 例外を Sentry に報告する。未初期化時は no-op。
78
+ */
79
+ function captureException(error, context) {
80
+ if (!sentry)
81
+ return;
82
+ sentry.captureException(error, context ? { extra: context } : undefined);
83
+ }
84
+ /**
85
+ * Sentry のイベントキューをフラッシュする。プロセス終了前に呼び出す。
86
+ */
87
+ async function flushSentry() {
88
+ if (!sentry)
89
+ return;
90
+ await sentry.flush(2000);
91
+ }
92
+ /**
93
+ * URL内のトークンパラメータをマスクする。
94
+ */
95
+ function maskUrlTokens(url) {
96
+ return url.replace(/([?&](?:token|key|secret|password|authorization|credential)=)[^&]*/gi, '$1[Filtered]');
97
+ }
98
+ //# sourceMappingURL=sentry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,gCA8BC;AAKD,4CAGC;AAKD,kCAGC;AAzDD,2CAA2C;AAC3C,qCAAsC;AAItC,IAAI,MAAM,GAAwB,IAAI,CAAA;AAEtC;;;GAGG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,wDAAa,cAAc,GAAC,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC;QACV,GAAG;QACH,OAAO,EAAE,wBAAwB,yBAAa,EAAE;QAChD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY;QACnF,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,KAAK;QACrB,UAAU,CAAC,KAAK;YACd,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBACzD,GAAG,UAAU;oBACb,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,oBAAW,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO;iBACnF,CAAC,CAAC,CAAA;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,gBAAgB,CAAC,UAAU;YACzB,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,GAAa,CAAC,CAAA;YACpE,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;KACF,CAAC,CAAA;IACF,MAAM,GAAG,MAAM,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAc,EAAE,OAAiC;IAChF,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAC1E,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,OAAO,CAChB,sEAAsE,EACtE,cAAc,CACf,CAAA;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@ export interface HistoryMessage {
3
3
  content: string;
4
4
  }
5
5
  export type ReleaseChannel = 'latest' | 'beta' | 'alpha';
6
+ export type InstallMethod = 'global' | 'npx' | 'local' | 'dev';
6
7
  export interface VersionInfo {
7
8
  latestVersion: string;
8
9
  minimumVersion: string;
@@ -214,6 +215,7 @@ export interface DbCredentials {
214
215
  database: string;
215
216
  user: string;
216
217
  password: string;
218
+ ssl?: boolean;
217
219
  writePermissions?: {
218
220
  insert: boolean;
219
221
  update: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAExD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAA;AAE9D,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,cAAc,GACd,cAAc,GACd,MAAM,GACN,OAAO,GACP,aAAa,CAAA;AAEjB,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,CAAA;AAEb,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;AAElD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,KAAK,CAAA;AAEjD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,oBAAoB,CAAC,EAAE,aAAa,CAAA;IACpC,gBAAgB,CAAC,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,KAAK,EAAE;QACL,YAAY,EAAE,OAAO,CAAA;QACrB,mBAAmB,EAAE,OAAO,CAAA;QAC5B,sBAAsB,EAAE,OAAO,CAAA;QAC/B,oBAAoB,EAAE,OAAO,CAAA;QAC7B,YAAY,EAAE,MAAM,EAAE,CAAA;QACtB,gBAAgB,CAAC,EAAE;YACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;YACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;SAC5B,CAAA;KACF,CAAA;IACD,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,KAAK,CAAC;YACd,EAAE,EAAE,MAAM,CAAA;YACV,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,CAAC,EAAE,MAAM,CAAA;YACpB,WAAW,CAAC,EAAE,MAAM,CAAA;YACpB,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,IAAI,EAAE;gBAAE,MAAM,EAAE,YAAY,CAAA;aAAE,GAAG;gBAAE,MAAM,EAAE,KAAK,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAC;gBAAC,iBAAiB,EAAE,MAAM,CAAA;aAAE,CAAA;YAClH,SAAS,EAAE,OAAO,CAAA;SACnB,CAAC,CAAA;QACF,GAAG,CAAC,EAAE;YACJ,cAAc,CAAC,EAAE,MAAM,CAAA;SACxB,CAAA;KACF,CAAA;IACD,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,gBAAgB,CAAC,EAAE;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAE,CAAA;KACzE,CAAC,CAAA;IACF,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;YAClB,GAAG,CAAC,EAAE,MAAM,CAAA;YACZ,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,MAAM,CAAC,EAAE,MAAM,CAAA;SAChB,CAAC,CAAA;KACH,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,gBAAgB,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;CACzE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,WAAW,GACX,aAAa,GACb,MAAM,GACN,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAGD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAAA"}
@@ -1,3 +1,23 @@
1
+ import type { InstallMethod, ReleaseChannel } from './types';
2
+ /**
3
+ * Get the global npm prefix path (e.g. /usr/local).
4
+ * Result is cached after the first call.
5
+ */
6
+ export declare function getGlobalNpmPrefix(): string;
7
+ /**
8
+ * Reset the cached global npm prefix (for testing).
9
+ */
10
+ export declare function resetGlobalPrefixCache(): void;
11
+ /**
12
+ * Detect how the CLI was installed/started.
13
+ * Priority: dev → npx → global → local
14
+ */
15
+ export declare function detectInstallMethod(): InstallMethod;
16
+ /**
17
+ * バージョン文字列からリリースチャンネルを推定する。
18
+ * e.g. "0.0.4-beta.21" → "beta", "0.0.4-alpha.3" → "alpha", "0.0.4" → "latest"
19
+ */
20
+ export declare function detectChannelFromVersion(version: string): ReleaseChannel;
1
21
  /**
2
22
  * Compare two semver strings.
3
23
  * Returns true if `latest` is newer than `current`.
@@ -9,16 +29,17 @@ export declare function isNewerVersion(current: string, latest: string): boolean
9
29
  */
10
30
  export declare function isValidVersion(version: string): boolean;
11
31
  /**
12
- * Install a specific version of the CLI package globally via npm.
13
- * Returns true on success, false on failure.
32
+ * Install a specific version of the CLI package.
33
+ * Only global and npx methods are supported for automatic update.
14
34
  */
15
- export declare function performUpdate(version: string): Promise<{
35
+ export declare function performUpdate(version: string, method?: InstallMethod): Promise<{
16
36
  success: boolean;
17
37
  error?: string;
18
38
  }>;
19
39
  /**
20
40
  * Re-exec the current process with the same arguments.
21
- * Spawns a detached child and exits the current process.
41
+ * Preserves process.execArgv (Node.js runtime flags) and environment variables.
42
+ * For npx installs, resolves the global binary path instead of the stale npx cache path.
22
43
  */
23
- export declare function reExecProcess(): void;
44
+ export declare function reExecProcess(method?: InstallMethod): void;
24
45
  //# sourceMappingURL=update-checker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAyBvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBlG;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAYpC"}
1
+ {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI5D;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAS3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CA0BnD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAQxE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAyBvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AA2CD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAe/C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAwB1D"}
@@ -1,12 +1,115 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getGlobalNpmPrefix = getGlobalNpmPrefix;
37
+ exports.resetGlobalPrefixCache = resetGlobalPrefixCache;
38
+ exports.detectInstallMethod = detectInstallMethod;
39
+ exports.detectChannelFromVersion = detectChannelFromVersion;
3
40
  exports.isNewerVersion = isNewerVersion;
4
41
  exports.isValidVersion = isValidVersion;
5
42
  exports.performUpdate = performUpdate;
6
43
  exports.reExecProcess = reExecProcess;
7
44
  const child_process_1 = require("child_process");
45
+ const path = __importStar(require("path"));
8
46
  const constants_1 = require("./constants");
9
47
  const logger_1 = require("./logger");
48
+ let cachedGlobalPrefix = null;
49
+ /**
50
+ * Get the global npm prefix path (e.g. /usr/local).
51
+ * Result is cached after the first call.
52
+ */
53
+ function getGlobalNpmPrefix() {
54
+ if (cachedGlobalPrefix !== null)
55
+ return cachedGlobalPrefix;
56
+ const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
57
+ const result = (0, child_process_1.execFileSync)(npmCmd, ['prefix', '-g'], {
58
+ encoding: 'utf-8',
59
+ timeout: 10_000,
60
+ }).trim();
61
+ cachedGlobalPrefix = result;
62
+ return result;
63
+ }
64
+ /**
65
+ * Reset the cached global npm prefix (for testing).
66
+ */
67
+ function resetGlobalPrefixCache() {
68
+ cachedGlobalPrefix = null;
69
+ }
70
+ /**
71
+ * Detect how the CLI was installed/started.
72
+ * Priority: dev → npx → global → local
73
+ */
74
+ function detectInstallMethod() {
75
+ const scriptPath = process.argv[1] ?? '';
76
+ const execArgvStr = process.execArgv.join(' ');
77
+ // 1. Dev: ts-node or .ts file
78
+ if (execArgvStr.includes('ts-node') || scriptPath.endsWith('.ts')) {
79
+ return 'dev';
80
+ }
81
+ // 2. npx: path contains _npx
82
+ if (scriptPath.includes('/_npx/') || scriptPath.includes('\\_npx\\')) {
83
+ return 'npx';
84
+ }
85
+ // 3. Global: under npm global prefix
86
+ try {
87
+ const globalPrefix = getGlobalNpmPrefix();
88
+ if (globalPrefix && scriptPath.startsWith(globalPrefix)) {
89
+ return 'global';
90
+ }
91
+ }
92
+ catch {
93
+ // npm prefix -g failed → fall through to local
94
+ }
95
+ // 4. Local: fallback
96
+ return 'local';
97
+ }
98
+ /**
99
+ * バージョン文字列からリリースチャンネルを推定する。
100
+ * e.g. "0.0.4-beta.21" → "beta", "0.0.4-alpha.3" → "alpha", "0.0.4" → "latest"
101
+ */
102
+ function detectChannelFromVersion(version) {
103
+ const match = version.match(/^\d+\.\d+\.\d+-(\w+)/);
104
+ if (match) {
105
+ const tag = match[1];
106
+ if (tag === 'beta')
107
+ return 'beta';
108
+ if (tag === 'alpha')
109
+ return 'alpha';
110
+ }
111
+ return 'latest';
112
+ }
10
113
  /**
11
114
  * Compare two semver strings.
12
115
  * Returns true if `latest` is newer than `current`.
@@ -46,12 +149,20 @@ function isValidVersion(version) {
46
149
  return /^\d+\.\d+\.\d+/.test(version);
47
150
  }
48
151
  /**
49
- * Install a specific version of the CLI package globally via npm.
50
- * Returns true on success, false on failure.
152
+ * Resolve the global binary script path for @ai-support-agent/cli.
51
153
  */
52
- async function performUpdate(version) {
53
- const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
54
- const args = ['install', '-g', `@ai-support-agent/cli@${version}`];
154
+ function resolveGlobalBinaryScript() {
155
+ const globalPrefix = getGlobalNpmPrefix();
156
+ // Windows: {prefix}/node_modules/... macOS/Linux: {prefix}/lib/node_modules/...
157
+ const segments = process.platform === 'win32'
158
+ ? [globalPrefix, 'node_modules', '@ai-support-agent', 'cli', 'dist', 'index.js']
159
+ : [globalPrefix, 'lib', 'node_modules', '@ai-support-agent', 'cli', 'dist', 'index.js'];
160
+ return path.join(...segments);
161
+ }
162
+ /**
163
+ * Run npm install command and return result.
164
+ */
165
+ function execNpmCommand(npmCmd, args, version) {
55
166
  return new Promise((resolve) => {
56
167
  (0, child_process_1.execFile)(npmCmd, args, { timeout: constants_1.NPM_INSTALL_TIMEOUT }, (error, _stdout, stderr) => {
57
168
  if (error) {
@@ -72,16 +183,45 @@ async function performUpdate(version) {
72
183
  });
73
184
  });
74
185
  }
186
+ /**
187
+ * Install a specific version of the CLI package.
188
+ * Only global and npx methods are supported for automatic update.
189
+ */
190
+ async function performUpdate(version, method) {
191
+ const installMethod = method ?? detectInstallMethod();
192
+ if (installMethod === 'dev') {
193
+ return { success: false, error: 'Development mode: automatic update is not supported. Please update manually.' };
194
+ }
195
+ if (installMethod === 'local') {
196
+ return { success: false, error: 'Local installation: automatic update is not supported. Run npm update in your project.' };
197
+ }
198
+ // global & npx: npm install -g
199
+ const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
200
+ const args = ['install', '-g', `@ai-support-agent/cli@${version}`];
201
+ return execNpmCommand(npmCmd, args, version);
202
+ }
75
203
  /**
76
204
  * Re-exec the current process with the same arguments.
77
- * Spawns a detached child and exits the current process.
205
+ * Preserves process.execArgv (Node.js runtime flags) and environment variables.
206
+ * For npx installs, resolves the global binary path instead of the stale npx cache path.
78
207
  */
79
- function reExecProcess() {
80
- const args = process.argv.slice(1);
208
+ function reExecProcess(method) {
209
+ const installMethod = method ?? detectInstallMethod();
210
+ let args;
211
+ if (installMethod === 'npx') {
212
+ // npx cache path points to old version → use global install path
213
+ const globalScript = resolveGlobalBinaryScript();
214
+ args = [...process.execArgv, globalScript, ...process.argv.slice(2)];
215
+ }
216
+ else {
217
+ // global / local / dev: re-exec with original argv, preserving execArgv
218
+ args = [...process.execArgv, ...process.argv.slice(1)];
219
+ }
81
220
  logger_1.logger.info(`Re-executing: ${process.execPath} ${args.join(' ')}`);
82
221
  const child = (0, child_process_1.spawn)(process.execPath, args, {
83
222
  detached: true,
84
223
  stdio: 'inherit',
224
+ env: { ...process.env },
85
225
  });
86
226
  child.unref();
87
227
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-support-agent/cli",
3
- "version": "0.0.4",
3
+ "version": "0.0.5-beta.2",
4
4
  "description": "AI Support Agent CLI client",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@modelcontextprotocol/sdk": "^1.27.1",
40
+ "@sentry/node": "^10.40.0",
40
41
  "axios": "^1.13.0",
41
42
  "commander": "^14.0.0",
42
43
  "mysql2": "^3.18.2",