@polka-codes/cli 0.10.23 → 0.10.24
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/index.js +1 -1
- package/package.json +3 -3
- 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
package/dist/api.js
DELETED
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Polka Codes Scripting API
|
|
3
|
-
*
|
|
4
|
-
* This module provides a high-level TypeScript API for programmatic access to
|
|
5
|
-
* polka-codes workflows. All functions support both interactive and non-interactive modes.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { commit, code, review } from '@polka-codes/cli'
|
|
10
|
-
*
|
|
11
|
-
* // Non-interactive scripting
|
|
12
|
-
* await commit({ all: true, context: 'Fix login bug', interactive: false })
|
|
13
|
-
*
|
|
14
|
-
* // Interactive use (default)
|
|
15
|
-
* await code({ task: 'Add user authentication' })
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
import { createLogger } from './logger';
|
|
19
|
-
import { runWorkflow } from './runWorkflow';
|
|
20
|
-
import { codeWorkflow, commitWorkflow, fixWorkflow, planWorkflow, prWorkflow, reviewWorkflow, taskWorkflow, } from './workflows';
|
|
21
|
-
/**
|
|
22
|
-
* Creates a commit with an AI-generated message
|
|
23
|
-
*
|
|
24
|
-
* @param options - Commit options
|
|
25
|
-
* @returns The generated commit message, or undefined if cancelled
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* // Commit all changes with context
|
|
30
|
-
* const message = await commit({
|
|
31
|
-
* all: true,
|
|
32
|
-
* context: 'Fix authentication bug'
|
|
33
|
-
* })
|
|
34
|
-
*
|
|
35
|
-
* // Non-interactive commit
|
|
36
|
-
* await commit({ all: true, interactive: false })
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export async function commit(options = {}) {
|
|
40
|
-
const { all, files, context: messageContext, interactive, onUsage, ...context } = options;
|
|
41
|
-
// Create logger from options
|
|
42
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
43
|
-
const logger = createLogger({ verbose });
|
|
44
|
-
// Build workflow input
|
|
45
|
-
const workflowInput = {
|
|
46
|
-
...(all && { all: true }),
|
|
47
|
-
...(files && { files }),
|
|
48
|
-
...(messageContext && { context: messageContext }),
|
|
49
|
-
interactive: interactive !== false,
|
|
50
|
-
};
|
|
51
|
-
// Execute workflow
|
|
52
|
-
const result = await runWorkflow(commitWorkflow, workflowInput, {
|
|
53
|
-
commandName: 'commit',
|
|
54
|
-
context,
|
|
55
|
-
logger,
|
|
56
|
-
interactive: interactive !== false,
|
|
57
|
-
onUsageMeterCreated: onUsage,
|
|
58
|
-
});
|
|
59
|
-
// Handle both string and void returns
|
|
60
|
-
return result ?? undefined;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Creates a GitHub pull request with AI-generated title and description
|
|
64
|
-
*
|
|
65
|
-
* @param options - PR creation options
|
|
66
|
-
* @returns The PR URL and details, or undefined if cancelled
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```typescript
|
|
70
|
-
* // Create PR with context
|
|
71
|
-
* const pr = await createPr({
|
|
72
|
-
* context: 'Implements user authentication flow'
|
|
73
|
-
* })
|
|
74
|
-
*
|
|
75
|
-
* // Non-interactive PR creation
|
|
76
|
-
* await createPr({ interactive: false })
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
export async function createPr(options = {}) {
|
|
80
|
-
const { context: prContext, interactive, onUsage, ...context } = options;
|
|
81
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
82
|
-
const logger = createLogger({ verbose });
|
|
83
|
-
const workflowInput = {
|
|
84
|
-
...(prContext && { context: prContext }),
|
|
85
|
-
};
|
|
86
|
-
return runWorkflow(prWorkflow, workflowInput, {
|
|
87
|
-
commandName: 'pr',
|
|
88
|
-
context,
|
|
89
|
-
logger,
|
|
90
|
-
interactive: interactive !== false,
|
|
91
|
-
onUsageMeterCreated: onUsage,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Plans and implements a feature or task using AI agents
|
|
96
|
-
*
|
|
97
|
-
* @param options - Code generation options
|
|
98
|
-
* @returns Implementation result with summaries
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* ```typescript
|
|
102
|
-
* // Implement a feature
|
|
103
|
-
* const result = await code({
|
|
104
|
-
* task: 'Add OAuth2 login with Google'
|
|
105
|
-
* })
|
|
106
|
-
*
|
|
107
|
-
* // With custom files
|
|
108
|
-
* await code({
|
|
109
|
-
* task: 'Implement this design',
|
|
110
|
-
* files: [{ type: 'image', mediaType: 'image/png', image: 'base64...' }]
|
|
111
|
-
* })
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
export async function code(options) {
|
|
115
|
-
const { task, files, mode, additionalInstructions, interactive, onUsage, ...context } = options;
|
|
116
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
117
|
-
const logger = createLogger({ verbose });
|
|
118
|
-
const workflowInput = {
|
|
119
|
-
task,
|
|
120
|
-
files,
|
|
121
|
-
mode,
|
|
122
|
-
additionalInstructions,
|
|
123
|
-
};
|
|
124
|
-
return runWorkflow(codeWorkflow, workflowInput, {
|
|
125
|
-
commandName: 'code',
|
|
126
|
-
context,
|
|
127
|
-
logger,
|
|
128
|
-
interactive: interactive !== false,
|
|
129
|
-
onUsageMeterCreated: onUsage,
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Reviews code changes (PR or local)
|
|
134
|
-
*
|
|
135
|
-
* @param options - Review options
|
|
136
|
-
* @returns Review result with overview and specific feedback
|
|
137
|
-
*
|
|
138
|
-
* @example
|
|
139
|
-
* ```typescript
|
|
140
|
-
* // Review local changes
|
|
141
|
-
* const review = await reviewCode({})
|
|
142
|
-
*
|
|
143
|
-
* // Review specific PR
|
|
144
|
-
* const review = await reviewCode({ pr: 123 })
|
|
145
|
-
* ```
|
|
146
|
-
*/
|
|
147
|
-
export async function reviewCode(options = {}) {
|
|
148
|
-
const { pr, range, files, context: reviewContext, interactive, onUsage, ...context } = options;
|
|
149
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
150
|
-
const logger = createLogger({ verbose });
|
|
151
|
-
const workflowInput = {
|
|
152
|
-
pr,
|
|
153
|
-
range,
|
|
154
|
-
files,
|
|
155
|
-
context: reviewContext,
|
|
156
|
-
};
|
|
157
|
-
return runWorkflow(reviewWorkflow, workflowInput, {
|
|
158
|
-
commandName: 'review',
|
|
159
|
-
context,
|
|
160
|
-
logger,
|
|
161
|
-
interactive: interactive !== false,
|
|
162
|
-
onUsageMeterCreated: onUsage,
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Fixes issues by running a command and letting AI fix errors
|
|
167
|
-
*
|
|
168
|
-
* @param options - Fix options
|
|
169
|
-
* @returns Fix result with summaries
|
|
170
|
-
*
|
|
171
|
-
* @example
|
|
172
|
-
* ```typescript
|
|
173
|
-
* // Fix test failures
|
|
174
|
-
* const result = await fix({
|
|
175
|
-
* command: 'npm test',
|
|
176
|
-
* task: 'Fix failing unit tests'
|
|
177
|
-
* })
|
|
178
|
-
*
|
|
179
|
-
* // Use default check/test scripts from config
|
|
180
|
-
* await fix({})
|
|
181
|
-
* ```
|
|
182
|
-
*/
|
|
183
|
-
export async function fix(options = {}) {
|
|
184
|
-
const { command, task, prompt, interactive, onUsage, ...context } = options;
|
|
185
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
186
|
-
const logger = createLogger({ verbose });
|
|
187
|
-
const workflowInput = {
|
|
188
|
-
command,
|
|
189
|
-
task,
|
|
190
|
-
prompt,
|
|
191
|
-
};
|
|
192
|
-
return runWorkflow(fixWorkflow, workflowInput, {
|
|
193
|
-
commandName: 'fix',
|
|
194
|
-
context,
|
|
195
|
-
logger,
|
|
196
|
-
interactive: interactive !== false,
|
|
197
|
-
onUsageMeterCreated: onUsage,
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Performs a generic task using an AI agent
|
|
202
|
-
*
|
|
203
|
-
* @param options - Task options
|
|
204
|
-
* @returns Task completion result (ExitReason with agent output)
|
|
205
|
-
*
|
|
206
|
-
* @example
|
|
207
|
-
* ```typescript
|
|
208
|
-
* // Run a simple task
|
|
209
|
-
* const result = await task({
|
|
210
|
-
* task: 'Refactor the auth module'
|
|
211
|
-
* })
|
|
212
|
-
*
|
|
213
|
-
* // Non-interactive mode with JSON output
|
|
214
|
-
* const result = await task({
|
|
215
|
-
* task: 'Update dependencies',
|
|
216
|
-
* jsonMode: true,
|
|
217
|
-
* interactive: false
|
|
218
|
-
* })
|
|
219
|
-
* ```
|
|
220
|
-
*/
|
|
221
|
-
export async function task(options) {
|
|
222
|
-
const { task: taskInput, jsonMode, readonly, systemPrompt, interactive, onUsage, ...context } = options;
|
|
223
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
224
|
-
const logger = createLogger({ verbose });
|
|
225
|
-
const workflowInput = {
|
|
226
|
-
task: taskInput,
|
|
227
|
-
jsonMode,
|
|
228
|
-
readonly,
|
|
229
|
-
systemPrompt,
|
|
230
|
-
};
|
|
231
|
-
return runWorkflow(taskWorkflow, workflowInput, {
|
|
232
|
-
commandName: 'task',
|
|
233
|
-
context,
|
|
234
|
-
logger,
|
|
235
|
-
interactive: interactive !== false,
|
|
236
|
-
onUsageMeterCreated: onUsage,
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Creates or updates an implementation plan
|
|
241
|
-
*
|
|
242
|
-
* @param options - Planning options
|
|
243
|
-
* @returns The generated plan and related files
|
|
244
|
-
*
|
|
245
|
-
* @example
|
|
246
|
-
* ```typescript
|
|
247
|
-
* // Create a new plan
|
|
248
|
-
* const plan = await plan({
|
|
249
|
-
* task: 'Design and implement user dashboard'
|
|
250
|
-
* })
|
|
251
|
-
*
|
|
252
|
-
* // Update existing plan
|
|
253
|
-
* await plan({
|
|
254
|
-
* task: 'Add dark mode',
|
|
255
|
-
* fileContent: existingPlan,
|
|
256
|
-
* planFile: '.plans/dashboard.md'
|
|
257
|
-
* })
|
|
258
|
-
* ```
|
|
259
|
-
*/
|
|
260
|
-
export async function plan(options = {}) {
|
|
261
|
-
const { task, fileContent, planFile, files, mode, interactive, onUsage, ...context } = options;
|
|
262
|
-
const verbose = context.silent ? -1 : (context.verbose ?? 0);
|
|
263
|
-
const logger = createLogger({ verbose });
|
|
264
|
-
const workflowInput = {
|
|
265
|
-
task,
|
|
266
|
-
fileContent,
|
|
267
|
-
filePath: planFile,
|
|
268
|
-
files,
|
|
269
|
-
mode,
|
|
270
|
-
};
|
|
271
|
-
return runWorkflow(planWorkflow, workflowInput, {
|
|
272
|
-
commandName: 'plan',
|
|
273
|
-
context,
|
|
274
|
-
logger,
|
|
275
|
-
interactive: interactive !== false,
|
|
276
|
-
onUsageMeterCreated: onUsage,
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/builtin-commands.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// generated by polka.codes
|
|
2
|
-
/**
|
|
3
|
-
* List of built-in command names that cannot be used for custom scripts or skills.
|
|
4
|
-
* This list is centralized to prevent drift across the codebase.
|
|
5
|
-
*/
|
|
6
|
-
export const BUILT_IN_COMMANDS = [
|
|
7
|
-
'code',
|
|
8
|
-
'commit',
|
|
9
|
-
'pr',
|
|
10
|
-
'review',
|
|
11
|
-
'fix',
|
|
12
|
-
'plan',
|
|
13
|
-
'task',
|
|
14
|
-
'workflow',
|
|
15
|
-
'run',
|
|
16
|
-
'init',
|
|
17
|
-
'meta',
|
|
18
|
-
'skills',
|
|
19
|
-
];
|
|
20
|
-
//# sourceMappingURL=builtin-commands.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-commands.js","sourceRoot":"","sources":["../src/builtin-commands.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,UAAU;IACV,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;CACA,CAAA"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// generated by polka.codes
|
|
2
|
-
import { parseJsonFromMarkdown } from '@polka-codes/core';
|
|
3
|
-
import { generateText } from 'ai';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
const prompt = `
|
|
6
|
-
You are a command output summarizer. Analyze the provided command output, which is prefixed with line numbers and the stream name (stdout/stderr). Your task is to identify the most important lines, such as errors, failures, or key results.
|
|
7
|
-
|
|
8
|
-
The input is structured as follows:
|
|
9
|
-
[line_number]: [stream]: [content]
|
|
10
|
-
|
|
11
|
-
Your output must be a JSON object containing the line number ranges of the most important lines for each stream. The JSON object should be enclosed in a markdown code block.
|
|
12
|
-
|
|
13
|
-
The JSON schema is as follows:
|
|
14
|
-
{
|
|
15
|
-
"stdout": [[start_line, end_line], ...],
|
|
16
|
-
"stderr": [[start_line, end_line], ...]
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
- Only include lines that are important for understanding the outcome of the command.
|
|
20
|
-
- Group consecutive lines into a single range.
|
|
21
|
-
|
|
22
|
-
Example Output:
|
|
23
|
-
\`\`\`json
|
|
24
|
-
{
|
|
25
|
-
"stdout": [[1, 3], [5, 7], [9, 11]],
|
|
26
|
-
"stderr": [[1, 2], [4, 5]]
|
|
27
|
-
}
|
|
28
|
-
`;
|
|
29
|
-
const schema = z.object({
|
|
30
|
-
stdout: z.array(z.array(z.number()).length(2)).default([]),
|
|
31
|
-
stderr: z.array(z.array(z.number()).length(2)).default([]),
|
|
32
|
-
});
|
|
33
|
-
export const summarizeOutput = async (model, stdout, stderr) => {
|
|
34
|
-
const lines = [];
|
|
35
|
-
let input = '';
|
|
36
|
-
let lineNumber = 1;
|
|
37
|
-
for (const line of stdout.split('\n')) {
|
|
38
|
-
lines.push(line);
|
|
39
|
-
input += `[${lineNumber}]: stdout: ${line}\n`;
|
|
40
|
-
lineNumber++;
|
|
41
|
-
}
|
|
42
|
-
for (const line of stderr.split('\n')) {
|
|
43
|
-
lines.push(line);
|
|
44
|
-
input += `[${lineNumber}]: stderr: ${line}\n`;
|
|
45
|
-
lineNumber++;
|
|
46
|
-
}
|
|
47
|
-
let lastError;
|
|
48
|
-
let respText = '';
|
|
49
|
-
let currentPrompt = input;
|
|
50
|
-
for (let i = 0; i < 3; i++) {
|
|
51
|
-
const resp = await generateText({
|
|
52
|
-
model,
|
|
53
|
-
system: prompt,
|
|
54
|
-
prompt: currentPrompt,
|
|
55
|
-
});
|
|
56
|
-
respText = resp.text;
|
|
57
|
-
try {
|
|
58
|
-
const parsed = parseJsonFromMarkdown(respText);
|
|
59
|
-
const { stdout: stdoutRanges, stderr: stderrRanges } = schema.parse(parsed || {});
|
|
60
|
-
let summarizedStdout = '';
|
|
61
|
-
for (const range of stdoutRanges) {
|
|
62
|
-
const [start, end] = range;
|
|
63
|
-
for (let i = start; i <= end; i++) {
|
|
64
|
-
summarizedStdout += `${lines[i - 1]}\n`;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
let summarizedStderr = '';
|
|
68
|
-
for (const range of stderrRanges) {
|
|
69
|
-
const [start, end] = range;
|
|
70
|
-
for (let i = start; i <= end; i++) {
|
|
71
|
-
summarizedStderr += `${lines[i - 1]}\n`;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (!summarizedStdout && !summarizedStderr) {
|
|
75
|
-
throw new Error('You must output at least one line of stdout or stderr');
|
|
76
|
-
}
|
|
77
|
-
let result = '';
|
|
78
|
-
if (summarizedStdout) {
|
|
79
|
-
result += `STDOUT:\n${summarizedStdout}`;
|
|
80
|
-
}
|
|
81
|
-
if (summarizedStderr) {
|
|
82
|
-
if (result) {
|
|
83
|
-
result += '\n\n';
|
|
84
|
-
}
|
|
85
|
-
result += `STDERR:\n${summarizedStderr}`;
|
|
86
|
-
}
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
lastError = error instanceof Error ? error : new Error(String(error));
|
|
91
|
-
currentPrompt = `${input}\n\nYour previous output was invalid: ${lastError.message}. You MUST output a valid JSON object inside a markdown code block. Please correct it.`;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
throw new Error('Unable to summarize output');
|
|
95
|
-
};
|
|
96
|
-
//# sourceMappingURL=commandSummarizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commandSummarizer.js","sourceRoot":"","sources":["../src/commandSummarizer.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAsB,MAAM,IAAI,CAAA;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBd,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,KAAoB,EAAE,MAAc,EAAE,MAAc,EAAmB,EAAE;IAC7G,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,KAAK,IAAI,IAAI,UAAU,cAAc,IAAI,IAAI,CAAA;QAC7C,UAAU,EAAE,CAAA;IACd,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,KAAK,IAAI,IAAI,UAAU,cAAc,IAAI,IAAI,CAAA;QAC7C,UAAU,EAAE,CAAA;IACd,CAAC;IAED,IAAI,SAA4B,CAAA;IAChC,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,IAAI,aAAa,GAAG,KAAK,CAAA;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC;YAC9B,KAAK;YACL,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,aAAa;SACtB,CAAC,CAAA;QACF,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAEpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC9C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;YAEjF,IAAI,gBAAgB,GAAG,EAAE,CAAA;YACzB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;gBAC1B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,gBAAgB,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;gBACzC,CAAC;YACH,CAAC;YAED,IAAI,gBAAgB,GAAG,EAAE,CAAA;YACzB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;gBAC1B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,gBAAgB,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;gBACzC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;YAC1E,CAAC;YAED,IAAI,MAAM,GAAG,EAAE,CAAA;YACf,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,IAAI,YAAY,gBAAgB,EAAE,CAAA;YAC1C,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,MAAM,CAAA;gBAClB,CAAC;gBACD,MAAM,IAAI,YAAY,gBAAgB,EAAE,CAAA;YAC1C,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACrE,aAAa,GAAG,GAAG,KAAK,yCAAyC,SAAS,CAAC,OAAO,wFAAwF,CAAA;QAC5K,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC/C,CAAC,CAAA"}
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
// generated by polka.codes
|
|
2
|
-
import { afterEach, beforeEach, describe, expect, it } from 'bun:test';
|
|
3
|
-
import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { loadConfig } from '@polka-codes/cli-shared';
|
|
6
|
-
describe('Command Detection Integration Tests', () => {
|
|
7
|
-
const testProjectDir = join(process.cwd(), 'test-command-detection');
|
|
8
|
-
const configPath = join(testProjectDir, '.polkacodes.yml');
|
|
9
|
-
const scriptsDir = join(testProjectDir, '.polka-scripts');
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
// Create test project directory
|
|
12
|
-
mkdirSync(testProjectDir, { recursive: true });
|
|
13
|
-
mkdirSync(scriptsDir, { recursive: true });
|
|
14
|
-
});
|
|
15
|
-
afterEach(() => {
|
|
16
|
-
// Cleanup test project directory
|
|
17
|
-
try {
|
|
18
|
-
rmSync(testProjectDir, { recursive: true, force: true });
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// Directory doesn't exist
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
describe('Config loading with scripts', () => {
|
|
25
|
-
it('should load config with string script', async () => {
|
|
26
|
-
const configContent = `
|
|
27
|
-
scripts:
|
|
28
|
-
test: "bun test"
|
|
29
|
-
build: "bun run build"
|
|
30
|
-
`;
|
|
31
|
-
writeFileSync(configPath, configContent);
|
|
32
|
-
const config = await loadConfig([], testProjectDir);
|
|
33
|
-
expect(config).toBeDefined();
|
|
34
|
-
expect(config?.scripts).toBeDefined();
|
|
35
|
-
expect(config?.scripts?.test).toBe('bun test');
|
|
36
|
-
expect(config?.scripts?.build).toBe('bun run build');
|
|
37
|
-
});
|
|
38
|
-
it('should load config with command object script', async () => {
|
|
39
|
-
const configContent = `
|
|
40
|
-
scripts:
|
|
41
|
-
deploy:
|
|
42
|
-
command: "bun run deploy"
|
|
43
|
-
description: Deploy to production
|
|
44
|
-
`;
|
|
45
|
-
writeFileSync(configPath, configContent);
|
|
46
|
-
const config = await loadConfig([], testProjectDir);
|
|
47
|
-
expect(config).toBeDefined();
|
|
48
|
-
expect(config?.scripts).toBeDefined();
|
|
49
|
-
const deployScript = config?.scripts?.deploy;
|
|
50
|
-
expect(deployScript).toBeDefined();
|
|
51
|
-
if (typeof deployScript === 'object' && 'command' in deployScript) {
|
|
52
|
-
expect(deployScript.command).toBe('bun run deploy');
|
|
53
|
-
expect(deployScript.description).toBe('Deploy to production');
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
expect(true).toBe(false); // Should be a command object
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
it('should load config with TypeScript script', async () => {
|
|
60
|
-
writeFileSync(join(scriptsDir, 'deploy.ts'), `
|
|
61
|
-
export async function main(args: string[]) {
|
|
62
|
-
return { deployed: true }
|
|
63
|
-
}
|
|
64
|
-
`);
|
|
65
|
-
const configContent = `
|
|
66
|
-
scripts:
|
|
67
|
-
deploy:
|
|
68
|
-
script: .polka-scripts/deploy.ts
|
|
69
|
-
description: Deploy to production
|
|
70
|
-
permissions:
|
|
71
|
-
network: true
|
|
72
|
-
`;
|
|
73
|
-
writeFileSync(configPath, configContent);
|
|
74
|
-
const config = await loadConfig([], testProjectDir);
|
|
75
|
-
expect(config).toBeDefined();
|
|
76
|
-
expect(config?.scripts).toBeDefined();
|
|
77
|
-
const deployScript = config?.scripts?.deploy;
|
|
78
|
-
expect(deployScript).toBeDefined();
|
|
79
|
-
if (typeof deployScript === 'object' && 'script' in deployScript) {
|
|
80
|
-
expect(deployScript.script).toBe('.polka-scripts/deploy.ts');
|
|
81
|
-
expect(deployScript.permissions?.network).toBe(true);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
expect(true).toBe(false); // Should be a script object
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
it('should load config with workflow script', async () => {
|
|
88
|
-
const configContent = `
|
|
89
|
-
scripts:
|
|
90
|
-
workflow-test:
|
|
91
|
-
workflow: .polka-scripts/test.yml
|
|
92
|
-
description: Test workflow
|
|
93
|
-
`;
|
|
94
|
-
writeFileSync(configPath, configContent);
|
|
95
|
-
const config = await loadConfig([], testProjectDir);
|
|
96
|
-
expect(config).toBeDefined();
|
|
97
|
-
expect(config?.scripts).toBeDefined();
|
|
98
|
-
const workflowScript = config?.scripts?.['workflow-test'];
|
|
99
|
-
expect(workflowScript).toBeDefined();
|
|
100
|
-
if (typeof workflowScript === 'object' && 'workflow' in workflowScript) {
|
|
101
|
-
expect(workflowScript.workflow).toBe('.polka-scripts/test.yml');
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
expect(true).toBe(false); // Should be a workflow object
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
describe('Script validation', () => {
|
|
109
|
-
it('should validate all script types in config', async () => {
|
|
110
|
-
writeFileSync(join(scriptsDir, 'deploy.ts'), `
|
|
111
|
-
export async function main(args: string[]) {
|
|
112
|
-
return { deployed: true }
|
|
113
|
-
}
|
|
114
|
-
`);
|
|
115
|
-
const configContent = `
|
|
116
|
-
scripts:
|
|
117
|
-
test: "bun test"
|
|
118
|
-
build:
|
|
119
|
-
command: "bun run build"
|
|
120
|
-
description: Build project
|
|
121
|
-
deploy:
|
|
122
|
-
script: .polka-scripts/deploy.ts
|
|
123
|
-
permissions:
|
|
124
|
-
fs: write
|
|
125
|
-
workflow-test:
|
|
126
|
-
workflow: .polka-scripts/test.yml
|
|
127
|
-
`;
|
|
128
|
-
writeFileSync(configPath, configContent);
|
|
129
|
-
const config = await loadConfig([], testProjectDir);
|
|
130
|
-
expect(config).toBeDefined();
|
|
131
|
-
expect(config?.scripts).toBeDefined();
|
|
132
|
-
// Verify all scripts are present
|
|
133
|
-
expect(config?.scripts?.test).toBeDefined();
|
|
134
|
-
expect(config?.scripts?.build).toBeDefined();
|
|
135
|
-
expect(config?.scripts?.deploy).toBeDefined();
|
|
136
|
-
expect(config?.scripts?.['workflow-test']).toBeDefined();
|
|
137
|
-
});
|
|
138
|
-
it('should preserve script metadata', async () => {
|
|
139
|
-
const configContent = `
|
|
140
|
-
scripts:
|
|
141
|
-
complex-script:
|
|
142
|
-
script: .polka-scripts/complex.ts
|
|
143
|
-
description: A complex script with many options
|
|
144
|
-
permissions:
|
|
145
|
-
fs: write
|
|
146
|
-
network: true
|
|
147
|
-
subprocess: true
|
|
148
|
-
timeout: 60000
|
|
149
|
-
memory: 512
|
|
150
|
-
`;
|
|
151
|
-
writeFileSync(configPath, configContent);
|
|
152
|
-
const config = await loadConfig([], testProjectDir);
|
|
153
|
-
expect(config).toBeDefined();
|
|
154
|
-
const script = config?.scripts?.['complex-script'];
|
|
155
|
-
expect(script).toBeDefined();
|
|
156
|
-
if (typeof script === 'object' && 'script' in script) {
|
|
157
|
-
expect(script.description).toBe('A complex script with many options');
|
|
158
|
-
expect(script.permissions?.fs).toBe('write');
|
|
159
|
-
expect(script.permissions?.network).toBe(true);
|
|
160
|
-
expect(script.permissions?.subprocess).toBe(true);
|
|
161
|
-
expect(script.timeout).toBe(60000);
|
|
162
|
-
expect(script.memory).toBe(512);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
expect(true).toBe(false); // Should be a script object
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
describe('Script listing', () => {
|
|
170
|
-
it('should list all available scripts from config', async () => {
|
|
171
|
-
const configContent = `
|
|
172
|
-
scripts:
|
|
173
|
-
test: "bun test"
|
|
174
|
-
lint: "bun run lint"
|
|
175
|
-
format: "bun run format"
|
|
176
|
-
deploy:
|
|
177
|
-
script: .polka-scripts/deploy.ts
|
|
178
|
-
description: Deploy to production
|
|
179
|
-
`;
|
|
180
|
-
writeFileSync(configPath, configContent);
|
|
181
|
-
const config = await loadConfig([], testProjectDir);
|
|
182
|
-
expect(config).toBeDefined();
|
|
183
|
-
expect(config?.scripts).toBeDefined();
|
|
184
|
-
const scriptNames = Object.keys(config?.scripts || {});
|
|
185
|
-
expect(scriptNames).toContain('test');
|
|
186
|
-
expect(scriptNames).toContain('lint');
|
|
187
|
-
expect(scriptNames).toContain('format');
|
|
188
|
-
expect(scriptNames).toContain('deploy');
|
|
189
|
-
});
|
|
190
|
-
it('should handle empty scripts section', async () => {
|
|
191
|
-
const configContent = `
|
|
192
|
-
scripts: {}
|
|
193
|
-
`;
|
|
194
|
-
writeFileSync(configPath, configContent);
|
|
195
|
-
const config = await loadConfig([], testProjectDir);
|
|
196
|
-
expect(config).toBeDefined();
|
|
197
|
-
expect(config?.scripts).toBeDefined();
|
|
198
|
-
expect(Object.keys(config?.scripts || {})).toHaveLength(0);
|
|
199
|
-
});
|
|
200
|
-
it('should handle missing scripts section', async () => {
|
|
201
|
-
const configContent = `
|
|
202
|
-
defaultProvider: openai
|
|
203
|
-
defaultModel: gpt-4
|
|
204
|
-
`;
|
|
205
|
-
writeFileSync(configPath, configContent);
|
|
206
|
-
const config = await loadConfig([], testProjectDir);
|
|
207
|
-
expect(config).toBeDefined();
|
|
208
|
-
// scripts may be undefined
|
|
209
|
-
expect(config?.scripts).toBeUndefined();
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
describe('Config updates', () => {
|
|
213
|
-
it('should preserve existing config when adding scripts', () => {
|
|
214
|
-
const initialConfig = `# Project configuration
|
|
215
|
-
defaultProvider: openai
|
|
216
|
-
defaultModel: gpt-4
|
|
217
|
-
|
|
218
|
-
maxMessageCount: 50
|
|
219
|
-
`;
|
|
220
|
-
writeFileSync(configPath, initialConfig);
|
|
221
|
-
// Read current config
|
|
222
|
-
const currentContent = readFileSync(configPath, 'utf-8');
|
|
223
|
-
// Append scripts section
|
|
224
|
-
const updatedContent = `${currentContent}
|
|
225
|
-
scripts:
|
|
226
|
-
new-script: "echo new"
|
|
227
|
-
`;
|
|
228
|
-
writeFileSync(configPath, updatedContent);
|
|
229
|
-
const newContent = readFileSync(configPath, 'utf-8');
|
|
230
|
-
expect(newContent).toContain('defaultProvider: openai');
|
|
231
|
-
expect(newContent).toContain('defaultModel: gpt-4');
|
|
232
|
-
expect(newContent).toContain('maxMessageCount:');
|
|
233
|
-
expect(newContent).toContain('scripts:');
|
|
234
|
-
expect(newContent).toContain('new-script');
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
//# sourceMappingURL=command-detection.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-detection.integration.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/command-detection.integration.test.ts"],"names":[],"mappings":"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"}
|