@polka-codes/cli 0.10.23 → 0.10.25
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/bin.cjs +143854 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9201 -9195
- package/dist/program.d.ts +3 -0
- package/dist/program.d.ts.map +1 -0
- package/package.json +6 -7
- package/cli.mjs +0 -2
- package/dist/ApiProviderConfig.js +0 -57
- package/dist/ApiProviderConfig.js.map +0 -1
- package/dist/ApiProviderConfig.test.js +0 -278
- package/dist/ApiProviderConfig.test.js.map +0 -1
- package/dist/agent/advanced-discovery.js +0 -604
- package/dist/agent/advanced-discovery.js.map +0 -1
- package/dist/agent/config.js +0 -139
- package/dist/agent/config.js.map +0 -1
- package/dist/agent/config.test.js +0 -140
- package/dist/agent/config.test.js.map +0 -1
- package/dist/agent/constants.js +0 -172
- package/dist/agent/constants.js.map +0 -1
- package/dist/agent/constants.test.js +0 -132
- package/dist/agent/constants.test.js.map +0 -1
- package/dist/agent/debug-logger.js +0 -281
- package/dist/agent/debug-logger.js.map +0 -1
- package/dist/agent/debug-logger.test.js +0 -294
- package/dist/agent/debug-logger.test.js.map +0 -1
- package/dist/agent/error-handling.js +0 -114
- package/dist/agent/error-handling.js.map +0 -1
- package/dist/agent/error-handling.test.js +0 -191
- package/dist/agent/error-handling.test.js.map +0 -1
- package/dist/agent/errors.js +0 -301
- package/dist/agent/errors.js.map +0 -1
- package/dist/agent/executor.js +0 -206
- package/dist/agent/executor.js.map +0 -1
- package/dist/agent/executor.test.js +0 -228
- package/dist/agent/executor.test.js.map +0 -1
- package/dist/agent/goal-decomposer.js +0 -281
- package/dist/agent/goal-decomposer.js.map +0 -1
- package/dist/agent/goal-decomposer.test.js +0 -225
- package/dist/agent/goal-decomposer.test.js.map +0 -1
- package/dist/agent/health-monitor.js +0 -89
- package/dist/agent/health-monitor.js.map +0 -1
- package/dist/agent/improvement-loop.js +0 -177
- package/dist/agent/improvement-loop.js.map +0 -1
- package/dist/agent/index.js +0 -38
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/metrics.js +0 -158
- package/dist/agent/metrics.js.map +0 -1
- package/dist/agent/metrics.test.js +0 -311
- package/dist/agent/metrics.test.js.map +0 -1
- package/dist/agent/orchestrator.js +0 -438
- package/dist/agent/orchestrator.js.map +0 -1
- package/dist/agent/planner.js +0 -199
- package/dist/agent/planner.js.map +0 -1
- package/dist/agent/planner.test.js +0 -135
- package/dist/agent/planner.test.js.map +0 -1
- package/dist/agent/progress.js +0 -298
- package/dist/agent/progress.js.map +0 -1
- package/dist/agent/progress.test.js +0 -255
- package/dist/agent/progress.test.js.map +0 -1
- package/dist/agent/resource-monitor.js +0 -114
- package/dist/agent/resource-monitor.js.map +0 -1
- package/dist/agent/safety/approval.js +0 -178
- package/dist/agent/safety/approval.js.map +0 -1
- package/dist/agent/safety/approval.test.js +0 -142
- package/dist/agent/safety/approval.test.js.map +0 -1
- package/dist/agent/safety/checks.js +0 -152
- package/dist/agent/safety/checks.js.map +0 -1
- package/dist/agent/safety/checks.test.js +0 -89
- package/dist/agent/safety/checks.test.js.map +0 -1
- package/dist/agent/safety/interrupt.js +0 -92
- package/dist/agent/safety/interrupt.js.map +0 -1
- package/dist/agent/safety/interrupt.test.js +0 -53
- package/dist/agent/safety/interrupt.test.js.map +0 -1
- package/dist/agent/session.js +0 -117
- package/dist/agent/session.js.map +0 -1
- package/dist/agent/session.test.js +0 -213
- package/dist/agent/session.test.js.map +0 -1
- package/dist/agent/state-manager.js +0 -287
- package/dist/agent/state-manager.js.map +0 -1
- package/dist/agent/task-discovery.js +0 -433
- package/dist/agent/task-discovery.js.map +0 -1
- package/dist/agent/task-discovery.test.js +0 -40
- package/dist/agent/task-discovery.test.js.map +0 -1
- package/dist/agent/task-history.js +0 -128
- package/dist/agent/task-history.js.map +0 -1
- package/dist/agent/task-prioritizer.js +0 -286
- package/dist/agent/task-prioritizer.js.map +0 -1
- package/dist/agent/test-fixtures.js +0 -112
- package/dist/agent/test-fixtures.js.map +0 -1
- package/dist/agent/types.js +0 -15
- package/dist/agent/types.js.map +0 -1
- package/dist/agent/workflow-adapter.js +0 -219
- package/dist/agent/workflow-adapter.js.map +0 -1
- package/dist/agent/workflow-adapter.test.js +0 -11
- package/dist/agent/workflow-adapter.test.js.map +0 -1
- package/dist/agent/working-dir-discovery.js +0 -54
- package/dist/agent/working-dir-discovery.js.map +0 -1
- package/dist/agent/working-space.js +0 -484
- package/dist/agent/working-space.js.map +0 -1
- package/dist/agent/working-space.test.js +0 -436
- package/dist/agent/working-space.test.js.map +0 -1
- package/dist/api.js +0 -279
- package/dist/api.js.map +0 -1
- package/dist/builtin-commands.js +0 -20
- package/dist/builtin-commands.js.map +0 -1
- package/dist/commandSummarizer.js +0 -96
- package/dist/commandSummarizer.js.map +0 -1
- package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
- package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
- package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
- package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
- package/dist/commands/agent.js +0 -218
- package/dist/commands/agent.js.map +0 -1
- package/dist/commands/code.js +0 -102
- package/dist/commands/code.js.map +0 -1
- package/dist/commands/command.constants.js +0 -13
- package/dist/commands/command.constants.js.map +0 -1
- package/dist/commands/commit.js +0 -17
- package/dist/commands/commit.js.map +0 -1
- package/dist/commands/fix.js +0 -17
- package/dist/commands/fix.js.map +0 -1
- package/dist/commands/init.js +0 -501
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp-server.js +0 -122
- package/dist/commands/mcp-server.js.map +0 -1
- package/dist/commands/memory.js +0 -410
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/memory.test.js +0 -453
- package/dist/commands/memory.test.js.map +0 -1
- package/dist/commands/meta.js +0 -142
- package/dist/commands/meta.js.map +0 -1
- package/dist/commands/plan.js +0 -39
- package/dist/commands/plan.js.map +0 -1
- package/dist/commands/pr.js +0 -14
- package/dist/commands/pr.js.map +0 -1
- package/dist/commands/review-json.test.js +0 -33
- package/dist/commands/review-json.test.js.map +0 -1
- package/dist/commands/review.js +0 -137
- package/dist/commands/review.js.map +0 -1
- package/dist/commands/review.usage.test.js +0 -41
- package/dist/commands/review.usage.test.js.map +0 -1
- package/dist/commands/run.js +0 -107
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/skills.js +0 -175
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/task.js +0 -34
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/workflow.js +0 -117
- package/dist/commands/workflow.js.map +0 -1
- package/dist/configPrompt.js +0 -39
- package/dist/configPrompt.js.map +0 -1
- package/dist/env.js +0 -22
- package/dist/env.js.map +0 -1
- package/dist/errors.js +0 -132
- package/dist/errors.js.map +0 -1
- package/dist/errors.test.js +0 -21
- package/dist/errors.test.js.map +0 -1
- package/dist/file-attachments.js +0 -77
- package/dist/file-attachments.js.map +0 -1
- package/dist/file-attachments.test.js +0 -214
- package/dist/file-attachments.test.js.map +0 -1
- package/dist/getModel.js +0 -229
- package/dist/getModel.js.map +0 -1
- package/dist/getModel.test.js +0 -67
- package/dist/getModel.test.js.map +0 -1
- package/dist/getProviderOptions.js +0 -58
- package/dist/getProviderOptions.js.map +0 -1
- package/dist/git-operations.js +0 -363
- package/dist/git-operations.js.map +0 -1
- package/dist/git-operations.test.js +0 -81
- package/dist/git-operations.test.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.js +0 -41
- package/dist/logger.js.map +0 -1
- package/dist/mcp/client.js +0 -11
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/error-scenarios.test.js +0 -206
- package/dist/mcp/error-scenarios.test.js.map +0 -1
- package/dist/mcp/errors.js +0 -63
- package/dist/mcp/errors.js.map +0 -1
- package/dist/mcp/index.js +0 -9
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/manager.js +0 -231
- package/dist/mcp/manager.js.map +0 -1
- package/dist/mcp/manager.test.js +0 -40
- package/dist/mcp/manager.test.js.map +0 -1
- package/dist/mcp/sdk-client.js +0 -166
- package/dist/mcp/sdk-client.js.map +0 -1
- package/dist/mcp/shared-types.js +0 -3
- package/dist/mcp/shared-types.js.map +0 -1
- package/dist/mcp/tools-integration.test.js +0 -198
- package/dist/mcp/tools-integration.test.js.map +0 -1
- package/dist/mcp/tools.js +0 -60
- package/dist/mcp/tools.js.map +0 -1
- package/dist/mcp/transport.js +0 -257
- package/dist/mcp/transport.js.map +0 -1
- package/dist/mcp/types.js +0 -3
- package/dist/mcp/types.js.map +0 -1
- package/dist/mcp-server/index.js +0 -5
- package/dist/mcp-server/index.js.map +0 -1
- package/dist/mcp-server/plan-formatting.test.js +0 -74
- package/dist/mcp-server/plan-formatting.test.js.map +0 -1
- package/dist/mcp-server/sdk-server.js +0 -102
- package/dist/mcp-server/sdk-server.js.map +0 -1
- package/dist/mcp-server/sdk-server.test.js +0 -363
- package/dist/mcp-server/sdk-server.test.js.map +0 -1
- package/dist/mcp-server/tools.js +0 -785
- package/dist/mcp-server/tools.js.map +0 -1
- package/dist/mcp-server/types.js +0 -3
- package/dist/mcp-server/types.js.map +0 -1
- package/dist/options.js +0 -85
- package/dist/options.js.map +0 -1
- package/dist/options.test.js +0 -177
- package/dist/options.test.js.map +0 -1
- package/dist/prices.js +0 -61
- package/dist/prices.js.map +0 -1
- package/dist/prices.test.js +0 -148
- package/dist/prices.test.js.map +0 -1
- package/dist/runWorkflow.js +0 -313
- package/dist/runWorkflow.js.map +0 -1
- package/dist/script/__tests__/execution.integration.test.js +0 -274
- package/dist/script/__tests__/execution.integration.test.js.map +0 -1
- package/dist/script/__tests__/runner.test.js +0 -176
- package/dist/script/__tests__/runner.test.js.map +0 -1
- package/dist/script/__tests__/validator.test.js +0 -180
- package/dist/script/__tests__/validator.test.js.map +0 -1
- package/dist/script/executor.js +0 -127
- package/dist/script/executor.js.map +0 -1
- package/dist/script/index.js +0 -4
- package/dist/script/index.js.map +0 -1
- package/dist/script/runner.js +0 -258
- package/dist/script/runner.js.map +0 -1
- package/dist/skillIntegration.js +0 -46
- package/dist/skillIntegration.js.map +0 -1
- package/dist/skillIntegration.test.js +0 -128
- package/dist/skillIntegration.test.js.map +0 -1
- package/dist/test/utils.js +0 -200
- package/dist/test/utils.js.map +0 -1
- package/dist/test/workflow-fixtures.js +0 -120
- package/dist/test/workflow-fixtures.js.map +0 -1
- package/dist/tool-implementations.js +0 -521
- package/dist/tool-implementations.js.map +0 -1
- package/dist/tool-implementations.skill-tools.test.js +0 -106
- package/dist/tool-implementations.skill-tools.test.js.map +0 -1
- package/dist/tools/getTodoItem.js +0 -33
- package/dist/tools/getTodoItem.js.map +0 -1
- package/dist/tools/gitDiff.js +0 -108
- package/dist/tools/gitDiff.js.map +0 -1
- package/dist/tools/index.js +0 -8
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/listMemoryTopics.js +0 -24
- package/dist/tools/listMemoryTopics.js.map +0 -1
- package/dist/tools/listTodoItems.js +0 -35
- package/dist/tools/listTodoItems.js.map +0 -1
- package/dist/tools/listTodoItems.test.js +0 -89
- package/dist/tools/listTodoItems.test.js.map +0 -1
- package/dist/tools/readMemory.js +0 -33
- package/dist/tools/readMemory.js.map +0 -1
- package/dist/tools/updateMemory.js +0 -62
- package/dist/tools/updateMemory.js.map +0 -1
- package/dist/tools/updateMemory.test.js +0 -109
- package/dist/tools/updateMemory.test.js.map +0 -1
- package/dist/tools/updateTodoItem.js +0 -31
- package/dist/tools/updateTodoItem.js.map +0 -1
- package/dist/tools/utils/diffLineNumbers.js +0 -178
- package/dist/tools/utils/diffLineNumbers.js.map +0 -1
- package/dist/utils/cacheControl.js +0 -59
- package/dist/utils/cacheControl.js.map +0 -1
- package/dist/utils/cacheControl.test.js +0 -128
- package/dist/utils/cacheControl.test.js.map +0 -1
- package/dist/utils/command.js +0 -50
- package/dist/utils/command.js.map +0 -1
- package/dist/utils/shell.js +0 -56
- package/dist/utils/shell.js.map +0 -1
- package/dist/utils/userInput.js +0 -47
- package/dist/utils/userInput.js.map +0 -1
- package/dist/workflow-tools.js +0 -21
- package/dist/workflow-tools.js.map +0 -1
- package/dist/workflows/agent-builder.js +0 -90
- package/dist/workflows/agent-builder.js.map +0 -1
- package/dist/workflows/agent-builder.test.js +0 -115
- package/dist/workflows/agent-builder.test.js.map +0 -1
- package/dist/workflows/code.workflow.js +0 -145
- package/dist/workflows/code.workflow.js.map +0 -1
- package/dist/workflows/commit.workflow.js +0 -111
- package/dist/workflows/commit.workflow.js.map +0 -1
- package/dist/workflows/commit.workflow.test.js +0 -141
- package/dist/workflows/commit.workflow.test.js.map +0 -1
- package/dist/workflows/fix.workflow.js +0 -172
- package/dist/workflows/fix.workflow.js.map +0 -1
- package/dist/workflows/fix.workflow.test.js +0 -137
- package/dist/workflows/fix.workflow.test.js.map +0 -1
- package/dist/workflows/git-file-tools.js +0 -408
- package/dist/workflows/git-file-tools.js.map +0 -1
- package/dist/workflows/index.js +0 -12
- package/dist/workflows/index.js.map +0 -1
- package/dist/workflows/init-interactive.workflow.js +0 -198
- package/dist/workflows/init-interactive.workflow.js.map +0 -1
- package/dist/workflows/init.workflow.js +0 -41
- package/dist/workflows/init.workflow.js.map +0 -1
- package/dist/workflows/meta.workflow.js +0 -107
- package/dist/workflows/meta.workflow.js.map +0 -1
- package/dist/workflows/plan.workflow.js +0 -275
- package/dist/workflows/plan.workflow.js.map +0 -1
- package/dist/workflows/plan.workflow.test.js +0 -419
- package/dist/workflows/plan.workflow.test.js.map +0 -1
- package/dist/workflows/pr.workflow.js +0 -54
- package/dist/workflows/pr.workflow.js.map +0 -1
- package/dist/workflows/pr.workflow.test.js +0 -98
- package/dist/workflows/pr.workflow.test.js.map +0 -1
- package/dist/workflows/prompts/coder.js +0 -85
- package/dist/workflows/prompts/coder.js.map +0 -1
- package/dist/workflows/prompts/commit.js +0 -16
- package/dist/workflows/prompts/commit.js.map +0 -1
- package/dist/workflows/prompts/fix.js +0 -44
- package/dist/workflows/prompts/fix.js.map +0 -1
- package/dist/workflows/prompts/index.js +0 -10
- package/dist/workflows/prompts/index.js.map +0 -1
- package/dist/workflows/prompts/init.js +0 -48
- package/dist/workflows/prompts/init.js.map +0 -1
- package/dist/workflows/prompts/meta.js +0 -17
- package/dist/workflows/prompts/meta.js.map +0 -1
- package/dist/workflows/prompts/plan.js +0 -212
- package/dist/workflows/prompts/plan.js.map +0 -1
- package/dist/workflows/prompts/pr.js +0 -15
- package/dist/workflows/prompts/pr.js.map +0 -1
- package/dist/workflows/prompts/review.js +0 -145
- package/dist/workflows/prompts/review.js.map +0 -1
- package/dist/workflows/prompts/shared.js +0 -93
- package/dist/workflows/prompts/shared.js.map +0 -1
- package/dist/workflows/review.workflow.js +0 -357
- package/dist/workflows/review.workflow.js.map +0 -1
- package/dist/workflows/task.workflow.js +0 -47
- package/dist/workflows/task.workflow.js.map +0 -1
- package/dist/workflows/testing/helper.js +0 -41
- package/dist/workflows/testing/helper.js.map +0 -1
- package/dist/workflows/workflow.utils.js +0 -351
- package/dist/workflows/workflow.utils.js.map +0 -1
- package/dist/workflows/workflow.utils.test.js +0 -45
- package/dist/workflows/workflow.utils.test.js.map +0 -1
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
// generated by polka.codes
|
|
2
|
-
import { Command } from 'commander';
|
|
3
|
-
import { createLogger } from '../logger';
|
|
4
|
-
import { createPolkaCodesMcpServer, startStdioServer } from '../mcp-server/sdk-server';
|
|
5
|
-
import { createPolkaCodesServerTools } from '../mcp-server/tools';
|
|
6
|
-
export const mcpServerCommand = new Command('mcp-server')
|
|
7
|
-
.description('Start polka-codes as an MCP server')
|
|
8
|
-
.option('-c --config <paths>', 'Path to config file(s)', (value, prev) => prev.concat(value), [])
|
|
9
|
-
.option('--api-provider <provider>', 'API provider')
|
|
10
|
-
.option('--model <model>', 'Model ID')
|
|
11
|
-
.option('--api-key <key>', 'API key')
|
|
12
|
-
.option('-v, --verbose', 'Enable verbose logging', false)
|
|
13
|
-
.action(async (options) => {
|
|
14
|
-
// Configure logger to write to stderr (stdout is reserved for MCP protocol)
|
|
15
|
-
const logger = createLogger({
|
|
16
|
-
verbose: options.verbose ? 1 : 0,
|
|
17
|
-
stream: process.stderr,
|
|
18
|
-
});
|
|
19
|
-
// Print usage information to stderr via logger
|
|
20
|
-
logger.info('');
|
|
21
|
-
logger.info('╔════════════════════════════════════════════════╗');
|
|
22
|
-
logger.info('║ Polka Codes MCP Server ║');
|
|
23
|
-
logger.info('╚════════════════════════════════════════════════╝');
|
|
24
|
-
logger.info('');
|
|
25
|
-
// Print server configuration if provided
|
|
26
|
-
if (options.apiProvider || options.model) {
|
|
27
|
-
logger.info('Server Configuration:');
|
|
28
|
-
if (options.apiProvider) {
|
|
29
|
-
logger.info(` Provider: ${options.apiProvider}`);
|
|
30
|
-
}
|
|
31
|
-
if (options.model) {
|
|
32
|
-
logger.info(` Model: ${options.model}`);
|
|
33
|
-
}
|
|
34
|
-
logger.info('');
|
|
35
|
-
}
|
|
36
|
-
logger.info('Available Tools:');
|
|
37
|
-
// Create tools (pass logger for workflow execution)
|
|
38
|
-
const tools = createPolkaCodesServerTools(logger);
|
|
39
|
-
// Create and start server using official SDK
|
|
40
|
-
// Pass default provider configuration from CLI options
|
|
41
|
-
const defaultProvider = {
|
|
42
|
-
provider: options.apiProvider,
|
|
43
|
-
model: options.model,
|
|
44
|
-
apiKey: options.apiKey,
|
|
45
|
-
};
|
|
46
|
-
const server = createPolkaCodesMcpServer(tools, logger, defaultProvider);
|
|
47
|
-
// Print available tools to stderr via logger
|
|
48
|
-
for (const tool of tools) {
|
|
49
|
-
logger.info(` • ${tool.name}`);
|
|
50
|
-
logger.info(` ${tool.description}`);
|
|
51
|
-
logger.info('');
|
|
52
|
-
}
|
|
53
|
-
logger.info('Configuration:');
|
|
54
|
-
logger.info('');
|
|
55
|
-
logger.info(' To use this MCP server with Claude Code, add to your config:');
|
|
56
|
-
logger.info('');
|
|
57
|
-
logger.info(' claude mcp add polka polka mcp-server');
|
|
58
|
-
logger.info('');
|
|
59
|
-
logger.info(' Or manually add to ~/.claude/config.json:');
|
|
60
|
-
logger.info(' {');
|
|
61
|
-
logger.info(' "mcpServers": {');
|
|
62
|
-
logger.info(' "polka": {');
|
|
63
|
-
logger.info(' "command": "polka",');
|
|
64
|
-
logger.info(' "args": ["mcp-server"]');
|
|
65
|
-
if (options.apiProvider || options.model) {
|
|
66
|
-
logger.info(' "args": ["mcp-server"');
|
|
67
|
-
if (options.apiProvider) {
|
|
68
|
-
logger.info(` , "--api-provider", "${options.apiProvider}"`);
|
|
69
|
-
}
|
|
70
|
-
if (options.model) {
|
|
71
|
-
logger.info(` , "--model", "${options.model}"`);
|
|
72
|
-
}
|
|
73
|
-
logger.info(' ]');
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
logger.info(' "args": ["mcp-server"]');
|
|
77
|
-
}
|
|
78
|
-
logger.info(' }');
|
|
79
|
-
logger.info(' }');
|
|
80
|
-
logger.info(' }');
|
|
81
|
-
logger.info('');
|
|
82
|
-
logger.info('Server-level Provider Options:');
|
|
83
|
-
logger.info(' --api-provider <provider> Set default AI provider');
|
|
84
|
-
logger.info(' --model <model> Set default model');
|
|
85
|
-
logger.info(' --api-key <key> Set API key');
|
|
86
|
-
logger.info('');
|
|
87
|
-
logger.info('Per-call Override Options:');
|
|
88
|
-
logger.info(' Each tool call can override the server defaults by including:');
|
|
89
|
-
logger.info(' - provider: Override provider for this call');
|
|
90
|
-
logger.info(' - model: Override model for this call');
|
|
91
|
-
logger.info(' - parameters: Override model parameters for this call');
|
|
92
|
-
logger.info('');
|
|
93
|
-
logger.info('Press Ctrl+C to stop the server');
|
|
94
|
-
logger.info('═════════════════════════════════════════════════════════════════');
|
|
95
|
-
logger.info('');
|
|
96
|
-
logger.info('Starting MCP server using official @modelcontextprotocol/sdk...');
|
|
97
|
-
// Start server
|
|
98
|
-
await startStdioServer(server, logger);
|
|
99
|
-
logger.info('MCP server is running and listening for connections...');
|
|
100
|
-
// Handle shutdown gracefully
|
|
101
|
-
const shutdown = async () => {
|
|
102
|
-
logger.info('Shutting down MCP server...');
|
|
103
|
-
// Force exit after 5 seconds if graceful shutdown takes too long
|
|
104
|
-
const timeout = setTimeout(() => {
|
|
105
|
-
logger.warn('Forcing exit after timeout');
|
|
106
|
-
process.exit(1);
|
|
107
|
-
}, 5000);
|
|
108
|
-
try {
|
|
109
|
-
await server.close();
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
logger.error('Error closing server:', error);
|
|
113
|
-
}
|
|
114
|
-
finally {
|
|
115
|
-
clearTimeout(timeout);
|
|
116
|
-
}
|
|
117
|
-
process.exit(0);
|
|
118
|
-
};
|
|
119
|
-
process.on('SIGINT', shutdown);
|
|
120
|
-
process.on('SIGTERM', shutdown);
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/commands/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/memory.js
DELETED
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
// generated by polka.codes
|
|
2
|
-
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
|
-
import { dirname, resolve } from 'node:path';
|
|
4
|
-
import { detectProjectScope, getGlobalConfigPath, loadConfigAtPath, MemoryManager, SQLiteMemoryStore, } from '@polka-codes/cli-shared';
|
|
5
|
-
import { DEFAULT_MEMORY_CONFIG, resolveHomePath } from '@polka-codes/core';
|
|
6
|
-
/**
|
|
7
|
-
* Get memory store instance
|
|
8
|
-
* @internal Exported for testing purposes
|
|
9
|
-
*/
|
|
10
|
-
export async function getMemoryStore() {
|
|
11
|
-
const globalConfigPath = getGlobalConfigPath();
|
|
12
|
-
const config = (await loadConfigAtPath(globalConfigPath));
|
|
13
|
-
const memoryConfig = config?.memory || DEFAULT_MEMORY_CONFIG;
|
|
14
|
-
if (!memoryConfig.enabled || memoryConfig.type === 'memory') {
|
|
15
|
-
console.error('Memory store is not enabled. Enable it in config with memory.enabled: true');
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
const cwd = process.cwd();
|
|
19
|
-
// Detect scope once and pass to SQLite store using shared utility
|
|
20
|
-
const scope = detectProjectScope(cwd);
|
|
21
|
-
// Create SQLite store implementation with scope
|
|
22
|
-
const sqliteStore = new SQLiteMemoryStore(memoryConfig, scope);
|
|
23
|
-
// Wrap with MemoryManager for core logic
|
|
24
|
-
return new MemoryManager(sqliteStore);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* List memory entries
|
|
28
|
-
*/
|
|
29
|
-
export async function memoryList(options) {
|
|
30
|
-
const store = await getMemoryStore();
|
|
31
|
-
try {
|
|
32
|
-
const query = {
|
|
33
|
-
scope: 'auto',
|
|
34
|
-
};
|
|
35
|
-
if (options.type)
|
|
36
|
-
query.type = options.type;
|
|
37
|
-
if (options.status)
|
|
38
|
-
query.status = options.status;
|
|
39
|
-
if (options.priority)
|
|
40
|
-
query.priority = options.priority;
|
|
41
|
-
if (options.tags)
|
|
42
|
-
query.tags = options.tags.split(',');
|
|
43
|
-
if (options.search)
|
|
44
|
-
query.search = options.search;
|
|
45
|
-
if (options.limit)
|
|
46
|
-
query.limit = options.limit;
|
|
47
|
-
if (options.offset)
|
|
48
|
-
query.offset = options.offset;
|
|
49
|
-
if (options.sortBy)
|
|
50
|
-
query.sortBy = options.sortBy;
|
|
51
|
-
if (options.sortOrder)
|
|
52
|
-
query.sortOrder = options.sortOrder;
|
|
53
|
-
const entries = await store.queryMemory(query, { operation: 'select' });
|
|
54
|
-
if (options.format === 'json') {
|
|
55
|
-
console.log(JSON.stringify(entries, null, 2));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
// Table format
|
|
59
|
-
if (!Array.isArray(entries) || entries.length === 0) {
|
|
60
|
-
console.log('No entries found.');
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
console.log('\nMemory Entries:');
|
|
64
|
-
console.log('─'.repeat(80));
|
|
65
|
-
for (const entry of entries) {
|
|
66
|
-
console.log(`\nName: ${entry.name}`);
|
|
67
|
-
console.log(`Type: ${entry.entry_type}`);
|
|
68
|
-
console.log(`Status: ${entry.status || 'N/A'}`);
|
|
69
|
-
console.log(`Priority: ${entry.priority || 'N/A'}`);
|
|
70
|
-
console.log(`Tags: ${entry.tags || 'N/A'}`);
|
|
71
|
-
console.log(`Updated: ${new Date(entry.updated_at).toLocaleString()}`);
|
|
72
|
-
console.log(`Content:\n${entry.content}`);
|
|
73
|
-
console.log('─'.repeat(80));
|
|
74
|
-
}
|
|
75
|
-
console.log(`\nTotal: ${entries.length} entries`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
finally {
|
|
79
|
-
store.close();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Read a specific memory entry
|
|
84
|
-
*/
|
|
85
|
-
export async function memoryRead(name, options) {
|
|
86
|
-
const store = await getMemoryStore();
|
|
87
|
-
try {
|
|
88
|
-
const content = await store.readMemory(name);
|
|
89
|
-
if (!content) {
|
|
90
|
-
console.error(`Memory entry "${name}" not found.`);
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
if (options.format === 'json') {
|
|
94
|
-
console.log(JSON.stringify({ name, content }, null, 2));
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
console.log(content);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
finally {
|
|
101
|
-
store.close();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Delete a memory entry
|
|
106
|
-
*/
|
|
107
|
-
export async function memoryDelete(name, options) {
|
|
108
|
-
if (!options.force) {
|
|
109
|
-
console.log(`Are you sure you want to delete memory entry "${name}"?`);
|
|
110
|
-
console.log('This action cannot be undone.');
|
|
111
|
-
console.log('Use --force to skip this confirmation.');
|
|
112
|
-
process.exit(1);
|
|
113
|
-
}
|
|
114
|
-
const store = await getMemoryStore();
|
|
115
|
-
try {
|
|
116
|
-
await store.updateMemory('remove', name, undefined);
|
|
117
|
-
console.log(`Memory entry "${name}" deleted.`);
|
|
118
|
-
}
|
|
119
|
-
finally {
|
|
120
|
-
store.close();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Rename a memory entry
|
|
125
|
-
*/
|
|
126
|
-
export async function memoryRename(oldName, newName) {
|
|
127
|
-
const store = await getMemoryStore();
|
|
128
|
-
try {
|
|
129
|
-
// Use transaction to atomically check for newName, fetch oldEntry, and perform rename
|
|
130
|
-
// This prevents race conditions where concurrent processes could modify data
|
|
131
|
-
await store.transaction(async () => {
|
|
132
|
-
// Check if old entry exists (within transaction for consistency)
|
|
133
|
-
const oldEntries = await store.queryMemory({ name: oldName }, { operation: 'select' });
|
|
134
|
-
if (!Array.isArray(oldEntries) || oldEntries.length === 0) {
|
|
135
|
-
throw new Error(`Memory entry "${oldName}" not found.`);
|
|
136
|
-
}
|
|
137
|
-
const oldEntry = oldEntries[0];
|
|
138
|
-
// Check if new name already exists (within transaction for consistency)
|
|
139
|
-
const newEntries = await store.queryMemory({ name: newName }, { operation: 'select' });
|
|
140
|
-
if (Array.isArray(newEntries) && newEntries.length > 0) {
|
|
141
|
-
throw new Error(`Memory entry "${newName}" already exists.`);
|
|
142
|
-
}
|
|
143
|
-
// Perform the rename
|
|
144
|
-
await store.batchUpdateMemory([
|
|
145
|
-
{
|
|
146
|
-
operation: 'replace',
|
|
147
|
-
name: newName,
|
|
148
|
-
content: oldEntry.content,
|
|
149
|
-
metadata: {
|
|
150
|
-
entry_type: oldEntry.entry_type,
|
|
151
|
-
status: oldEntry.status,
|
|
152
|
-
priority: oldEntry.priority,
|
|
153
|
-
tags: oldEntry.tags,
|
|
154
|
-
created_at: oldEntry.created_at,
|
|
155
|
-
updated_at: oldEntry.updated_at,
|
|
156
|
-
last_accessed: oldEntry.last_accessed,
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
{ operation: 'remove', name: oldName },
|
|
160
|
-
]);
|
|
161
|
-
});
|
|
162
|
-
console.log(`Memory entry renamed from "${oldName}" to "${newName}".`);
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
if (error instanceof Error) {
|
|
166
|
-
if (error.message.includes('already exists') || error.message.includes('not found')) {
|
|
167
|
-
console.error(error.message);
|
|
168
|
-
process.exit(1);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
throw error;
|
|
172
|
-
}
|
|
173
|
-
finally {
|
|
174
|
-
store.close();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Export memory to JSON
|
|
179
|
-
*/
|
|
180
|
-
export async function memoryExport(options) {
|
|
181
|
-
const store = await getMemoryStore();
|
|
182
|
-
try {
|
|
183
|
-
const query = {};
|
|
184
|
-
if (options.type)
|
|
185
|
-
query.type = options.type;
|
|
186
|
-
if (options.scope === 'global') {
|
|
187
|
-
query.scope = 'global';
|
|
188
|
-
}
|
|
189
|
-
else if (options.scope === 'project') {
|
|
190
|
-
query.scope = 'project';
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
query.scope = 'auto';
|
|
194
|
-
}
|
|
195
|
-
const entries = await store.queryMemory(query, { operation: 'select' });
|
|
196
|
-
if (!Array.isArray(entries)) {
|
|
197
|
-
console.error('Failed to export: query did not return entries');
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
const outputPath = options.output ? resolve(process.cwd(), options.output) : resolve(process.cwd(), `memory-export-${Date.now()}.json`);
|
|
201
|
-
// Ensure directory exists
|
|
202
|
-
await mkdir(dirname(outputPath), { recursive: true });
|
|
203
|
-
await writeFile(outputPath, JSON.stringify(entries, null, 2));
|
|
204
|
-
console.log(`Exported ${entries.length} entries to ${outputPath}`);
|
|
205
|
-
}
|
|
206
|
-
finally {
|
|
207
|
-
store.close();
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Import memory from JSON
|
|
212
|
-
*/
|
|
213
|
-
export async function memoryImport(inputFile, options) {
|
|
214
|
-
const store = await getMemoryStore();
|
|
215
|
-
try {
|
|
216
|
-
const inputPath = resolve(process.cwd(), inputFile);
|
|
217
|
-
const data = await readFile(inputPath, 'utf-8');
|
|
218
|
-
let entries;
|
|
219
|
-
try {
|
|
220
|
-
entries = JSON.parse(data);
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
console.error(`Failed to parse JSON from ${inputPath}:`, error);
|
|
224
|
-
process.exit(1);
|
|
225
|
-
}
|
|
226
|
-
if (!Array.isArray(entries)) {
|
|
227
|
-
console.error('Invalid import file format. Expected an array of memory entries.');
|
|
228
|
-
process.exit(1);
|
|
229
|
-
}
|
|
230
|
-
// Collect all valid entries first, then batch import for better performance
|
|
231
|
-
const validEntries = [];
|
|
232
|
-
const validPriorities = ['low', 'medium', 'high', 'critical'];
|
|
233
|
-
let skipped = 0;
|
|
234
|
-
// If not merging, we need to check for existing entries upfront
|
|
235
|
-
const existingNames = new Set();
|
|
236
|
-
if (!options.merge) {
|
|
237
|
-
const allEntries = await store.queryMemory({}, { operation: 'select' });
|
|
238
|
-
if (Array.isArray(allEntries)) {
|
|
239
|
-
for (const entry of allEntries) {
|
|
240
|
-
existingNames.add(entry.name);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
for (const entry of entries) {
|
|
245
|
-
try {
|
|
246
|
-
// Validate that entry is an object
|
|
247
|
-
if (typeof entry !== 'object' || entry === null) {
|
|
248
|
-
console.error('Skipping invalid entry: not an object');
|
|
249
|
-
skipped++;
|
|
250
|
-
continue;
|
|
251
|
-
}
|
|
252
|
-
const entryObj = entry;
|
|
253
|
-
// Validate required fields
|
|
254
|
-
if (!entryObj.name || typeof entryObj.name !== 'string') {
|
|
255
|
-
console.error('Skipping invalid entry: missing or invalid name');
|
|
256
|
-
skipped++;
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
const entryName = entryObj.name;
|
|
260
|
-
if (!entryObj.content || typeof entryObj.content !== 'string') {
|
|
261
|
-
console.error(`Skipping entry "${entryName}": missing or invalid content`);
|
|
262
|
-
skipped++;
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
// Check if entry already exists (when not merging)
|
|
266
|
-
if (existingNames.has(entryName)) {
|
|
267
|
-
skipped++;
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
// Validate priority if present
|
|
271
|
-
let priority = entryObj.priority;
|
|
272
|
-
if (priority && !validPriorities.includes(priority)) {
|
|
273
|
-
console.warn(`Entry "${entryName}" has invalid priority "${priority}", defaulting to null`);
|
|
274
|
-
priority = undefined;
|
|
275
|
-
}
|
|
276
|
-
// Validate and cast metadata fields
|
|
277
|
-
const entryType = entryObj.entry_type;
|
|
278
|
-
const validatedEntryType = typeof entryType === 'string' ? entryType : 'note';
|
|
279
|
-
const status = entryObj.status;
|
|
280
|
-
const validatedStatus = typeof status === 'string' ? status : undefined;
|
|
281
|
-
const tags = entryObj.tags;
|
|
282
|
-
const validatedTags = typeof tags === 'string' ? tags : undefined;
|
|
283
|
-
// Preserve timestamps if available
|
|
284
|
-
const createdAt = entryObj.created_at;
|
|
285
|
-
const validatedCreatedAt = typeof createdAt === 'number' ? createdAt : undefined;
|
|
286
|
-
const updatedAt = entryObj.updated_at;
|
|
287
|
-
const validatedUpdatedAt = typeof updatedAt === 'number' ? updatedAt : undefined;
|
|
288
|
-
const lastAccessed = entryObj.last_accessed;
|
|
289
|
-
const validatedLastAccessed = typeof lastAccessed === 'number' ? lastAccessed : undefined;
|
|
290
|
-
validEntries.push({
|
|
291
|
-
operation: 'replace',
|
|
292
|
-
name: entryName,
|
|
293
|
-
content: entryObj.content,
|
|
294
|
-
metadata: {
|
|
295
|
-
entry_type: validatedEntryType,
|
|
296
|
-
status: validatedStatus,
|
|
297
|
-
priority: priority,
|
|
298
|
-
tags: validatedTags,
|
|
299
|
-
created_at: validatedCreatedAt,
|
|
300
|
-
updated_at: validatedUpdatedAt,
|
|
301
|
-
last_accessed: validatedLastAccessed,
|
|
302
|
-
},
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
catch (error) {
|
|
306
|
-
console.error(`Failed to process entry:`, error);
|
|
307
|
-
skipped++;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
// Batch import all valid entries in a single transaction
|
|
311
|
-
if (validEntries.length > 0) {
|
|
312
|
-
await store.batchUpdateMemory(validEntries);
|
|
313
|
-
}
|
|
314
|
-
console.log(`Imported ${validEntries.length} entries, skipped ${skipped} entries.`);
|
|
315
|
-
}
|
|
316
|
-
finally {
|
|
317
|
-
store.close();
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Show memory statistics
|
|
322
|
-
*/
|
|
323
|
-
export async function memoryStatus() {
|
|
324
|
-
const store = await getMemoryStore();
|
|
325
|
-
try {
|
|
326
|
-
const stats = await store.getStats();
|
|
327
|
-
const globalConfigPath = getGlobalConfigPath();
|
|
328
|
-
const config = (await loadConfigAtPath(globalConfigPath));
|
|
329
|
-
const memoryConfig = config?.memory || { path: '~/.config/polkacodes/memory/memory.sqlite' };
|
|
330
|
-
const dbPath = resolveHomePath(memoryConfig.path || '~/.config/polkacodes/memory/memory.sqlite');
|
|
331
|
-
console.log('\nMemory Store Status:');
|
|
332
|
-
console.log('─'.repeat(80));
|
|
333
|
-
console.log(`Database: ${dbPath}`);
|
|
334
|
-
console.log(`Total entries: ${stats.totalEntries}`);
|
|
335
|
-
console.log(`Database size: ${(stats.databaseSize / 1024).toFixed(2)} KB`);
|
|
336
|
-
console.log('\nEntries by type:');
|
|
337
|
-
for (const [type, count] of Object.entries(stats.entriesByType)) {
|
|
338
|
-
console.log(` ${type}: ${count}`);
|
|
339
|
-
}
|
|
340
|
-
console.log('─'.repeat(80));
|
|
341
|
-
}
|
|
342
|
-
finally {
|
|
343
|
-
store.close();
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Register memory commands
|
|
348
|
-
*/
|
|
349
|
-
export function registerMemoryCommands(program) {
|
|
350
|
-
const memoryCmd = program.command('memory').description('Memory management commands');
|
|
351
|
-
memoryCmd
|
|
352
|
-
.command('list')
|
|
353
|
-
.description('List memory entries')
|
|
354
|
-
.option('--type <type>', 'Filter by type')
|
|
355
|
-
.option('--status <status>', 'Filter by status')
|
|
356
|
-
.option('--priority <priority>', 'Filter by priority')
|
|
357
|
-
.option('--tags <tags>', 'Filter by tags (comma-separated)')
|
|
358
|
-
.option('--search <term>', 'Search in content and name')
|
|
359
|
-
.option('--limit <number>', 'Limit results', parseInt)
|
|
360
|
-
.option('--offset <number>', 'Offset results', parseInt)
|
|
361
|
-
.option('--sort-by <field>', 'Sort by field (created, updated, accessed, name)')
|
|
362
|
-
.option('--sort-order <order>', 'Sort order (asc, desc)', 'desc')
|
|
363
|
-
.option('--format <format>', 'Output format (json, table)', 'table')
|
|
364
|
-
.action(async (options) => {
|
|
365
|
-
await memoryList(options);
|
|
366
|
-
});
|
|
367
|
-
memoryCmd
|
|
368
|
-
.command('read <name>')
|
|
369
|
-
.description('Read a specific memory entry')
|
|
370
|
-
.option('--format <format>', 'Output format (json, text)', 'text')
|
|
371
|
-
.action(async (name, options) => {
|
|
372
|
-
await memoryRead(name, options);
|
|
373
|
-
});
|
|
374
|
-
memoryCmd
|
|
375
|
-
.command('delete <name>')
|
|
376
|
-
.description('Delete a memory entry')
|
|
377
|
-
.option('--force', 'Skip confirmation')
|
|
378
|
-
.action(async (name, options) => {
|
|
379
|
-
await memoryDelete(name, options);
|
|
380
|
-
});
|
|
381
|
-
memoryCmd
|
|
382
|
-
.command('rename <oldName> <newName>')
|
|
383
|
-
.description('Rename a memory entry')
|
|
384
|
-
.action(async (oldName, newName) => {
|
|
385
|
-
await memoryRename(oldName, newName);
|
|
386
|
-
});
|
|
387
|
-
memoryCmd
|
|
388
|
-
.command('export')
|
|
389
|
-
.description('Export memory to JSON')
|
|
390
|
-
.option('--output <file>', 'Output file path')
|
|
391
|
-
.option('--type <type>', 'Filter by type')
|
|
392
|
-
.option('--scope <scope>', 'Filter by scope (global, project)')
|
|
393
|
-
.action(async (options) => {
|
|
394
|
-
await memoryExport(options);
|
|
395
|
-
});
|
|
396
|
-
memoryCmd
|
|
397
|
-
.command('import <file>')
|
|
398
|
-
.description('Import memory from JSON')
|
|
399
|
-
.option('--merge', 'Overwrite existing entries during import (default: skip existing entries)')
|
|
400
|
-
.action(async (file, options) => {
|
|
401
|
-
await memoryImport(file, options);
|
|
402
|
-
});
|
|
403
|
-
memoryCmd
|
|
404
|
-
.command('status')
|
|
405
|
-
.description('Show memory statistics')
|
|
406
|
-
.action(async () => {
|
|
407
|
-
await memoryStatus();
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
//# sourceMappingURL=memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|