@ai-support-agent/cli 0.0.2-beta.0 → 0.0.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 (84) hide show
  1. package/dist/agent-runner.d.ts +3 -5
  2. package/dist/agent-runner.d.ts.map +1 -1
  3. package/dist/agent-runner.js +20 -121
  4. package/dist/agent-runner.js.map +1 -1
  5. package/dist/api-client.d.ts +8 -5
  6. package/dist/api-client.d.ts.map +1 -1
  7. package/dist/api-client.js +39 -8
  8. package/dist/api-client.js.map +1 -1
  9. package/dist/appsync-subscriber.d.ts +36 -0
  10. package/dist/appsync-subscriber.d.ts.map +1 -0
  11. package/dist/appsync-subscriber.js +234 -0
  12. package/dist/appsync-subscriber.js.map +1 -0
  13. package/dist/chat-mode-detector.d.ts +19 -0
  14. package/dist/chat-mode-detector.d.ts.map +1 -0
  15. package/dist/chat-mode-detector.js +83 -0
  16. package/dist/chat-mode-detector.js.map +1 -0
  17. package/dist/cli/auth-commands.d.ts +3 -0
  18. package/dist/cli/auth-commands.d.ts.map +1 -0
  19. package/dist/cli/auth-commands.js +123 -0
  20. package/dist/cli/auth-commands.js.map +1 -0
  21. package/dist/cli/status-command.d.ts +5 -0
  22. package/dist/cli/status-command.d.ts.map +1 -0
  23. package/dist/cli/status-command.js +57 -0
  24. package/dist/cli/status-command.js.map +1 -0
  25. package/dist/cli/validators.d.ts +4 -0
  26. package/dist/cli/validators.d.ts.map +1 -0
  27. package/dist/cli/validators.js +26 -0
  28. package/dist/cli/validators.js.map +1 -0
  29. package/dist/command-executor.d.ts +2 -2
  30. package/dist/command-executor.d.ts.map +1 -1
  31. package/dist/command-executor.js +15 -303
  32. package/dist/command-executor.js.map +1 -1
  33. package/dist/commands/api-chat-executor.d.ts +8 -0
  34. package/dist/commands/api-chat-executor.d.ts.map +1 -0
  35. package/dist/commands/api-chat-executor.js +117 -0
  36. package/dist/commands/api-chat-executor.js.map +1 -0
  37. package/dist/commands/chat-executor.d.ts +11 -0
  38. package/dist/commands/chat-executor.d.ts.map +1 -0
  39. package/dist/commands/chat-executor.js +127 -0
  40. package/dist/commands/chat-executor.js.map +1 -0
  41. package/dist/commands/file-executor.d.ts +5 -0
  42. package/dist/commands/file-executor.d.ts.map +1 -0
  43. package/dist/commands/file-executor.js +97 -0
  44. package/dist/commands/file-executor.js.map +1 -0
  45. package/dist/commands/index.d.ts +16 -0
  46. package/dist/commands/index.d.ts.map +1 -0
  47. package/dist/commands/index.js +80 -0
  48. package/dist/commands/index.js.map +1 -0
  49. package/dist/commands/process-executor.d.ts +4 -0
  50. package/dist/commands/process-executor.d.ts.map +1 -0
  51. package/dist/commands/process-executor.js +66 -0
  52. package/dist/commands/process-executor.js.map +1 -0
  53. package/dist/commands/shared-chat-utils.d.ts +20 -0
  54. package/dist/commands/shared-chat-utils.d.ts.map +1 -0
  55. package/dist/commands/shared-chat-utils.js +35 -0
  56. package/dist/commands/shared-chat-utils.js.map +1 -0
  57. package/dist/commands/shell-executor.d.ts +3 -0
  58. package/dist/commands/shell-executor.d.ts.map +1 -0
  59. package/dist/commands/shell-executor.js +125 -0
  60. package/dist/commands/shell-executor.js.map +1 -0
  61. package/dist/config-manager.d.ts.map +1 -1
  62. package/dist/config-manager.js +5 -0
  63. package/dist/config-manager.js.map +1 -1
  64. package/dist/constants.d.ts +5 -2
  65. package/dist/constants.d.ts.map +1 -1
  66. package/dist/constants.js +44 -2
  67. package/dist/constants.js.map +1 -1
  68. package/dist/index.js +9 -176
  69. package/dist/index.js.map +1 -1
  70. package/dist/project-agent.d.ts +32 -0
  71. package/dist/project-agent.d.ts.map +1 -0
  72. package/dist/project-agent.js +296 -0
  73. package/dist/project-agent.js.map +1 -0
  74. package/dist/security.d.ts +13 -0
  75. package/dist/security.d.ts.map +1 -0
  76. package/dist/security.js +123 -0
  77. package/dist/security.js.map +1 -0
  78. package/dist/system-info.d.ts +4 -0
  79. package/dist/system-info.d.ts.map +1 -0
  80. package/dist/system-info.js +60 -0
  81. package/dist/system-info.js.map +1 -0
  82. package/dist/types.d.ts +67 -1
  83. package/dist/types.d.ts.map +1 -1
  84. package/package.json +5 -3
