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,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug logging utilities for takt
|
|
3
|
+
* Writes debug logs to file when enabled in config
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, appendFileSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
6
|
+
import { dirname, join } from 'node:path';
|
|
7
|
+
import { homedir } from 'node:os';
|
|
8
|
+
/** Debug logger state */
|
|
9
|
+
let debugEnabled = false;
|
|
10
|
+
let debugLogFile = null;
|
|
11
|
+
let initialized = false;
|
|
12
|
+
/** Get default debug log file path */
|
|
13
|
+
function getDefaultLogFile() {
|
|
14
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
15
|
+
return join(homedir(), '.takt', 'logs', `debug-${timestamp}.log`);
|
|
16
|
+
}
|
|
17
|
+
/** Initialize debug logger from config */
|
|
18
|
+
export function initDebugLogger(config, projectDir) {
|
|
19
|
+
if (initialized) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
debugEnabled = config?.enabled ?? false;
|
|
23
|
+
if (debugEnabled) {
|
|
24
|
+
if (config?.logFile) {
|
|
25
|
+
debugLogFile = config.logFile;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
debugLogFile = getDefaultLogFile();
|
|
29
|
+
}
|
|
30
|
+
// Ensure log directory exists
|
|
31
|
+
const logDir = dirname(debugLogFile);
|
|
32
|
+
if (!existsSync(logDir)) {
|
|
33
|
+
mkdirSync(logDir, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
// Write initial log header
|
|
36
|
+
const header = [
|
|
37
|
+
'='.repeat(60),
|
|
38
|
+
`TAKT Debug Log`,
|
|
39
|
+
`Started: ${new Date().toISOString()}`,
|
|
40
|
+
`Project: ${projectDir || 'N/A'}`,
|
|
41
|
+
'='.repeat(60),
|
|
42
|
+
'',
|
|
43
|
+
].join('\n');
|
|
44
|
+
writeFileSync(debugLogFile, header, 'utf-8');
|
|
45
|
+
}
|
|
46
|
+
initialized = true;
|
|
47
|
+
}
|
|
48
|
+
/** Reset debug logger (for testing) */
|
|
49
|
+
export function resetDebugLogger() {
|
|
50
|
+
debugEnabled = false;
|
|
51
|
+
debugLogFile = null;
|
|
52
|
+
initialized = false;
|
|
53
|
+
}
|
|
54
|
+
/** Check if debug is enabled */
|
|
55
|
+
export function isDebugEnabled() {
|
|
56
|
+
return debugEnabled;
|
|
57
|
+
}
|
|
58
|
+
/** Get current debug log file path */
|
|
59
|
+
export function getDebugLogFile() {
|
|
60
|
+
return debugLogFile;
|
|
61
|
+
}
|
|
62
|
+
/** Format log message with timestamp and level */
|
|
63
|
+
function formatLogMessage(level, component, message, data) {
|
|
64
|
+
const timestamp = new Date().toISOString();
|
|
65
|
+
const prefix = `[${timestamp}] [${level.toUpperCase()}] [${component}]`;
|
|
66
|
+
let logLine = `${prefix} ${message}`;
|
|
67
|
+
if (data !== undefined) {
|
|
68
|
+
try {
|
|
69
|
+
const dataStr = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
|
|
70
|
+
logLine += `\n${dataStr}`;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
logLine += `\n[Unable to serialize data]`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return logLine;
|
|
77
|
+
}
|
|
78
|
+
/** Write a debug log entry */
|
|
79
|
+
export function debugLog(component, message, data) {
|
|
80
|
+
if (!debugEnabled || !debugLogFile) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const logLine = formatLogMessage('DEBUG', component, message, data);
|
|
84
|
+
try {
|
|
85
|
+
appendFileSync(debugLogFile, logLine + '\n', 'utf-8');
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Silently fail - logging errors should not interrupt main flow
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Write an info log entry */
|
|
92
|
+
export function infoLog(component, message, data) {
|
|
93
|
+
if (!debugEnabled || !debugLogFile) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const logLine = formatLogMessage('INFO', component, message, data);
|
|
97
|
+
try {
|
|
98
|
+
appendFileSync(debugLogFile, logLine + '\n', 'utf-8');
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Silently fail
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** Write an error log entry */
|
|
105
|
+
export function errorLog(component, message, data) {
|
|
106
|
+
if (!debugEnabled || !debugLogFile) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const logLine = formatLogMessage('ERROR', component, message, data);
|
|
110
|
+
try {
|
|
111
|
+
appendFileSync(debugLogFile, logLine + '\n', 'utf-8');
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// Silently fail
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Log function entry with arguments */
|
|
118
|
+
export function traceEnter(component, funcName, args) {
|
|
119
|
+
debugLog(component, `>> ${funcName}()`, args);
|
|
120
|
+
}
|
|
121
|
+
/** Log function exit with result */
|
|
122
|
+
export function traceExit(component, funcName, result) {
|
|
123
|
+
debugLog(component, `<< ${funcName}()`, result);
|
|
124
|
+
}
|
|
125
|
+
/** Create a scoped logger for a component */
|
|
126
|
+
export function createLogger(component) {
|
|
127
|
+
return {
|
|
128
|
+
debug: (message, data) => debugLog(component, message, data),
|
|
129
|
+
info: (message, data) => infoLog(component, message, data),
|
|
130
|
+
error: (message, data) => errorLog(component, message, data),
|
|
131
|
+
enter: (funcName, args) => traceEnter(component, funcName, args),
|
|
132
|
+
exit: (funcName, result) => traceExit(component, funcName, result),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notification utilities for takt
|
|
3
|
+
*
|
|
4
|
+
* Provides audio and visual notifications for workflow events.
|
|
5
|
+
*/
|
|
6
|
+
/** Notification sound types */
|
|
7
|
+
export type NotificationSound = 'success' | 'error' | 'warning' | 'info';
|
|
8
|
+
/**
|
|
9
|
+
* Play a notification sound
|
|
10
|
+
*
|
|
11
|
+
* @param type - The type of notification sound to play
|
|
12
|
+
*/
|
|
13
|
+
export declare function playSound(type?: NotificationSound): void;
|
|
14
|
+
/**
|
|
15
|
+
* Play success notification sound
|
|
16
|
+
*/
|
|
17
|
+
export declare function playSuccessSound(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Play error notification sound
|
|
20
|
+
*/
|
|
21
|
+
export declare function playErrorSound(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Play warning notification sound
|
|
24
|
+
*/
|
|
25
|
+
export declare function playWarningSound(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Play info notification sound
|
|
28
|
+
*/
|
|
29
|
+
export declare function playInfoSound(): void;
|
|
30
|
+
/** Options for system notification */
|
|
31
|
+
export interface NotifyOptions {
|
|
32
|
+
/** Notification title */
|
|
33
|
+
title: string;
|
|
34
|
+
/** Notification message/body */
|
|
35
|
+
message: string;
|
|
36
|
+
/** Optional subtitle (macOS only) */
|
|
37
|
+
subtitle?: string;
|
|
38
|
+
/** Sound type to play with notification */
|
|
39
|
+
sound?: NotificationSound;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Send a system notification
|
|
43
|
+
*
|
|
44
|
+
* @param options - Notification options
|
|
45
|
+
*/
|
|
46
|
+
export declare function sendNotification(options: NotifyOptions): void;
|
|
47
|
+
/**
|
|
48
|
+
* Send success notification with sound
|
|
49
|
+
*/
|
|
50
|
+
export declare function notifySuccess(title: string, message: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Send error notification with sound
|
|
53
|
+
*/
|
|
54
|
+
export declare function notifyError(title: string, message: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Send warning notification with sound
|
|
57
|
+
*/
|
|
58
|
+
export declare function notifyWarning(title: string, message: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Send info notification with sound
|
|
61
|
+
*/
|
|
62
|
+
export declare function notifyInfo(title: string, message: string): void;
|
|
63
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,+BAA+B;AAC/B,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAkBzE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAE,iBAA0B,GAAG,IAAI,CAiChE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAkC7D;AAgBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/D"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notification utilities for takt
|
|
3
|
+
*
|
|
4
|
+
* Provides audio and visual notifications for workflow events.
|
|
5
|
+
*/
|
|
6
|
+
import { exec } from 'node:child_process';
|
|
7
|
+
import { platform } from 'node:os';
|
|
8
|
+
/** Sound configuration */
|
|
9
|
+
const SOUND_CONFIG = {
|
|
10
|
+
darwin: {
|
|
11
|
+
success: 'Glass',
|
|
12
|
+
error: 'Basso',
|
|
13
|
+
warning: 'Sosumi',
|
|
14
|
+
info: 'Pop',
|
|
15
|
+
},
|
|
16
|
+
linux: {
|
|
17
|
+
success: '/usr/share/sounds/freedesktop/stereo/complete.oga',
|
|
18
|
+
error: '/usr/share/sounds/freedesktop/stereo/dialog-error.oga',
|
|
19
|
+
warning: '/usr/share/sounds/freedesktop/stereo/dialog-warning.oga',
|
|
20
|
+
info: '/usr/share/sounds/freedesktop/stereo/message.oga',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Play a notification sound
|
|
25
|
+
*
|
|
26
|
+
* @param type - The type of notification sound to play
|
|
27
|
+
*/
|
|
28
|
+
export function playSound(type = 'info') {
|
|
29
|
+
const os = platform();
|
|
30
|
+
try {
|
|
31
|
+
if (os === 'darwin') {
|
|
32
|
+
// macOS - use afplay with system sounds
|
|
33
|
+
const darwinConfig = SOUND_CONFIG.darwin;
|
|
34
|
+
const sound = darwinConfig ? darwinConfig[type] : 'Pop';
|
|
35
|
+
exec(`afplay /System/Library/Sounds/${sound}.aiff 2>/dev/null`, (err) => {
|
|
36
|
+
// Silently ignore errors (sound not found, etc.)
|
|
37
|
+
if (err) {
|
|
38
|
+
// Try terminal bell as fallback
|
|
39
|
+
process.stdout.write('\x07');
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else if (os === 'linux') {
|
|
44
|
+
// Linux - try paplay (PulseAudio) or aplay (ALSA)
|
|
45
|
+
const linuxConfig = SOUND_CONFIG.linux;
|
|
46
|
+
const sound = linuxConfig ? linuxConfig[type] : '/usr/share/sounds/freedesktop/stereo/message.oga';
|
|
47
|
+
exec(`paplay ${sound} 2>/dev/null || aplay ${sound} 2>/dev/null`, (err) => {
|
|
48
|
+
// Fallback to terminal bell
|
|
49
|
+
if (err) {
|
|
50
|
+
process.stdout.write('\x07');
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Windows or other - use terminal bell
|
|
56
|
+
process.stdout.write('\x07');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Fallback to terminal bell
|
|
61
|
+
process.stdout.write('\x07');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Play success notification sound
|
|
66
|
+
*/
|
|
67
|
+
export function playSuccessSound() {
|
|
68
|
+
playSound('success');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Play error notification sound
|
|
72
|
+
*/
|
|
73
|
+
export function playErrorSound() {
|
|
74
|
+
playSound('error');
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Play warning notification sound
|
|
78
|
+
*/
|
|
79
|
+
export function playWarningSound() {
|
|
80
|
+
playSound('warning');
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Play info notification sound
|
|
84
|
+
*/
|
|
85
|
+
export function playInfoSound() {
|
|
86
|
+
playSound('info');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Send a system notification
|
|
90
|
+
*
|
|
91
|
+
* @param options - Notification options
|
|
92
|
+
*/
|
|
93
|
+
export function sendNotification(options) {
|
|
94
|
+
const os = platform();
|
|
95
|
+
const { title, message, subtitle, sound } = options;
|
|
96
|
+
try {
|
|
97
|
+
if (os === 'darwin') {
|
|
98
|
+
// macOS - use osascript for native notifications
|
|
99
|
+
const subtitlePart = subtitle ? `subtitle "${escapeAppleScript(subtitle)}"` : '';
|
|
100
|
+
const soundPart = sound ? `sound name "${SOUND_CONFIG.darwin?.[sound] || 'Pop'}"` : '';
|
|
101
|
+
const script = `display notification "${escapeAppleScript(message)}" with title "${escapeAppleScript(title)}" ${subtitlePart} ${soundPart}`;
|
|
102
|
+
exec(`osascript -e '${script}'`, (err) => {
|
|
103
|
+
if (err) {
|
|
104
|
+
// Fallback: just play sound if notification fails
|
|
105
|
+
if (sound)
|
|
106
|
+
playSound(sound);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (os === 'linux') {
|
|
111
|
+
// Linux - use notify-send
|
|
112
|
+
const urgency = sound === 'error' ? 'critical' : sound === 'warning' ? 'normal' : 'low';
|
|
113
|
+
exec(`notify-send -u ${urgency} "${escapeShell(title)}" "${escapeShell(message)}"`, (err) => {
|
|
114
|
+
// Play sound separately on Linux
|
|
115
|
+
if (sound)
|
|
116
|
+
playSound(sound);
|
|
117
|
+
if (err) {
|
|
118
|
+
// Notification daemon not available, sound already played
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Windows or other - just play sound
|
|
124
|
+
if (sound)
|
|
125
|
+
playSound(sound);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// Fallback to just sound
|
|
130
|
+
if (sound)
|
|
131
|
+
playSound(sound);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Escape string for AppleScript
|
|
136
|
+
*/
|
|
137
|
+
function escapeAppleScript(str) {
|
|
138
|
+
return str.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Escape string for shell
|
|
142
|
+
*/
|
|
143
|
+
function escapeShell(str) {
|
|
144
|
+
return str.replace(/"/g, '\\"').replace(/\$/g, '\\$').replace(/`/g, '\\`');
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Send success notification with sound
|
|
148
|
+
*/
|
|
149
|
+
export function notifySuccess(title, message) {
|
|
150
|
+
sendNotification({ title, message, sound: 'success' });
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Send error notification with sound
|
|
154
|
+
*/
|
|
155
|
+
export function notifyError(title, message) {
|
|
156
|
+
sendNotification({ title, message, sound: 'error' });
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Send warning notification with sound
|
|
160
|
+
*/
|
|
161
|
+
export function notifyWarning(title, message) {
|
|
162
|
+
sendNotification({ title, message, sound: 'warning' });
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Send info notification with sound
|
|
166
|
+
*/
|
|
167
|
+
export function notifyInfo(title, message) {
|
|
168
|
+
sendNotification({ title, message, sound: 'info' });
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session management utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentResponse, WorkflowState } from '../models/types.js';
|
|
5
|
+
/** Session log entry */
|
|
6
|
+
export interface SessionLog {
|
|
7
|
+
task: string;
|
|
8
|
+
projectDir: string;
|
|
9
|
+
workflowName: string;
|
|
10
|
+
iterations: number;
|
|
11
|
+
startTime: string;
|
|
12
|
+
endTime?: string;
|
|
13
|
+
status: 'running' | 'completed' | 'aborted';
|
|
14
|
+
history: Array<{
|
|
15
|
+
step: string;
|
|
16
|
+
agent: string;
|
|
17
|
+
status: string;
|
|
18
|
+
timestamp: string;
|
|
19
|
+
content: string;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
/** Generate a session ID */
|
|
23
|
+
export declare function generateSessionId(): string;
|
|
24
|
+
/** Create a new session log */
|
|
25
|
+
export declare function createSessionLog(task: string, projectDir: string, workflowName: string): SessionLog;
|
|
26
|
+
/** Add agent response to session log */
|
|
27
|
+
export declare function addToSessionLog(log: SessionLog, stepName: string, response: AgentResponse): void;
|
|
28
|
+
/** Finalize session log */
|
|
29
|
+
export declare function finalizeSessionLog(log: SessionLog, status: 'completed' | 'aborted'): void;
|
|
30
|
+
/** Save session log to file */
|
|
31
|
+
export declare function saveSessionLog(log: SessionLog, sessionId: string, projectDir?: string): string;
|
|
32
|
+
/** Load session log from file */
|
|
33
|
+
export declare function loadSessionLog(filepath: string): SessionLog | null;
|
|
34
|
+
/** Load project context (CLAUDE.md files) */
|
|
35
|
+
export declare function loadProjectContext(projectDir: string): string;
|
|
36
|
+
/** Convert workflow state to session log */
|
|
37
|
+
export declare function workflowStateToSessionLog(state: WorkflowState, task: string, projectDir: string): SessionLog;
|
|
38
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGvE,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,+BAA+B;AAC/B,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,UAAU,CAUZ;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,GACtB,IAAI,CASN;AAED,2BAA2B;AAC3B,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,IAAI,CAGN;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAWR;AAED,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMlE;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB7D;AAED,4CAA4C;AAC5C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,UAAU,CAsBZ"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session management utilities
|
|
3
|
+
*/
|
|
4
|
+
import { writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { getProjectLogsDir, getGlobalLogsDir, ensureDir } from '../config/paths.js';
|
|
7
|
+
/** Generate a session ID */
|
|
8
|
+
export function generateSessionId() {
|
|
9
|
+
const timestamp = Date.now().toString(36);
|
|
10
|
+
const random = Math.random().toString(36).slice(2, 8);
|
|
11
|
+
return `${timestamp}-${random}`;
|
|
12
|
+
}
|
|
13
|
+
/** Create a new session log */
|
|
14
|
+
export function createSessionLog(task, projectDir, workflowName) {
|
|
15
|
+
return {
|
|
16
|
+
task,
|
|
17
|
+
projectDir,
|
|
18
|
+
workflowName,
|
|
19
|
+
iterations: 0,
|
|
20
|
+
startTime: new Date().toISOString(),
|
|
21
|
+
status: 'running',
|
|
22
|
+
history: [],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Add agent response to session log */
|
|
26
|
+
export function addToSessionLog(log, stepName, response) {
|
|
27
|
+
log.history.push({
|
|
28
|
+
step: stepName,
|
|
29
|
+
agent: response.agent,
|
|
30
|
+
status: response.status,
|
|
31
|
+
timestamp: response.timestamp.toISOString(),
|
|
32
|
+
content: response.content,
|
|
33
|
+
});
|
|
34
|
+
log.iterations++;
|
|
35
|
+
}
|
|
36
|
+
/** Finalize session log */
|
|
37
|
+
export function finalizeSessionLog(log, status) {
|
|
38
|
+
log.status = status;
|
|
39
|
+
log.endTime = new Date().toISOString();
|
|
40
|
+
}
|
|
41
|
+
/** Save session log to file */
|
|
42
|
+
export function saveSessionLog(log, sessionId, projectDir) {
|
|
43
|
+
const logsDir = projectDir
|
|
44
|
+
? getProjectLogsDir(projectDir)
|
|
45
|
+
: getGlobalLogsDir();
|
|
46
|
+
ensureDir(logsDir);
|
|
47
|
+
const filename = `${sessionId}.json`;
|
|
48
|
+
const filepath = join(logsDir, filename);
|
|
49
|
+
writeFileSync(filepath, JSON.stringify(log, null, 2), 'utf-8');
|
|
50
|
+
return filepath;
|
|
51
|
+
}
|
|
52
|
+
/** Load session log from file */
|
|
53
|
+
export function loadSessionLog(filepath) {
|
|
54
|
+
if (!existsSync(filepath)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const content = readFileSync(filepath, 'utf-8');
|
|
58
|
+
return JSON.parse(content);
|
|
59
|
+
}
|
|
60
|
+
/** Load project context (CLAUDE.md files) */
|
|
61
|
+
export function loadProjectContext(projectDir) {
|
|
62
|
+
const contextParts = [];
|
|
63
|
+
// Check project root CLAUDE.md
|
|
64
|
+
const rootClaudeMd = join(projectDir, 'CLAUDE.md');
|
|
65
|
+
if (existsSync(rootClaudeMd)) {
|
|
66
|
+
contextParts.push(readFileSync(rootClaudeMd, 'utf-8'));
|
|
67
|
+
}
|
|
68
|
+
// Check .claude/CLAUDE.md
|
|
69
|
+
const dotClaudeMd = join(projectDir, '.claude', 'CLAUDE.md');
|
|
70
|
+
if (existsSync(dotClaudeMd)) {
|
|
71
|
+
contextParts.push(readFileSync(dotClaudeMd, 'utf-8'));
|
|
72
|
+
}
|
|
73
|
+
return contextParts.join('\n\n---\n\n');
|
|
74
|
+
}
|
|
75
|
+
/** Convert workflow state to session log */
|
|
76
|
+
export function workflowStateToSessionLog(state, task, projectDir) {
|
|
77
|
+
const log = {
|
|
78
|
+
task,
|
|
79
|
+
projectDir,
|
|
80
|
+
workflowName: state.workflowName,
|
|
81
|
+
iterations: state.iteration,
|
|
82
|
+
startTime: new Date().toISOString(),
|
|
83
|
+
status: state.status === 'running' ? 'running' : state.status === 'completed' ? 'completed' : 'aborted',
|
|
84
|
+
history: [],
|
|
85
|
+
};
|
|
86
|
+
for (const [stepName, response] of state.stepOutputs) {
|
|
87
|
+
log.history.push({
|
|
88
|
+
step: stepName,
|
|
89
|
+
agent: response.agent,
|
|
90
|
+
status: response.status,
|
|
91
|
+
timestamp: response.timestamp.toISOString(),
|
|
92
|
+
content: response.content,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return log;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
|