takt 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -4
- package/dist/agents/runner.d.ts +3 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +70 -14
- package/dist/agents/runner.js.map +1 -1
- package/dist/claude/client.d.ts +1 -1
- package/dist/claude/client.d.ts.map +1 -1
- package/dist/claude/client.js +4 -3
- package/dist/claude/client.js.map +1 -1
- package/dist/claude/index.d.ts +1 -1
- package/dist/claude/index.d.ts.map +1 -1
- package/dist/claude/index.js.map +1 -1
- package/dist/claude/process.d.ts +1 -1
- package/dist/claude/process.d.ts.map +1 -1
- package/dist/claude/process.js.map +1 -1
- package/dist/claude/types.d.ts +7 -0
- package/dist/claude/types.d.ts.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -4
- package/dist/cli.js.map +1 -1
- package/dist/codex/client.d.ts +26 -0
- package/dist/codex/client.d.ts.map +1 -0
- package/dist/codex/client.js +418 -0
- package/dist/codex/client.js.map +1 -0
- package/dist/codex/index.d.ts +5 -0
- package/dist/codex/index.d.ts.map +1 -0
- package/dist/codex/index.js +5 -0
- package/dist/codex/index.js.map +1 -0
- package/dist/commands/config.d.ts +33 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +110 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/workflow.js +1 -1
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workflowExecution.d.ts.map +1 -1
- package/dist/commands/workflowExecution.js +3 -1
- package/dist/commands/workflowExecution.js.map +1 -1
- package/dist/config/globalConfig.d.ts +2 -0
- package/dist/config/globalConfig.d.ts.map +1 -1
- package/dist/config/globalConfig.js +12 -0
- package/dist/config/globalConfig.js.map +1 -1
- package/dist/config/initialization.d.ts +10 -0
- package/dist/config/initialization.d.ts.map +1 -1
- package/dist/config/initialization.js +26 -4
- package/dist/config/initialization.js.map +1 -1
- package/dist/config/projectConfig.d.ts +14 -1
- package/dist/config/projectConfig.d.ts.map +1 -1
- package/dist/config/projectConfig.js +4 -0
- package/dist/config/projectConfig.js.map +1 -1
- package/dist/config/workflowLoader.d.ts.map +1 -1
- package/dist/config/workflowLoader.js +3 -0
- package/dist/config/workflowLoader.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/schemas.d.ts +54 -3
- package/dist/models/schemas.d.ts.map +1 -1
- package/dist/models/schemas.js +34 -46
- package/dist/models/schemas.js.map +1 -1
- package/dist/models/types.d.ts +12 -2
- package/dist/models/types.d.ts.map +1 -1
- package/dist/{interactive/prompt.d.ts → prompt/index.d.ts} +3 -1
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/{interactive/prompt.js → prompt/index.js} +11 -1
- package/dist/prompt/index.js.map +1 -0
- package/dist/resources/index.d.ts +9 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +21 -2
- package/dist/resources/index.js.map +1 -1
- package/dist/utils/session.d.ts +5 -0
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +19 -0
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/ui.d.ts +7 -0
- package/dist/utils/ui.d.ts.map +1 -1
- package/dist/utils/ui.js +51 -0
- package/dist/utils/ui.js.map +1 -1
- package/dist/workflow/engine.d.ts +10 -0
- package/dist/workflow/engine.d.ts.map +1 -1
- package/dist/workflow/engine.js +31 -0
- package/dist/workflow/engine.js.map +1 -1
- package/dist/workflow/instruction-builder.d.ts +3 -0
- package/dist/workflow/instruction-builder.d.ts.map +1 -1
- package/dist/workflow/instruction-builder.js +5 -0
- package/dist/workflow/instruction-builder.js.map +1 -1
- package/dist/workflow/transitions.d.ts.map +1 -1
- package/dist/workflow/transitions.js +1 -0
- package/dist/workflow/transitions.js.map +1 -1
- package/package.json +3 -1
- package/resources/global/en/agents/default/ai-reviewer.md +136 -0
- package/resources/global/en/agents/default/architect.md +81 -30
- package/resources/global/en/agents/default/coder.md +60 -44
- package/resources/global/en/agents/default/planner.md +78 -0
- package/resources/global/en/agents/default/security.md +67 -75
- package/resources/global/en/agents/default/supervisor.md +94 -86
- package/resources/global/en/agents/expert-review/cqrs-es-reviewer.md +199 -0
- package/resources/global/en/agents/expert-review/frontend-reviewer.md +260 -0
- package/resources/global/en/agents/expert-review/qa-reviewer.md +260 -0
- package/resources/global/en/agents/expert-review/security-reviewer.md +222 -0
- package/resources/global/en/agents/expert-review/supervisor.md +186 -0
- package/resources/global/en/config.yaml +8 -0
- package/resources/global/en/workflows/default.yaml +474 -21
- package/resources/global/en/workflows/expert-review.yaml +936 -0
- package/resources/global/en/workflows/magi.yaml +18 -0
- package/resources/global/en/workflows/research.yaml +18 -0
- package/resources/global/ja/agents/default/ai-reviewer.md +136 -0
- package/resources/global/ja/agents/default/architect.md +81 -30
- package/resources/global/ja/agents/default/coder.md +21 -6
- package/resources/global/ja/agents/default/planner.md +78 -0
- package/resources/global/ja/agents/default/security.md +20 -28
- package/resources/global/ja/agents/default/supervisor.md +54 -46
- package/resources/global/ja/agents/expert-review/cqrs-es-reviewer.md +199 -0
- package/resources/global/ja/agents/expert-review/frontend-reviewer.md +260 -0
- package/resources/global/ja/agents/expert-review/qa-reviewer.md +260 -0
- package/resources/global/ja/agents/expert-review/security-reviewer.md +222 -0
- package/resources/global/ja/agents/expert-review/supervisor.md +186 -0
- package/resources/global/ja/config.yaml +8 -0
- package/resources/global/ja/workflows/default.yaml +485 -32
- package/resources/global/ja/workflows/expert-review.yaml +936 -0
- package/resources/global/ja/workflows/magi.yaml +18 -0
- package/resources/global/ja/workflows/research.yaml +18 -0
- package/dist/cli/agentExecution.d.ts +0 -16
- package/dist/cli/agentExecution.d.ts.map +0 -1
- package/dist/cli/agentExecution.js +0 -40
- package/dist/cli/agentExecution.js.map +0 -1
- package/dist/cli/help.d.ts +0 -8
- package/dist/cli/help.d.ts.map +0 -1
- package/dist/cli/help.js +0 -46
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/index.d.ts +0 -8
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -8
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/taskBatch.d.ts +0 -8
- package/dist/cli/taskBatch.d.ts.map +0 -1
- package/dist/cli/taskBatch.js +0 -69
- package/dist/cli/taskBatch.js.map +0 -1
- package/dist/cli/workflowExecution.d.ts +0 -18
- package/dist/cli/workflowExecution.d.ts.map +0 -1
- package/dist/cli/workflowExecution.js +0 -112
- package/dist/cli/workflowExecution.js.map +0 -1
- package/dist/commands/agentExecution.d.ts +0 -8
- package/dist/commands/agentExecution.d.ts.map +0 -1
- package/dist/commands/agentExecution.js +0 -44
- package/dist/commands/agentExecution.js.map +0 -1
- package/dist/interactive/commands/agent.d.ts +0 -7
- package/dist/interactive/commands/agent.d.ts.map +0 -1
- package/dist/interactive/commands/agent.js +0 -65
- package/dist/interactive/commands/agent.js.map +0 -1
- package/dist/interactive/commands/basic.d.ts +0 -7
- package/dist/interactive/commands/basic.d.ts.map +0 -1
- package/dist/interactive/commands/basic.js +0 -81
- package/dist/interactive/commands/basic.js.map +0 -1
- package/dist/interactive/commands/index.d.ts +0 -12
- package/dist/interactive/commands/index.d.ts.map +0 -1
- package/dist/interactive/commands/index.js +0 -14
- package/dist/interactive/commands/index.js.map +0 -1
- package/dist/interactive/commands/registry.d.ts +0 -41
- package/dist/interactive/commands/registry.d.ts.map +0 -1
- package/dist/interactive/commands/registry.js +0 -37
- package/dist/interactive/commands/registry.js.map +0 -1
- package/dist/interactive/commands/session.d.ts +0 -7
- package/dist/interactive/commands/session.d.ts.map +0 -1
- package/dist/interactive/commands/session.js +0 -75
- package/dist/interactive/commands/session.js.map +0 -1
- package/dist/interactive/commands/task.d.ts +0 -7
- package/dist/interactive/commands/task.d.ts.map +0 -1
- package/dist/interactive/commands/task.js +0 -156
- package/dist/interactive/commands/task.js.map +0 -1
- package/dist/interactive/commands/workflow.d.ts +0 -7
- package/dist/interactive/commands/workflow.d.ts.map +0 -1
- package/dist/interactive/commands/workflow.js +0 -56
- package/dist/interactive/commands/workflow.js.map +0 -1
- package/dist/interactive/escape-tracker.d.ts +0 -37
- package/dist/interactive/escape-tracker.d.ts.map +0 -1
- package/dist/interactive/escape-tracker.js +0 -52
- package/dist/interactive/escape-tracker.js.map +0 -1
- package/dist/interactive/handlers.d.ts +0 -24
- package/dist/interactive/handlers.d.ts.map +0 -1
- package/dist/interactive/handlers.js +0 -191
- package/dist/interactive/handlers.js.map +0 -1
- package/dist/interactive/history-manager.d.ts +0 -45
- package/dist/interactive/history-manager.d.ts.map +0 -1
- package/dist/interactive/history-manager.js +0 -91
- package/dist/interactive/history-manager.js.map +0 -1
- package/dist/interactive/index.d.ts +0 -8
- package/dist/interactive/index.d.ts.map +0 -1
- package/dist/interactive/index.js +0 -8
- package/dist/interactive/index.js.map +0 -1
- package/dist/interactive/ink/components/App.d.ts +0 -16
- package/dist/interactive/ink/components/App.d.ts.map +0 -1
- package/dist/interactive/ink/components/App.js +0 -123
- package/dist/interactive/ink/components/App.js.map +0 -1
- package/dist/interactive/ink/components/AskUserQuestion.d.ts +0 -16
- package/dist/interactive/ink/components/AskUserQuestion.d.ts.map +0 -1
- package/dist/interactive/ink/components/AskUserQuestion.js +0 -139
- package/dist/interactive/ink/components/AskUserQuestion.js.map +0 -1
- package/dist/interactive/ink/components/Header.d.ts +0 -20
- package/dist/interactive/ink/components/Header.d.ts.map +0 -1
- package/dist/interactive/ink/components/Header.js +0 -7
- package/dist/interactive/ink/components/Header.js.map +0 -1
- package/dist/interactive/ink/components/HelpView.d.ts +0 -13
- package/dist/interactive/ink/components/HelpView.d.ts.map +0 -1
- package/dist/interactive/ink/components/HelpView.js +0 -45
- package/dist/interactive/ink/components/HelpView.js.map +0 -1
- package/dist/interactive/ink/components/IterationLimit.d.ts +0 -19
- package/dist/interactive/ink/components/IterationLimit.d.ts.map +0 -1
- package/dist/interactive/ink/components/IterationLimit.js +0 -59
- package/dist/interactive/ink/components/IterationLimit.js.map +0 -1
- package/dist/interactive/ink/components/ModalRouter.d.ts +0 -11
- package/dist/interactive/ink/components/ModalRouter.d.ts.map +0 -1
- package/dist/interactive/ink/components/ModalRouter.js +0 -71
- package/dist/interactive/ink/components/ModalRouter.js.map +0 -1
- package/dist/interactive/ink/components/PermissionPrompt.d.ts +0 -17
- package/dist/interactive/ink/components/PermissionPrompt.d.ts.map +0 -1
- package/dist/interactive/ink/components/PermissionPrompt.js +0 -102
- package/dist/interactive/ink/components/PermissionPrompt.js.map +0 -1
- package/dist/interactive/ink/components/PromptInput.d.ts +0 -26
- package/dist/interactive/ink/components/PromptInput.d.ts.map +0 -1
- package/dist/interactive/ink/components/PromptInput.js +0 -70
- package/dist/interactive/ink/components/PromptInput.js.map +0 -1
- package/dist/interactive/ink/components/Spinner.d.ts +0 -14
- package/dist/interactive/ink/components/Spinner.d.ts.map +0 -1
- package/dist/interactive/ink/components/Spinner.js +0 -8
- package/dist/interactive/ink/components/Spinner.js.map +0 -1
- package/dist/interactive/ink/components/StreamingOutput.d.ts +0 -25
- package/dist/interactive/ink/components/StreamingOutput.d.ts.map +0 -1
- package/dist/interactive/ink/components/StreamingOutput.js +0 -8
- package/dist/interactive/ink/components/StreamingOutput.js.map +0 -1
- package/dist/interactive/ink/components/UserInputPrompt.d.ts +0 -18
- package/dist/interactive/ink/components/UserInputPrompt.d.ts.map +0 -1
- package/dist/interactive/ink/components/UserInputPrompt.js +0 -30
- package/dist/interactive/ink/components/UserInputPrompt.js.map +0 -1
- package/dist/interactive/ink/components/WorkflowSelector.d.ts +0 -18
- package/dist/interactive/ink/components/WorkflowSelector.d.ts.map +0 -1
- package/dist/interactive/ink/components/WorkflowSelector.js +0 -65
- package/dist/interactive/ink/components/WorkflowSelector.js.map +0 -1
- package/dist/interactive/ink/constants.d.ts +0 -8
- package/dist/interactive/ink/constants.d.ts.map +0 -1
- package/dist/interactive/ink/constants.js +0 -8
- package/dist/interactive/ink/constants.js.map +0 -1
- package/dist/interactive/ink/context/AppContext.d.ts +0 -26
- package/dist/interactive/ink/context/AppContext.d.ts.map +0 -1
- package/dist/interactive/ink/context/AppContext.js +0 -30
- package/dist/interactive/ink/context/AppContext.js.map +0 -1
- package/dist/interactive/ink/context/appReducer.d.ts +0 -13
- package/dist/interactive/ink/context/appReducer.d.ts.map +0 -1
- package/dist/interactive/ink/context/appReducer.js +0 -183
- package/dist/interactive/ink/context/appReducer.js.map +0 -1
- package/dist/interactive/ink/context/types.d.ts +0 -144
- package/dist/interactive/ink/context/types.d.ts.map +0 -1
- package/dist/interactive/ink/context/types.js +0 -5
- package/dist/interactive/ink/context/types.js.map +0 -1
- package/dist/interactive/ink/hooks/keyDetection.d.ts +0 -116
- package/dist/interactive/ink/hooks/keyDetection.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/keyDetection.js +0 -183
- package/dist/interactive/ink/hooks/keyDetection.js.map +0 -1
- package/dist/interactive/ink/hooks/multilineInputLogic.d.ts +0 -50
- package/dist/interactive/ink/hooks/multilineInputLogic.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/multilineInputLogic.js +0 -150
- package/dist/interactive/ink/hooks/multilineInputLogic.js.map +0 -1
- package/dist/interactive/ink/hooks/useCommands.d.ts +0 -20
- package/dist/interactive/ink/hooks/useCommands.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useCommands.js +0 -129
- package/dist/interactive/ink/hooks/useCommands.js.map +0 -1
- package/dist/interactive/ink/hooks/useHistory.d.ts +0 -28
- package/dist/interactive/ink/hooks/useHistory.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useHistory.js +0 -59
- package/dist/interactive/ink/hooks/useHistory.js.map +0 -1
- package/dist/interactive/ink/hooks/useMultilineInput.d.ts +0 -49
- package/dist/interactive/ink/hooks/useMultilineInput.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useMultilineInput.js +0 -106
- package/dist/interactive/ink/hooks/useMultilineInput.js.map +0 -1
- package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts +0 -16
- package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/usePermissionHandlers.js +0 -172
- package/dist/interactive/ink/hooks/usePermissionHandlers.js.map +0 -1
- package/dist/interactive/ink/hooks/useRawKeypress.d.ts +0 -41
- package/dist/interactive/ink/hooks/useRawKeypress.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useRawKeypress.js +0 -79
- package/dist/interactive/ink/hooks/useRawKeypress.js.map +0 -1
- package/dist/interactive/ink/hooks/useTaskQueue.d.ts +0 -32
- package/dist/interactive/ink/hooks/useTaskQueue.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useTaskQueue.js +0 -68
- package/dist/interactive/ink/hooks/useTaskQueue.js.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflow.d.ts +0 -45
- package/dist/interactive/ink/hooks/useWorkflow.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflow.js +0 -93
- package/dist/interactive/ink/hooks/useWorkflow.js.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts +0 -14
- package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts.map +0 -1
- package/dist/interactive/ink/hooks/useWorkflowExecution.js +0 -144
- package/dist/interactive/ink/hooks/useWorkflowExecution.js.map +0 -1
- package/dist/interactive/ink/index.d.ts +0 -30
- package/dist/interactive/ink/index.d.ts.map +0 -1
- package/dist/interactive/ink/index.js +0 -33
- package/dist/interactive/ink/index.js.map +0 -1
- package/dist/interactive/ink/utils/workflow.d.ts +0 -11
- package/dist/interactive/ink/utils/workflow.d.ts.map +0 -1
- package/dist/interactive/ink/utils/workflow.js +0 -19
- package/dist/interactive/ink/utils/workflow.js.map +0 -1
- package/dist/interactive/input-buffer.d.ts +0 -67
- package/dist/interactive/input-buffer.d.ts.map +0 -1
- package/dist/interactive/input-buffer.js +0 -162
- package/dist/interactive/input-buffer.js.map +0 -1
- package/dist/interactive/input-handlers.d.ts +0 -50
- package/dist/interactive/input-handlers.d.ts.map +0 -1
- package/dist/interactive/input-handlers.js +0 -170
- package/dist/interactive/input-handlers.js.map +0 -1
- package/dist/interactive/input.d.ts +0 -43
- package/dist/interactive/input.d.ts.map +0 -1
- package/dist/interactive/input.js +0 -74
- package/dist/interactive/input.js.map +0 -1
- package/dist/interactive/keyDetection.d.ts +0 -85
- package/dist/interactive/keyDetection.d.ts.map +0 -1
- package/dist/interactive/keyDetection.js +0 -167
- package/dist/interactive/keyDetection.js.map +0 -1
- package/dist/interactive/multilineInputLogic.d.ts +0 -30
- package/dist/interactive/multilineInputLogic.d.ts.map +0 -1
- package/dist/interactive/multilineInputLogic.js +0 -143
- package/dist/interactive/multilineInputLogic.js.map +0 -1
- package/dist/interactive/passthrough.d.ts +0 -30
- package/dist/interactive/passthrough.d.ts.map +0 -1
- package/dist/interactive/passthrough.js +0 -94
- package/dist/interactive/passthrough.js.map +0 -1
- package/dist/interactive/permission.d.ts +0 -33
- package/dist/interactive/permission.d.ts.map +0 -1
- package/dist/interactive/permission.js +0 -231
- package/dist/interactive/permission.js.map +0 -1
- package/dist/interactive/prompt.d.ts.map +0 -1
- package/dist/interactive/prompt.js.map +0 -1
- package/dist/interactive/repl.d.ts +0 -13
- package/dist/interactive/repl.d.ts.map +0 -1
- package/dist/interactive/repl.js +0 -202
- package/dist/interactive/repl.js.map +0 -1
- package/dist/interactive/types.d.ts +0 -35
- package/dist/interactive/types.d.ts.map +0 -1
- package/dist/interactive/types.js +0 -5
- package/dist/interactive/types.js.map +0 -1
- package/dist/interactive/ui.d.ts +0 -16
- package/dist/interactive/ui.d.ts.map +0 -1
- package/dist/interactive/ui.js +0 -122
- package/dist/interactive/ui.js.map +0 -1
- package/dist/interactive/user-input.d.ts +0 -26
- package/dist/interactive/user-input.d.ts.map +0 -1
- package/dist/interactive/user-input.js +0 -115
- package/dist/interactive/user-input.js.map +0 -1
- package/dist/interactive/workflow-executor.d.ts +0 -20
- package/dist/interactive/workflow-executor.d.ts.map +0 -1
- package/dist/interactive/workflow-executor.js +0 -200
- package/dist/interactive/workflow-executor.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multilineInputLogic.js","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/multilineInputLogic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command handling hook
|
|
3
|
-
*/
|
|
4
|
-
export interface CommandResult {
|
|
5
|
-
handled: boolean;
|
|
6
|
-
shouldExit?: boolean;
|
|
7
|
-
/** Tasks to execute via workflow (all pending tasks) */
|
|
8
|
-
executeTasks?: {
|
|
9
|
-
name: string;
|
|
10
|
-
content: string;
|
|
11
|
-
}[];
|
|
12
|
-
}
|
|
13
|
-
export interface CommandsResult {
|
|
14
|
-
handleCommand: (input: string) => CommandResult;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Hook for handling slash commands
|
|
18
|
-
*/
|
|
19
|
-
export declare function useCommands(): CommandsResult;
|
|
20
|
-
//# sourceMappingURL=useCommands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCommands.d.ts","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/useCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC;CACjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,CAwI5C"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command handling hook
|
|
3
|
-
*/
|
|
4
|
-
import { useCallback } from 'react';
|
|
5
|
-
import { useApp } from '../context/AppContext.js';
|
|
6
|
-
import { setWorkflowByName } from '../utils/workflow.js';
|
|
7
|
-
import { listCustomAgents } from '../../../config/loader.js';
|
|
8
|
-
import { TaskRunner } from '../../../task/runner.js';
|
|
9
|
-
/**
|
|
10
|
-
* Hook for handling slash commands
|
|
11
|
-
*/
|
|
12
|
-
export function useCommands() {
|
|
13
|
-
const { state, dispatch } = useApp();
|
|
14
|
-
const handleCommand = useCallback((input) => {
|
|
15
|
-
if (!input.startsWith('/')) {
|
|
16
|
-
return { handled: false };
|
|
17
|
-
}
|
|
18
|
-
const parts = input.slice(1).split(' ');
|
|
19
|
-
const command = parts[0]?.toLowerCase();
|
|
20
|
-
const args = parts.slice(1);
|
|
21
|
-
switch (command) {
|
|
22
|
-
case 'quit':
|
|
23
|
-
case 'exit':
|
|
24
|
-
case 'q':
|
|
25
|
-
return { handled: true, shouldExit: true };
|
|
26
|
-
case 'help':
|
|
27
|
-
case 'h':
|
|
28
|
-
dispatch({ type: 'SHOW_MODAL', payload: { type: 'help' } });
|
|
29
|
-
return { handled: true };
|
|
30
|
-
case 'sacrifice':
|
|
31
|
-
case 'yolo':
|
|
32
|
-
dispatch({ type: 'TOGGLE_SACRIFICE_MODE' });
|
|
33
|
-
return { handled: true };
|
|
34
|
-
case 'safe':
|
|
35
|
-
if (state.sacrificeMode) {
|
|
36
|
-
dispatch({ type: 'TOGGLE_SACRIFICE_MODE' });
|
|
37
|
-
}
|
|
38
|
-
return { handled: true };
|
|
39
|
-
case 'clear':
|
|
40
|
-
dispatch({ type: 'RESET_CONVERSATION' });
|
|
41
|
-
return { handled: true };
|
|
42
|
-
case 'cls':
|
|
43
|
-
dispatch({ type: 'CLEAR_STREAM' });
|
|
44
|
-
return { handled: true };
|
|
45
|
-
case 'switch':
|
|
46
|
-
case 'sw':
|
|
47
|
-
dispatch({ type: 'SHOW_MODAL', payload: { type: 'workflowSelector' } });
|
|
48
|
-
return { handled: true };
|
|
49
|
-
case 'workflow':
|
|
50
|
-
if (args.length > 0) {
|
|
51
|
-
const newWorkflow = args.join(' ');
|
|
52
|
-
if (!setWorkflowByName(newWorkflow, state.cwd, dispatch)) {
|
|
53
|
-
dispatch({ type: 'SET_ERROR', payload: `Workflow not found: ${newWorkflow}` });
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return { handled: true };
|
|
57
|
-
case 'workflows':
|
|
58
|
-
dispatch({ type: 'SHOW_MODAL', payload: { type: 'workflowSelector' } });
|
|
59
|
-
return { handled: true };
|
|
60
|
-
case 'agents': {
|
|
61
|
-
const agents = listCustomAgents();
|
|
62
|
-
const agentList = agents.length > 0
|
|
63
|
-
? agents.join(', ')
|
|
64
|
-
: 'No custom agents defined';
|
|
65
|
-
dispatch({ type: 'SET_INFO', payload: `Available agents: ${agentList}. Built-in: coder, architect, supervisor` });
|
|
66
|
-
return { handled: true };
|
|
67
|
-
}
|
|
68
|
-
case 'task':
|
|
69
|
-
case 'tasks': {
|
|
70
|
-
const taskRunner = new TaskRunner(state.cwd);
|
|
71
|
-
const subCommand = args[0]?.toLowerCase();
|
|
72
|
-
if (subCommand === 'run') {
|
|
73
|
-
// /task run [name] - 全タスクをワークフローで実行(nameを指定した場合はそこから開始)
|
|
74
|
-
const taskName = args[1];
|
|
75
|
-
const allTasks = taskRunner.listTasks();
|
|
76
|
-
if (allTasks.length === 0) {
|
|
77
|
-
dispatch({
|
|
78
|
-
type: 'SET_ERROR',
|
|
79
|
-
payload: 'No tasks available. Add .md files to .wolf/tasks/',
|
|
80
|
-
});
|
|
81
|
-
return { handled: true };
|
|
82
|
-
}
|
|
83
|
-
// nameが指定された場合、そのタスクから開始
|
|
84
|
-
let startIndex = 0;
|
|
85
|
-
if (taskName) {
|
|
86
|
-
startIndex = allTasks.findIndex(t => t.name === taskName);
|
|
87
|
-
if (startIndex === -1) {
|
|
88
|
-
dispatch({
|
|
89
|
-
type: 'SET_ERROR',
|
|
90
|
-
payload: `Task not found: ${taskName}`,
|
|
91
|
-
});
|
|
92
|
-
return { handled: true };
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// Return all tasks from startIndex for execution by App.tsx
|
|
96
|
-
const tasksToExecute = allTasks.slice(startIndex).map(t => ({
|
|
97
|
-
name: t.name,
|
|
98
|
-
content: t.content,
|
|
99
|
-
}));
|
|
100
|
-
return {
|
|
101
|
-
handled: true,
|
|
102
|
-
executeTasks: tasksToExecute,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
// /task list or /tasks - タスク一覧表示
|
|
106
|
-
const tasks = taskRunner.listTasks();
|
|
107
|
-
if (tasks.length === 0) {
|
|
108
|
-
dispatch({
|
|
109
|
-
type: 'SET_INFO',
|
|
110
|
-
payload: `No tasks found. Add .md files to ${taskRunner.getTasksDir()}`,
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
const taskList = tasks.map((t, i) => `${i + 1}. ${t.name}`).join('\n');
|
|
115
|
-
dispatch({
|
|
116
|
-
type: 'SET_INFO',
|
|
117
|
-
payload: `Tasks (${tasks.length}):\n${taskList}\n\nUse /task run [name] to execute`,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
return { handled: true };
|
|
121
|
-
}
|
|
122
|
-
default:
|
|
123
|
-
dispatch({ type: 'SET_ERROR', payload: `Unknown command: ${command}` });
|
|
124
|
-
return { handled: true };
|
|
125
|
-
}
|
|
126
|
-
}, [state.sacrificeMode, state.cwd, dispatch]);
|
|
127
|
-
return { handleCommand };
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=useCommands.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCommands.js","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/useCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input history management hook
|
|
3
|
-
*/
|
|
4
|
-
interface UseHistoryOptions {
|
|
5
|
-
/** Project directory for history persistence */
|
|
6
|
-
projectDir: string;
|
|
7
|
-
}
|
|
8
|
-
interface UseHistoryResult {
|
|
9
|
-
/** Navigate to previous history entry */
|
|
10
|
-
navigatePrevious: (currentInput: string) => string | undefined;
|
|
11
|
-
/** Navigate to next history entry */
|
|
12
|
-
navigateNext: () => {
|
|
13
|
-
entry: string;
|
|
14
|
-
isCurrentInput: boolean;
|
|
15
|
-
} | undefined;
|
|
16
|
-
/** Add entry to history */
|
|
17
|
-
addEntry: (entry: string) => void;
|
|
18
|
-
/** Reset navigation index */
|
|
19
|
-
resetIndex: () => void;
|
|
20
|
-
/** Current history length */
|
|
21
|
-
length: number;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Hook for managing input history with keyboard navigation
|
|
25
|
-
*/
|
|
26
|
-
export declare function useHistory({ projectDir }: UseHistoryOptions): UseHistoryResult;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=useHistory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useHistory.d.ts","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/useHistory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,UAAU,iBAAiB;IACzB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,yCAAyC;IACzC,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/D,qCAAqC;IACrC,YAAY,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAC3E,2BAA2B;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,6BAA6B;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAAG,gBAAgB,CA2D9E"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input history management hook
|
|
3
|
-
*/
|
|
4
|
-
import { useState, useCallback, useRef } from 'react';
|
|
5
|
-
import { loadInputHistory, addToInputHistory, } from '../../../config/paths.js';
|
|
6
|
-
/**
|
|
7
|
-
* Hook for managing input history with keyboard navigation
|
|
8
|
-
*/
|
|
9
|
-
export function useHistory({ projectDir }) {
|
|
10
|
-
// Load initial history
|
|
11
|
-
const [history] = useState(() => loadInputHistory(projectDir));
|
|
12
|
-
const indexRef = useRef(history.length);
|
|
13
|
-
const savedCurrentInputRef = useRef('');
|
|
14
|
-
const navigatePrevious = useCallback((currentInput) => {
|
|
15
|
-
if (indexRef.current <= 0) {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
// Save current input if at the end
|
|
19
|
-
if (indexRef.current === history.length) {
|
|
20
|
-
savedCurrentInputRef.current = currentInput;
|
|
21
|
-
}
|
|
22
|
-
indexRef.current--;
|
|
23
|
-
return history[indexRef.current];
|
|
24
|
-
}, [history]);
|
|
25
|
-
const navigateNext = useCallback(() => {
|
|
26
|
-
if (indexRef.current >= history.length) {
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
indexRef.current++;
|
|
30
|
-
if (indexRef.current === history.length) {
|
|
31
|
-
return { entry: savedCurrentInputRef.current, isCurrentInput: true };
|
|
32
|
-
}
|
|
33
|
-
const entry = history[indexRef.current];
|
|
34
|
-
return entry ? { entry, isCurrentInput: false } : undefined;
|
|
35
|
-
}, [history]);
|
|
36
|
-
const addEntry = useCallback((entry) => {
|
|
37
|
-
if (entry.trim()) {
|
|
38
|
-
// Add to in-memory history
|
|
39
|
-
history.push(entry);
|
|
40
|
-
// Persist to file
|
|
41
|
-
addToInputHistory(projectDir, entry);
|
|
42
|
-
// Reset index to end
|
|
43
|
-
indexRef.current = history.length;
|
|
44
|
-
savedCurrentInputRef.current = '';
|
|
45
|
-
}
|
|
46
|
-
}, [history, projectDir]);
|
|
47
|
-
const resetIndex = useCallback(() => {
|
|
48
|
-
indexRef.current = history.length;
|
|
49
|
-
savedCurrentInputRef.current = '';
|
|
50
|
-
}, [history.length]);
|
|
51
|
-
return {
|
|
52
|
-
navigatePrevious,
|
|
53
|
-
navigateNext,
|
|
54
|
-
addEntry,
|
|
55
|
-
resetIndex,
|
|
56
|
-
length: history.length,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=useHistory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useHistory.js","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/useHistory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAoBlC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,UAAU,EAAqB;IAC1D,uBAAuB;IACvB,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAS,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,oBAAoB,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;IAEhD,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,YAAoB,EAAsB,EAAE;QAChF,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,mCAAmC;QACnC,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,oBAAoB,CAAC,OAAO,GAAG,YAAY,CAAC;QAC9C,CAAC;QAED,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,WAAW,CAAC,GAA2D,EAAE;QAC5F,IAAI,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEnB,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,KAAa,EAAQ,EAAE;QACnD,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,2BAA2B;YAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,kBAAkB;YAClB,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACrC,qBAAqB;YACrB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAClC,oBAAoB,CAAC,OAAO,GAAG,EAAE,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAS,EAAE;QACxC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,oBAAoB,CAAC,OAAO,GAAG,EAAE,CAAC;IACpC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAErB,OAAO;QACL,gBAAgB;QAChB,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom hook for multiline input handling
|
|
3
|
-
*
|
|
4
|
-
* Uses useRawKeypress exclusively for all key input handling.
|
|
5
|
-
* The state transformation logic is in multilineInputLogic.ts.
|
|
6
|
-
*
|
|
7
|
-
* This design eliminates the dual-handling approach (useRawKeypress + useInput)
|
|
8
|
-
* which was prone to timing issues and race conditions.
|
|
9
|
-
*/
|
|
10
|
-
import { type MultilineInputState } from './multilineInputLogic.js';
|
|
11
|
-
import { type KeyAction } from './useRawKeypress.js';
|
|
12
|
-
export type { MultilineInputState } from './multilineInputLogic.js';
|
|
13
|
-
export interface UseMultilineInputOptions {
|
|
14
|
-
/** Callback when input is submitted */
|
|
15
|
-
onSubmit: (input: string) => void;
|
|
16
|
-
/** Callback when input is cancelled (Ctrl+C) */
|
|
17
|
-
onCancel?: () => void;
|
|
18
|
-
/** Whether input is disabled */
|
|
19
|
-
disabled?: boolean;
|
|
20
|
-
/** Whether the component is focused */
|
|
21
|
-
isFocused: boolean;
|
|
22
|
-
/** Custom key handlers to run before default handling */
|
|
23
|
-
onKeyAction?: (action: KeyAction) => boolean;
|
|
24
|
-
}
|
|
25
|
-
export interface UseMultilineInputResult extends MultilineInputState {
|
|
26
|
-
/** Set all lines (for history navigation) */
|
|
27
|
-
setLines: (lines: string[]) => void;
|
|
28
|
-
/** Set current line index */
|
|
29
|
-
setCurrentLine: (line: number) => void;
|
|
30
|
-
/** Set cursor position */
|
|
31
|
-
setCursor: (pos: number) => void;
|
|
32
|
-
/** Reset input to empty state */
|
|
33
|
-
reset: () => void;
|
|
34
|
-
/** Get full input as single string */
|
|
35
|
-
getFullInput: () => string;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Hook for multiline text input with keyboard navigation
|
|
39
|
-
*
|
|
40
|
-
* Controls:
|
|
41
|
-
* - Enter: Submit input
|
|
42
|
-
* - Shift+Enter, Option+Enter, Ctrl+O: Add new line
|
|
43
|
-
* - Ctrl+J: Submit (legacy)
|
|
44
|
-
* - Ctrl+C: Cancel
|
|
45
|
-
* - Arrow keys: Navigate
|
|
46
|
-
* - Backspace: Delete character or merge lines
|
|
47
|
-
*/
|
|
48
|
-
export declare function useMultilineInput(options: UseMultilineInputOptions): UseMultilineInputResult;
|
|
49
|
-
//# sourceMappingURL=useMultilineInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMultilineInput.d.ts","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/useMultilineInput.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,KAAK,mBAAmB,EAUzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,6BAA6B;IAC7B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,0BAA0B;IAC1B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,iCAAiC;IACjC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,sCAAsC;IACtC,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB,CA4F5F"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom hook for multiline input handling
|
|
3
|
-
*
|
|
4
|
-
* Uses useRawKeypress exclusively for all key input handling.
|
|
5
|
-
* The state transformation logic is in multilineInputLogic.ts.
|
|
6
|
-
*
|
|
7
|
-
* This design eliminates the dual-handling approach (useRawKeypress + useInput)
|
|
8
|
-
* which was prone to timing issues and race conditions.
|
|
9
|
-
*/
|
|
10
|
-
import { useState, useCallback } from 'react';
|
|
11
|
-
import { handleNewLine, handleCharacterInput, handleBackspace, handleLeftArrow, handleRightArrow, handleUpArrow, handleDownArrow, getFullInput, createInitialState, } from './multilineInputLogic.js';
|
|
12
|
-
import { useRawKeypress } from './useRawKeypress.js';
|
|
13
|
-
/**
|
|
14
|
-
* Hook for multiline text input with keyboard navigation
|
|
15
|
-
*
|
|
16
|
-
* Controls:
|
|
17
|
-
* - Enter: Submit input
|
|
18
|
-
* - Shift+Enter, Option+Enter, Ctrl+O: Add new line
|
|
19
|
-
* - Ctrl+J: Submit (legacy)
|
|
20
|
-
* - Ctrl+C: Cancel
|
|
21
|
-
* - Arrow keys: Navigate
|
|
22
|
-
* - Backspace: Delete character or merge lines
|
|
23
|
-
*/
|
|
24
|
-
export function useMultilineInput(options) {
|
|
25
|
-
const { onSubmit, onCancel, disabled = false, isFocused, onKeyAction } = options;
|
|
26
|
-
const [state, setState] = useState(createInitialState);
|
|
27
|
-
const reset = useCallback(() => {
|
|
28
|
-
setState(createInitialState());
|
|
29
|
-
}, []);
|
|
30
|
-
const getCurrentFullInput = useCallback(() => {
|
|
31
|
-
return getFullInput(state);
|
|
32
|
-
}, [state]);
|
|
33
|
-
// Handler for newline
|
|
34
|
-
const handleNewLineAction = useCallback(() => {
|
|
35
|
-
setState(prev => handleNewLine(prev));
|
|
36
|
-
}, []);
|
|
37
|
-
// Handler for submit
|
|
38
|
-
const handleSubmitAction = useCallback(() => {
|
|
39
|
-
const fullInput = getFullInput(state);
|
|
40
|
-
if (fullInput) {
|
|
41
|
-
onSubmit(fullInput);
|
|
42
|
-
setState(createInitialState());
|
|
43
|
-
}
|
|
44
|
-
}, [state, onSubmit]);
|
|
45
|
-
// Handler for cancel
|
|
46
|
-
const handleCancelAction = useCallback(() => {
|
|
47
|
-
onCancel?.();
|
|
48
|
-
}, [onCancel]);
|
|
49
|
-
// Handler for character input
|
|
50
|
-
const handleCharacterAction = useCallback((char) => {
|
|
51
|
-
setState(prev => handleCharacterInput(prev, char));
|
|
52
|
-
}, []);
|
|
53
|
-
// Handler for backspace
|
|
54
|
-
const handleBackspaceAction = useCallback(() => {
|
|
55
|
-
setState(prev => handleBackspace(prev));
|
|
56
|
-
}, []);
|
|
57
|
-
// Handler for navigation
|
|
58
|
-
const handleNavigationAction = useCallback((direction) => {
|
|
59
|
-
switch (direction) {
|
|
60
|
-
case 'up':
|
|
61
|
-
setState(prev => handleUpArrow(prev));
|
|
62
|
-
break;
|
|
63
|
-
case 'down':
|
|
64
|
-
setState(prev => handleDownArrow(prev));
|
|
65
|
-
break;
|
|
66
|
-
case 'left':
|
|
67
|
-
setState(prev => handleLeftArrow(prev));
|
|
68
|
-
break;
|
|
69
|
-
case 'right':
|
|
70
|
-
setState(prev => handleRightArrow(prev));
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
}, []);
|
|
74
|
-
// Handler for key actions (allows custom interception)
|
|
75
|
-
const handleKeyActionWrapper = useCallback((action) => {
|
|
76
|
-
// Allow custom handlers to intercept
|
|
77
|
-
if (onKeyAction) {
|
|
78
|
-
const handled = onKeyAction(action);
|
|
79
|
-
if (handled)
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// Default handling is done via individual callbacks
|
|
83
|
-
}, [onKeyAction]);
|
|
84
|
-
// Use raw keypress for all key input handling
|
|
85
|
-
useRawKeypress({
|
|
86
|
-
isActive: isFocused && !disabled,
|
|
87
|
-
onNewLine: handleNewLineAction,
|
|
88
|
-
onSubmit: handleSubmitAction,
|
|
89
|
-
onCancel: handleCancelAction,
|
|
90
|
-
onCharacter: handleCharacterAction,
|
|
91
|
-
onBackspace: handleBackspaceAction,
|
|
92
|
-
onNavigation: handleNavigationAction,
|
|
93
|
-
onKeyAction: handleKeyActionWrapper,
|
|
94
|
-
});
|
|
95
|
-
return {
|
|
96
|
-
lines: state.lines,
|
|
97
|
-
currentLine: state.currentLine,
|
|
98
|
-
cursor: state.cursor,
|
|
99
|
-
setLines: (lines) => setState(prev => ({ ...prev, lines })),
|
|
100
|
-
setCurrentLine: (currentLine) => setState(prev => ({ ...prev, currentLine })),
|
|
101
|
-
setCursor: (cursor) => setState(prev => ({ ...prev, cursor })),
|
|
102
|
-
reset,
|
|
103
|
-
getFullInput: getCurrentFullInput,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=useMultilineInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMultilineInput.js","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/useMultilineInput.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Permission and user input handlers hook
|
|
3
|
-
*/
|
|
4
|
-
import type { PermissionHandler, AskUserQuestionHandler } from '../../../claude/process.js';
|
|
5
|
-
import type { UserInputRequest, IterationLimitRequest } from '../../../workflow/engine.js';
|
|
6
|
-
export interface PermissionHandlersResult {
|
|
7
|
-
handlePermissionRequest: PermissionHandler;
|
|
8
|
-
handleAskUserQuestion: AskUserQuestionHandler;
|
|
9
|
-
handleUserInput: (request: UserInputRequest) => Promise<string | null>;
|
|
10
|
-
handleIterationLimit: (request: IterationLimitRequest) => Promise<number | null>;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Hook providing permission and user input handlers
|
|
14
|
-
*/
|
|
15
|
-
export declare function usePermissionHandlers(): PermissionHandlersResult;
|
|
16
|
-
//# sourceMappingURL=usePermissionHandlers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePermissionHandlers.d.ts","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/usePermissionHandlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAA2C,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAErI,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAmC3F,MAAM,WAAW,wBAAwB;IACvC,uBAAuB,EAAE,iBAAiB,CAAC;IAC3C,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvE,oBAAoB,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,wBAAwB,CAsJhE"}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Permission and user input handlers hook
|
|
3
|
-
*/
|
|
4
|
-
import { useCallback } from 'react';
|
|
5
|
-
import { useApp } from '../context/AppContext.js';
|
|
6
|
-
import { DEFAULT_ADDITIONAL_ITERATIONS } from '../constants.js';
|
|
7
|
-
/**
|
|
8
|
-
* Escape special characters in permission rule patterns.
|
|
9
|
-
* These characters have special meaning in permission matching and must be escaped.
|
|
10
|
-
*/
|
|
11
|
-
function escapePermissionPattern(str) {
|
|
12
|
-
// Escape characters that have special meaning in permission rules:
|
|
13
|
-
// ( ) - grouping
|
|
14
|
-
// * - wildcard
|
|
15
|
-
// \ - escape character itself
|
|
16
|
-
return str.replace(/[\\()*]/g, '\\$&');
|
|
17
|
-
}
|
|
18
|
-
/** Build permission rule for the tool with specific args */
|
|
19
|
-
function buildPermissionRuleExact(toolName, input) {
|
|
20
|
-
if (toolName === 'Bash') {
|
|
21
|
-
const command = input.command || '';
|
|
22
|
-
// Escape special characters for exact match
|
|
23
|
-
return `Bash(${escapePermissionPattern(command)})`;
|
|
24
|
-
}
|
|
25
|
-
return toolName;
|
|
26
|
-
}
|
|
27
|
-
/** Build permission rule for the tool command (any args) */
|
|
28
|
-
function buildPermissionRuleCommand(toolName, input) {
|
|
29
|
-
if (toolName === 'Bash') {
|
|
30
|
-
const command = input.command || '';
|
|
31
|
-
const firstWord = command.split(/\s+/)[0] || command;
|
|
32
|
-
return `Bash(${firstWord}*)`;
|
|
33
|
-
}
|
|
34
|
-
// For other tools, allow all uses
|
|
35
|
-
return `${toolName}(*)`;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Hook providing permission and user input handlers
|
|
39
|
-
*/
|
|
40
|
-
export function usePermissionHandlers() {
|
|
41
|
-
const { state, dispatch, setResolver, clearResolver } = useApp();
|
|
42
|
-
// Handle permission requests
|
|
43
|
-
const handlePermissionRequest = useCallback(async (request) => {
|
|
44
|
-
// In sacrifice mode, auto-approve
|
|
45
|
-
if (state.sacrificeMode) {
|
|
46
|
-
return { behavior: 'allow' };
|
|
47
|
-
}
|
|
48
|
-
return new Promise((resolve) => {
|
|
49
|
-
const handleResponse = (response) => {
|
|
50
|
-
dispatch({ type: 'HIDE_MODAL' });
|
|
51
|
-
clearResolver('permission');
|
|
52
|
-
switch (response) {
|
|
53
|
-
case 'allow':
|
|
54
|
-
resolve({ behavior: 'allow' });
|
|
55
|
-
break;
|
|
56
|
-
case 'deny':
|
|
57
|
-
resolve({ behavior: 'deny', message: 'User denied permission' });
|
|
58
|
-
break;
|
|
59
|
-
case 'always': {
|
|
60
|
-
// Allow this exact tool+args
|
|
61
|
-
const rule = buildPermissionRuleExact(request.toolName, request.input);
|
|
62
|
-
const updatedPermissions = [
|
|
63
|
-
{
|
|
64
|
-
type: 'addRules',
|
|
65
|
-
rules: [{ toolName: request.toolName, ruleContent: rule }],
|
|
66
|
-
behavior: 'allow',
|
|
67
|
-
destination: 'session',
|
|
68
|
-
},
|
|
69
|
-
];
|
|
70
|
-
resolve({ behavior: 'allow', updatedPermissions });
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
case 'always_command': {
|
|
74
|
-
// Allow this command with any args
|
|
75
|
-
const rule = buildPermissionRuleCommand(request.toolName, request.input);
|
|
76
|
-
const updatedPermissions = [
|
|
77
|
-
{
|
|
78
|
-
type: 'addRules',
|
|
79
|
-
rules: [{ toolName: request.toolName, ruleContent: rule }],
|
|
80
|
-
behavior: 'allow',
|
|
81
|
-
destination: 'session',
|
|
82
|
-
},
|
|
83
|
-
];
|
|
84
|
-
resolve({ behavior: 'allow', updatedPermissions });
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
case 'sacrifice':
|
|
88
|
-
// Enable sacrifice mode and allow
|
|
89
|
-
dispatch({ type: 'TOGGLE_SACRIFICE_MODE' });
|
|
90
|
-
resolve({ behavior: 'allow' });
|
|
91
|
-
break;
|
|
92
|
-
default:
|
|
93
|
-
resolve({ behavior: 'deny', message: 'Unknown response' });
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
setResolver('permission', handleResponse);
|
|
97
|
-
dispatch({
|
|
98
|
-
type: 'SHOW_MODAL',
|
|
99
|
-
payload: { type: 'permission', request },
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
}, [state.sacrificeMode, dispatch, setResolver, clearResolver]);
|
|
103
|
-
// Handle AskUserQuestion
|
|
104
|
-
const handleAskUserQuestion = useCallback(async (input) => {
|
|
105
|
-
// In sacrifice mode, return empty answers
|
|
106
|
-
if (state.sacrificeMode) {
|
|
107
|
-
return {};
|
|
108
|
-
}
|
|
109
|
-
return new Promise((resolve) => {
|
|
110
|
-
const handleComplete = (answers) => {
|
|
111
|
-
dispatch({ type: 'HIDE_MODAL' });
|
|
112
|
-
clearResolver('askUserQuestion');
|
|
113
|
-
resolve(answers);
|
|
114
|
-
};
|
|
115
|
-
setResolver('askUserQuestion', handleComplete);
|
|
116
|
-
dispatch({
|
|
117
|
-
type: 'SHOW_MODAL',
|
|
118
|
-
payload: { type: 'askUserQuestion', input },
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
}, [state.sacrificeMode, dispatch, setResolver, clearResolver]);
|
|
122
|
-
// Handle user input request (blocked state)
|
|
123
|
-
const handleUserInput = useCallback(async (request) => {
|
|
124
|
-
// In sacrifice mode, auto-skip
|
|
125
|
-
if (state.sacrificeMode) {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
return new Promise((resolve) => {
|
|
129
|
-
const handleSubmit = (input) => {
|
|
130
|
-
dispatch({ type: 'HIDE_MODAL' });
|
|
131
|
-
clearResolver('userInput');
|
|
132
|
-
resolve(input);
|
|
133
|
-
};
|
|
134
|
-
setResolver('userInput', handleSubmit);
|
|
135
|
-
dispatch({
|
|
136
|
-
type: 'SHOW_MODAL',
|
|
137
|
-
payload: { type: 'userInput', step: request.step, response: request.response },
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
}, [state.sacrificeMode, dispatch, setResolver, clearResolver]);
|
|
141
|
-
// Handle iteration limit
|
|
142
|
-
const handleIterationLimit = useCallback(async (request) => {
|
|
143
|
-
// In sacrifice mode, auto-continue
|
|
144
|
-
if (state.sacrificeMode) {
|
|
145
|
-
return DEFAULT_ADDITIONAL_ITERATIONS;
|
|
146
|
-
}
|
|
147
|
-
return new Promise((resolve) => {
|
|
148
|
-
const handleDecision = (additional) => {
|
|
149
|
-
dispatch({ type: 'HIDE_MODAL' });
|
|
150
|
-
clearResolver('iterationLimit');
|
|
151
|
-
resolve(additional);
|
|
152
|
-
};
|
|
153
|
-
setResolver('iterationLimit', handleDecision);
|
|
154
|
-
dispatch({
|
|
155
|
-
type: 'SHOW_MODAL',
|
|
156
|
-
payload: {
|
|
157
|
-
type: 'iterationLimit',
|
|
158
|
-
currentIteration: request.currentIteration,
|
|
159
|
-
maxIterations: request.maxIterations,
|
|
160
|
-
currentStep: request.currentStep,
|
|
161
|
-
},
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
}, [state.sacrificeMode, dispatch, setResolver, clearResolver]);
|
|
165
|
-
return {
|
|
166
|
-
handlePermissionRequest,
|
|
167
|
-
handleAskUserQuestion,
|
|
168
|
-
handleUserInput,
|
|
169
|
-
handleIterationLimit,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=usePermissionHandlers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePermissionHandlers.js","sourceRoot":"","sources":["../../../../src/interactive/ink/hooks/usePermissionHandlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAKhE;;;GAGG;AACH,SAAS,uBAAuB,CAAC,GAAW;IAC1C,mEAAmE;IACnE,iBAAiB;IACjB,eAAe;IACf,8BAA8B;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,4DAA4D;AAC5D,SAAS,wBAAwB,CAAC,QAAgB,EAAE,KAA8B;IAChF,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;QAChD,4CAA4C;QAC5C,OAAO,QAAQ,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC;IACrD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4DAA4D;AAC5D,SAAS,0BAA0B,CAAC,QAAgB,EAAE,KAA8B;IAClF,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;QACrD,OAAO,QAAQ,SAAS,IAAI,CAAC;IAC/B,CAAC;IACD,kCAAkC;IAClC,OAAO,GAAG,QAAQ,KAAK,CAAC;AAC1B,CAAC;AASD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjE,6BAA6B;IAC7B,MAAM,uBAAuB,GAAsB,WAAW,CAAC,KAAK,EAAE,OAA0B,EAA6B,EAAE;QAC7H,kCAAkC;QAClC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;gBAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjC,aAAa,CAAC,YAAY,CAAC,CAAC;gBAE5B,QAAQ,QAAQ,EAAE,CAAC;oBACjB,KAAK,OAAO;wBACV,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC/B,MAAM;oBAER,KAAK,MAAM;wBACT,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;wBACjE,MAAM;oBAER,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,6BAA6B;wBAC7B,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;wBACvE,MAAM,kBAAkB,GAAuB;4BAC7C;gCACE,IAAI,EAAE,UAAU;gCAChB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gCAC1D,QAAQ,EAAE,OAAO;gCACjB,WAAW,EAAE,SAAS;6BACvB;yBACF,CAAC;wBACF,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBACnD,MAAM;oBACR,CAAC;oBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;wBACtB,mCAAmC;wBACnC,MAAM,IAAI,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzE,MAAM,kBAAkB,GAAuB;4BAC7C;gCACE,IAAI,EAAE,UAAU;gCAChB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gCAC1D,QAAQ,EAAE,OAAO;gCACjB,WAAW,EAAE,SAAS;6BACvB;yBACF,CAAC;wBACF,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBACnD,MAAM;oBACR,CAAC;oBAED,KAAK,WAAW;wBACd,kCAAkC;wBAClC,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;wBAC5C,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC/B,MAAM;oBAER;wBACE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,CAAC;YAEF,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAC1C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE;aACzC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,qBAAqB,GAA2B,WAAW,CAAC,KAAK,EAAE,KAA2B,EAAmC,EAAE;QACvI,0CAA0C;QAC1C,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,cAAc,GAAG,CAAC,OAA+B,EAAE,EAAE;gBACzD,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjC,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBACjC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC;YAEF,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;YAC/C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhE,4CAA4C;IAC5C,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,EAAE,OAAyB,EAA0B,EAAE;QAC9F,+BAA+B;QAC/B,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,CAAC,KAAoB,EAAE,EAAE;gBAC5C,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;YAEF,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACvC,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;aAC/E,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK,EAAE,OAA8B,EAA0B,EAAE;QACxG,mCAAmC;QACnC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,6BAA6B,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,cAAc,GAAG,CAAC,UAAyB,EAAE,EAAE;gBACnD,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjC,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBAChC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CAAC;YAEF,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAC9C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE;oBACP,IAAI,EAAE,gBAAgB;oBACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,uBAAuB;QACvB,qBAAqB;QACrB,eAAe;QACf,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
|