@ai-support-agent/cli 0.0.10-beta.0 → 0.0.11

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 (63) hide show
  1. package/dist/agent-runner.d.ts.map +1 -1
  2. package/dist/agent-runner.js +3 -1
  3. package/dist/agent-runner.js.map +1 -1
  4. package/dist/agent-transport.d.ts +2 -1
  5. package/dist/agent-transport.d.ts.map +1 -1
  6. package/dist/agent-transport.js +10 -2
  7. package/dist/agent-transport.js.map +1 -1
  8. package/dist/appsync-subscriber.d.ts.map +1 -1
  9. package/dist/appsync-subscriber.js +13 -4
  10. package/dist/appsync-subscriber.js.map +1 -1
  11. package/dist/commands/chat-executor.d.ts +1 -1
  12. package/dist/commands/chat-executor.d.ts.map +1 -1
  13. package/dist/commands/chat-executor.js +26 -4
  14. package/dist/commands/chat-executor.js.map +1 -1
  15. package/dist/commands/claude-code-runner.d.ts +7 -0
  16. package/dist/commands/claude-code-runner.d.ts.map +1 -1
  17. package/dist/commands/claude-code-runner.js +11 -2
  18. package/dist/commands/claude-code-runner.js.map +1 -1
  19. package/dist/commands/file-executor.d.ts +6 -6
  20. package/dist/commands/file-executor.d.ts.map +1 -1
  21. package/dist/commands/file-executor.js +15 -14
  22. package/dist/commands/file-executor.js.map +1 -1
  23. package/dist/commands/file-path-guard.d.ts +1 -1
  24. package/dist/commands/file-path-guard.d.ts.map +1 -1
  25. package/dist/commands/file-path-guard.js +2 -2
  26. package/dist/commands/file-path-guard.js.map +1 -1
  27. package/dist/commands/index.d.ts +1 -0
  28. package/dist/commands/index.d.ts.map +1 -1
  29. package/dist/commands/index.js +7 -7
  30. package/dist/commands/index.js.map +1 -1
  31. package/dist/constants.d.ts +1 -0
  32. package/dist/constants.d.ts.map +1 -1
  33. package/dist/constants.js +4 -2
  34. package/dist/constants.js.map +1 -1
  35. package/dist/docker/docker-runner.d.ts.map +1 -1
  36. package/dist/docker/docker-runner.js +1 -0
  37. package/dist/docker/docker-runner.js.map +1 -1
  38. package/dist/index.js +1 -1
  39. package/dist/mcp/tools/db-query.d.ts.map +1 -1
  40. package/dist/mcp/tools/db-query.js +65 -4
  41. package/dist/mcp/tools/db-query.js.map +1 -1
  42. package/dist/project-agent.d.ts.map +1 -1
  43. package/dist/project-agent.js +3 -2
  44. package/dist/project-agent.js.map +1 -1
  45. package/dist/security.d.ts +2 -2
  46. package/dist/security.d.ts.map +1 -1
  47. package/dist/security.js +13 -7
  48. package/dist/security.js.map +1 -1
  49. package/dist/terminal/index.d.ts +1 -1
  50. package/dist/terminal/index.d.ts.map +1 -1
  51. package/dist/terminal/index.js +2 -1
  52. package/dist/terminal/index.js.map +1 -1
  53. package/dist/terminal/terminal-session.d.ts +10 -3
  54. package/dist/terminal/terminal-session.d.ts.map +1 -1
  55. package/dist/terminal/terminal-session.js +188 -24
  56. package/dist/terminal/terminal-session.js.map +1 -1
  57. package/dist/terminal/terminal-websocket.d.ts.map +1 -1
  58. package/dist/terminal/terminal-websocket.js +69 -7
  59. package/dist/terminal/terminal-websocket.js.map +1 -1
  60. package/dist/types/server.d.ts +1 -0
  61. package/dist/types/server.d.ts.map +1 -1
  62. package/docker/Dockerfile +54 -1
  63. package/package.json +4 -1
