takt 0.41.0 → 0.43.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/README.md +59 -28
- package/builtins/en/config.yaml +9 -1
- package/builtins/en/facets/instructions/dual-team-leader-implement.md +7 -2
- package/builtins/en/facets/instructions/fix-maintenance.md +43 -0
- package/builtins/en/facets/instructions/implement-maintenance.md +72 -0
- package/builtins/en/facets/instructions/plan-maintenance.md +51 -0
- package/builtins/en/facets/instructions/review-coding.md +8 -0
- package/builtins/en/facets/instructions/supervise-maintenance.md +110 -0
- package/builtins/en/facets/instructions/team-leader-implement.md +6 -1
- package/builtins/en/facets/instructions/write-tests-first.md +5 -0
- package/builtins/en/facets/instructions/write-tests-maintenance.md +45 -0
- package/builtins/en/facets/knowledge/architecture.md +18 -13
- package/builtins/en/facets/knowledge/cqrs-es.md +48 -0
- package/builtins/en/facets/knowledge/existing-system.md +70 -0
- package/builtins/en/facets/knowledge/frontend.md +25 -0
- package/builtins/en/facets/knowledge/react.md +35 -0
- package/builtins/en/facets/output-contracts/coding-review.md +41 -0
- package/builtins/en/facets/output-contracts/frontend-review.md +1 -0
- package/builtins/en/facets/output-contracts/maintenance-scope.md +29 -0
- package/builtins/en/facets/personas/coding-reviewer.md +27 -0
- package/builtins/en/facets/personas/dual-supervisor.md +1 -1
- package/builtins/en/facets/policies/ai-antipattern.md +59 -0
- package/builtins/en/facets/policies/coding.md +85 -3
- package/builtins/en/facets/policies/existing-system-respect.md +73 -0
- package/builtins/en/facets/policies/qa.md +3 -1
- package/builtins/en/facets/policies/review.md +25 -12
- package/builtins/en/facets/policies/testing.md +33 -0
- package/builtins/en/workflow-categories.yaml +1 -0
- package/builtins/en/workflows/auto-improvement-loop.yaml +20 -4
- package/builtins/en/workflows/default-peer-review.yaml +25 -3
- package/builtins/en/workflows/frontend-maintenance.yaml +499 -0
- package/builtins/en/workflows/peer-review.yaml +23 -1
- package/builtins/en/workflows/review-fix-takt-default.yaml +30 -2
- package/builtins/ja/config.yaml +9 -1
- package/builtins/ja/facets/instructions/dual-team-leader-implement.md +7 -2
- package/builtins/ja/facets/instructions/fix-maintenance.md +43 -0
- package/builtins/ja/facets/instructions/implement-maintenance.md +72 -0
- package/builtins/ja/facets/instructions/plan-maintenance.md +51 -0
- package/builtins/ja/facets/instructions/review-coding.md +8 -0
- package/builtins/ja/facets/instructions/supervise-maintenance.md +110 -0
- package/builtins/ja/facets/instructions/team-leader-implement.md +6 -1
- package/builtins/ja/facets/instructions/write-tests-first.md +5 -0
- package/builtins/ja/facets/instructions/write-tests-maintenance.md +45 -0
- package/builtins/ja/facets/knowledge/architecture.md +18 -13
- package/builtins/ja/facets/knowledge/cqrs-es.md +48 -0
- package/builtins/ja/facets/knowledge/existing-system.md +70 -0
- package/builtins/ja/facets/knowledge/frontend.md +25 -0
- package/builtins/ja/facets/knowledge/react.md +35 -0
- package/builtins/ja/facets/output-contracts/coding-review.md +41 -0
- package/builtins/ja/facets/output-contracts/frontend-review.md +1 -0
- package/builtins/ja/facets/output-contracts/maintenance-scope.md +29 -0
- package/builtins/ja/facets/personas/coding-reviewer.md +27 -0
- package/builtins/ja/facets/personas/dual-supervisor.md +2 -2
- package/builtins/ja/facets/policies/ai-antipattern.md +59 -0
- package/builtins/ja/facets/policies/coding.md +85 -3
- package/builtins/ja/facets/policies/existing-system-respect.md +73 -0
- package/builtins/ja/facets/policies/qa.md +3 -1
- package/builtins/ja/facets/policies/review.md +25 -12
- package/builtins/ja/facets/policies/testing.md +33 -0
- package/builtins/ja/workflow-categories.yaml +1 -0
- package/builtins/ja/workflows/auto-improvement-loop.yaml +20 -4
- package/builtins/ja/workflows/default-peer-review.yaml +25 -3
- package/builtins/ja/workflows/frontend-maintenance.yaml +499 -0
- package/builtins/ja/workflows/peer-review.yaml +23 -1
- package/builtins/ja/workflows/review-fix-takt-default.yaml +30 -2
- package/builtins/skill/references/yaml-schema.md +8 -3
- package/builtins/skill-codex/references/yaml-schema.md +8 -3
- package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
- package/dist/agents/decompose-task-usecase.js +3 -2
- package/dist/agents/decompose-task-usecase.js.map +1 -1
- package/dist/agents/judge-status-usecase.d.ts.map +1 -1
- package/dist/agents/judge-status-usecase.js +4 -3
- package/dist/agents/judge-status-usecase.js.map +1 -1
- package/dist/agents/provider-call-options.d.ts +4 -0
- package/dist/agents/provider-call-options.d.ts.map +1 -0
- package/dist/agents/provider-call-options.js +9 -0
- package/dist/agents/provider-call-options.js.map +1 -0
- package/dist/agents/runner.js +1 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.js +5 -4
- package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
- package/dist/agents/team-leader-structured-output.d.ts.map +1 -1
- package/dist/agents/team-leader-structured-output.js +21 -0
- package/dist/agents/team-leader-structured-output.js.map +1 -1
- package/dist/app/cli/commands.js +7 -1
- package/dist/app/cli/commands.js.map +1 -1
- package/dist/app/cli/program.js +1 -1
- package/dist/app/cli/program.js.map +1 -1
- package/dist/app/cli/routing.d.ts.map +1 -1
- package/dist/app/cli/routing.js +8 -1
- package/dist/app/cli/routing.js.map +1 -1
- package/dist/core/models/assistant-config.d.ts +4 -0
- package/dist/core/models/assistant-config.d.ts.map +1 -0
- package/dist/core/models/assistant-config.js +4 -0
- package/dist/core/models/assistant-config.js.map +1 -0
- package/dist/core/models/config-schemas.d.ts +160 -9
- package/dist/core/models/config-schemas.d.ts.map +1 -1
- package/dist/core/models/config-schemas.js +12 -2
- package/dist/core/models/config-schemas.js.map +1 -1
- package/dist/core/models/config-types.d.ts +30 -4
- package/dist/core/models/config-types.d.ts.map +1 -1
- package/dist/core/models/index.d.ts +1 -1
- package/dist/core/models/index.d.ts.map +1 -1
- package/dist/core/models/index.js.map +1 -1
- package/dist/core/models/provider-profiles.d.ts +1 -1
- package/dist/core/models/provider-profiles.d.ts.map +1 -1
- package/dist/core/models/quality-gate-defaults.d.ts +2 -0
- package/dist/core/models/quality-gate-defaults.d.ts.map +1 -0
- package/dist/core/models/quality-gate-defaults.js +2 -0
- package/dist/core/models/quality-gate-defaults.js.map +1 -0
- package/dist/core/models/response.d.ts +1 -1
- package/dist/core/models/response.d.ts.map +1 -1
- package/dist/core/models/response.js +1 -1
- package/dist/core/models/response.js.map +1 -1
- package/dist/core/models/schema-base.d.ts +80 -3
- package/dist/core/models/schema-base.d.ts.map +1 -1
- package/dist/core/models/schema-base.js +76 -2
- package/dist/core/models/schema-base.js.map +1 -1
- package/dist/core/models/types.d.ts +2 -2
- package/dist/core/models/types.d.ts.map +1 -1
- package/dist/core/models/workflow-provider-options.d.ts +7 -0
- package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
- package/dist/core/models/workflow-schemas.d.ts +368 -51
- package/dist/core/models/workflow-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-system-input-types.d.ts +8 -1
- package/dist/core/models/workflow-system-input-types.d.ts.map +1 -1
- package/dist/core/models/workflow-system-schemas.d.ts +7 -1
- package/dist/core/models/workflow-system-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-system-schemas.js +12 -1
- package/dist/core/models/workflow-system-schemas.js.map +1 -1
- package/dist/core/models/workflow-types.d.ts +13 -5
- package/dist/core/models/workflow-types.d.ts.map +1 -1
- package/dist/core/models/workflow-types.js.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.d.ts +1 -0
- package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.js +9 -4
- package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.d.ts +11 -0
- package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.js +139 -19
- package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.js +55 -23
- package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngine.d.ts +1 -0
- package/dist/core/workflow/engine/WorkflowEngine.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngine.js +29 -4
- package/dist/core/workflow/engine/WorkflowEngine.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.js +2 -0
- package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowRunLoop.d.ts +8 -0
- package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowRunLoop.js +78 -7
- package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
- package/dist/core/workflow/engine/team-leader-execution.d.ts +1 -0
- package/dist/core/workflow/engine/team-leader-execution.d.ts.map +1 -1
- package/dist/core/workflow/engine/team-leader-execution.js +22 -0
- package/dist/core/workflow/engine/team-leader-execution.js.map +1 -1
- package/dist/core/workflow/engine/team-leader-timeout-fallback.d.ts +13 -0
- package/dist/core/workflow/engine/team-leader-timeout-fallback.d.ts.map +1 -0
- package/dist/core/workflow/engine/team-leader-timeout-fallback.js +125 -0
- package/dist/core/workflow/engine/team-leader-timeout-fallback.js.map +1 -0
- package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.js +4 -3
- package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
- package/dist/core/workflow/observability/workflowSpans.d.ts +28 -0
- package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -0
- package/dist/core/workflow/observability/workflowSpans.js +107 -0
- package/dist/core/workflow/observability/workflowSpans.js.map +1 -0
- package/dist/core/workflow/part-definition-validator.d.ts.map +1 -1
- package/dist/core/workflow/part-definition-validator.js +4 -0
- package/dist/core/workflow/part-definition-validator.js.map +1 -1
- package/dist/core/workflow/permission-profile-resolution.d.ts.map +1 -1
- package/dist/core/workflow/permission-profile-resolution.js +1 -0
- package/dist/core/workflow/permission-profile-resolution.js.map +1 -1
- package/dist/core/workflow/phase-runner.d.ts +1 -3
- package/dist/core/workflow/phase-runner.d.ts.map +1 -1
- package/dist/core/workflow/phase-runner.js.map +1 -1
- package/dist/core/workflow/quality-gates/commandGateMessage.d.ts +4 -0
- package/dist/core/workflow/quality-gates/commandGateMessage.d.ts.map +1 -0
- package/dist/core/workflow/quality-gates/commandGateMessage.js +84 -0
- package/dist/core/workflow/quality-gates/commandGateMessage.js.map +1 -0
- package/dist/core/workflow/quality-gates/commandGateRunner.d.ts +3 -0
- package/dist/core/workflow/quality-gates/commandGateRunner.d.ts.map +1 -0
- package/dist/core/workflow/quality-gates/commandGateRunner.js +242 -0
- package/dist/core/workflow/quality-gates/commandGateRunner.js.map +1 -0
- package/dist/core/workflow/quality-gates/qualityGateRunner.d.ts +3 -0
- package/dist/core/workflow/quality-gates/qualityGateRunner.d.ts.map +1 -0
- package/dist/core/workflow/quality-gates/qualityGateRunner.js +29 -0
- package/dist/core/workflow/quality-gates/qualityGateRunner.js.map +1 -0
- package/dist/core/workflow/quality-gates/types.d.ts +41 -0
- package/dist/core/workflow/quality-gates/types.d.ts.map +1 -0
- package/dist/core/workflow/quality-gates/types.js +2 -0
- package/dist/core/workflow/quality-gates/types.js.map +1 -0
- package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
- package/dist/core/workflow/report-phase-runner.js +3 -2
- package/dist/core/workflow/report-phase-runner.js.map +1 -1
- package/dist/core/workflow/run/run-meta.d.ts +3 -1
- package/dist/core/workflow/run/run-meta.d.ts.map +1 -1
- package/dist/core/workflow/run/run-meta.js +2 -0
- package/dist/core/workflow/run/run-meta.js.map +1 -1
- package/dist/core/workflow/run/run-slug.d.ts +2 -0
- package/dist/core/workflow/run/run-slug.d.ts.map +1 -0
- package/dist/core/workflow/run/run-slug.js +19 -0
- package/dist/core/workflow/run/run-slug.js.map +1 -0
- package/dist/core/workflow/status-judgment-phase.d.ts.map +1 -1
- package/dist/core/workflow/status-judgment-phase.js +7 -3
- package/dist/core/workflow/status-judgment-phase.js.map +1 -1
- package/dist/core/workflow/system/system-step-effect-runner.d.ts.map +1 -1
- package/dist/core/workflow/system/system-step-effect-runner.js +16 -1
- package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
- package/dist/core/workflow/team-leader-continuation-ids.d.ts +3 -0
- package/dist/core/workflow/team-leader-continuation-ids.d.ts.map +1 -0
- package/dist/core/workflow/team-leader-continuation-ids.js +6 -0
- package/dist/core/workflow/team-leader-continuation-ids.js.map +1 -0
- package/dist/core/workflow/types.d.ts +7 -1
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/features/interactive/assistantInitFiles.d.ts +2 -0
- package/dist/features/interactive/assistantInitFiles.d.ts.map +1 -0
- package/dist/features/interactive/assistantInitFiles.js +110 -0
- package/dist/features/interactive/assistantInitFiles.js.map +1 -0
- package/dist/features/interactive/conversationLoop.d.ts +5 -1
- package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
- package/dist/features/interactive/conversationLoop.js +33 -11
- package/dist/features/interactive/conversationLoop.js.map +1 -1
- package/dist/features/interactive/imageAttachments.d.ts +20 -0
- package/dist/features/interactive/imageAttachments.d.ts.map +1 -0
- package/dist/features/interactive/imageAttachments.js +75 -0
- package/dist/features/interactive/imageAttachments.js.map +1 -0
- package/dist/features/interactive/index.d.ts +2 -1
- package/dist/features/interactive/index.d.ts.map +1 -1
- package/dist/features/interactive/index.js +1 -1
- package/dist/features/interactive/index.js.map +1 -1
- package/dist/features/interactive/inlineImagePaste.d.ts +21 -0
- package/dist/features/interactive/inlineImagePaste.d.ts.map +1 -0
- package/dist/features/interactive/inlineImagePaste.js +136 -0
- package/dist/features/interactive/inlineImagePaste.js.map +1 -0
- package/dist/features/interactive/instructModeTypes.d.ts +23 -0
- package/dist/features/interactive/instructModeTypes.d.ts.map +1 -0
- package/dist/features/interactive/instructModeTypes.js +2 -0
- package/dist/features/interactive/instructModeTypes.js.map +1 -0
- package/dist/features/interactive/interactive-summary.d.ts +1 -1
- package/dist/features/interactive/interactive-summary.d.ts.map +1 -1
- package/dist/features/interactive/interactive-summary.js +4 -3
- package/dist/features/interactive/interactive-summary.js.map +1 -1
- package/dist/features/interactive/interactive.d.ts +8 -3
- package/dist/features/interactive/interactive.d.ts.map +1 -1
- package/dist/features/interactive/interactive.js +4 -0
- package/dist/features/interactive/interactive.js.map +1 -1
- package/dist/features/interactive/interactiveInput.d.ts +2 -1
- package/dist/features/interactive/interactiveInput.d.ts.map +1 -1
- package/dist/features/interactive/interactiveInput.js +5 -1
- package/dist/features/interactive/interactiveInput.js.map +1 -1
- package/dist/features/interactive/lineEditor.d.ts +2 -0
- package/dist/features/interactive/lineEditor.d.ts.map +1 -1
- package/dist/features/interactive/lineEditor.js +130 -9
- package/dist/features/interactive/lineEditor.js.map +1 -1
- package/dist/features/interactive/passthroughMode.d.ts.map +1 -1
- package/dist/features/interactive/passthroughMode.js +8 -4
- package/dist/features/interactive/passthroughMode.js.map +1 -1
- package/dist/features/interactive/promptSections.d.ts +2 -0
- package/dist/features/interactive/promptSections.d.ts.map +1 -1
- package/dist/features/interactive/promptSections.js +7 -1
- package/dist/features/interactive/promptSections.js.map +1 -1
- package/dist/features/interactive/quietMode.d.ts.map +1 -1
- package/dist/features/interactive/quietMode.js +12 -8
- package/dist/features/interactive/quietMode.js.map +1 -1
- package/dist/features/interactive/retryMode.d.ts +10 -13
- package/dist/features/interactive/retryMode.d.ts.map +1 -1
- package/dist/features/interactive/retryMode.js +42 -22
- package/dist/features/interactive/retryMode.js.map +1 -1
- package/dist/features/interactive/slashCommandRegistry.d.ts.map +1 -1
- package/dist/features/interactive/slashCommandRegistry.js +1 -0
- package/dist/features/interactive/slashCommandRegistry.js.map +1 -1
- package/dist/features/tasks/add/index.d.ts +4 -0
- package/dist/features/tasks/add/index.d.ts.map +1 -1
- package/dist/features/tasks/add/index.js +12 -29
- package/dist/features/tasks/add/index.js.map +1 -1
- package/dist/features/tasks/attachments.d.ts +19 -0
- package/dist/features/tasks/attachments.d.ts.map +1 -0
- package/dist/features/tasks/attachments.js +129 -0
- package/dist/features/tasks/attachments.js.map +1 -0
- package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
- package/dist/features/tasks/execute/resolveTask.js +4 -3
- package/dist/features/tasks/execute/resolveTask.js.map +1 -1
- package/dist/features/tasks/execute/runMeta.d.ts +5 -1
- package/dist/features/tasks/execute/runMeta.d.ts.map +1 -1
- package/dist/features/tasks/execute/runMeta.js +10 -4
- package/dist/features/tasks/execute/runMeta.js.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.js +48 -4
- package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
- package/dist/features/tasks/execute/taskSpecContext.d.ts +7 -2
- package/dist/features/tasks/execute/taskSpecContext.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskSpecContext.js +23 -36
- package/dist/features/tasks/execute/taskSpecContext.js.map +1 -1
- package/dist/features/tasks/execute/taskWorkflowExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskWorkflowExecution.js +2 -1
- package/dist/features/tasks/execute/taskWorkflowExecution.js.map +1 -1
- package/dist/features/tasks/execute/traceReportRedaction.d.ts +0 -1
- package/dist/features/tasks/execute/traceReportRedaction.d.ts.map +1 -1
- package/dist/features/tasks/execute/traceReportRedaction.js +1 -9
- package/dist/features/tasks/execute/traceReportRedaction.js.map +1 -1
- package/dist/features/tasks/execute/types.d.ts +8 -0
- package/dist/features/tasks/execute/types.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.js +12 -1
- package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts +5 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js +7 -2
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
- package/dist/features/tasks/index.d.ts +1 -0
- package/dist/features/tasks/index.d.ts.map +1 -1
- package/dist/features/tasks/index.js +1 -0
- package/dist/features/tasks/index.js.map +1 -1
- package/dist/features/tasks/list/instructMode.d.ts +2 -20
- package/dist/features/tasks/list/instructMode.d.ts.map +1 -1
- package/dist/features/tasks/list/instructMode.js +15 -4
- package/dist/features/tasks/list/instructMode.js.map +1 -1
- package/dist/features/tasks/list/retryTaskSpecAttachments.d.ts +8 -0
- package/dist/features/tasks/list/retryTaskSpecAttachments.d.ts.map +1 -0
- package/dist/features/tasks/list/retryTaskSpecAttachments.js +87 -0
- package/dist/features/tasks/list/retryTaskSpecAttachments.js.map +1 -0
- package/dist/features/tasks/list/taskInstructionActions.d.ts.map +1 -1
- package/dist/features/tasks/list/taskInstructionActions.js +20 -2
- package/dist/features/tasks/list/taskInstructionActions.js.map +1 -1
- package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
- package/dist/features/tasks/list/taskRetryActions.js +24 -6
- package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
- package/dist/features/tasks/resume/directInstructMode.d.ts +13 -0
- package/dist/features/tasks/resume/directInstructMode.d.ts.map +1 -0
- package/dist/features/tasks/resume/directInstructMode.js +67 -0
- package/dist/features/tasks/resume/directInstructMode.js.map +1 -0
- package/dist/features/tasks/resume/directRunFinder.d.ts +7 -0
- package/dist/features/tasks/resume/directRunFinder.d.ts.map +1 -0
- package/dist/features/tasks/resume/directRunFinder.js +43 -0
- package/dist/features/tasks/resume/directRunFinder.js.map +1 -0
- package/dist/features/tasks/resume/index.d.ts +3 -0
- package/dist/features/tasks/resume/index.d.ts.map +1 -0
- package/dist/features/tasks/resume/index.js +229 -0
- package/dist/features/tasks/resume/index.js.map +1 -0
- package/dist/features/tasks/taskSpecFile.d.ts +2 -0
- package/dist/features/tasks/taskSpecFile.d.ts.map +1 -0
- package/dist/features/tasks/taskSpecFile.js +38 -0
- package/dist/features/tasks/taskSpecFile.js.map +1 -0
- package/dist/infra/claude/executor.d.ts.map +1 -1
- package/dist/infra/claude/executor.js +27 -6
- package/dist/infra/claude/executor.js.map +1 -1
- package/dist/infra/claude/mcp-config.d.ts +7 -0
- package/dist/infra/claude/mcp-config.d.ts.map +1 -0
- package/dist/infra/claude/mcp-config.js +30 -0
- package/dist/infra/claude/mcp-config.js.map +1 -0
- package/dist/infra/claude-headless/client.d.ts.map +1 -1
- package/dist/infra/claude-headless/client.js +5 -40
- package/dist/infra/claude-headless/client.js.map +1 -1
- package/dist/infra/claude-headless/result-response.js +1 -1
- package/dist/infra/claude-headless/result-response.js.map +1 -1
- package/dist/infra/claude-terminal/client.d.ts +4 -0
- package/dist/infra/claude-terminal/client.d.ts.map +1 -0
- package/dist/infra/claude-terminal/client.js +314 -0
- package/dist/infra/claude-terminal/client.js.map +1 -0
- package/dist/infra/claude-terminal/command.d.ts +4 -0
- package/dist/infra/claude-terminal/command.d.ts.map +1 -0
- package/dist/infra/claude-terminal/command.js +50 -0
- package/dist/infra/claude-terminal/command.js.map +1 -0
- package/dist/infra/claude-terminal/response-normalizer.d.ts +14 -0
- package/dist/infra/claude-terminal/response-normalizer.d.ts.map +1 -0
- package/dist/infra/claude-terminal/response-normalizer.js +118 -0
- package/dist/infra/claude-terminal/response-normalizer.js.map +1 -0
- package/dist/infra/claude-terminal/tmux-backend.d.ts +7 -0
- package/dist/infra/claude-terminal/tmux-backend.d.ts.map +1 -0
- package/dist/infra/claude-terminal/tmux-backend.js +177 -0
- package/dist/infra/claude-terminal/tmux-backend.js.map +1 -0
- package/dist/infra/claude-terminal/transcript-reader.d.ts +13 -0
- package/dist/infra/claude-terminal/transcript-reader.d.ts.map +1 -0
- package/dist/infra/claude-terminal/transcript-reader.js +329 -0
- package/dist/infra/claude-terminal/transcript-reader.js.map +1 -0
- package/dist/infra/claude-terminal/types.d.ts +106 -0
- package/dist/infra/claude-terminal/types.d.ts.map +1 -0
- package/dist/infra/claude-terminal/types.js +2 -0
- package/dist/infra/claude-terminal/types.js.map +1 -0
- package/dist/infra/codex/CodexStreamHandler.d.ts +4 -2
- package/dist/infra/codex/CodexStreamHandler.d.ts.map +1 -1
- package/dist/infra/codex/CodexStreamHandler.js +55 -21
- package/dist/infra/codex/CodexStreamHandler.js.map +1 -1
- package/dist/infra/codex/client.d.ts +2 -0
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +42 -6
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/config/configNormalizers.d.ts +23 -16
- package/dist/infra/config/configNormalizers.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.js +69 -7
- package/dist/infra/config/configNormalizers.js.map +1 -1
- package/dist/infra/config/env/global-current-env-specs.d.ts.map +1 -1
- package/dist/infra/config/env/global-current-env-specs.js +7 -0
- package/dist/infra/config/env/global-current-env-specs.js.map +1 -1
- package/dist/infra/config/env/project-current-env-specs.d.ts.map +1 -1
- package/dist/infra/config/env/project-current-env-specs.js +7 -0
- package/dist/infra/config/env/project-current-env-specs.js.map +1 -1
- package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigCore.js +5 -0
- package/dist/infra/config/global/globalConfigCore.js.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.js +10 -0
- package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
- package/dist/infra/config/global/initialization.d.ts +1 -1
- package/dist/infra/config/global/initialization.d.ts.map +1 -1
- package/dist/infra/config/global/initialization.js +1 -0
- package/dist/infra/config/global/initialization.js.map +1 -1
- package/dist/infra/config/loaders/qualityGateOverrides.d.ts +3 -2
- package/dist/infra/config/loaders/qualityGateOverrides.d.ts.map +1 -1
- package/dist/infra/config/loaders/qualityGateOverrides.js +42 -3
- package/dist/infra/config/loaders/qualityGateOverrides.js.map +1 -1
- package/dist/infra/config/loaders/workflowFileLoader.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowFileLoader.js +2 -2
- package/dist/infra/config/loaders/workflowFileLoader.js.map +1 -1
- package/dist/infra/config/loaders/workflowNormalizationPolicies.d.ts +3 -1
- package/dist/infra/config/loaders/workflowNormalizationPolicies.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowNormalizationPolicies.js +28 -0
- package/dist/infra/config/loaders/workflowNormalizationPolicies.js.map +1 -1
- package/dist/infra/config/loaders/workflowParser.d.ts +2 -2
- package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowParser.js +3 -2
- package/dist/infra/config/loaders/workflowParser.js.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.js +2 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
- package/dist/infra/config/observabilityConfig.d.ts +13 -0
- package/dist/infra/config/observabilityConfig.d.ts.map +1 -0
- package/dist/infra/config/observabilityConfig.js +52 -0
- package/dist/infra/config/observabilityConfig.js.map +1 -0
- package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfig.js +23 -5
- package/dist/infra/config/project/projectConfig.js.map +1 -1
- package/dist/infra/config/project/projectConfigTransforms.d.ts +5 -1
- package/dist/infra/config/project/projectConfigTransforms.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfigTransforms.js +8 -0
- package/dist/infra/config/project/projectConfigTransforms.js.map +1 -1
- package/dist/infra/config/providerOptions.d.ts +8 -2
- package/dist/infra/config/providerOptions.d.ts.map +1 -1
- package/dist/infra/config/providerOptions.js +49 -1
- package/dist/infra/config/providerOptions.js.map +1 -1
- package/dist/infra/config/providerOptionsContract.d.ts +3 -3
- package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
- package/dist/infra/config/providerOptionsContract.js +14 -0
- package/dist/infra/config/providerOptionsContract.js.map +1 -1
- package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
- package/dist/infra/config/resolveConfigValue.js +18 -0
- package/dist/infra/config/resolveConfigValue.js.map +1 -1
- package/dist/infra/config/resolvedConfig.d.ts +2 -1
- package/dist/infra/config/resolvedConfig.d.ts.map +1 -1
- package/dist/infra/config/traced/tracedConfigSchema.d.ts.map +1 -1
- package/dist/infra/config/traced/tracedConfigSchema.js +16 -0
- package/dist/infra/config/traced/tracedConfigSchema.js.map +1 -1
- package/dist/infra/git/format.d.ts.map +1 -1
- package/dist/infra/git/format.js +75 -8
- package/dist/infra/git/format.js.map +1 -1
- package/dist/infra/git/index.d.ts +1 -1
- package/dist/infra/git/index.d.ts.map +1 -1
- package/dist/infra/git/types.d.ts +5 -0
- package/dist/infra/git/types.d.ts.map +1 -1
- package/dist/infra/github/pr.d.ts.map +1 -1
- package/dist/infra/github/pr.js +174 -28
- package/dist/infra/github/pr.js.map +1 -1
- package/dist/infra/observability/otelFoundation.d.ts +6 -0
- package/dist/infra/observability/otelFoundation.d.ts.map +1 -0
- package/dist/infra/observability/otelFoundation.js +89 -0
- package/dist/infra/observability/otelFoundation.js.map +1 -0
- package/dist/infra/opencode/client.d.ts.map +1 -1
- package/dist/infra/opencode/client.js +19 -15
- package/dist/infra/opencode/client.js.map +1 -1
- package/dist/infra/providers/claude-terminal.d.ts +6 -0
- package/dist/infra/providers/claude-terminal.d.ts.map +1 -0
- package/dist/infra/providers/claude-terminal.js +70 -0
- package/dist/infra/providers/claude-terminal.js.map +1 -0
- package/dist/infra/providers/index.d.ts.map +1 -1
- package/dist/infra/providers/index.js +2 -0
- package/dist/infra/providers/index.js.map +1 -1
- package/dist/infra/providers/provider-capabilities.d.ts +1 -0
- package/dist/infra/providers/provider-capabilities.d.ts.map +1 -1
- package/dist/infra/providers/provider-capabilities.js +16 -0
- package/dist/infra/providers/provider-capabilities.js.map +1 -1
- package/dist/infra/rate-limit/detection.d.ts +2 -0
- package/dist/infra/rate-limit/detection.d.ts.map +1 -1
- package/dist/infra/rate-limit/detection.js +14 -1
- package/dist/infra/rate-limit/detection.js.map +1 -1
- package/dist/infra/task/clone-base-branch.d.ts +11 -0
- package/dist/infra/task/clone-base-branch.d.ts.map +1 -1
- package/dist/infra/task/clone-base-branch.js +34 -4
- package/dist/infra/task/clone-base-branch.js.map +1 -1
- package/dist/infra/task/clone.d.ts +2 -1
- package/dist/infra/task/clone.d.ts.map +1 -1
- package/dist/infra/task/clone.js +20 -3
- package/dist/infra/task/clone.js.map +1 -1
- package/dist/infra/task/index.d.ts +1 -1
- package/dist/infra/task/index.d.ts.map +1 -1
- package/dist/infra/task/index.js +1 -1
- package/dist/infra/task/index.js.map +1 -1
- package/dist/infra/task/projectLocalTaktSync.d.ts.map +1 -1
- package/dist/infra/task/projectLocalTaktSync.js +6 -2
- package/dist/infra/task/projectLocalTaktSync.js.map +1 -1
- package/dist/infra/task/runner.d.ts +2 -2
- package/dist/infra/task/runner.d.ts.map +1 -1
- package/dist/infra/task/runner.js +4 -4
- package/dist/infra/task/runner.js.map +1 -1
- package/dist/infra/task/taskRecordMutations.d.ts +1 -1
- package/dist/infra/task/taskRecordMutations.d.ts.map +1 -1
- package/dist/infra/task/taskRecordMutations.js +5 -1
- package/dist/infra/task/taskRecordMutations.js.map +1 -1
- package/dist/infra/task/taskRetryService.d.ts +2 -2
- package/dist/infra/task/taskRetryService.d.ts.map +1 -1
- package/dist/infra/task/taskRetryService.js +4 -4
- package/dist/infra/task/taskRetryService.js.map +1 -1
- package/dist/infra/workflow/system/system-enqueue-effect.d.ts +2 -2
- package/dist/infra/workflow/system/system-enqueue-effect.d.ts.map +1 -1
- package/dist/infra/workflow/system/system-enqueue-effect.js +5 -2
- package/dist/infra/workflow/system/system-enqueue-effect.js.map +1 -1
- package/dist/shared/constants.d.ts +1 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/i18n/labels_en.yaml +3 -1
- package/dist/shared/i18n/labels_ja.yaml +3 -1
- package/dist/shared/prompts/en/score_direct_instruct_system_prompt.md +63 -0
- package/dist/shared/prompts/en/score_retry_system_prompt.md +2 -2
- package/dist/shared/prompts/ja/score_direct_instruct_system_prompt.md +63 -0
- package/dist/shared/prompts/ja/score_retry_system_prompt.md +2 -2
- package/dist/shared/types/provider.d.ts +1 -1
- package/dist/shared/types/provider.d.ts.map +1 -1
- package/dist/shared/utils/debug.d.ts +2 -0
- package/dist/shared/utils/debug.d.ts.map +1 -1
- package/dist/shared/utils/debug.js +1 -0
- package/dist/shared/utils/debug.js.map +1 -1
- package/dist/shared/utils/sensitiveText.d.ts +2 -0
- package/dist/shared/utils/sensitiveText.d.ts.map +1 -0
- package/dist/shared/utils/sensitiveText.js +40 -0
- package/dist/shared/utils/sensitiveText.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { USAGE_MISSING_REASONS } from '../../core/logging/contracts.js';
|
|
3
|
+
import { AGENT_FAILURE_CATEGORIES, classifyAbortSignalReason, } from '../../shared/types/agent-failure.js';
|
|
4
|
+
import { createLogger, getErrorMessage } from '../../shared/utils/index.js';
|
|
5
|
+
import { prepareClaudeMcpConfig } from '../claude/mcp-config.js';
|
|
6
|
+
import { buildClaudeTerminalCommand } from './command.js';
|
|
7
|
+
import { normalizeClaudeTerminalResponse } from './response-normalizer.js';
|
|
8
|
+
import { ProjectClaudeTranscriptReader } from './transcript-reader.js';
|
|
9
|
+
import { TmuxTerminalBackend } from './tmux-backend.js';
|
|
10
|
+
const DEFAULT_BACKEND = 'tmux';
|
|
11
|
+
const DEFAULT_TIMEOUT_MS = 900000;
|
|
12
|
+
const DEFAULT_POLL_INTERVAL_MS = 500;
|
|
13
|
+
const log = createLogger('claude-terminal');
|
|
14
|
+
class ClaudeTerminalAbortError extends Error {
|
|
15
|
+
reason;
|
|
16
|
+
constructor(reason) {
|
|
17
|
+
super('Claude terminal execution aborted.');
|
|
18
|
+
this.reason = reason;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function createErrorResponse(agentName, message, failureCategory = AGENT_FAILURE_CATEGORIES.PROVIDER_ERROR, sessionId) {
|
|
22
|
+
return {
|
|
23
|
+
persona: agentName,
|
|
24
|
+
status: 'error',
|
|
25
|
+
content: message,
|
|
26
|
+
timestamp: new Date(),
|
|
27
|
+
sessionId,
|
|
28
|
+
error: message,
|
|
29
|
+
failureCategory,
|
|
30
|
+
providerUsage: {
|
|
31
|
+
usageMissing: true,
|
|
32
|
+
reason: USAGE_MISSING_REASONS.NOT_SUPPORTED_BY_PROVIDER,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function createAbortResponse(agentName, reason, sessionId) {
|
|
37
|
+
const failure = classifyAbortSignalReason(reason);
|
|
38
|
+
return createErrorResponse(agentName, failure.reason, failure.category, sessionId);
|
|
39
|
+
}
|
|
40
|
+
function resolveTerminalBackend(backendName, backend) {
|
|
41
|
+
if (backend) {
|
|
42
|
+
return backend;
|
|
43
|
+
}
|
|
44
|
+
if (backendName === 'tmux') {
|
|
45
|
+
return new TmuxTerminalBackend();
|
|
46
|
+
}
|
|
47
|
+
throw new Error(`Unsupported Claude terminal backend: ${backendName}`);
|
|
48
|
+
}
|
|
49
|
+
function emitInit(options, sessionId) {
|
|
50
|
+
if (!options.onStream || !options.model) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
options.onStream({
|
|
54
|
+
type: 'init',
|
|
55
|
+
data: {
|
|
56
|
+
model: options.model,
|
|
57
|
+
sessionId,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function getUnsupportedCallOptionMessage(options) {
|
|
62
|
+
if (options.maxTurns !== undefined) {
|
|
63
|
+
return 'provider: claude-terminal does not support maxTurns because Claude Code terminal mode has no verified --max-turns option.';
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
function collectInteractiveEvents(events) {
|
|
68
|
+
return events.filter((event) => event.type === 'permission_request' || event.type === 'ask_user_question');
|
|
69
|
+
}
|
|
70
|
+
function formatPermissionDecision(decision) {
|
|
71
|
+
if (decision.behavior === 'allow') {
|
|
72
|
+
if (decision.updatedInput || decision.updatedPermissions) {
|
|
73
|
+
throw new Error('Claude terminal provider cannot apply updated permission input or rules.');
|
|
74
|
+
}
|
|
75
|
+
return 'yes';
|
|
76
|
+
}
|
|
77
|
+
if (decision.behavior === 'deny') {
|
|
78
|
+
if (decision.interrupt === true) {
|
|
79
|
+
throw new Error('Claude terminal provider cannot interrupt a terminal permission request from callback output.');
|
|
80
|
+
}
|
|
81
|
+
return decision.message ? `no\n${decision.message}` : 'no';
|
|
82
|
+
}
|
|
83
|
+
throw new Error('Claude terminal permission callback returned an invalid decision.');
|
|
84
|
+
}
|
|
85
|
+
function formatQuestionAnswers(answers) {
|
|
86
|
+
const answerText = Object.values(answers).filter((value) => value.length > 0).join('\n');
|
|
87
|
+
if (answerText.length === 0) {
|
|
88
|
+
throw new Error('Claude terminal ask-user callback returned no answer text.');
|
|
89
|
+
}
|
|
90
|
+
return answerText;
|
|
91
|
+
}
|
|
92
|
+
async function buildInteractiveEventReply(event, options) {
|
|
93
|
+
if (event.type === 'permission_request') {
|
|
94
|
+
if (!options.onPermissionRequest) {
|
|
95
|
+
throw new Error('Claude terminal provider received a permission request event but no onPermissionRequest handler is configured.');
|
|
96
|
+
}
|
|
97
|
+
const decision = await options.onPermissionRequest({
|
|
98
|
+
toolName: event.tool,
|
|
99
|
+
input: event.input,
|
|
100
|
+
});
|
|
101
|
+
return formatPermissionDecision(decision);
|
|
102
|
+
}
|
|
103
|
+
if (event.type === 'ask_user_question') {
|
|
104
|
+
if (!options.onAskUserQuestion) {
|
|
105
|
+
throw new Error('Claude terminal provider received an ask-user question event but no onAskUserQuestion handler is configured.');
|
|
106
|
+
}
|
|
107
|
+
const answers = await options.onAskUserQuestion({ questions: event.questions });
|
|
108
|
+
return formatQuestionAnswers(answers);
|
|
109
|
+
}
|
|
110
|
+
throw new Error('Claude terminal provider cannot reply to a non-interactive transcript event.');
|
|
111
|
+
}
|
|
112
|
+
export async function callClaudeTerminal(agentName, prompt, options) {
|
|
113
|
+
const backendName = options.backend ?? DEFAULT_BACKEND;
|
|
114
|
+
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
115
|
+
const pollIntervalMs = options.transcriptPollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
116
|
+
const keepSession = options.keepSession === true;
|
|
117
|
+
const terminalBackend = resolveTerminalBackend(backendName, options.terminalBackend);
|
|
118
|
+
const transcriptReader = options.transcriptReader ?? new ProjectClaudeTranscriptReader();
|
|
119
|
+
const claudeSessionId = options.sessionId ?? randomUUID();
|
|
120
|
+
let responseSessionId = options.sessionId;
|
|
121
|
+
let terminalSession;
|
|
122
|
+
let stopRequested = false;
|
|
123
|
+
let cleanup;
|
|
124
|
+
let abortHandler;
|
|
125
|
+
let aborted = false;
|
|
126
|
+
let pendingStart;
|
|
127
|
+
async function stopSession() {
|
|
128
|
+
if (!terminalSession || stopRequested) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
stopRequested = true;
|
|
132
|
+
await terminalBackend.stop(terminalSession);
|
|
133
|
+
}
|
|
134
|
+
function stopPendingSessionOnResolve(startPromise) {
|
|
135
|
+
startPromise
|
|
136
|
+
.then(async (session) => {
|
|
137
|
+
try {
|
|
138
|
+
await terminalBackend.stop(session);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
log.error('Failed to stop Claude terminal session', {
|
|
142
|
+
error: getErrorMessage(error),
|
|
143
|
+
session: session.name,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
.catch((error) => {
|
|
148
|
+
log.error('Claude terminal session start failed after abort', {
|
|
149
|
+
error: getErrorMessage(error),
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (options.abortSignal?.aborted) {
|
|
154
|
+
return createAbortResponse(agentName, options.abortSignal.reason, responseSessionId);
|
|
155
|
+
}
|
|
156
|
+
const unsupportedMessage = getUnsupportedCallOptionMessage(options);
|
|
157
|
+
if (unsupportedMessage) {
|
|
158
|
+
return createErrorResponse(agentName, unsupportedMessage, AGENT_FAILURE_CATEGORIES.PROVIDER_ERROR, responseSessionId);
|
|
159
|
+
}
|
|
160
|
+
function withAbort(operation) {
|
|
161
|
+
const signal = options.abortSignal;
|
|
162
|
+
if (!signal) {
|
|
163
|
+
return operation();
|
|
164
|
+
}
|
|
165
|
+
if (signal.aborted) {
|
|
166
|
+
aborted = true;
|
|
167
|
+
return Promise.reject(new ClaudeTerminalAbortError(signal.reason));
|
|
168
|
+
}
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
const onAbort = () => {
|
|
171
|
+
aborted = true;
|
|
172
|
+
reject(new ClaudeTerminalAbortError(signal.reason));
|
|
173
|
+
};
|
|
174
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
175
|
+
let operationPromise;
|
|
176
|
+
try {
|
|
177
|
+
operationPromise = operation();
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
signal.removeEventListener('abort', onAbort);
|
|
181
|
+
reject(error);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
operationPromise.then(resolve, reject).finally(() => {
|
|
185
|
+
signal.removeEventListener('abort', onAbort);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
if (options.abortSignal) {
|
|
190
|
+
abortHandler = () => {
|
|
191
|
+
aborted = true;
|
|
192
|
+
};
|
|
193
|
+
options.abortSignal?.addEventListener('abort', abortHandler, { once: true });
|
|
194
|
+
}
|
|
195
|
+
try {
|
|
196
|
+
const prepared = await prepareClaudeMcpConfig(options.mcpServers);
|
|
197
|
+
cleanup = prepared.cleanup;
|
|
198
|
+
if (options.abortSignal?.aborted) {
|
|
199
|
+
throw new ClaudeTerminalAbortError(options.abortSignal.reason);
|
|
200
|
+
}
|
|
201
|
+
const command = buildClaudeTerminalCommand({
|
|
202
|
+
pathToClaudeCodeExecutable: options.pathToClaudeCodeExecutable,
|
|
203
|
+
model: options.model,
|
|
204
|
+
effort: options.effort,
|
|
205
|
+
allowedTools: options.allowedTools,
|
|
206
|
+
mcpConfigPath: prepared.path,
|
|
207
|
+
permissionMode: options.permissionMode,
|
|
208
|
+
bypassPermissions: options.bypassPermissions,
|
|
209
|
+
sessionId: options.sessionId,
|
|
210
|
+
newSessionId: options.sessionId ? undefined : claudeSessionId,
|
|
211
|
+
systemPrompt: options.systemPrompt,
|
|
212
|
+
outputSchema: options.outputSchema,
|
|
213
|
+
});
|
|
214
|
+
const startedSession = await withAbort(() => {
|
|
215
|
+
const startPromise = terminalBackend.start({
|
|
216
|
+
cwd: options.cwd,
|
|
217
|
+
backend: backendName,
|
|
218
|
+
command,
|
|
219
|
+
});
|
|
220
|
+
pendingStart = startPromise;
|
|
221
|
+
return startPromise;
|
|
222
|
+
});
|
|
223
|
+
terminalSession = startedSession;
|
|
224
|
+
responseSessionId = claudeSessionId;
|
|
225
|
+
if (options.abortSignal?.aborted) {
|
|
226
|
+
return createAbortResponse(agentName, options.abortSignal.reason, responseSessionId);
|
|
227
|
+
}
|
|
228
|
+
let baseline = await withAbort(() => transcriptReader.readBaseline({
|
|
229
|
+
cwd: options.cwd,
|
|
230
|
+
sessionId: claudeSessionId,
|
|
231
|
+
}));
|
|
232
|
+
await withAbort(() => terminalBackend.pasteText(startedSession, prompt));
|
|
233
|
+
const session = await withAbort(() => transcriptReader.findSession({
|
|
234
|
+
cwd: options.cwd,
|
|
235
|
+
sessionId: claudeSessionId,
|
|
236
|
+
timeoutMs,
|
|
237
|
+
pollIntervalMs,
|
|
238
|
+
abortSignal: options.abortSignal,
|
|
239
|
+
}));
|
|
240
|
+
responseSessionId = session.sessionId;
|
|
241
|
+
emitInit(options, session.sessionId);
|
|
242
|
+
const handledEvents = [];
|
|
243
|
+
let response;
|
|
244
|
+
while (true) {
|
|
245
|
+
response = await withAbort(() => transcriptReader.waitForAssistantResponse({
|
|
246
|
+
session,
|
|
247
|
+
baseline,
|
|
248
|
+
cwd: options.cwd,
|
|
249
|
+
timeoutMs,
|
|
250
|
+
pollIntervalMs,
|
|
251
|
+
abortSignal: options.abortSignal,
|
|
252
|
+
}));
|
|
253
|
+
handledEvents.push(...response.events);
|
|
254
|
+
const interactiveEvents = collectInteractiveEvents(response.events);
|
|
255
|
+
if (interactiveEvents.length === 0) {
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
baseline = await withAbort(() => transcriptReader.readBaseline({
|
|
259
|
+
cwd: options.cwd,
|
|
260
|
+
sessionId: session.sessionId,
|
|
261
|
+
}));
|
|
262
|
+
for (const event of interactiveEvents) {
|
|
263
|
+
const reply = await withAbort(() => buildInteractiveEventReply(event, options));
|
|
264
|
+
await withAbort(() => terminalBackend.pasteText(startedSession, reply));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return normalizeClaudeTerminalResponse({
|
|
268
|
+
agentName,
|
|
269
|
+
sessionId: response.sessionId,
|
|
270
|
+
assistantText: response.assistantText,
|
|
271
|
+
events: handledEvents,
|
|
272
|
+
outputSchema: options.outputSchema,
|
|
273
|
+
onStream: options.onStream,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
if (error instanceof ClaudeTerminalAbortError) {
|
|
278
|
+
return createAbortResponse(agentName, error.reason, responseSessionId);
|
|
279
|
+
}
|
|
280
|
+
return createErrorResponse(agentName, getErrorMessage(error), AGENT_FAILURE_CATEGORIES.PROVIDER_ERROR, responseSessionId);
|
|
281
|
+
}
|
|
282
|
+
finally {
|
|
283
|
+
if (abortHandler) {
|
|
284
|
+
options.abortSignal?.removeEventListener('abort', abortHandler);
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
if (aborted && !terminalSession && pendingStart) {
|
|
288
|
+
stopPendingSessionOnResolve(pendingStart);
|
|
289
|
+
}
|
|
290
|
+
if (!keepSession || aborted) {
|
|
291
|
+
try {
|
|
292
|
+
await stopSession();
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
log.error('Failed to stop Claude terminal session', {
|
|
296
|
+
error: getErrorMessage(error),
|
|
297
|
+
session: terminalSession?.name,
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
finally {
|
|
303
|
+
try {
|
|
304
|
+
await cleanup?.();
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
log.error('Failed to clean up Claude terminal resources', {
|
|
308
|
+
error: getErrorMessage(error),
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/infra/claude-terminal/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BuildClaudeTerminalCommandOptions, ClaudeTerminalCommand } from './types.js';
|
|
2
|
+
export declare function buildClaudeTerminalCommand(options: BuildClaudeTerminalCommandOptions): ClaudeTerminalCommand;
|
|
3
|
+
export declare function createClaudeTerminalSessionName(): string;
|
|
4
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/infra/claude-terminal/command.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAY3F,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iCAAiC,GACzC,qBAAqB,CAmCvB;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAExD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { taktPermissionModeToClaudeExpression, } from '../claude/permission-mode-expression.js';
|
|
3
|
+
function resolvePermissionMode(options) {
|
|
4
|
+
if (options.bypassPermissions) {
|
|
5
|
+
return 'bypassPermissions';
|
|
6
|
+
}
|
|
7
|
+
if (options.permissionMode === undefined) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
return taktPermissionModeToClaudeExpression(options.permissionMode);
|
|
11
|
+
}
|
|
12
|
+
export function buildClaudeTerminalCommand(options) {
|
|
13
|
+
const args = [];
|
|
14
|
+
const permissionMode = resolvePermissionMode(options);
|
|
15
|
+
if (options.model) {
|
|
16
|
+
args.push('--model', options.model);
|
|
17
|
+
}
|
|
18
|
+
if (options.effort) {
|
|
19
|
+
args.push('--effort', options.effort);
|
|
20
|
+
}
|
|
21
|
+
if (options.allowedTools && options.allowedTools.length > 0) {
|
|
22
|
+
args.push('--allowed-tools', options.allowedTools.join(','));
|
|
23
|
+
}
|
|
24
|
+
if (options.mcpConfigPath) {
|
|
25
|
+
args.push('--mcp-config', options.mcpConfigPath);
|
|
26
|
+
}
|
|
27
|
+
if (permissionMode) {
|
|
28
|
+
args.push('--permission-mode', permissionMode);
|
|
29
|
+
}
|
|
30
|
+
if (options.sessionId) {
|
|
31
|
+
args.push('--resume', options.sessionId);
|
|
32
|
+
}
|
|
33
|
+
else if (options.newSessionId) {
|
|
34
|
+
args.push('--session-id', options.newSessionId);
|
|
35
|
+
}
|
|
36
|
+
if (options.systemPrompt?.trim()) {
|
|
37
|
+
args.push('--system-prompt', options.systemPrompt.trim());
|
|
38
|
+
}
|
|
39
|
+
if (options.outputSchema) {
|
|
40
|
+
args.push('--json-schema', JSON.stringify(options.outputSchema));
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
executable: options.pathToClaudeCodeExecutable ?? 'claude',
|
|
44
|
+
args,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function createClaudeTerminalSessionName() {
|
|
48
|
+
return `takt-claude-terminal-${randomUUID()}`;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/infra/claude-terminal/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,oCAAoC,GAErC,MAAM,yCAAyC,CAAC;AAGjD,SAAS,qBAAqB,CAAC,OAA0C;IACvE,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,oCAAoC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA0C;IAE1C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,0BAA0B,IAAI,QAAQ;QAC1D,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,wBAAwB,UAAU,EAAE,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AgentResponse } from '../../core/models/index.js';
|
|
2
|
+
import type { StreamCallback } from '../../shared/types/provider.js';
|
|
3
|
+
import type { ClaudeTerminalEvent } from './types.js';
|
|
4
|
+
interface NormalizeClaudeTerminalResponseInput {
|
|
5
|
+
agentName: string;
|
|
6
|
+
sessionId: string;
|
|
7
|
+
assistantText: string;
|
|
8
|
+
events?: ClaudeTerminalEvent[];
|
|
9
|
+
outputSchema?: Record<string, unknown>;
|
|
10
|
+
onStream?: StreamCallback;
|
|
11
|
+
}
|
|
12
|
+
export declare function normalizeClaudeTerminalResponse(input: NormalizeClaudeTerminalResponseInput): AgentResponse;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=response-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-normalizer.d.ts","sourceRoot":"","sources":["../../../src/infra/claude-terminal/response-normalizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,UAAU,oCAAoC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAiGD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,oCAAoC,GAAG,aAAa,CAsC1G"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { USAGE_MISSING_REASONS } from '../../core/logging/contracts.js';
|
|
2
|
+
import { validateStructuredOutputAgainstSchema } from '../../core/workflow/engine/structured-output-schema-validator.js';
|
|
3
|
+
import { AGENT_FAILURE_CATEGORIES } from '../../shared/types/agent-failure.js';
|
|
4
|
+
import { parseStructuredOutput } from '../../shared/utils/index.js';
|
|
5
|
+
import { buildRateLimitedResponseFields, resolveRateLimitTextSource } from '../rate-limit/detection.js';
|
|
6
|
+
function emitResult(onStream, payload) {
|
|
7
|
+
onStream?.({
|
|
8
|
+
type: 'result',
|
|
9
|
+
data: payload,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function emitText(onStream, text) {
|
|
13
|
+
if (!onStream || text.length === 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
onStream({ type: 'text', data: { text } });
|
|
17
|
+
}
|
|
18
|
+
function emitToolUseEvents(onStream, events) {
|
|
19
|
+
if (!onStream || !events) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
for (const event of events) {
|
|
23
|
+
if (event.type === 'tool_use') {
|
|
24
|
+
onStream({
|
|
25
|
+
type: 'tool_use',
|
|
26
|
+
data: {
|
|
27
|
+
tool: event.tool,
|
|
28
|
+
input: event.input,
|
|
29
|
+
id: event.id,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function createProviderErrorResponse(input, message) {
|
|
36
|
+
emitResult(input.onStream, {
|
|
37
|
+
result: input.assistantText,
|
|
38
|
+
sessionId: input.sessionId,
|
|
39
|
+
success: false,
|
|
40
|
+
error: message,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
persona: input.agentName,
|
|
44
|
+
status: 'error',
|
|
45
|
+
content: input.assistantText,
|
|
46
|
+
timestamp: new Date(),
|
|
47
|
+
sessionId: input.sessionId,
|
|
48
|
+
error: message,
|
|
49
|
+
failureCategory: AGENT_FAILURE_CATEGORIES.PROVIDER_ERROR,
|
|
50
|
+
providerUsage: {
|
|
51
|
+
usageMissing: true,
|
|
52
|
+
reason: USAGE_MISSING_REASONS.NOT_SUPPORTED_BY_PROVIDER,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function createRateLimitedResponse(input, source) {
|
|
57
|
+
emitResult(input.onStream, {
|
|
58
|
+
result: '',
|
|
59
|
+
sessionId: input.sessionId,
|
|
60
|
+
success: false,
|
|
61
|
+
error: input.assistantText,
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
persona: input.agentName,
|
|
65
|
+
timestamp: new Date(),
|
|
66
|
+
sessionId: input.sessionId,
|
|
67
|
+
providerUsage: {
|
|
68
|
+
usageMissing: true,
|
|
69
|
+
reason: USAGE_MISSING_REASONS.NOT_SUPPORTED_BY_PROVIDER,
|
|
70
|
+
},
|
|
71
|
+
...buildRateLimitedResponseFields('claude-terminal', source, input.assistantText),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function normalizeStructuredOutput(content, outputSchema) {
|
|
75
|
+
const structuredOutput = parseStructuredOutput(content, outputSchema !== undefined);
|
|
76
|
+
if (outputSchema === undefined || structuredOutput === undefined) {
|
|
77
|
+
return structuredOutput;
|
|
78
|
+
}
|
|
79
|
+
validateStructuredOutputAgainstSchema(structuredOutput, outputSchema);
|
|
80
|
+
return structuredOutput;
|
|
81
|
+
}
|
|
82
|
+
export function normalizeClaudeTerminalResponse(input) {
|
|
83
|
+
emitToolUseEvents(input.onStream, input.events);
|
|
84
|
+
const rateLimitSource = resolveRateLimitTextSource(input.assistantText);
|
|
85
|
+
if (rateLimitSource) {
|
|
86
|
+
return createRateLimitedResponse(input, rateLimitSource);
|
|
87
|
+
}
|
|
88
|
+
let structuredOutput;
|
|
89
|
+
try {
|
|
90
|
+
structuredOutput = normalizeStructuredOutput(input.assistantText, input.outputSchema);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
94
|
+
return createProviderErrorResponse(input, `Claude terminal structured output validation failed: ${detail}`);
|
|
95
|
+
}
|
|
96
|
+
if (input.outputSchema !== undefined && structuredOutput === undefined) {
|
|
97
|
+
return createProviderErrorResponse(input, 'Claude terminal provider could not extract structured output.');
|
|
98
|
+
}
|
|
99
|
+
emitText(input.onStream, input.assistantText);
|
|
100
|
+
emitResult(input.onStream, {
|
|
101
|
+
result: input.assistantText,
|
|
102
|
+
sessionId: input.sessionId,
|
|
103
|
+
success: true,
|
|
104
|
+
});
|
|
105
|
+
return {
|
|
106
|
+
persona: input.agentName,
|
|
107
|
+
status: 'done',
|
|
108
|
+
content: input.assistantText,
|
|
109
|
+
timestamp: new Date(),
|
|
110
|
+
sessionId: input.sessionId,
|
|
111
|
+
structuredOutput,
|
|
112
|
+
providerUsage: {
|
|
113
|
+
usageMissing: true,
|
|
114
|
+
reason: USAGE_MISSING_REASONS.NOT_SUPPORTED_BY_PROVIDER,
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=response-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-normalizer.js","sourceRoot":"","sources":["../../../src/infra/claude-terminal/response-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TerminalBackend, TerminalSession, TerminalStartOptions } from './types.js';
|
|
2
|
+
export declare class TmuxTerminalBackend implements TerminalBackend {
|
|
3
|
+
start(options: TerminalStartOptions): Promise<TerminalSession>;
|
|
4
|
+
pasteText(session: TerminalSession, text: string): Promise<void>;
|
|
5
|
+
stop(session: TerminalSession): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=tmux-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tmux-backend.d.ts","sourceRoot":"","sources":["../../../src/infra/claude-terminal/tmux-backend.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA2IzF,qBAAa,mBAAoB,YAAW,eAAe;IACnD,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAe9D,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhE,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD"}
|