@@ -0,0 +1,97 @@
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.fileRead = fileRead;
37
+ exports.fileWrite = fileWrite;
38
+ exports.fileList = fileList;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const constants_1 = require("../constants");
42
+ const security_1 = require("../security");
43
+ async function fileRead(payload) {
44
+ const pathOrError = await (0, security_1.resolveAndValidatePath)(payload);
45
+ if (typeof pathOrError !== 'string')
46
+ return pathOrError;
47
+ const filePath = pathOrError;
48
+ const stat = await fs.promises.stat(filePath);
49
+ if (stat.size > constants_1.MAX_FILE_READ_SIZE) {
50
+ return {
51
+ success: false,
52
+ error: `File too large: ${stat.size} bytes (limit: ${constants_1.MAX_FILE_READ_SIZE} bytes)`,
53
+ };
54
+ }
55
+ const content = await fs.promises.readFile(filePath, 'utf-8');
56
+ return { success: true, data: content };
57
+ }
58
+ async function fileWrite(payload) {
59
+ const pathOrError = await (0, security_1.resolveAndValidatePath)(payload);
60
+ if (typeof pathOrError !== 'string')
61
+ return pathOrError;
62
+ const filePath = pathOrError;
63
+ const content = typeof payload.content === 'string' ? payload.content : null;
64
+ if (content === null) {
65
+ return { success: false, error: 'No content specified' };
66
+ }
67
+ if (content.length > constants_1.MAX_FILE_WRITE_SIZE) {
68
+ return { success: false, error: `Content too large: ${content.length} bytes (limit: ${constants_1.MAX_FILE_WRITE_SIZE} bytes)` };
69
+ }
70
+ if (payload.createDirectories) {
71
+ await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
72
+ }
73
+ await fs.promises.writeFile(filePath, content, 'utf-8');
74
+ return { success: true, data: `Written to ${filePath}` };
75
+ }
76
+ async function fileList(payload) {
77
+ const pathOrError = await (0, security_1.resolveAndValidatePath)(payload, '.');
78
+ if (typeof pathOrError !== 'string')
79
+ return pathOrError;
80
+ const dirPath = pathOrError;
81
+ const allEntries = await fs.promises.readdir(dirPath, { withFileTypes: true });
82
+ const truncated = allEntries.length > constants_1.MAX_DIR_ENTRIES;
83
+ const entries = allEntries.slice(0, constants_1.MAX_DIR_ENTRIES);
84
+ const items = await Promise.all(entries.map(async (entry) => {
85
+ const fullPath = path.join(dirPath, entry.name);
86
+ const type = entry.isDirectory() ? 'directory' : 'file';
87
+ try {
88
+ const stat = await fs.promises.lstat(fullPath);
89
+ return { name: entry.name, type, size: stat.size, modified: stat.mtime.toISOString() };
90
+ }
91
+ catch {
92
+ return { name: entry.name, type, size: 0, modified: '' };
93
+ }
94
+ }));
95
+ return { success: true, data: { items, truncated, total: allEntries.length } };
96
+ }
97
+ //# sourceMappingURL=file-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-executor.js","sourceRoot":"","sources":["../../src/commands/file-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ApiClient } from '../api-client';
2
+ import type { AgentChatMode, AgentCommandType, AgentServerConfig, CommandDispatch, CommandResult } from '../types';
3
+ /** Options for command execution */
4
+ export interface ExecuteCommandOptions {
5
+ commandId?: string;
6
+ client?: ApiClient;
7
+ serverConfig?: AgentServerConfig;
8
+ activeChatMode?: AgentChatMode;
9
+ agentId?: string;
10
+ }
11
+ export declare function executeCommand(command: CommandDispatch, options?: ExecuteCommandOptions): Promise<CommandResult>;
12
+ export declare function executeCommand(type: AgentCommandType, payload: Record<string, unknown>, options?: ExecuteCommandOptions): Promise<CommandResult>;
13
+ export { executeShellCommand } from './shell-executor';
14
+ export { fileList, fileRead, fileWrite } from './file-executor';
15
+ export { processKill, processList } from './process-executor';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAQlH,oCAAoC;AACpC,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAEvH,wBAAsB,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAkEvJ,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processList = exports.processKill = exports.fileWrite = exports.fileRead = exports.fileList = exports.executeShellCommand = void 0;
4
+ exports.executeCommand = executeCommand;
5
+ const logger_1 = require("../logger");
6
+ const utils_1 = require("../utils");
7
+ const chat_executor_1 = require("./chat-executor");
8
+ const file_executor_1 = require("./file-executor");
9
+ const process_executor_1 = require("./process-executor");
10
+ const shell_executor_1 = require("./shell-executor");
11
+ // Implementation
12
+ async function executeCommand(typeOrCommand, payloadOrOptions, options) {
13
+ const type = typeof typeOrCommand === 'string' ? typeOrCommand : typeOrCommand.type;
14
+ // Runtime payloads come from external API, so cast is safe — runtime validation happens in each executor
15
+ let p;
16
+ let opts;
17
+ if (typeof typeOrCommand === 'string') {
18
+ p = payloadOrOptions;
19
+ opts = options;
20
+ }
21
+ else {
22
+ p = typeOrCommand.payload;
23
+ opts = payloadOrOptions;
24
+ }
25
+ logger_1.logger.debug(`Executing command: type=${type}`);
26
+ try {
27
+ switch (type) {
28
+ case 'execute_command': {
29
+ const cmd = p.command;
30
+ logger_1.logger.debug(`[shell] command="${String(cmd ?? '').substring(0, 200)}"`);
31
+ return await (0, shell_executor_1.executeShellCommand)(p);
32
+ }
33
+ case 'file_read': {
34
+ const path = p.path;
35
+ logger_1.logger.debug(`[file_read] path="${String(path ?? '')}"`);
36
+ return await (0, file_executor_1.fileRead)(p);
37
+ }
38
+ case 'file_write': {
39
+ const path = p.path;
40
+ logger_1.logger.debug(`[file_write] path="${String(path ?? '')}"`);
41
+ return await (0, file_executor_1.fileWrite)(p);
42
+ }
43
+ case 'file_list': {
44
+ const path = p.path;
45
+ logger_1.logger.debug(`[file_list] path="${String(path ?? '')}"`);
46
+ return await (0, file_executor_1.fileList)(p);
47
+ }
48
+ case 'process_list':
49
+ return await (0, process_executor_1.processList)();
50
+ case 'process_kill': {
51
+ const pid = p.pid;
52
+ logger_1.logger.debug(`[process_kill] pid=${String(pid ?? '')}`);
53
+ return await (0, process_executor_1.processKill)(p);
54
+ }
55
+ case 'chat':
56
+ if (!opts?.commandId || !opts?.client) {
57
+ return { success: false, error: 'chat command requires commandId and client' };
58
+ }
59
+ return await (0, chat_executor_1.executeChatCommand)(p, opts.commandId, opts.client, opts.serverConfig, opts.activeChatMode, opts.agentId);
60
+ default:
61
+ logger_1.logger.warn(`Unknown command type: ${type}`);
62
+ return { success: false, error: `Unknown command type: ${type}` };
63
+ }
64
+ }
65
+ catch (error) {
66
+ const message = (0, utils_1.getErrorMessage)(error);
67
+ logger_1.logger.error(`Command execution failed (${type}): ${message}`);
68
+ return { success: false, error: message };
69
+ }
70
+ }
71
+ var shell_executor_2 = require("./shell-executor");
72
+ Object.defineProperty(exports, "executeShellCommand", { enumerable: true, get: function () { return shell_executor_2.executeShellCommand; } });
73
+ var file_executor_2 = require("./file-executor");
74
+ Object.defineProperty(exports, "fileList", { enumerable: true, get: function () { return file_executor_2.fileList; } });
75
+ Object.defineProperty(exports, "fileRead", { enumerable: true, get: function () { return file_executor_2.fileRead; } });
76
+ Object.defineProperty(exports, "fileWrite", { enumerable: true, get: function () { return file_executor_2.fileWrite; } });
77
+ var process_executor_2 = require("./process-executor");
78
+ Object.defineProperty(exports, "processKill", { enumerable: true, get: function () { return process_executor_2.processKill; } });
79
+ Object.defineProperty(exports, "processList", { enumerable: true, get: function () { return process_executor_2.processList; } });
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CommandResult, ProcessKillPayload } from '../types';
2
+ export declare function processList(): Promise<CommandResult>;
3
+ export declare function processKill(payload: ProcessKillPayload): Promise<CommandResult>;
4
+ //# sourceMappingURL=process-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-executor.d.ts","sourceRoot":"","sources":["../../src/commands/process-executor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKjE,wBAAgB,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CAMpD;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAkBxB"}
@@ -0,0 +1,66 @@
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.processList = processList;
37
+ exports.processKill = processKill;
38
+ const os = __importStar(require("os"));
39
+ const constants_1 = require("../constants");
40
+ const security_1 = require("../security");
41
+ const utils_1 = require("../utils");
42
+ const shell_executor_1 = require("./shell-executor");
43
+ function processList() {
44
+ const command = os.platform() === 'win32'
45
+ ? 'tasklist /fo csv /nh'
46
+ : 'ps aux';
47
+ return (0, shell_executor_1.executeShellCommand)({ command, timeout: constants_1.PROCESS_LIST_TIMEOUT });
48
+ }
49
+ async function processKill(payload) {
50
+ const pid = (0, utils_1.parseNumber)(payload.pid);
51
+ if (!pid || pid < 1 || !Number.isInteger(pid)) {
52
+ return { success: false, error: 'Invalid PID: must be a positive integer' };
53
+ }
54
+ const signal = (0, utils_1.parseString)(payload.signal) ?? 'SIGTERM';
55
+ if (!security_1.ALLOWED_SIGNALS.has(signal)) {
56
+ return { success: false, error: `Signal not allowed: ${signal}. Allowed: ${[...security_1.ALLOWED_SIGNALS].join(', ')}` };
57
+ }
58
+ try {
59
+ process.kill(pid, signal);
60
+ return { success: true, data: `Sent ${signal} to PID ${pid}` };
61
+ }
62
+ catch (error) {
63
+ return { success: false, error: (0, utils_1.getErrorMessage)(error) };
64
+ }
65
+ }
66
+ //# sourceMappingURL=process-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-executor.js","sourceRoot":"","sources":["../../src/commands/process-executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kCAMC;AAED,kCAoBC;AArCD,uCAAwB;AAExB,4CAAmD;AACnD,0CAA6C;AAE7C,oCAAoE;AAEpE,qDAAsD;AAEtD,SAAgB,WAAW;IACzB,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;QACvC,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,QAAQ,CAAA;IAEZ,OAAO,IAAA,oCAAmB,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,gCAAoB,EAAE,CAAC,CAAA;AACxE,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAA;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA;IAEvD,IAAI,CAAC,0BAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,MAAM,cAAc,CAAC,GAAG,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IAChH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,MAAM,WAAW,GAAG,EAAE,EAAE,CAAA;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAA;IAC1D,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ApiClient } from '../api-client';
2
+ import type { ChatChunkType } from '../types';
3
+ export interface ChunkSenderOptions {
4
+ debugLog?: boolean;
5
+ }
6
+ /**
7
+ * チャンクを送信する関数を生成するファクトリ
8
+ *
9
+ * @param commandId - コマンドID
10
+ * @param client - APIクライアント
11
+ * @param agentId - エージェントID
12
+ * @param logTag - ログのプレフィックスタグ(例: "chat", "api-chat")
13
+ * @param options - オプション(debugLog: チャンク送信時のデバッグログ出力)
14
+ * @returns chunkIndex を内部管理する sendChunk 関数と、現在の chunkIndex を取得する関数
15
+ */
16
+ export declare function createChunkSender(commandId: string, client: ApiClient, agentId: string, logTag: string, options?: ChunkSenderOptions): {
17
+ sendChunk: (type: ChatChunkType, content: string) => Promise<void>;
18
+ getChunkIndex: () => number;
19
+ };
20
+ //# sourceMappingURL=shared-chat-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-chat-utils.d.ts","sourceRoot":"","sources":["../../src/commands/shared-chat-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B;IACD,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,aAAa,EAAE,MAAM,MAAM,CAAA;CAC5B,CAsBA"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createChunkSender = createChunkSender;
4
+ const logger_1 = require("../logger");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * チャンクを送信する関数を生成するファクトリ
8
+ *
9
+ * @param commandId - コマンドID
10
+ * @param client - APIクライアント
11
+ * @param agentId - エージェントID
12
+ * @param logTag - ログのプレフィックスタグ(例: "chat", "api-chat")
13
+ * @param options - オプション(debugLog: チャンク送信時のデバッグログ出力)
14
+ * @returns chunkIndex を内部管理する sendChunk 関数と、現在の chunkIndex を取得する関数
15
+ */
16
+ function createChunkSender(commandId, client, agentId, logTag, options) {
17
+ let chunkIndex = 0;
18
+ const sendChunk = async (type, content) => {
19
+ try {
20
+ if (options?.debugLog) {
21
+ logger_1.logger.debug(`[${logTag}] Sending chunk #${chunkIndex} (${type}) [${commandId}]: ${content.substring(0, 100)}${content.length > 100 ? '...' : ''}`);
22
+ }
23
+ await client.submitChatChunk(commandId, {
24
+ index: chunkIndex++,
25
+ type,
26
+ content,
27
+ }, agentId);
28
+ }
29
+ catch (error) {
30
+ logger_1.logger.warn(`[${logTag}] Failed to send chunk #${chunkIndex - 1}: ${(0, utils_1.getErrorMessage)(error)}`);
31
+ }
32
+ };
33
+ return { sendChunk, getChunkIndex: () => chunkIndex };
34
+ }
35
+ //# sourceMappingURL=shared-chat-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-chat-utils.js","sourceRoot":"","sources":["../../src/commands/shared-chat-utils.ts"],"names":[],"mappings":";;AAmBA,8CA+BC;AAjDD,sCAAkC;AAElC,oCAA0C;AAM1C;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC/B,SAAiB,EACjB,MAAiB,EACjB,OAAe,EACf,MAAc,EACd,OAA4B;IAK5B,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,MAAM,SAAS,GAAG,KAAK,EACrB,IAAmB,EACnB,OAAe,EACA,EAAE;QACjB,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACtB,eAAM,CAAC,KAAK,CAAC,IAAI,MAAM,oBAAoB,UAAU,KAAK,IAAI,MAAM,SAAS,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACrJ,CAAC;YACD,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;gBACtC,KAAK,EAAE,UAAU,EAAE;gBACnB,IAAI;gBACJ,OAAO;aACR,EAAE,OAAO,CAAC,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,IAAI,MAAM,2BAA2B,UAAU,GAAG,CAAC,KAAK,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAA;AACvD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CommandResult, ShellCommandPayload } from '../types';
2
+ export declare function executeShellCommand(payload: ShellCommandPayload): Promise<CommandResult>;
3
+ //# sourceMappingURL=shell-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-executor.d.ts","sourceRoot":"","sources":["../../src/commands/shell-executor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAGlE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CA2FxB"}
@@ -0,0 +1,125 @@
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.executeShellCommand = executeShellCommand;
37
+ const child_process_1 = require("child_process");
38
+ const os = __importStar(require("os"));
39
+ const constants_1 = require("../constants");
40
+ const security_1 = require("../security");
41
+ const utils_1 = require("../utils");
42
+ async function executeShellCommand(payload) {
43
+ const command = (0, utils_1.parseString)(payload.command);
44
+ if (!command) {
45
+ return { success: false, error: 'No command specified' };
46
+ }
47
+ const validationError = (0, security_1.validateCommand)(command);
48
+ if (validationError) {
49
+ return { success: false, error: validationError };
50
+ }
51
+ const rawTimeout = (0, utils_1.parseNumber)(payload.timeout) ?? constants_1.CMD_DEFAULT_TIMEOUT;
52
+ if (rawTimeout < 1 || rawTimeout > constants_1.MAX_CMD_TIMEOUT) {
53
+ return { success: false, error: `Timeout must be between 1 and ${constants_1.MAX_CMD_TIMEOUT}ms` };
54
+ }
55
+ const timeout = rawTimeout;
56
+ const cwd = (0, utils_1.parseString)(payload.cwd) ?? os.homedir();
57
+ const cwdError = await (0, security_1.validateFilePath)(cwd);
58
+ if (cwdError) {
59
+ return { success: false, error: cwdError };
60
+ }
61
+ return new Promise((resolve) => {
62
+ let resolved = false;
63
+ const shellCmd = os.platform() === 'win32' ? 'cmd.exe' : '/bin/sh';
64
+ const shellArgs = os.platform() === 'win32' ? ['/c', command] : ['-c', command];
65
+ const proc = (0, child_process_1.spawn)(shellCmd, shellArgs, {
66
+ cwd,
67
+ env: (0, security_1.buildSafeEnv)(),
68
+ });
69
+ let stdout = '';
70
+ let stderr = '';
71
+ let outputSize = 0;
72
+ const timer = setTimeout(() => {
73
+ if (!resolved) {
74
+ resolved = true;
75
+ proc.kill('SIGKILL');
76
+ resolve({ success: false, error: `Command timed out after ${timeout}ms` });
77
+ }
78
+ }, timeout);
79
+ proc.stdout?.on('data', (data) => {
80
+ outputSize += data.length;
81
+ if (outputSize <= constants_1.MAX_OUTPUT_SIZE) {
82
+ stdout += data.toString();
83
+ }
84
+ });
85
+ proc.stderr?.on('data', (data) => {
86
+ outputSize += data.length;
87
+ if (outputSize <= constants_1.MAX_OUTPUT_SIZE) {
88
+ stderr += data.toString();
89
+ }
90
+ });
91
+ proc.on('close', (code) => {
92
+ clearTimeout(timer);
93
+ if (resolved)
94
+ return;
95
+ resolved = true;
96
+ const truncated = outputSize > constants_1.MAX_OUTPUT_SIZE;
97
+ const suffix = truncated ? '\n... [output truncated]' : '';
98
+ if (code === 0) {
99
+ resolve({ success: true, data: stdout + suffix });
100
+ }
101
+ else {
102
+ resolve({
103
+ success: false,
104
+ data: stdout + suffix,
105
+ error: stderr || `Process exited with code ${code}`,
106
+ });
107
+ }
108
+ });
109
+ proc.on('error', (err) => {
110
+ clearTimeout(timer);
111
+ if (resolved)
112
+ return;
113
+ resolved = true;
114
+ let errorMessage = err.message;
115
+ if (err.code === 'ENOENT') {
116
+ errorMessage = `Command not found: ${shellCmd}`;
117
+ }
118
+ else if (err.code === 'EACCES') {
119
+ errorMessage = `Permission denied: ${shellCmd}`;
120
+ }
121
+ resolve({ success: false, error: errorMessage });
122
+ });
123
+ });
124
+ }
125
+ //# sourceMappingURL=shell-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-executor.js","sourceRoot":"","sources":["../../src/commands/shell-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAqB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAgDlF,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAa/C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAoB7D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAYlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,GAClB,mBAAmB,EAAE,CAEvB"}
1
+ {"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAqB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAmDlF,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAa/C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAsB7D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAYlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,GAClB,mBAAmB,EAAE,CAEvB"}
@@ -48,6 +48,9 @@ const constants_1 = require("./constants");
48
48
  const i18n_1 = require("./i18n");
