resolve-solo 0.7.0 → 1.1.0
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/cli-progress/index.d.ts +9 -0
- package/dist/cli-progress/index.d.ts.map +1 -0
- package/dist/cli-progress/index.js +9 -0
- package/dist/cli-progress/index.js.map +1 -0
- package/dist/cli-progress/progress-bar.d.ts +12 -0
- package/dist/cli-progress/progress-bar.d.ts.map +1 -0
- package/dist/cli-progress/progress-bar.js +29 -0
- package/dist/cli-progress/progress-bar.js.map +1 -0
- package/dist/cli-progress/spinner.d.ts +21 -0
- package/dist/cli-progress/spinner.d.ts.map +1 -0
- package/dist/cli-progress/spinner.js +35 -0
- package/dist/cli-progress/spinner.js.map +1 -0
- package/dist/cli-progress/task-renderer.d.ts +57 -0
- package/dist/cli-progress/task-renderer.d.ts.map +1 -0
- package/dist/cli-progress/task-renderer.js +177 -0
- package/dist/cli-progress/task-renderer.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +135 -24
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/data-sources/alerts-generator.d.ts +12 -0
- package/dist/data-sources/alerts-generator.d.ts.map +1 -0
- package/dist/data-sources/alerts-generator.js +168 -0
- package/dist/data-sources/alerts-generator.js.map +1 -0
- package/dist/data-sources/index.d.ts +10 -0
- package/dist/data-sources/index.d.ts.map +1 -0
- package/dist/data-sources/index.js +10 -0
- package/dist/data-sources/index.js.map +1 -0
- package/dist/data-sources/metrics-generator.d.ts +12 -0
- package/dist/data-sources/metrics-generator.d.ts.map +1 -0
- package/dist/data-sources/metrics-generator.js +169 -0
- package/dist/data-sources/metrics-generator.js.map +1 -0
- package/dist/data-sources/pipeline-generator.d.ts +12 -0
- package/dist/data-sources/pipeline-generator.d.ts.map +1 -0
- package/dist/data-sources/pipeline-generator.js +157 -0
- package/dist/data-sources/pipeline-generator.js.map +1 -0
- package/dist/data-sources/sla-generator.d.ts +12 -0
- package/dist/data-sources/sla-generator.d.ts.map +1 -0
- package/dist/data-sources/sla-generator.js +84 -0
- package/dist/data-sources/sla-generator.js.map +1 -0
- package/dist/demo-generator.d.ts +6 -2
- package/dist/demo-generator.d.ts.map +1 -1
- package/dist/demo-generator.js +40 -30
- package/dist/demo-generator.js.map +1 -1
- package/dist/demo-schema.d.ts +49 -0
- package/dist/demo-schema.d.ts.map +1 -1
- package/dist/findings/aggregator.d.ts +26 -0
- package/dist/findings/aggregator.d.ts.map +1 -0
- package/dist/findings/aggregator.js +149 -0
- package/dist/findings/aggregator.js.map +1 -0
- package/dist/findings/formatter.d.ts +50 -0
- package/dist/findings/formatter.d.ts.map +1 -0
- package/dist/findings/formatter.js +393 -0
- package/dist/findings/formatter.js.map +1 -0
- package/dist/findings/index.d.ts +4 -0
- package/dist/findings/index.d.ts.map +1 -0
- package/dist/findings/index.js +7 -0
- package/dist/findings/index.js.map +1 -0
- package/dist/findings/prioritizer.d.ts +15 -0
- package/dist/findings/prioritizer.d.ts.map +1 -0
- package/dist/findings/prioritizer.js +107 -0
- package/dist/findings/prioritizer.js.map +1 -0
- package/dist/handlers.d.ts +38 -0
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +135 -1
- package/dist/handlers.js.map +1 -1
- package/dist/investigation-engine/example.d.ts +9 -0
- package/dist/investigation-engine/example.d.ts.map +1 -0
- package/dist/investigation-engine/example.js +88 -0
- package/dist/investigation-engine/example.js.map +1 -0
- package/dist/investigation-engine/index.d.ts +9 -0
- package/dist/investigation-engine/index.d.ts.map +1 -0
- package/dist/investigation-engine/index.js +9 -0
- package/dist/investigation-engine/index.js.map +1 -0
- package/dist/investigation-engine/task-definitions.d.ts +10 -0
- package/dist/investigation-engine/task-definitions.d.ts.map +1 -0
- package/dist/investigation-engine/task-definitions.js +86 -0
- package/dist/investigation-engine/task-definitions.js.map +1 -0
- package/dist/investigation-engine/task-executor.d.ts +58 -0
- package/dist/investigation-engine/task-executor.d.ts.map +1 -0
- package/dist/investigation-engine/task-executor.js +211 -0
- package/dist/investigation-engine/task-executor.js.map +1 -0
- package/dist/investigation-engine/task-progress.d.ts +51 -0
- package/dist/investigation-engine/task-progress.d.ts.map +1 -0
- package/dist/investigation-engine/task-progress.js +107 -0
- package/dist/investigation-engine/task-progress.js.map +1 -0
- package/dist/investigation-engine/task-types.d.ts +44 -0
- package/dist/investigation-engine/task-types.d.ts.map +1 -0
- package/dist/investigation-engine/task-types.js +2 -0
- package/dist/investigation-engine/task-types.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +22 -2
- package/dist/mcp/tools.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +10 -0
- package/dist/parser.js.map +1 -1
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +143 -19
- package/dist/repl.js.map +1 -1
- package/dist/seeded-random.d.ts +15 -0
- package/dist/seeded-random.d.ts.map +1 -0
- package/dist/seeded-random.js +32 -0
- package/dist/seeded-random.js.map +1 -0
- package/dist/storage.d.ts +9 -5
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +75 -8
- package/dist/storage.js.map +1 -1
- package/dist/tool-config.d.ts +36 -0
- package/dist/tool-config.d.ts.map +1 -0
- package/dist/tool-config.js +83 -0
- package/dist/tool-config.js.map +1 -0
- package/dist/tool-discovery.d.ts +27 -0
- package/dist/tool-discovery.d.ts.map +1 -0
- package/dist/tool-discovery.js +150 -0
- package/dist/tool-discovery.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Configuration Storage
|
|
3
|
+
*
|
|
4
|
+
* Stores and retrieves tool discovery results.
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { getResolveaiDir, ensureDir } from './storage.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get the tool config file path
|
|
11
|
+
*/
|
|
12
|
+
function getToolConfigPath() {
|
|
13
|
+
return path.join(getResolveaiDir(), 'tool-config.json');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Save tool discovery results to config file
|
|
17
|
+
*/
|
|
18
|
+
export function saveToolConfig(result) {
|
|
19
|
+
const configPath = getToolConfigPath();
|
|
20
|
+
ensureDir(getResolveaiDir());
|
|
21
|
+
const config = {
|
|
22
|
+
lastUpdated: new Date().toISOString(),
|
|
23
|
+
discovered: result.discovered,
|
|
24
|
+
missing: result.missing,
|
|
25
|
+
recommendations: result.recommendations,
|
|
26
|
+
};
|
|
27
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load tool config from file
|
|
31
|
+
*/
|
|
32
|
+
export function loadToolConfig() {
|
|
33
|
+
const configPath = getToolConfigPath();
|
|
34
|
+
if (!fs.existsSync(configPath)) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
39
|
+
return JSON.parse(content);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error('Error reading tool config:', error);
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get tool capabilities (from cache or fresh discovery)
|
|
48
|
+
*/
|
|
49
|
+
export async function getToolCapabilities(options) {
|
|
50
|
+
// If not forcing refresh, try to load from cache
|
|
51
|
+
if (!options?.forceRefresh) {
|
|
52
|
+
const cached = loadToolConfig();
|
|
53
|
+
if (cached) {
|
|
54
|
+
return {
|
|
55
|
+
discovered: cached.discovered,
|
|
56
|
+
missing: cached.missing,
|
|
57
|
+
recommendations: cached.recommendations,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// No cache or forcing refresh, run discovery
|
|
62
|
+
const { discoverTools } = await import('./tool-discovery.js');
|
|
63
|
+
const result = discoverTools();
|
|
64
|
+
// Save to cache
|
|
65
|
+
saveToolConfig(result);
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if tool config exists
|
|
70
|
+
*/
|
|
71
|
+
export function toolConfigExists() {
|
|
72
|
+
return fs.existsSync(getToolConfigPath());
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Delete tool config
|
|
76
|
+
*/
|
|
77
|
+
export function deleteToolConfig() {
|
|
78
|
+
const configPath = getToolConfigPath();
|
|
79
|
+
if (fs.existsSync(configPath)) {
|
|
80
|
+
fs.unlinkSync(configPath);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=tool-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../src/tool-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAU1D;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAA2B;IACxD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;IAE7B,MAAM,MAAM,GAAe;QACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC;IAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAoC;IAC5E,iDAAiD;IACjD,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,gBAAgB;IAChB,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Discovery System
|
|
3
|
+
*
|
|
4
|
+
* Detects available MCP tools and guides users on installation.
|
|
5
|
+
*/
|
|
6
|
+
export interface ToolCapability {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
category: 'metrics' | 'logs' | 'deployments' | 'incidents' | 'traces';
|
|
10
|
+
installed: boolean;
|
|
11
|
+
mcpServer?: string;
|
|
12
|
+
installGuide: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ToolDiscoveryResult {
|
|
15
|
+
discovered: ToolCapability[];
|
|
16
|
+
missing: ToolCapability[];
|
|
17
|
+
recommendations: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Discover available MCP tools
|
|
21
|
+
*/
|
|
22
|
+
export declare function discoverTools(): ToolDiscoveryResult;
|
|
23
|
+
/**
|
|
24
|
+
* Get a human-readable category display name
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCategoryDisplay(category: ToolCapability['category']): string;
|
|
27
|
+
//# sourceMappingURL=tool-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-discovery.d.ts","sourceRoot":"","sources":["../src/tool-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAoGD;;GAEG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CA2CnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAS/E"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Discovery System
|
|
3
|
+
*
|
|
4
|
+
* Detects available MCP tools and guides users on installation.
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import os from 'node:os';
|
|
9
|
+
/**
|
|
10
|
+
* Known MCP tools and their capabilities
|
|
11
|
+
*/
|
|
12
|
+
const KNOWN_TOOLS = [
|
|
13
|
+
{
|
|
14
|
+
id: 'datadog',
|
|
15
|
+
name: 'Datadog',
|
|
16
|
+
category: 'metrics',
|
|
17
|
+
installGuide: 'npm install -g @modelcontextprotocol/server-datadog',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: 'github',
|
|
21
|
+
name: 'GitHub',
|
|
22
|
+
category: 'deployments',
|
|
23
|
+
installGuide: 'npm install -g @modelcontextprotocol/server-github',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'pagerduty',
|
|
27
|
+
name: 'PagerDuty',
|
|
28
|
+
category: 'incidents',
|
|
29
|
+
installGuide: 'npm install -g @modelcontextprotocol/server-pagerduty',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'sentry',
|
|
33
|
+
name: 'Sentry',
|
|
34
|
+
category: 'incidents',
|
|
35
|
+
installGuide: 'npm install -g @modelcontextprotocol/server-sentry',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: 'cloudwatch',
|
|
39
|
+
name: 'AWS CloudWatch',
|
|
40
|
+
category: 'logs',
|
|
41
|
+
installGuide: 'npm install -g @modelcontextprotocol/server-aws-cloudwatch',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'prometheus',
|
|
45
|
+
name: 'Prometheus',
|
|
46
|
+
category: 'metrics',
|
|
47
|
+
installGuide: 'npm install -g @modelcontextprotocol/server-prometheus',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
/**
|
|
51
|
+
* Get the Claude Code config path
|
|
52
|
+
*/
|
|
53
|
+
function getClaudeConfigPath() {
|
|
54
|
+
return path.join(os.homedir(), '.claude', 'config.json');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Read Claude Code config
|
|
58
|
+
*/
|
|
59
|
+
function readClaudeConfig() {
|
|
60
|
+
try {
|
|
61
|
+
const configPath = getClaudeConfigPath();
|
|
62
|
+
if (!fs.existsSync(configPath)) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
66
|
+
return JSON.parse(content);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error('Error reading Claude Code config:', error);
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if a tool is installed by looking for its MCP server
|
|
75
|
+
*/
|
|
76
|
+
function isToolInstalled(toolId, config) {
|
|
77
|
+
if (!config || !config.mcpServers) {
|
|
78
|
+
return { installed: false };
|
|
79
|
+
}
|
|
80
|
+
// Look for MCP servers that match the tool ID
|
|
81
|
+
const mcpServers = config.mcpServers;
|
|
82
|
+
for (const [serverName, serverConfig] of Object.entries(mcpServers)) {
|
|
83
|
+
const serverNameLower = serverName.toLowerCase();
|
|
84
|
+
const toolIdLower = toolId.toLowerCase();
|
|
85
|
+
// Match if server name contains the tool ID
|
|
86
|
+
// e.g., "datadog", "github-deployments", "pagerduty-mcp", etc.
|
|
87
|
+
if (serverNameLower.includes(toolIdLower)) {
|
|
88
|
+
return { installed: true, mcpServer: serverName };
|
|
89
|
+
}
|
|
90
|
+
// Also check the command if it exists
|
|
91
|
+
const command = serverConfig?.command;
|
|
92
|
+
if (typeof command === 'string' && command.toLowerCase().includes(toolIdLower)) {
|
|
93
|
+
return { installed: true, mcpServer: serverName };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return { installed: false };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Discover available MCP tools
|
|
100
|
+
*/
|
|
101
|
+
export function discoverTools() {
|
|
102
|
+
const config = readClaudeConfig();
|
|
103
|
+
const allTools = KNOWN_TOOLS.map((tool) => {
|
|
104
|
+
const { installed, mcpServer } = isToolInstalled(tool.id, config);
|
|
105
|
+
return {
|
|
106
|
+
...tool,
|
|
107
|
+
installed,
|
|
108
|
+
mcpServer,
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
const discovered = allTools.filter((t) => t.installed);
|
|
112
|
+
const missing = allTools.filter((t) => !t.installed);
|
|
113
|
+
// Generate recommendations based on what's missing
|
|
114
|
+
const recommendations = [];
|
|
115
|
+
// Recommend incident tracking tools if missing
|
|
116
|
+
if (!discovered.some((t) => t.category === 'incidents')) {
|
|
117
|
+
recommendations.push('Install PagerDuty or Sentry MCP for incident tracking');
|
|
118
|
+
}
|
|
119
|
+
// Recommend metrics tools if missing
|
|
120
|
+
if (!discovered.some((t) => t.category === 'metrics')) {
|
|
121
|
+
recommendations.push('Install Datadog or Prometheus MCP for metrics monitoring');
|
|
122
|
+
}
|
|
123
|
+
// Recommend deployment tracking if missing
|
|
124
|
+
if (!discovered.some((t) => t.category === 'deployments')) {
|
|
125
|
+
recommendations.push('Install GitHub MCP for deployment tracking');
|
|
126
|
+
}
|
|
127
|
+
// Recommend logs tools if missing
|
|
128
|
+
if (!discovered.some((t) => t.category === 'logs')) {
|
|
129
|
+
recommendations.push('Install CloudWatch MCP for log analysis');
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
discovered,
|
|
133
|
+
missing,
|
|
134
|
+
recommendations,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get a human-readable category display name
|
|
139
|
+
*/
|
|
140
|
+
export function getCategoryDisplay(category) {
|
|
141
|
+
const map = {
|
|
142
|
+
metrics: 'metrics',
|
|
143
|
+
logs: 'logs',
|
|
144
|
+
deployments: 'deployments',
|
|
145
|
+
incidents: 'incidents',
|
|
146
|
+
traces: 'traces',
|
|
147
|
+
};
|
|
148
|
+
return map[category] || category;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=tool-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-discovery.js","sourceRoot":"","sources":["../src/tool-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core types for Resolve Solo
|
|
3
3
|
*/
|
|
4
|
-
export type Intent = 'help' | 'demo' | 'demo-seed' | 'demo-reset' | 'investigate' | 'details' | 'note' | 'close' | 'report-weekly' | 'setup' | 'doctor' | 'uninstall' | 'unknown';
|
|
4
|
+
export type Intent = 'help' | 'demo' | 'demo-seed' | 'demo-reset' | 'investigate' | 'details' | 'note' | 'close' | 'report-weekly' | 'setup' | 'doctor' | 'uninstall' | 'discover' | 'unknown';
|
|
5
5
|
export interface ParsedCommand {
|
|
6
6
|
intent: Intent;
|
|
7
7
|
args: string[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,MAAM,GACd,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,SAAS,GACT,MAAM,GACN,OAAO,GACP,eAAe,GACf,OAAO,GACP,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,MAAM,GACd,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,SAAS,GACT,MAAM,GACN,OAAO,GACP,eAAe,GACf,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|