@ai-support-agent/cli 0.0.22-beta.1 → 0.0.22-beta.3

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 (56) hide show
  1. package/dist/api-client.d.ts.map +1 -1
  2. package/dist/api-client.js +5 -0
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/cli/service/darwin-service.d.ts +9 -0
  5. package/dist/cli/service/darwin-service.d.ts.map +1 -0
  6. package/dist/cli/service/darwin-service.js +142 -0
  7. package/dist/cli/service/darwin-service.js.map +1 -0
  8. package/dist/cli/service/escape-xml.d.ts +2 -0
  9. package/dist/cli/service/escape-xml.d.ts.map +1 -0
  10. package/dist/cli/service/escape-xml.js +12 -0
  11. package/dist/cli/service/escape-xml.js.map +1 -0
  12. package/dist/cli/service/linux-service.d.ts +7 -0
  13. package/dist/cli/service/linux-service.d.ts.map +1 -0
  14. package/dist/cli/service/linux-service.js +120 -0
  15. package/dist/cli/service/linux-service.js.map +1 -0
  16. package/dist/cli/service/node-paths.d.ts +3 -0
  17. package/dist/cli/service/node-paths.d.ts.map +1 -0
  18. package/dist/cli/service/node-paths.js +45 -0
  19. package/dist/cli/service/node-paths.js.map +1 -0
  20. package/dist/cli/service/types.d.ts +14 -0
  21. package/dist/cli/service/types.d.ts.map +1 -0
  22. package/dist/cli/service/types.js +3 -0
  23. package/dist/cli/service/types.js.map +1 -0
  24. package/dist/cli/service/win32-service.d.ts +7 -0
  25. package/dist/cli/service/win32-service.d.ts.map +1 -0
  26. package/dist/cli/service/win32-service.js +143 -0
  27. package/dist/cli/service/win32-service.js.map +1 -0
  28. package/dist/cli/service-command.d.ts +9 -0
  29. package/dist/cli/service-command.d.ts.map +1 -0
  30. package/dist/cli/service-command.js +56 -0
  31. package/dist/cli/service-command.js.map +1 -0
  32. package/dist/commands/claude-code-runner.d.ts.map +1 -1
  33. package/dist/commands/claude-code-runner.js +13 -3
  34. package/dist/commands/claude-code-runner.js.map +1 -1
  35. package/dist/commands/claude-code-stream.d.ts +3 -1
  36. package/dist/commands/claude-code-stream.d.ts.map +1 -1
  37. package/dist/commands/claude-code-stream.js +9 -3
  38. package/dist/commands/claude-code-stream.js.map +1 -1
  39. package/dist/constants.d.ts +1 -0
  40. package/dist/constants.d.ts.map +1 -1
  41. package/dist/constants.js +3 -2
  42. package/dist/constants.js.map +1 -1
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/locales/en.json +26 -1
  46. package/dist/locales/ja.json +26 -1
  47. package/dist/locales/locales/en.json +26 -1
  48. package/dist/locales/locales/ja.json +26 -1
  49. package/dist/project-agent.d.ts.map +1 -1
  50. package/dist/project-agent.js +8 -2
  51. package/dist/project-agent.js.map +1 -1
  52. package/dist/utils/activity-timeout.d.ts +10 -2
  53. package/dist/utils/activity-timeout.d.ts.map +1 -1
  54. package/dist/utils/activity-timeout.js +15 -3
  55. package/dist/utils/activity-timeout.js.map +1 -1
  56. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,11 @@ class ApiClient {
49
49
  }
50
50
  updateToken(newToken) {
51
51
  this.client.defaults.headers['Authorization'] = `Bearer ${newToken}`;
52
+ // Re-extract tenantCode from new token format: {tenantCode}:{tokenId}:{rawToken}
53
+ const tokenParts = newToken.split(':');
54
+ if (tokenParts.length >= 3) {
55
+ this.tenantCode = tokenParts[0];
56
+ }
52
57
  }
