@ai-support-agent/cli 0.0.5-beta.5 → 0.0.5
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/agent-config-sync.d.ts +49 -0
- package/dist/agent-config-sync.d.ts.map +1 -0
- package/dist/agent-config-sync.js +168 -0
- package/dist/agent-config-sync.js.map +1 -0
- package/dist/agent-runner.d.ts +11 -3
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +48 -24
- package/dist/agent-runner.js.map +1 -1
- package/dist/agent-transport.d.ts +59 -0
- package/dist/agent-transport.d.ts.map +1 -0
- package/dist/agent-transport.js +225 -0
- package/dist/agent-transport.js.map +1 -0
- package/dist/api-client.d.ts +2 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +4 -0
- package/dist/api-client.js.map +1 -1
- package/dist/appsync-subscriber.d.ts +2 -2
- package/dist/appsync-subscriber.d.ts.map +1 -1
- package/dist/appsync-subscriber.js +15 -34
- package/dist/appsync-subscriber.js.map +1 -1
- package/dist/aws-profile.d.ts.map +1 -1
- package/dist/aws-profile.js +3 -6
- package/dist/aws-profile.js.map +1 -1
- package/dist/commands/api-chat-executor.d.ts +10 -1
- package/dist/commands/api-chat-executor.d.ts.map +1 -1
- package/dist/commands/api-chat-executor.js +64 -29
- package/dist/commands/api-chat-executor.js.map +1 -1
- package/dist/commands/chat-executor.d.ts +13 -2
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +65 -14
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/claude-code-runner.d.ts +53 -3
- package/dist/commands/claude-code-runner.d.ts.map +1 -1
- package/dist/commands/claude-code-runner.js +107 -15
- package/dist/commands/claude-code-runner.js.map +1 -1
- package/dist/commands/file-executor.d.ts +1 -1
- package/dist/commands/file-executor.d.ts.map +1 -1
- package/dist/commands/file-executor.js +59 -70
- package/dist/commands/file-executor.js.map +1 -1
- package/dist/commands/file-path-guard.d.ts +9 -0
- package/dist/commands/file-path-guard.d.ts.map +1 -0
- package/dist/commands/file-path-guard.js +15 -0
- package/dist/commands/file-path-guard.js.map +1 -0
- package/dist/commands/file-transfer.d.ts +5 -0
- package/dist/commands/file-transfer.d.ts.map +1 -1
- package/dist/commands/file-transfer.js +16 -39
- package/dist/commands/file-transfer.js.map +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +18 -7
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/process-executor.d.ts +1 -1
- package/dist/commands/process-executor.d.ts.map +1 -1
- package/dist/commands/process-executor.js +24 -6
- package/dist/commands/process-executor.js.map +1 -1
- package/dist/commands/process-manager.d.ts +22 -0
- package/dist/commands/process-manager.d.ts.map +1 -0
- package/dist/commands/process-manager.js +36 -0
- package/dist/commands/process-manager.js.map +1 -0
- package/dist/commands/shared-chat-utils.d.ts +6 -1
- package/dist/commands/shared-chat-utils.d.ts.map +1 -1
- package/dist/commands/shared-chat-utils.js +11 -0
- package/dist/commands/shared-chat-utils.js.map +1 -1
- package/dist/commands/shell-executor.d.ts +1 -1
- package/dist/commands/shell-executor.d.ts.map +1 -1
- package/dist/commands/shell-executor.js +9 -12
- package/dist/commands/shell-executor.js.map +1 -1
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js +2 -3
- package/dist/config-manager.js.map +1 -1
- package/dist/constants.d.ts +19 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +23 -1
- package/dist/constants.js.map +1 -1
- package/dist/docker/docker-runner.d.ts.map +1 -1
- package/dist/docker/docker-runner.js +5 -3
- package/dist/docker/docker-runner.js.map +1 -1
- package/dist/ipc-types.d.ts +36 -0
- package/dist/ipc-types.d.ts.map +1 -0
- package/dist/ipc-types.js +34 -0
- package/dist/ipc-types.js.map +1 -0
- package/dist/mcp/config-writer.d.ts +5 -1
- package/dist/mcp/config-writer.d.ts.map +1 -1
- package/dist/mcp/config-writer.js +14 -1
- package/dist/mcp/config-writer.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/credentials.d.ts.map +1 -1
- package/dist/mcp/tools/credentials.js +36 -9
- package/dist/mcp/tools/credentials.js.map +1 -1
- package/dist/mcp/tools/db-query.d.ts.map +1 -1
- package/dist/mcp/tools/db-query.js +13 -18
- package/dist/mcp/tools/db-query.js.map +1 -1
- package/dist/mcp/tools/db-schemas.d.ts.map +1 -1
- package/dist/mcp/tools/db-schemas.js +8 -13
- package/dist/mcp/tools/db-schemas.js.map +1 -1
- package/dist/mcp/tools/file-upload.d.ts.map +1 -1
- package/dist/mcp/tools/file-upload.js +12 -17
- package/dist/mcp/tools/file-upload.js.map +1 -1
- package/dist/mcp/tools/mcp-response.d.ts +29 -1
- package/dist/mcp/tools/mcp-response.d.ts.map +1 -1
- package/dist/mcp/tools/mcp-response.js +51 -3
- package/dist/mcp/tools/mcp-response.js.map +1 -1
- package/dist/mcp/tools/project-info.d.ts.map +1 -1
- package/dist/mcp/tools/project-info.js +28 -33
- package/dist/mcp/tools/project-info.js.map +1 -1
- package/dist/mcp/tools/read-conversation-file.d.ts +4 -0
- package/dist/mcp/tools/read-conversation-file.d.ts.map +1 -0
- package/dist/mcp/tools/read-conversation-file.js +92 -0
- package/dist/mcp/tools/read-conversation-file.js.map +1 -0
- package/dist/process-manager.d.ts +20 -0
- package/dist/process-manager.d.ts.map +1 -0
- package/dist/process-manager.js +125 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/project-agent.d.ts +5 -25
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +67 -313
- package/dist/project-agent.js.map +1 -1
- package/dist/project-config-sync.d.ts.map +1 -1
- package/dist/project-config-sync.js +9 -3
- package/dist/project-config-sync.js.map +1 -1
- package/dist/project-worker.d.ts +2 -0
- package/dist/project-worker.d.ts.map +1 -0
- package/dist/project-worker.js +85 -0
- package/dist/project-worker.js.map +1 -0
- package/dist/repo-sync.d.ts +23 -0
- package/dist/repo-sync.d.ts.map +1 -0
- package/dist/repo-sync.js +191 -0
- package/dist/repo-sync.js.map +1 -0
- package/dist/terminal/terminal-websocket.d.ts +2 -2
- package/dist/terminal/terminal-websocket.d.ts.map +1 -1
- package/dist/terminal/terminal-websocket.js +12 -29
- package/dist/terminal/terminal-websocket.js.map +1 -1
- package/dist/types/chat.d.ts +28 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +3 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/command.d.ts +100 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +11 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +44 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +22 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/project.d.ts +112 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +3 -0
- package/dist/types/project.js.map +1 -0
- package/dist/types/server.d.ts +58 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/server.js +3 -0
- package/dist/types/server.js.map +1 -0
- package/dist/types.d.ts +1 -295
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/claude-config-validator.d.ts +16 -0
- package/dist/utils/claude-config-validator.d.ts.map +1 -0
- package/dist/utils/claude-config-validator.js +94 -0
- package/dist/utils/claude-config-validator.js.map +1 -0
- package/dist/utils/content-type.d.ts +10 -0
- package/dist/utils/content-type.d.ts.map +1 -0
- package/dist/utils/content-type.js +120 -0
- package/dist/utils/content-type.js.map +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +40 -0
- package/dist/utils.js.map +1 -1
- package/dist/ws-reconnect.d.ts +12 -0
- package/dist/ws-reconnect.d.ts.map +1 -0
- package/dist/ws-reconnect.js +32 -0
- package/dist/ws-reconnect.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.guessContentType = guessContentType;
|
|
4
|
+
exports.isTextExtension = isTextExtension;
|
|
5
|
+
exports.isTextMime = isTextMime;
|
|
6
|
+
exports.isImageMime = isImageMime;
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
/**
|
|
9
|
+
* 拡張子(ドットなし)から MIME タイプへのマッピング。
|
|
10
|
+
* IANA 標準 (https://www.iana.org/assignments/media-types/) に従う。
|
|
11
|
+
* IANA 未登録の言語は `text/x-*` (Apache/IANA 慣例) を使用。
|
|
12
|
+
*/
|
|
13
|
+
const CONTENT_TYPE_MAP = {
|
|
14
|
+
// テキスト系
|
|
15
|
+
txt: 'text/plain',
|
|
16
|
+
md: 'text/markdown',
|
|
17
|
+
csv: 'text/csv',
|
|
18
|
+
tsv: 'text/tab-separated-values',
|
|
19
|
+
html: 'text/html',
|
|
20
|
+
css: 'text/css',
|
|
21
|
+
scss: 'text/css',
|
|
22
|
+
less: 'text/css',
|
|
23
|
+
log: 'text/plain',
|
|
24
|
+
env: 'text/plain',
|
|
25
|
+
conf: 'text/plain',
|
|
26
|
+
cfg: 'text/plain',
|
|
27
|
+
ini: 'text/plain',
|
|
28
|
+
// アプリケーション系
|
|
29
|
+
json: 'application/json',
|
|
30
|
+
xml: 'application/xml',
|
|
31
|
+
yaml: 'application/yaml',
|
|
32
|
+
yml: 'application/yaml',
|
|
33
|
+
toml: 'application/toml',
|
|
34
|
+
js: 'application/javascript',
|
|
35
|
+
jsx: 'application/javascript',
|
|
36
|
+
ts: 'application/typescript',
|
|
37
|
+
tsx: 'application/typescript',
|
|
38
|
+
sql: 'application/sql',
|
|
39
|
+
graphql: 'application/graphql',
|
|
40
|
+
sh: 'application/x-sh',
|
|
41
|
+
bash: 'application/x-sh',
|
|
42
|
+
zsh: 'application/x-sh',
|
|
43
|
+
pdf: 'application/pdf',
|
|
44
|
+
zip: 'application/zip',
|
|
45
|
+
gz: 'application/gzip',
|
|
46
|
+
tar: 'application/x-tar',
|
|
47
|
+
// 言語ソースコード (IANA 未登録)
|
|
48
|
+
py: 'text/x-python',
|
|
49
|
+
rb: 'text/x-ruby',
|
|
50
|
+
java: 'text/x-java',
|
|
51
|
+
go: 'text/x-go',
|
|
52
|
+
rs: 'text/x-rust',
|
|
53
|
+
c: 'text/x-c',
|
|
54
|
+
cpp: 'text/x-c++',
|
|
55
|
+
h: 'text/x-c',
|
|
56
|
+
hpp: 'text/x-c++',
|
|
57
|
+
// 画像
|
|
58
|
+
png: 'image/png',
|
|
59
|
+
jpg: 'image/jpeg',
|
|
60
|
+
jpeg: 'image/jpeg',
|
|
61
|
+
gif: 'image/gif',
|
|
62
|
+
webp: 'image/webp',
|
|
63
|
+
svg: 'image/svg+xml',
|
|
64
|
+
// Office / バイナリ
|
|
65
|
+
doc: 'application/msword',
|
|
66
|
+
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
67
|
+
xls: 'application/vnd.ms-excel',
|
|
68
|
+
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
69
|
+
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* ファイルパス(またはファイル名)から MIME タイプを推定する。
|
|
73
|
+
* 未知の拡張子は `application/octet-stream` を返す。
|
|
74
|
+
*/
|
|
75
|
+
function guessContentType(filenameOrExt) {
|
|
76
|
+
// ドット付き → extname で拡張子を取得、ドットなし → そのまま拡張子として扱う
|
|
77
|
+
const ext = filenameOrExt.includes('.')
|
|
78
|
+
? (0, path_1.extname)(filenameOrExt).replace(/^\./, '').toLowerCase()
|
|
79
|
+
: filenameOrExt.toLowerCase();
|
|
80
|
+
return CONTENT_TYPE_MAP[ext] ?? 'application/octet-stream';
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* テキストファイルとして読み取り可能な拡張子かどうかを判定する。
|
|
84
|
+
* MIME タイプだけでは判定しきれないケース(.prisma, .tf 等)を補完するために使用。
|
|
85
|
+
*/
|
|
86
|
+
const TEXT_EXTENSIONS = new Set([
|
|
87
|
+
'txt', 'md', 'csv', 'tsv',
|
|
88
|
+
'json', 'xml', 'yaml', 'yml',
|
|
89
|
+
'js', 'ts', 'jsx', 'tsx',
|
|
90
|
+
'py', 'rb', 'java', 'go', 'rs', 'c', 'cpp', 'h', 'hpp',
|
|
91
|
+
'sh', 'bash', 'zsh',
|
|
92
|
+
'html', 'css', 'scss', 'less',
|
|
93
|
+
'sql', 'graphql',
|
|
94
|
+
'env', 'cfg', 'ini', 'toml', 'conf', 'log',
|
|
95
|
+
'prisma', 'proto', 'tf', 'hcl',
|
|
96
|
+
]);
|
|
97
|
+
function isTextExtension(ext) {
|
|
98
|
+
return TEXT_EXTENSIONS.has(ext.toLowerCase());
|
|
99
|
+
}
|
|
100
|
+
/** MIME タイプがテキストとして読み取り可能か判定する */
|
|
101
|
+
const TEXT_MIME_PREFIXES = [
|
|
102
|
+
'text/',
|
|
103
|
+
'application/json',
|
|
104
|
+
'application/xml',
|
|
105
|
+
'application/javascript',
|
|
106
|
+
'application/typescript',
|
|
107
|
+
'application/yaml',
|
|
108
|
+
'application/x-sh',
|
|
109
|
+
'application/sql',
|
|
110
|
+
'application/toml',
|
|
111
|
+
'application/graphql',
|
|
112
|
+
];
|
|
113
|
+
function isTextMime(contentType) {
|
|
114
|
+
return TEXT_MIME_PREFIXES.some((prefix) => contentType.startsWith(prefix));
|
|
115
|
+
}
|
|
116
|
+
/** MIME タイプが画像か判定する */
|
|
117
|
+
function isImageMime(contentType) {
|
|
118
|
+
return contentType.startsWith('image/');
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.js","sourceRoot":"","sources":["../../src/utils/content-type.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function atomicWriteFile(filePath: string, content: string, mode?: number): void;
|
|
1
2
|
export declare function getErrorMessage(error: unknown): string;
|
|
2
3
|
export declare function parseString(value: unknown): string | null;
|
|
3
4
|
export declare function parseNumber(value: unknown): number | null;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,SAAQ,GAAG,IAAI,CAIrF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,MAAM,CAGlF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUzD"}
|
package/dist/utils.js
CHANGED
|
@@ -1,10 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.atomicWriteFile = atomicWriteFile;
|
|
3
37
|
exports.getErrorMessage = getErrorMessage;
|
|
4
38
|
exports.parseString = parseString;
|
|
5
39
|
exports.parseNumber = parseNumber;
|
|
6
40
|
exports.truncateString = truncateString;
|
|
7
41
|
exports.validateApiUrl = validateApiUrl;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
function atomicWriteFile(filePath, content, mode = 0o600) {
|
|
44
|
+
const tmpPath = filePath + '.tmp';
|
|
45
|
+
fs.writeFileSync(tmpPath, content, { mode });
|
|
46
|
+
fs.renameSync(tmpPath, filePath);
|
|
47
|
+
}
|
|
8
48
|
function getErrorMessage(error) {
|
|
9
49
|
return error instanceof Error ? error.message : String(error);
|
|
10
50
|
}
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,0CAIC;AAED,0CAEC;AAED,kCAGC;AAED,kCAGC;AAED,wCAGC;AAED,wCAUC;AArCD,uCAAwB;AAExB,SAAgB,eAAe,CAAC,QAAgB,EAAE,OAAe,EAAE,IAAI,GAAG,KAAK;IAC7E,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IACjC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,MAAM,GAAG,KAAK;IACxE,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAA;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAA;AAC1C,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,OAAO,qBAAqB,MAAM,CAAC,QAAQ,qCAAqC,CAAA;QAClF,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,GAAG,EAAE,CAAA;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ReconnectOptions {
|
|
2
|
+
maxRetries: number;
|
|
3
|
+
baseDelayMs: number;
|
|
4
|
+
logPrefix: string;
|
|
5
|
+
connectFn: () => Promise<void>;
|
|
6
|
+
onReconnectedFn?: () => void;
|
|
7
|
+
isClosedFn: () => boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function attemptReconnect(attemptsRef: {
|
|
10
|
+
current: number;
|
|
11
|
+
}, options: ReconnectOptions): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=ws-reconnect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-reconnect.d.ts","sourceRoot":"","sources":["../src/ws-reconnect.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,OAAO,CAAA;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.attemptReconnect = attemptReconnect;
|
|
4
|
+
const logger_1 = require("./logger");
|
|
5
|
+
const retry_strategy_1 = require("./retry-strategy");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
async function attemptReconnect(attemptsRef, options) {
|
|
8
|
+
const { maxRetries, baseDelayMs, logPrefix, connectFn, onReconnectedFn, isClosedFn } = options;
|
|
9
|
+
if (isClosedFn() || attemptsRef.current >= maxRetries) {
|
|
10
|
+
if (attemptsRef.current >= maxRetries) {
|
|
11
|
+
logger_1.logger.error(`${logPrefix} Max reconnect attempts reached`);
|
|
12
|
+
}
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
attemptsRef.current++;
|
|
16
|
+
const delay = (0, retry_strategy_1.calculateBackoff)({ baseDelayMs, attempt: attemptsRef.current - 1, jitter: false });
|
|
17
|
+
logger_1.logger.info(`${logPrefix} Reconnecting in ${delay}ms (attempt ${attemptsRef.current}/${maxRetries})`);
|
|
18
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
19
|
+
if (isClosedFn())
|
|
20
|
+
return;
|
|
21
|
+
try {
|
|
22
|
+
await connectFn();
|
|
23
|
+
logger_1.logger.info(`${logPrefix} Reconnected successfully`);
|
|
24
|
+
attemptsRef.current = 0;
|
|
25
|
+
onReconnectedFn?.();
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
logger_1.logger.warn(`${logPrefix} Reconnect failed: ${(0, utils_1.getErrorMessage)(error)}`);
|
|
29
|
+
void attemptReconnect(attemptsRef, options);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ws-reconnect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-reconnect.js","sourceRoot":"","sources":["../src/ws-reconnect.ts"],"names":[],"mappings":";;AAaA,4CA6BC;AA1CD,qCAAiC;AACjC,qDAAmD;AACnD,mCAAyC;AAWlC,KAAK,UAAU,gBAAgB,CACpC,WAAgC,EAChC,OAAyB;IAEzB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAE9F,IAAI,UAAU,EAAE,IAAI,WAAW,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;QACtD,IAAI,WAAW,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YACtC,eAAM,CAAC,KAAK,CAAC,GAAG,SAAS,iCAAiC,CAAC,CAAA;QAC7D,CAAC;QACD,OAAM;IACR,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,CAAA;IACrB,MAAM,KAAK,GAAG,IAAA,iCAAgB,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAChG,eAAM,CAAC,IAAI,CAAC,GAAG,SAAS,oBAAoB,KAAK,eAAe,WAAW,CAAC,OAAO,IAAI,UAAU,GAAG,CAAC,CAAA;IAErG,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAChE,IAAI,UAAU,EAAE;QAAE,OAAM;IAExB,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAA;QACjB,eAAM,CAAC,IAAI,CAAC,GAAG,SAAS,2BAA2B,CAAC,CAAA;QACpD,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;QACvB,eAAe,EAAE,EAAE,CAAA;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CAAC,GAAG,SAAS,sBAAsB,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvE,KAAK,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-support-agent/cli",
|
|
3
|
-
"version": "0.0.5
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "AI Support Agent CLI client",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/mbc-net/ai-support-agent-
|
|
12
|
+
"url": "https://github.com/mbc-net/ai-support-agent-cli.git"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
15
15
|
"ai",
|