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

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 (110) 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 +5 -1
  6. package/dist/api-client.d.ts.map +1 -1
  7. package/dist/api-client.js +55 -63
  8. package/dist/api-client.js.map +1 -1
  9. package/dist/appsync-subscriber.d.ts.map +1 -1
  10. package/dist/appsync-subscriber.js +3 -1
  11. package/dist/appsync-subscriber.js.map +1 -1
  12. package/dist/auto-updater.d.ts.map +1 -1
  13. package/dist/auto-updater.js +7 -2
  14. package/dist/auto-updater.js.map +1 -1
  15. package/dist/aws-credential-builder.d.ts +11 -2
  16. package/dist/aws-credential-builder.d.ts.map +1 -1
  17. package/dist/aws-credential-builder.js +45 -6
  18. package/dist/aws-credential-builder.js.map +1 -1
  19. package/dist/commands/api-chat-executor.d.ts.map +1 -1
  20. package/dist/commands/api-chat-executor.js +11 -3
  21. package/dist/commands/api-chat-executor.js.map +1 -1
  22. package/dist/commands/chat-executor.d.ts +1 -1
  23. package/dist/commands/chat-executor.d.ts.map +1 -1
  24. package/dist/commands/chat-executor.js +40 -42
  25. package/dist/commands/chat-executor.js.map +1 -1
  26. package/dist/commands/claude-code-runner.d.ts +4 -2
  27. package/dist/commands/claude-code-runner.d.ts.map +1 -1
  28. package/dist/commands/claude-code-runner.js +8 -4
  29. package/dist/commands/claude-code-runner.js.map +1 -1
  30. package/dist/commands/index.d.ts +1 -0
  31. package/dist/commands/index.d.ts.map +1 -1
  32. package/dist/commands/index.js +1 -1
  33. package/dist/commands/index.js.map +1 -1
  34. package/dist/commands/shared-chat-utils.d.ts +9 -1
  35. package/dist/commands/shared-chat-utils.d.ts.map +1 -1
  36. package/dist/commands/shared-chat-utils.js +24 -0
  37. package/dist/commands/shared-chat-utils.js.map +1 -1
  38. package/dist/config-manager.d.ts +1 -0
  39. package/dist/config-manager.d.ts.map +1 -1
  40. package/dist/config-manager.js +1 -0
  41. package/dist/config-manager.js.map +1 -1
  42. package/dist/constants.d.ts +3 -0
  43. package/dist/constants.d.ts.map +1 -1
  44. package/dist/constants.js +6 -2
  45. package/dist/constants.js.map +1 -1
  46. package/dist/docker/docker-runner.d.ts +19 -0
  47. package/dist/docker/docker-runner.d.ts.map +1 -0
  48. package/dist/docker/docker-runner.js +221 -0
  49. package/dist/docker/docker-runner.js.map +1 -0
  50. package/dist/docker/dockerfile-path.d.ts +10 -0
  51. package/dist/docker/dockerfile-path.d.ts.map +1 -0
  52. package/dist/docker/dockerfile-path.js +25 -0
  53. package/dist/docker/dockerfile-path.js.map +1 -0
  54. package/dist/index.js +59 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/locales/en.json +25 -1
  57. package/dist/locales/ja.json +25 -1
  58. package/dist/locales/locales/en.json +25 -1
  59. package/dist/locales/locales/ja.json +25 -1
  60. package/dist/logger.d.ts +2 -0
  61. package/dist/logger.d.ts.map +1 -1
  62. package/dist/logger.js +20 -1
  63. package/dist/logger.js.map +1 -1
  64. package/dist/mcp/config-writer.d.ts +17 -0
  65. package/dist/mcp/config-writer.d.ts.map +1 -0
  66. package/dist/mcp/config-writer.js +63 -0
  67. package/dist/mcp/config-writer.js.map +1 -0
  68. package/dist/mcp/server.d.ts +11 -0
  69. package/dist/mcp/server.d.ts.map +1 -0
  70. package/dist/mcp/server.js +55 -0
  71. package/dist/mcp/server.js.map +1 -0
  72. package/dist/mcp/tools/credentials.d.ts +14 -0
  73. package/dist/mcp/tools/credentials.d.ts.map +1 -0
  74. package/dist/mcp/tools/credentials.js +42 -0
  75. package/dist/mcp/tools/credentials.js.map +1 -0
  76. package/dist/mcp/tools/db-query.d.ts +13 -0
  77. package/dist/mcp/tools/db-query.d.ts.map +1 -0
  78. package/dist/mcp/tools/db-query.js +131 -0
  79. package/dist/mcp/tools/db-query.js.map +1 -0
  80. package/dist/mcp/tools/db-schemas.d.ts +5 -0
  81. package/dist/mcp/tools/db-schemas.d.ts.map +1 -0
  82. package/dist/mcp/tools/db-schemas.js +61 -0
  83. package/dist/mcp/tools/db-schemas.js.map +1 -0
  84. package/dist/mcp/tools/mcp-response.d.ts +15 -0
  85. package/dist/mcp/tools/mcp-response.d.ts.map +1 -0
  86. package/dist/mcp/tools/mcp-response.js +15 -0
  87. package/dist/mcp/tools/mcp-response.js.map +1 -0
  88. package/dist/mcp/tools/project-info.d.ts +5 -0
  89. package/dist/mcp/tools/project-info.d.ts.map +1 -0
  90. package/dist/mcp/tools/project-info.js +43 -0
  91. package/dist/mcp/tools/project-info.js.map +1 -0
  92. package/dist/project-agent.d.ts +4 -0
  93. package/dist/project-agent.d.ts.map +1 -1
  94. package/dist/project-agent.js +38 -2
  95. package/dist/project-agent.js.map +1 -1
  96. package/dist/project-dir.d.ts.map +1 -1
  97. package/dist/project-dir.js +5 -2
  98. package/dist/project-dir.js.map +1 -1
  99. package/dist/sentry.d.ts +14 -0
  100. package/dist/sentry.d.ts.map +1 -0
  101. package/dist/sentry.js +98 -0
  102. package/dist/sentry.js.map +1 -0
  103. package/dist/types.d.ts +33 -1
  104. package/dist/types.d.ts.map +1 -1
  105. package/dist/update-checker.d.ts +26 -5
  106. package/dist/update-checker.d.ts.map +1 -1
  107. package/dist/update-checker.js +148 -8
  108. package/dist/update-checker.js.map +1 -1
  109. package/docker/Dockerfile +39 -0
  110. package/package.json +7 -1
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,gDASC;AAKD,wDAEC;AAMD,kDA0BC;AAMD,4DAQC;AAOD,wCAyBC;AAKD,wCAEC;AA+CD,sCAkBC;AAOD,sCAwBC;AAlND,iDAA6D;AAC7D,2CAA4B;AAE5B,2CAAiD;AACjD,qCAAiC;AAGjC,IAAI,kBAAkB,GAAkB,IAAI,CAAA;AAE5C;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,IAAI,kBAAkB,KAAK,IAAI;QAAE,OAAO,kBAAkB,CAAA;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IAC/D,MAAM,MAAM,GAAG,IAAA,4BAAY,EAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;QACpD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC,IAAI,EAAE,CAAA;IACT,kBAAkB,GAAG,MAAM,CAAA;IAC3B,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,kBAAkB,GAAG,IAAI,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE9C,8BAA8B;IAC9B,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,6BAA6B;IAC7B,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;QACzC,IAAI,YAAY,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,OAAO,QAAQ,CAAA;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IAED,qBAAqB;IACrB,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACnD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,MAAM,CAAA;QACjC,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,OAAO,CAAA;IACrC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAe,EAAE,MAAc;IAC5D,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE;QACjC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACzC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IAClF,CAAC,CAAA;IAED,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAE9B,4BAA4B;IAC5B,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IACjD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IACjD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IAEjD,kDAAkD;IAClD,iCAAiC;IACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA,CAAE,4CAA4C;IAC9E,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA,CAAC,4CAA4C;IAE9E,qDAAqD;IACrD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAElC,oDAAoD;IACpD,OAAO,CAAC,CAAC,GAAI,GAAG,CAAC,CAAC,GAAI,CAAA;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB;IAChC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;IACzC,iFAAiF;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC3C,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC;QAChF,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,MAAc,EACd,IAAc,EACd,OAAe;IAEf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAA,wBAAQ,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,+BAAmB,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,eAAe,CAAA;gBAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;gBAE7F,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,qEAAqE,OAAO,EAAE;qBACtF,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC7C,CAAC;gBACD,OAAM;YACR,CAAC;YACD,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,MAAsB;IAEtB,MAAM,aAAa,GAAG,MAAM,IAAI,mBAAmB,EAAE,CAAA;IAErD,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8EAA8E,EAAE,CAAA;IAClH,CAAC;IAED,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wFAAwF,EAAE,CAAA;IAC5H,CAAC;IAED,+BAA+B;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IAC/D,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAClE,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,MAAsB;IAClD,MAAM,aAAa,GAAG,MAAM,IAAI,mBAAmB,EAAE,CAAA;IAErD,IAAI,IAAc,CAAA;IAElB,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC5B,iEAAiE;QACjE,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAA;QAChD,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAElE,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC1C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;KACxB,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
@@ -0,0 +1,39 @@
1
+ FROM node:24-slim
2
+
3
+ RUN apt-get update && apt-get install -y --no-install-recommends \
4
+ ca-certificates curl unzip git openssh-client \
5
+ default-mysql-client postgresql-client \
6
+ gnupg apt-transport-https \
7
+ && rm -rf /var/lib/apt/lists/*
8
+
9
+ # AWS CLI v2
10
+ RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o /tmp/awscliv2.zip \
11
+ && unzip /tmp/awscliv2.zip -d /tmp \
12
+ && /tmp/aws/install \
13
+ && rm -rf /tmp/aws /tmp/awscliv2.zip
14
+
15
+ # AWS Session Manager Plugin
16
+ RUN ARCH=$(dpkg --print-architecture) \
17
+ && curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_${ARCH}/session-manager-plugin.deb" \
18
+ -o /tmp/session-manager-plugin.deb \
19
+ && dpkg -i /tmp/session-manager-plugin.deb \
20
+ && rm /tmp/session-manager-plugin.deb
21
+
22
+ # MSSQL tools (amd64 only)
23
+ RUN ARCH=$(dpkg --print-architecture) && \
24
+ if [ "$ARCH" = "amd64" ]; then \
25
+ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /usr/share/keyrings/microsoft.gpg \
26
+ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" \
27
+ > /etc/apt/sources.list.d/mssql-release.list \
28
+ && apt-get update \
29
+ && ACCEPT_EULA=Y apt-get install -y --no-install-recommends mssql-tools18 unixodbc-dev \
30
+ && rm -rf /var/lib/apt/lists/*; \
31
+ fi
32
+ ENV PATH="$PATH:/opt/mssql-tools18/bin"
33
+
34
+ # Claude Code CLI + AI Support Agent CLI
35
+ ARG AGENT_VERSION=latest
36
+ RUN npm install -g @anthropic-ai/claude-code @ai-support-agent/cli@${AGENT_VERSION}
37
+
38
+ WORKDIR /workspace
39
+ ENTRYPOINT ["ai-support-agent"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-support-agent/cli",
3
- "version": "0.0.4-beta.9",
3
+ "version": "0.0.5-beta.1",
4
4
  "description": "AI Support Agent CLI client",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -23,6 +23,7 @@
23
23
  },
24
24
  "files": [
25
25
  "dist",
26
+ "docker",
26
27
  "LICENSE",
27
28
  "README.md",
28
29
  "CHANGELOG.md"
@@ -35,14 +36,19 @@
35
36
  "test:cov": "jest --coverage"
36
37
  },
37
38
  "dependencies": {
39
+ "@modelcontextprotocol/sdk": "^1.27.1",
40
+ "@sentry/node": "^10.40.0",
38
41
  "axios": "^1.13.0",
39
42
  "commander": "^14.0.0",
43
+ "mysql2": "^3.18.2",
40
44
  "open": "^11.0.0",
45
+ "pg": "^8.19.0",
41
46
  "ws": "^8.19.0"
42
47
  },
43
48
  "devDependencies": {
44
49
  "@types/jest": "^30.0.0",
45
50
  "@types/node": "^22.0.0",
51
+ "@types/pg": "^8.18.0",
46
52
  "@types/ws": "^8.18.1",
47
53
  "jest": "^30.0.0",
48
54
  "jest-junit": "^16.0.0",