@@ -1,9 +1,129 @@
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 });
3
36
  exports.TerminalSessionManager = exports.TerminalSession = void 0;
4
- const child_process_1 = require("child_process");
37
+ exports.isNodePtyAvailable = isNodePtyAvailable;
38
+ const fs = __importStar(require("fs"));
39
+ const os = __importStar(require("os"));
40
+ const path = __importStar(require("path"));
41
+ const logger_1 = require("../logger");
5
42
  const security_1 = require("../security");
43
+ /**
44
+ * node-pty を遅延ロードする。
45
+ * optionalDependency のため、ネイティブビルドが失敗した環境では利用不可。
46
+ */
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ let pty = null;
49
+ let ptyLoadError = null;
50
+ try {
51
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
52
+ pty = require('node-pty');
53
+ }
54
+ catch (e) /* istanbul ignore next -- only when native build fails */ {
55
+ ptyLoadError = e instanceof Error ? e.message : String(e);
56
+ logger_1.logger.debug(`[terminal] node-pty is not available: ${ptyLoadError}`);
57
+ }
58
+ /**
59
+ * node-pty が利用可能か確認する
60
+ */
61
+ function isNodePtyAvailable() {
62
+ return pty !== null;
63
+ }
6
64
  const constants_1 = require("./constants");
