takt 0.1.0 → 0.1.2
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/README.md +78 -4
- package/dist/agents/runner.d.ts +3 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +70 -14
- package/dist/agents/runner.js.map +1 -1
- package/dist/claude/client.d.ts +1 -1
- package/dist/claude/client.d.ts.map +1 -1
- package/dist/claude/client.js +4 -3
- package/dist/claude/client.js.map +1 -1
- package/dist/claude/index.d.ts +1 -1
- package/dist/claude/index.d.ts.map +1 -1
- package/dist/claude/index.js.map +1 -1
- package/dist/claude/process.d.ts +1 -1
- package/dist/claude/process.d.ts.map +1 -1
- package/dist/claude/process.js.map +1 -1
- package/dist/claude/types.d.ts +7 -0
- package/dist/claude/types.d.ts.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -4
- package/dist/cli.js.map +1 -1
- package/dist/codex/client.d.ts +26 -0
- package/dist/codex/client.d.ts.map +1 -0
- package/dist/codex/client.js +418 -0
- package/dist/codex/client.js.map +1 -0
- package/dist/codex/index.d.ts +5 -0
- package/dist/codex/index.d.ts.map +1 -0
- package/dist/codex/index.js +5 -0
- package/dist/codex/index.js.map +1 -0
- package/dist/commands/config.d.ts +33 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +110 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/workflow.js +1 -1
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workflowExecution.d.ts.map +1 -1
- package/dist/commands/workflowExecution.js +3 -1
- package/dist/commands/workflowExecution.js.map +1 -1
- package/dist/config/globalConfig.d.ts +2 -0
- package/dist/config/globalConfig.d.ts.map +1 -1
- package/dist/config/globalConfig.js +12 -0
- package/dist/config/globalConfig.js.map +1 -1
- package/dist/config/initialization.d.ts +10 -0
- package/dist/config/initialization.d.ts.map +1 -1
- package/dist/config/initialization.js +26 -4
- package/dist/config/initialization.js.map +1 -1
- package/dist/config/projectConfig.d.ts +14 -1
- package/dist/config/projectConfig.d.ts.map +1 -1
- package/dist/config/projectConfig.js +4 -0
- package/dist/config/projectConfig.js.map +1 -1
- package/dist/config/workflowLoader.d.ts.map +1 -1
- package/dist/config/workflowLoader.js +3 -0
- package/dist/config/workflowLoader.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/schemas.d.ts +54 -3
- package/dist/models/schemas.d.ts.map +1 -1
- package/dist/models/schemas.js +34 -46
- package/dist/models/schemas.js.map +1 -1
- package/dist/models/types.d.ts +12 -2
- package/dist/models/types.d.ts.map +1 -1
- package/dist/{interactive/prompt.d.ts → prompt/index.d.ts} +3 -1
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/{interactive/prompt.js → prompt/index.js} +11 -1
- package/dist/prompt/index.js.map +1 -0
- package/dist/resources/index.d.ts +9 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +21 -2
- package/dist/resources/index.js.map +1 -1
- package/dist/utils/session.d.ts +5 -0
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +19 -0
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/ui.d.ts +7 -0
- package/dist/utils/ui.d.ts.map +1 -1
- package/dist/utils/ui.js +51 -0
- package/dist/utils/ui.js.map +1 -1
- package/dist/workflow/engine.d.ts +10 -0
- package/dist/workflow/engine.d.ts.map +1 -1
- package/dist/workflow/engine.js +31 -0
- package/dist/workflow/engine.js.map +1 -1
- package/dist/workflow/instruction-builder.d.ts +3 -0
- package/dist/workflow/instruction-builder.d.ts.map +1 -1
- package/dist/workflow/instruction-builder.js +5 -0
- package/dist/workflow/instruction-builder.js.map +1 -1
- package/dist/workflow/transitions.d.ts.map +1 -1
- package/dist/workflow/transitions.js +1 -0
- package/dist/workflow/transitions.js.map +1 -1
- package/package.json +3 -1
- package/resources/global/en/agents/default/ai-reviewer.md +136 -0
- package/resources/global/en/agents/default/architect.md +81 -30
- package/resources/global/en/agents/default/coder.md +60 -44
- package/resources/global/en/agents/default/planner.md +78 -0
- package/resources/global/en/agents/default/security.md +67 -75
- package/resources/global/en/agents/default/supervisor.md +94 -86
- package/resources/global/en/agents/expert-review/cqrs-es-reviewer.md +199 -0
- package/resources/global/en/agents/expert-review/frontend-reviewer.md +260 -0
- package/resources/global/en/agents/expert-review/qa-reviewer.md +260 -0
- package/resources/global/en/agents/expert-review/security-reviewer.md +222 -0
- package/resources/global/en/agents/expert-review/supervisor.md +186 -0
- package/resources/global/en/config.yaml +8 -0
- package/resources/global/en/workflows/default.yaml +474 -21
- package/resources/global/en/workflows/expert-review.yaml +936 -0
- package/resources/global/en/workflows/magi.yaml +18 -0
- package/resources/global/en/workflows/research.yaml +18 -0
- package/resources/global/ja/agents/default/ai-reviewer.md +136 -0
- package/resources/global/ja/agents/default/architect.md +81 -30
- package/resources/global/ja/agents/default/coder.md +21 -6
- package/resources/global/ja/agents/default/planner.md +78 -0
- package/resources/global/ja/agents/default/security.md +20 -28
- package/resources/global/ja/agents/default/supervisor.md +54 -46
- package/resources/global/ja/agents/expert-review/cqrs-es-reviewer.md +199 -0
- package/resources/global/ja/agents/expert-review/frontend-reviewer.md +260 -0
- package/resources/global/ja/agents/expert-review/qa-reviewer.md +260 -0
- package/resources/global/ja/agents/expert-review/security-reviewer.md +222 -0
- package/resources/global/ja/agents/expert-review/supervisor.md +186 -0
- package/resources/global/ja/config.yaml +8 -0
- package/resources/global/ja/workflows/default.yaml +485 -32
- package/resources/global/ja/workflows/expert-review.yaml +936 -0
- package/resources/global/ja/workflows/magi.yaml +18 -0
- package/resources/global/ja/workflows/research.yaml +18 -0
- package/dist/cli/agentExecution.d.ts +0 -16
- package/dist/cli/agentExecution.d.ts.map +0 -1
- package/dist/cli/agentExecution.js +0 -40
- package/dist/cli/agentExecution.js.map +0 -1
- package/dist/cli/help.d.ts +0 -8
- package/dist/cli/help.d.ts.map +0 -1
- package/dist/cli/help.js +0 -46
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/index.d.ts +0 -8
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -8
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/taskBatch.d.ts +0 -8
- package/dist/cli/taskBatch.d.ts.map +0 -1
- package/dist/cli/taskBatch.js +0 -69
- package/dist/cli/taskBatch.js.map +0 -1
- package/dist/cli/workflowExecution.d.ts +0 -18
- package/dist/cli/workflowExecution.d.ts.map +0 -1
- package/dist/cli/workflowExecution.js +0 -112
- package/dist/cli/workflowExecution.js.map +0 -1
- package/dist/commands/agentExecution.d.ts +0 -8
- package/dist/commands/agentExecution.d.ts.map +0 -1
- package/dist/commands/agentExecution.js +0 -44
- package/dist/commands/agentExecution.js.map +0 -1
- package/dist/interactive/commands/agent.d.ts +0 -7
- package/dist/interactive/commands/agent.d.ts.map +0 -1
- package/dist/interactive/commands/agent.js +0 -65
- package/dist/interactive/commands/agent.js.map +0 -1
- package/dist/interactive/commands/basic.d.ts +0 -7
- package/dist/interactive/commands/basic.d.ts.map +0 -1
- package/dist/interactive/commands/basic.js +0 -81
- package/dist/interactive/commands/basic.js.map +0 -1
- package/dist/interactive/commands/index.d.ts +0 -12
- package/dist/interactive/commands/index.d.ts.map +0 -1
- package/dist/interactive/commands/index.js +0 -14
- package/dist/interactive/commands/index.js.map +0 -1
- package/dist/interactive/commands/registry.d.ts +0 -41
- package/dist/interactive/commands/registry.d.ts.map +0 -1
- package/dist/interactive/commands/registry.js +0 -37
- package/dist/interactive/commands/registry.js.map +0 -1
- package/dist/interactive/commands/session.d.ts +0 -7
- package/dist/interactive/commands/session.d.ts.map +0 -1
- package/dist/interactive/commands/session.js +0 -75
- package/dist/interactive/commands/session.js.map +0 -1
- package/dist/interactive/commands/task.d.ts +0 -7
- package/dist/interactive/commands/task.d.ts.map +0 -1
- package/dist/interactive/commands/task.js +0 -156
- package/dist/interactive/commands/task.js.map +0 -1
- package/dist/interactive/commands/workflow.d.ts +0 -7
- package/dist/interactive/commands/workflow.d.ts.map +0 -1
- package/dist/interactive/commands/workflow.js +0 -56
- package/dist/interactive/commands/workflow.js.map +0 -1
- package/dist/interactive/escape-tracker.d.ts +0 -37
- package/dist/interactive/escape-tracker.d.ts.map +0 -1
- package/dist/interactive/escape-tracker.js +0 -52
- package/dist/interactive/escape-tracker.js.map +0 -1
- package/dist/interactive/handlers.d.ts +0 -24
- package/dist/interactive/handlers.d.ts.map +0 -1
- package/dist/interactive/handlers.js +0 -191
- package/dist/interactive/handlers.js.map +0 -1
- package/dist/interactive/history-manager.d.ts +0 -45
- package/dist/interactive/history-manager.d.ts.map +0 -1
- package/dist/interactive/history-manager.js +0 -91
- package/dist/interactive/history-manager.js.map +0 -1
- package/dist/interactive/index.d.ts +0 -8
- package/dist/interactive/index.d.ts.map +0 -1
- package/dist/interactive/index.js +0 -8
- package/dist/interactive/index.js.map +0 -1
- package/dist/interactive/ink/components/App.d.ts +0 -16
- package/dist/interactive/ink/components/App.d.ts.map +0 -1
- package/dist/interactive/ink/components/App.js +0 -123
- package/dist/interactive/ink/components/App.js.map +0 -1
- package/dist/interactive/ink/components/AskUserQuestion.d.ts +0 -16
- package/dist/interactive/ink/components/AskUserQuestion.d.ts.map +0 -1
- package/dist/interactive/ink/components/AskUserQuestion.js +0 -139
- package/dist/interactive/ink/components/AskUserQuestion.js.map +0 -1
- package/dist/interactive/ink/components/Header.d.ts +0 -20
- package/dist/interactive/ink/components/Header.d.ts.map +0 -1
- package/dist/interactive/ink/components/Header.js +0 -7
- package/dist/interactive/ink/components/Header.js.map +0 -1
- package/dist/interactive/ink/components/HelpView.d.ts +0 -13
- package/dist/interactive/ink/components/HelpView.d.ts.map +0 -1
- package/dist/interactive/ink/components/HelpView.js +0 -45
- package/dist/interactive/ink/components/HelpView.js.map +0 -1
- package/dist/interactive/ink/components/IterationLimit.d.ts +0 -19
- package/dist/interactive/ink/components/IterationLimit.d.ts.map +0 -1
- package/dist/interactive/ink/components/IterationLimit.js +0 -59
- package/dist/interactive/ink/components/IterationLimit.js.map +0 -1
- package/dist/interactive/ink/components/ModalRouter.d.ts +0 -11
- package/dist/interactive/ink/components/ModalRouter.d.ts.map +0 -1
- package/dist/interactive/ink/components/ModalRouter.js +0 -71
- package/dist/interactive/ink/components/ModalRouter.js.map +0 -1
- package/dist/interactive/ink/components/PermissionPrompt.d.ts +0 -17
- package/dist/interactive/ink/components/PermissionPrompt.d.ts.map +0 -1
- package/dist/interactive/ink/components/PermissionPrompt.js +0 -102
- package/dist/interactive/ink/components/PermissionPrompt.js.map +0 -1
- package/dist/interactive/ink/components/PromptInput.d.ts +0 -26
- package/dist/interactive/ink/components/PromptInput.d.ts.map +0 -1
- package/dist/interactive/ink/components/PromptInput.js +0 -70
- package/dist/interactive/ink/components/PromptInput.js.map +0 -1
- package/dist/interactive/ink/components/Spinner.d.ts +0 -14
- package/dist/interactive/ink/components/Spinner.d.ts.map +0 -1
- package/dist/interactive/ink/components/Spinner.js +0 -8
- package/dist/interactive/ink/components/Spinner.js.map +0 -1
- package/dist/interactive/ink/components/StreamingOutput.d.ts +0 -25
- package/dist/interactive/ink/components/StreamingOutput.d.ts.map +0 -1
- package/dist/interactive/ink/components/StreamingOutput.js +0 -8
- package/dist/interactive/ink/components/StreamingOutput.js.map +0 -1
- package/dist/interactive/ink/components/UserInputPrompt.d.ts +0 -18
- package/dist/interactive/ink/components/UserInputPrompt.d.ts.map +0 -1
- package/dist/interactive/ink/components/UserInputPrompt.js +0 -30
- package/dist/interactive/ink/components/UserInputPrompt.js.map +0 -1
- package/dist/interactive/ink/components/WorkflowSelector.d.ts +0 -18
- package/dist/interactive/ink/components/WorkflowSelector.d.ts.map +0 -1
- package/dist/interactive/ink/components/WorkflowSelector.js +0 -65
- package/dist/interactive/ink/components/WorkflowSelector.js.map +0 -1
- package/dist/interactive/ink/constants.d.ts +0 -8
- package/dist/interactive/ink/constants.d.ts.map +0 -1
- package/dist/interactive/ink/constants.js +0 -8
- package/dist/interactive/ink/constants.js.map +0 -1
- package/dist/interactive/ink/context/AppContext.d.ts +0 -26
- package/dist/interactive/ink/context/AppContext.d.ts.map +0 -1
- package/dist/interactive/ink/context/AppContext.js +0 -30
- package/dist/interactive/ink/context/AppContext.js.map +0 -1
- package/dist/interactive/ink/context/appReducer.d.ts +0 -13
- package/dist/interactive/ink/context/appReducer.d.ts.map +0 -1
- package/dist/interactive/ink/context/appReducer.js +0 -183
- package/dist/interactive/ink/context/appReducer.js.map +0 -1
- package/dist/interactive/ink/context/types.d.ts +0 -144
- package/dist/interactive/ink/context/types.d.ts.map +0 -1
- package/dist/interactive/ink/context/types.js +0 -5
- package/dist/interactive/ink/context/types.js.map +0 -1
- package/dist/interactive/ink/hooks/keyDetection.d.ts +0 -116
- package/dist/interactive/ink/hooks/keyDetection.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/keyDetection.js +0 -183
- package/dist/interactive/ink/hooks/keyDetection.js.map +0 -1
- package/dist/interactive/ink/hooks/multilineInputLogic.d.ts +0 -50
- package/dist/interactive/ink/hooks/multilineInputLogic.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/multilineInputLogic.js +0 -150
- package/dist/interactive/ink/hooks/multilineInputLogic.js.map +0 -1
- package/dist/interactive/ink/hooks/useCommands.d.ts +0 -20
- package/dist/interactive/ink/hooks/useCommands.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useCommands.js +0 -129
- package/dist/interactive/ink/hooks/useCommands.js.map +0 -1
- package/dist/interactive/ink/hooks/useHistory.d.ts +0 -28
- package/dist/interactive/ink/hooks/useHistory.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useHistory.js +0 -59
- package/dist/interactive/ink/hooks/useHistory.js.map +0 -1
- package/dist/interactive/ink/hooks/useMultilineInput.d.ts +0 -49
- package/dist/interactive/ink/hooks/useMultilineInput.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useMultilineInput.js +0 -106
- package/dist/interactive/ink/hooks/useMultilineInput.js.map +0 -1
- package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts +0 -16
- package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/usePermissionHandlers.js +0 -172
- package/dist/interactive/ink/hooks/usePermissionHandlers.js.map +0 -1
- package/dist/interactive/ink/hooks/useRawKeypress.d.ts +0 -41
- package/dist/interactive/ink/hooks/useRawKeypress.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useRawKeypress.js +0 -79
- package/dist/interactive/ink/hooks/useRawKeypress.js.map +0 -1
- package/dist/interactive/ink/hooks/useTaskQueue.d.ts +0 -32
- package/dist/interactive/ink/hooks/useTaskQueue.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useTaskQueue.js +0 -68
- package/dist/interactive/ink/hooks/useTaskQueue.js.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflow.d.ts +0 -45
- package/dist/interactive/ink/hooks/useWorkflow.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflow.js +0 -93
- package/dist/interactive/ink/hooks/useWorkflow.js.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts +0 -14
- package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflowExecution.js +0 -144
- package/dist/interactive/ink/hooks/useWorkflowExecution.js.map +0 -1
- package/dist/interactive/ink/index.d.ts +0 -30
- package/dist/interactive/ink/index.d.ts.map +0 -1
- package/dist/interactive/ink/index.js +0 -33
- package/dist/interactive/ink/index.js.map +0 -1
- package/dist/interactive/ink/utils/workflow.d.ts +0 -11
- package/dist/interactive/ink/utils/workflow.d.ts.map +0 -1
- package/dist/interactive/ink/utils/workflow.js +0 -19
- package/dist/interactive/ink/utils/workflow.js.map +0 -1
- package/dist/interactive/input-buffer.d.ts +0 -67
- package/dist/interactive/input-buffer.d.ts.map +0 -1
- package/dist/interactive/input-buffer.js +0 -162
- package/dist/interactive/input-buffer.js.map +0 -1
- package/dist/interactive/input-handlers.d.ts +0 -50
- package/dist/interactive/input-handlers.d.ts.map +0 -1
- package/dist/interactive/input-handlers.js +0 -170
- package/dist/interactive/input-handlers.js.map +0 -1
- package/dist/interactive/input.d.ts +0 -43
- package/dist/interactive/input.d.ts.map +0 -1
- package/dist/interactive/input.js +0 -74
- package/dist/interactive/input.js.map +0 -1
- package/dist/interactive/keyDetection.d.ts +0 -85
- package/dist/interactive/keyDetection.d.ts.map +0 -1
- package/dist/interactive/keyDetection.js +0 -167
- package/dist/interactive/keyDetection.js.map +0 -1
- package/dist/interactive/multilineInputLogic.d.ts +0 -30
- package/dist/interactive/multilineInputLogic.d.ts.map +0 -1
- package/dist/interactive/multilineInputLogic.js +0 -143
- package/dist/interactive/multilineInputLogic.js.map +0 -1
- package/dist/interactive/passthrough.d.ts +0 -30
- package/dist/interactive/passthrough.d.ts.map +0 -1
- package/dist/interactive/passthrough.js +0 -94
- package/dist/interactive/passthrough.js.map +0 -1
- package/dist/interactive/permission.d.ts +0 -33
- package/dist/interactive/permission.d.ts.map +0 -1
- package/dist/interactive/permission.js +0 -231
- package/dist/interactive/permission.js.map +0 -1
- package/dist/interactive/prompt.d.ts.map +0 -1
- package/dist/interactive/prompt.js.map +0 -1
- package/dist/interactive/repl.d.ts +0 -13
- package/dist/interactive/repl.d.ts.map +0 -1
- package/dist/interactive/repl.js +0 -202
- package/dist/interactive/repl.js.map +0 -1
- package/dist/interactive/types.d.ts +0 -35
- package/dist/interactive/types.d.ts.map +0 -1
- package/dist/interactive/types.js +0 -5
- package/dist/interactive/types.js.map +0 -1
- package/dist/interactive/ui.d.ts +0 -16
- package/dist/interactive/ui.d.ts.map +0 -1
- package/dist/interactive/ui.js +0 -122
- package/dist/interactive/ui.js.map +0 -1
- package/dist/interactive/user-input.d.ts +0 -26
- package/dist/interactive/user-input.d.ts.map +0 -1
- package/dist/interactive/user-input.js +0 -115
- package/dist/interactive/user-input.js.map +0 -1
- package/dist/interactive/workflow-executor.d.ts +0 -20
- package/dist/interactive/workflow-executor.d.ts.map +0 -1
- package/dist/interactive/workflow-executor.js +0 -200
- package/dist/interactive/workflow-executor.js.map +0 -1
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive permission handler for takt
|
|
3
|
-
*
|
|
4
|
-
* Prompts user for permission when Claude requests access to tools
|
|
5
|
-
* that are not pre-approved.
|
|
6
|
-
*/
|
|
7
|
-
import chalk from 'chalk';
|
|
8
|
-
import { playInfoSound } from '../utils/notification.js';
|
|
9
|
-
/** Create initial permission state */
|
|
10
|
-
export function createPermissionState() {
|
|
11
|
-
return {
|
|
12
|
-
iterationAllowedPatterns: new Set(),
|
|
13
|
-
iterationSacrificeMode: false,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
/** Reset permission state for new iteration */
|
|
17
|
-
export function resetPermissionStateForIteration(state) {
|
|
18
|
-
state.iterationAllowedPatterns.clear();
|
|
19
|
-
state.iterationSacrificeMode = false;
|
|
20
|
-
}
|
|
21
|
-
/** Format tool input for display */
|
|
22
|
-
function formatToolInput(toolName, input) {
|
|
23
|
-
if (toolName === 'Bash') {
|
|
24
|
-
const command = input.command;
|
|
25
|
-
const description = input.description;
|
|
26
|
-
if (command) {
|
|
27
|
-
const lines = [` コマンド: ${chalk.bold(command)}`];
|
|
28
|
-
if (description) {
|
|
29
|
-
lines.push(` 説明: ${description}`);
|
|
30
|
-
}
|
|
31
|
-
return lines.join('\n');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (toolName === 'Edit' || toolName === 'Write' || toolName === 'Read') {
|
|
35
|
-
const filePath = input.file_path;
|
|
36
|
-
if (filePath) {
|
|
37
|
-
return ` ファイル: ${chalk.bold(filePath)}`;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (toolName === 'WebSearch') {
|
|
41
|
-
const query = input.query;
|
|
42
|
-
if (query) {
|
|
43
|
-
return ` 検索: ${chalk.bold(query)}`;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (toolName === 'WebFetch') {
|
|
47
|
-
const url = input.url;
|
|
48
|
-
if (url) {
|
|
49
|
-
return ` URL: ${chalk.bold(url)}`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Generic display for other tools
|
|
53
|
-
const entries = Object.entries(input).slice(0, 3);
|
|
54
|
-
return entries.map(([k, v]) => ` ${k}: ${JSON.stringify(v).slice(0, 50)}`).join('\n');
|
|
55
|
-
}
|
|
56
|
-
/** Build permission rule for the tool */
|
|
57
|
-
function buildPermissionRule(toolName, input) {
|
|
58
|
-
if (toolName === 'Bash') {
|
|
59
|
-
const command = input.command || '';
|
|
60
|
-
const firstWord = command.split(/\s+/)[0] || command;
|
|
61
|
-
return `Bash(${firstWord}:*)`;
|
|
62
|
-
}
|
|
63
|
-
return toolName;
|
|
64
|
-
}
|
|
65
|
-
/** Build exact command pattern for iteration-scoped permission */
|
|
66
|
-
function buildExactCommandPattern(toolName, input) {
|
|
67
|
-
if (toolName === 'Bash') {
|
|
68
|
-
const command = input.command || '';
|
|
69
|
-
return `Bash:${command}`;
|
|
70
|
-
}
|
|
71
|
-
return `${toolName}:${JSON.stringify(input)}`;
|
|
72
|
-
}
|
|
73
|
-
/** Check if a pattern matches the current request */
|
|
74
|
-
function matchesPattern(pattern, toolName, input) {
|
|
75
|
-
// Check exact command pattern
|
|
76
|
-
const exactPattern = buildExactCommandPattern(toolName, input);
|
|
77
|
-
if (pattern === exactPattern) {
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
// Check tool pattern (e.g., "Bash(gh:*)")
|
|
81
|
-
if (toolName === 'Bash' && pattern.startsWith('Bash(')) {
|
|
82
|
-
const command = input.command || '';
|
|
83
|
-
const firstWord = command.split(/\s+/)[0] || '';
|
|
84
|
-
const patternPrefix = pattern.match(/^Bash\(([^:]+):\*\)$/)?.[1];
|
|
85
|
-
if (patternPrefix && firstWord === patternPrefix) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Create an interactive permission handler with enhanced options
|
|
93
|
-
*
|
|
94
|
-
* @param rl - Readline interface for user input
|
|
95
|
-
* @param permissionState - Shared permission state for iteration-scoped permissions
|
|
96
|
-
* @returns Permission handler function
|
|
97
|
-
*/
|
|
98
|
-
export function createInteractivePermissionHandler(rl, permissionState) {
|
|
99
|
-
// Use provided state or create a new one
|
|
100
|
-
const state = permissionState || createPermissionState();
|
|
101
|
-
return async (request) => {
|
|
102
|
-
const { toolName, input, suggestions, decisionReason } = request;
|
|
103
|
-
// Check if sacrifice mode is active for this iteration
|
|
104
|
-
if (state.iterationSacrificeMode) {
|
|
105
|
-
return { behavior: 'allow' };
|
|
106
|
-
}
|
|
107
|
-
// Check if this command matches any iteration-allowed pattern
|
|
108
|
-
for (const pattern of state.iterationAllowedPatterns) {
|
|
109
|
-
if (matchesPattern(pattern, toolName, input)) {
|
|
110
|
-
return { behavior: 'allow' };
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
// Play notification sound
|
|
114
|
-
playInfoSound();
|
|
115
|
-
// Display permission request
|
|
116
|
-
console.log();
|
|
117
|
-
console.log(chalk.yellow('━'.repeat(60)));
|
|
118
|
-
console.log(chalk.yellow.bold('⚠️ 権限リクエスト'));
|
|
119
|
-
console.log(` ツール: ${chalk.cyan(toolName)}`);
|
|
120
|
-
console.log(formatToolInput(toolName, input));
|
|
121
|
-
if (decisionReason) {
|
|
122
|
-
console.log(chalk.gray(` 理由: ${decisionReason}`));
|
|
123
|
-
}
|
|
124
|
-
console.log(chalk.yellow('━'.repeat(60)));
|
|
125
|
-
// Show options
|
|
126
|
-
console.log(chalk.gray(' [y] 許可'));
|
|
127
|
-
console.log(chalk.gray(' [n] 拒否'));
|
|
128
|
-
console.log(chalk.gray(' [a] 今後も許可(セッション中)'));
|
|
129
|
-
console.log(chalk.gray(' [i] このイテレーションでこのコマンドを許可'));
|
|
130
|
-
console.log(chalk.gray(' [p] このイテレーションでこのコマンドパターンを許可'));
|
|
131
|
-
console.log(chalk.gray(' [s] このイテレーションでPC全権限譲渡(sacrificeモード)'));
|
|
132
|
-
// Prompt user
|
|
133
|
-
const response = await new Promise((resolve) => {
|
|
134
|
-
rl.question(chalk.yellow('選択してください [y/n/a/i/p/s]: '), (answer) => {
|
|
135
|
-
resolve(answer.trim().toLowerCase());
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
if (response === 'y' || response === 'yes') {
|
|
139
|
-
// Allow this time only
|
|
140
|
-
console.log(chalk.green('✓ 許可しました'));
|
|
141
|
-
return { behavior: 'allow' };
|
|
142
|
-
}
|
|
143
|
-
if (response === 'a' || response === 'always') {
|
|
144
|
-
// Allow and remember for session
|
|
145
|
-
const rule = buildPermissionRule(toolName, input);
|
|
146
|
-
console.log(chalk.green(`✓ 許可しました (${rule} をセッション中記憶)`));
|
|
147
|
-
// Use suggestions if available, otherwise build our own
|
|
148
|
-
const updatedPermissions = suggestions || [
|
|
149
|
-
{
|
|
150
|
-
type: 'addRules',
|
|
151
|
-
rules: [{ toolName, ruleContent: rule }],
|
|
152
|
-
behavior: 'allow',
|
|
153
|
-
destination: 'session',
|
|
154
|
-
},
|
|
155
|
-
];
|
|
156
|
-
return {
|
|
157
|
-
behavior: 'allow',
|
|
158
|
-
updatedPermissions,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
if (response === 'i') {
|
|
162
|
-
// Allow this exact command for this iteration
|
|
163
|
-
const exactPattern = buildExactCommandPattern(toolName, input);
|
|
164
|
-
state.iterationAllowedPatterns.add(exactPattern);
|
|
165
|
-
console.log(chalk.green('✓ このイテレーションでこのコマンドを許可しました'));
|
|
166
|
-
return { behavior: 'allow' };
|
|
167
|
-
}
|
|
168
|
-
if (response === 'p') {
|
|
169
|
-
// Allow this command pattern for this iteration
|
|
170
|
-
const pattern = buildPermissionRule(toolName, input);
|
|
171
|
-
state.iterationAllowedPatterns.add(pattern);
|
|
172
|
-
console.log(chalk.green(`✓ このイテレーションで ${pattern} パターンを許可しました`));
|
|
173
|
-
return { behavior: 'allow' };
|
|
174
|
-
}
|
|
175
|
-
if (response === 's' || response === 'sacrifice') {
|
|
176
|
-
// Sacrifice mode for this iteration
|
|
177
|
-
state.iterationSacrificeMode = true;
|
|
178
|
-
console.log(chalk.red.bold('💀 このイテレーションでPC全権限を譲渡しました'));
|
|
179
|
-
return { behavior: 'allow' };
|
|
180
|
-
}
|
|
181
|
-
// Deny
|
|
182
|
-
console.log(chalk.red('✗ 拒否しました'));
|
|
183
|
-
return {
|
|
184
|
-
behavior: 'deny',
|
|
185
|
-
message: 'User denied permission',
|
|
186
|
-
};
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Create a non-interactive permission handler that auto-allows safe tools
|
|
191
|
-
* and denies others without prompting.
|
|
192
|
-
*/
|
|
193
|
-
export function createAutoPermissionHandler() {
|
|
194
|
-
// Tools that are always safe to allow
|
|
195
|
-
const safeTools = new Set([
|
|
196
|
-
'Read',
|
|
197
|
-
'Glob',
|
|
198
|
-
'Grep',
|
|
199
|
-
'WebSearch',
|
|
200
|
-
'WebFetch',
|
|
201
|
-
]);
|
|
202
|
-
// Safe Bash command prefixes
|
|
203
|
-
const safeBashPrefixes = [
|
|
204
|
-
'ls', 'cat', 'head', 'tail', 'find', 'grep', 'which',
|
|
205
|
-
'pwd', 'echo', 'date', 'whoami', 'uname',
|
|
206
|
-
'git status', 'git log', 'git diff', 'git branch', 'git show',
|
|
207
|
-
'npm ', 'npx ', 'node ', 'python ', 'pip ',
|
|
208
|
-
];
|
|
209
|
-
return async (request) => {
|
|
210
|
-
const { toolName, input } = request;
|
|
211
|
-
// Safe tools are always allowed
|
|
212
|
-
if (safeTools.has(toolName)) {
|
|
213
|
-
return { behavior: 'allow' };
|
|
214
|
-
}
|
|
215
|
-
// Check Bash commands
|
|
216
|
-
if (toolName === 'Bash') {
|
|
217
|
-
const command = (input.command || '').trim();
|
|
218
|
-
for (const prefix of safeBashPrefixes) {
|
|
219
|
-
if (command.startsWith(prefix)) {
|
|
220
|
-
return { behavior: 'allow' };
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
// Deny other tools
|
|
225
|
-
return {
|
|
226
|
-
behavior: 'deny',
|
|
227
|
-
message: `Tool ${toolName} requires explicit permission`,
|
|
228
|
-
};
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=permission.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/interactive/permission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/interactive/prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,EACjD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,EAAE,GACrC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAuCnB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBzE;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAC5D,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,EAAE,EACtC,YAAY,EAAE,CAAC,GACd,OAAO,CAAC,CAAC,CAAC,CAgDZ;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBlF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/interactive/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive REPL mode for takt
|
|
3
|
-
*
|
|
4
|
-
* Provides an interactive shell similar to ORCA's interactive mode.
|
|
5
|
-
* Features:
|
|
6
|
-
* - Workflow switching with /switch (/sw)
|
|
7
|
-
* - Multi-agent workflow execution
|
|
8
|
-
* - Conversation history
|
|
9
|
-
* - Session persistence
|
|
10
|
-
*/
|
|
11
|
-
/** Start interactive mode */
|
|
12
|
-
export declare function startInteractiveMode(cwd: string, initialTask?: string): Promise<void>;
|
|
13
|
-
//# sourceMappingURL=repl.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/interactive/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+IH,6BAA6B;AAC7B,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAgGf"}
|
package/dist/interactive/repl.js
DELETED
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive REPL mode for takt
|
|
3
|
-
*
|
|
4
|
-
* Provides an interactive shell similar to ORCA's interactive mode.
|
|
5
|
-
* Features:
|
|
6
|
-
* - Workflow switching with /switch (/sw)
|
|
7
|
-
* - Multi-agent workflow execution
|
|
8
|
-
* - Conversation history
|
|
9
|
-
* - Session persistence
|
|
10
|
-
*/
|
|
11
|
-
import chalk from 'chalk';
|
|
12
|
-
import { loadGlobalConfig } from '../config/index.js';
|
|
13
|
-
import { getCurrentWorkflow, getProjectConfigDir, ensureDir, } from '../config/paths.js';
|
|
14
|
-
import { interruptCurrentProcess } from '../claude/process.js';
|
|
15
|
-
import { info } from '../utils/ui.js';
|
|
16
|
-
import { generateSessionId } from '../utils/session.js';
|
|
17
|
-
import { createReadlineInterface, multiLineQuestion, InputHistoryManager, } from './input.js';
|
|
18
|
-
import { TaskRunner } from '../task/index.js';
|
|
19
|
-
import { commandRegistry } from './commands/index.js';
|
|
20
|
-
import { printWelcome } from './ui.js';
|
|
21
|
-
import { executeMultiAgentWorkflow } from './workflow-executor.js';
|
|
22
|
-
/**
|
|
23
|
-
* Parse user input for iteration control.
|
|
24
|
-
*
|
|
25
|
-
* Returns the requested iteration count and the actual message.
|
|
26
|
-
* Examples:
|
|
27
|
-
* "3" -> { iterations: 3, message: null } (continue with 3 more iterations)
|
|
28
|
-
* "fix the bug" -> { iterations: 1, message: "fix the bug" }
|
|
29
|
-
* "5 do something" -> { iterations: 5, message: "do something" }
|
|
30
|
-
*/
|
|
31
|
-
function parseIterationInput(input) {
|
|
32
|
-
const trimmed = input.trim();
|
|
33
|
-
// Check if input is just a number (continue iterations)
|
|
34
|
-
if (/^\d+$/.test(trimmed)) {
|
|
35
|
-
const count = parseInt(trimmed, 10);
|
|
36
|
-
if (count > 0 && count <= 100) {
|
|
37
|
-
return { iterations: count, message: null };
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Check if input starts with a number followed by space
|
|
41
|
-
const match = trimmed.match(/^(\d+)\s+(.+)$/);
|
|
42
|
-
if (match && match[1] && match[2]) {
|
|
43
|
-
const count = parseInt(match[1], 10);
|
|
44
|
-
if (count > 0 && count <= 100) {
|
|
45
|
-
return { iterations: count, message: match[2] };
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Default: single iteration with the full message
|
|
49
|
-
return { iterations: 1, message: trimmed };
|
|
50
|
-
}
|
|
51
|
-
/** Execute workflow with user message */
|
|
52
|
-
async function executeWorkflow(message, state, rl) {
|
|
53
|
-
// Parse iteration control from input
|
|
54
|
-
const { iterations, message: actualMessage } = parseIterationInput(message);
|
|
55
|
-
// Determine the task to use
|
|
56
|
-
let task;
|
|
57
|
-
if (actualMessage === null) {
|
|
58
|
-
// Number only - continue with previous task
|
|
59
|
-
if (!state.currentTask) {
|
|
60
|
-
info('継続するタスクがありません。タスクを入力してください。');
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
task = state.currentTask;
|
|
64
|
-
info(`前回のタスクを ${iterations} イテレーションで継続します`);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
task = actualMessage;
|
|
68
|
-
state.currentTask = task;
|
|
69
|
-
}
|
|
70
|
-
// Add user message to conversation history
|
|
71
|
-
state.conversationHistory.push({
|
|
72
|
-
role: 'user',
|
|
73
|
-
content: message,
|
|
74
|
-
timestamp: new Date().toISOString(),
|
|
75
|
-
});
|
|
76
|
-
// Add to input history (for up-arrow recall)
|
|
77
|
-
state.historyManager.add(message);
|
|
78
|
-
// Add to shared user inputs (for all agents)
|
|
79
|
-
state.sharedUserInputs.push(task);
|
|
80
|
-
// Run workflow with specified iterations
|
|
81
|
-
const response = await executeMultiAgentWorkflow(task, state, rl, iterations);
|
|
82
|
-
// Add assistant response to history
|
|
83
|
-
state.conversationHistory.push({
|
|
84
|
-
role: 'assistant',
|
|
85
|
-
content: response,
|
|
86
|
-
timestamp: new Date().toISOString(),
|
|
87
|
-
});
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
/** Process user input */
|
|
91
|
-
async function processInput(input, state, rl) {
|
|
92
|
-
const trimmed = input.trim();
|
|
93
|
-
if (!trimmed) {
|
|
94
|
-
return true; // Continue
|
|
95
|
-
}
|
|
96
|
-
// Handle commands
|
|
97
|
-
if (trimmed.startsWith('/')) {
|
|
98
|
-
const parts = trimmed.slice(1).split(/\s+/);
|
|
99
|
-
const commandName = parts[0]?.toLowerCase();
|
|
100
|
-
const args = parts.slice(1);
|
|
101
|
-
if (!commandName) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
const command = commandRegistry.get(commandName);
|
|
105
|
-
if (command) {
|
|
106
|
-
const result = await command.execute(args, state, rl);
|
|
107
|
-
return result.continue;
|
|
108
|
-
}
|
|
109
|
-
info(`Unknown command: ${commandName}`);
|
|
110
|
-
info('Type /help for available commands');
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
// Execute workflow with input
|
|
114
|
-
return await executeWorkflow(trimmed, state, rl);
|
|
115
|
-
}
|
|
116
|
-
/** Start interactive mode */
|
|
117
|
-
export async function startInteractiveMode(cwd, initialTask) {
|
|
118
|
-
// Load global config for validation
|
|
119
|
-
loadGlobalConfig();
|
|
120
|
-
const lastWorkflow = getCurrentWorkflow(cwd);
|
|
121
|
-
// Create history manager (handles persistence automatically)
|
|
122
|
-
const historyManager = new InputHistoryManager(cwd);
|
|
123
|
-
// Create task runner
|
|
124
|
-
const taskRunner = new TaskRunner(cwd);
|
|
125
|
-
const state = {
|
|
126
|
-
cwd,
|
|
127
|
-
workflowName: lastWorkflow,
|
|
128
|
-
sessionId: generateSessionId(),
|
|
129
|
-
conversationHistory: [],
|
|
130
|
-
historyManager,
|
|
131
|
-
taskRunner,
|
|
132
|
-
sharedUserInputs: [],
|
|
133
|
-
sacrificeMyPcMode: false,
|
|
134
|
-
};
|
|
135
|
-
// Ensure project config directory exists
|
|
136
|
-
ensureDir(getProjectConfigDir(cwd));
|
|
137
|
-
printWelcome(state);
|
|
138
|
-
const rl = createReadlineInterface();
|
|
139
|
-
// Handle initial task if provided
|
|
140
|
-
if (initialTask) {
|
|
141
|
-
const shouldContinue = await processInput(initialTask, state, rl);
|
|
142
|
-
if (!shouldContinue) {
|
|
143
|
-
rl.close();
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Track Ctrl+C timing for double-press exit
|
|
148
|
-
let lastSigintTime = 0;
|
|
149
|
-
// Ctrl+C handler for double-press exit
|
|
150
|
-
const handleCtrlC = () => {
|
|
151
|
-
console.log();
|
|
152
|
-
const now = Date.now();
|
|
153
|
-
// Try to interrupt running Claude process first
|
|
154
|
-
if (interruptCurrentProcess()) {
|
|
155
|
-
info('Interrupted. Press Ctrl+C again to exit.');
|
|
156
|
-
lastSigintTime = now;
|
|
157
|
-
}
|
|
158
|
-
else if (now - lastSigintTime < 2000) {
|
|
159
|
-
// Double press within 2 seconds - exit
|
|
160
|
-
info('Goodbye!');
|
|
161
|
-
rl.close();
|
|
162
|
-
process.exit(0);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
info('Press Ctrl+C again to exit');
|
|
166
|
-
lastSigintTime = now;
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
// Main REPL loop with multi-line support
|
|
170
|
-
const prompt = async () => {
|
|
171
|
-
// Show workflow indicator above prompt
|
|
172
|
-
const modeIndicator = state.sacrificeMyPcMode ? chalk.red(' 💀') : '';
|
|
173
|
-
console.log(chalk.gray(`[${state.workflowName}]`) + modeIndicator);
|
|
174
|
-
try {
|
|
175
|
-
const promptStr = state.sacrificeMyPcMode
|
|
176
|
-
? chalk.red('takt💀> ')
|
|
177
|
-
: chalk.cyan('takt> ');
|
|
178
|
-
const input = await multiLineQuestion(rl, {
|
|
179
|
-
promptStr,
|
|
180
|
-
onCtrlC: handleCtrlC,
|
|
181
|
-
historyManager: state.historyManager,
|
|
182
|
-
});
|
|
183
|
-
if (input === '') {
|
|
184
|
-
// Empty input, just re-prompt
|
|
185
|
-
prompt();
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
const shouldContinue = await processInput(input, state, rl);
|
|
189
|
-
if (shouldContinue) {
|
|
190
|
-
prompt();
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
rl.close();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
rl.close();
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
prompt();
|
|
201
|
-
}
|
|
202
|
-
//# sourceMappingURL=repl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/interactive/repl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive mode type definitions
|
|
3
|
-
*/
|
|
4
|
-
import type { TaskRunner } from '../task/index.js';
|
|
5
|
-
import type { InputHistoryManager } from './input.js';
|
|
6
|
-
/** Conversation message */
|
|
7
|
-
export interface ConversationMessage {
|
|
8
|
-
role: 'user' | 'assistant';
|
|
9
|
-
content: string;
|
|
10
|
-
timestamp: string;
|
|
11
|
-
}
|
|
12
|
-
/** Interactive session state */
|
|
13
|
-
export interface InteractiveState {
|
|
14
|
-
cwd: string;
|
|
15
|
-
workflowName: string;
|
|
16
|
-
sessionId: string;
|
|
17
|
-
claudeSessionId?: string;
|
|
18
|
-
conversationHistory: ConversationMessage[];
|
|
19
|
-
historyManager: InputHistoryManager;
|
|
20
|
-
taskRunner: TaskRunner;
|
|
21
|
-
/** Current task for workflow continuation */
|
|
22
|
-
currentTask?: string;
|
|
23
|
-
/** Requested number of iterations (for number input) */
|
|
24
|
-
requestedIterations?: number;
|
|
25
|
-
/** All user inputs shared across agents */
|
|
26
|
-
sharedUserInputs: string[];
|
|
27
|
-
/**
|
|
28
|
-
* Sacrifice-my-pc mode: auto-approve all permissions and skip confirmations.
|
|
29
|
-
* When enabled, all permission requests are automatically approved,
|
|
30
|
-
* iteration limits auto-continue with 10 iterations,
|
|
31
|
-
* and blocked states are auto-skipped.
|
|
32
|
-
*/
|
|
33
|
-
sacrificeMyPcMode: boolean;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interactive/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,2BAA2B;AAC3B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,cAAc,EAAE,mBAAmB,CAAC;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interactive/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/interactive/ui.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive mode UI functions
|
|
3
|
-
*
|
|
4
|
-
* Provides display and visual functions for the interactive REPL.
|
|
5
|
-
*/
|
|
6
|
-
import * as readline from 'node:readline';
|
|
7
|
-
import type { InteractiveState } from './types.js';
|
|
8
|
-
/** Clear screen */
|
|
9
|
-
export declare function clearScreen(): void;
|
|
10
|
-
/** Print welcome banner */
|
|
11
|
-
export declare function printWelcome(state: InteractiveState): void;
|
|
12
|
-
/** Print help message */
|
|
13
|
-
export declare function printHelp(): void;
|
|
14
|
-
/** Show workflow selector UI */
|
|
15
|
-
export declare function selectWorkflow(state: InteractiveState, rl: readline.Interface): Promise<string | null>;
|
|
16
|
-
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/interactive/ui.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAI1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,mBAAmB;AACnB,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,2BAA2B;AAC3B,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAY1D;AAED,yBAAyB;AACzB,wBAAgB,SAAS,IAAI,IAAI,CAkDhC;AAED,gCAAgC;AAChC,wBAAsB,cAAc,CAClC,KAAK,EAAE,gBAAgB,EACvB,EAAE,EAAE,QAAQ,CAAC,SAAS,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiDxB"}
|