@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.
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +5 -0
- package/dist/api-client.js.map +1 -1
- package/dist/cli/service/darwin-service.d.ts +9 -0
- package/dist/cli/service/darwin-service.d.ts.map +1 -0
- package/dist/cli/service/darwin-service.js +142 -0
- package/dist/cli/service/darwin-service.js.map +1 -0
- package/dist/cli/service/escape-xml.d.ts +2 -0
- package/dist/cli/service/escape-xml.d.ts.map +1 -0
- package/dist/cli/service/escape-xml.js +12 -0
- package/dist/cli/service/escape-xml.js.map +1 -0
- package/dist/cli/service/linux-service.d.ts +7 -0
- package/dist/cli/service/linux-service.d.ts.map +1 -0
- package/dist/cli/service/linux-service.js +120 -0
- package/dist/cli/service/linux-service.js.map +1 -0
- package/dist/cli/service/node-paths.d.ts +3 -0
- package/dist/cli/service/node-paths.d.ts.map +1 -0
- package/dist/cli/service/node-paths.js +45 -0
- package/dist/cli/service/node-paths.js.map +1 -0
- package/dist/cli/service/types.d.ts +14 -0
- package/dist/cli/service/types.d.ts.map +1 -0
- package/dist/cli/service/types.js +3 -0
- package/dist/cli/service/types.js.map +1 -0
- package/dist/cli/service/win32-service.d.ts +7 -0
- package/dist/cli/service/win32-service.d.ts.map +1 -0
- package/dist/cli/service/win32-service.js +143 -0
- package/dist/cli/service/win32-service.js.map +1 -0
- package/dist/cli/service-command.d.ts +9 -0
- package/dist/cli/service-command.d.ts.map +1 -0
- package/dist/cli/service-command.js +56 -0
- package/dist/cli/service-command.js.map +1 -0
- package/dist/commands/claude-code-runner.d.ts.map +1 -1
- package/dist/commands/claude-code-runner.js +13 -3
- package/dist/commands/claude-code-runner.js.map +1 -1
- package/dist/commands/claude-code-stream.d.ts +3 -1
- package/dist/commands/claude-code-stream.d.ts.map +1 -1
- package/dist/commands/claude-code-stream.js +9 -3
- package/dist/commands/claude-code-stream.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/locales/en.json +26 -1
- package/dist/locales/ja.json +26 -1
- package/dist/locales/locales/en.json +26 -1
- package/dist/locales/locales/ja.json +26 -1
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +8 -2
- package/dist/project-agent.js.map +1 -1
- package/dist/utils/activity-timeout.d.ts +10 -2
- package/dist/utils/activity-timeout.d.ts.map +1 -1
- package/dist/utils/activity-timeout.js +15 -3
- package/dist/utils/activity-timeout.js.map +1 -1
- package/package.json +1 -1
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;gBAEZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAiCzC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api-client.js
CHANGED
|
@@ -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 () => {
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0E;AAE1E,2CAAoI;AACpI,qCAAiC;AACjC,qDAAgD;AAoBhD,MAAa,SAAS;IACH,MAAM,CAAe;IACrB,KAAK,CAAe;IAC7B,UAAU,GAAG,EAAE,CAAA;IACf,WAAW,GAAG,EAAE,CAAA;IAExB,YAAY,MAAc,EAAE,KAAa;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACtG,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM,EAAE,CAAC;gBACvD,eAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAA;YACvF,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAA;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,OAAO,EAAE,+BAAmB;SAC7B,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,GAAG,IAAI,8BAAa,CAAC;YAC7B,UAAU,EAAE,2BAAe;YAC3B,WAAW,EAAE,6BAAiB;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,EAAE,CAAA;
|
|
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 @@
|
|
|
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, '&')
|
|
7
|
+
.replace(/</g, '<')
|
|
8
|
+
.replace(/>/g, '>')
|
|
9
|
+
.replace(/"/g, '"')
|
|
10
|
+
.replace(/'/g, ''');
|
|
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 @@
|
|
|
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 @@
|
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,0CA+BC;AAjDD,iDAAwC;AACxC,uCAAwB;AACxB,uCAAwB;AACxB,2CAA4B;AAE5B,qCAA8B;AAC9B,yCAAqC;AACrC,6CAAwC;AACxC,6CAA4D;AAG5D,MAAM,SAAS,GAAG,gBAAgB,CAAA;AAElC,SAAS,SAAS;IAChB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;AAC5D,CAAC;AAED,SAAgB,eAAe,CAAC,OAAsB;IACpD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACjD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACxB,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;iBAmBQ,IAAA,sBAAS,EAAC,QAAQ,CAAC;mBACjB,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;QAGpC,CAAA;AACR,CAAC;AAED,MAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAuB;QAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,MAAM,QAAQ,GAAG,IAAA,wBAAW,GAAE,CAAA;QAC9B,MAAM,UAAU,GAAG,IAAA,6BAAgB,GAAE,CAAA;QAErC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;YACnE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,CAAC;YAC1B,QAAQ;YACR,UAAU;YACV,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,WAAW,CAAC,CAAA;QAClE,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YAC1C,IAAA,wBAAQ,EAAC,yBAAyB,SAAS,WAAW,UAAU,MAAM,EAAE;gBACtE,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACrE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACjE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,uBAAuB,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,SAAS;QACP,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,wBAAwB,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,4BAA4B,CAAC,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAEnE,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,yBAAyB,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QAED,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,2BAA2B,CAAC,CAAC,CAAA;IAChD,CAAC;CACF;AAhED,oDAgEC"}
|