65
+ /**
66
+ * プロジェクトディレクトリ外への移動を制限するシェル初期化スクリプトを生成する。
67
+ * cd をラップし、移動先がプロジェクトディレクトリ配下でなければ拒否する。
68
+ * PROMPT_COMMAND / precmd でも毎回チェックし、外部コマンド経由での移動も防止する。
69
+ */
70
+ function buildSandboxInitScript(projectDir) {
71
+ // シェル変数に埋め込む際にシングルクォートをエスケープ
72
+ const escaped = projectDir.replace(/'/g, "'\\''");
73
+ // __SANDBOX_REAL は realpath で解決した物理パス。
74
+ // pwd -P との比較に使い、シンボリックリンクの不一致を防ぐ。
75
+ return `
76
+ __SANDBOX_DIR='${escaped}'
77
+ __SANDBOX_REAL="$(cd "\${__SANDBOX_DIR}" && pwd -P)"
78
+ __sandbox_is_inside() {
79
+ local cur
80
+ cur="$(pwd -P)"
81
+ case "\${cur}" in
82
+ "\${__SANDBOX_REAL}") return 0 ;;
83
+ "\${__SANDBOX_REAL}/"*) return 0 ;;
84
+ *) return 1 ;;
85
+ esac
86
+ }
87
+ cd() {
88
+ builtin cd "\$@" || return
89
+ if ! __sandbox_is_inside; then
90
+ echo "restricted: cannot leave project directory (\${__SANDBOX_REAL})" >&2
91
+ builtin cd "\${__SANDBOX_DIR}"
92
+ return 1
93
+ fi
94
+ }
95
+ pushd() {
96
+ builtin pushd "\$@" || return
97
+ if ! __sandbox_is_inside; then
98
+ builtin popd >/dev/null 2>&1
99
+ echo "restricted: cannot leave project directory (\${__SANDBOX_REAL})" >&2
100
+ return 1
101
+ fi
102
+ }
103
+ popd() {
104
+ builtin popd "\$@" || return
105
+ if ! __sandbox_is_inside; then
106
+ builtin cd "\${__SANDBOX_DIR}"
107
+ echo "restricted: cannot leave project directory (\${__SANDBOX_REAL})" >&2
108
+ return 1
109
+ fi
110
+ }
111
+ __sandbox_check() {
112
+ if ! __sandbox_is_inside; then
113
+ builtin cd "\${__SANDBOX_DIR}" 2>/dev/null
114
+ fi
115
+ }
116
+ # bash
117
+ if [ -n "\${BASH_VERSION}" ]; then
118
+ PROMPT_COMMAND="__sandbox_check;\${PROMPT_COMMAND}"
119
+ fi
120
+ # zsh
121
+ if [ -n "\${ZSH_VERSION}" ]; then
122
+ autoload -Uz add-zsh-hook 2>/dev/null
123
+ add-zsh-hook precmd __sandbox_check 2>/dev/null
124
+ fi
125
+ `;
126
+ }
7
127
  class TerminalSession {
8
128
  sessionId;
9
129
  pid;
@@ -12,48 +132,76 @@ class TerminalSession {
12
132
  cwd;
13
133
  createdAt;
14
134
  lastActivity;
15
- process;
135
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
136
+ ptyProcess;
137
+ sandboxTmpDir = null;
16
138
  dataCallback = null;
17
139
  exitCallback = null;
18
140
  exited = false;
19
141
  idleTimer = null;
20
142
  onIdleTimeout = null;
21
143
  constructor(sessionId, options = {}) {
144
+ /* istanbul ignore if -- only when native build fails */
145
+ if (!pty) {
146
+ throw new Error(`Terminal functionality is not available: node-pty failed to load. ${ptyLoadError ?? 'Unknown error'}`);
147
+ }
22
148
  this.sessionId = sessionId;
23
149
  this.cols = options.cols ?? constants_1.TERMINAL_DEFAULT_COLS;
24
150
  this.rows = options.rows ?? constants_1.TERMINAL_DEFAULT_ROWS;
25
151
  this.cwd = options.cwd ?? process.cwd();
26
152
  this.createdAt = Date.now();
27
153
  this.lastActivity = this.createdAt;
154
+ const shell = process.env.SHELL ?? '/bin/bash';
155
+ const safeEnv = (0, security_1.buildSafeEnv)();
28
156
  const env = {
29
- ...(0, security_1.buildSafeEnv)(),
30
- COLUMNS: String(this.cols),
31
- LINES: String(this.rows),
157
+ ...safeEnv,
32
158
  TERM: 'xterm-256color',
33
159
  };
34
- this.process = (0, child_process_1.spawn)('/bin/bash', ['--login'], {
160
+ // node-pty requires PATH to locate spawn-helper
161
+ if (!env.PATH) {
162
+ env.PATH = '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin';
163
+ }
164
+ // サンドボックス初期化スクリプトを一時ファイルに書き出す
165
+ const sandboxScript = buildSandboxInitScript(path.resolve(this.cwd));
166
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'terminal-sandbox-'));
167
+ this.sandboxTmpDir = tmpDir;
168
+ const shellArgs = [];
169
+ const isZsh = shell.endsWith('/zsh') || shell.endsWith('/zsh5');
170
+ if (isZsh) {
171
+ // zsh: ZDOTDIR に .zshrc を配置し、元の .zshrc も読み込む
172
+ const origZdotdir = (process.env.ZDOTDIR ?? process.env.HOME ?? '').replace(/'/g, "'\\''");
173
+ const zshrc = `# Load original .zshrc\n[ -f '${origZdotdir}/.zshrc' ] && source '${origZdotdir}/.zshrc'\n${sandboxScript}`;
174
+ fs.writeFileSync(path.join(tmpDir, '.zshrc'), zshrc);
175
+ env.ZDOTDIR = tmpDir;
176
+ shellArgs.push('--login');
177
+ }
178
+ else {
179
+ // bash: --rcfile でサンドボックススクリプトを読み込む
180
+ const bashrc = `# Load original .bashrc\n[ -f ~/.bashrc ] && source ~/.bashrc\n${sandboxScript}`;
181
+ const rcFile = path.join(tmpDir, '.bashrc');
182
+ fs.writeFileSync(rcFile, bashrc);
183
+ shellArgs.push('--rcfile', rcFile);
184
+ }
185
+ this.ptyProcess = pty.spawn(shell, shellArgs, {
186
+ name: 'xterm-256color',
187
+ cols: this.cols,
188
+ rows: this.rows,
35
189
  cwd: this.cwd,
36
190
  env,
37
- stdio: ['pipe', 'pipe', 'pipe'],
38
- });
39
- this.pid = this.process.pid ?? 0;
40
- this.process.stdout?.on('data', (chunk) => {
41
- this.touchActivity();
42
- if (this.dataCallback) {
43
- this.dataCallback(chunk.toString('utf-8'));
44
- }
45
191
  });
46
- this.process.stderr?.on('data', (chunk) => {
192
+ this.pid = this.ptyProcess.pid;
193
+ this.ptyProcess.onData((data) => {
47
194
  this.touchActivity();
48
195
  if (this.dataCallback) {
49
- this.dataCallback(chunk.toString('utf-8'));
196
+ this.dataCallback(data);
50
197
  }
51
198
  });
52
- this.process.on('exit', (code) => {
199
+ this.ptyProcess.onExit(({ exitCode }) => {
53
200
  this.exited = true;
54
201
  this.clearIdleTimer();
202
+ this.cleanupTmpDir();
55
203
  if (this.exitCallback) {
56
- this.exitCallback(code);
204
+ this.exitCallback(exitCode);
57
205
  }
58
206
  });
59
207
  this.resetIdleTimer();
@@ -71,20 +219,33 @@ class TerminalSession {
71
219
  if (this.exited)
72
220
  return;
73
221
  this.touchActivity();
74
- this.process.stdin?.write(data);
222
+ this.ptyProcess.write(data);
75
223
  }
76
224
  resize(cols, rows) {
77
- // child_process does not support resize natively;
78
- // update stored dimensions for info purposes
225
+ if (this.exited)
226
+ return;
79
227
  this.cols = cols;
80
228
  this.rows = rows;
229
+ this.ptyProcess.resize(cols, rows);
81
230
  this.touchActivity();
82
231
  }
83
232
  kill() {
84
233
  if (this.exited)
85
234
  return;
86
235
  this.clearIdleTimer();
87
- this.process.kill('SIGTERM');
236
+ this.ptyProcess.kill();
237
+ this.cleanupTmpDir();
238
+ }
239
+ cleanupTmpDir() {
240
+ if (this.sandboxTmpDir) {
241
+ try {
242
+ fs.rmSync(this.sandboxTmpDir, { recursive: true, force: true });
243
+ }
244
+ catch {
245
+ // ignore cleanup errors
246
+ }
247
+ this.sandboxTmpDir = null;
248
+ }
88
249
  }
89
250
  isAlive() {
90
251
  return !this.exited;
@@ -127,11 +288,14 @@ class TerminalSessionManager {
127
288
  sessions = new Map();
128
289
  sessionCounter = 0;
129
290
  createSession(options = {}) {
291
+ this.sessionCounter++;
292
+ const sessionId = `term-${Date.now()}-${this.sessionCounter}`;
293
+ return this.createSessionWithId(sessionId, options);
294
+ }
295
+ createSessionWithId(sessionId, options = {}) {
130
296
  if (this.sessions.size >= constants_1.MAX_CONCURRENT_SESSIONS) {
131
297
  return null;
132
298
  }
133
- this.sessionCounter++;
134
- const sessionId = `term-${Date.now()}-${this.sessionCounter}`;
135
299
  const session = new TerminalSession(sessionId, options);
136
300
  session.onExit(() => {
137
301
  this.sessions.delete(sessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-session.js","sourceRoot":"","sources":["../../src/terminal/terminal-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-session.js","sourceRoot":"","sources":["../../src/terminal/terminal-session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-websocket.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal-websocket.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAQ3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,iBAAkB,SAAQ,uBAAuB,CAAC,qBAAqB,CAAC;IAMjF,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAP9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAG5B,MAAM,EAAE,MAAM,EACG,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,YAAA;IAetC,iBAAiB,IAAI,sBAAsB;IAI3C,SAAS,CAAC,eAAe,IAAI,SAAS;IAStC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IAMtE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;IAmB3D,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAQ7C,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,IAAI;CAQb"}
1
+ {"version":3,"file":"terminal-websocket.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal-websocket.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,IAAI,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAQ3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,iBAAkB,SAAQ,uBAAuB,CAAC,qBAAqB,CAAC;IAMjF,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAP9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAG5B,MAAM,EAAE,MAAM,EACG,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,YAAA;IAetC,iBAAiB,IAAI,sBAAsB;IAI3C,SAAS,CAAC,eAAe,IAAI,SAAS;IAStC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IAMtE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;IAmB3D,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAQ7C,OAAO,CAAC,UAAU;IAwElB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,IAAI;CAQb"}
@@ -1,9 +1,43 @@
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
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.TerminalWebSocket = void 0;
40
+ const path = __importStar(require("path"));
7
41
  const ws_1 = __importDefault(require("ws"));
8
42
  const base_websocket_1 = require("../base-websocket");
9
43
  const logger_1 = require("../logger");
@@ -78,15 +112,43 @@ class TerminalWebSocket extends base_websocket_1.BaseWebSocketConnection {
78
112
  }
79
113
  }
80
114
  handleOpen(msg) {
81
- const session = this.manager.createSession({
115
+ // API から受け取った sessionId を使用する
116
+ const serverSessionId = msg.sessionId;
117
+ if (!serverSessionId) {
118
+ this.send({
119
+ type: 'error',
120
+ sessionId: 'unknown',
121
+ error: 'Missing sessionId in open message',
122
+ });
123
+ return;
124
+ }
125
+ // Resolve cwd: if relative, resolve against projectDir
126
+ let cwd = this.projectDir;
127
+ if (msg.cwd && this.projectDir) {
128
+ const resolved = path.resolve(this.projectDir, msg.cwd);
129
+ const resolvedProjectDir = path.resolve(this.projectDir);
130
+ if (resolved !== resolvedProjectDir && !resolved.startsWith(resolvedProjectDir + '/')) {
131
+ this.send({
132
+ type: 'error',
133
+ sessionId: serverSessionId,
134
+ error: 'Invalid cwd: outside project directory',
135
+ });
136
+ return;
137
+ }
138
+ cwd = resolved;
139
+ }
140
+ else if (msg.cwd) {
141
+ cwd = msg.cwd;
142
+ }
143
+ const session = this.manager.createSessionWithId(serverSessionId, {
82
144
  cols: msg.cols,
83
145
  rows: msg.rows,
84
- cwd: msg.cwd ?? this.projectDir,
146
+ cwd,
85
147
  });
86
148
  if (!session) {
87
149
  this.send({
88
150
  type: 'error',
89
- sessionId: msg.sessionId ?? 'unknown',
151
+ sessionId: serverSessionId,
90
152
  error: `Maximum concurrent sessions (${this.manager.size}) reached`,
91
153
  });
92
154
  return;
@@ -94,25 +156,25 @@ class TerminalWebSocket extends base_websocket_1.BaseWebSocketConnection {
94
156
  session.onData((data) => {
95
157
  this.send({
96
158
  type: 'stdout',
97
- sessionId: session.sessionId,
159
+ sessionId: serverSessionId,
98
160
  data: Buffer.from(data).toString('base64'),
99
161
  });
100
162
  });
101
163
  session.onExit((code) => {
102
164
  this.send({
103
165
  type: 'exit',
104
- sessionId: session.sessionId,
166
+ sessionId: serverSessionId,
105
167
  code,
106
168
  });
107
169
  });
108
170
  this.send({
109
171
  type: 'ready',
110
- sessionId: session.sessionId,
172
+ sessionId: serverSessionId,
111
173
  pid: session.pid,
112
174
  cols: session.cols,
113
175
  rows: session.rows,
114
176
  });
115
- logger_1.logger.debug(`[terminal-ws] Session opened: ${session.sessionId} (pid=${session.pid})`);
177
+ logger_1.logger.debug(`[terminal-ws] Session opened: ${serverSessionId} (pid=${session.pid})`);
116
178
  }
117
179
  handleStdin(msg) {
118
180
  if (!msg.sessionId || !msg.data)
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-websocket.js","sourceRoot":"","sources":["../../src/terminal/terminal-websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-websocket.js","sourceRoot":"","sources":["../../src/terminal/terminal-websocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAE5B,4CAA0B;AAE1B,sDAA2D;AAC3D,sCAAkC;AAClC,oCAA0C;AAE1C,2CAGoB;AACpB,yDAA2D;AA4B3D,MAAa,iBAAkB,SAAQ,wCAA8C;IAMhE;IACA;IACA;IAPF,OAAO,CAAwB;IAC/B,KAAK,CAAQ;IAE9B,YACE,MAAc,EACG,KAAa,EACb,OAAe,EACf,UAAmB;QAEpC,KAAK,CAAC;YACJ,mBAAmB,EAAE,6CAAiC;YACtD,oBAAoB,EAAE,+CAAmC;YACzD,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAA;QARe,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAAQ;QACf,eAAU,GAAV,UAAU,CAAS;QAOpC,IAAI,CAAC,OAAO,GAAG,IAAI,yCAAsB,EAAE,CAAA;QAC3C,mCAAmC;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM;aAChB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;aAC1B,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;aACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,oBAAoB,CAAA;IAC9C,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAES,eAAe;QACvB,OAAO,IAAI,YAAS,CAAC,IAAI,CAAC,KAAK,EAAE;YAC/B,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;gBACrC,YAAY,EAAE,IAAI,CAAC,OAAO;aAC3B;SACF,CAAC,CAAA;IACJ,CAAC;IAES,MAAM,CAAC,GAAc,EAAE,OAA8B;QAC7D,eAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;QAC5D,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,CAAC,CAAA;QACrC,OAAO,EAAE,CAAA;IACX,CAAC;IAES,eAAe,CAAC,GAA0B;QAClD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM;gBACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;gBACpB,MAAK;YACP,KAAK,OAAO;gBACV,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBACrB,MAAK;YACP,KAAK,QAAQ;gBACX,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;gBACtB,MAAK;YACP,KAAK,OAAO;gBACV,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBACrB,MAAK;YACP;gBACE,eAAM,CAAC,KAAK,CAAC,uCAAwC,GAAwB,CAAC,IAAI,EAAE,CAAC,CAAA;QACzF,CAAC;IACH,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IAES,cAAc,CAAC,EAAa;QACpC,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,OAAO,EAAE,CAAC;YAC5E,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,SAAS,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAA0B;QAC3C,8BAA8B;QAC9B,MAAM,eAAe,GAAG,GAAG,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,mCAAmC;aAC3C,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,uDAAuD;QACvD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;QACzB,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;YACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxD,IAAI,QAAQ,KAAK,kBAAkB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,EAAE,CAAC;gBACtF,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,eAAe;oBAC1B,KAAK,EAAE,wCAAwC;iBAChD,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,GAAG,GAAG,QAAQ,CAAA;QAChB,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACnB,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE;YAChE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG;SACJ,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,eAAe;gBAC1B,KAAK,EAAE,gCAAgC,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW;aACpE,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,eAAe;gBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC3C,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,eAAe;gBAC1B,IAAI;aACL,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,eAAe;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAA;QAEF,eAAM,CAAC,KAAK,CAAC,iCAAiC,eAAe,SAAS,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;IACvF,CAAC;IAEO,WAAW,CAAC,GAA0B;QAC5C,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,KAAK,EAAE,mBAAmB;aAC3B,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACjE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAEO,YAAY,CAAC,GAA0B;QAC7C,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAM;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAA0B;QAC5C,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,eAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IAChE,CAAC;IAEO,IAAI,CAAC,GAAyB;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI;YAAE,OAAM;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,6BAA6B,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;CACF;AAvLD,8CAuLC"}
@@ -17,6 +17,7 @@ export interface RegisterResponse {
17
17
  appsyncApiKey: string;
18
18
  transportMode: TransportMode;
19
19
  wsEnabled?: boolean;
20
+ wsUrl?: string;
20
21
  }
21
22
  export interface SystemInfo {
22
23
  platform: string;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,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,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;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;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,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,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;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;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,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"}
package/docker/Dockerfile CHANGED
@@ -4,8 +4,43 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
4
4
  ca-certificates curl unzip git openssh-client \
5
5
  default-mysql-client postgresql-client \
6
6
  gnupg apt-transport-https \
7
+ # Python 3 + pip (for document processing tools)
8
+ python3 python3-pip python3-venv \
9
+ # Pandoc (universal document converter: docx/pdf/html/markdown/etc.)
10
+ pandoc \
11
+ # PDF rendering support for Python PDF libraries
12
+ libpoppler-cpp-dev poppler-utils \
7
13
  && rm -rf /var/lib/apt/lists/*
8
14
 
15
+ # Python document processing tools (installed in system scope, no venv needed in container)
16
+ RUN pip3 install --no-cache-dir --break-system-packages \
17
+ # PDF: read, write, merge, split, extract text
18
+ 'pypdf>=6.7.2,<7' \
19
+ # PDF: extract text with layout preservation (better than pypdf for complex layouts)
20
+ pdfplumber==0.* \
21
+ # Word (.docx): read and write
22
+ python-docx==1.* \
23
+ # PowerPoint (.pptx): read and write
24
+ python-pptx==1.* \
25
+ # Excel (.xlsx): read and write
26
+ openpyxl==3.* \
27
+ # HTML/XML parsing (for document content extraction)
28
+ beautifulsoup4==4.* lxml==5.* \
29
+ # Character encoding detection (for legacy files)
30
+ chardet==5.*
31
+
32
+ # Node.js document processing tools (global)
33
+ RUN npm install -g \
34
+ # Word (.docx) to HTML/markdown conversion
35
+ mammoth@1 \
36
+ # Excel (.xlsx) read/write (SheetJS community edition)
37
+ xlsx@0.18 \
38
+ # CSV parsing and generation
39
+ csv-parse@5 csv-stringify@6 \
40
+ # Markdown to HTML and vice versa
41
+ marked@15 turndown@7 \
42
+ && npm cache clean --force
43
+
9
44
  # AWS CLI v2
10
45
  RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o /tmp/awscliv2.zip \
11
46
  && unzip /tmp/awscliv2.zip -d /tmp \
@@ -31,9 +66,27 @@ RUN ARCH=$(dpkg --print-architecture) && \
31
66
  fi
32
67
  ENV PATH="$PATH:/opt/mssql-tools18/bin"
33
68
 
69
+ # GitHub CLI
70
+ RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
71
+ -o /usr/share/keyrings/githubcli-archive-keyring.gpg \
72
+ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
73
+ > /etc/apt/sources.list.d/github-cli.list \
74
+ && apt-get update \
75
+ && apt-get install -y --no-install-recommends gh \
76
+ && rm -rf /var/lib/apt/lists/*
77
+
78
+ # GitLab CLI
79
+ RUN ARCH=$(dpkg --print-architecture) \
80
+ && curl -fsSL "https://gitlab.com/gitlab-org/cli/-/releases/permalink/latest/downloads/glab_$(uname -s)_${ARCH}.deb" \
81
+ -o /tmp/glab.deb \
82
+ && dpkg -i /tmp/glab.deb \
83
+ && rm /tmp/glab.deb
84
+
34
85
  # Claude Code CLI + AI Support Agent CLI
35
86
  ARG AGENT_VERSION=latest
36
- RUN npm install -g @anthropic-ai/claude-code @ai-support-agent/cli@${AGENT_VERSION}
87
+ RUN npm install -g @anthropic-ai/claude-code @ai-support-agent/cli@${AGENT_VERSION} \
88
+ && npm cache clean --force
37
89
 
38
90
  WORKDIR /workspace
91
+ RUN chmod 777 /workspace
39
92
  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.10-beta.0",
3
+ "version": "0.0.11",
4
4
  "description": "AI Support Agent CLI client",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -45,6 +45,9 @@
45
45
  "pg": "^8.19.0",
46
46
  "ws": "^8.19.0"
47
47
  },
48
+ "optionalDependencies": {
49
+ "node-pty": "^1.1.0"
50
+ },
48
51
  "devDependencies": {
49
52
  "@types/jest": "^30.0.0",
50
53
  "@types/node": "^22.0.0",