@syntero/orca-cli 1.3.2 → 1.3.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 (60) hide show
  1. package/dist/assistant/anthropic.js +1 -1
  2. package/dist/assistant/anthropic.js.map +1 -1
  3. package/dist/assistant/helpers.js +1 -1
  4. package/dist/assistant/helpers.js.map +1 -1
  5. package/dist/assistant/openai.js +1 -1
  6. package/dist/assistant/openai.js.map +1 -1
  7. package/dist/assistant/prompts.d.ts.map +1 -1
  8. package/dist/assistant/prompts.js +41 -34
  9. package/dist/assistant/prompts.js.map +1 -1
  10. package/dist/assistant/types.d.ts +1 -1
  11. package/dist/assistant/types.d.ts.map +1 -1
  12. package/dist/tools/auth-tools.d.ts +26 -0
  13. package/dist/tools/auth-tools.d.ts.map +1 -0
  14. package/dist/tools/auth-tools.js +53 -0
  15. package/dist/tools/auth-tools.js.map +1 -0
  16. package/dist/tools/command.d.ts +28 -0
  17. package/dist/tools/command.d.ts.map +1 -0
  18. package/dist/tools/command.js +76 -0
  19. package/dist/tools/command.js.map +1 -0
  20. package/dist/tools/database.d.ts +19 -0
  21. package/dist/tools/database.d.ts.map +1 -0
  22. package/dist/tools/database.js +90 -0
  23. package/dist/tools/database.js.map +1 -0
  24. package/dist/tools/deployment.d.ts +195 -0
  25. package/dist/tools/deployment.d.ts.map +1 -0
  26. package/dist/tools/deployment.js +324 -0
  27. package/dist/tools/deployment.js.map +1 -0
  28. package/dist/tools/docker.d.ts +51 -0
  29. package/dist/tools/docker.d.ts.map +1 -0
  30. package/dist/tools/docker.js +68 -0
  31. package/dist/tools/docker.js.map +1 -0
  32. package/dist/tools/env.d.ts +18 -0
  33. package/dist/tools/env.d.ts.map +1 -0
  34. package/dist/tools/env.js +52 -0
  35. package/dist/tools/env.js.map +1 -0
  36. package/dist/tools/filesystem.d.ts +77 -0
  37. package/dist/tools/filesystem.d.ts.map +1 -0
  38. package/dist/tools/filesystem.js +138 -0
  39. package/dist/tools/filesystem.js.map +1 -0
  40. package/dist/tools/handler.d.ts +5 -0
  41. package/dist/tools/handler.d.ts.map +1 -0
  42. package/dist/tools/handler.js +51 -0
  43. package/dist/tools/handler.js.map +1 -0
  44. package/dist/tools/index.d.ts +462 -0
  45. package/dist/tools/index.d.ts.map +1 -0
  46. package/dist/tools/index.js +38 -0
  47. package/dist/tools/index.js.map +1 -0
  48. package/dist/tools/shared.d.ts +21 -0
  49. package/dist/tools/shared.d.ts.map +1 -0
  50. package/dist/tools/shared.js +75 -0
  51. package/dist/tools/shared.js.map +1 -0
  52. package/dist/tools/types.d.ts +2 -0
  53. package/dist/tools/types.d.ts.map +1 -0
  54. package/dist/tools/types.js +3 -0
  55. package/dist/tools/types.js.map +1 -0
  56. package/package.json +1 -1
  57. package/dist/tools.d.ts +0 -908
  58. package/dist/tools.d.ts.map +0 -1
  59. package/dist/tools.js +0 -774
  60. package/dist/tools.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ export declare const ENV_TOOLS: {
2
+ name: string;
3
+ description: string;
4
+ input_schema: {
5
+ type: string;
6
+ properties: {
7
+ show_all: {
8
+ type: string;
9
+ description: string;
10
+ };
11
+ };
12
+ };
13
+ }[];
14
+ /**
15
+ * Inspect .env file with secrets redacted.
16
+ */
17
+ export declare function inspectEnv(showAll?: boolean): string;
18
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/tools/env.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;GAWrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,UAAQ,GAAG,MAAM,CAmClD"}
@@ -0,0 +1,52 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { getDeploymentDir } from '../settings.js';
4
+ import { isSecretKey } from '../utils.js';
5
+ export const ENV_TOOLS = [
6
+ {
7
+ name: 'inspect_env',
8
+ description: 'Safely inspect .env configuration with secrets redacted.',
9
+ input_schema: {
10
+ type: 'object',
11
+ properties: {
12
+ show_all: { type: 'boolean', description: 'Show all variables (secrets still redacted)' },
13
+ },
14
+ },
15
+ },
16
+ ];
17
+ /**
18
+ * Inspect .env file with secrets redacted.
19
+ */
20
+ export function inspectEnv(showAll = false) {
21
+ const envPath = path.join(getDeploymentDir(), '.env');
22
+ if (!fs.existsSync(envPath)) {
23
+ return `No .env file found at ${envPath}`;
24
+ }
25
+ const result = [];
26
+ const content = fs.readFileSync(envPath, 'utf-8');
27
+ for (const line of content.split('\n')) {
28
+ const trimmed = line.trim();
29
+ if (!trimmed || trimmed.startsWith('#')) {
30
+ result.push(trimmed);
31
+ continue;
32
+ }
33
+ if (trimmed.includes('=')) {
34
+ const [key, ...valueParts] = trimmed.split('=');
35
+ const value = valueParts.join('=').trim();
36
+ const keyTrimmed = key.trim();
37
+ if (isSecretKey(keyTrimmed)) {
38
+ if (value) {
39
+ result.push(`${keyTrimmed}=[REDACTED - ${value.length} chars]`);
40
+ }
41
+ else {
42
+ result.push(`${keyTrimmed}=[NOT SET]`);
43
+ }
44
+ }
45
+ else if (showAll || !isSecretKey(keyTrimmed)) {
46
+ result.push(`${keyTrimmed}=${value}`);
47
+ }
48
+ }
49
+ }
50
+ return result.join('\n');
51
+ }
52
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/tools/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,0DAA0D;QACvE,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6CAA6C,EAAE;aAC1F;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAO,GAAG,KAAK;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,yBAAyB,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAE9B,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,gBAAgB,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,YAAY,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,77 @@
1
+ export declare const FILESYSTEM_TOOLS: ({
2
+ name: string;
3
+ description: string;
4
+ input_schema: {
5
+ type: string;
6
+ properties: {
7
+ path: {
8
+ type: string;
9
+ description: string;
10
+ };
11
+ tail: {
12
+ type: string;
13
+ description: string;
14
+ };
15
+ pattern?: undefined;
16
+ case_insensitive?: undefined;
17
+ context_lines?: undefined;
18
+ };
19
+ required: string[];
20
+ };
21
+ } | {
22
+ name: string;
23
+ description: string;
24
+ input_schema: {
25
+ type: string;
26
+ properties: {
27
+ path: {
28
+ type: string;
29
+ description: string;
30
+ };
31
+ tail?: undefined;
32
+ pattern?: undefined;
33
+ case_insensitive?: undefined;
34
+ context_lines?: undefined;
35
+ };
36
+ required: string[];
37
+ };
38
+ } | {
39
+ name: string;
40
+ description: string;
41
+ input_schema: {
42
+ type: string;
43
+ properties: {
44
+ pattern: {
45
+ type: string;
46
+ description: string;
47
+ };
48
+ path: {
49
+ type: string;
50
+ description: string;
51
+ };
52
+ case_insensitive: {
53
+ type: string;
54
+ description: string;
55
+ };
56
+ context_lines: {
57
+ type: string;
58
+ description: string;
59
+ };
60
+ tail?: undefined;
61
+ };
62
+ required: string[];
63
+ };
64
+ })[];
65
+ /**
66
+ * Read a file's contents.
67
+ */
68
+ export declare function readFile(filePath: string, tail?: number): string;
69
+ /**
70
+ * List directory contents using Node.js fs APIs (cross-platform).
71
+ */
72
+ export declare function listDirectory(dirPath: string): string;
73
+ /**
74
+ * Search for a pattern in a file or directory using grep.
75
+ */
76
+ export declare function grepFile(pattern: string, filePath: string, caseInsensitive?: boolean, contextLines?: number, signal?: AbortSignal): Promise<string>;
77
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+C5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA2CrD;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,UAAO,EAAE,YAAY,SAAI,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CASjJ"}
@@ -0,0 +1,138 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { resolvePath, formatMode, formatSize, formatDate } from './shared.js';
4
+ import { runCommand } from './command.js';
5
+ export const FILESYSTEM_TOOLS = [
6
+ {
7
+ name: 'read_file',
8
+ description: `Read the contents of a file. Use for config files, logs, etc.
9
+ Paths can be absolute or relative to the deployment directory.
10
+ Do not read .env directly - use inspect_env instead.`,
11
+ input_schema: {
12
+ type: 'object',
13
+ properties: {
14
+ path: { type: 'string', description: 'Path to the file' },
15
+ tail: { type: 'integer', description: 'Only return the last N lines' },
16
+ },
17
+ required: ['path'],
18
+ },
19
+ },
20
+ {
21
+ name: 'list_directory',
22
+ description: 'List contents of a directory with details.',
23
+ input_schema: {
24
+ type: 'object',
25
+ properties: {
26
+ path: { type: 'string', description: 'Directory path' },
27
+ },
28
+ required: ['path'],
29
+ },
30
+ },
31
+ {
32
+ name: 'grep_file',
33
+ description: `Search for a pattern in a file or directory using grep.
34
+ Use for searching through:
35
+ - Log files for errors or patterns
36
+ - Config files for specific settings
37
+ - Documentation like TROUBLESHOOTING.md for known issues
38
+ - Any text file
39
+
40
+ Returns matching lines with line numbers and optional context.`,
41
+ input_schema: {
42
+ type: 'object',
43
+ properties: {
44
+ pattern: { type: 'string', description: 'Regex pattern to search for' },
45
+ path: { type: 'string', description: 'File or directory path to search' },
46
+ case_insensitive: { type: 'boolean', description: 'Case insensitive search (default: true)' },
47
+ context_lines: { type: 'integer', description: 'Lines of context before and after each match' },
48
+ },
49
+ required: ['pattern', 'path'],
50
+ },
51
+ },
52
+ ];
53
+ /**
54
+ * Read a file's contents.
55
+ */
56
+ export function readFile(filePath, tail) {
57
+ const resolved = resolvePath(filePath);
58
+ if (path.basename(resolved) === '.env' && !resolved.includes('.template')) {
59
+ return 'Error: Use inspect_env tool to safely view environment variables.';
60
+ }
61
+ try {
62
+ let content = fs.readFileSync(resolved, 'utf-8');
63
+ if (tail) {
64
+ const lines = content.split('\n');
65
+ content = lines.slice(-tail).join('\n');
66
+ }
67
+ if (content.length > 100000) {
68
+ content = content.slice(0, 100000) + '\n... [truncated]';
69
+ }
70
+ return content;
71
+ }
72
+ catch (e) {
73
+ if (e && typeof e === 'object' && 'code' in e && e.code === 'ENOENT') {
74
+ return `Error: File not found: ${resolved}`;
75
+ }
76
+ return `Error: ${e instanceof Error ? e.message : String(e)}`;
77
+ }
78
+ }
79
+ /**
80
+ * List directory contents using Node.js fs APIs (cross-platform).
81
+ */
82
+ export function listDirectory(dirPath) {
83
+ const resolved = resolvePath(dirPath);
84
+ try {
85
+ const stats = fs.statSync(resolved);
86
+ if (!stats.isDirectory()) {
87
+ return `Error: Not a directory: ${resolved}`;
88
+ }
89
+ const entries = fs.readdirSync(resolved, { withFileTypes: true });
90
+ const lines = [];
91
+ lines.push(`total ${entries.length}`);
92
+ // Sort entries: directories first, then alphabetically
93
+ const sortedEntries = entries.sort((a, b) => {
94
+ if (a.isDirectory() && !b.isDirectory())
95
+ return -1;
96
+ if (!a.isDirectory() && b.isDirectory())
97
+ return 1;
98
+ return a.name.localeCompare(b.name);
99
+ });
100
+ for (const entry of sortedEntries) {
101
+ const fullPath = path.join(resolved, entry.name);
102
+ try {
103
+ const entryStats = fs.lstatSync(fullPath);
104
+ const mode = formatMode(entryStats.mode, entry.isDirectory(), entry.isSymbolicLink());
105
+ const size = formatSize(entryStats.size);
106
+ const date = formatDate(entryStats.mtime);
107
+ const name = entry.isSymbolicLink()
108
+ ? `${entry.name} -> ${fs.readlinkSync(fullPath)}`
109
+ : entry.name;
110
+ lines.push(`${mode} ${size} ${date} ${name}`);
111
+ }
112
+ catch {
113
+ // If we can't stat the entry, show minimal info
114
+ lines.push(`?????????? ? ??? ?? ??:?? ${entry.name}`);
115
+ }
116
+ }
117
+ return lines.join('\n');
118
+ }
119
+ catch (e) {
120
+ if (e && typeof e === 'object' && 'code' in e && e.code === 'ENOENT') {
121
+ return `Error: Directory not found: ${resolved}`;
122
+ }
123
+ return `Error: ${e instanceof Error ? e.message : String(e)}`;
124
+ }
125
+ }
126
+ /**
127
+ * Search for a pattern in a file or directory using grep.
128
+ */
129
+ export async function grepFile(pattern, filePath, caseInsensitive = true, contextLines = 0, signal) {
130
+ const resolved = resolvePath(filePath);
131
+ const flags = [
132
+ '-n', // line numbers
133
+ caseInsensitive ? '-i' : '',
134
+ contextLines > 0 ? `-C ${contextLines}` : '',
135
+ ].filter(Boolean).join(' ');
136
+ return runCommand(`grep ${flags} -E "${pattern}" "${resolved}"`, undefined, signal);
137
+ }
138
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE;;qDAEoC;QACjD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACzD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;aACvE;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4CAA4C;QACzD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;aACxD;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE;;;;;;;+DAO8C;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACvE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACzE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAC7F,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8CAA8C,EAAE;aAChG;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;SAC9B;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,IAAa;IACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1E,OAAO,mEAAmE,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAC5B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAAC;QAC3D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,0BAA0B,QAAQ,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,OAAO,2BAA2B,QAAQ,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtC,uDAAuD;QACvD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;gBACtF,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE;oBACjC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;oBACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;gBAChD,KAAK,CAAC,IAAI,CAAC,qCAAqC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,+BAA+B,QAAQ,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe,EAAE,QAAgB,EAAE,eAAe,GAAG,IAAI,EAAE,YAAY,GAAG,CAAC,EAAE,MAAoB;IAC9H,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG;QACZ,IAAI,EAAG,eAAe;QACtB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC3B,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;KAC7C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,OAAO,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtF,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Handle a tool call and return the result.
3
+ */
4
+ export declare function handleToolCall(name: string, inputData: Record<string, unknown>, signal?: AbortSignal): Promise<string>;
5
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/tools/handler.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAyD5H"}
@@ -0,0 +1,51 @@
1
+ import { runCommand } from './command.js';
2
+ import { readFile, listDirectory, grepFile } from './filesystem.js';
3
+ import { inspectEnv } from './env.js';
4
+ import { queryDatabase } from './database.js';
5
+ import { checkContainerHealth, searchLogs } from './docker.js';
6
+ import { handleDockerLoginGhcr, handleCheckAuthStatus } from './auth-tools.js';
7
+ import { handleDownloadDeploymentFiles, handleSaveDeploymentDir, handleGetDeploymentDir, logDeploymentEvent, getDeploymentHistory, listAvailableVersions, handleRecreateContainers, } from './deployment.js';
8
+ /**
9
+ * Handle a tool call and return the result.
10
+ */
11
+ export async function handleToolCall(name, inputData, signal) {
12
+ switch (name) {
13
+ case 'run_command':
14
+ return runCommand(inputData.command, undefined, signal);
15
+ case 'read_file':
16
+ return readFile(inputData.path, inputData.tail);
17
+ case 'list_directory':
18
+ return listDirectory(inputData.path);
19
+ case 'inspect_env':
20
+ return inspectEnv(inputData.show_all || false);
21
+ case 'query_database':
22
+ return queryDatabase(inputData.query, signal);
23
+ case 'search_logs':
24
+ return searchLogs(inputData.container, inputData.pattern, inputData.case_insensitive ?? true, inputData.context_lines ?? 2, signal);
25
+ case 'check_container_health':
26
+ return checkContainerHealth(inputData.container || 'all', signal);
27
+ case 'grep_file':
28
+ return grepFile(inputData.pattern, inputData.path, inputData.case_insensitive ?? true, inputData.context_lines ?? 0, signal);
29
+ case 'docker_login_ghcr':
30
+ return handleDockerLoginGhcr();
31
+ case 'check_auth_status':
32
+ return handleCheckAuthStatus();
33
+ case 'download_deployment_files':
34
+ return handleDownloadDeploymentFiles(inputData.target_dir);
35
+ case 'save_deployment_dir':
36
+ return handleSaveDeploymentDir(inputData.path);
37
+ case 'get_deployment_dir':
38
+ return handleGetDeploymentDir();
39
+ case 'log_deployment_event':
40
+ return logDeploymentEvent(inputData.event, inputData.version, inputData.status, inputData.previous_version, inputData.notes);
41
+ case 'get_deployment_history':
42
+ return getDeploymentHistory(inputData.limit ?? 10);
43
+ case 'list_available_versions':
44
+ return listAvailableVersions(inputData.include_prerelease ?? false);
45
+ case 'recreate_containers':
46
+ return handleRecreateContainers(inputData.org_id);
47
+ default:
48
+ return `Unknown tool: ${name}`;
49
+ }
50
+ }
51
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/tools/handler.ts"],"names":[],"mappings":"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"}