53
58
  async get(url, config) {
54
59
  return this.retry.withRetry(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { getCliEntryPoint, getNodePath } from './node-paths';
2
+ import type { ServiceConfig, ServiceOptions, ServiceStrategy } from './types';
3
+ export { getCliEntryPoint, getNodePath };
4
+ export declare function generatePlist(options: ServiceConfig): string;
5
+ export declare class DarwinServiceStrategy implements ServiceStrategy {
6
+ install(options: ServiceOptions): void;
7
+ uninstall(): void;
8
+ }
9
+ //# sourceMappingURL=darwin-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"darwin-service.d.ts","sourceRoot":"","sources":["../../../src/cli/service/darwin-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE7E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA;AAYxC,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA6C5D;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAsCtC,SAAS,IAAI,IAAI;CAalB"}
@@ -0,0 +1,142 @@
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.DarwinServiceStrategy = exports.getNodePath = exports.getCliEntryPoint = void 0;
37
+ exports.generatePlist = generatePlist;
38
+ const fs = __importStar(require("fs"));
39
+ const os = __importStar(require("os"));
40
+ const path = __importStar(require("path"));
41
+ const i18n_1 = require("../../i18n");
42
+ const logger_1 = require("../../logger");
43
+ const escape_xml_1 = require("./escape-xml");
44
+ const node_paths_1 = require("./node-paths");
45
+ Object.defineProperty(exports, "getCliEntryPoint", { enumerable: true, get: function () { return node_paths_1.getCliEntryPoint; } });
46
+ Object.defineProperty(exports, "getNodePath", { enumerable: true, get: function () { return node_paths_1.getNodePath; } });
47
+ const SERVICE_LABEL = 'com.ai-support-agent.cli';
48
+ function getPlistPath() {
49
+ return path.join(os.homedir(), 'Library', 'LaunchAgents', `${SERVICE_LABEL}.plist`);
50
+ }
51
+ function getLogDir() {
52
+ return path.join(os.homedir(), 'Library', 'Logs', 'ai-support-agent');
53
+ }
54
+ function generatePlist(options) {
55
+ const { nodePath, entryPoint, logDir, verbose } = options;
56
+ const args = [nodePath, entryPoint, 'start', '--no-docker'];
57
+ if (verbose) {
58
+ args.push('--verbose');
59
+ }
60
+ const programArgs = args
61
+ .map((a) => ` <string>${(0, escape_xml_1.escapeXml)(a)}</string>`)
62
+ .join('\n');
63
+ return `<?xml version="1.0" encoding="UTF-8"?>
64
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
65
+ "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
66
+ <plist version="1.0">
67
+ <dict>
68
+ <key>Label</key>
69
+ <string>${SERVICE_LABEL}</string>
70
+
71
+ <key>ProgramArguments</key>
72
+ <array>
73
+ ${programArgs}
74
+ </array>
75
+
76
+ <key>RunAtLoad</key>
77
+ <true/>
78
+
79
+ <key>KeepAlive</key>
80
+ <true/>
81
+
82
+ <key>StandardOutPath</key>
83
+ <string>${(0, escape_xml_1.escapeXml)(path.join(logDir, 'agent.out.log'))}</string>
84
+
85
+ <key>StandardErrorPath</key>
86
+ <string>${(0, escape_xml_1.escapeXml)(path.join(logDir, 'agent.err.log'))}</string>
87
+
88
+ <key>EnvironmentVariables</key>
89
+ <dict>
90
+ <key>PATH</key>
91
+ <string>/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin</string>
92
+ <key>HOME</key>
93
+ <string>${(0, escape_xml_1.escapeXml)(os.homedir())}</string>
94
+ </dict>
95
+ </dict>
96
+ </plist>`;
97
+ }
98
+ class DarwinServiceStrategy {
99
+ install(options) {
100
+ const plistPath = getPlistPath();
101
+ const logDir = getLogDir();
102
+ const nodePath = (0, node_paths_1.getNodePath)();
103
+ const entryPoint = (0, node_paths_1.getCliEntryPoint)();
104
+ if (!fs.existsSync(entryPoint)) {
105
+ logger_1.logger.error((0, i18n_1.t)('service.entryPointNotFound', { path: entryPoint }));
106
+ return;
107
+ }
108
+ if (!fs.existsSync(logDir)) {
109
+ fs.mkdirSync(logDir, { recursive: true });
110
+ }
111
+ const launchAgentsDir = path.dirname(plistPath);
112
+ if (!fs.existsSync(launchAgentsDir)) {
113
+ fs.mkdirSync(launchAgentsDir, { recursive: true });
114
+ }
115
+ if (fs.existsSync(plistPath)) {
116
+ logger_1.logger.info((0, i18n_1.t)('service.overwriting', { path: plistPath }));
117
+ }
118
+ const plist = generatePlist({
119
+ nodePath,
120
+ entryPoint,
121
+ logDir,
122
+ verbose: options.verbose,
123
+ });
124
+ fs.writeFileSync(plistPath, plist, 'utf-8');
125
+ logger_1.logger.success((0, i18n_1.t)('service.installed', { path: plistPath }));
126
+ logger_1.logger.info((0, i18n_1.t)('service.loadHint', { path: plistPath }));
127
+ logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
128
+ logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
129
+ }
130
+ uninstall() {
131
+ const plistPath = getPlistPath();
132
+ if (!fs.existsSync(plistPath)) {
133
+ logger_1.logger.warn((0, i18n_1.t)('service.notInstalled'));
134
+ return;
135
+ }
136
+ logger_1.logger.info((0, i18n_1.t)('service.unloadHint', { label: SERVICE_LABEL }));
137
+ fs.unlinkSync(plistPath);
138
+ logger_1.logger.success((0, i18n_1.t)('service.uninstalled'));
139
+ }
140
+ }
141
+ exports.DarwinServiceStrategy = DarwinServiceStrategy;
142
+ //# sourceMappingURL=darwin-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"darwin-service.js","sourceRoot":"","sources":["../../../src/cli/service/darwin-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function escapeXml(str: string): string;
2
+ //# sourceMappingURL=escape-xml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape-xml.d.ts","sourceRoot":"","sources":["../../../src/cli/service/escape-xml.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeXml = escapeXml;
4
+ function escapeXml(str) {
5
+ return str
6
+ .replace(/&/g, '&amp;')
7
+ .replace(/</g, '&lt;')
8
+ .replace(/>/g, '&gt;')
9
+ .replace(/"/g, '&quot;')
10
+ .replace(/'/g, '&apos;');
11
+ }
12
+ //# sourceMappingURL=escape-xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape-xml.js","sourceRoot":"","sources":["../../../src/cli/service/escape-xml.ts"],"names":[],"mappings":";;AAAA,8BAOC;AAPD,SAAgB,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ServiceConfig, ServiceOptions, ServiceStrategy } from './types';
2
+ export declare function generateServiceUnit(options: ServiceConfig): string;
3
+ export declare class LinuxServiceStrategy implements ServiceStrategy {
4
+ install(options: ServiceOptions): void;
5
+ uninstall(): void;
6
+ }
7
+ //# sourceMappingURL=linux-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linux-service.d.ts","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAY7E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAyBlE;AAED,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAsCtC,SAAS,IAAI,IAAI;CAalB"}
@@ -0,0 +1,120 @@
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.LinuxServiceStrategy = void 0;
37
+ exports.generateServiceUnit = generateServiceUnit;
38
+ const fs = __importStar(require("fs"));
39
+ const os = __importStar(require("os"));
40
+ const path = __importStar(require("path"));
41
+ const i18n_1 = require("../../i18n");
42
+ const logger_1 = require("../../logger");
43
+ const node_paths_1 = require("./node-paths");
44
+ const SERVICE_NAME = 'ai-support-agent.service';
45
+ function getServiceFilePath() {
46
+ return path.join(os.homedir(), '.config', 'systemd', 'user', SERVICE_NAME);
47
+ }
48
+ function getLogDir() {
49
+ return path.join(os.homedir(), '.local', 'share', 'ai-support-agent', 'logs');
50
+ }
51
+ function generateServiceUnit(options) {
52
+ const { nodePath, entryPoint, logDir, verbose } = options;
53
+ const execArgs = [nodePath, entryPoint, 'start', '--no-docker'];
54
+ if (verbose) {
55
+ execArgs.push('--verbose');
56
+ }
57
+ return `[Unit]
58
+ Description=AI Support Agent
59
+ After=network-online.target
60
+ Wants=network-online.target
61
+
62
+ [Service]
63
+ Type=simple
64
+ ExecStart=${execArgs.map(arg => (arg.includes(' ') ? `"${arg}"` : arg)).join(' ')}
65
+ Restart=always
66
+ RestartSec=10
67
+ Environment=PATH=/usr/local/bin:/usr/bin:/bin
68
+ Environment=HOME=${os.homedir()}
69
+ StandardOutput=append:${path.join(logDir, 'agent.out.log')}
70
+ StandardError=append:${path.join(logDir, 'agent.err.log')}
71
+
72
+ [Install]
73
+ WantedBy=default.target
74
+ `;
75
+ }
76
+ class LinuxServiceStrategy {
77
+ install(options) {
78
+ const serviceFilePath = getServiceFilePath();
79
+ const logDir = getLogDir();
80
+ const nodePath = (0, node_paths_1.getNodePath)();
81
+ const entryPoint = (0, node_paths_1.getCliEntryPoint)();
82
+ if (!fs.existsSync(entryPoint)) {
83
+ logger_1.logger.error((0, i18n_1.t)('service.entryPointNotFound', { path: entryPoint }));
84
+ return;
85
+ }
86
+ if (!fs.existsSync(logDir)) {
87
+ fs.mkdirSync(logDir, { recursive: true });
88
+ }
89
+ const systemdDir = path.dirname(serviceFilePath);
90
+ if (!fs.existsSync(systemdDir)) {
91
+ fs.mkdirSync(systemdDir, { recursive: true });
92
+ }
93
+ if (fs.existsSync(serviceFilePath)) {
94
+ logger_1.logger.info((0, i18n_1.t)('service.overwriting', { path: serviceFilePath }));
95
+ }
96
+ const unit = generateServiceUnit({
97
+ nodePath,
98
+ entryPoint,
99
+ logDir,
100
+ verbose: options.verbose,
101
+ });
102
+ fs.writeFileSync(serviceFilePath, unit, 'utf-8');
103
+ logger_1.logger.success((0, i18n_1.t)('service.installed.linux', { path: serviceFilePath }));
104
+ logger_1.logger.info((0, i18n_1.t)('service.loadHint.linux'));
105
+ logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
106
+ logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
107
+ }
108
+ uninstall() {
109
+ const serviceFilePath = getServiceFilePath();
110
+ if (!fs.existsSync(serviceFilePath)) {
111
+ logger_1.logger.warn((0, i18n_1.t)('service.notInstalled.linux'));
112
+ return;
113
+ }
114
+ logger_1.logger.info((0, i18n_1.t)('service.unloadHint.linux'));
115
+ fs.unlinkSync(serviceFilePath);
116
+ logger_1.logger.success((0, i18n_1.t)('service.uninstalled.linux'));
117
+ }
118
+ }
119
+ exports.LinuxServiceStrategy = LinuxServiceStrategy;
120
+ //# sourceMappingURL=linux-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function getNodePath(): string;
2
+ export declare function getCliEntryPoint(): string;
3
+ //# sourceMappingURL=node-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-paths.d.ts","sourceRoot":"","sources":["../../../src/cli/service/node-paths.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,45 @@
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.getNodePath = getNodePath;
37
+ exports.getCliEntryPoint = getCliEntryPoint;
38
+ const path = __importStar(require("path"));
39
+ function getNodePath() {
40
+ return process.execPath;
41
+ }
42
+ function getCliEntryPoint() {
43
+ return path.resolve(__dirname, '..', '..', 'index.js');
44
+ }
45
+ //# sourceMappingURL=node-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-paths.js","sourceRoot":"","sources":["../../../src/cli/service/node-paths.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kCAEC;AAED,4CAEC;AARD,2CAA4B;AAE5B,SAAgB,WAAW;IACzB,OAAO,OAAO,CAAC,QAAQ,CAAA;AACzB,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;AACxD,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface ServiceOptions {
2
+ verbose?: boolean;
3
+ }
4
+ export interface ServiceStrategy {
5
+ install(options: ServiceOptions): void;
6
+ uninstall(): void;
7
+ }
8
+ export interface ServiceConfig {
9
+ nodePath: string;
10
+ entryPoint: string;
11
+ logDir: string;
12
+ verbose?: boolean;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/service/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,SAAS,IAAI,IAAI,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/service/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { ServiceConfig, ServiceOptions, ServiceStrategy } from './types';
2
+ export declare function generateTaskXml(options: ServiceConfig): string;
3
+ export declare class Win32ServiceStrategy implements ServiceStrategy {
4
+ install(options: ServiceOptions): void;
5
+ uninstall(): void;
6
+ }
7
+ //# sourceMappingURL=win32-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"win32-service.d.ts","sourceRoot":"","sources":["../../../src/cli/service/win32-service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAS7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA+B9D;AAED,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IA2CtC,SAAS,IAAI,IAAI;CAoBlB"}
@@ -0,0 +1,143 @@
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.Win32ServiceStrategy = void 0;
37
+ exports.generateTaskXml = generateTaskXml;
38
+ const child_process_1 = require("child_process");
39
+ const fs = __importStar(require("fs"));
40
+ const os = __importStar(require("os"));
41
+ const path = __importStar(require("path"));
42
+ const i18n_1 = require("../../i18n");
43
+ const logger_1 = require("../../logger");
44
+ const escape_xml_1 = require("./escape-xml");
45
+ const node_paths_1 = require("./node-paths");
46
+ const TASK_NAME = 'AISupportAgent';
47
+ function getLogDir() {
48
+ const localAppData = process.env.LOCALAPPDATA || path.join(os.homedir(), 'AppData', 'Local');
49
+ return path.join(localAppData, 'ai-support-agent', 'logs');
50
+ }
51
+ function generateTaskXml(options) {
52
+ const { nodePath, entryPoint, verbose } = options;
53
+ const args = [entryPoint, 'start', '--no-docker'];
54
+ if (verbose) {
55
+ args.push('--verbose');
56
+ }
57
+ return `<?xml version="1.0" encoding="UTF-16"?>
58
+ <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
59
+ <Triggers>
60
+ <LogonTrigger>
61
+ <Enabled>true</Enabled>
62
+ </LogonTrigger>
63
+ </Triggers>
64
+ <Settings>
65
+ <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
66
+ <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
67
+ <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
68
+ <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
69
+ <RestartOnFailure>
70
+ <Interval>PT1M</Interval>
71
+ <Count>999</Count>
72
+ </RestartOnFailure>
73
+ </Settings>
74
+ <Actions>
75
+ <Exec>
76
+ <Command>${(0, escape_xml_1.escapeXml)(nodePath)}</Command>
77
+ <Arguments>${(0, escape_xml_1.escapeXml)(args.join(' '))}</Arguments>
78
+ </Exec>
79
+ </Actions>
80
+ </Task>`;
81
+ }
82
+ class Win32ServiceStrategy {
83
+ install(options) {
84
+ const logDir = getLogDir();
85
+ const nodePath = (0, node_paths_1.getNodePath)();
86
+ const entryPoint = (0, node_paths_1.getCliEntryPoint)();
87
+ if (!fs.existsSync(entryPoint)) {
88
+ logger_1.logger.error((0, i18n_1.t)('service.entryPointNotFound', { path: entryPoint }));
89
+ return;
90
+ }
91
+ if (!fs.existsSync(logDir)) {
92
+ fs.mkdirSync(logDir, { recursive: true });
93
+ }
94
+ const xml = generateTaskXml({
95
+ nodePath,
96
+ entryPoint,
97
+ logDir,
98
+ verbose: options.verbose,
99
+ });
100
+ const tmpXmlPath = path.join(os.tmpdir(), `${TASK_NAME}-task.xml`);
101
+ try {
102
+ fs.writeFileSync(tmpXmlPath, xml, 'utf-8');
103
+ (0, child_process_1.execSync)(`schtasks /Create /TN "${TASK_NAME}" /XML "${tmpXmlPath}" /F`, {
104
+ stdio: 'pipe',
105
+ });
106
+ }
107
+ catch (error) {
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ logger_1.logger.error((0, i18n_1.t)('service.schtasksFailed', { message }));
110
+ return;
111
+ }
112
+ finally {
113
+ if (fs.existsSync(tmpXmlPath)) {
114
+ fs.unlinkSync(tmpXmlPath);
115
+ }
116
+ }
117
+ logger_1.logger.success((0, i18n_1.t)('service.installed.win32', { taskName: TASK_NAME }));
118
+ logger_1.logger.info((0, i18n_1.t)('service.loadHint.win32', { taskName: TASK_NAME }));
119
+ logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
120
+ logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
121
+ }
122
+ uninstall() {
123
+ try {
124
+ (0, child_process_1.execSync)(`schtasks /Query /TN "${TASK_NAME}"`, { stdio: 'pipe' });
125
+ }
126
+ catch {
127
+ logger_1.logger.warn((0, i18n_1.t)('service.notInstalled.win32'));
128
+ return;
129
+ }
130
+ logger_1.logger.info((0, i18n_1.t)('service.unloadHint.win32', { taskName: TASK_NAME }));
131
+ try {
132
+ (0, child_process_1.execSync)(`schtasks /Delete /TN "${TASK_NAME}" /F`, { stdio: 'pipe' });
133
+ }
134
+ catch (error) {
135
+ const message = error instanceof Error ? error.message : String(error);
136
+ logger_1.logger.error((0, i18n_1.t)('service.schtasksFailed', { message }));
137
+ return;
138
+ }
139
+ logger_1.logger.success((0, i18n_1.t)('service.uninstalled.win32'));
140
+ }
141
+ }
142
+ exports.Win32ServiceStrategy = Win32ServiceStrategy;
143
+ //# sourceMappingURL=win32-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"win32-service.js","sourceRoot":"","sources":["../../../src/cli/service/win32-service.ts"],"names":[],"mappings":"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"}