49
49
  const logger_1 = require("./logger");
50
50
  function getConfigDir() {
51
+ if (path.isAbsolute(constants_1.CONFIG_DIR)) {
52
+ return constants_1.CONFIG_DIR;
53
+ }
51
54
  return path.join(os.homedir(), constants_1.CONFIG_DIR);
52
55
  }
53
56
  function getConfigPath() {
@@ -118,6 +121,8 @@ function saveConfig(config) {
118
121
  lastConnected: config.lastConnected ?? existing?.lastConnected,
119
122
  language: config.language ?? existing?.language,
120
123
  projects: config.projects ?? existing?.projects,
124
+ autoUpdate: config.autoUpdate ?? existing?.autoUpdate,
125
+ agentChatMode: config.agentChatMode ?? existing?.agentChatMode,
121
126
  };
122
127
  const configPath = getConfigPath();
123
128
  writeConfigFile(configPath, merged);
@@ -1 +1 @@
1
- {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- export declare const CONFIG_DIR = ".ai-support-agent";
1
+ export declare const CONFIG_DIR: string;
2
2
  export declare const CONFIG_FILE = "config.json";
3
3
  export declare const DEFAULT_POLL_INTERVAL = 3000;
4
- export declare const DEFAULT_HEARTBEAT_INTERVAL = 30000;
4
+ export declare const DEFAULT_HEARTBEAT_INTERVAL = 60000;
5
5
  export declare const AUTH_TIMEOUT: number;
6
6
  export declare const AGENT_VERSION: string;
7
7
  export declare const MAX_OUTPUT_SIZE: number;
@@ -29,6 +29,9 @@ export declare const API_ENDPOINTS: {
29
29
  readonly COMMANDS_PENDING: "/api/agent/commands/pending";
30
30
  readonly COMMAND: (commandId: string) => string;
31
31
  readonly COMMAND_RESULT: (commandId: string) => string;
32
+ readonly COMMAND_CHUNKS: (commandId: string) => string;
32
33
  readonly VERSION: "/api/agent/version";
34
+ readonly CONNECTION_STATUS: "/api/agent/connection-status";
35
+ readonly CONFIG: "/api/agent/config";
33
36
  };
34
37
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU,sBAAsB,CAAA;AAC7C,eAAO,MAAM,WAAW,gBAAgB,CAAA;AACxC,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,eAAO,MAAM,0BAA0B,QAAQ,CAAA;AAC/C,eAAO,MAAM,YAAY,QAAgB,CAAA;AACzC,eAAO,MAAM,aAAa,QAAsB,CAAA;AAChD,eAAO,MAAM,eAAe,QAAmB,CAAA;AAC/C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAG3C,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAGzC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AACzC,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,eAAO,MAAM,kBAAkB,QAAmB,CAAA;AAClD,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AACnD,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAG1C,eAAO,MAAM,YAAY,OAAO,CAAA;AAChC,eAAO,MAAM,YAAY,SAAU,CAAA;AAGnC,eAAO,MAAM,eAAe,OAAO,CAAA;AAGnC,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAC7C,eAAO,MAAM,uBAAuB,eAAe,CAAA;AACnD,eAAO,MAAM,wBAAwB,gBAAgB,CAAA;AAGrD,eAAO,MAAM,qBAAqB,QAAiB,CAAA;AACnD,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAChD,eAAO,MAAM,mBAAmB,SAAU,CAAA;AAG1C,eAAO,MAAM,aAAa;;;;kCAIH,MAAM;yCACC,MAAM;;CAE1B,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,UAAU,QAInB,CAAA;AACJ,eAAO,MAAM,WAAW,gBAAgB,CAAA;AACxC,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,eAAO,MAAM,0BAA0B,QAAQ,CAAA;AAC/C,eAAO,MAAM,YAAY,QAAgB,CAAA;AACzC,eAAO,MAAM,aAAa,QAAsB,CAAA;AAChD,eAAO,MAAM,eAAe,QAAmB,CAAA;AAC/C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAG3C,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAGzC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AACzC,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,eAAO,MAAM,kBAAkB,QAAmB,CAAA;AAClD,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AACnD,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAG1C,eAAO,MAAM,YAAY,OAAO,CAAA;AAChC,eAAO,MAAM,YAAY,SAAU,CAAA;AAGnC,eAAO,MAAM,eAAe,OAAO,CAAA;AAGnC,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAC7C,eAAO,MAAM,uBAAuB,eAAe,CAAA;AACnD,eAAO,MAAM,wBAAwB,gBAAgB,CAAA;AAGrD,eAAO,MAAM,qBAAqB,QAAiB,CAAA;AACnD,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAChD,eAAO,MAAM,mBAAmB,SAAU,CAAA;AAG1C,eAAO,MAAM,aAAa;;;;kCAIH,MAAM;yCACC,MAAM;yCACN,MAAM;;;;CAI1B,CAAA"}