decibel-tools-mcp 1.0.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/LICENSE +21 -0
- package/README.md +335 -0
- package/dist/agentic/compiler.d.ts +21 -0
- package/dist/agentic/compiler.d.ts.map +1 -0
- package/dist/agentic/compiler.js +267 -0
- package/dist/agentic/compiler.js.map +1 -0
- package/dist/agentic/golden.d.ts +25 -0
- package/dist/agentic/golden.d.ts.map +1 -0
- package/dist/agentic/golden.js +255 -0
- package/dist/agentic/golden.js.map +1 -0
- package/dist/agentic/index.d.ts +17 -0
- package/dist/agentic/index.d.ts.map +1 -0
- package/dist/agentic/index.js +153 -0
- package/dist/agentic/index.js.map +1 -0
- package/dist/agentic/linter.d.ts +20 -0
- package/dist/agentic/linter.d.ts.map +1 -0
- package/dist/agentic/linter.js +340 -0
- package/dist/agentic/linter.js.map +1 -0
- package/dist/agentic/renderer.d.ts +17 -0
- package/dist/agentic/renderer.d.ts.map +1 -0
- package/dist/agentic/renderer.js +277 -0
- package/dist/agentic/renderer.js.map +1 -0
- package/dist/agentic/types.d.ts +199 -0
- package/dist/agentic/types.d.ts.map +1 -0
- package/dist/agentic/types.js +8 -0
- package/dist/agentic/types.js.map +1 -0
- package/dist/architectAdrs.d.ts +19 -0
- package/dist/architectAdrs.d.ts.map +1 -0
- package/dist/architectAdrs.js +123 -0
- package/dist/architectAdrs.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -0
- package/dist/dataRoot.d.ts +45 -0
- package/dist/dataRoot.d.ts.map +1 -0
- package/dist/dataRoot.js +201 -0
- package/dist/dataRoot.js.map +1 -0
- package/dist/decibelPaths.d.ts +42 -0
- package/dist/decibelPaths.d.ts.map +1 -0
- package/dist/decibelPaths.js +150 -0
- package/dist/decibelPaths.js.map +1 -0
- package/dist/httpServer.d.ts +49 -0
- package/dist/httpServer.d.ts.map +1 -0
- package/dist/httpServer.js +1472 -0
- package/dist/httpServer.js.map +1 -0
- package/dist/lib/benchmark.d.ts +110 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +338 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/supabase.d.ts +123 -0
- package/dist/lib/supabase.d.ts.map +1 -0
- package/dist/lib/supabase.js +91 -0
- package/dist/lib/supabase.js.map +1 -0
- package/dist/projectPaths.d.ts +27 -0
- package/dist/projectPaths.d.ts.map +1 -0
- package/dist/projectPaths.js +86 -0
- package/dist/projectPaths.js.map +1 -0
- package/dist/projectRegistry.d.ts +97 -0
- package/dist/projectRegistry.d.ts.map +1 -0
- package/dist/projectRegistry.js +362 -0
- package/dist/projectRegistry.js.map +1 -0
- package/dist/sentinelIssues.d.ts +44 -0
- package/dist/sentinelIssues.d.ts.map +1 -0
- package/dist/sentinelIssues.js +213 -0
- package/dist/sentinelIssues.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +93 -0
- package/dist/server.js.map +1 -0
- package/dist/test.d.ts +7 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +77 -0
- package/dist/test.js.map +1 -0
- package/dist/tools/agentic/index.d.ts +7 -0
- package/dist/tools/agentic/index.d.ts.map +1 -0
- package/dist/tools/agentic/index.js +180 -0
- package/dist/tools/agentic/index.js.map +1 -0
- package/dist/tools/architect/index.d.ts +9 -0
- package/dist/tools/architect/index.d.ts.map +1 -0
- package/dist/tools/architect/index.js +383 -0
- package/dist/tools/architect/index.js.map +1 -0
- package/dist/tools/architect.d.ts +19 -0
- package/dist/tools/architect.d.ts.map +1 -0
- package/dist/tools/architect.js +88 -0
- package/dist/tools/architect.js.map +1 -0
- package/dist/tools/bench.d.ts +89 -0
- package/dist/tools/bench.d.ts.map +1 -0
- package/dist/tools/bench.js +826 -0
- package/dist/tools/bench.js.map +1 -0
- package/dist/tools/context/index.d.ts +11 -0
- package/dist/tools/context/index.d.ts.map +1 -0
- package/dist/tools/context/index.js +439 -0
- package/dist/tools/context/index.js.map +1 -0
- package/dist/tools/context.d.ts +146 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +481 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/crit.d.ts +63 -0
- package/dist/tools/crit.d.ts.map +1 -0
- package/dist/tools/crit.js +159 -0
- package/dist/tools/crit.js.map +1 -0
- package/dist/tools/data-inspector.d.ts +188 -0
- package/dist/tools/data-inspector.d.ts.map +1 -0
- package/dist/tools/data-inspector.js +650 -0
- package/dist/tools/data-inspector.js.map +1 -0
- package/dist/tools/deck.d.ts +11 -0
- package/dist/tools/deck.d.ts.map +1 -0
- package/dist/tools/deck.js +170 -0
- package/dist/tools/deck.js.map +1 -0
- package/dist/tools/designer/index.d.ts +6 -0
- package/dist/tools/designer/index.d.ts.map +1 -0
- package/dist/tools/designer/index.js +177 -0
- package/dist/tools/designer/index.js.map +1 -0
- package/dist/tools/designer.d.ts +20 -0
- package/dist/tools/designer.d.ts.map +1 -0
- package/dist/tools/designer.js +75 -0
- package/dist/tools/designer.js.map +1 -0
- package/dist/tools/dojo/index.d.ts +13 -0
- package/dist/tools/dojo/index.d.ts.map +1 -0
- package/dist/tools/dojo/index.js +547 -0
- package/dist/tools/dojo/index.js.map +1 -0
- package/dist/tools/dojo.d.ts +254 -0
- package/dist/tools/dojo.d.ts.map +1 -0
- package/dist/tools/dojo.js +933 -0
- package/dist/tools/dojo.js.map +1 -0
- package/dist/tools/dojoBench.d.ts +49 -0
- package/dist/tools/dojoBench.d.ts.map +1 -0
- package/dist/tools/dojoBench.js +205 -0
- package/dist/tools/dojoBench.js.map +1 -0
- package/dist/tools/dojoGraduated.d.ts +50 -0
- package/dist/tools/dojoGraduated.d.ts.map +1 -0
- package/dist/tools/dojoGraduated.js +174 -0
- package/dist/tools/dojoGraduated.js.map +1 -0
- package/dist/tools/dojoPolicy.d.ts +65 -0
- package/dist/tools/dojoPolicy.d.ts.map +1 -0
- package/dist/tools/dojoPolicy.js +263 -0
- package/dist/tools/dojoPolicy.js.map +1 -0
- package/dist/tools/friction/index.d.ts +7 -0
- package/dist/tools/friction/index.d.ts.map +1 -0
- package/dist/tools/friction/index.js +239 -0
- package/dist/tools/friction/index.js.map +1 -0
- package/dist/tools/friction.d.ts +82 -0
- package/dist/tools/friction.d.ts.map +1 -0
- package/dist/tools/friction.js +331 -0
- package/dist/tools/friction.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/learnings/index.d.ts +5 -0
- package/dist/tools/learnings/index.d.ts.map +1 -0
- package/dist/tools/learnings/index.js +123 -0
- package/dist/tools/learnings/index.js.map +1 -0
- package/dist/tools/learnings.d.ts +41 -0
- package/dist/tools/learnings.d.ts.map +1 -0
- package/dist/tools/learnings.js +149 -0
- package/dist/tools/learnings.js.map +1 -0
- package/dist/tools/oracle/index.d.ts +5 -0
- package/dist/tools/oracle/index.d.ts.map +1 -0
- package/dist/tools/oracle/index.js +97 -0
- package/dist/tools/oracle/index.js.map +1 -0
- package/dist/tools/oracle.d.ts +90 -0
- package/dist/tools/oracle.d.ts.map +1 -0
- package/dist/tools/oracle.js +529 -0
- package/dist/tools/oracle.js.map +1 -0
- package/dist/tools/policy.d.ts +119 -0
- package/dist/tools/policy.d.ts.map +1 -0
- package/dist/tools/policy.js +406 -0
- package/dist/tools/policy.js.map +1 -0
- package/dist/tools/provenance/index.d.ts +4 -0
- package/dist/tools/provenance/index.d.ts.map +1 -0
- package/dist/tools/provenance/index.js +58 -0
- package/dist/tools/provenance/index.js.map +1 -0
- package/dist/tools/provenance.d.ts +75 -0
- package/dist/tools/provenance.d.ts.map +1 -0
- package/dist/tools/provenance.js +197 -0
- package/dist/tools/provenance.js.map +1 -0
- package/dist/tools/rateLimiter.d.ts +45 -0
- package/dist/tools/rateLimiter.d.ts.map +1 -0
- package/dist/tools/rateLimiter.js +91 -0
- package/dist/tools/rateLimiter.js.map +1 -0
- package/dist/tools/registry/index.d.ts +10 -0
- package/dist/tools/registry/index.d.ts.map +1 -0
- package/dist/tools/registry/index.js +467 -0
- package/dist/tools/registry/index.js.map +1 -0
- package/dist/tools/registry.d.ts +3 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +189 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/roadmap/index.d.ts +9 -0
- package/dist/tools/roadmap/index.d.ts.map +1 -0
- package/dist/tools/roadmap/index.js +250 -0
- package/dist/tools/roadmap/index.js.map +1 -0
- package/dist/tools/roadmap.d.ts +88 -0
- package/dist/tools/roadmap.d.ts.map +1 -0
- package/dist/tools/roadmap.js +365 -0
- package/dist/tools/roadmap.js.map +1 -0
- package/dist/tools/sentinel/index.d.ts +19 -0
- package/dist/tools/sentinel/index.d.ts.map +1 -0
- package/dist/tools/sentinel/index.js +832 -0
- package/dist/tools/sentinel/index.js.map +1 -0
- package/dist/tools/sentinel-scan-data.d.ts +90 -0
- package/dist/tools/sentinel-scan-data.d.ts.map +1 -0
- package/dist/tools/sentinel-scan-data.js +122 -0
- package/dist/tools/sentinel-scan-data.js.map +1 -0
- package/dist/tools/sentinel.d.ts +156 -0
- package/dist/tools/sentinel.d.ts.map +1 -0
- package/dist/tools/sentinel.js +603 -0
- package/dist/tools/sentinel.js.map +1 -0
- package/dist/tools/shared/index.d.ts +4 -0
- package/dist/tools/shared/index.d.ts.map +1 -0
- package/dist/tools/shared/index.js +7 -0
- package/dist/tools/shared/index.js.map +1 -0
- package/dist/tools/shared/project.d.ts +17 -0
- package/dist/tools/shared/project.d.ts.map +1 -0
- package/dist/tools/shared/project.js +36 -0
- package/dist/tools/shared/project.js.map +1 -0
- package/dist/tools/shared/response.d.ts +10 -0
- package/dist/tools/shared/response.d.ts.map +1 -0
- package/dist/tools/shared/response.js +36 -0
- package/dist/tools/shared/response.js.map +1 -0
- package/dist/tools/shared/validation.d.ts +10 -0
- package/dist/tools/shared/validation.d.ts.map +1 -0
- package/dist/tools/shared/validation.js +26 -0
- package/dist/tools/shared/validation.js.map +1 -0
- package/dist/tools/studio/cloud-spine.d.ts +27 -0
- package/dist/tools/studio/cloud-spine.d.ts.map +1 -0
- package/dist/tools/studio/cloud-spine.js +773 -0
- package/dist/tools/studio/cloud-spine.js.map +1 -0
- package/dist/tools/studio/index.d.ts +154 -0
- package/dist/tools/studio/index.d.ts.map +1 -0
- package/dist/tools/studio/index.js +525 -0
- package/dist/tools/studio/index.js.map +1 -0
- package/dist/tools/testSpec.d.ts +122 -0
- package/dist/tools/testSpec.d.ts.map +1 -0
- package/dist/tools/testSpec.js +525 -0
- package/dist/tools/testSpec.js.map +1 -0
- package/dist/tools/toolsIndex.d.ts +5 -0
- package/dist/tools/toolsIndex.d.ts.map +1 -0
- package/dist/tools/toolsIndex.js +37 -0
- package/dist/tools/toolsIndex.js.map +1 -0
- package/dist/tools/types.d.ts +30 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +7 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/voice/index.d.ts +8 -0
- package/dist/tools/voice/index.d.ts.map +1 -0
- package/dist/tools/voice/index.js +176 -0
- package/dist/tools/voice/index.js.map +1 -0
- package/dist/tools/voice.d.ts +291 -0
- package/dist/tools/voice.d.ts.map +1 -0
- package/dist/tools/voice.js +734 -0
- package/dist/tools/voice.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Registry Domain Tools
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Tools for project initialization and registry management.
|
|
5
|
+
// ============================================================================
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { toolSuccess, toolError, requireFields } from '../shared/index.js';
|
|
9
|
+
import { listProjects, registerProject, unregisterProject, addProjectAlias, resolveProject, getRegistryFilePath, } from '../../projectRegistry.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// ============================================================================
|
|
13
|
+
const DECIBEL_STRUCTURE = [
|
|
14
|
+
'architect/adrs',
|
|
15
|
+
'architect/decisions',
|
|
16
|
+
'architect/policies',
|
|
17
|
+
'architect/roadmap',
|
|
18
|
+
'designer/decisions',
|
|
19
|
+
'designer/crits',
|
|
20
|
+
'sentinel/issues',
|
|
21
|
+
'sentinel/epics',
|
|
22
|
+
'sentinel/tests',
|
|
23
|
+
'dojo/experiments',
|
|
24
|
+
'dojo/proposals',
|
|
25
|
+
'dojo/wishes',
|
|
26
|
+
'oracle/learnings',
|
|
27
|
+
'context/facts',
|
|
28
|
+
'context/events',
|
|
29
|
+
'friction',
|
|
30
|
+
'learnings',
|
|
31
|
+
'provenance/events',
|
|
32
|
+
];
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// Helper Functions
|
|
35
|
+
// ============================================================================
|
|
36
|
+
function hasDecibelFolder(projectPath) {
|
|
37
|
+
const decibelPath = path.join(projectPath, '.decibel');
|
|
38
|
+
return fs.existsSync(decibelPath) && fs.statSync(decibelPath).isDirectory();
|
|
39
|
+
}
|
|
40
|
+
// ============================================================================
|
|
41
|
+
// Tools
|
|
42
|
+
// ============================================================================
|
|
43
|
+
export const projectInitTool = {
|
|
44
|
+
definition: {
|
|
45
|
+
name: 'project_init',
|
|
46
|
+
description: `Initialize a new Decibel project. Creates the .decibel/ folder structure and registers in the project registry.
|
|
47
|
+
|
|
48
|
+
Use this when:
|
|
49
|
+
- Starting a new project that will use Decibel tools
|
|
50
|
+
- You get a PROJECT_NOT_FOUND error and need to set up the project
|
|
51
|
+
- Converting an existing repo to use Decibel
|
|
52
|
+
|
|
53
|
+
This creates: architect/, designer/, sentinel/, dojo/, oracle/, context/, friction/, learnings/, provenance/ folders.`,
|
|
54
|
+
inputSchema: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
properties: {
|
|
57
|
+
path: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Absolute path to the project root directory',
|
|
60
|
+
},
|
|
61
|
+
id: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
description: 'Project ID (defaults to directory name)',
|
|
64
|
+
},
|
|
65
|
+
name: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
description: 'Human-readable project name',
|
|
68
|
+
},
|
|
69
|
+
description: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
description: 'Brief project description',
|
|
72
|
+
},
|
|
73
|
+
aliases: {
|
|
74
|
+
type: 'array',
|
|
75
|
+
items: { type: 'string' },
|
|
76
|
+
description: 'Shortcut names for this project (e.g., ["tools", "tools-ios"])',
|
|
77
|
+
},
|
|
78
|
+
force: {
|
|
79
|
+
type: 'boolean',
|
|
80
|
+
description: 'Overwrite existing .decibel folder if present',
|
|
81
|
+
},
|
|
82
|
+
cursor: {
|
|
83
|
+
type: 'boolean',
|
|
84
|
+
description: 'Generate .cursor/mcp.json for Cursor MCP integration',
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
required: ['path'],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
handler: async (args) => {
|
|
91
|
+
try {
|
|
92
|
+
requireFields(args, 'path');
|
|
93
|
+
// Validate path exists
|
|
94
|
+
if (!fs.existsSync(args.path)) {
|
|
95
|
+
return toolError(`Path does not exist: ${args.path}`, 'Create the directory first or check the path.');
|
|
96
|
+
}
|
|
97
|
+
const decibelPath = path.join(args.path, '.decibel');
|
|
98
|
+
// Check for existing .decibel folder
|
|
99
|
+
if (fs.existsSync(decibelPath) && !args.force) {
|
|
100
|
+
return toolError(`Project already has a .decibel folder at ${args.path}`, 'Use force=true to reinitialize, or just use registry_add to register it.');
|
|
101
|
+
}
|
|
102
|
+
// Derive project ID from path if not provided
|
|
103
|
+
const projectId = args.id || path.basename(args.path);
|
|
104
|
+
// Create folder structure
|
|
105
|
+
const createdDirs = [];
|
|
106
|
+
for (const dir of DECIBEL_STRUCTURE) {
|
|
107
|
+
const fullPath = path.join(decibelPath, dir);
|
|
108
|
+
if (!fs.existsSync(fullPath)) {
|
|
109
|
+
fs.mkdirSync(fullPath, { recursive: true });
|
|
110
|
+
createdDirs.push(dir);
|
|
111
|
+
// Add .gitkeep to leaf directories
|
|
112
|
+
const gitkeepPath = path.join(fullPath, '.gitkeep');
|
|
113
|
+
if (!fs.existsSync(gitkeepPath)) {
|
|
114
|
+
fs.writeFileSync(gitkeepPath, '# This file ensures the directory is tracked by git\n');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Create manifest.yaml
|
|
119
|
+
const manifestPath = path.join(decibelPath, 'manifest.yaml');
|
|
120
|
+
if (!fs.existsSync(manifestPath) || args.force) {
|
|
121
|
+
const timestamp = new Date().toISOString();
|
|
122
|
+
const manifestContent = `# Decibel Project Manifest
|
|
123
|
+
# Generated: ${timestamp}
|
|
124
|
+
|
|
125
|
+
id: ${projectId}
|
|
126
|
+
name: ${args.name || projectId}
|
|
127
|
+
version: 1.0.0
|
|
128
|
+
${args.description ? `description: ${args.description}` : ''}
|
|
129
|
+
|
|
130
|
+
created_at: ${timestamp}
|
|
131
|
+
decibel_version: "1.0"
|
|
132
|
+
`;
|
|
133
|
+
fs.writeFileSync(manifestPath, manifestContent);
|
|
134
|
+
}
|
|
135
|
+
// Generate .cursor/mcp.json if requested
|
|
136
|
+
let cursorConfigCreated = false;
|
|
137
|
+
if (args.cursor) {
|
|
138
|
+
const cursorDir = path.join(args.path, '.cursor');
|
|
139
|
+
const cursorConfigPath = path.join(cursorDir, 'mcp.json');
|
|
140
|
+
if (!fs.existsSync(cursorDir)) {
|
|
141
|
+
fs.mkdirSync(cursorDir, { recursive: true });
|
|
142
|
+
}
|
|
143
|
+
const cursorConfig = {
|
|
144
|
+
mcpServers: {
|
|
145
|
+
'decibel-tools': {
|
|
146
|
+
command: 'npx',
|
|
147
|
+
args: ['-y', 'decibel-tools-mcp'],
|
|
148
|
+
env: {},
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
fs.writeFileSync(cursorConfigPath, JSON.stringify(cursorConfig, null, 2) + '\n');
|
|
153
|
+
cursorConfigCreated = true;
|
|
154
|
+
}
|
|
155
|
+
// Register in project registry
|
|
156
|
+
try {
|
|
157
|
+
registerProject({
|
|
158
|
+
id: projectId,
|
|
159
|
+
name: args.name || projectId,
|
|
160
|
+
path: path.resolve(args.path),
|
|
161
|
+
aliases: args.aliases,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
catch (regErr) {
|
|
165
|
+
// If already registered, that's fine
|
|
166
|
+
const errMsg = regErr instanceof Error ? regErr.message : String(regErr);
|
|
167
|
+
if (!errMsg.includes('already') && !errMsg.includes('Update')) {
|
|
168
|
+
throw regErr;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const nextSteps = [
|
|
172
|
+
`Project is ready! Use projectId="${projectId}" in tool calls.`,
|
|
173
|
+
'Available tools: sentinel_log_epic, sentinel_createIssue, designer_record_design_decision, architect_createAdr, dojo_add_wish, friction_log, learnings_append',
|
|
174
|
+
];
|
|
175
|
+
if (cursorConfigCreated) {
|
|
176
|
+
nextSteps.push('Cursor config created at .cursor/mcp.json - restart Cursor to activate');
|
|
177
|
+
}
|
|
178
|
+
return toolSuccess({
|
|
179
|
+
success: true,
|
|
180
|
+
message: `Project "${projectId}" initialized and registered`,
|
|
181
|
+
project: {
|
|
182
|
+
id: projectId,
|
|
183
|
+
name: args.name || projectId,
|
|
184
|
+
path: path.resolve(args.path),
|
|
185
|
+
aliases: args.aliases || [],
|
|
186
|
+
},
|
|
187
|
+
structure: {
|
|
188
|
+
root: decibelPath,
|
|
189
|
+
created: createdDirs.length,
|
|
190
|
+
folders: DECIBEL_STRUCTURE,
|
|
191
|
+
},
|
|
192
|
+
cursor: cursorConfigCreated ? {
|
|
193
|
+
config_path: path.join(args.path, '.cursor', 'mcp.json'),
|
|
194
|
+
server_name: 'decibel-tools',
|
|
195
|
+
} : undefined,
|
|
196
|
+
next_steps: nextSteps,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
export const projectStatusTool = {
|
|
205
|
+
definition: {
|
|
206
|
+
name: 'project_status',
|
|
207
|
+
description: 'Check the status of a project - whether it exists, is registered, and what tools are available.',
|
|
208
|
+
inputSchema: {
|
|
209
|
+
type: 'object',
|
|
210
|
+
properties: {
|
|
211
|
+
projectId: {
|
|
212
|
+
type: 'string',
|
|
213
|
+
description: 'Project ID to check (lists all if omitted)',
|
|
214
|
+
},
|
|
215
|
+
path: {
|
|
216
|
+
type: 'string',
|
|
217
|
+
description: 'Path to check (alternative to projectId)',
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
handler: async (args) => {
|
|
223
|
+
try {
|
|
224
|
+
const projects = listProjects();
|
|
225
|
+
// If checking a specific path
|
|
226
|
+
if (args.path) {
|
|
227
|
+
const hasDecibel = hasDecibelFolder(args.path);
|
|
228
|
+
const dirName = path.basename(args.path);
|
|
229
|
+
const isRegistered = projects.some(p => p.path === path.resolve(args.path));
|
|
230
|
+
return toolSuccess({
|
|
231
|
+
path: args.path,
|
|
232
|
+
hasDecibelFolder: hasDecibel,
|
|
233
|
+
isRegistered,
|
|
234
|
+
status: hasDecibel && isRegistered ? 'ready' :
|
|
235
|
+
hasDecibel ? 'needs_registration' :
|
|
236
|
+
'needs_initialization',
|
|
237
|
+
action: hasDecibel && isRegistered ? 'Project is ready to use' :
|
|
238
|
+
hasDecibel ? `Run: registry_add with id="${dirName}" and path="${args.path}"` :
|
|
239
|
+
`Run: project_init with path="${args.path}"`,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
// If checking a specific project ID
|
|
243
|
+
if (args.projectId) {
|
|
244
|
+
const project = projects.find(p => p.id === args.projectId || p.aliases?.includes(args.projectId));
|
|
245
|
+
if (!project) {
|
|
246
|
+
return toolSuccess({
|
|
247
|
+
projectId: args.projectId,
|
|
248
|
+
found: false,
|
|
249
|
+
registered: projects.map(p => ({ id: p.id, aliases: p.aliases })),
|
|
250
|
+
hint: 'Use project_init to create a new project, or registry_add if .decibel exists.',
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
const hasDecibel = hasDecibelFolder(project.path);
|
|
254
|
+
return toolSuccess({
|
|
255
|
+
projectId: project.id,
|
|
256
|
+
found: true,
|
|
257
|
+
name: project.name,
|
|
258
|
+
path: project.path,
|
|
259
|
+
aliases: project.aliases,
|
|
260
|
+
hasDecibelFolder: hasDecibel,
|
|
261
|
+
status: hasDecibel ? 'ready' : 'missing_decibel_folder',
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
// List all projects
|
|
265
|
+
const projectStatuses = projects.map(p => ({
|
|
266
|
+
id: p.id,
|
|
267
|
+
name: p.name,
|
|
268
|
+
path: p.path,
|
|
269
|
+
aliases: p.aliases,
|
|
270
|
+
hasDecibelFolder: hasDecibelFolder(p.path),
|
|
271
|
+
}));
|
|
272
|
+
return toolSuccess({
|
|
273
|
+
totalProjects: projects.length,
|
|
274
|
+
projects: projectStatuses,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
catch (err) {
|
|
278
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
export const registryListTool = {
|
|
283
|
+
definition: {
|
|
284
|
+
name: 'registry_list',
|
|
285
|
+
description: 'List all registered projects in the Decibel registry. Shows project IDs, paths, and aliases.',
|
|
286
|
+
inputSchema: {
|
|
287
|
+
type: 'object',
|
|
288
|
+
properties: {},
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
handler: async () => {
|
|
292
|
+
const projects = listProjects();
|
|
293
|
+
const registryPath = getRegistryFilePath();
|
|
294
|
+
if (projects.length === 0) {
|
|
295
|
+
return toolSuccess({
|
|
296
|
+
registryPath,
|
|
297
|
+
projects: [],
|
|
298
|
+
message: 'No projects registered. Use registry_add to register a project.',
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
return toolSuccess({
|
|
302
|
+
registryPath,
|
|
303
|
+
projectCount: projects.length,
|
|
304
|
+
projects: projects.map(p => ({
|
|
305
|
+
id: p.id,
|
|
306
|
+
name: p.name,
|
|
307
|
+
path: p.path,
|
|
308
|
+
aliases: p.aliases || [],
|
|
309
|
+
})),
|
|
310
|
+
});
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
export const registryAddTool = {
|
|
314
|
+
definition: {
|
|
315
|
+
name: 'registry_add',
|
|
316
|
+
description: 'Register a project in the Decibel registry. The project path must contain a .decibel folder.',
|
|
317
|
+
inputSchema: {
|
|
318
|
+
type: 'object',
|
|
319
|
+
properties: {
|
|
320
|
+
id: {
|
|
321
|
+
type: 'string',
|
|
322
|
+
description: 'Unique project ID (typically the directory name)',
|
|
323
|
+
},
|
|
324
|
+
path: {
|
|
325
|
+
type: 'string',
|
|
326
|
+
description: 'Absolute path to the project root (must contain .decibel/)',
|
|
327
|
+
},
|
|
328
|
+
name: {
|
|
329
|
+
type: 'string',
|
|
330
|
+
description: 'Human-readable project name',
|
|
331
|
+
},
|
|
332
|
+
aliases: {
|
|
333
|
+
type: 'array',
|
|
334
|
+
items: { type: 'string' },
|
|
335
|
+
description: 'Alternative names/shortcuts for this project',
|
|
336
|
+
},
|
|
337
|
+
},
|
|
338
|
+
required: ['id', 'path'],
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
handler: async (args) => {
|
|
342
|
+
try {
|
|
343
|
+
requireFields(args, 'id', 'path');
|
|
344
|
+
registerProject({ id: args.id, path: args.path, name: args.name, aliases: args.aliases });
|
|
345
|
+
return toolSuccess({
|
|
346
|
+
success: true,
|
|
347
|
+
message: `Project "${args.id}" registered successfully`,
|
|
348
|
+
project: { id: args.id, path: args.path, name: args.name, aliases: args.aliases },
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
catch (err) {
|
|
352
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
};
|
|
356
|
+
export const registryRemoveTool = {
|
|
357
|
+
definition: {
|
|
358
|
+
name: 'registry_remove',
|
|
359
|
+
description: 'Remove a project from the Decibel registry. Does not delete project files.',
|
|
360
|
+
inputSchema: {
|
|
361
|
+
type: 'object',
|
|
362
|
+
properties: {
|
|
363
|
+
id: {
|
|
364
|
+
type: 'string',
|
|
365
|
+
description: 'Project ID to remove',
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
required: ['id'],
|
|
369
|
+
},
|
|
370
|
+
},
|
|
371
|
+
handler: async (args) => {
|
|
372
|
+
try {
|
|
373
|
+
requireFields(args, 'id');
|
|
374
|
+
const removed = unregisterProject(args.id);
|
|
375
|
+
return toolSuccess({
|
|
376
|
+
success: removed,
|
|
377
|
+
message: removed
|
|
378
|
+
? `Project "${args.id}" removed from registry`
|
|
379
|
+
: `Project "${args.id}" not found in registry`,
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
catch (err) {
|
|
383
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
};
|
|
387
|
+
export const registryAliasTool = {
|
|
388
|
+
definition: {
|
|
389
|
+
name: 'registry_alias',
|
|
390
|
+
description: 'Add an alias (shortcut name) to an existing project in the registry.',
|
|
391
|
+
inputSchema: {
|
|
392
|
+
type: 'object',
|
|
393
|
+
properties: {
|
|
394
|
+
id: {
|
|
395
|
+
type: 'string',
|
|
396
|
+
description: 'Project ID to add alias to',
|
|
397
|
+
},
|
|
398
|
+
alias: {
|
|
399
|
+
type: 'string',
|
|
400
|
+
description: 'Alias to add (e.g., "senken" as alias for "senken-trading-agent")',
|
|
401
|
+
},
|
|
402
|
+
},
|
|
403
|
+
required: ['id', 'alias'],
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
handler: async (args) => {
|
|
407
|
+
try {
|
|
408
|
+
requireFields(args, 'id', 'alias');
|
|
409
|
+
addProjectAlias(args.id, args.alias);
|
|
410
|
+
return toolSuccess({
|
|
411
|
+
success: true,
|
|
412
|
+
message: `Alias "${args.alias}" added to project "${args.id}"`,
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
catch (err) {
|
|
416
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
};
|
|
420
|
+
export const registryResolveTool = {
|
|
421
|
+
definition: {
|
|
422
|
+
name: 'registry_resolve',
|
|
423
|
+
description: 'Test resolution of a project ID/alias. Shows which project would be resolved and how.',
|
|
424
|
+
inputSchema: {
|
|
425
|
+
type: 'object',
|
|
426
|
+
properties: {
|
|
427
|
+
projectId: {
|
|
428
|
+
type: 'string',
|
|
429
|
+
description: 'Project ID, alias, or path to resolve',
|
|
430
|
+
},
|
|
431
|
+
},
|
|
432
|
+
required: ['projectId'],
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
handler: async (args) => {
|
|
436
|
+
try {
|
|
437
|
+
requireFields(args, 'projectId');
|
|
438
|
+
const entry = resolveProject(args.projectId);
|
|
439
|
+
return toolSuccess({
|
|
440
|
+
success: true,
|
|
441
|
+
input: args.projectId,
|
|
442
|
+
resolved: {
|
|
443
|
+
id: entry.id,
|
|
444
|
+
name: entry.name,
|
|
445
|
+
path: entry.path,
|
|
446
|
+
aliases: entry.aliases,
|
|
447
|
+
},
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
catch (err) {
|
|
451
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
};
|
|
455
|
+
// ============================================================================
|
|
456
|
+
// Domain Export
|
|
457
|
+
// ============================================================================
|
|
458
|
+
export const registryTools = [
|
|
459
|
+
projectInitTool,
|
|
460
|
+
projectStatusTool,
|
|
461
|
+
registryListTool,
|
|
462
|
+
registryAddTool,
|
|
463
|
+
registryRemoveTool,
|
|
464
|
+
registryAliasTool,
|
|
465
|
+
registryResolveTool,
|
|
466
|
+
];
|
|
467
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiP7D"}
|