takt 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +307 -0
- package/bin/takt +27 -0
- package/dist/agents/index.d.ts +5 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +5 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/runner.d.ts +26 -0
- package/dist/agents/runner.d.ts.map +1 -0
- package/dist/agents/runner.js +144 -0
- package/dist/agents/runner.js.map +1 -0
- package/dist/claude/client.d.ts +43 -0
- package/dist/claude/client.d.ts.map +1 -0
- package/dist/claude/client.js +143 -0
- package/dist/claude/client.js.map +1 -0
- package/dist/claude/executor.d.ts +29 -0
- package/dist/claude/executor.d.ts.map +1 -0
- package/dist/claude/executor.js +169 -0
- package/dist/claude/executor.js.map +1 -0
- package/dist/claude/index.d.ts +14 -0
- package/dist/claude/index.d.ts.map +1 -0
- package/dist/claude/index.js +18 -0
- package/dist/claude/index.js.map +1 -0
- package/dist/claude/options-builder.d.ts +40 -0
- package/dist/claude/options-builder.d.ts.map +1 -0
- package/dist/claude/options-builder.js +90 -0
- package/dist/claude/options-builder.js.map +1 -0
- package/dist/claude/process.d.ts +57 -0
- package/dist/claude/process.d.ts.map +1 -0
- package/dist/claude/process.js +57 -0
- package/dist/claude/process.js.map +1 -0
- package/dist/claude/query-manager.d.ts +35 -0
- package/dist/claude/query-manager.d.ts.map +1 -0
- package/dist/claude/query-manager.js +74 -0
- package/dist/claude/query-manager.js.map +1 -0
- package/dist/claude/stream-converter.d.ts +19 -0
- package/dist/claude/stream-converter.d.ts.map +1 -0
- package/dist/claude/stream-converter.js +166 -0
- package/dist/claude/stream-converter.js.map +1 -0
- package/dist/claude/types.d.ts +99 -0
- package/dist/claude/types.d.ts.map +1 -0
- package/dist/claude/types.js +8 -0
- package/dist/claude/types.js.map +1 -0
- package/dist/cli/agentExecution.d.ts +16 -0
- package/dist/cli/agentExecution.d.ts.map +1 -0
- package/dist/cli/agentExecution.js +40 -0
- package/dist/cli/agentExecution.js.map +1 -0
- package/dist/cli/help.d.ts +8 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +46 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/taskBatch.d.ts +8 -0
- package/dist/cli/taskBatch.d.ts.map +1 -0
- package/dist/cli/taskBatch.js +69 -0
- package/dist/cli/taskBatch.js.map +1 -0
- package/dist/cli/workflowExecution.d.ts +18 -0
- package/dist/cli/workflowExecution.d.ts.map +1 -0
- package/dist/cli/workflowExecution.js +112 -0
- package/dist/cli/workflowExecution.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +122 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agentExecution.d.ts +8 -0
- package/dist/commands/agentExecution.d.ts.map +1 -0
- package/dist/commands/agentExecution.js +44 -0
- package/dist/commands/agentExecution.js.map +1 -0
- package/dist/commands/help.d.ts +8 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +39 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +9 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +9 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/session.d.ts +10 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +18 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/taskExecution.d.ts +20 -0
- package/dist/commands/taskExecution.d.ts.map +1 -0
- package/dist/commands/taskExecution.js +103 -0
- package/dist/commands/taskExecution.js.map +1 -0
- package/dist/commands/workflow.d.ts +9 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +51 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/commands/workflowExecution.d.ts +21 -0
- package/dist/commands/workflowExecution.d.ts.map +1 -0
- package/dist/commands/workflowExecution.js +95 -0
- package/dist/commands/workflowExecution.js.map +1 -0
- package/dist/config/agentLoader.d.ts +25 -0
- package/dist/config/agentLoader.d.ts.map +1 -0
- package/dist/config/agentLoader.js +96 -0
- package/dist/config/agentLoader.js.map +1 -0
- package/dist/config/globalConfig.d.ts +23 -0
- package/dist/config/globalConfig.d.ts.map +1 -0
- package/dist/config/globalConfig.js +117 -0
- package/dist/config/globalConfig.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/initialization.d.ts +23 -0
- package/dist/config/initialization.d.ts.map +1 -0
- package/dist/config/initialization.js +55 -0
- package/dist/config/initialization.js.map +1 -0
- package/dist/config/loader.d.ts +9 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +12 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +33 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +66 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/projectConfig.d.ts +41 -0
- package/dist/config/projectConfig.d.ts.map +1 -0
- package/dist/config/projectConfig.js +85 -0
- package/dist/config/projectConfig.js.map +1 -0
- package/dist/config/sessionStore.d.ts +44 -0
- package/dist/config/sessionStore.d.ts.map +1 -0
- package/dist/config/sessionStore.js +194 -0
- package/dist/config/sessionStore.js.map +1 -0
- package/dist/config/workflowLoader.d.ts +23 -0
- package/dist/config/workflowLoader.d.ts.map +1 -0
- package/dist/config/workflowLoader.js +142 -0
- package/dist/config/workflowLoader.js.map +1 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive/commands/agent.d.ts +7 -0
- package/dist/interactive/commands/agent.d.ts.map +1 -0
- package/dist/interactive/commands/agent.js +65 -0
- package/dist/interactive/commands/agent.js.map +1 -0
- package/dist/interactive/commands/basic.d.ts +7 -0
- package/dist/interactive/commands/basic.d.ts.map +1 -0
- package/dist/interactive/commands/basic.js +81 -0
- package/dist/interactive/commands/basic.js.map +1 -0
- package/dist/interactive/commands/index.d.ts +12 -0
- package/dist/interactive/commands/index.d.ts.map +1 -0
- package/dist/interactive/commands/index.js +14 -0
- package/dist/interactive/commands/index.js.map +1 -0
- package/dist/interactive/commands/registry.d.ts +41 -0
- package/dist/interactive/commands/registry.d.ts.map +1 -0
- package/dist/interactive/commands/registry.js +37 -0
- package/dist/interactive/commands/registry.js.map +1 -0
- package/dist/interactive/commands/session.d.ts +7 -0
- package/dist/interactive/commands/session.d.ts.map +1 -0
- package/dist/interactive/commands/session.js +75 -0
- package/dist/interactive/commands/session.js.map +1 -0
- package/dist/interactive/commands/task.d.ts +7 -0
- package/dist/interactive/commands/task.d.ts.map +1 -0
- package/dist/interactive/commands/task.js +156 -0
- package/dist/interactive/commands/task.js.map +1 -0
- package/dist/interactive/commands/workflow.d.ts +7 -0
- package/dist/interactive/commands/workflow.d.ts.map +1 -0
- package/dist/interactive/commands/workflow.js +56 -0
- package/dist/interactive/commands/workflow.js.map +1 -0
- package/dist/interactive/escape-tracker.d.ts +37 -0
- package/dist/interactive/escape-tracker.d.ts.map +1 -0
- package/dist/interactive/escape-tracker.js +52 -0
- package/dist/interactive/escape-tracker.js.map +1 -0
- package/dist/interactive/handlers.d.ts +24 -0
- package/dist/interactive/handlers.d.ts.map +1 -0
- package/dist/interactive/handlers.js +191 -0
- package/dist/interactive/handlers.js.map +1 -0
- package/dist/interactive/history-manager.d.ts +45 -0
- package/dist/interactive/history-manager.d.ts.map +1 -0
- package/dist/interactive/history-manager.js +91 -0
- package/dist/interactive/history-manager.js.map +1 -0
- package/dist/interactive/index.d.ts +8 -0
- package/dist/interactive/index.d.ts.map +1 -0
- package/dist/interactive/index.js +8 -0
- package/dist/interactive/index.js.map +1 -0
- package/dist/interactive/ink/components/App.d.ts +16 -0
- package/dist/interactive/ink/components/App.d.ts.map +1 -0
- package/dist/interactive/ink/components/App.js +123 -0
- package/dist/interactive/ink/components/App.js.map +1 -0
- package/dist/interactive/ink/components/AskUserQuestion.d.ts +16 -0
- package/dist/interactive/ink/components/AskUserQuestion.d.ts.map +1 -0
- package/dist/interactive/ink/components/AskUserQuestion.js +139 -0
- package/dist/interactive/ink/components/AskUserQuestion.js.map +1 -0
- package/dist/interactive/ink/components/Header.d.ts +20 -0
- package/dist/interactive/ink/components/Header.d.ts.map +1 -0
- package/dist/interactive/ink/components/Header.js +7 -0
- package/dist/interactive/ink/components/Header.js.map +1 -0
- package/dist/interactive/ink/components/HelpView.d.ts +13 -0
- package/dist/interactive/ink/components/HelpView.d.ts.map +1 -0
- package/dist/interactive/ink/components/HelpView.js +45 -0
- package/dist/interactive/ink/components/HelpView.js.map +1 -0
- package/dist/interactive/ink/components/IterationLimit.d.ts +19 -0
- package/dist/interactive/ink/components/IterationLimit.d.ts.map +1 -0
- package/dist/interactive/ink/components/IterationLimit.js +59 -0
- package/dist/interactive/ink/components/IterationLimit.js.map +1 -0
- package/dist/interactive/ink/components/ModalRouter.d.ts +11 -0
- package/dist/interactive/ink/components/ModalRouter.d.ts.map +1 -0
- package/dist/interactive/ink/components/ModalRouter.js +71 -0
- package/dist/interactive/ink/components/ModalRouter.js.map +1 -0
- package/dist/interactive/ink/components/PermissionPrompt.d.ts +17 -0
- package/dist/interactive/ink/components/PermissionPrompt.d.ts.map +1 -0
- package/dist/interactive/ink/components/PermissionPrompt.js +102 -0
- package/dist/interactive/ink/components/PermissionPrompt.js.map +1 -0
- package/dist/interactive/ink/components/PromptInput.d.ts +26 -0
- package/dist/interactive/ink/components/PromptInput.d.ts.map +1 -0
- package/dist/interactive/ink/components/PromptInput.js +70 -0
- package/dist/interactive/ink/components/PromptInput.js.map +1 -0
- package/dist/interactive/ink/components/Spinner.d.ts +14 -0
- package/dist/interactive/ink/components/Spinner.d.ts.map +1 -0
- package/dist/interactive/ink/components/Spinner.js +8 -0
- package/dist/interactive/ink/components/Spinner.js.map +1 -0
- package/dist/interactive/ink/components/StreamingOutput.d.ts +25 -0
- package/dist/interactive/ink/components/StreamingOutput.d.ts.map +1 -0
- package/dist/interactive/ink/components/StreamingOutput.js +8 -0
- package/dist/interactive/ink/components/StreamingOutput.js.map +1 -0
- package/dist/interactive/ink/components/UserInputPrompt.d.ts +18 -0
- package/dist/interactive/ink/components/UserInputPrompt.d.ts.map +1 -0
- package/dist/interactive/ink/components/UserInputPrompt.js +30 -0
- package/dist/interactive/ink/components/UserInputPrompt.js.map +1 -0
- package/dist/interactive/ink/components/WorkflowSelector.d.ts +18 -0
- package/dist/interactive/ink/components/WorkflowSelector.d.ts.map +1 -0
- package/dist/interactive/ink/components/WorkflowSelector.js +65 -0
- package/dist/interactive/ink/components/WorkflowSelector.js.map +1 -0
- package/dist/interactive/ink/constants.d.ts +8 -0
- package/dist/interactive/ink/constants.d.ts.map +1 -0
- package/dist/interactive/ink/constants.js +8 -0
- package/dist/interactive/ink/constants.js.map +1 -0
- package/dist/interactive/ink/context/AppContext.d.ts +26 -0
- package/dist/interactive/ink/context/AppContext.d.ts.map +1 -0
- package/dist/interactive/ink/context/AppContext.js +30 -0
- package/dist/interactive/ink/context/AppContext.js.map +1 -0
- package/dist/interactive/ink/context/appReducer.d.ts +13 -0
- package/dist/interactive/ink/context/appReducer.d.ts.map +1 -0
- package/dist/interactive/ink/context/appReducer.js +183 -0
- package/dist/interactive/ink/context/appReducer.js.map +1 -0
- package/dist/interactive/ink/context/types.d.ts +144 -0
- package/dist/interactive/ink/context/types.d.ts.map +1 -0
- package/dist/interactive/ink/context/types.js +5 -0
- package/dist/interactive/ink/context/types.js.map +1 -0
- package/dist/interactive/ink/hooks/keyDetection.d.ts +116 -0
- package/dist/interactive/ink/hooks/keyDetection.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/keyDetection.js +183 -0
- package/dist/interactive/ink/hooks/keyDetection.js.map +1 -0
- package/dist/interactive/ink/hooks/multilineInputLogic.d.ts +50 -0
- package/dist/interactive/ink/hooks/multilineInputLogic.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/multilineInputLogic.js +150 -0
- package/dist/interactive/ink/hooks/multilineInputLogic.js.map +1 -0
- package/dist/interactive/ink/hooks/useCommands.d.ts +20 -0
- package/dist/interactive/ink/hooks/useCommands.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useCommands.js +129 -0
- package/dist/interactive/ink/hooks/useCommands.js.map +1 -0
- package/dist/interactive/ink/hooks/useHistory.d.ts +28 -0
- package/dist/interactive/ink/hooks/useHistory.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useHistory.js +59 -0
- package/dist/interactive/ink/hooks/useHistory.js.map +1 -0
- package/dist/interactive/ink/hooks/useMultilineInput.d.ts +49 -0
- package/dist/interactive/ink/hooks/useMultilineInput.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useMultilineInput.js +106 -0
- package/dist/interactive/ink/hooks/useMultilineInput.js.map +1 -0
- package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts +16 -0
- package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/usePermissionHandlers.js +172 -0
- package/dist/interactive/ink/hooks/usePermissionHandlers.js.map +1 -0
- package/dist/interactive/ink/hooks/useRawKeypress.d.ts +41 -0
- package/dist/interactive/ink/hooks/useRawKeypress.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useRawKeypress.js +79 -0
- package/dist/interactive/ink/hooks/useRawKeypress.js.map +1 -0
- package/dist/interactive/ink/hooks/useTaskQueue.d.ts +32 -0
- package/dist/interactive/ink/hooks/useTaskQueue.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useTaskQueue.js +68 -0
- package/dist/interactive/ink/hooks/useTaskQueue.js.map +1 -0
- package/dist/interactive/ink/hooks/useWorkflow.d.ts +45 -0
- package/dist/interactive/ink/hooks/useWorkflow.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useWorkflow.js +93 -0
- package/dist/interactive/ink/hooks/useWorkflow.js.map +1 -0
- package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts +14 -0
- package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts.map +1 -0
- package/dist/interactive/ink/hooks/useWorkflowExecution.js +144 -0
- package/dist/interactive/ink/hooks/useWorkflowExecution.js.map +1 -0
- package/dist/interactive/ink/index.d.ts +30 -0
- package/dist/interactive/ink/index.d.ts.map +1 -0
- package/dist/interactive/ink/index.js +33 -0
- package/dist/interactive/ink/index.js.map +1 -0
- package/dist/interactive/ink/utils/workflow.d.ts +11 -0
- package/dist/interactive/ink/utils/workflow.d.ts.map +1 -0
- package/dist/interactive/ink/utils/workflow.js +19 -0
- package/dist/interactive/ink/utils/workflow.js.map +1 -0
- package/dist/interactive/input-buffer.d.ts +67 -0
- package/dist/interactive/input-buffer.d.ts.map +1 -0
- package/dist/interactive/input-buffer.js +162 -0
- package/dist/interactive/input-buffer.js.map +1 -0
- package/dist/interactive/input-handlers.d.ts +50 -0
- package/dist/interactive/input-handlers.d.ts.map +1 -0
- package/dist/interactive/input-handlers.js +170 -0
- package/dist/interactive/input-handlers.js.map +1 -0
- package/dist/interactive/input.d.ts +43 -0
- package/dist/interactive/input.d.ts.map +1 -0
- package/dist/interactive/input.js +74 -0
- package/dist/interactive/input.js.map +1 -0
- package/dist/interactive/keyDetection.d.ts +85 -0
- package/dist/interactive/keyDetection.d.ts.map +1 -0
- package/dist/interactive/keyDetection.js +167 -0
- package/dist/interactive/keyDetection.js.map +1 -0
- package/dist/interactive/multilineInputLogic.d.ts +30 -0
- package/dist/interactive/multilineInputLogic.d.ts.map +1 -0
- package/dist/interactive/multilineInputLogic.js +143 -0
- package/dist/interactive/multilineInputLogic.js.map +1 -0
- package/dist/interactive/passthrough.d.ts +30 -0
- package/dist/interactive/passthrough.d.ts.map +1 -0
- package/dist/interactive/passthrough.js +94 -0
- package/dist/interactive/passthrough.js.map +1 -0
- package/dist/interactive/permission.d.ts +33 -0
- package/dist/interactive/permission.d.ts.map +1 -0
- package/dist/interactive/permission.js +231 -0
- package/dist/interactive/permission.js.map +1 -0
- package/dist/interactive/prompt.d.ts +33 -0
- package/dist/interactive/prompt.d.ts.map +1 -0
- package/dist/interactive/prompt.js +132 -0
- package/dist/interactive/prompt.js.map +1 -0
- package/dist/interactive/repl.d.ts +13 -0
- package/dist/interactive/repl.d.ts.map +1 -0
- package/dist/interactive/repl.js +202 -0
- package/dist/interactive/repl.js.map +1 -0
- package/dist/interactive/types.d.ts +35 -0
- package/dist/interactive/types.d.ts.map +1 -0
- package/dist/interactive/types.js +5 -0
- package/dist/interactive/types.js.map +1 -0
- package/dist/interactive/ui.d.ts +16 -0
- package/dist/interactive/ui.d.ts.map +1 -0
- package/dist/interactive/ui.js +122 -0
- package/dist/interactive/ui.js.map +1 -0
- package/dist/interactive/user-input.d.ts +26 -0
- package/dist/interactive/user-input.d.ts.map +1 -0
- package/dist/interactive/user-input.js +115 -0
- package/dist/interactive/user-input.js.map +1 -0
- package/dist/interactive/workflow-executor.d.ts +20 -0
- package/dist/interactive/workflow-executor.d.ts.map +1 -0
- package/dist/interactive/workflow-executor.js +200 -0
- package/dist/interactive/workflow-executor.js.map +1 -0
- package/dist/models/agent.d.ts +37 -0
- package/dist/models/agent.d.ts.map +1 -0
- package/dist/models/agent.js +11 -0
- package/dist/models/agent.js.map +1 -0
- package/dist/models/config.d.ts +19 -0
- package/dist/models/config.d.ts.map +1 -0
- package/dist/models/config.js +25 -0
- package/dist/models/config.js.map +1 -0
- package/dist/models/index.d.ts +7 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +11 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/schemas.d.ts +161 -0
- package/dist/models/schemas.d.ts.map +1 -0
- package/dist/models/schemas.js +137 -0
- package/dist/models/schemas.js.map +1 -0
- package/dist/models/session.d.ts +50 -0
- package/dist/models/session.d.ts.map +1 -0
- package/dist/models/session.js +45 -0
- package/dist/models/session.js.map +1 -0
- package/dist/models/types.d.ts +117 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +5 -0
- package/dist/models/types.js.map +1 -0
- package/dist/models/workflow.d.ts +58 -0
- package/dist/models/workflow.d.ts.map +1 -0
- package/dist/models/workflow.js +19 -0
- package/dist/models/workflow.js.map +1 -0
- package/dist/resources/index.d.ts +38 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +108 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/task/display.d.ts +11 -0
- package/dist/task/display.d.ts.map +1 -0
- package/dist/task/display.js +41 -0
- package/dist/task/display.js.map +1 -0
- package/dist/task/index.d.ts +6 -0
- package/dist/task/index.d.ts.map +1 -0
- package/dist/task/index.js +6 -0
- package/dist/task/index.js.map +1 -0
- package/dist/task/runner.d.ts +68 -0
- package/dist/task/runner.d.ts.map +1 -0
- package/dist/task/runner.js +172 -0
- package/dist/task/runner.js.map +1 -0
- package/dist/utils/debug.d.ts +32 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +135 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/error.d.ts +8 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +10 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/notification.d.ts +63 -0
- package/dist/utils/notification.d.ts.map +1 -0
- package/dist/utils/notification.js +170 -0
- package/dist/utils/notification.js.map +1 -0
- package/dist/utils/session.d.ts +38 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js +97 -0
- package/dist/utils/session.js.map +1 -0
- package/dist/utils/ui.d.ts +91 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +330 -0
- package/dist/utils/ui.js.map +1 -0
- package/dist/workflow/blocked-handler.d.ts +27 -0
- package/dist/workflow/blocked-handler.d.ts.map +1 -0
- package/dist/workflow/blocked-handler.js +40 -0
- package/dist/workflow/blocked-handler.js.map +1 -0
- package/dist/workflow/constants.d.ts +20 -0
- package/dist/workflow/constants.d.ts.map +1 -0
- package/dist/workflow/constants.js +20 -0
- package/dist/workflow/constants.js.map +1 -0
- package/dist/workflow/engine.d.ts +42 -0
- package/dist/workflow/engine.d.ts.map +1 -0
- package/dist/workflow/engine.js +207 -0
- package/dist/workflow/engine.js.map +1 -0
- package/dist/workflow/index.d.ts +15 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +21 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/instruction-builder.d.ts +37 -0
- package/dist/workflow/instruction-builder.d.ts.map +1 -0
- package/dist/workflow/instruction-builder.js +49 -0
- package/dist/workflow/instruction-builder.js.map +1 -0
- package/dist/workflow/loop-detector.d.ts +31 -0
- package/dist/workflow/loop-detector.d.ts.map +1 -0
- package/dist/workflow/loop-detector.js +61 -0
- package/dist/workflow/loop-detector.js.map +1 -0
- package/dist/workflow/state-manager.d.ts +25 -0
- package/dist/workflow/state-manager.d.ts.map +1 -0
- package/dist/workflow/state-manager.js +59 -0
- package/dist/workflow/state-manager.js.map +1 -0
- package/dist/workflow/transitions.d.ts +25 -0
- package/dist/workflow/transitions.d.ts.map +1 -0
- package/dist/workflow/transitions.js +106 -0
- package/dist/workflow/transitions.js.map +1 -0
- package/dist/workflow/types.d.ts +74 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +8 -0
- package/dist/workflow/types.js.map +1 -0
- package/package.json +67 -0
- package/resources/global/en/agents/default/architect.md +292 -0
- package/resources/global/en/agents/default/coder.md +169 -0
- package/resources/global/en/agents/default/security.md +206 -0
- package/resources/global/en/agents/default/supervisor.md +153 -0
- package/resources/global/en/agents/magi/balthasar.md +75 -0
- package/resources/global/en/agents/magi/casper.md +100 -0
- package/resources/global/en/agents/magi/melchior.md +74 -0
- package/resources/global/en/agents/research/digger.md +134 -0
- package/resources/global/en/agents/research/planner.md +125 -0
- package/resources/global/en/agents/research/supervisor.md +86 -0
- package/resources/global/en/config.yaml +19 -0
- package/resources/global/en/workflows/default.yaml +177 -0
- package/resources/global/en/workflows/magi.yaml +96 -0
- package/resources/global/en/workflows/research.yaml +112 -0
- package/resources/global/ja/agents/default/architect.md +292 -0
- package/resources/global/ja/agents/default/coder.md +170 -0
- package/resources/global/ja/agents/default/security.md +206 -0
- package/resources/global/ja/agents/default/supervisor.md +153 -0
- package/resources/global/ja/agents/magi/balthasar.md +75 -0
- package/resources/global/ja/agents/magi/casper.md +100 -0
- package/resources/global/ja/agents/magi/melchior.md +74 -0
- package/resources/global/ja/agents/research/digger.md +134 -0
- package/resources/global/ja/agents/research/planner.md +125 -0
- package/resources/global/ja/agents/research/supervisor.md +86 -0
- package/resources/global/ja/config.yaml +19 -0
- package/resources/global/ja/workflows/default.yaml +177 -0
- package/resources/global/ja/workflows/magi.yaml +96 -0
- package/resources/global/ja/workflows/research.yaml +112 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task execution logic
|
|
3
|
+
*/
|
|
4
|
+
import { loadWorkflow } from '../config/index.js';
|
|
5
|
+
import { TaskRunner } from '../task/index.js';
|
|
6
|
+
import { header, info, error, success, status, } from '../utils/ui.js';
|
|
7
|
+
import { createLogger } from '../utils/debug.js';
|
|
8
|
+
import { getErrorMessage } from '../utils/error.js';
|
|
9
|
+
import { executeWorkflow } from './workflowExecution.js';
|
|
10
|
+
import { DEFAULT_WORKFLOW_NAME } from '../constants.js';
|
|
11
|
+
const log = createLogger('task');
|
|
12
|
+
/**
|
|
13
|
+
* Execute a single task with workflow
|
|
14
|
+
*/
|
|
15
|
+
export async function executeTask(task, cwd, workflowName = DEFAULT_WORKFLOW_NAME, options = {}) {
|
|
16
|
+
const { resumeSession = false } = options;
|
|
17
|
+
const workflowConfig = loadWorkflow(workflowName);
|
|
18
|
+
if (!workflowConfig) {
|
|
19
|
+
error(`Workflow "${workflowName}" not found.`);
|
|
20
|
+
info('Available workflows are in ~/.takt/workflows/');
|
|
21
|
+
info('Use "takt /switch" to select a workflow.');
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
log.debug('Running workflow', {
|
|
25
|
+
name: workflowConfig.name,
|
|
26
|
+
steps: workflowConfig.steps.map(s => s.name),
|
|
27
|
+
resumeSession,
|
|
28
|
+
});
|
|
29
|
+
const result = await executeWorkflow(workflowConfig, task, cwd, {
|
|
30
|
+
resumeSession,
|
|
31
|
+
});
|
|
32
|
+
return result.success;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Run all pending tasks from .takt/tasks/
|
|
36
|
+
*
|
|
37
|
+
* タスクを動的に取得する。各タスク実行前に次のタスクを取得するため、
|
|
38
|
+
* 実行中にタスクファイルが追加・削除されても反映される。
|
|
39
|
+
*/
|
|
40
|
+
export async function runAllTasks(cwd, workflowName = DEFAULT_WORKFLOW_NAME) {
|
|
41
|
+
const taskRunner = new TaskRunner(cwd);
|
|
42
|
+
// 最初のタスクを取得
|
|
43
|
+
let task = taskRunner.getNextTask();
|
|
44
|
+
if (!task) {
|
|
45
|
+
info('No pending tasks in .takt/tasks/');
|
|
46
|
+
info('Create task files as .takt/tasks/*.md');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
header('Running tasks');
|
|
50
|
+
let successCount = 0;
|
|
51
|
+
let failCount = 0;
|
|
52
|
+
while (task) {
|
|
53
|
+
console.log();
|
|
54
|
+
info(`=== Task: ${task.name} ===`);
|
|
55
|
+
console.log();
|
|
56
|
+
const startedAt = new Date().toISOString();
|
|
57
|
+
const executionLog = [];
|
|
58
|
+
try {
|
|
59
|
+
const taskSuccess = await executeTask(task.content, cwd, workflowName);
|
|
60
|
+
const completedAt = new Date().toISOString();
|
|
61
|
+
taskRunner.completeTask({
|
|
62
|
+
task,
|
|
63
|
+
success: taskSuccess,
|
|
64
|
+
response: taskSuccess ? 'Task completed successfully' : 'Task failed',
|
|
65
|
+
executionLog,
|
|
66
|
+
startedAt,
|
|
67
|
+
completedAt,
|
|
68
|
+
});
|
|
69
|
+
if (taskSuccess) {
|
|
70
|
+
successCount++;
|
|
71
|
+
success(`Task "${task.name}" completed`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
failCount++;
|
|
75
|
+
error(`Task "${task.name}" failed`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
failCount++;
|
|
80
|
+
const completedAt = new Date().toISOString();
|
|
81
|
+
taskRunner.completeTask({
|
|
82
|
+
task,
|
|
83
|
+
success: false,
|
|
84
|
+
response: getErrorMessage(err),
|
|
85
|
+
executionLog,
|
|
86
|
+
startedAt,
|
|
87
|
+
completedAt,
|
|
88
|
+
});
|
|
89
|
+
error(`Task "${task.name}" error: ${getErrorMessage(err)}`);
|
|
90
|
+
}
|
|
91
|
+
// 次のタスクを動的に取得(新しく追加されたタスクも含む)
|
|
92
|
+
task = taskRunner.getNextTask();
|
|
93
|
+
}
|
|
94
|
+
const totalCount = successCount + failCount;
|
|
95
|
+
console.log();
|
|
96
|
+
header('Tasks Summary');
|
|
97
|
+
status('Total', String(totalCount));
|
|
98
|
+
status('Success', String(successCount), successCount === totalCount ? 'green' : undefined);
|
|
99
|
+
if (failCount > 0) {
|
|
100
|
+
status('Failed', String(failCount), 'red');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=taskExecution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taskExecution.js","sourceRoot":"","sources":["../../src/commands/taskExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow switching command
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Switch to a different workflow
|
|
6
|
+
* @returns true if switch was successful
|
|
7
|
+
*/
|
|
8
|
+
export declare function switchWorkflow(cwd: string, workflowName?: string): Promise<boolean>;
|
|
9
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0BH;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BzF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow switching command
|
|
3
|
+
*/
|
|
4
|
+
import { listWorkflows, loadWorkflow, getBuiltinWorkflow } from '../config/index.js';
|
|
5
|
+
import { getCurrentWorkflow, setCurrentWorkflow } from '../config/paths.js';
|
|
6
|
+
import { info, success, error } from '../utils/ui.js';
|
|
7
|
+
import { selectOption } from '../interactive/prompt.js';
|
|
8
|
+
/**
|
|
9
|
+
* Get all available workflow options
|
|
10
|
+
*/
|
|
11
|
+
function getAllWorkflowOptions(cwd) {
|
|
12
|
+
const current = getCurrentWorkflow(cwd);
|
|
13
|
+
const workflows = listWorkflows();
|
|
14
|
+
const options = [];
|
|
15
|
+
// Add all workflows
|
|
16
|
+
for (const name of workflows) {
|
|
17
|
+
const isCurrent = name === current;
|
|
18
|
+
const label = isCurrent ? `${name} (current)` : name;
|
|
19
|
+
options.push({ label, value: name });
|
|
20
|
+
}
|
|
21
|
+
return options;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Switch to a different workflow
|
|
25
|
+
* @returns true if switch was successful
|
|
26
|
+
*/
|
|
27
|
+
export async function switchWorkflow(cwd, workflowName) {
|
|
28
|
+
// No workflow specified - show selection prompt
|
|
29
|
+
if (!workflowName) {
|
|
30
|
+
const current = getCurrentWorkflow(cwd);
|
|
31
|
+
info(`Current workflow: ${current}`);
|
|
32
|
+
const options = getAllWorkflowOptions(cwd);
|
|
33
|
+
const selected = await selectOption('Select workflow:', options);
|
|
34
|
+
if (!selected) {
|
|
35
|
+
info('Cancelled');
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
workflowName = selected;
|
|
39
|
+
}
|
|
40
|
+
// Check if workflow exists
|
|
41
|
+
const config = getBuiltinWorkflow(workflowName) || loadWorkflow(workflowName);
|
|
42
|
+
if (!config) {
|
|
43
|
+
error(`Workflow "${workflowName}" not found`);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
// Save to project config
|
|
47
|
+
setCurrentWorkflow(cwd, workflowName);
|
|
48
|
+
success(`Switched to workflow: ${workflowName}`);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAElC,MAAM,OAAO,GAAuC,EAAE,CAAC;IAEvD,oBAAoB;IACpB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,YAAqB;IACrE,gDAAgD;IAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;IAE9E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,aAAa,YAAY,aAAa,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yBAAyB;IACzB,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;IAEjD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow execution logic
|
|
3
|
+
*/
|
|
4
|
+
import type { WorkflowConfig } from '../models/types.js';
|
|
5
|
+
/** Result of workflow execution */
|
|
6
|
+
export interface WorkflowExecutionResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
reason?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Options for workflow execution */
|
|
11
|
+
export interface WorkflowExecutionOptions {
|
|
12
|
+
/** Resume previous session instead of starting fresh */
|
|
13
|
+
resumeSession?: boolean;
|
|
14
|
+
/** Header prefix for display */
|
|
15
|
+
headerPrefix?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Execute a workflow and handle all events
|
|
19
|
+
*/
|
|
20
|
+
export declare function executeWorkflow(workflowConfig: WorkflowConfig, task: string, cwd: string, options?: WorkflowExecutionOptions): Promise<WorkflowExecutionResult>;
|
|
21
|
+
//# sourceMappingURL=workflowExecution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflowExecution.d.ts","sourceRoot":"","sources":["../../src/commands/workflowExecution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAsBzD,mCAAmC;AACnC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CA6FlC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow execution logic
|
|
3
|
+
*/
|
|
4
|
+
import { WorkflowEngine } from '../workflow/engine.js';
|
|
5
|
+
import { loadAgentSessions, updateAgentSession, clearAgentSessions } from '../config/paths.js';
|
|
6
|
+
import { header, info, error, success, status, StreamDisplay, } from '../utils/ui.js';
|
|
7
|
+
import { generateSessionId, createSessionLog, addToSessionLog, finalizeSessionLog, saveSessionLog, } from '../utils/session.js';
|
|
8
|
+
import { createLogger } from '../utils/debug.js';
|
|
9
|
+
import { notifySuccess, notifyError } from '../utils/notification.js';
|
|
10
|
+
const log = createLogger('workflow');
|
|
11
|
+
/**
|
|
12
|
+
* Execute a workflow and handle all events
|
|
13
|
+
*/
|
|
14
|
+
export async function executeWorkflow(workflowConfig, task, cwd, options = {}) {
|
|
15
|
+
const { resumeSession = false, headerPrefix = 'Running Workflow:' } = options;
|
|
16
|
+
// Clear previous sessions if not resuming
|
|
17
|
+
if (!resumeSession) {
|
|
18
|
+
log.debug('Starting fresh session (clearing previous agent sessions)');
|
|
19
|
+
clearAgentSessions(cwd);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
log.debug('Resuming previous session');
|
|
23
|
+
}
|
|
24
|
+
header(`${headerPrefix} ${workflowConfig.name}${resumeSession ? ' (resuming)' : ''}`);
|
|
25
|
+
const workflowSessionId = generateSessionId();
|
|
26
|
+
const sessionLog = createSessionLog(task, cwd, workflowConfig.name);
|
|
27
|
+
// Track current display for streaming
|
|
28
|
+
const displayRef = { current: null };
|
|
29
|
+
// Create stream handler that delegates to current display
|
|
30
|
+
const streamHandler = (event) => {
|
|
31
|
+
if (!displayRef.current)
|
|
32
|
+
return;
|
|
33
|
+
if (event.type === 'result')
|
|
34
|
+
return;
|
|
35
|
+
displayRef.current.createHandler()(event);
|
|
36
|
+
};
|
|
37
|
+
// Load saved agent sessions for continuity
|
|
38
|
+
const savedSessions = loadAgentSessions(cwd);
|
|
39
|
+
// Session update handler - persist session IDs when they change
|
|
40
|
+
const sessionUpdateHandler = (agentName, agentSessionId) => {
|
|
41
|
+
updateAgentSession(cwd, agentName, agentSessionId);
|
|
42
|
+
};
|
|
43
|
+
const engine = new WorkflowEngine(workflowConfig, cwd, task, {
|
|
44
|
+
onStream: streamHandler,
|
|
45
|
+
initialSessions: savedSessions,
|
|
46
|
+
onSessionUpdate: sessionUpdateHandler,
|
|
47
|
+
});
|
|
48
|
+
let abortReason;
|
|
49
|
+
engine.on('step:start', (step, iteration) => {
|
|
50
|
+
log.debug('Step starting', { step: step.name, agent: step.agentDisplayName, iteration });
|
|
51
|
+
info(`[${iteration}/${workflowConfig.maxIterations}] ${step.name} (${step.agentDisplayName})`);
|
|
52
|
+
displayRef.current = new StreamDisplay(step.agentDisplayName);
|
|
53
|
+
});
|
|
54
|
+
engine.on('step:complete', (step, response) => {
|
|
55
|
+
log.debug('Step completed', {
|
|
56
|
+
step: step.name,
|
|
57
|
+
status: response.status,
|
|
58
|
+
contentLength: response.content.length,
|
|
59
|
+
});
|
|
60
|
+
if (displayRef.current) {
|
|
61
|
+
displayRef.current.flush();
|
|
62
|
+
displayRef.current = null;
|
|
63
|
+
}
|
|
64
|
+
console.log();
|
|
65
|
+
status('Status', response.status);
|
|
66
|
+
addToSessionLog(sessionLog, step.name, response);
|
|
67
|
+
});
|
|
68
|
+
engine.on('workflow:complete', (state) => {
|
|
69
|
+
log.info('Workflow completed successfully', { iterations: state.iteration });
|
|
70
|
+
finalizeSessionLog(sessionLog, 'completed');
|
|
71
|
+
const logPath = saveSessionLog(sessionLog, workflowSessionId, cwd);
|
|
72
|
+
success(`Workflow completed (${state.iteration} iterations)`);
|
|
73
|
+
info(`Session log: ${logPath}`);
|
|
74
|
+
notifySuccess('TAKT', `ワークフロー完了 (${state.iteration} iterations)`);
|
|
75
|
+
});
|
|
76
|
+
engine.on('workflow:abort', (state, reason) => {
|
|
77
|
+
log.error('Workflow aborted', { reason, iterations: state.iteration });
|
|
78
|
+
if (displayRef.current) {
|
|
79
|
+
displayRef.current.flush();
|
|
80
|
+
displayRef.current = null;
|
|
81
|
+
}
|
|
82
|
+
abortReason = reason;
|
|
83
|
+
finalizeSessionLog(sessionLog, 'aborted');
|
|
84
|
+
const logPath = saveSessionLog(sessionLog, workflowSessionId, cwd);
|
|
85
|
+
error(`Workflow aborted after ${state.iteration} iterations: ${reason}`);
|
|
86
|
+
info(`Session log: ${logPath}`);
|
|
87
|
+
notifyError('TAKT', `中断: ${reason}`);
|
|
88
|
+
});
|
|
89
|
+
const finalState = await engine.run();
|
|
90
|
+
return {
|
|
91
|
+
success: finalState.status === 'completed',
|
|
92
|
+
reason: abortReason,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=workflowExecution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflowExecution.js","sourceRoot":"","sources":["../../src/commands/workflowExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent configuration loader
|
|
3
|
+
*
|
|
4
|
+
* Loads agents from ~/.takt/agents/ directory only.
|
|
5
|
+
*/
|
|
6
|
+
import type { CustomAgentConfig } from '../models/types.js';
|
|
7
|
+
/** Load agents from markdown files in a directory */
|
|
8
|
+
export declare function loadAgentsFromDir(dirPath: string): CustomAgentConfig[];
|
|
9
|
+
/** Load all custom agents from global directory (~/.takt/agents/) */
|
|
10
|
+
export declare function loadCustomAgents(): Map<string, CustomAgentConfig>;
|
|
11
|
+
/** List available custom agents */
|
|
12
|
+
export declare function listCustomAgents(): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Load agent prompt content.
|
|
15
|
+
* Agents can be loaded from:
|
|
16
|
+
* - ~/.takt/agents/*.md (global agents)
|
|
17
|
+
* - ~/.takt/workflows/{workflow}/*.md (workflow-specific agents)
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadAgentPrompt(agent: CustomAgentConfig): string;
|
|
20
|
+
/**
|
|
21
|
+
* Load agent prompt from a resolved path.
|
|
22
|
+
* Used by workflow engine when agentPath is already resolved.
|
|
23
|
+
*/
|
|
24
|
+
export declare function loadAgentPromptFromPath(agentPath: string): string;
|
|
25
|
+
//# sourceMappingURL=agentLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoader.d.ts","sourceRoot":"","sources":["../../src/config/agentLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAO5D,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAgBtE;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CASjE;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CA+BhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBjE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent configuration loader
|
|
3
|
+
*
|
|
4
|
+
* Loads agents from ~/.takt/agents/ directory only.
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, existsSync, readdirSync } from 'node:fs';
|
|
7
|
+
import { join, basename } from 'node:path';
|
|
8
|
+
import { getGlobalAgentsDir, getGlobalWorkflowsDir, isPathSafe, } from './paths.js';
|
|
9
|
+
/** Load agents from markdown files in a directory */
|
|
10
|
+
export function loadAgentsFromDir(dirPath) {
|
|
11
|
+
if (!existsSync(dirPath)) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const agents = [];
|
|
15
|
+
for (const file of readdirSync(dirPath)) {
|
|
16
|
+
if (file.endsWith('.md')) {
|
|
17
|
+
const name = basename(file, '.md');
|
|
18
|
+
const promptFile = join(dirPath, file);
|
|
19
|
+
agents.push({
|
|
20
|
+
name,
|
|
21
|
+
promptFile,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return agents;
|
|
26
|
+
}
|
|
27
|
+
/** Load all custom agents from global directory (~/.takt/agents/) */
|
|
28
|
+
export function loadCustomAgents() {
|
|
29
|
+
const agents = new Map();
|
|
30
|
+
// Global agents from markdown files (~/.takt/agents/*.md)
|
|
31
|
+
for (const agent of loadAgentsFromDir(getGlobalAgentsDir())) {
|
|
32
|
+
agents.set(agent.name, agent);
|
|
33
|
+
}
|
|
34
|
+
return agents;
|
|
35
|
+
}
|
|
36
|
+
/** List available custom agents */
|
|
37
|
+
export function listCustomAgents() {
|
|
38
|
+
return Array.from(loadCustomAgents().keys()).sort();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Load agent prompt content.
|
|
42
|
+
* Agents can be loaded from:
|
|
43
|
+
* - ~/.takt/agents/*.md (global agents)
|
|
44
|
+
* - ~/.takt/workflows/{workflow}/*.md (workflow-specific agents)
|
|
45
|
+
*/
|
|
46
|
+
export function loadAgentPrompt(agent) {
|
|
47
|
+
if (agent.prompt) {
|
|
48
|
+
return agent.prompt;
|
|
49
|
+
}
|
|
50
|
+
if (agent.promptFile) {
|
|
51
|
+
const allowedBases = [
|
|
52
|
+
getGlobalAgentsDir(),
|
|
53
|
+
getGlobalWorkflowsDir(),
|
|
54
|
+
];
|
|
55
|
+
let isValid = false;
|
|
56
|
+
for (const base of allowedBases) {
|
|
57
|
+
if (isPathSafe(base, agent.promptFile)) {
|
|
58
|
+
isValid = true;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!isValid) {
|
|
63
|
+
throw new Error(`Agent prompt file path is not allowed: ${agent.promptFile}`);
|
|
64
|
+
}
|
|
65
|
+
if (!existsSync(agent.promptFile)) {
|
|
66
|
+
throw new Error(`Agent prompt file not found: ${agent.promptFile}`);
|
|
67
|
+
}
|
|
68
|
+
return readFileSync(agent.promptFile, 'utf-8');
|
|
69
|
+
}
|
|
70
|
+
throw new Error(`Agent ${agent.name} has no prompt defined`);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Load agent prompt from a resolved path.
|
|
74
|
+
* Used by workflow engine when agentPath is already resolved.
|
|
75
|
+
*/
|
|
76
|
+
export function loadAgentPromptFromPath(agentPath) {
|
|
77
|
+
const allowedBases = [
|
|
78
|
+
getGlobalAgentsDir(),
|
|
79
|
+
getGlobalWorkflowsDir(),
|
|
80
|
+
];
|
|
81
|
+
let isValid = false;
|
|
82
|
+
for (const base of allowedBases) {
|
|
83
|
+
if (isPathSafe(base, agentPath)) {
|
|
84
|
+
isValid = true;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (!isValid) {
|
|
89
|
+
throw new Error(`Agent prompt file path is not allowed: ${agentPath}`);
|
|
90
|
+
}
|
|
91
|
+
if (!existsSync(agentPath)) {
|
|
92
|
+
throw new Error(`Agent prompt file not found: ${agentPath}`);
|
|
93
|
+
}
|
|
94
|
+
return readFileSync(agentPath, 'utf-8');
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=agentLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoader.js","sourceRoot":"","sources":["../../src/config/agentLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global configuration loader
|
|
3
|
+
*
|
|
4
|
+
* Manages ~/.takt/config.yaml and project-level debug settings.
|
|
5
|
+
*/
|
|
6
|
+
import type { GlobalConfig, DebugConfig, Language } from '../models/types.js';
|
|
7
|
+
/** Load global configuration */
|
|
8
|
+
export declare function loadGlobalConfig(): GlobalConfig;
|
|
9
|
+
/** Save global configuration */
|
|
10
|
+
export declare function saveGlobalConfig(config: GlobalConfig): void;
|
|
11
|
+
/** Get current language setting */
|
|
12
|
+
export declare function getLanguage(): Language;
|
|
13
|
+
/** Set language setting */
|
|
14
|
+
export declare function setLanguage(language: Language): void;
|
|
15
|
+
/** Add a trusted directory */
|
|
16
|
+
export declare function addTrustedDirectory(dir: string): void;
|
|
17
|
+
/** Check if a directory is trusted */
|
|
18
|
+
export declare function isDirectoryTrusted(dir: string): boolean;
|
|
19
|
+
/** Load project-level debug configuration (from .takt/config.yaml) */
|
|
20
|
+
export declare function loadProjectDebugConfig(projectDir: string): DebugConfig | undefined;
|
|
21
|
+
/** Get effective debug config (project overrides global) */
|
|
22
|
+
export declare function getEffectiveDebugConfig(projectDir?: string): DebugConfig | undefined;
|
|
23
|
+
//# sourceMappingURL=globalConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalConfig.d.ts","sourceRoot":"","sources":["../../src/config/globalConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9E,gCAAgC;AAChC,wBAAgB,gBAAgB,IAAI,YAAY,CAqB/C;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAe3D;AAED,mCAAmC;AACnC,wBAAgB,WAAW,IAAI,QAAQ,CAOtC;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIpD;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,sCAAsC;AACtC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAqBlF;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAYpF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global configuration loader
|
|
3
|
+
*
|
|
4
|
+
* Manages ~/.takt/config.yaml and project-level debug settings.
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, existsSync, writeFileSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
9
|
+
import { GlobalConfigSchema } from '../models/schemas.js';
|
|
10
|
+
import { getGlobalConfigPath, getProjectConfigPath } from './paths.js';
|
|
11
|
+
import { DEFAULT_LANGUAGE } from '../constants.js';
|
|
12
|
+
/** Load global configuration */
|
|
13
|
+
export function loadGlobalConfig() {
|
|
14
|
+
const configPath = getGlobalConfigPath();
|
|
15
|
+
if (!existsSync(configPath)) {
|
|
16
|
+
throw new Error(`Global config not found: ${configPath}\n` +
|
|
17
|
+
'Run takt once to initialize the configuration.');
|
|
18
|
+
}
|
|
19
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
20
|
+
const raw = parseYaml(content);
|
|
21
|
+
const parsed = GlobalConfigSchema.parse(raw);
|
|
22
|
+
return {
|
|
23
|
+
language: parsed.language,
|
|
24
|
+
trustedDirectories: parsed.trusted_directories,
|
|
25
|
+
defaultWorkflow: parsed.default_workflow,
|
|
26
|
+
logLevel: parsed.log_level,
|
|
27
|
+
debug: parsed.debug ? {
|
|
28
|
+
enabled: parsed.debug.enabled,
|
|
29
|
+
logFile: parsed.debug.log_file,
|
|
30
|
+
} : undefined,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Save global configuration */
|
|
34
|
+
export function saveGlobalConfig(config) {
|
|
35
|
+
const configPath = getGlobalConfigPath();
|
|
36
|
+
const raw = {
|
|
37
|
+
language: config.language,
|
|
38
|
+
trusted_directories: config.trustedDirectories,
|
|
39
|
+
default_workflow: config.defaultWorkflow,
|
|
40
|
+
log_level: config.logLevel,
|
|
41
|
+
};
|
|
42
|
+
if (config.debug) {
|
|
43
|
+
raw.debug = {
|
|
44
|
+
enabled: config.debug.enabled,
|
|
45
|
+
log_file: config.debug.logFile,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
writeFileSync(configPath, stringifyYaml(raw), 'utf-8');
|
|
49
|
+
}
|
|
50
|
+
/** Get current language setting */
|
|
51
|
+
export function getLanguage() {
|
|
52
|
+
try {
|
|
53
|
+
const config = loadGlobalConfig();
|
|
54
|
+
return config.language;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return DEFAULT_LANGUAGE;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Set language setting */
|
|
61
|
+
export function setLanguage(language) {
|
|
62
|
+
const config = loadGlobalConfig();
|
|
63
|
+
config.language = language;
|
|
64
|
+
saveGlobalConfig(config);
|
|
65
|
+
}
|
|
66
|
+
/** Add a trusted directory */
|
|
67
|
+
export function addTrustedDirectory(dir) {
|
|
68
|
+
const config = loadGlobalConfig();
|
|
69
|
+
const resolvedDir = join(dir);
|
|
70
|
+
if (!config.trustedDirectories.includes(resolvedDir)) {
|
|
71
|
+
config.trustedDirectories.push(resolvedDir);
|
|
72
|
+
saveGlobalConfig(config);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** Check if a directory is trusted */
|
|
76
|
+
export function isDirectoryTrusted(dir) {
|
|
77
|
+
const config = loadGlobalConfig();
|
|
78
|
+
const resolvedDir = join(dir);
|
|
79
|
+
return config.trustedDirectories.some((trusted) => resolvedDir === trusted || resolvedDir.startsWith(trusted + '/'));
|
|
80
|
+
}
|
|
81
|
+
/** Load project-level debug configuration (from .takt/config.yaml) */
|
|
82
|
+
export function loadProjectDebugConfig(projectDir) {
|
|
83
|
+
const configPath = getProjectConfigPath(projectDir);
|
|
84
|
+
if (!existsSync(configPath)) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
89
|
+
const raw = parseYaml(content);
|
|
90
|
+
if (raw && typeof raw === 'object' && 'debug' in raw) {
|
|
91
|
+
const debug = raw.debug;
|
|
92
|
+
if (debug && typeof debug === 'object') {
|
|
93
|
+
return {
|
|
94
|
+
enabled: Boolean(debug.enabled),
|
|
95
|
+
logFile: typeof debug.log_file === 'string' ? debug.log_file : undefined,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Ignore parse errors
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
/** Get effective debug config (project overrides global) */
|
|
106
|
+
export function getEffectiveDebugConfig(projectDir) {
|
|
107
|
+
const globalConfig = loadGlobalConfig();
|
|
108
|
+
let debugConfig = globalConfig.debug;
|
|
109
|
+
if (projectDir) {
|
|
110
|
+
const projectDebugConfig = loadProjectDebugConfig(projectDir);
|
|
111
|
+
if (projectDebugConfig) {
|
|
112
|
+
debugConfig = projectDebugConfig;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return debugConfig;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=globalConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalConfig.js","sourceRoot":"","sources":["../../src/config/globalConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,gCAAgC;AAChC,MAAM,UAAU,gBAAgB;IAC9B,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,IAAI;YAC1C,gDAAgD,CACjD,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,kBAAkB,EAAE,MAAM,CAAC,mBAAmB;QAC9C,eAAe,EAAE,MAAM,CAAC,gBAAgB;QACxC,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;SAC/B,CAAC,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,GAAG,GAA4B;QACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,mBAAmB,EAAE,MAAM,CAAC,kBAAkB;QAC9C,gBAAgB,EAAE,MAAM,CAAC,eAAe;QACxC,SAAS,EAAE,MAAM,CAAC,QAAQ;KAC3B,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,GAAG;YACV,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;SAC/B,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI,CACnC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,KAAK,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,CAC9E,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/B,OAAO,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;iBACzE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB,CAAC,UAAmB;IACzD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,IAAI,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;IAErC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,kBAAkB,EAAE,CAAC;YACvB,WAAW,GAAG,kBAAkB,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialization module for first-time setup
|
|
3
|
+
*
|
|
4
|
+
* Handles language selection and initial resource setup.
|
|
5
|
+
* Separated from paths.ts to avoid UI dependencies in utility modules.
|
|
6
|
+
*/
|
|
7
|
+
import type { Language } from '../models/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Check if language-specific resources need to be initialized.
|
|
10
|
+
* Returns true if agents or workflows directories don't exist.
|
|
11
|
+
*/
|
|
12
|
+
export declare function needsLanguageSetup(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Prompt user to select language for resources.
|
|
15
|
+
* Returns 'en' for English (default), 'ja' for Japanese.
|
|
16
|
+
*/
|
|
17
|
+
export declare function promptLanguageSelection(): Promise<Language>;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize global takt directory structure with language selection.
|
|
20
|
+
* If agents/workflows don't exist, prompts user for language preference.
|
|
21
|
+
*/
|
|
22
|
+
export declare function initGlobalDirs(): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=initialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialization.d.ts","sourceRoot":"","sources":["../../src/config/initialization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAgBnD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAWjE;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBpD"}
|