@bastani/atomic 0.5.11 → 0.5.12-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/.agents/skills/adapt/SKILL.md +199 -0
- package/.agents/skills/advanced-evaluation/SKILL.md +402 -0
- package/.agents/skills/advanced-evaluation/references/bias-mitigation.md +288 -0
- package/.agents/skills/advanced-evaluation/references/evaluation-pipeline.md +43 -0
- package/.agents/skills/advanced-evaluation/references/implementation-patterns.md +315 -0
- package/.agents/skills/advanced-evaluation/references/metrics-guide.md +331 -0
- package/.agents/skills/advanced-evaluation/scripts/evaluation_example.py +392 -0
- package/.agents/skills/animate/SKILL.md +175 -0
- package/.agents/skills/arrange/SKILL.md +124 -0
- package/.agents/skills/audit/SKILL.md +148 -0
- package/.agents/skills/bdi-mental-states/SKILL.md +311 -0
- package/.agents/skills/bdi-mental-states/references/bdi-ontology-core.md +207 -0
- package/.agents/skills/bdi-mental-states/references/framework-integration.md +582 -0
- package/.agents/skills/bdi-mental-states/references/rdf-examples.md +315 -0
- package/.agents/skills/bdi-mental-states/references/sparql-competency.md +420 -0
- package/.agents/skills/bolder/SKILL.md +117 -0
- package/.agents/skills/bun/SKILL.md +199 -0
- package/.agents/skills/clarify/SKILL.md +183 -0
- package/.agents/skills/colorize/SKILL.md +143 -0
- package/.agents/skills/context-compression/SKILL.md +272 -0
- package/.agents/skills/context-compression/references/evaluation-framework.md +213 -0
- package/.agents/skills/context-compression/scripts/compression_evaluator.py +862 -0
- package/.agents/skills/context-compression/tests/test_compression_evaluator.py +56 -0
- package/.agents/skills/context-degradation/SKILL.md +206 -0
- package/.agents/skills/context-degradation/references/patterns.md +314 -0
- package/.agents/skills/context-degradation/scripts/degradation_detector.py +614 -0
- package/.agents/skills/context-fundamentals/SKILL.md +201 -0
- package/.agents/skills/context-fundamentals/references/context-components.md +283 -0
- package/.agents/skills/context-fundamentals/scripts/context_manager.py +533 -0
- package/.agents/skills/context-optimization/SKILL.md +195 -0
- package/.agents/skills/context-optimization/references/optimization_techniques.md +272 -0
- package/.agents/skills/context-optimization/scripts/compaction.py +562 -0
- package/.agents/skills/create-spec/SKILL.md +244 -0
- package/.agents/skills/critique/SKILL.md +225 -0
- package/.agents/skills/critique/reference/cognitive-load.md +106 -0
- package/.agents/skills/critique/reference/heuristics-scoring.md +234 -0
- package/.agents/skills/critique/reference/personas.md +178 -0
- package/.agents/skills/delight/SKILL.md +304 -0
- package/.agents/skills/distill/SKILL.md +122 -0
- package/.agents/skills/docx/LICENSE.txt +30 -0
- package/.agents/skills/docx/SKILL.md +590 -0
- package/.agents/skills/docx/scripts/__init__.py +1 -0
- package/.agents/skills/docx/scripts/accept_changes.py +135 -0
- package/.agents/skills/docx/scripts/comment.py +318 -0
- package/.agents/skills/docx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
- package/.agents/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/.agents/skills/docx/scripts/office/pack.py +159 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.agents/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.agents/skills/docx/scripts/office/soffice.py +183 -0
- package/.agents/skills/docx/scripts/office/unpack.py +132 -0
- package/.agents/skills/docx/scripts/office/validate.py +111 -0
- package/.agents/skills/docx/scripts/office/validators/__init__.py +15 -0
- package/.agents/skills/docx/scripts/office/validators/base.py +847 -0
- package/.agents/skills/docx/scripts/office/validators/docx.py +446 -0
- package/.agents/skills/docx/scripts/office/validators/pptx.py +275 -0
- package/.agents/skills/docx/scripts/office/validators/redlining.py +247 -0
- package/.agents/skills/docx/scripts/templates/comments.xml +3 -0
- package/.agents/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/.agents/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/.agents/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/.agents/skills/docx/scripts/templates/people.xml +3 -0
- package/.agents/skills/evaluation/SKILL.md +251 -0
- package/.agents/skills/evaluation/references/metrics.md +339 -0
- package/.agents/skills/evaluation/scripts/evaluator.py +627 -0
- package/.agents/skills/explain-code/SKILL.md +230 -0
- package/.agents/skills/extract/SKILL.md +91 -0
- package/.agents/skills/filesystem-context/SKILL.md +287 -0
- package/.agents/skills/filesystem-context/references/implementation-patterns.md +549 -0
- package/.agents/skills/filesystem-context/scripts/filesystem_context.py +425 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/frontend-design/SKILL.md +147 -0
- package/.agents/skills/frontend-design/reference/color-and-contrast.md +132 -0
- package/.agents/skills/frontend-design/reference/interaction-design.md +195 -0
- package/.agents/skills/frontend-design/reference/motion-design.md +99 -0
- package/.agents/skills/frontend-design/reference/responsive-design.md +114 -0
- package/.agents/skills/frontend-design/reference/spatial-design.md +100 -0
- package/.agents/skills/frontend-design/reference/typography.md +133 -0
- package/.agents/skills/frontend-design/reference/ux-writing.md +107 -0
- package/.agents/skills/gh-commit/SKILL.md +243 -0
- package/.agents/skills/gh-create-pr/SKILL.md +93 -0
- package/.agents/skills/harden/SKILL.md +354 -0
- package/.agents/skills/hosted-agents/SKILL.md +260 -0
- package/.agents/skills/hosted-agents/references/infrastructure-patterns.md +700 -0
- package/.agents/skills/hosted-agents/scripts/sandbox_manager.py +590 -0
- package/.agents/skills/impeccable/SKILL.md +365 -0
- package/.agents/skills/impeccable/reference/color-and-contrast.md +105 -0
- package/.agents/skills/impeccable/reference/craft.md +70 -0
- package/.agents/skills/impeccable/reference/extract.md +70 -0
- package/.agents/skills/impeccable/reference/interaction-design.md +195 -0
- package/.agents/skills/impeccable/reference/motion-design.md +99 -0
- package/.agents/skills/impeccable/reference/responsive-design.md +114 -0
- package/.agents/skills/impeccable/reference/spatial-design.md +100 -0
- package/.agents/skills/impeccable/reference/typography.md +142 -0
- package/.agents/skills/impeccable/reference/ux-writing.md +107 -0
- package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +214 -0
- package/.agents/skills/init/SKILL.md +138 -0
- package/.agents/skills/layout/SKILL.md +125 -0
- package/.agents/skills/liteparse/SKILL.md +222 -0
- package/.agents/skills/memory-systems/SKILL.md +219 -0
- package/.agents/skills/memory-systems/references/implementation.md +551 -0
- package/.agents/skills/memory-systems/scripts/memory_store.py +616 -0
- package/.agents/skills/multi-agent-patterns/SKILL.md +257 -0
- package/.agents/skills/multi-agent-patterns/references/frameworks.md +433 -0
- package/.agents/skills/multi-agent-patterns/scripts/coordination.py +613 -0
- package/.agents/skills/normalize/SKILL.md +70 -0
- package/.agents/skills/onboard/SKILL.md +245 -0
- package/.agents/skills/opentui/SKILL.md +201 -0
- package/.agents/skills/opentui/references/animation/REFERENCE.md +431 -0
- package/.agents/skills/opentui/references/components/REFERENCE.md +144 -0
- package/.agents/skills/opentui/references/components/code-diff.md +672 -0
- package/.agents/skills/opentui/references/components/containers.md +417 -0
- package/.agents/skills/opentui/references/components/inputs.md +531 -0
- package/.agents/skills/opentui/references/components/text-display.md +386 -0
- package/.agents/skills/opentui/references/core/REFERENCE.md +145 -0
- package/.agents/skills/opentui/references/core/api.md +543 -0
- package/.agents/skills/opentui/references/core/configuration.md +168 -0
- package/.agents/skills/opentui/references/core/gotchas.md +393 -0
- package/.agents/skills/opentui/references/core/patterns.md +449 -0
- package/.agents/skills/opentui/references/keyboard/REFERENCE.md +617 -0
- package/.agents/skills/opentui/references/layout/REFERENCE.md +337 -0
- package/.agents/skills/opentui/references/layout/patterns.md +444 -0
- package/.agents/skills/opentui/references/react/REFERENCE.md +174 -0
- package/.agents/skills/opentui/references/react/api.md +436 -0
- package/.agents/skills/opentui/references/react/configuration.md +302 -0
- package/.agents/skills/opentui/references/react/gotchas.md +443 -0
- package/.agents/skills/opentui/references/react/patterns.md +501 -0
- package/.agents/skills/opentui/references/solid/REFERENCE.md +201 -0
- package/.agents/skills/opentui/references/solid/api.md +564 -0
- package/.agents/skills/opentui/references/solid/configuration.md +316 -0
- package/.agents/skills/opentui/references/solid/gotchas.md +427 -0
- package/.agents/skills/opentui/references/solid/patterns.md +560 -0
- package/.agents/skills/opentui/references/testing/REFERENCE.md +614 -0
- package/.agents/skills/optimize/SKILL.md +266 -0
- package/.agents/skills/overdrive/SKILL.md +142 -0
- package/.agents/skills/pdf/LICENSE.txt +30 -0
- package/.agents/skills/pdf/SKILL.md +314 -0
- package/.agents/skills/pdf/forms.md +294 -0
- package/.agents/skills/pdf/reference.md +612 -0
- package/.agents/skills/pdf/scripts/check_bounding_boxes.py +65 -0
- package/.agents/skills/pdf/scripts/check_fillable_fields.py +11 -0
- package/.agents/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
- package/.agents/skills/pdf/scripts/create_validation_image.py +37 -0
- package/.agents/skills/pdf/scripts/extract_form_field_info.py +122 -0
- package/.agents/skills/pdf/scripts/extract_form_structure.py +115 -0
- package/.agents/skills/pdf/scripts/fill_fillable_fields.py +98 -0
- package/.agents/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- package/.agents/skills/playwright-cli/SKILL.md +344 -0
- package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/.agents/skills/playwright-cli/references/running-code.md +231 -0
- package/.agents/skills/playwright-cli/references/session-management.md +169 -0
- package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +88 -0
- package/.agents/skills/playwright-cli/references/tracing.md +139 -0
- package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
- package/.agents/skills/polish/SKILL.md +224 -0
- package/.agents/skills/pptx/LICENSE.txt +30 -0
- package/.agents/skills/pptx/SKILL.md +232 -0
- package/.agents/skills/pptx/editing.md +205 -0
- package/.agents/skills/pptx/pptxgenjs.md +420 -0
- package/.agents/skills/pptx/scripts/__init__.py +0 -0
- package/.agents/skills/pptx/scripts/add_slide.py +195 -0
- package/.agents/skills/pptx/scripts/clean.py +286 -0
- package/.agents/skills/pptx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
- package/.agents/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/.agents/skills/pptx/scripts/office/pack.py +159 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.agents/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.agents/skills/pptx/scripts/office/soffice.py +183 -0
- package/.agents/skills/pptx/scripts/office/unpack.py +132 -0
- package/.agents/skills/pptx/scripts/office/validate.py +111 -0
- package/.agents/skills/pptx/scripts/office/validators/__init__.py +15 -0
- package/.agents/skills/pptx/scripts/office/validators/base.py +847 -0
- package/.agents/skills/pptx/scripts/office/validators/docx.py +446 -0
- package/.agents/skills/pptx/scripts/office/validators/pptx.py +275 -0
- package/.agents/skills/pptx/scripts/office/validators/redlining.py +247 -0
- package/.agents/skills/pptx/scripts/thumbnail.py +289 -0
- package/.agents/skills/project-development/SKILL.md +291 -0
- package/.agents/skills/project-development/references/case-studies.md +388 -0
- package/.agents/skills/project-development/references/pipeline-patterns.md +610 -0
- package/.agents/skills/project-development/scripts/pipeline_template.py +796 -0
- package/.agents/skills/prompt-engineer/SKILL.md +263 -0
- package/.agents/skills/prompt-engineer/references/advanced_patterns.md +271 -0
- package/.agents/skills/prompt-engineer/references/core_prompting.md +137 -0
- package/.agents/skills/prompt-engineer/references/quality_improvement.md +193 -0
- package/.agents/skills/quieter/SKILL.md +103 -0
- package/.agents/skills/research-codebase/SKILL.md +227 -0
- package/.agents/skills/shape/SKILL.md +96 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/sl-commit/SKILL.md +51 -0
- package/.agents/skills/sl-submit-diff/SKILL.md +55 -0
- package/.agents/skills/teach-impeccable/SKILL.md +71 -0
- package/.agents/skills/test-driven-development/SKILL.md +371 -0
- package/.agents/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/.agents/skills/tool-design/SKILL.md +271 -0
- package/.agents/skills/tool-design/references/architectural_reduction.md +210 -0
- package/.agents/skills/tool-design/references/best_practices.md +176 -0
- package/.agents/skills/tool-design/scripts/description_generator.py +528 -0
- package/.agents/skills/typescript-advanced-types/SKILL.md +719 -0
- package/.agents/skills/typescript-expert/SKILL.md +428 -0
- package/.agents/skills/typescript-expert/references/tsconfig-strict.json +92 -0
- package/.agents/skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
- package/.agents/skills/typescript-expert/references/utility-types.ts +335 -0
- package/.agents/skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
- package/.agents/skills/typescript-react-reviewer/SKILL.md +200 -0
- package/.agents/skills/typescript-react-reviewer/references/antipatterns.md +510 -0
- package/.agents/skills/typescript-react-reviewer/references/checklist.md +267 -0
- package/.agents/skills/typescript-react-reviewer/references/react19-patterns.md +305 -0
- package/.agents/skills/typeset/SKILL.md +116 -0
- package/.agents/skills/workflow-creator/SKILL.md +337 -0
- package/.agents/skills/workflow-creator/references/agent-sessions.md +789 -0
- package/.agents/skills/workflow-creator/references/computation-and-validation.md +224 -0
- package/.agents/skills/workflow-creator/references/control-flow.md +450 -0
- package/.agents/skills/workflow-creator/references/discovery-and-verification.md +156 -0
- package/.agents/skills/workflow-creator/references/failure-modes.md +732 -0
- package/.agents/skills/workflow-creator/references/getting-started.md +289 -0
- package/.agents/skills/workflow-creator/references/session-config.md +355 -0
- package/.agents/skills/workflow-creator/references/state-and-data-flow.md +374 -0
- package/.agents/skills/workflow-creator/references/user-input.md +206 -0
- package/.agents/skills/workflow-creator/references/workflow-inputs.md +274 -0
- package/.agents/skills/xlsx/LICENSE.txt +30 -0
- package/.agents/skills/xlsx/SKILL.md +292 -0
- package/.agents/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/.agents/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/.agents/skills/xlsx/scripts/office/pack.py +159 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.agents/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.agents/skills/xlsx/scripts/office/soffice.py +183 -0
- package/.agents/skills/xlsx/scripts/office/unpack.py +132 -0
- package/.agents/skills/xlsx/scripts/office/validate.py +111 -0
- package/.agents/skills/xlsx/scripts/office/validators/__init__.py +15 -0
- package/.agents/skills/xlsx/scripts/office/validators/base.py +847 -0
- package/.agents/skills/xlsx/scripts/office/validators/docx.py +446 -0
- package/.agents/skills/xlsx/scripts/office/validators/pptx.py +275 -0
- package/.agents/skills/xlsx/scripts/office/validators/redlining.py +247 -0
- package/.agents/skills/xlsx/scripts/recalc.py +184 -0
- package/.claude/agents/reviewer.md +1 -0
- package/.github/agents/reviewer.md +1 -0
- package/.opencode/agents/reviewer.md +1 -0
- package/README.md +274 -169
- package/package.json +6 -7
- package/src/commands/cli/init/index.ts +2 -2
- package/src/commands/cli/init/scm.ts +7 -8
- package/src/commands/cli/workflow-command.test.ts +74 -0
- package/src/commands/cli/workflow.ts +7 -2
- package/src/scripts/bundle-configs.ts +128 -0
- package/src/sdk/components/compact-switcher.tsx +1 -1
- package/src/sdk/components/orchestrator-panel-store.ts +13 -0
- package/src/sdk/components/orchestrator-panel.tsx +10 -0
- package/src/sdk/components/statusline.tsx +13 -1
- package/src/sdk/providers/claude.ts +42 -0
- package/src/sdk/runtime/executor.ts +111 -32
- package/src/sdk/types.ts +7 -0
- package/src/sdk/workflows/builtin/ralph/claude/index.ts +132 -76
- package/src/sdk/workflows/builtin/ralph/copilot/index.ts +129 -71
- package/src/sdk/workflows/builtin/ralph/helpers/git.ts +184 -17
- package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +463 -79
- package/src/sdk/workflows/builtin/ralph/opencode/index.ts +124 -80
- package/src/services/system/auto-sync.ts +31 -51
- package/src/services/system/skills.ts +56 -60
- package/dist/lib/path-root-guard.d.ts +0 -4
- package/dist/lib/path-root-guard.d.ts.map +0 -1
- package/dist/sdk/components/color-utils.d.ts +0 -4
- package/dist/sdk/components/color-utils.d.ts.map +0 -1
- package/dist/sdk/components/compact-switcher.d.ts +0 -10
- package/dist/sdk/components/compact-switcher.d.ts.map +0 -1
- package/dist/sdk/components/connectors.d.ts +0 -15
- package/dist/sdk/components/connectors.d.ts.map +0 -1
- package/dist/sdk/components/connectors.test.d.ts +0 -2
- package/dist/sdk/components/connectors.test.d.ts.map +0 -1
- package/dist/sdk/components/edge.d.ts +0 -4
- package/dist/sdk/components/edge.d.ts.map +0 -1
- package/dist/sdk/components/error-boundary.d.ts +0 -23
- package/dist/sdk/components/error-boundary.d.ts.map +0 -1
- package/dist/sdk/components/graph-theme.d.ts +0 -17
- package/dist/sdk/components/graph-theme.d.ts.map +0 -1
- package/dist/sdk/components/header.d.ts +0 -3
- package/dist/sdk/components/header.d.ts.map +0 -1
- package/dist/sdk/components/hooks.d.ts +0 -15
- package/dist/sdk/components/hooks.d.ts.map +0 -1
- package/dist/sdk/components/layout.d.ts +0 -27
- package/dist/sdk/components/layout.d.ts.map +0 -1
- package/dist/sdk/components/layout.test.d.ts +0 -2
- package/dist/sdk/components/layout.test.d.ts.map +0 -1
- package/dist/sdk/components/node-card.d.ts +0 -10
- package/dist/sdk/components/node-card.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-contexts.d.ts +0 -16
- package/dist/sdk/components/orchestrator-panel-contexts.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-store.d.ts +0 -46
- package/dist/sdk/components/orchestrator-panel-store.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-store.test.d.ts +0 -2
- package/dist/sdk/components/orchestrator-panel-store.test.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-types.d.ts +0 -18
- package/dist/sdk/components/orchestrator-panel-types.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel.d.ts +0 -52
- package/dist/sdk/components/orchestrator-panel.d.ts.map +0 -1
- package/dist/sdk/components/session-graph-panel.d.ts +0 -7
- package/dist/sdk/components/session-graph-panel.d.ts.map +0 -1
- package/dist/sdk/components/status-helpers.d.ts +0 -6
- package/dist/sdk/components/status-helpers.d.ts.map +0 -1
- package/dist/sdk/components/statusline.d.ts +0 -7
- package/dist/sdk/components/statusline.d.ts.map +0 -1
- package/dist/sdk/components/workflow-picker-panel.d.ts +0 -123
- package/dist/sdk/components/workflow-picker-panel.d.ts.map +0 -1
- package/dist/sdk/define-workflow.d.ts +0 -78
- package/dist/sdk/define-workflow.d.ts.map +0 -1
- package/dist/sdk/define-workflow.test.d.ts +0 -2
- package/dist/sdk/define-workflow.test.d.ts.map +0 -1
- package/dist/sdk/errors.d.ts +0 -24
- package/dist/sdk/errors.d.ts.map +0 -1
- package/dist/sdk/errors.test.d.ts +0 -2
- package/dist/sdk/errors.test.d.ts.map +0 -1
- package/dist/sdk/index.d.ts +0 -13
- package/dist/sdk/index.d.ts.map +0 -1
- package/dist/sdk/providers/claude.d.ts +0 -170
- package/dist/sdk/providers/claude.d.ts.map +0 -1
- package/dist/sdk/providers/copilot.d.ts +0 -11
- package/dist/sdk/providers/copilot.d.ts.map +0 -1
- package/dist/sdk/providers/opencode.d.ts +0 -11
- package/dist/sdk/providers/opencode.d.ts.map +0 -1
- package/dist/sdk/runtime/discovery.d.ts +0 -86
- package/dist/sdk/runtime/discovery.d.ts.map +0 -1
- package/dist/sdk/runtime/executor-entry.d.ts +0 -11
- package/dist/sdk/runtime/executor-entry.d.ts.map +0 -1
- package/dist/sdk/runtime/executor.d.ts +0 -72
- package/dist/sdk/runtime/executor.d.ts.map +0 -1
- package/dist/sdk/runtime/executor.test.d.ts +0 -2
- package/dist/sdk/runtime/executor.test.d.ts.map +0 -1
- package/dist/sdk/runtime/graph-inference.d.ts +0 -35
- package/dist/sdk/runtime/graph-inference.d.ts.map +0 -1
- package/dist/sdk/runtime/loader.d.ts +0 -70
- package/dist/sdk/runtime/loader.d.ts.map +0 -1
- package/dist/sdk/runtime/panel.d.ts +0 -9
- package/dist/sdk/runtime/panel.d.ts.map +0 -1
- package/dist/sdk/runtime/theme.d.ts +0 -28
- package/dist/sdk/runtime/theme.d.ts.map +0 -1
- package/dist/sdk/runtime/tmux.d.ts +0 -297
- package/dist/sdk/runtime/tmux.d.ts.map +0 -1
- package/dist/sdk/types.d.ts +0 -295
- package/dist/sdk/types.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts +0 -62
- package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts +0 -46
- package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts +0 -26
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.d.ts +0 -92
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts +0 -57
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts +0 -49
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts +0 -14
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts +0 -14
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts +0 -17
- package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +0 -119
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts +0 -20
- package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts +0 -14
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/index.d.ts +0 -24
- package/dist/sdk/workflows/index.d.ts.map +0 -1
- package/dist/services/config/definitions.d.ts +0 -85
- package/dist/services/config/definitions.d.ts.map +0 -1
- package/dist/services/system/copy.d.ts +0 -77
- package/dist/services/system/copy.d.ts.map +0 -1
- package/dist/services/system/detect.d.ts +0 -75
- package/dist/services/system/detect.d.ts.map +0 -1
- package/tsconfig.json +0 -33
|
@@ -45,6 +45,8 @@ import {
|
|
|
45
45
|
clearClaudeSession,
|
|
46
46
|
ClaudeClientWrapper,
|
|
47
47
|
ClaudeSessionWrapper,
|
|
48
|
+
HeadlessClaudeClientWrapper,
|
|
49
|
+
HeadlessClaudeSessionWrapper,
|
|
48
50
|
} from "../providers/claude.ts";
|
|
49
51
|
import { OrchestratorPanel } from "./panel.tsx";
|
|
50
52
|
import { GraphFrontierTracker } from "./graph-inference.ts";
|
|
@@ -560,33 +562,66 @@ async function initProviderClientAndSession<A extends AgentType>(
|
|
|
560
562
|
sessionId: string,
|
|
561
563
|
clientOpts: StageClientOptions<A>,
|
|
562
564
|
sessionOpts: StageSessionOptions<A>,
|
|
563
|
-
|
|
564
|
-
|
|
565
|
+
headless = false,
|
|
566
|
+
): Promise<{
|
|
567
|
+
client: ProviderClient<A>;
|
|
568
|
+
session: ProviderSession<A>;
|
|
569
|
+
/** Optional cleanup for SDK-managed resources (e.g. headless OpenCode server). */
|
|
570
|
+
cleanup?: () => void;
|
|
571
|
+
}> {
|
|
572
|
+
type Result = {
|
|
573
|
+
client: ProviderClient<A>;
|
|
574
|
+
session: ProviderSession<A>;
|
|
575
|
+
cleanup?: () => void;
|
|
576
|
+
};
|
|
565
577
|
|
|
566
578
|
switch (agent) {
|
|
567
579
|
case "copilot": {
|
|
568
580
|
const { CopilotClient, approveAll } = await import("@github/copilot-sdk");
|
|
569
581
|
const copilotClientOpts = clientOpts as StageClientOptions<"copilot">;
|
|
570
582
|
const copilotSessionOpts = sessionOpts as StageSessionOptions<"copilot">;
|
|
571
|
-
|
|
583
|
+
// Headless: let the SDK spawn its own CLI process (no cliUrl).
|
|
584
|
+
// Non-headless: connect to the CLI server running in a tmux pane.
|
|
585
|
+
const client = headless
|
|
586
|
+
? new CopilotClient({ ...copilotClientOpts })
|
|
587
|
+
: new CopilotClient({ ...copilotClientOpts, cliUrl: serverUrl });
|
|
572
588
|
await client.start();
|
|
573
589
|
const session = await client.createSession({
|
|
574
590
|
onPermissionRequest: approveAll,
|
|
575
591
|
...copilotSessionOpts,
|
|
576
592
|
});
|
|
577
|
-
|
|
593
|
+
if (!headless) {
|
|
594
|
+
await client.setForegroundSessionId(session.sessionId);
|
|
595
|
+
}
|
|
578
596
|
return { client, session } as Result;
|
|
579
597
|
}
|
|
580
598
|
case "opencode": {
|
|
599
|
+
const ocSessionOpts = sessionOpts as StageSessionOptions<"opencode">;
|
|
600
|
+
if (headless) {
|
|
601
|
+
const { createOpencode } = await import("@opencode-ai/sdk/v2");
|
|
602
|
+
const oc = await createOpencode({ port: 0 });
|
|
603
|
+
const sessionResult = await oc.client.session.create(ocSessionOpts);
|
|
604
|
+
return {
|
|
605
|
+
client: oc.client,
|
|
606
|
+
session: sessionResult.data!,
|
|
607
|
+
cleanup: () => oc.server.close(),
|
|
608
|
+
} as Result;
|
|
609
|
+
}
|
|
581
610
|
const { createOpencodeClient } = await import("@opencode-ai/sdk/v2");
|
|
582
611
|
const ocClientOpts = clientOpts as StageClientOptions<"opencode">;
|
|
583
|
-
const ocSessionOpts = sessionOpts as StageSessionOptions<"opencode">;
|
|
584
612
|
const client = createOpencodeClient({ ...ocClientOpts, baseUrl: serverUrl });
|
|
585
613
|
const sessionResult = await client.session.create(ocSessionOpts);
|
|
586
614
|
await client.tui.selectSession({ sessionID: sessionResult.data!.id });
|
|
587
615
|
return { client, session: sessionResult.data! } as Result;
|
|
588
616
|
}
|
|
589
617
|
case "claude": {
|
|
618
|
+
if (headless) {
|
|
619
|
+
// Headless Claude stages use the Agent SDK directly — no tmux pane.
|
|
620
|
+
const client = new HeadlessClaudeClientWrapper();
|
|
621
|
+
await client.start();
|
|
622
|
+
const session = new HeadlessClaudeSessionWrapper(sessionId);
|
|
623
|
+
return { client, session } as Result;
|
|
624
|
+
}
|
|
590
625
|
const claudeClientOpts = clientOpts as StageClientOptions<"claude">;
|
|
591
626
|
const claudeSessionOpts = sessionOpts as StageSessionOptions<"claude">;
|
|
592
627
|
const client = new ClaudeClientWrapper(paneId, claudeClientOpts);
|
|
@@ -633,7 +668,10 @@ async function cleanupProvider<A extends AgentType>(
|
|
|
633
668
|
// Stateless HTTP client — no cleanup needed
|
|
634
669
|
break;
|
|
635
670
|
case "claude":
|
|
636
|
-
|
|
671
|
+
// Headless Claude stages have no tmux pane to clear.
|
|
672
|
+
if (!paneId.startsWith("headless-")) {
|
|
673
|
+
clearClaudeSession(paneId);
|
|
674
|
+
}
|
|
637
675
|
break;
|
|
638
676
|
default:
|
|
639
677
|
assertNever(agent);
|
|
@@ -685,8 +723,13 @@ function createSessionRunner(
|
|
|
685
723
|
throw new Error(`Duplicate session name: "${name}"`);
|
|
686
724
|
}
|
|
687
725
|
|
|
726
|
+
const isHeadless = options.headless === true;
|
|
727
|
+
|
|
688
728
|
// ── 2. Auto-infer graph parents from frontier (synchronous) ──
|
|
689
|
-
|
|
729
|
+
// Headless stages are invisible in the graph — they must not consume or
|
|
730
|
+
// update the frontier, otherwise the next visible stage gets orphaned
|
|
731
|
+
// parent refs that don't exist in the panel.
|
|
732
|
+
const graphParents = isHeadless ? [] : graphTracker.onSpawn();
|
|
690
733
|
|
|
691
734
|
// ── 3. Create done promise so dependent sessions can await this one ──
|
|
692
735
|
let resolveDone!: () => void;
|
|
@@ -715,18 +758,34 @@ function createSessionRunner(
|
|
|
715
758
|
port,
|
|
716
759
|
);
|
|
717
760
|
|
|
718
|
-
// ── 7. Create tmux window ──
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
761
|
+
// ── 7. Create tmux window or headless execution ──
|
|
762
|
+
let serverUrl: string;
|
|
763
|
+
if (isHeadless) {
|
|
764
|
+
// Headless stages use their SDKs directly — no tmux window.
|
|
765
|
+
// Claude Agent SDK runs in-process; Copilot SDK spawns its own CLI;
|
|
766
|
+
// OpenCode SDK starts both server and client via createOpencode().
|
|
767
|
+
paneId = `headless-${name}-${sessionId}`;
|
|
768
|
+
shared.activeRegistry.set(name, { name, paneId, done: donePromise });
|
|
769
|
+
serverUrl = "";
|
|
770
|
+
|
|
771
|
+
shared.panel.backgroundTaskStarted();
|
|
772
|
+
panelSessionAdded = true;
|
|
773
|
+
} else {
|
|
774
|
+
// Standard tmux window for visible stages.
|
|
775
|
+
paneId = tmux.createWindow(
|
|
776
|
+
shared.tmuxSessionName,
|
|
777
|
+
name,
|
|
778
|
+
paneCmd,
|
|
779
|
+
undefined,
|
|
780
|
+
paneEnvVars,
|
|
781
|
+
);
|
|
782
|
+
shared.activeRegistry.set(name, { name, paneId, done: donePromise });
|
|
783
|
+
|
|
784
|
+
serverUrl = await waitForServer(shared.agent, port, paneId);
|
|
727
785
|
|
|
728
|
-
|
|
729
|
-
|
|
786
|
+
shared.panel.addSession(name, graphParents);
|
|
787
|
+
panelSessionAdded = true;
|
|
788
|
+
}
|
|
730
789
|
|
|
731
790
|
// ── 9. Create session directory ──
|
|
732
791
|
const sessionDirName = `${name}-${sessionId}`;
|
|
@@ -736,10 +795,6 @@ function createSessionRunner(
|
|
|
736
795
|
const messagesPath = join(sessionDir, "messages.json");
|
|
737
796
|
const inboxPath = join(sessionDir, "inbox.md");
|
|
738
797
|
|
|
739
|
-
// ── 10. Add node to graph panel ──
|
|
740
|
-
shared.panel.addSession(name, graphParents);
|
|
741
|
-
panelSessionAdded = true;
|
|
742
|
-
|
|
743
798
|
// ── 11. Claude session snapshot (for identifying new sessions later) ──
|
|
744
799
|
let knownClaudeSessionIds: Set<string> | undefined;
|
|
745
800
|
if (shared.agent === "claude") {
|
|
@@ -829,7 +884,7 @@ function createSessionRunner(
|
|
|
829
884
|
const getMessagesFn = createMessagesReader(shared.completedRegistry);
|
|
830
885
|
|
|
831
886
|
// ── 12. Auto-create provider client and session ──
|
|
832
|
-
const { client: providerClient, session: providerSession } =
|
|
887
|
+
const { client: providerClient, session: providerSession, cleanup: providerCleanup } =
|
|
833
888
|
await initProviderClientAndSession(
|
|
834
889
|
shared.agent,
|
|
835
890
|
serverUrl,
|
|
@@ -837,6 +892,7 @@ function createSessionRunner(
|
|
|
837
892
|
sessionId,
|
|
838
893
|
clientOpts,
|
|
839
894
|
sessionOpts,
|
|
895
|
+
isHeadless,
|
|
840
896
|
);
|
|
841
897
|
|
|
842
898
|
// ── 12a. Copilot: wrap send() to await session.idle ──
|
|
@@ -927,30 +983,48 @@ function createSessionRunner(
|
|
|
927
983
|
await Bun.write(join(sessionDir, "error.txt"), message).catch(
|
|
928
984
|
() => {},
|
|
929
985
|
);
|
|
930
|
-
shared.panel.sessionError(name, message);
|
|
986
|
+
if (!isHeadless) shared.panel.sessionError(name, message);
|
|
931
987
|
throw error;
|
|
932
988
|
} finally {
|
|
933
989
|
// ── 14a. Auto-cleanup provider resources ──
|
|
934
990
|
await cleanupProvider(shared.agent, providerClient, providerSession, paneId);
|
|
991
|
+
if (providerCleanup) {
|
|
992
|
+
try {
|
|
993
|
+
providerCleanup();
|
|
994
|
+
} catch {}
|
|
995
|
+
}
|
|
935
996
|
}
|
|
936
997
|
|
|
937
998
|
// ── 15. Mark session complete ──
|
|
938
|
-
|
|
999
|
+
if (isHeadless) {
|
|
1000
|
+
shared.panel.backgroundTaskFinished();
|
|
1001
|
+
} else {
|
|
1002
|
+
shared.panel.sessionSuccess(name);
|
|
1003
|
+
}
|
|
939
1004
|
const result: SessionResult = { name, sessionId, sessionDir, paneId };
|
|
940
1005
|
shared.completedRegistry.set(name, result);
|
|
941
1006
|
shared.activeRegistry.delete(name);
|
|
942
1007
|
resolveDone();
|
|
943
1008
|
|
|
944
1009
|
// Update frontier so the next stage in this scope chains from us.
|
|
945
|
-
|
|
1010
|
+
// Headless stages are transparent — they don't touch the frontier.
|
|
1011
|
+
if (!isHeadless) graphTracker.onSettle(name);
|
|
946
1012
|
return { name, id: sessionId, result: callbackResult! };
|
|
947
1013
|
} catch (error) {
|
|
948
1014
|
const message = errorMessage(error);
|
|
949
1015
|
if (panelSessionAdded) {
|
|
950
|
-
|
|
1016
|
+
if (isHeadless) {
|
|
1017
|
+
shared.panel.backgroundTaskFinished();
|
|
1018
|
+
} else {
|
|
1019
|
+
shared.panel.sessionError(name, message);
|
|
1020
|
+
}
|
|
951
1021
|
}
|
|
952
|
-
if (
|
|
953
|
-
|
|
1022
|
+
// Kill the tmux window if one was created (visible stages and headless OpenCode).
|
|
1023
|
+
// Headless Claude/Copilot have virtual paneIds ("headless-...") — no window to kill.
|
|
1024
|
+
if (paneId && !paneId.startsWith("headless-")) {
|
|
1025
|
+
try {
|
|
1026
|
+
tmux.killWindow(shared.tmuxSessionName, name);
|
|
1027
|
+
} catch {}
|
|
954
1028
|
}
|
|
955
1029
|
// Ensure the done promise settles and the active entry is cleared.
|
|
956
1030
|
shared.activeRegistry.delete(name);
|
|
@@ -958,7 +1032,8 @@ function createSessionRunner(
|
|
|
958
1032
|
rejectDone(error);
|
|
959
1033
|
// Update frontier even on failure — if the caller catches and
|
|
960
1034
|
// continues, the next stage should still chain from this one.
|
|
961
|
-
|
|
1035
|
+
// Headless stages are transparent — they don't touch the frontier.
|
|
1036
|
+
if (!isHeadless) graphTracker.onSettle(name);
|
|
962
1037
|
throw error;
|
|
963
1038
|
}
|
|
964
1039
|
};
|
|
@@ -1098,10 +1173,14 @@ export async function runOrchestrator(): Promise<void> {
|
|
|
1098
1173
|
await panel.waitForExit();
|
|
1099
1174
|
shutdown(0);
|
|
1100
1175
|
} catch (error) {
|
|
1101
|
-
// Kill any active
|
|
1176
|
+
// Kill any active tmux windows that didn't complete.
|
|
1177
|
+
// Headless Claude/Copilot have virtual paneIds ("headless-...") — their
|
|
1178
|
+
// SDK-managed processes are cleaned up by cleanupProvider().
|
|
1102
1179
|
for (const [, active] of shared.activeRegistry) {
|
|
1103
1180
|
try {
|
|
1104
|
-
|
|
1181
|
+
if (active.paneId && !active.paneId.startsWith("headless-")) {
|
|
1182
|
+
tmux.killWindow(tmuxSessionName, active.name);
|
|
1183
|
+
}
|
|
1105
1184
|
} catch {}
|
|
1106
1185
|
}
|
|
1107
1186
|
|
package/src/sdk/types.ts
CHANGED
|
@@ -240,6 +240,13 @@ export interface SessionRunOptions {
|
|
|
240
240
|
name: string;
|
|
241
241
|
/** Human-readable description */
|
|
242
242
|
description?: string;
|
|
243
|
+
/**
|
|
244
|
+
* When true, spawn the CLI server as a background child process (Bun.spawn)
|
|
245
|
+
* instead of creating a tmux window. The provider client/session are still
|
|
246
|
+
* auto-created but the stage is invisible in the graph. Useful for
|
|
247
|
+
* Copilot/OpenCode SDKs that need a server but don't need a visible TUI.
|
|
248
|
+
*/
|
|
249
|
+
headless?: boolean;
|
|
243
250
|
}
|
|
244
251
|
|
|
245
252
|
/**
|
|
@@ -5,26 +5,35 @@
|
|
|
5
5
|
* so users can see each iteration's progress in real time. The loop
|
|
6
6
|
* terminates when:
|
|
7
7
|
* - {@link MAX_LOOPS} iterations have completed, OR
|
|
8
|
-
* - Two
|
|
8
|
+
* - Two parallel reviewer passes both return zero findings.
|
|
9
|
+
*
|
|
10
|
+
* The reviewer stages use the Claude Agent SDK's structured output
|
|
11
|
+
* (`outputFormat`) to guarantee the review result matches the
|
|
12
|
+
* {@link ReviewResultSchema} — no manual JSON parsing required.
|
|
9
13
|
*
|
|
10
14
|
* Run: atomic workflow -n ralph -a claude "<your spec>"
|
|
11
15
|
*/
|
|
12
16
|
|
|
13
17
|
import { defineWorkflow } from "../../../index.ts";
|
|
18
|
+
import { query as claudeSdkQuery } from "@anthropic-ai/claude-agent-sdk";
|
|
14
19
|
|
|
15
20
|
import {
|
|
16
21
|
buildPlannerPrompt,
|
|
17
22
|
buildOrchestratorPrompt,
|
|
23
|
+
buildInfraDiscoveryPrompts,
|
|
18
24
|
buildReviewPrompt,
|
|
19
25
|
buildDebuggerReportPrompt,
|
|
20
|
-
parseReviewResult,
|
|
21
26
|
extractMarkdownBlock,
|
|
27
|
+
filterActionable,
|
|
28
|
+
mergeReviewResults,
|
|
29
|
+
REVIEW_RESULT_JSON_SCHEMA,
|
|
30
|
+
type ReviewResult,
|
|
31
|
+
type StructuredReviewResult,
|
|
22
32
|
} from "../helpers/prompts.ts";
|
|
23
33
|
import { hasActionableFindings } from "../helpers/review.ts";
|
|
24
|
-
import {
|
|
34
|
+
import { captureBranchChangeset } from "../helpers/git.ts";
|
|
25
35
|
|
|
26
36
|
const MAX_LOOPS = 10;
|
|
27
|
-
const CONSECUTIVE_CLEAN_THRESHOLD = 2;
|
|
28
37
|
|
|
29
38
|
// The orchestrator stage implements the actual code changes and can run for
|
|
30
39
|
// a very long time on large tasks. 24 hours prevents premature timeout.
|
|
@@ -35,24 +44,56 @@ function asAgentCall(agentName: string, prompt: string): string {
|
|
|
35
44
|
return `@"${agentName} (agent)" ${prompt}`;
|
|
36
45
|
}
|
|
37
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Run the Claude Agent SDK's `query()` with structured output and collect
|
|
49
|
+
* the result. Returns a {@link StructuredReviewResult} with the SDK-validated
|
|
50
|
+
* structured output (when available) and the raw text fallback.
|
|
51
|
+
*/
|
|
52
|
+
async function queryWithStructuredOutput(
|
|
53
|
+
prompt: string,
|
|
54
|
+
): Promise<StructuredReviewResult> {
|
|
55
|
+
let structured: ReviewResult | null = null;
|
|
56
|
+
let raw = "";
|
|
57
|
+
|
|
58
|
+
for await (const msg of claudeSdkQuery({
|
|
59
|
+
prompt,
|
|
60
|
+
options: {
|
|
61
|
+
outputFormat: {
|
|
62
|
+
type: "json_schema",
|
|
63
|
+
schema: REVIEW_RESULT_JSON_SCHEMA,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
})) {
|
|
67
|
+
if (msg.type === "result") {
|
|
68
|
+
raw = String((msg as Record<string, unknown>).output ?? "");
|
|
69
|
+
if (
|
|
70
|
+
msg.subtype === "success" &&
|
|
71
|
+
(msg as Record<string, unknown>).structured_output
|
|
72
|
+
) {
|
|
73
|
+
structured = (msg as Record<string, unknown>).structured_output as ReviewResult;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
structured: structured ? filterActionable(structured) : null,
|
|
80
|
+
raw,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
38
84
|
export default defineWorkflow<"claude">({
|
|
39
85
|
name: "ralph",
|
|
40
86
|
description:
|
|
41
87
|
"Plan → orchestrate → review → debug loop with bounded iteration",
|
|
42
88
|
})
|
|
43
89
|
.run(async (ctx) => {
|
|
44
|
-
// Free-form workflows receive their positional prompt under
|
|
45
|
-
// `inputs.prompt`; destructure once so every stage below can close
|
|
46
|
-
// over a bare `prompt` string without re-reaching into ctx.inputs.
|
|
47
90
|
const prompt = ctx.inputs.prompt ?? "";
|
|
48
|
-
let consecutiveClean = 0;
|
|
49
91
|
let debuggerReport = "";
|
|
50
92
|
|
|
51
93
|
for (let iteration = 1; iteration <= MAX_LOOPS; iteration++) {
|
|
52
94
|
// ── Plan ────────────────────────────────────────────────────────────
|
|
53
|
-
const plannerName = `planner-${iteration}`;
|
|
54
95
|
await ctx.stage(
|
|
55
|
-
{ name:
|
|
96
|
+
{ name: `planner-${iteration}` },
|
|
56
97
|
{},
|
|
57
98
|
{},
|
|
58
99
|
async (s) => {
|
|
@@ -69,95 +110,110 @@ export default defineWorkflow<"claude">({
|
|
|
69
110
|
},
|
|
70
111
|
);
|
|
71
112
|
|
|
72
|
-
|
|
73
113
|
// ── Orchestrate ─────────────────────────────────────────────────────
|
|
74
|
-
const orchName = `orchestrator-${iteration}`;
|
|
75
114
|
await ctx.stage(
|
|
76
|
-
{ name:
|
|
115
|
+
{ name: `orchestrator-${iteration}` },
|
|
77
116
|
{},
|
|
78
117
|
{},
|
|
79
118
|
async (s) => {
|
|
80
119
|
await s.session.query(
|
|
81
|
-
asAgentCall(
|
|
82
|
-
"orchestrator",
|
|
83
|
-
buildOrchestratorPrompt(prompt),
|
|
84
|
-
),
|
|
120
|
+
asAgentCall("orchestrator", buildOrchestratorPrompt(prompt)),
|
|
85
121
|
{ timeoutMs: ORCHESTRATOR_TIMEOUT_MS },
|
|
86
122
|
);
|
|
87
123
|
s.save(s.sessionId);
|
|
88
124
|
},
|
|
89
125
|
);
|
|
90
126
|
|
|
127
|
+
// ── Infrastructure Discovery (three parallel sub-agent stages) ────
|
|
128
|
+
const changeset = await captureBranchChangeset();
|
|
129
|
+
const discoveryPrompts = buildInfraDiscoveryPrompts();
|
|
91
130
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const review = await ctx.stage(
|
|
96
|
-
{ name: reviewerName },
|
|
97
|
-
{},
|
|
98
|
-
{},
|
|
99
|
-
async (s) => {
|
|
100
|
-
const result = await s.session.query(
|
|
101
|
-
asAgentCall(
|
|
102
|
-
"reviewer",
|
|
103
|
-
buildReviewPrompt(prompt, { gitStatus, iteration }),
|
|
104
|
-
),
|
|
105
|
-
);
|
|
106
|
-
s.save(s.sessionId);
|
|
107
|
-
return result.output;
|
|
108
|
-
},
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
let reviewRaw = review.result;
|
|
113
|
-
let parsed = parseReviewResult(reviewRaw);
|
|
114
|
-
|
|
115
|
-
if (!hasActionableFindings(parsed, reviewRaw)) {
|
|
116
|
-
consecutiveClean += 1;
|
|
117
|
-
if (consecutiveClean >= CONSECUTIVE_CLEAN_THRESHOLD) break;
|
|
118
|
-
|
|
119
|
-
// Confirmation pass — re-run reviewer only
|
|
120
|
-
gitStatus = await safeGitStatusS();
|
|
121
|
-
const confirmName = `reviewer-${iteration}-confirm`;
|
|
122
|
-
const confirm = await ctx.stage(
|
|
123
|
-
{ name: confirmName },
|
|
131
|
+
const [locatorResult, analyzerResult, patternResult] = await Promise.all([
|
|
132
|
+
ctx.stage(
|
|
133
|
+
{ name: `infra-locate-${iteration}`, headless: true },
|
|
124
134
|
{},
|
|
125
135
|
{},
|
|
126
136
|
async (s) => {
|
|
127
137
|
const result = await s.session.query(
|
|
128
|
-
asAgentCall(
|
|
129
|
-
"reviewer",
|
|
130
|
-
buildReviewPrompt(prompt, {
|
|
131
|
-
gitStatus,
|
|
132
|
-
iteration,
|
|
133
|
-
isConfirmationPass: true,
|
|
134
|
-
}),
|
|
135
|
-
),
|
|
138
|
+
asAgentCall("codebase-locator", discoveryPrompts.locator),
|
|
136
139
|
);
|
|
137
140
|
s.save(s.sessionId);
|
|
138
|
-
return result.output;
|
|
141
|
+
return String(result.output ?? "");
|
|
139
142
|
},
|
|
140
|
-
)
|
|
141
|
-
|
|
143
|
+
),
|
|
144
|
+
ctx.stage(
|
|
145
|
+
{ name: `infra-analyze-${iteration}`, headless: true },
|
|
146
|
+
{},
|
|
147
|
+
{},
|
|
148
|
+
async (s) => {
|
|
149
|
+
const result = await s.session.query(
|
|
150
|
+
asAgentCall("codebase-analyzer", discoveryPrompts.analyzer),
|
|
151
|
+
);
|
|
152
|
+
s.save(s.sessionId);
|
|
153
|
+
return String(result.output ?? "");
|
|
154
|
+
},
|
|
155
|
+
),
|
|
156
|
+
ctx.stage(
|
|
157
|
+
{ name: `infra-patterns-${iteration}`, headless: true },
|
|
158
|
+
{},
|
|
159
|
+
{},
|
|
160
|
+
async (s) => {
|
|
161
|
+
const result = await s.session.query(
|
|
162
|
+
asAgentCall("codebase-pattern-finder", discoveryPrompts.patternFinder),
|
|
163
|
+
);
|
|
164
|
+
s.save(s.sessionId);
|
|
165
|
+
return String(result.output ?? "");
|
|
166
|
+
},
|
|
167
|
+
),
|
|
168
|
+
]);
|
|
169
|
+
|
|
170
|
+
const discoveryContext = [
|
|
171
|
+
"### Infrastructure Files (codebase-locator)\n\n" + locatorResult.result,
|
|
172
|
+
"### Infrastructure Analysis (codebase-analyzer)\n\n" + analyzerResult.result,
|
|
173
|
+
"### Build & Test Patterns (codebase-pattern-finder)\n\n" + patternResult.result,
|
|
174
|
+
].join("\n\n---\n\n");
|
|
175
|
+
|
|
176
|
+
// ── Review (two parallel passes) ────────────────────────────────────
|
|
177
|
+
const reviewPrompt = buildReviewPrompt(prompt, {
|
|
178
|
+
changeset,
|
|
179
|
+
iteration,
|
|
180
|
+
discoveryContext,
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
const [reviewA, reviewB] = await Promise.all([
|
|
184
|
+
ctx.stage(
|
|
185
|
+
{ name: `reviewer-${iteration}-a` },
|
|
186
|
+
{},
|
|
187
|
+
{},
|
|
188
|
+
async (s) => {
|
|
189
|
+
const result = await queryWithStructuredOutput(reviewPrompt);
|
|
190
|
+
s.save(s.sessionId);
|
|
191
|
+
return result;
|
|
192
|
+
},
|
|
193
|
+
),
|
|
194
|
+
ctx.stage(
|
|
195
|
+
{ name: `reviewer-${iteration}-b` },
|
|
196
|
+
{},
|
|
197
|
+
{},
|
|
198
|
+
async (s) => {
|
|
199
|
+
const result = await queryWithStructuredOutput(reviewPrompt);
|
|
200
|
+
s.save(s.sessionId);
|
|
201
|
+
return result;
|
|
202
|
+
},
|
|
203
|
+
),
|
|
204
|
+
]);
|
|
142
205
|
|
|
143
|
-
|
|
144
|
-
|
|
206
|
+
const merged = mergeReviewResults(reviewA.result, reviewB.result);
|
|
207
|
+
const parsed = merged.structured;
|
|
208
|
+
const reviewRaw = merged.raw;
|
|
145
209
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (consecutiveClean >= CONSECUTIVE_CLEAN_THRESHOLD) break;
|
|
149
|
-
} else {
|
|
150
|
-
consecutiveClean = 0;
|
|
151
|
-
}
|
|
152
|
-
} else {
|
|
153
|
-
consecutiveClean = 0;
|
|
154
|
-
}
|
|
210
|
+
// Both reviewers agree the code is clean → done
|
|
211
|
+
if (!hasActionableFindings(parsed, reviewRaw)) break;
|
|
155
212
|
|
|
156
|
-
// ── Debug (only if
|
|
157
|
-
if (
|
|
158
|
-
const debuggerName = `debugger-${iteration}`;
|
|
213
|
+
// ── Debug (only if another iteration is allowed) ────────────────────
|
|
214
|
+
if (iteration < MAX_LOOPS) {
|
|
159
215
|
const debugger_ = await ctx.stage(
|
|
160
|
-
{ name:
|
|
216
|
+
{ name: `debugger-${iteration}` },
|
|
161
217
|
{},
|
|
162
218
|
{},
|
|
163
219
|
async (s) => {
|
|
@@ -166,7 +222,7 @@ export default defineWorkflow<"claude">({
|
|
|
166
222
|
"debugger",
|
|
167
223
|
buildDebuggerReportPrompt(parsed, reviewRaw, {
|
|
168
224
|
iteration,
|
|
169
|
-
|
|
225
|
+
changeset,
|
|
170
226
|
}),
|
|
171
227
|
),
|
|
172
228
|
);
|