@planu/cli 1.2.0 → 1.4.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/config/dev-lifecycle-catalog.json +22 -0
- package/dist/config/license-plans.json +20 -1
- package/dist/engine/aider-prompt-generator.d.ts +26 -0
- package/dist/engine/aider-prompt-generator.d.ts.map +1 -0
- package/dist/engine/aider-prompt-generator.js +144 -0
- package/dist/engine/aider-prompt-generator.js.map +1 -0
- package/dist/engine/claude-config-auditor/settings-auditor.d.ts.map +1 -1
- package/dist/engine/claude-config-auditor/settings-auditor.js +20 -1
- package/dist/engine/claude-config-auditor/settings-auditor.js.map +1 -1
- package/dist/engine/code-graph-configurator.d.ts +23 -0
- package/dist/engine/code-graph-configurator.d.ts.map +1 -0
- package/dist/engine/code-graph-configurator.js +80 -0
- package/dist/engine/code-graph-configurator.js.map +1 -0
- package/dist/engine/continue-config-generator.d.ts +15 -0
- package/dist/engine/continue-config-generator.d.ts.map +1 -0
- package/dist/engine/continue-config-generator.js +53 -0
- package/dist/engine/continue-config-generator.js.map +1 -0
- package/dist/engine/doc-compliance-checker.d.ts +23 -0
- package/dist/engine/doc-compliance-checker.d.ts.map +1 -0
- package/dist/engine/doc-compliance-checker.js +168 -0
- package/dist/engine/doc-compliance-checker.js.map +1 -0
- package/dist/engine/e2e-test-generator.d.ts +19 -0
- package/dist/engine/e2e-test-generator.d.ts.map +1 -0
- package/dist/engine/e2e-test-generator.js +210 -0
- package/dist/engine/e2e-test-generator.js.map +1 -0
- package/dist/engine/ecosystem-detector.d.ts +13 -0
- package/dist/engine/ecosystem-detector.d.ts.map +1 -0
- package/dist/engine/ecosystem-detector.js +128 -0
- package/dist/engine/ecosystem-detector.js.map +1 -0
- package/dist/engine/memory-config-generator.d.ts +8 -0
- package/dist/engine/memory-config-generator.d.ts.map +1 -0
- package/dist/engine/memory-config-generator.js +101 -0
- package/dist/engine/memory-config-generator.js.map +1 -0
- package/dist/engine/pr-spec-validator.d.ts +25 -0
- package/dist/engine/pr-spec-validator.d.ts.map +1 -0
- package/dist/engine/pr-spec-validator.js +172 -0
- package/dist/engine/pr-spec-validator.js.map +1 -0
- package/dist/engine/skill-generator/sections-docs.d.ts +13 -0
- package/dist/engine/skill-generator/sections-docs.d.ts.map +1 -0
- package/dist/engine/skill-generator/sections-docs.js +59 -0
- package/dist/engine/skill-generator/sections-docs.js.map +1 -0
- package/dist/engine/skill-generator/skills-content.d.ts +1 -1
- package/dist/engine/skill-generator/skills-content.d.ts.map +1 -1
- package/dist/engine/skill-generator/skills-content.js +3 -2
- package/dist/engine/skill-generator/skills-content.js.map +1 -1
- package/dist/engine/skill-generator/skills.d.ts +1 -0
- package/dist/engine/skill-generator/skills.d.ts.map +1 -1
- package/dist/engine/skill-generator/skills.js +1 -0
- package/dist/engine/skill-generator/skills.js.map +1 -1
- package/dist/engine/skill-generator.d.ts.map +1 -1
- package/dist/engine/skill-generator.js +21 -2
- package/dist/engine/skill-generator.js.map +1 -1
- package/dist/engine/sweep-issue-generator.d.ts +14 -0
- package/dist/engine/sweep-issue-generator.d.ts.map +1 -0
- package/dist/engine/sweep-issue-generator.js +140 -0
- package/dist/engine/sweep-issue-generator.js.map +1 -0
- package/dist/engine/web-fetcher/docs-intelligence.d.ts +8 -0
- package/dist/engine/web-fetcher/docs-intelligence.d.ts.map +1 -0
- package/dist/engine/web-fetcher/docs-intelligence.js +154 -0
- package/dist/engine/web-fetcher/docs-intelligence.js.map +1 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.d.ts +20 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.d.ts.map +1 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.js +184 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.js.map +1 -0
- package/dist/engine/web-fetcher/stack-detector.d.ts +4 -0
- package/dist/engine/web-fetcher/stack-detector.d.ts.map +1 -0
- package/dist/engine/web-fetcher/stack-detector.js +155 -0
- package/dist/engine/web-fetcher/stack-detector.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/aider-launcher-handler.d.ts +4 -0
- package/dist/tools/aider-launcher-handler.d.ts.map +1 -0
- package/dist/tools/aider-launcher-handler.js +69 -0
- package/dist/tools/aider-launcher-handler.js.map +1 -0
- package/dist/tools/code-graph-handler.d.ts +6 -0
- package/dist/tools/code-graph-handler.d.ts.map +1 -0
- package/dist/tools/code-graph-handler.js +68 -0
- package/dist/tools/code-graph-handler.js.map +1 -0
- package/dist/tools/continue-config-handler.d.ts +4 -0
- package/dist/tools/continue-config-handler.d.ts.map +1 -0
- package/dist/tools/continue-config-handler.js +88 -0
- package/dist/tools/continue-config-handler.js.map +1 -0
- package/dist/tools/create-spec/spec-builder.d.ts.map +1 -1
- package/dist/tools/create-spec/spec-builder.js +20 -0
- package/dist/tools/create-spec/spec-builder.js.map +1 -1
- package/dist/tools/create-spec-hu/docs-criteria-adapter.d.ts +14 -0
- package/dist/tools/create-spec-hu/docs-criteria-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/docs-criteria-adapter.js +50 -0
- package/dist/tools/create-spec-hu/docs-criteria-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu.d.ts +1 -1
- package/dist/tools/create-spec-hu.d.ts.map +1 -1
- package/dist/tools/create-spec-hu.js +5 -1
- package/dist/tools/create-spec-hu.js.map +1 -1
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +2 -2
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/doc-compliance-handler.d.ts +3 -0
- package/dist/tools/doc-compliance-handler.d.ts.map +1 -0
- package/dist/tools/doc-compliance-handler.js +48 -0
- package/dist/tools/doc-compliance-handler.js.map +1 -0
- package/dist/tools/docs-registry-handler.d.ts +6 -0
- package/dist/tools/docs-registry-handler.d.ts.map +1 -0
- package/dist/tools/docs-registry-handler.js +73 -0
- package/dist/tools/docs-registry-handler.js.map +1 -0
- package/dist/tools/e2e-test-generator-handler.d.ts +12 -0
- package/dist/tools/e2e-test-generator-handler.d.ts.map +1 -0
- package/dist/tools/e2e-test-generator-handler.js +54 -0
- package/dist/tools/e2e-test-generator-handler.js.map +1 -0
- package/dist/tools/ecosystem-tools-handler.d.ts +4 -0
- package/dist/tools/ecosystem-tools-handler.d.ts.map +1 -0
- package/dist/tools/ecosystem-tools-handler.js +57 -0
- package/dist/tools/ecosystem-tools-handler.js.map +1 -0
- package/dist/tools/memory-config-handler.d.ts +4 -0
- package/dist/tools/memory-config-handler.d.ts.map +1 -0
- package/dist/tools/memory-config-handler.js +110 -0
- package/dist/tools/memory-config-handler.js.map +1 -0
- package/dist/tools/pr-agent-handler.d.ts +12 -0
- package/dist/tools/pr-agent-handler.d.ts.map +1 -0
- package/dist/tools/pr-agent-handler.js +47 -0
- package/dist/tools/pr-agent-handler.js.map +1 -0
- package/dist/tools/register-aider-tools.d.ts +3 -0
- package/dist/tools/register-aider-tools.d.ts.map +1 -0
- package/dist/tools/register-aider-tools.js +28 -0
- package/dist/tools/register-aider-tools.js.map +1 -0
- package/dist/tools/register-code-graph-tools.d.ts +3 -0
- package/dist/tools/register-code-graph-tools.d.ts.map +1 -0
- package/dist/tools/register-code-graph-tools.js +36 -0
- package/dist/tools/register-code-graph-tools.js.map +1 -0
- package/dist/tools/register-continue-tools.d.ts +3 -0
- package/dist/tools/register-continue-tools.d.ts.map +1 -0
- package/dist/tools/register-continue-tools.js +38 -0
- package/dist/tools/register-continue-tools.js.map +1 -0
- package/dist/tools/register-doc-compliance-tools.d.ts +3 -0
- package/dist/tools/register-doc-compliance-tools.d.ts.map +1 -0
- package/dist/tools/register-doc-compliance-tools.js +18 -0
- package/dist/tools/register-doc-compliance-tools.js.map +1 -0
- package/dist/tools/register-docs-registry-tools.d.ts +3 -0
- package/dist/tools/register-docs-registry-tools.d.ts.map +1 -0
- package/dist/tools/register-docs-registry-tools.js +35 -0
- package/dist/tools/register-docs-registry-tools.js.map +1 -0
- package/dist/tools/register-e2e-test-generator-tools.d.ts +3 -0
- package/dist/tools/register-e2e-test-generator-tools.d.ts.map +1 -0
- package/dist/tools/register-e2e-test-generator-tools.js +35 -0
- package/dist/tools/register-e2e-test-generator-tools.js.map +1 -0
- package/dist/tools/register-memory-config-tools.d.ts +3 -0
- package/dist/tools/register-memory-config-tools.d.ts.map +1 -0
- package/dist/tools/register-memory-config-tools.js +34 -0
- package/dist/tools/register-memory-config-tools.js.map +1 -0
- package/dist/tools/register-pr-agent-tools.d.ts +3 -0
- package/dist/tools/register-pr-agent-tools.d.ts.map +1 -0
- package/dist/tools/register-pr-agent-tools.js +34 -0
- package/dist/tools/register-pr-agent-tools.js.map +1 -0
- package/dist/tools/register-sweep-tools.d.ts +3 -0
- package/dist/tools/register-sweep-tools.d.ts.map +1 -0
- package/dist/tools/register-sweep-tools.js +42 -0
- package/dist/tools/register-sweep-tools.js.map +1 -0
- package/dist/tools/register-token-optimizer-tools.d.ts +3 -0
- package/dist/tools/register-token-optimizer-tools.d.ts.map +1 -0
- package/dist/tools/register-token-optimizer-tools.js +22 -0
- package/dist/tools/register-token-optimizer-tools.js.map +1 -0
- package/dist/tools/sweep-integration-handler.d.ts +4 -0
- package/dist/tools/sweep-integration-handler.d.ts.map +1 -0
- package/dist/tools/sweep-integration-handler.js +60 -0
- package/dist/tools/sweep-integration-handler.js.map +1 -0
- package/dist/types/aider.d.ts +21 -0
- package/dist/types/aider.d.ts.map +1 -0
- package/dist/types/aider.js +3 -0
- package/dist/types/aider.js.map +1 -0
- package/dist/types/code-graph-integration.d.ts +22 -0
- package/dist/types/code-graph-integration.d.ts.map +1 -0
- package/dist/types/code-graph-integration.js +3 -0
- package/dist/types/code-graph-integration.js.map +1 -0
- package/dist/types/continue-integration.d.ts +32 -0
- package/dist/types/continue-integration.d.ts.map +1 -0
- package/dist/types/continue-integration.js +3 -0
- package/dist/types/continue-integration.js.map +1 -0
- package/dist/types/docs.d.ts +70 -0
- package/dist/types/docs.d.ts.map +1 -1
- package/dist/types/e2e-test-generator.d.ts +27 -0
- package/dist/types/e2e-test-generator.d.ts.map +1 -0
- package/dist/types/e2e-test-generator.js +3 -0
- package/dist/types/e2e-test-generator.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp.d.ts +17 -0
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/pr-agent.d.ts +28 -0
- package/dist/types/pr-agent.d.ts.map +1 -0
- package/dist/types/pr-agent.js +3 -0
- package/dist/types/pr-agent.js.map +1 -0
- package/dist/types/spec/core.d.ts +2 -0
- package/dist/types/spec/core.d.ts.map +1 -1
- package/dist/types/sweep.d.ts +22 -0
- package/dist/types/sweep.d.ts.map +1 -0
- package/dist/types/sweep.js +3 -0
- package/dist/types/sweep.js.map +1 -0
- package/dist/types/tooling/index.d.ts +2 -0
- package/dist/types/tooling/index.d.ts.map +1 -1
- package/dist/types/tooling/memory-config.d.ts +25 -0
- package/dist/types/tooling/memory-config.d.ts.map +1 -0
- package/dist/types/tooling/memory-config.js +3 -0
- package/dist/types/tooling/memory-config.js.map +1 -0
- package/dist/types/tooling/token-optimizer.d.ts +42 -0
- package/dist/types/tooling/token-optimizer.d.ts.map +1 -0
- package/dist/types/tooling/token-optimizer.js +3 -0
- package/dist/types/tooling/token-optimizer.js.map +1 -0
- package/dist/types/tooling.d.ts +1 -1
- package/dist/types/tooling.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/dev-lifecycle-catalog.json +22 -0
- package/src/config/license-plans.json +20 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { getMemoryStatus, setupOpenMemory, setupMem0Cloud, resetMemoryConfig, } from '../engine/memory-config-generator.js';
|
|
2
|
+
export async function handleConfigureMemory(input) {
|
|
3
|
+
const { projectPath, action, apiKey } = input;
|
|
4
|
+
switch (action) {
|
|
5
|
+
case 'setup-openmemory': {
|
|
6
|
+
const configPath = await setupOpenMemory(projectPath);
|
|
7
|
+
const lines = [
|
|
8
|
+
'OpenMemory (mem0) configured successfully.',
|
|
9
|
+
'',
|
|
10
|
+
`Config written to: ${configPath}`,
|
|
11
|
+
'',
|
|
12
|
+
'The following MCP server entry was added to .claude.json:',
|
|
13
|
+
'```json',
|
|
14
|
+
JSON.stringify({
|
|
15
|
+
mcpServers: {
|
|
16
|
+
memory: {
|
|
17
|
+
command: 'npx',
|
|
18
|
+
args: ['-y', '@mem0/mcp'],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
}, null, 2),
|
|
22
|
+
'```',
|
|
23
|
+
'',
|
|
24
|
+
'Restart Claude Code to activate the memory MCP server.',
|
|
25
|
+
];
|
|
26
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
27
|
+
}
|
|
28
|
+
case 'setup-mem0-cloud': {
|
|
29
|
+
if (!apiKey) {
|
|
30
|
+
return {
|
|
31
|
+
content: [
|
|
32
|
+
{
|
|
33
|
+
type: 'text',
|
|
34
|
+
text: 'Error: apiKey is required for setup-mem0-cloud action. Get your API key from https://app.mem0.ai',
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
isError: true,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const configPath = await setupMem0Cloud(projectPath, apiKey);
|
|
41
|
+
const lines = [
|
|
42
|
+
'Mem0 Cloud configured successfully.',
|
|
43
|
+
'',
|
|
44
|
+
`Config written to: ${configPath}`,
|
|
45
|
+
'',
|
|
46
|
+
'The memory MCP server with your API key has been added to .claude.json.',
|
|
47
|
+
'',
|
|
48
|
+
'Restart Claude Code to activate the memory MCP server.',
|
|
49
|
+
];
|
|
50
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
51
|
+
}
|
|
52
|
+
case 'status': {
|
|
53
|
+
const status = await getMemoryStatus(projectPath);
|
|
54
|
+
const lines = [
|
|
55
|
+
'Memory Configuration Status',
|
|
56
|
+
'===========================',
|
|
57
|
+
'',
|
|
58
|
+
`Provider: ${status.provider}`,
|
|
59
|
+
`Connected: ${String(status.connected)}`,
|
|
60
|
+
`Memory count: ${String(status.memoryCount)}`,
|
|
61
|
+
`Config path: ${status.configPath}`,
|
|
62
|
+
];
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
65
|
+
structuredContent: { ...status },
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
case 'reset': {
|
|
69
|
+
const configPath = await resetMemoryConfig(projectPath);
|
|
70
|
+
return {
|
|
71
|
+
content: [
|
|
72
|
+
{
|
|
73
|
+
type: 'text',
|
|
74
|
+
text: `Memory MCP configuration removed from ${configPath}.\n\nRestart Claude Code to deactivate the memory server.`,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
default: {
|
|
80
|
+
const _never = action;
|
|
81
|
+
return {
|
|
82
|
+
content: [
|
|
83
|
+
{
|
|
84
|
+
type: 'text',
|
|
85
|
+
text: `Unknown action: ${String(_never)}. Valid actions: setup-openmemory, setup-mem0-cloud, status, reset`,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
isError: true,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export async function handleMemoryStatus(input) {
|
|
94
|
+
const { projectPath } = input;
|
|
95
|
+
const status = await getMemoryStatus(projectPath);
|
|
96
|
+
const lines = [
|
|
97
|
+
'Memory Status',
|
|
98
|
+
'=============',
|
|
99
|
+
'',
|
|
100
|
+
`Provider: ${status.provider}`,
|
|
101
|
+
`Connected: ${String(status.connected)}`,
|
|
102
|
+
`Memory count: ${String(status.memoryCount)}`,
|
|
103
|
+
`Config path: ${status.configPath}`,
|
|
104
|
+
];
|
|
105
|
+
return {
|
|
106
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
107
|
+
structuredContent: { ...status },
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=memory-config-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-config-handler.js","sourceRoot":"","sources":["../../src/tools/memory-config-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ToolResult, ReviewPrAgainstSpecInput, PrAgentStatusInput } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handle review_pr_against_spec tool call.
|
|
4
|
+
* Returns per-criterion compliance results and overall score.
|
|
5
|
+
*/
|
|
6
|
+
export declare function handleReviewPrAgainstSpec(input: ReviewPrAgainstSpecInput): Promise<ToolResult>;
|
|
7
|
+
/**
|
|
8
|
+
* Handle pr_agent_status tool call.
|
|
9
|
+
* Returns gh CLI installation status and PR agent configuration.
|
|
10
|
+
*/
|
|
11
|
+
export declare function handlePrAgentStatus(input: PrAgentStatusInput): ToolResult;
|
|
12
|
+
//# sourceMappingURL=pr-agent-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-agent-handler.d.ts","sourceRoot":"","sources":["../../src/tools/pr-agent-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGlG;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,UAAU,CAAC,CA0BrB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAsBzE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { reviewPrAgainstSpec, checkPrAgentStatus } from '../engine/pr-spec-validator.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handle review_pr_against_spec tool call.
|
|
4
|
+
* Returns per-criterion compliance results and overall score.
|
|
5
|
+
*/
|
|
6
|
+
export async function handleReviewPrAgainstSpec(input) {
|
|
7
|
+
const { specId, projectPath, prNumber, githubRepo } = input;
|
|
8
|
+
const result = await reviewPrAgainstSpec(specId, projectPath, prNumber, githubRepo);
|
|
9
|
+
if ('isError' in result) {
|
|
10
|
+
return {
|
|
11
|
+
content: [{ type: 'text', text: `Error: ${result.message}` }],
|
|
12
|
+
isError: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const lines = [
|
|
16
|
+
`PR #${result.prNumber} Compliance Report — ${result.specId}`,
|
|
17
|
+
'='.repeat(60),
|
|
18
|
+
`Compliance Score: ${result.complianceScore}%`,
|
|
19
|
+
``,
|
|
20
|
+
`Criteria Results:`,
|
|
21
|
+
...result.criteria.map((c) => ` [${c.status === 'matched' ? 'PASS' : c.status === 'unmatched' ? 'FAIL' : ' '}] ${c.criterion}`),
|
|
22
|
+
``,
|
|
23
|
+
result.summary,
|
|
24
|
+
];
|
|
25
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Handle pr_agent_status tool call.
|
|
29
|
+
* Returns gh CLI installation status and PR agent configuration.
|
|
30
|
+
*/
|
|
31
|
+
export function handlePrAgentStatus(input) {
|
|
32
|
+
const result = checkPrAgentStatus(input.projectPath);
|
|
33
|
+
const lines = [
|
|
34
|
+
`PR Agent Status`,
|
|
35
|
+
`===============`,
|
|
36
|
+
`gh CLI installed: ${result.ghInstalled ? 'yes' : 'no'}`,
|
|
37
|
+
`PR Agent configured: ${result.prAgentConfigured ? `yes (${result.configuredTool ?? 'unknown'})` : 'no'}`,
|
|
38
|
+
];
|
|
39
|
+
if (!result.ghInstalled) {
|
|
40
|
+
lines.push(``, `To install gh CLI: https://cli.github.com/`);
|
|
41
|
+
}
|
|
42
|
+
if (!result.prAgentConfigured) {
|
|
43
|
+
lines.push(``, `No PR agent workflow detected in .github/workflows/.`, `Consider adding qodo-ai/pr-agent or a similar tool for automated PR reviews.`);
|
|
44
|
+
}
|
|
45
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=pr-agent-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-agent-handler.js","sourceRoot":"","sources":["../../src/tools/pr-agent-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEpF,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,OAAO,MAAM,CAAC,QAAQ,wBAAwB,MAAM,CAAC,MAAM,EAAE;QAC7D,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACd,qBAAqB,MAAM,CAAC,eAAe,GAAG;QAC9C,EAAE;QACF,mBAAmB;QACnB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CACpB,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,CACvG;QACD,EAAE;QACF,MAAM,CAAC,OAAO;KACf,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAErD,MAAM,KAAK,GAAa;QACtB,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACxD,wBAAwB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,cAAc,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;KAC1G,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,4CAA4C,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,sDAAsD,EACtD,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-aider-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-aider-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwC1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleGenerateAiderPrompt, handleAiderStatus } from './aider-launcher-handler.js';
|
|
4
|
+
export function registerAiderTools(server) {
|
|
5
|
+
server.registerTool('generate_aider_prompt', {
|
|
6
|
+
description: 'Generate a ready-to-run aider CLI command from a Planu spec. ' +
|
|
7
|
+
'Reads acceptance criteria and affected files from spec.md and technical.md, ' +
|
|
8
|
+
'selects the optimal model based on difficulty, and returns the command plus ' +
|
|
9
|
+
'an .aider.conf.yml configuration snippet.',
|
|
10
|
+
annotations: { title: 'Generate Aider Prompt', readOnlyHint: true },
|
|
11
|
+
inputSchema: {
|
|
12
|
+
specId: z
|
|
13
|
+
.string()
|
|
14
|
+
.describe('Spec ID to generate the aider command for (e.g. SPEC-042). ' +
|
|
15
|
+
'Must match a directory in planu/specs/ following the SPEC-NNN-slug convention.'),
|
|
16
|
+
projectPath: z.string().describe('Absolute path to the project root'),
|
|
17
|
+
},
|
|
18
|
+
}, safeLicensed('generate_aider_prompt', (args) => handleGenerateAiderPrompt(args)));
|
|
19
|
+
server.registerTool('aider_status', {
|
|
20
|
+
description: 'Check whether aider is installed, show its version, and report the config path. ' +
|
|
21
|
+
'Run this before generate_aider_prompt to confirm aider is available.',
|
|
22
|
+
annotations: { title: 'Aider Status', readOnlyHint: true },
|
|
23
|
+
inputSchema: {
|
|
24
|
+
projectPath: z.string().describe('Absolute path to the project root'),
|
|
25
|
+
},
|
|
26
|
+
}, safeLicensed('aider_status', (args) => Promise.resolve(handleAiderStatus(args))));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=register-aider-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-aider-tools.js","sourceRoot":"","sources":["../../src/tools/register-aider-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAG3F,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,+DAA+D;YAC/D,8EAA8E;YAC9E,8EAA8E;YAC9E,2CAA2C;QAC7C,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE;QACnE,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CACP,6DAA6D;gBAC3D,gFAAgF,CACnF;YACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACtE;KACF,EACD,YAAY,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7C,yBAAyB,CAAC,IAAgC,CAAC,CAC5D,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,kFAAkF;YAClF,sEAAsE;QACxE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE;QAC1D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACtE;KACF,EACD,YAAY,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CACpC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAwB,CAAC,CAAC,CAC7D,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-code-graph-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-code-graph-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2C9D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleConfigureCodeGraph, handleCodeGraphStatus } from './code-graph-handler.js';
|
|
4
|
+
const projectPathSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1)
|
|
7
|
+
.max(4096)
|
|
8
|
+
.describe('Absolute path to the project root.');
|
|
9
|
+
export function registerCodeGraphTools(server) {
|
|
10
|
+
server.registerTool('configure_code_graph', {
|
|
11
|
+
description: 'Configure a Code Graph MCP provider for semantic code navigation. ' +
|
|
12
|
+
'Supports CodeGraphContext, Pathfinder, and Axon. ' +
|
|
13
|
+
'Each setup action adds the provider to .claude.json so it is available in Claude Code. ' +
|
|
14
|
+
'Actions: "setup-codegraph-context" | "setup-pathfinder" | "setup-axon" | "status".',
|
|
15
|
+
inputSchema: {
|
|
16
|
+
projectPath: projectPathSchema,
|
|
17
|
+
action: z
|
|
18
|
+
.enum(['setup-codegraph-context', 'setup-pathfinder', 'setup-axon', 'status'])
|
|
19
|
+
.describe('Action to perform. ' +
|
|
20
|
+
'"setup-codegraph-context" adds the CodeGraphContext MCP server. ' +
|
|
21
|
+
'"setup-pathfinder" adds the Pathfinder MCP server. ' +
|
|
22
|
+
'"setup-axon" adds the Axon MCP server. ' +
|
|
23
|
+
'"status" reports which providers are currently configured.'),
|
|
24
|
+
},
|
|
25
|
+
annotations: { title: 'Configure Code Graph Provider' },
|
|
26
|
+
}, safeLicensed('configure_code_graph', (args) => handleConfigureCodeGraph(args)));
|
|
27
|
+
server.registerTool('code_graph_status', {
|
|
28
|
+
description: 'Report which Code Graph MCP providers are configured in .claude.json. ' +
|
|
29
|
+
'Returns providers list and the first active provider name.',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
projectPath: projectPathSchema,
|
|
32
|
+
},
|
|
33
|
+
annotations: { title: 'Code Graph Status', readOnlyHint: true },
|
|
34
|
+
}, safeLicensed('code_graph_status', (args) => handleCodeGraphStatus(args)));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=register-code-graph-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-code-graph-tools.js","sourceRoot":"","sources":["../../src/tools/register-code-graph-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAG1F,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,IAAI,CAAC;KACT,QAAQ,CAAC,oCAAoC,CAAC,CAAC;AAElD,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,oEAAoE;YACpE,mDAAmD;YACnD,yFAAyF;YACzF,oFAAoF;QACtF,WAAW,EAAE;YACX,WAAW,EAAE,iBAAiB;YAC9B,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;iBAC7E,QAAQ,CACP,qBAAqB;gBACnB,kEAAkE;gBAClE,qDAAqD;gBACrD,yCAAyC;gBACzC,4DAA4D,CAC/D;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE;KACxD,EACD,YAAY,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5C,wBAAwB,CAAC,IAA2B,CAAC,CACtD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,wEAAwE;YACxE,4DAA4D;QAC9D,WAAW,EAAE;YACX,WAAW,EAAE,iBAAiB;SAC/B;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE;KAChE,EACD,YAAY,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CACzC,qBAAqB,CAAC,IAA+B,CAAC,CACvD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-continue-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-continue-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6C7D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleConfigureContinue, handleContinueStatus } from './continue-config-handler.js';
|
|
4
|
+
const projectPathSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1)
|
|
7
|
+
.max(4096)
|
|
8
|
+
.describe('Absolute path to the project root.');
|
|
9
|
+
export function registerContinueTools(server) {
|
|
10
|
+
server.registerTool('configure_continue', {
|
|
11
|
+
description: 'Generate .continue/config.json with a Planu MCP server entry for real-time spec adherence in the IDE. ' +
|
|
12
|
+
'Supports stdio (local npx) and sse (hosted) transports. ' +
|
|
13
|
+
'Adds slash commands: /spec, /validate, /criteria.',
|
|
14
|
+
inputSchema: {
|
|
15
|
+
projectPath: projectPathSchema,
|
|
16
|
+
transport: z
|
|
17
|
+
.enum(['stdio', 'sse'])
|
|
18
|
+
.describe('MCP transport to use. ' +
|
|
19
|
+
'"stdio" runs Planu locally via npx (recommended for local dev). ' +
|
|
20
|
+
'"sse" connects to a hosted Planu server — requires hostedUrl.'),
|
|
21
|
+
hostedUrl: z
|
|
22
|
+
.url()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('URL of the hosted Planu SSE server. Required when transport is "sse". ' +
|
|
25
|
+
'Example: "https://planu.example.com/mcp/sse".'),
|
|
26
|
+
},
|
|
27
|
+
annotations: { title: 'Configure Continue.dev Integration' },
|
|
28
|
+
}, safeLicensed('configure_continue', (args) => handleConfigureContinue(args)));
|
|
29
|
+
server.registerTool('continue_status', {
|
|
30
|
+
description: 'Check whether .continue/config.json exists and has a Planu MCP entry. ' +
|
|
31
|
+
'Returns configured status, transport type, and config file path.',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
projectPath: projectPathSchema,
|
|
34
|
+
},
|
|
35
|
+
annotations: { title: 'Continue.dev Integration Status', readOnlyHint: true },
|
|
36
|
+
}, safeLicensed('continue_status', (args) => handleContinueStatus(args)));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=register-continue-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-continue-tools.js","sourceRoot":"","sources":["../../src/tools/register-continue-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAG7F,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,IAAI,CAAC;KACT,QAAQ,CAAC,oCAAoC,CAAC,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,wGAAwG;YACxG,0DAA0D;YAC1D,mDAAmD;QACrD,WAAW,EAAE;YACX,WAAW,EAAE,iBAAiB;YAC9B,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iBACtB,QAAQ,CACP,wBAAwB;gBACtB,kEAAkE;gBAClE,+DAA+D,CAClE;YACH,SAAS,EAAE,CAAC;iBACT,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CACP,wEAAwE;gBACtE,+CAA+C,CAClD;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE;KAC7D,EACD,YAAY,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1C,uBAAuB,CAAC,IAA8B,CAAC,CACxD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,wEAAwE;YACxE,kEAAkE;QACpE,WAAW,EAAE;YACX,WAAW,EAAE,iBAAiB;SAC/B;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,YAAY,EAAE,IAAI,EAAE;KAC9E,EACD,YAAY,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAA2B,CAAC,CAAC,CAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-doc-compliance-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-doc-compliance-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkBlE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// tools/register-doc-compliance-tools.ts — SPEC-385
|
|
2
|
+
// Registers the doc_compliance_report tool.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { safeLicensed } from './safe-handler.js';
|
|
5
|
+
import { handleDocComplianceReport } from './doc-compliance-handler.js';
|
|
6
|
+
export function registerDocComplianceTools(server) {
|
|
7
|
+
server.registerTool('doc_compliance_report', {
|
|
8
|
+
description: 'Check whether a spec aligns with official documentation best practices for detected technologies. ' +
|
|
9
|
+
'Automatically detects techs from spec content, fetches official docs, and reports anti-patterns ' +
|
|
10
|
+
'and missing best practices.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
projectPath: z.string().describe('Absolute path to the project root'),
|
|
13
|
+
specId: z.string().describe('Spec ID to check (e.g. SPEC-042)'),
|
|
14
|
+
},
|
|
15
|
+
annotations: { readOnlyHint: true },
|
|
16
|
+
}, safeLicensed('doc_compliance_report', async (args) => handleDocComplianceReport(args)));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=register-doc-compliance-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-doc-compliance-tools.js","sourceRoot":"","sources":["../../src/tools/register-doc-compliance-tools.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,4CAA4C;AAG5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,oGAAoG;YACpG,kGAAkG;YAClG,6BAA6B;QAC/B,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SAChE;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACnD,yBAAyB,CAAC,IAA0B,CAAC,CACtD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-docs-registry-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-docs-registry-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCjE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleValidateDocsRegistry, handleDiscoverDocsUrl } from './docs-registry-handler.js';
|
|
4
|
+
export function registerDocsRegistryTools(server) {
|
|
5
|
+
server.registerTool('validate_docs_registry', {
|
|
6
|
+
description: 'Check all entries in the built-in docs-registry.json for broken or slow links. ' +
|
|
7
|
+
'Performs HEAD requests against each registered documentation URL and categorizes them ' +
|
|
8
|
+
'as healthy, slow (>2s), or broken. Useful for auditing docs-registry health.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
projectPath: z
|
|
11
|
+
.string()
|
|
12
|
+
.max(4096)
|
|
13
|
+
.describe('Absolute path to the project root (used for context only).'),
|
|
14
|
+
},
|
|
15
|
+
annotations: { readOnlyHint: true },
|
|
16
|
+
}, safeLicensed('validate_docs_registry', async (args) => {
|
|
17
|
+
return handleValidateDocsRegistry(args);
|
|
18
|
+
}));
|
|
19
|
+
server.registerTool('discover_docs_url', {
|
|
20
|
+
description: 'Discover the official documentation URL for a package/library by querying ' +
|
|
21
|
+
'npm, PyPI, and crates.io registries. Returns the docs URL and whether it was ' +
|
|
22
|
+
'verified as alive. Useful for finding docs for packages not yet in the registry.',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
tech: z
|
|
25
|
+
.string()
|
|
26
|
+
.min(1)
|
|
27
|
+
.max(200)
|
|
28
|
+
.describe('Package or library name to look up (e.g. "axios", "requests", "tokio").'),
|
|
29
|
+
},
|
|
30
|
+
annotations: { readOnlyHint: true },
|
|
31
|
+
}, safeLicensed('discover_docs_url', async (args) => {
|
|
32
|
+
return handleDiscoverDocsUrl(args);
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=register-docs-registry-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-docs-registry-tools.js","sourceRoot":"","sources":["../../src/tools/register-docs-registry-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG/F,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,iFAAiF;YACjF,wFAAwF;YACxF,8EAA8E;QAChF,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,4DAA4D,CAAC;SAC1E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpD,OAAO,0BAA0B,CAAC,IAAiC,CAAC,CAAC;IACvE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,4EAA4E;YAC5E,+EAA+E;YAC/E,kFAAkF;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,yEAAyE,CAAC;SACvF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC/C,OAAO,qBAAqB,CAAC,IAA4B,CAAC,CAAC;IAC7D,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-e2e-test-generator-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-e2e-test-generator-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+CrE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleGenerateE2eTests, handleE2eTestStatus } from './e2e-test-generator-handler.js';
|
|
4
|
+
export function registerE2eTestGeneratorTools(server) {
|
|
5
|
+
server.registerTool('generate_e2e_tests', {
|
|
6
|
+
description: 'Generates E2E test scaffolding from spec acceptance criteria. ' +
|
|
7
|
+
'Supports gherkin (BDD feature files), playwright (TypeScript), ' +
|
|
8
|
+
'testRigor (plain English), and plain (numbered list) formats. ' +
|
|
9
|
+
'Writes the output file to tests/e2e/ by default.',
|
|
10
|
+
annotations: { title: 'Generate E2E Tests' },
|
|
11
|
+
inputSchema: {
|
|
12
|
+
specId: z.string().describe('Spec ID to generate tests for (e.g. SPEC-042)'),
|
|
13
|
+
projectPath: z
|
|
14
|
+
.string()
|
|
15
|
+
.describe('Absolute path to the project root containing planu/specs/'),
|
|
16
|
+
framework: z
|
|
17
|
+
.enum(['gherkin', 'playwright', 'testRigor', 'plain'])
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Test framework to generate for. Valid values: gherkin (BDD feature files, default), playwright (TypeScript), testRigor (plain English steps), plain (numbered list)'),
|
|
20
|
+
outputPath: z
|
|
21
|
+
.string()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('Output file path (absolute or relative to projectPath). Defaults to tests/e2e/SPEC-XXX-{slug}.{ext}'),
|
|
24
|
+
},
|
|
25
|
+
}, safeLicensed('generate_e2e_tests', (args) => handleGenerateE2eTests(args)));
|
|
26
|
+
server.registerTool('e2e_test_status', {
|
|
27
|
+
description: 'Lists existing E2E test files in tests/e2e/ that match the SPEC-XXX naming pattern. ' +
|
|
28
|
+
'Shows which specs already have E2E test coverage and which framework was used.',
|
|
29
|
+
annotations: { title: 'E2E Test Status', readOnlyHint: true },
|
|
30
|
+
inputSchema: {
|
|
31
|
+
projectPath: z.string().describe('Absolute path to the project root'),
|
|
32
|
+
},
|
|
33
|
+
}, safeLicensed('e2e_test_status', (args) => handleE2eTestStatus(args)));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=register-e2e-test-generator-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-e2e-test-generator-tools.js","sourceRoot":"","sources":["../../src/tools/register-e2e-test-generator-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG9F,MAAM,UAAU,6BAA6B,CAAC,MAAiB;IAC7D,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,gEAAgE;YAChE,iEAAiE;YACjE,gEAAgE;YAChE,kDAAkD;QACpD,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;QAC5C,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YAC5E,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,2DAA2D,CAAC;YACxE,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;iBACrD,QAAQ,EAAE;iBACV,QAAQ,CACP,qKAAqK,CACtK;YACH,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,qGAAqG,CACtG;SACJ;KACF,EACD,YAAY,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1C,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,sFAAsF;YACtF,gFAAgF;QAClF,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE;QAC7D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACtE;KACF,EACD,YAAY,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAA0B,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-memory-config-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-memory-config-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8CjE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleConfigureMemory, handleMemoryStatus } from './memory-config-handler.js';
|
|
4
|
+
export function registerMemoryConfigTools(server) {
|
|
5
|
+
server.registerTool('configure_memory', {
|
|
6
|
+
description: 'Configure persistent AI memory for your project using OpenMemory (local) or Mem0 Cloud. ' +
|
|
7
|
+
'Generates the .claude.json MCP entry so Claude Code can access memory across sessions. ' +
|
|
8
|
+
'Actions: setup-openmemory (local, no API key), setup-mem0-cloud (cloud, requires API key), ' +
|
|
9
|
+
'status (check current config), reset (remove memory MCP entry).',
|
|
10
|
+
annotations: { title: 'Configure Memory', readOnlyHint: false },
|
|
11
|
+
inputSchema: {
|
|
12
|
+
projectPath: z.string().describe('Absolute path to the project root directory'),
|
|
13
|
+
action: z
|
|
14
|
+
.enum(['setup-openmemory', 'setup-mem0-cloud', 'status', 'reset'])
|
|
15
|
+
.describe('setup-openmemory: configure local OpenMemory (no API key needed) | ' +
|
|
16
|
+
'setup-mem0-cloud: configure Mem0 Cloud (requires apiKey) | ' +
|
|
17
|
+
'status: show current memory configuration | ' +
|
|
18
|
+
'reset: remove memory MCP entry from .claude.json'),
|
|
19
|
+
apiKey: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Mem0 API key — required for setup-mem0-cloud action. Get from https://app.mem0.ai'),
|
|
23
|
+
},
|
|
24
|
+
}, safeLicensed('configure_memory', async (args) => handleConfigureMemory(args)));
|
|
25
|
+
server.registerTool('memory_status', {
|
|
26
|
+
description: 'Returns the current AI memory configuration status. ' +
|
|
27
|
+
'Shows which provider is configured (none, openmemory, mem0-cloud) and the config file path.',
|
|
28
|
+
annotations: { title: 'Memory Status', readOnlyHint: true },
|
|
29
|
+
inputSchema: {
|
|
30
|
+
projectPath: z.string().describe('Absolute path to the project root directory'),
|
|
31
|
+
},
|
|
32
|
+
}, safeLicensed('memory_status', async (args) => handleMemoryStatus(args)));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=register-memory-config-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-memory-config-tools.js","sourceRoot":"","sources":["../../src/tools/register-memory-config-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,0FAA0F;YAC1F,yFAAyF;YACzF,6FAA6F;YAC7F,iEAAiE;QACnE,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,EAAE;QAC/D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC/E,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACjE,QAAQ,CACP,qEAAqE;gBACnE,6DAA6D;gBAC7D,8CAA8C;gBAC9C,kDAAkD,CACrD;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mFAAmF,CACpF;SACJ;KACF,EACD,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC9C,qBAAqB,CAAC,IAA4B,CAAC,CACpD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,sDAAsD;YACtD,6FAA6F;QAC/F,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE;QAC3D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SAChF;KACF,EACD,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAyB,CAAC,CAAC,CAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-pr-agent-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-pr-agent-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4C5D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleReviewPrAgainstSpec, handlePrAgentStatus } from './pr-agent-handler.js';
|
|
4
|
+
export function registerPrAgentTools(server) {
|
|
5
|
+
server.registerTool('review_pr_against_spec', {
|
|
6
|
+
description: 'Validates a pull request diff against spec acceptance criteria. ' +
|
|
7
|
+
'Uses gh CLI to fetch the PR diff and checks each criterion for presence in the diff. ' +
|
|
8
|
+
'Returns a compliance score (0-100) and per-criterion status.',
|
|
9
|
+
annotations: { title: 'Review PR Against Spec', readOnlyHint: true },
|
|
10
|
+
inputSchema: {
|
|
11
|
+
specId: z.string().describe('Spec ID to validate against (e.g. SPEC-042)'),
|
|
12
|
+
projectPath: z
|
|
13
|
+
.string()
|
|
14
|
+
.describe('Absolute path to the project root containing planu/specs/'),
|
|
15
|
+
prNumber: z.number().int().positive().describe('Pull request number to review'),
|
|
16
|
+
githubRepo: z
|
|
17
|
+
.string()
|
|
18
|
+
.describe('GitHub repository in owner/repo format (e.g. acme/my-app)'),
|
|
19
|
+
},
|
|
20
|
+
}, safeLicensed('review_pr_against_spec', (args) => handleReviewPrAgainstSpec(args)));
|
|
21
|
+
server.registerTool('pr_agent_status', {
|
|
22
|
+
description: 'Checks whether the gh CLI is installed and whether a PR agent (qodo or pr-agent) ' +
|
|
23
|
+
'is configured in .github/workflows/. Helps diagnose review_pr_against_spec prerequisites.',
|
|
24
|
+
annotations: { title: 'PR Agent Status', readOnlyHint: true },
|
|
25
|
+
inputSchema: {
|
|
26
|
+
projectPath: z.string().describe('Absolute path to the project root'),
|
|
27
|
+
githubRepo: z
|
|
28
|
+
.string()
|
|
29
|
+
.optional()
|
|
30
|
+
.describe('GitHub repository in owner/repo format (optional, for future use)'),
|
|
31
|
+
},
|
|
32
|
+
}, safeLicensed('pr_agent_status', (args) => Promise.resolve(handlePrAgentStatus(args))));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=register-pr-agent-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-pr-agent-tools.js","sourceRoot":"","sources":["../../src/tools/register-pr-agent-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGvF,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,kEAAkE;YAClE,uFAAuF;YACvF,8DAA8D;QAChE,WAAW,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE;QACpE,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC1E,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,2DAA2D,CAAC;YACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC/E,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CAAC,2DAA2D,CAAC;SACzE;KACF,EACD,YAAY,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9C,yBAAyB,CAAC,IAAgC,CAAC,CAC5D,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,mFAAmF;YACnF,2FAA2F;QAC7F,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE;QAC7D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrE,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mEAAmE,CAAC;SACjF;KACF,EACD,YAAY,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACvC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAA0B,CAAC,CAAC,CACjE,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-sweep-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-sweep-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4D1D"}
|