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,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI utilities for terminal output
|
|
3
|
+
*/
|
|
4
|
+
import type { StreamCallback } from '../claude/process.js';
|
|
5
|
+
/** Log levels */
|
|
6
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
7
|
+
/** Set log level */
|
|
8
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
9
|
+
/** Log a debug message */
|
|
10
|
+
export declare function debug(message: string): void;
|
|
11
|
+
/** Log an info message */
|
|
12
|
+
export declare function info(message: string): void;
|
|
13
|
+
/** Log a warning message */
|
|
14
|
+
export declare function warn(message: string): void;
|
|
15
|
+
/** Log an error message */
|
|
16
|
+
export declare function error(message: string): void;
|
|
17
|
+
/** Log a success message */
|
|
18
|
+
export declare function success(message: string): void;
|
|
19
|
+
/** Print a header */
|
|
20
|
+
export declare function header(title: string): void;
|
|
21
|
+
/** Print a section title */
|
|
22
|
+
export declare function section(title: string): void;
|
|
23
|
+
/** Print status */
|
|
24
|
+
export declare function status(label: string, value: string, color?: 'green' | 'yellow' | 'red'): void;
|
|
25
|
+
/** Spinner for async operations */
|
|
26
|
+
export declare class Spinner {
|
|
27
|
+
private intervalId?;
|
|
28
|
+
private frames;
|
|
29
|
+
private currentFrame;
|
|
30
|
+
private message;
|
|
31
|
+
constructor(message: string);
|
|
32
|
+
/** Start the spinner */
|
|
33
|
+
start(): void;
|
|
34
|
+
/** Stop the spinner */
|
|
35
|
+
stop(finalMessage?: string): void;
|
|
36
|
+
/** Update spinner message */
|
|
37
|
+
update(message: string): void;
|
|
38
|
+
}
|
|
39
|
+
/** Create a progress bar */
|
|
40
|
+
export declare function progressBar(current: number, total: number, width?: number): string;
|
|
41
|
+
/** Format a list of items */
|
|
42
|
+
export declare function list(items: string[], bullet?: string): void;
|
|
43
|
+
/** Print a divider */
|
|
44
|
+
export declare function divider(char?: string, length?: number): void;
|
|
45
|
+
/** Truncate text with ellipsis */
|
|
46
|
+
export declare function truncate(text: string, maxLength: number): string;
|
|
47
|
+
/** Stream display manager for real-time Claude output */
|
|
48
|
+
export declare class StreamDisplay {
|
|
49
|
+
private agentName;
|
|
50
|
+
private lastToolUse;
|
|
51
|
+
private textBuffer;
|
|
52
|
+
private thinkingBuffer;
|
|
53
|
+
private isFirstText;
|
|
54
|
+
private isFirstThinking;
|
|
55
|
+
private toolSpinner;
|
|
56
|
+
private spinnerFrames;
|
|
57
|
+
private spinnerFrame;
|
|
58
|
+
constructor(agentName?: string);
|
|
59
|
+
/** Display initialization event */
|
|
60
|
+
showInit(model: string): void;
|
|
61
|
+
/** Start spinner for tool execution */
|
|
62
|
+
private startToolSpinner;
|
|
63
|
+
/** Stop the tool spinner */
|
|
64
|
+
private stopToolSpinner;
|
|
65
|
+
/** Display tool use event */
|
|
66
|
+
showToolUse(tool: string, input: Record<string, unknown>): void;
|
|
67
|
+
/** Display tool result event */
|
|
68
|
+
showToolResult(content: string, isError: boolean): void;
|
|
69
|
+
/** Display streaming thinking (Claude's internal reasoning) */
|
|
70
|
+
showThinking(thinking: string): void;
|
|
71
|
+
/** Flush any remaining thinking */
|
|
72
|
+
flushThinking(): void;
|
|
73
|
+
/** Display streaming text (accumulated) */
|
|
74
|
+
showText(text: string): void;
|
|
75
|
+
/** Flush any remaining text */
|
|
76
|
+
flushText(): void;
|
|
77
|
+
/** Flush both thinking and text buffers */
|
|
78
|
+
flush(): void;
|
|
79
|
+
/** Display final result */
|
|
80
|
+
showResult(success: boolean): void;
|
|
81
|
+
/** Reset state for new interaction */
|
|
82
|
+
reset(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Create a stream event handler for this display.
|
|
85
|
+
* This centralizes the event handling logic to avoid code duplication.
|
|
86
|
+
*/
|
|
87
|
+
createHandler(): StreamCallback;
|
|
88
|
+
/** Format tool input for display */
|
|
89
|
+
private formatToolInput;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ui.js
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI utilities for terminal output
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
/** Current log level */
|
|
6
|
+
let currentLogLevel = 'info';
|
|
7
|
+
/** Log level priorities */
|
|
8
|
+
const LOG_PRIORITIES = {
|
|
9
|
+
debug: 0,
|
|
10
|
+
info: 1,
|
|
11
|
+
warn: 2,
|
|
12
|
+
error: 3,
|
|
13
|
+
};
|
|
14
|
+
/** Set log level */
|
|
15
|
+
export function setLogLevel(level) {
|
|
16
|
+
currentLogLevel = level;
|
|
17
|
+
}
|
|
18
|
+
/** Check if a log level should be shown */
|
|
19
|
+
function shouldLog(level) {
|
|
20
|
+
return LOG_PRIORITIES[level] >= LOG_PRIORITIES[currentLogLevel];
|
|
21
|
+
}
|
|
22
|
+
/** Log a debug message */
|
|
23
|
+
export function debug(message) {
|
|
24
|
+
if (shouldLog('debug')) {
|
|
25
|
+
console.log(chalk.gray(`[DEBUG] ${message}`));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** Log an info message */
|
|
29
|
+
export function info(message) {
|
|
30
|
+
if (shouldLog('info')) {
|
|
31
|
+
console.log(chalk.blue(`[INFO] ${message}`));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Log a warning message */
|
|
35
|
+
export function warn(message) {
|
|
36
|
+
if (shouldLog('warn')) {
|
|
37
|
+
console.log(chalk.yellow(`[WARN] ${message}`));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Log an error message */
|
|
41
|
+
export function error(message) {
|
|
42
|
+
if (shouldLog('error')) {
|
|
43
|
+
console.log(chalk.red(`[ERROR] ${message}`));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Log a success message */
|
|
47
|
+
export function success(message) {
|
|
48
|
+
console.log(chalk.green(message));
|
|
49
|
+
}
|
|
50
|
+
/** Print a header */
|
|
51
|
+
export function header(title) {
|
|
52
|
+
console.log();
|
|
53
|
+
console.log(chalk.bold.cyan(`=== ${title} ===`));
|
|
54
|
+
console.log();
|
|
55
|
+
}
|
|
56
|
+
/** Print a section title */
|
|
57
|
+
export function section(title) {
|
|
58
|
+
console.log(chalk.bold(`\n${title}`));
|
|
59
|
+
}
|
|
60
|
+
/** Print status */
|
|
61
|
+
export function status(label, value, color) {
|
|
62
|
+
const colorFn = color ? chalk[color] : chalk.white;
|
|
63
|
+
console.log(`${chalk.gray(label)}: ${colorFn(value)}`);
|
|
64
|
+
}
|
|
65
|
+
/** Spinner for async operations */
|
|
66
|
+
export class Spinner {
|
|
67
|
+
intervalId;
|
|
68
|
+
frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
69
|
+
currentFrame = 0;
|
|
70
|
+
message;
|
|
71
|
+
constructor(message) {
|
|
72
|
+
this.message = message;
|
|
73
|
+
}
|
|
74
|
+
/** Start the spinner */
|
|
75
|
+
start() {
|
|
76
|
+
this.intervalId = setInterval(() => {
|
|
77
|
+
process.stdout.write(`\r${chalk.cyan(this.frames[this.currentFrame])} ${this.message}`);
|
|
78
|
+
this.currentFrame = (this.currentFrame + 1) % this.frames.length;
|
|
79
|
+
}, 80);
|
|
80
|
+
}
|
|
81
|
+
/** Stop the spinner */
|
|
82
|
+
stop(finalMessage) {
|
|
83
|
+
if (this.intervalId) {
|
|
84
|
+
clearInterval(this.intervalId);
|
|
85
|
+
this.intervalId = undefined;
|
|
86
|
+
}
|
|
87
|
+
process.stdout.write('\r' + ' '.repeat(this.message.length + 10) + '\r');
|
|
88
|
+
if (finalMessage) {
|
|
89
|
+
console.log(finalMessage);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Update spinner message */
|
|
93
|
+
update(message) {
|
|
94
|
+
this.message = message;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Create a progress bar */
|
|
98
|
+
export function progressBar(current, total, width = 30) {
|
|
99
|
+
const percentage = Math.floor((current / total) * 100);
|
|
100
|
+
const filled = Math.floor((current / total) * width);
|
|
101
|
+
const empty = width - filled;
|
|
102
|
+
const bar = chalk.green('█'.repeat(filled)) + chalk.gray('░'.repeat(empty));
|
|
103
|
+
return `[${bar}] ${percentage}%`;
|
|
104
|
+
}
|
|
105
|
+
/** Format a list of items */
|
|
106
|
+
export function list(items, bullet = '•') {
|
|
107
|
+
for (const item of items) {
|
|
108
|
+
console.log(chalk.gray(bullet) + ' ' + item);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** Print a divider */
|
|
112
|
+
export function divider(char = '─', length = 40) {
|
|
113
|
+
console.log(chalk.gray(char.repeat(length)));
|
|
114
|
+
}
|
|
115
|
+
/** Truncate text with ellipsis */
|
|
116
|
+
export function truncate(text, maxLength) {
|
|
117
|
+
if (text.length <= maxLength) {
|
|
118
|
+
return text;
|
|
119
|
+
}
|
|
120
|
+
return text.slice(0, maxLength - 3) + '...';
|
|
121
|
+
}
|
|
122
|
+
/** Stream display manager for real-time Claude output */
|
|
123
|
+
export class StreamDisplay {
|
|
124
|
+
agentName;
|
|
125
|
+
lastToolUse = null;
|
|
126
|
+
textBuffer = '';
|
|
127
|
+
thinkingBuffer = '';
|
|
128
|
+
isFirstText = true;
|
|
129
|
+
isFirstThinking = true;
|
|
130
|
+
toolSpinner = null;
|
|
131
|
+
spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
132
|
+
spinnerFrame = 0;
|
|
133
|
+
constructor(agentName = 'Claude') {
|
|
134
|
+
this.agentName = agentName;
|
|
135
|
+
}
|
|
136
|
+
/** Display initialization event */
|
|
137
|
+
showInit(model) {
|
|
138
|
+
console.log(chalk.gray(`[${this.agentName}] Model: ${model}`));
|
|
139
|
+
}
|
|
140
|
+
/** Start spinner for tool execution */
|
|
141
|
+
startToolSpinner(tool, inputPreview) {
|
|
142
|
+
this.stopToolSpinner();
|
|
143
|
+
const message = `${chalk.yellow(tool)} ${chalk.gray(inputPreview)}`;
|
|
144
|
+
this.toolSpinner = {
|
|
145
|
+
intervalId: setInterval(() => {
|
|
146
|
+
const frame = this.spinnerFrames[this.spinnerFrame];
|
|
147
|
+
this.spinnerFrame = (this.spinnerFrame + 1) % this.spinnerFrames.length;
|
|
148
|
+
process.stdout.write(`\r ${chalk.cyan(frame)} ${message}`);
|
|
149
|
+
}, 80),
|
|
150
|
+
toolName: tool,
|
|
151
|
+
message,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/** Stop the tool spinner */
|
|
155
|
+
stopToolSpinner() {
|
|
156
|
+
if (this.toolSpinner) {
|
|
157
|
+
clearInterval(this.toolSpinner.intervalId);
|
|
158
|
+
// Clear the entire line to avoid artifacts from ANSI color codes
|
|
159
|
+
process.stdout.write('\r' + ' '.repeat(120) + '\r');
|
|
160
|
+
this.toolSpinner = null;
|
|
161
|
+
this.spinnerFrame = 0;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/** Display tool use event */
|
|
165
|
+
showToolUse(tool, input) {
|
|
166
|
+
// Clear any buffered text first
|
|
167
|
+
this.flushText();
|
|
168
|
+
const inputPreview = this.formatToolInput(tool, input);
|
|
169
|
+
// Start spinner to show tool is executing
|
|
170
|
+
this.startToolSpinner(tool, inputPreview);
|
|
171
|
+
this.lastToolUse = tool;
|
|
172
|
+
}
|
|
173
|
+
/** Display tool result event */
|
|
174
|
+
showToolResult(content, isError) {
|
|
175
|
+
// Stop the spinner first
|
|
176
|
+
this.stopToolSpinner();
|
|
177
|
+
const toolName = this.lastToolUse || 'Tool';
|
|
178
|
+
if (isError) {
|
|
179
|
+
const errorContent = content || 'Unknown error';
|
|
180
|
+
console.log(chalk.red(` ✗ ${toolName}:`), chalk.red(truncate(errorContent, 70)));
|
|
181
|
+
}
|
|
182
|
+
else if (content && content.length > 0) {
|
|
183
|
+
// Show a brief preview of the result
|
|
184
|
+
const preview = content.split('\n')[0] || content;
|
|
185
|
+
console.log(chalk.green(` ✓ ${toolName}`), chalk.gray(truncate(preview, 60)));
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
console.log(chalk.green(` ✓ ${toolName}`));
|
|
189
|
+
}
|
|
190
|
+
this.lastToolUse = null;
|
|
191
|
+
}
|
|
192
|
+
/** Display streaming thinking (Claude's internal reasoning) */
|
|
193
|
+
showThinking(thinking) {
|
|
194
|
+
// Stop spinner if running
|
|
195
|
+
this.stopToolSpinner();
|
|
196
|
+
// Flush any regular text first
|
|
197
|
+
this.flushText();
|
|
198
|
+
if (this.isFirstThinking) {
|
|
199
|
+
console.log();
|
|
200
|
+
console.log(chalk.magenta(`💭 [${this.agentName} thinking]:`));
|
|
201
|
+
this.isFirstThinking = false;
|
|
202
|
+
}
|
|
203
|
+
// Write thinking in a dimmed/italic style
|
|
204
|
+
process.stdout.write(chalk.gray.italic(thinking));
|
|
205
|
+
this.thinkingBuffer += thinking;
|
|
206
|
+
}
|
|
207
|
+
/** Flush any remaining thinking */
|
|
208
|
+
flushThinking() {
|
|
209
|
+
if (this.thinkingBuffer) {
|
|
210
|
+
if (!this.thinkingBuffer.endsWith('\n')) {
|
|
211
|
+
console.log();
|
|
212
|
+
}
|
|
213
|
+
this.thinkingBuffer = '';
|
|
214
|
+
this.isFirstThinking = true;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/** Display streaming text (accumulated) */
|
|
218
|
+
showText(text) {
|
|
219
|
+
// Stop spinner if running
|
|
220
|
+
this.stopToolSpinner();
|
|
221
|
+
// Flush any thinking first
|
|
222
|
+
this.flushThinking();
|
|
223
|
+
if (this.isFirstText) {
|
|
224
|
+
console.log();
|
|
225
|
+
console.log(chalk.cyan(`[${this.agentName}]:`));
|
|
226
|
+
this.isFirstText = false;
|
|
227
|
+
}
|
|
228
|
+
// Write directly to stdout without newline for smooth streaming
|
|
229
|
+
process.stdout.write(text);
|
|
230
|
+
this.textBuffer += text;
|
|
231
|
+
}
|
|
232
|
+
/** Flush any remaining text */
|
|
233
|
+
flushText() {
|
|
234
|
+
if (this.textBuffer) {
|
|
235
|
+
// Ensure we end with a newline
|
|
236
|
+
if (!this.textBuffer.endsWith('\n')) {
|
|
237
|
+
console.log();
|
|
238
|
+
}
|
|
239
|
+
this.textBuffer = '';
|
|
240
|
+
this.isFirstText = true;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/** Flush both thinking and text buffers */
|
|
244
|
+
flush() {
|
|
245
|
+
this.stopToolSpinner();
|
|
246
|
+
this.flushThinking();
|
|
247
|
+
this.flushText();
|
|
248
|
+
}
|
|
249
|
+
/** Display final result */
|
|
250
|
+
showResult(success) {
|
|
251
|
+
this.stopToolSpinner();
|
|
252
|
+
this.flushThinking();
|
|
253
|
+
this.flushText();
|
|
254
|
+
console.log();
|
|
255
|
+
if (success) {
|
|
256
|
+
console.log(chalk.green('✓ Complete'));
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
console.log(chalk.red('✗ Failed'));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/** Reset state for new interaction */
|
|
263
|
+
reset() {
|
|
264
|
+
this.stopToolSpinner();
|
|
265
|
+
this.lastToolUse = null;
|
|
266
|
+
this.textBuffer = '';
|
|
267
|
+
this.thinkingBuffer = '';
|
|
268
|
+
this.isFirstText = true;
|
|
269
|
+
this.isFirstThinking = true;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Create a stream event handler for this display.
|
|
273
|
+
* This centralizes the event handling logic to avoid code duplication.
|
|
274
|
+
*/
|
|
275
|
+
createHandler() {
|
|
276
|
+
return (event) => {
|
|
277
|
+
switch (event.type) {
|
|
278
|
+
case 'init':
|
|
279
|
+
this.showInit(event.data.model);
|
|
280
|
+
break;
|
|
281
|
+
case 'tool_use':
|
|
282
|
+
this.showToolUse(event.data.tool, event.data.input);
|
|
283
|
+
break;
|
|
284
|
+
case 'tool_result':
|
|
285
|
+
this.showToolResult(event.data.content, event.data.isError);
|
|
286
|
+
break;
|
|
287
|
+
case 'text':
|
|
288
|
+
this.showText(event.data.text);
|
|
289
|
+
break;
|
|
290
|
+
case 'thinking':
|
|
291
|
+
this.showThinking(event.data.thinking);
|
|
292
|
+
break;
|
|
293
|
+
case 'result':
|
|
294
|
+
this.showResult(event.data.success);
|
|
295
|
+
break;
|
|
296
|
+
case 'error':
|
|
297
|
+
// Parse errors are logged but not displayed to user
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
/** Format tool input for display */
|
|
303
|
+
formatToolInput(tool, input) {
|
|
304
|
+
switch (tool) {
|
|
305
|
+
case 'Bash':
|
|
306
|
+
return truncate(String(input.command || ''), 60);
|
|
307
|
+
case 'Read':
|
|
308
|
+
return truncate(String(input.file_path || ''), 60);
|
|
309
|
+
case 'Write':
|
|
310
|
+
case 'Edit':
|
|
311
|
+
return truncate(String(input.file_path || ''), 60);
|
|
312
|
+
case 'Glob':
|
|
313
|
+
return truncate(String(input.pattern || ''), 60);
|
|
314
|
+
case 'Grep':
|
|
315
|
+
return truncate(String(input.pattern || ''), 60);
|
|
316
|
+
default: {
|
|
317
|
+
const keys = Object.keys(input);
|
|
318
|
+
if (keys.length === 0)
|
|
319
|
+
return '';
|
|
320
|
+
const firstKey = keys[0];
|
|
321
|
+
if (firstKey) {
|
|
322
|
+
const value = input[firstKey];
|
|
323
|
+
return truncate(String(value || ''), 50);
|
|
324
|
+
}
|
|
325
|
+
return '';
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blocked state handler for workflow execution
|
|
3
|
+
*
|
|
4
|
+
* Handles the case when an agent returns a blocked status,
|
|
5
|
+
* requesting user input to continue.
|
|
6
|
+
*/
|
|
7
|
+
import type { WorkflowStep, AgentResponse } from '../models/types.js';
|
|
8
|
+
import type { WorkflowEngineOptions } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Result of handling a blocked state.
|
|
11
|
+
*/
|
|
12
|
+
export interface BlockedHandlerResult {
|
|
13
|
+
/** Whether the workflow should continue */
|
|
14
|
+
shouldContinue: boolean;
|
|
15
|
+
/** The user input provided (if any) */
|
|
16
|
+
userInput?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Handle blocked status by requesting user input.
|
|
20
|
+
*
|
|
21
|
+
* @param step - The step that is blocked
|
|
22
|
+
* @param response - The blocked response from the agent
|
|
23
|
+
* @param options - Workflow engine options containing callbacks
|
|
24
|
+
* @returns Result indicating whether to continue and any user input
|
|
25
|
+
*/
|
|
26
|
+
export declare function handleBlocked(step: WorkflowStep, response: AgentResponse, options: WorkflowEngineOptions): Promise<BlockedHandlerResult>;
|
|
27
|
+
//# sourceMappingURL=blocked-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocked-handler.d.ts","sourceRoot":"","sources":["../../src/workflow/blocked-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAG1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA4B/B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blocked state handler for workflow execution
|
|
3
|
+
*
|
|
4
|
+
* Handles the case when an agent returns a blocked status,
|
|
5
|
+
* requesting user input to continue.
|
|
6
|
+
*/
|
|
7
|
+
import { extractBlockedPrompt } from './transitions.js';
|
|
8
|
+
/**
|
|
9
|
+
* Handle blocked status by requesting user input.
|
|
10
|
+
*
|
|
11
|
+
* @param step - The step that is blocked
|
|
12
|
+
* @param response - The blocked response from the agent
|
|
13
|
+
* @param options - Workflow engine options containing callbacks
|
|
14
|
+
* @returns Result indicating whether to continue and any user input
|
|
15
|
+
*/
|
|
16
|
+
export async function handleBlocked(step, response, options) {
|
|
17
|
+
// If no user input callback is provided, cannot continue
|
|
18
|
+
if (!options.onUserInput) {
|
|
19
|
+
return { shouldContinue: false };
|
|
20
|
+
}
|
|
21
|
+
// Extract prompt from blocked message
|
|
22
|
+
const prompt = extractBlockedPrompt(response.content);
|
|
23
|
+
// Build the request
|
|
24
|
+
const request = {
|
|
25
|
+
step,
|
|
26
|
+
response,
|
|
27
|
+
prompt,
|
|
28
|
+
};
|
|
29
|
+
// Request user input
|
|
30
|
+
const userInput = await options.onUserInput(request);
|
|
31
|
+
// If user cancels (returns null), abort
|
|
32
|
+
if (userInput === null) {
|
|
33
|
+
return { shouldContinue: false };
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
shouldContinue: true,
|
|
37
|
+
userInput,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=blocked-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocked-handler.js","sourceRoot":"","sources":["../../src/workflow/blocked-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAYxD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAkB,EAClB,QAAuB,EACvB,OAA8B;IAE9B,yDAAyD;IACzD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtD,oBAAoB;IACpB,MAAM,OAAO,GAAqB;QAChC,IAAI;QACJ,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,qBAAqB;IACrB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAErD,wCAAwC;IACxC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,cAAc,EAAE,IAAI;QACpB,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow engine constants
|
|
3
|
+
*
|
|
4
|
+
* Contains all constants used by the workflow engine including
|
|
5
|
+
* special step names, limits, and error messages.
|
|
6
|
+
*/
|
|
7
|
+
/** Special step names for workflow termination */
|
|
8
|
+
export declare const COMPLETE_STEP = "COMPLETE";
|
|
9
|
+
export declare const ABORT_STEP = "ABORT";
|
|
10
|
+
/** Maximum user inputs to store */
|
|
11
|
+
export declare const MAX_USER_INPUTS = 100;
|
|
12
|
+
export declare const MAX_INPUT_LENGTH = 10000;
|
|
13
|
+
/** Error messages */
|
|
14
|
+
export declare const ERROR_MESSAGES: {
|
|
15
|
+
LOOP_DETECTED: (stepName: string, count: number) => string;
|
|
16
|
+
UNKNOWN_STEP: (stepName: string) => string;
|
|
17
|
+
STEP_EXECUTION_FAILED: (message: string) => string;
|
|
18
|
+
MAX_ITERATIONS_REACHED: string;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/workflow/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,UAAU,UAAU,CAAC;AAElC,mCAAmC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,qBAAqB;AACrB,eAAO,MAAM,cAAc;8BACC,MAAM,SAAS,MAAM;6BAEtB,MAAM;qCACE,MAAM;;CAExC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow engine constants
|
|
3
|
+
*
|
|
4
|
+
* Contains all constants used by the workflow engine including
|
|
5
|
+
* special step names, limits, and error messages.
|
|
6
|
+
*/
|
|
7
|
+
/** Special step names for workflow termination */
|
|
8
|
+
export const COMPLETE_STEP = 'COMPLETE';
|
|
9
|
+
export const ABORT_STEP = 'ABORT';
|
|
10
|
+
/** Maximum user inputs to store */
|
|
11
|
+
export const MAX_USER_INPUTS = 100;
|
|
12
|
+
export const MAX_INPUT_LENGTH = 10000;
|
|
13
|
+
/** Error messages */
|
|
14
|
+
export const ERROR_MESSAGES = {
|
|
15
|
+
LOOP_DETECTED: (stepName, count) => `Loop detected: step "${stepName}" ran ${count} times consecutively without progress.`,
|
|
16
|
+
UNKNOWN_STEP: (stepName) => `Unknown step: ${stepName}`,
|
|
17
|
+
STEP_EXECUTION_FAILED: (message) => `Step execution failed: ${message}`,
|
|
18
|
+
MAX_ITERATIONS_REACHED: 'Max iterations reached',
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/workflow/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAElC,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,aAAa,EAAE,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE,CACjD,wBAAwB,QAAQ,SAAS,KAAK,wCAAwC;IACxF,YAAY,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,iBAAiB,QAAQ,EAAE;IAC/D,qBAAqB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,0BAA0B,OAAO,EAAE;IAC/E,sBAAsB,EAAE,wBAAwB;CACjD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow execution engine
|
|
3
|
+
*/
|
|
4
|
+
import { EventEmitter } from 'node:events';
|
|
5
|
+
import type { WorkflowConfig, WorkflowState, AgentResponse } from '../models/types.js';
|
|
6
|
+
import type { WorkflowEngineOptions } from './types.js';
|
|
7
|
+
export type { WorkflowEvents, UserInputRequest, IterationLimitRequest, SessionUpdateCallback, IterationLimitCallback, WorkflowEngineOptions, } from './types.js';
|
|
8
|
+
export { COMPLETE_STEP, ABORT_STEP } from './constants.js';
|
|
9
|
+
/** Workflow engine for orchestrating agent execution */
|
|
10
|
+
export declare class WorkflowEngine extends EventEmitter {
|
|
11
|
+
private state;
|
|
12
|
+
private config;
|
|
13
|
+
private cwd;
|
|
14
|
+
private task;
|
|
15
|
+
private options;
|
|
16
|
+
private loopDetector;
|
|
17
|
+
constructor(config: WorkflowConfig, cwd: string, task: string, options?: WorkflowEngineOptions);
|
|
18
|
+
/** Validate workflow configuration at construction time */
|
|
19
|
+
private validateConfig;
|
|
20
|
+
/** Get current workflow state */
|
|
21
|
+
getState(): WorkflowState;
|
|
22
|
+
/** Add user input */
|
|
23
|
+
addUserInput(input: string): void;
|
|
24
|
+
/** Build instruction from template */
|
|
25
|
+
private buildInstruction;
|
|
26
|
+
/** Get step by name */
|
|
27
|
+
private getStep;
|
|
28
|
+
/** Run a single step */
|
|
29
|
+
private runStep;
|
|
30
|
+
/** Run the workflow to completion */
|
|
31
|
+
run(): Promise<WorkflowState>;
|
|
32
|
+
/** Run a single iteration (for interactive mode) */
|
|
33
|
+
runSingleIteration(): Promise<{
|
|
34
|
+
response: AgentResponse;
|
|
35
|
+
nextStep: string;
|
|
36
|
+
isComplete: boolean;
|
|
37
|
+
loopDetected?: boolean;
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
/** Create and run a workflow */
|
|
41
|
+
export declare function executeWorkflow(config: WorkflowConfig, cwd: string, task: string): Promise<WorkflowState>;
|
|
42
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAYxD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;IAWlG,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IAqBtB,iCAAiC;IACjC,QAAQ,IAAI,aAAa;IAIzB,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,sCAAsC;IACtC,OAAO,CAAC,gBAAgB;IAWxB,uBAAuB;IACvB,OAAO,CAAC,OAAO;IAQf,wBAAwB;YACV,OAAO;IA6BrB,qCAAqC;IAC/B,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAuFnC,oDAAoD;IAC9C,kBAAkB,IAAI,OAAO,CAAC;QAClC,QAAQ,EAAE,aAAa,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CAgCH;AAED,gCAAgC;AAChC,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAGxB"}
|