@bastani/atomic 0.6.8 → 0.7.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/atomic +65 -0
- package/package.json +17 -82
- package/postinstall.mjs +47 -0
- package/.agents/skills/ado-commit/SKILL.md +0 -94
- package/.agents/skills/ado-create-pr/SKILL.md +0 -211
- package/.agents/skills/advanced-evaluation/SKILL.md +0 -404
- package/.agents/skills/advanced-evaluation/references/bias-mitigation.md +0 -288
- package/.agents/skills/advanced-evaluation/references/evaluation-pipeline.md +0 -43
- package/.agents/skills/advanced-evaluation/references/implementation-patterns.md +0 -315
- package/.agents/skills/advanced-evaluation/references/metrics-guide.md +0 -331
- package/.agents/skills/advanced-evaluation/scripts/evaluation_example.py +0 -392
- package/.agents/skills/ast-grep/SKILL.md +0 -325
- package/.agents/skills/ast-grep/references/rule_reference.md +0 -297
- package/.agents/skills/bdi-mental-states/SKILL.md +0 -313
- package/.agents/skills/bdi-mental-states/references/bdi-ontology-core.md +0 -207
- package/.agents/skills/bdi-mental-states/references/framework-integration.md +0 -582
- package/.agents/skills/bdi-mental-states/references/rdf-examples.md +0 -315
- package/.agents/skills/bdi-mental-states/references/sparql-competency.md +0 -420
- package/.agents/skills/bun/SKILL.md +0 -233
- package/.agents/skills/context-compression/SKILL.md +0 -274
- package/.agents/skills/context-compression/references/evaluation-framework.md +0 -213
- package/.agents/skills/context-compression/scripts/compression_evaluator.py +0 -862
- package/.agents/skills/context-compression/tests/test_compression_evaluator.py +0 -56
- package/.agents/skills/context-degradation/SKILL.md +0 -208
- package/.agents/skills/context-degradation/references/patterns.md +0 -314
- package/.agents/skills/context-degradation/scripts/degradation_detector.py +0 -614
- package/.agents/skills/context-fundamentals/SKILL.md +0 -203
- package/.agents/skills/context-fundamentals/references/context-components.md +0 -283
- package/.agents/skills/context-fundamentals/scripts/context_manager.py +0 -533
- package/.agents/skills/context-optimization/SKILL.md +0 -197
- package/.agents/skills/context-optimization/references/optimization_techniques.md +0 -272
- package/.agents/skills/context-optimization/scripts/compaction.py +0 -562
- package/.agents/skills/create-spec/SKILL.md +0 -249
- package/.agents/skills/docx/LICENSE.txt +0 -30
- package/.agents/skills/docx/SKILL.md +0 -592
- package/.agents/skills/docx/scripts/__init__.py +0 -1
- package/.agents/skills/docx/scripts/accept_changes.py +0 -135
- package/.agents/skills/docx/scripts/comment.py +0 -318
- package/.agents/skills/docx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/docx/scripts/office/helpers/merge_runs.py +0 -199
- package/.agents/skills/docx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/.agents/skills/docx/scripts/office/pack.py +0 -159
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/.agents/skills/docx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/.agents/skills/docx/scripts/office/soffice.py +0 -183
- package/.agents/skills/docx/scripts/office/unpack.py +0 -132
- package/.agents/skills/docx/scripts/office/validate.py +0 -111
- package/.agents/skills/docx/scripts/office/validators/__init__.py +0 -15
- package/.agents/skills/docx/scripts/office/validators/base.py +0 -847
- package/.agents/skills/docx/scripts/office/validators/docx.py +0 -446
- package/.agents/skills/docx/scripts/office/validators/pptx.py +0 -275
- package/.agents/skills/docx/scripts/office/validators/redlining.py +0 -247
- package/.agents/skills/docx/scripts/templates/comments.xml +0 -3
- package/.agents/skills/docx/scripts/templates/commentsExtended.xml +0 -3
- package/.agents/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/.agents/skills/docx/scripts/templates/commentsIds.xml +0 -3
- package/.agents/skills/docx/scripts/templates/people.xml +0 -3
- package/.agents/skills/evaluation/SKILL.md +0 -253
- package/.agents/skills/evaluation/references/metrics.md +0 -339
- package/.agents/skills/evaluation/scripts/evaluator.py +0 -627
- package/.agents/skills/explain-code/SKILL.md +0 -232
- package/.agents/skills/filesystem-context/SKILL.md +0 -289
- package/.agents/skills/filesystem-context/references/implementation-patterns.md +0 -549
- package/.agents/skills/filesystem-context/scripts/filesystem_context.py +0 -425
- package/.agents/skills/find-skills/SKILL.md +0 -144
- package/.agents/skills/gh-commit/SKILL.md +0 -245
- package/.agents/skills/gh-create-pr/SKILL.md +0 -95
- package/.agents/skills/hosted-agents/SKILL.md +0 -262
- package/.agents/skills/hosted-agents/references/infrastructure-patterns.md +0 -700
- package/.agents/skills/hosted-agents/scripts/sandbox_manager.py +0 -590
- package/.agents/skills/impeccable/SKILL.md +0 -178
- package/.agents/skills/impeccable/agents/openai.yaml +0 -4
- package/.agents/skills/impeccable/reference/adapt.md +0 -190
- package/.agents/skills/impeccable/reference/animate.md +0 -175
- package/.agents/skills/impeccable/reference/audit.md +0 -134
- package/.agents/skills/impeccable/reference/bolder.md +0 -113
- package/.agents/skills/impeccable/reference/brand.md +0 -114
- package/.agents/skills/impeccable/reference/clarify.md +0 -174
- package/.agents/skills/impeccable/reference/cognitive-load.md +0 -106
- package/.agents/skills/impeccable/reference/color-and-contrast.md +0 -105
- package/.agents/skills/impeccable/reference/colorize.md +0 -154
- package/.agents/skills/impeccable/reference/craft.md +0 -193
- package/.agents/skills/impeccable/reference/critique.md +0 -213
- package/.agents/skills/impeccable/reference/delight.md +0 -302
- package/.agents/skills/impeccable/reference/distill.md +0 -111
- package/.agents/skills/impeccable/reference/document.md +0 -427
- package/.agents/skills/impeccable/reference/extract.md +0 -70
- package/.agents/skills/impeccable/reference/harden.md +0 -347
- package/.agents/skills/impeccable/reference/heuristics-scoring.md +0 -234
- package/.agents/skills/impeccable/reference/interaction-design.md +0 -195
- package/.agents/skills/impeccable/reference/layout.md +0 -141
- package/.agents/skills/impeccable/reference/live.md +0 -594
- package/.agents/skills/impeccable/reference/motion-design.md +0 -109
- package/.agents/skills/impeccable/reference/onboard.md +0 -234
- package/.agents/skills/impeccable/reference/optimize.md +0 -258
- package/.agents/skills/impeccable/reference/overdrive.md +0 -130
- package/.agents/skills/impeccable/reference/personas.md +0 -178
- package/.agents/skills/impeccable/reference/polish.md +0 -232
- package/.agents/skills/impeccable/reference/product.md +0 -62
- package/.agents/skills/impeccable/reference/quieter.md +0 -99
- package/.agents/skills/impeccable/reference/responsive-design.md +0 -114
- package/.agents/skills/impeccable/reference/shape.md +0 -151
- package/.agents/skills/impeccable/reference/spatial-design.md +0 -100
- package/.agents/skills/impeccable/reference/teach.md +0 -156
- package/.agents/skills/impeccable/reference/typeset.md +0 -124
- package/.agents/skills/impeccable/reference/typography.md +0 -159
- package/.agents/skills/impeccable/reference/ux-writing.md +0 -107
- package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +0 -284
- package/.agents/skills/impeccable/scripts/command-metadata.json +0 -94
- package/.agents/skills/impeccable/scripts/design-parser.mjs +0 -820
- package/.agents/skills/impeccable/scripts/detect-csp.mjs +0 -198
- package/.agents/skills/impeccable/scripts/is-generated.mjs +0 -69
- package/.agents/skills/impeccable/scripts/live-accept.mjs +0 -595
- package/.agents/skills/impeccable/scripts/live-browser.js +0 -4781
- package/.agents/skills/impeccable/scripts/live-inject.mjs +0 -445
- package/.agents/skills/impeccable/scripts/live-poll.mjs +0 -186
- package/.agents/skills/impeccable/scripts/live-server.mjs +0 -694
- package/.agents/skills/impeccable/scripts/live-wrap.mjs +0 -571
- package/.agents/skills/impeccable/scripts/live.mjs +0 -247
- package/.agents/skills/impeccable/scripts/load-context.mjs +0 -141
- package/.agents/skills/impeccable/scripts/modern-screenshot.umd.js +0 -14
- package/.agents/skills/impeccable/scripts/pin.mjs +0 -214
- package/.agents/skills/init/SKILL.md +0 -140
- package/.agents/skills/liteparse/SKILL.md +0 -223
- package/.agents/skills/memory-systems/SKILL.md +0 -221
- package/.agents/skills/memory-systems/references/implementation.md +0 -551
- package/.agents/skills/memory-systems/scripts/memory_store.py +0 -616
- package/.agents/skills/multi-agent-patterns/SKILL.md +0 -259
- package/.agents/skills/multi-agent-patterns/references/frameworks.md +0 -433
- package/.agents/skills/multi-agent-patterns/scripts/coordination.py +0 -613
- package/.agents/skills/opentui/SKILL.md +0 -202
- package/.agents/skills/opentui/references/animation/REFERENCE.md +0 -431
- package/.agents/skills/opentui/references/components/REFERENCE.md +0 -144
- package/.agents/skills/opentui/references/components/code-diff.md +0 -672
- package/.agents/skills/opentui/references/components/containers.md +0 -417
- package/.agents/skills/opentui/references/components/inputs.md +0 -531
- package/.agents/skills/opentui/references/components/text-display.md +0 -386
- package/.agents/skills/opentui/references/core/REFERENCE.md +0 -145
- package/.agents/skills/opentui/references/core/api.md +0 -543
- package/.agents/skills/opentui/references/core/configuration.md +0 -168
- package/.agents/skills/opentui/references/core/gotchas.md +0 -393
- package/.agents/skills/opentui/references/core/patterns.md +0 -449
- package/.agents/skills/opentui/references/keyboard/REFERENCE.md +0 -617
- package/.agents/skills/opentui/references/layout/REFERENCE.md +0 -337
- package/.agents/skills/opentui/references/layout/patterns.md +0 -444
- package/.agents/skills/opentui/references/react/REFERENCE.md +0 -174
- package/.agents/skills/opentui/references/react/api.md +0 -436
- package/.agents/skills/opentui/references/react/configuration.md +0 -302
- package/.agents/skills/opentui/references/react/gotchas.md +0 -443
- package/.agents/skills/opentui/references/react/patterns.md +0 -501
- package/.agents/skills/opentui/references/solid/REFERENCE.md +0 -201
- package/.agents/skills/opentui/references/solid/api.md +0 -564
- package/.agents/skills/opentui/references/solid/configuration.md +0 -316
- package/.agents/skills/opentui/references/solid/gotchas.md +0 -427
- package/.agents/skills/opentui/references/solid/patterns.md +0 -560
- package/.agents/skills/opentui/references/testing/REFERENCE.md +0 -614
- package/.agents/skills/pdf/LICENSE.txt +0 -30
- package/.agents/skills/pdf/SKILL.md +0 -316
- package/.agents/skills/pdf/forms.md +0 -294
- package/.agents/skills/pdf/reference.md +0 -612
- package/.agents/skills/pdf/scripts/check_bounding_boxes.py +0 -65
- package/.agents/skills/pdf/scripts/check_fillable_fields.py +0 -11
- package/.agents/skills/pdf/scripts/convert_pdf_to_images.py +0 -33
- package/.agents/skills/pdf/scripts/create_validation_image.py +0 -37
- package/.agents/skills/pdf/scripts/extract_form_field_info.py +0 -122
- package/.agents/skills/pdf/scripts/extract_form_structure.py +0 -115
- package/.agents/skills/pdf/scripts/fill_fillable_fields.py +0 -98
- package/.agents/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -107
- package/.agents/skills/playwright-cli/SKILL.md +0 -390
- package/.agents/skills/playwright-cli/references/element-attributes.md +0 -23
- package/.agents/skills/playwright-cli/references/playwright-tests.md +0 -39
- package/.agents/skills/playwright-cli/references/request-mocking.md +0 -87
- package/.agents/skills/playwright-cli/references/running-code.md +0 -241
- package/.agents/skills/playwright-cli/references/session-management.md +0 -225
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +0 -305
- package/.agents/skills/playwright-cli/references/storage-state.md +0 -275
- package/.agents/skills/playwright-cli/references/test-generation.md +0 -134
- package/.agents/skills/playwright-cli/references/tracing.md +0 -139
- package/.agents/skills/playwright-cli/references/video-recording.md +0 -143
- package/.agents/skills/pptx/LICENSE.txt +0 -30
- package/.agents/skills/pptx/SKILL.md +0 -234
- package/.agents/skills/pptx/editing.md +0 -205
- package/.agents/skills/pptx/pptxgenjs.md +0 -420
- package/.agents/skills/pptx/scripts/__init__.py +0 -0
- package/.agents/skills/pptx/scripts/add_slide.py +0 -195
- package/.agents/skills/pptx/scripts/clean.py +0 -286
- package/.agents/skills/pptx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/pptx/scripts/office/helpers/merge_runs.py +0 -199
- package/.agents/skills/pptx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/.agents/skills/pptx/scripts/office/pack.py +0 -159
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/.agents/skills/pptx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/.agents/skills/pptx/scripts/office/soffice.py +0 -183
- package/.agents/skills/pptx/scripts/office/unpack.py +0 -132
- package/.agents/skills/pptx/scripts/office/validate.py +0 -111
- package/.agents/skills/pptx/scripts/office/validators/__init__.py +0 -15
- package/.agents/skills/pptx/scripts/office/validators/base.py +0 -847
- package/.agents/skills/pptx/scripts/office/validators/docx.py +0 -446
- package/.agents/skills/pptx/scripts/office/validators/pptx.py +0 -275
- package/.agents/skills/pptx/scripts/office/validators/redlining.py +0 -247
- package/.agents/skills/pptx/scripts/thumbnail.py +0 -289
- package/.agents/skills/project-development/SKILL.md +0 -293
- package/.agents/skills/project-development/references/case-studies.md +0 -388
- package/.agents/skills/project-development/references/pipeline-patterns.md +0 -610
- package/.agents/skills/project-development/scripts/pipeline_template.py +0 -796
- package/.agents/skills/prompt-engineer/SKILL.md +0 -265
- package/.agents/skills/prompt-engineer/references/advanced_patterns.md +0 -271
- package/.agents/skills/prompt-engineer/references/core_prompting.md +0 -137
- package/.agents/skills/prompt-engineer/references/quality_improvement.md +0 -193
- package/.agents/skills/research-codebase/SKILL.md +0 -229
- package/.agents/skills/ripgrep/SKILL.md +0 -384
- package/.agents/skills/skill-creator/LICENSE.txt +0 -202
- package/.agents/skills/skill-creator/SKILL.md +0 -487
- package/.agents/skills/skill-creator/agents/analyzer.md +0 -274
- package/.agents/skills/skill-creator/agents/comparator.md +0 -202
- package/.agents/skills/skill-creator/agents/grader.md +0 -223
- package/.agents/skills/skill-creator/assets/eval_review.html +0 -146
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/.agents/skills/skill-creator/references/schemas.md +0 -430
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/.agents/skills/skill-creator/scripts/generate_report.py +0 -326
- package/.agents/skills/skill-creator/scripts/improve_description.py +0 -247
- package/.agents/skills/skill-creator/scripts/package_skill.py +0 -136
- package/.agents/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/.agents/skills/skill-creator/scripts/run_eval.py +0 -310
- package/.agents/skills/skill-creator/scripts/run_loop.py +0 -328
- package/.agents/skills/skill-creator/scripts/utils.py +0 -47
- package/.agents/skills/sl-commit/SKILL.md +0 -53
- package/.agents/skills/sl-submit-diff/SKILL.md +0 -57
- package/.agents/skills/tdd/SKILL.md +0 -111
- package/.agents/skills/tdd/deep-modules.md +0 -33
- package/.agents/skills/tdd/interface-design.md +0 -31
- package/.agents/skills/tdd/mocking.md +0 -59
- package/.agents/skills/tdd/refactoring.md +0 -10
- package/.agents/skills/tdd/tests.md +0 -61
- package/.agents/skills/tool-design/SKILL.md +0 -273
- package/.agents/skills/tool-design/references/architectural_reduction.md +0 -210
- package/.agents/skills/tool-design/references/best_practices.md +0 -176
- package/.agents/skills/tool-design/scripts/description_generator.py +0 -528
- package/.agents/skills/typescript-advanced-types/SKILL.md +0 -720
- package/.agents/skills/typescript-expert/SKILL.md +0 -434
- package/.agents/skills/typescript-expert/references/tsconfig-strict.json +0 -92
- package/.agents/skills/typescript-expert/references/typescript-cheatsheet.md +0 -383
- package/.agents/skills/typescript-expert/references/utility-types.ts +0 -335
- package/.agents/skills/typescript-expert/scripts/ts_diagnostic.py +0 -203
- package/.agents/skills/typescript-react-reviewer/SKILL.md +0 -201
- package/.agents/skills/typescript-react-reviewer/references/antipatterns.md +0 -510
- package/.agents/skills/typescript-react-reviewer/references/checklist.md +0 -267
- package/.agents/skills/typescript-react-reviewer/references/react19-patterns.md +0 -305
- package/.agents/skills/workflow-creator/SKILL.md +0 -553
- package/.agents/skills/workflow-creator/references/agent-sessions.md +0 -891
- package/.agents/skills/workflow-creator/references/agent-setup-recipe.md +0 -266
- package/.agents/skills/workflow-creator/references/computation-and-validation.md +0 -201
- package/.agents/skills/workflow-creator/references/control-flow.md +0 -470
- package/.agents/skills/workflow-creator/references/failure-modes.md +0 -1014
- package/.agents/skills/workflow-creator/references/getting-started.md +0 -392
- package/.agents/skills/workflow-creator/references/registry-and-validation.md +0 -141
- package/.agents/skills/workflow-creator/references/running-workflows.md +0 -418
- package/.agents/skills/workflow-creator/references/session-config.md +0 -431
- package/.agents/skills/workflow-creator/references/state-and-data-flow.md +0 -356
- package/.agents/skills/workflow-creator/references/user-input.md +0 -234
- package/.agents/skills/workflow-creator/references/workflow-inputs.md +0 -392
- package/.agents/skills/xlsx/LICENSE.txt +0 -30
- package/.agents/skills/xlsx/SKILL.md +0 -294
- package/.agents/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/xlsx/scripts/office/helpers/merge_runs.py +0 -199
- package/.agents/skills/xlsx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/.agents/skills/xlsx/scripts/office/pack.py +0 -159
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/.agents/skills/xlsx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/.agents/skills/xlsx/scripts/office/soffice.py +0 -183
- package/.agents/skills/xlsx/scripts/office/unpack.py +0 -132
- package/.agents/skills/xlsx/scripts/office/validate.py +0 -111
- package/.agents/skills/xlsx/scripts/office/validators/__init__.py +0 -15
- package/.agents/skills/xlsx/scripts/office/validators/base.py +0 -847
- package/.agents/skills/xlsx/scripts/office/validators/docx.py +0 -446
- package/.agents/skills/xlsx/scripts/office/validators/pptx.py +0 -275
- package/.agents/skills/xlsx/scripts/office/validators/redlining.py +0 -247
- package/.agents/skills/xlsx/scripts/recalc.py +0 -184
- package/.claude/agents/code-simplifier.md +0 -52
- package/.claude/agents/codebase-analyzer.md +0 -166
- package/.claude/agents/codebase-locator.md +0 -122
- package/.claude/agents/codebase-online-researcher.md +0 -148
- package/.claude/agents/codebase-pattern-finder.md +0 -247
- package/.claude/agents/codebase-research-analyzer.md +0 -179
- package/.claude/agents/codebase-research-locator.md +0 -145
- package/.claude/agents/debugger.md +0 -91
- package/.claude/agents/orchestrator.md +0 -19
- package/.claude/agents/planner.md +0 -295
- package/.claude/agents/reviewer.md +0 -98
- package/.claude/agents/worker.md +0 -165
- package/.claude/settings.json +0 -27
- package/.github/agents/code-simplifier.md +0 -52
- package/.github/agents/codebase-analyzer.md +0 -166
- package/.github/agents/codebase-locator.md +0 -122
- package/.github/agents/codebase-online-researcher.md +0 -146
- package/.github/agents/codebase-pattern-finder.md +0 -247
- package/.github/agents/codebase-research-analyzer.md +0 -179
- package/.github/agents/codebase-research-locator.md +0 -145
- package/.github/agents/debugger.md +0 -98
- package/.github/agents/orchestrator.md +0 -27
- package/.github/agents/planner.md +0 -305
- package/.github/agents/reviewer.md +0 -95
- package/.github/agents/worker.md +0 -237
- package/.github/lsp.json +0 -93
- package/.mcp.json +0 -20
- package/.opencode/agents/code-simplifier.md +0 -62
- package/.opencode/agents/codebase-analyzer.md +0 -171
- package/.opencode/agents/codebase-locator.md +0 -127
- package/.opencode/agents/codebase-online-researcher.md +0 -152
- package/.opencode/agents/codebase-pattern-finder.md +0 -252
- package/.opencode/agents/codebase-research-analyzer.md +0 -183
- package/.opencode/agents/codebase-research-locator.md +0 -149
- package/.opencode/agents/debugger.md +0 -99
- package/.opencode/agents/orchestrator.md +0 -27
- package/.opencode/agents/planner.md +0 -309
- package/.opencode/agents/reviewer.md +0 -103
- package/.opencode/agents/worker.md +0 -165
- package/.opencode/opencode.json +0 -25
- package/README.md +0 -1624
- package/assets/settings.schema.json +0 -51
- package/dist/commands/cli/claude-inflight-hook.d.ts +0 -100
- package/dist/commands/cli/claude-inflight-hook.d.ts.map +0 -1
- package/dist/commands/cli/claude-stop-hook.d.ts +0 -80
- package/dist/commands/cli/claude-stop-hook.d.ts.map +0 -1
- package/dist/lib/atomic-temp.d.ts +0 -8
- package/dist/lib/atomic-temp.d.ts.map +0 -1
- package/dist/lib/path-root-guard.d.ts +0 -4
- package/dist/lib/path-root-guard.d.ts.map +0 -1
- package/dist/lib/spawn.d.ts +0 -102
- package/dist/lib/spawn.d.ts.map +0 -1
- package/dist/lib/terminal-env.d.ts +0 -9
- package/dist/lib/terminal-env.d.ts.map +0 -1
- package/dist/sdk/components/attached-statusline.d.ts +0 -26
- package/dist/sdk/components/attached-statusline.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 -16
- package/dist/sdk/components/connectors.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 -18
- 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/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 -52
- package/dist/sdk/components/orchestrator-panel-store.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 -86
- package/dist/sdk/components/orchestrator-panel.d.ts.map +0 -1
- package/dist/sdk/components/renderer-background.d.ts +0 -9
- package/dist/sdk/components/renderer-background.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 -5
- package/dist/sdk/components/statusline.d.ts.map +0 -1
- package/dist/sdk/components/tui-diagnostics.d.ts +0 -56
- package/dist/sdk/components/tui-diagnostics.d.ts.map +0 -1
- package/dist/sdk/components/workflow-picker-panel.d.ts +0 -126
- package/dist/sdk/components/workflow-picker-panel.d.ts.map +0 -1
- package/dist/sdk/define-workflow.d.ts +0 -107
- package/dist/sdk/define-workflow.d.ts.map +0 -1
- package/dist/sdk/errors.d.ts +0 -46
- package/dist/sdk/errors.d.ts.map +0 -1
- package/dist/sdk/index.d.ts +0 -26
- package/dist/sdk/index.d.ts.map +0 -1
- package/dist/sdk/primitives/inputs.d.ts +0 -36
- package/dist/sdk/primitives/inputs.d.ts.map +0 -1
- package/dist/sdk/primitives/metadata.d.ts +0 -40
- package/dist/sdk/primitives/metadata.d.ts.map +0 -1
- package/dist/sdk/primitives/run.d.ts +0 -57
- package/dist/sdk/primitives/run.d.ts.map +0 -1
- package/dist/sdk/primitives/sessions.d.ts +0 -128
- package/dist/sdk/primitives/sessions.d.ts.map +0 -1
- package/dist/sdk/providers/claude.d.ts +0 -392
- package/dist/sdk/providers/claude.d.ts.map +0 -1
- package/dist/sdk/providers/copilot.d.ts +0 -55
- package/dist/sdk/providers/copilot.d.ts.map +0 -1
- package/dist/sdk/providers/opencode.d.ts +0 -27
- package/dist/sdk/providers/opencode.d.ts.map +0 -1
- package/dist/sdk/registry.d.ts +0 -27
- package/dist/sdk/registry.d.ts.map +0 -1
- package/dist/sdk/runtime/attached-footer.d.ts +0 -31
- package/dist/sdk/runtime/attached-footer.d.ts.map +0 -1
- package/dist/sdk/runtime/cc-debounce.d.ts +0 -29
- package/dist/sdk/runtime/cc-debounce.d.ts.map +0 -1
- package/dist/sdk/runtime/executor-env.d.ts +0 -20
- package/dist/sdk/runtime/executor-env.d.ts.map +0 -1
- package/dist/sdk/runtime/executor.d.ts +0 -265
- package/dist/sdk/runtime/executor.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/orchestrator-entry.d.ts +0 -26
- package/dist/sdk/runtime/orchestrator-entry.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/port-discovery.d.ts +0 -71
- package/dist/sdk/runtime/port-discovery.d.ts.map +0 -1
- package/dist/sdk/runtime/status-writer.d.ts +0 -101
- package/dist/sdk/runtime/status-writer.d.ts.map +0 -1
- package/dist/sdk/runtime/theme.d.ts +0 -33
- package/dist/sdk/runtime/theme.d.ts.map +0 -1
- package/dist/sdk/runtime/tmux.d.ts +0 -307
- package/dist/sdk/runtime/tmux.d.ts.map +0 -1
- package/dist/sdk/runtime/version-compat.d.ts +0 -28
- package/dist/sdk/runtime/version-compat.d.ts.map +0 -1
- package/dist/sdk/types.d.ts +0 -435
- package/dist/sdk/types.d.ts.map +0 -1
- package/dist/sdk/worker-shared.d.ts +0 -42
- package/dist/sdk/worker-shared.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts +0 -81
- 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 -37
- package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/batching.d.ts +0 -43
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/batching.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts +0 -14
- 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 -136
- 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 -58
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scratch.d.ts +0 -43
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scratch.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts +0 -37
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/claude/index.d.ts +0 -68
- package/dist/sdk/workflows/builtin/open-claude-design/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/copilot/index.d.ts +0 -56
- package/dist/sdk/workflows/builtin/open-claude-design/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/constants.d.ts +0 -72
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/constants.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/design-system.d.ts +0 -46
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/design-system.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/export.d.ts +0 -32
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/export.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/import.d.ts +0 -33
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/import.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/prompts.d.ts +0 -106
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/scan.d.ts +0 -50
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/scan.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/validation.d.ts +0 -12
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/validation.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts +0 -58
- package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts +0 -37
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts +0 -34
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/copilot-reviewer.d.ts +0 -25
- package/dist/sdk/workflows/builtin/ralph/helpers/copilot-reviewer.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts +0 -69
- package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +0 -266
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts +0 -24
- package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts +0 -33
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/index.d.ts +0 -32
- package/dist/sdk/workflows/index.d.ts.map +0 -1
- package/dist/services/config/additional-instructions.d.ts +0 -67
- package/dist/services/config/additional-instructions.d.ts.map +0 -1
- package/dist/services/config/atomic-config.d.ts +0 -42
- package/dist/services/config/atomic-config.d.ts.map +0 -1
- package/dist/services/config/definitions.d.ts +0 -52
- package/dist/services/config/definitions.d.ts.map +0 -1
- package/dist/services/config/index.d.ts +0 -7
- package/dist/services/config/index.d.ts.map +0 -1
- package/dist/services/config/scm-sync.d.ts +0 -37
- package/dist/services/config/scm-sync.d.ts.map +0 -1
- package/dist/services/config/settings-schema.d.ts +0 -2
- package/dist/services/config/settings-schema.d.ts.map +0 -1
- package/dist/services/system/copy.d.ts +0 -84
- 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/dist/theme/colors.d.ts +0 -35
- package/dist/theme/colors.d.ts.map +0 -1
- package/src/cli.ts +0 -397
- package/src/commands/builtin-registry.ts +0 -37
- package/src/commands/cli/chat/index.test.ts +0 -252
- package/src/commands/cli/chat/index.ts +0 -430
- package/src/commands/cli/chat.ts +0 -8
- package/src/commands/cli/claude-ask-hook.test.ts +0 -128
- package/src/commands/cli/claude-ask-hook.ts +0 -84
- package/src/commands/cli/claude-inflight-hook.test.ts +0 -598
- package/src/commands/cli/claude-inflight-hook.ts +0 -359
- package/src/commands/cli/claude-session-start-hook.ts +0 -61
- package/src/commands/cli/claude-stop-hook.test.ts +0 -317
- package/src/commands/cli/claude-stop-hook.ts +0 -441
- package/src/commands/cli/completions.ts +0 -24
- package/src/commands/cli/config.ts +0 -80
- package/src/commands/cli/footer.tsx +0 -248
- package/src/commands/cli/init/index.ts +0 -41
- package/src/commands/cli/init/onboarding.ts +0 -61
- package/src/commands/cli/init.ts +0 -8
- package/src/commands/cli/management-commands.ts +0 -112
- package/src/commands/cli/session.test.ts +0 -830
- package/src/commands/cli/session.ts +0 -447
- package/src/commands/cli/workflow-command.test.ts +0 -618
- package/src/commands/cli/workflow-inputs.test.ts +0 -353
- package/src/commands/cli/workflow-inputs.ts +0 -266
- package/src/commands/cli/workflow-list.test.ts +0 -235
- package/src/commands/cli/workflow-list.ts +0 -0
- package/src/commands/cli/workflow-status.test.ts +0 -451
- package/src/commands/cli/workflow-status.ts +0 -330
- package/src/commands/cli/workflow.ts +0 -196
- package/src/completions/bash.ts +0 -102
- package/src/completions/fish.ts +0 -136
- package/src/completions/index.ts +0 -7
- package/src/completions/powershell.ts +0 -195
- package/src/completions/zsh.ts +0 -150
- package/src/lib/atomic-temp.test.ts +0 -86
- package/src/lib/atomic-temp.ts +0 -62
- package/src/lib/common-ignore.ts +0 -46
- package/src/lib/merge.ts +0 -103
- package/src/lib/path-root-guard.ts +0 -38
- package/src/lib/spawn.test.ts +0 -109
- package/src/lib/spawn.ts +0 -678
- package/src/lib/terminal-env.test.ts +0 -343
- package/src/lib/terminal-env.ts +0 -100
- package/src/scripts/bump-version.ts +0 -94
- package/src/scripts/bundle-configs.ts +0 -116
- package/src/scripts/clean-dist.test.ts +0 -53
- package/src/scripts/clean-dist.ts +0 -37
- package/src/scripts/constants-base.ts +0 -14
- package/src/scripts/constants.ts +0 -35
- package/src/sdk/components/attached-statusline.tsx +0 -86
- package/src/sdk/components/color-utils.ts +0 -20
- package/src/sdk/components/compact-switcher.tsx +0 -78
- package/src/sdk/components/connectors.test.ts +0 -707
- package/src/sdk/components/connectors.ts +0 -160
- package/src/sdk/components/edge.tsx +0 -13
- package/src/sdk/components/error-boundary.tsx +0 -38
- package/src/sdk/components/graph-theme.ts +0 -37
- package/src/sdk/components/header.tsx +0 -85
- package/src/sdk/components/hooks.ts +0 -21
- package/src/sdk/components/layout.test.ts +0 -1245
- package/src/sdk/components/layout.ts +0 -223
- package/src/sdk/components/node-card.tsx +0 -91
- package/src/sdk/components/orchestrator-panel-contexts.ts +0 -35
- package/src/sdk/components/orchestrator-panel-store.test.ts +0 -847
- package/src/sdk/components/orchestrator-panel-store.ts +0 -187
- package/src/sdk/components/orchestrator-panel-types.ts +0 -23
- package/src/sdk/components/orchestrator-panel.tsx +0 -262
- package/src/sdk/components/renderer-background.ts +0 -49
- package/src/sdk/components/session-graph-panel.tsx +0 -471
- package/src/sdk/components/status-helpers.ts +0 -33
- package/src/sdk/components/statusline.tsx +0 -68
- package/src/sdk/components/tui-diagnostics.ts +0 -273
- package/src/sdk/components/workflow-picker-panel.tsx +0 -1613
- package/src/sdk/define-workflow.test.ts +0 -354
- package/src/sdk/define-workflow.ts +0 -275
- package/src/sdk/errors.test.ts +0 -83
- package/src/sdk/errors.ts +0 -77
- package/src/sdk/index.test.ts +0 -92
- package/src/sdk/index.ts +0 -101
- package/src/sdk/primitives/inputs.ts +0 -48
- package/src/sdk/primitives/metadata.ts +0 -63
- package/src/sdk/primitives/run.ts +0 -81
- package/src/sdk/primitives/sessions.test.ts +0 -594
- package/src/sdk/primitives/sessions.ts +0 -328
- package/src/sdk/providers/claude.ts +0 -1450
- package/src/sdk/providers/copilot.test.ts +0 -365
- package/src/sdk/providers/copilot.ts +0 -185
- package/src/sdk/providers/headless-hil-policy.test.ts +0 -211
- package/src/sdk/providers/opencode.ts +0 -88
- package/src/sdk/registry.ts +0 -132
- package/src/sdk/runtime/attached-footer.ts +0 -155
- package/src/sdk/runtime/cc-debounce.ts +0 -104
- package/src/sdk/runtime/executor-env.ts +0 -45
- package/src/sdk/runtime/executor.test.ts +0 -1321
- package/src/sdk/runtime/executor.ts +0 -2136
- package/src/sdk/runtime/graph-inference.ts +0 -50
- package/src/sdk/runtime/orchestrator-entry.ts +0 -110
- package/src/sdk/runtime/panel.tsx +0 -9
- package/src/sdk/runtime/port-discovery.test.ts +0 -573
- package/src/sdk/runtime/port-discovery.ts +0 -496
- package/src/sdk/runtime/status-writer.test.ts +0 -245
- package/src/sdk/runtime/status-writer.ts +0 -201
- package/src/sdk/runtime/theme.ts +0 -71
- package/src/sdk/runtime/tmux.conf +0 -112
- package/src/sdk/runtime/tmux.ts +0 -785
- package/src/sdk/runtime/version-compat.ts +0 -68
- package/src/sdk/types.ts +0 -548
- package/src/sdk/worker-shared.test.ts +0 -163
- package/src/sdk/worker-shared.ts +0 -155
- package/src/sdk/workflows/builtin/deep-research-codebase/claude/index.ts +0 -569
- package/src/sdk/workflows/builtin/deep-research-codebase/copilot/index.ts +0 -481
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/batching.ts +0 -65
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.ts +0 -24
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/ignore-by-default.d.ts +0 -8
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.ts +0 -958
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/scout.ts +0 -505
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/scratch.ts +0 -115
- package/src/sdk/workflows/builtin/deep-research-codebase/opencode/index.ts +0 -530
- package/src/sdk/workflows/builtin/open-claude-design/claude/index.ts +0 -500
- package/src/sdk/workflows/builtin/open-claude-design/copilot/index.ts +0 -508
- package/src/sdk/workflows/builtin/open-claude-design/helpers/constants.ts +0 -159
- package/src/sdk/workflows/builtin/open-claude-design/helpers/design-system.ts +0 -88
- package/src/sdk/workflows/builtin/open-claude-design/helpers/export.ts +0 -193
- package/src/sdk/workflows/builtin/open-claude-design/helpers/import.ts +0 -52
- package/src/sdk/workflows/builtin/open-claude-design/helpers/prompts.ts +0 -1110
- package/src/sdk/workflows/builtin/open-claude-design/helpers/scan.ts +0 -117
- package/src/sdk/workflows/builtin/open-claude-design/helpers/validation.ts +0 -38
- package/src/sdk/workflows/builtin/open-claude-design/opencode/index.ts +0 -610
- package/src/sdk/workflows/builtin/ralph/claude/index.ts +0 -272
- package/src/sdk/workflows/builtin/ralph/copilot/index.ts +0 -298
- package/src/sdk/workflows/builtin/ralph/helpers/copilot-reviewer.ts +0 -105
- package/src/sdk/workflows/builtin/ralph/helpers/git.ts +0 -201
- package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +0 -1108
- package/src/sdk/workflows/builtin/ralph/helpers/review.ts +0 -33
- package/src/sdk/workflows/builtin/ralph/opencode/index.ts +0 -290
- package/src/sdk/workflows/index.ts +0 -116
- package/src/services/config/additional-instructions.ts +0 -273
- package/src/services/config/atomic-config.ts +0 -210
- package/src/services/config/atomic-global-config.ts +0 -348
- package/src/services/config/config-path.ts +0 -19
- package/src/services/config/definitions.ts +0 -125
- package/src/services/config/index.ts +0 -7
- package/src/services/config/scm-sync.ts +0 -185
- package/src/services/config/settings-schema.ts +0 -2
- package/src/services/config/settings.ts +0 -144
- package/src/services/system/agents.ts +0 -95
- package/src/services/system/auth.test.ts +0 -343
- package/src/services/system/auth.ts +0 -140
- package/src/services/system/auto-sync.ts +0 -128
- package/src/services/system/copy.ts +0 -392
- package/src/services/system/detect.ts +0 -161
- package/src/services/system/file-lock.ts +0 -289
- package/src/services/system/install-ui.ts +0 -296
- package/src/services/system/skills.ts +0 -58
- package/src/theme/colors.ts +0 -96
- package/src/theme/logo.ts +0 -123
- package/src/version.ts +0 -7
|
@@ -1,505 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codebase scout: deterministic helpers for the deep-research-codebase workflow.
|
|
3
|
-
*
|
|
4
|
-
* Responsibilities:
|
|
5
|
-
* 1. Discover the codebase root (git toplevel, falling back to cwd).
|
|
6
|
-
* 2. List all source files, honoring `.gitignore` via git ls-files in repos
|
|
7
|
-
* and via `rg --files` in non-repo directories that still have one.
|
|
8
|
-
* 3. Count lines of code per file using batched `wc -l`.
|
|
9
|
-
* 4. Render a compact directory tree (depth-bounded) for prompt context.
|
|
10
|
-
* 5. Build "partition units" by aggregating LOC at depth-1, then drilling
|
|
11
|
-
* down on any unit that is too large to live in a single explorer.
|
|
12
|
-
* 6. Bin-pack partition units into N balanced groups (largest-first).
|
|
13
|
-
*
|
|
14
|
-
* Everything here is pure TypeScript + child_process — no LLM calls.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
// Use Bun.spawnSync instead of node:child_process for consistency with the rest of the codebase.
|
|
18
|
-
|
|
19
|
-
import * as linguistLanguages from "linguist-languages";
|
|
20
|
-
import type { Language } from "linguist-languages";
|
|
21
|
-
import ignore, { type Ignore } from "ignore";
|
|
22
|
-
import ignoreByDefault from "ignore-by-default";
|
|
23
|
-
import { readdirSync, readFileSync } from "node:fs";
|
|
24
|
-
import { join, posix as posixPath, relative, sep } from "node:path";
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Source-file extensions we treat as "code" for LOC accounting.
|
|
28
|
-
*
|
|
29
|
-
* Derived from GitHub Linguist (`linguist-languages`), filtered to
|
|
30
|
-
* `type === "programming"`. Linguist tracks 500+ programming languages and
|
|
31
|
-
* keeps the canonical extension list per language up to date — using it
|
|
32
|
-
* removes a maintenance burden and picks up obscure-but-legitimate
|
|
33
|
-
* languages we'd never enumerate by hand.
|
|
34
|
-
*
|
|
35
|
-
* Three modifications layered on top of the raw linguist data:
|
|
36
|
-
*
|
|
37
|
-
* 1. **Multi-segment extensions are skipped.** Linguist lists entries like
|
|
38
|
-
* `.coffee.md` (Literate CoffeeScript) and `.gradle.kts` (Gradle Kotlin
|
|
39
|
-
* DSL). Our `isCodeFile()` only sees the tail after the final dot, so
|
|
40
|
-
* collapsing `.coffee.md` to `md` would mis-classify Markdown as code.
|
|
41
|
-
* Skipping them is safe because the base languages they extend always
|
|
42
|
-
* list a single-segment extension as well (`.coffee`, `.kts`).
|
|
43
|
-
* 2. **EXCLUDE_EXTENSIONS denylist.** A handful of single-segment
|
|
44
|
-
* extensions that programming-typed languages claim but which in
|
|
45
|
-
* practice almost always mean a non-code file (`.md` is claimed by
|
|
46
|
-
* GCC Machine Description but means Markdown 99.9% of the time).
|
|
47
|
-
* 3. **SCHEMA_EXTENSIONS allowlist.** Schemas/DSLs that linguist
|
|
48
|
-
* categorises as `type: "data"` but which materially shape codebase
|
|
49
|
-
* behaviour and belong in research scope.
|
|
50
|
-
*/
|
|
51
|
-
const SCHEMA_EXTENSIONS = ["sql", "graphql", "proto"] as const;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Single-segment extensions that linguist's `programming`-typed languages
|
|
55
|
-
* claim but which in real-world codebases almost always mean a non-code
|
|
56
|
-
* file. Each entry needs a one-line justification.
|
|
57
|
-
*/
|
|
58
|
-
const EXCLUDE_EXTENSIONS = new Set<string>([
|
|
59
|
-
"md", // claimed by "GCC Machine Description"; almost always Markdown.
|
|
60
|
-
]);
|
|
61
|
-
|
|
62
|
-
const CODE_EXTENSIONS: Set<string> = (() => {
|
|
63
|
-
const out = new Set<string>();
|
|
64
|
-
// Each named export of `linguist-languages` is a `Language`; the namespace
|
|
65
|
-
// import has no other shape, so casting `Object.values(...)` to `Language[]`
|
|
66
|
-
// is sound and removes the need for an `unknown` intermediary.
|
|
67
|
-
for (const lang of Object.values(linguistLanguages) as Language[]) {
|
|
68
|
-
if (lang.type !== "programming") continue;
|
|
69
|
-
for (const ext of lang.extensions ?? []) {
|
|
70
|
-
const cleaned = ext.replace(/^\./, "").toLowerCase();
|
|
71
|
-
// Skip multi-segment extensions — see file-level comment.
|
|
72
|
-
if (cleaned.includes(".")) continue;
|
|
73
|
-
if (EXCLUDE_EXTENSIONS.has(cleaned)) continue;
|
|
74
|
-
out.add(cleaned);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
for (const ext of SCHEMA_EXTENSIONS) out.add(ext);
|
|
78
|
-
return out;
|
|
79
|
-
})();
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Recursively walk a directory tree, honoring nested `.gitignore` files at
|
|
83
|
-
* every level and seeding with `ignore-by-default`'s minimal universal set
|
|
84
|
-
* (`node_modules`, `.git`, `coverage`, etc.). Returns repo-relative paths.
|
|
85
|
-
*
|
|
86
|
-
* Used as the last-resort discovery fallback when neither `git ls-files` nor
|
|
87
|
-
* `rg --files` is available. The walker matches `.gitignore` semantics:
|
|
88
|
-
* • Patterns from a `.gitignore` only apply to files at or below the
|
|
89
|
-
* `.gitignore`'s directory.
|
|
90
|
-
* • Inherited rules from ancestor directories continue to apply.
|
|
91
|
-
* • Negations and the rest of gitignore syntax come from the `ignore`
|
|
92
|
-
* package, which is the de facto JS implementation.
|
|
93
|
-
*
|
|
94
|
-
* Symlinks are intentionally not followed (avoids cycles).
|
|
95
|
-
*/
|
|
96
|
-
function walkWithIgnore(root: string): string[] {
|
|
97
|
-
const out: string[] = [];
|
|
98
|
-
|
|
99
|
-
const baseline: Ignore = ignore().add(ignoreByDefault.directories());
|
|
100
|
-
walk(root, [{ basePath: "", matcher: baseline }]);
|
|
101
|
-
|
|
102
|
-
function walk(
|
|
103
|
-
dir: string,
|
|
104
|
-
inheritedScopes: ReadonlyArray<{ basePath: string; matcher: Ignore }>,
|
|
105
|
-
): void {
|
|
106
|
-
let scopes = inheritedScopes;
|
|
107
|
-
try {
|
|
108
|
-
const content = readFileSync(join(dir, ".gitignore"), "utf8");
|
|
109
|
-
const here = ignore().add(content);
|
|
110
|
-
// Normalize basePath to posix so it can be combined with `posix`
|
|
111
|
-
// (forward-slash) entry paths via `posix.relative` below — mixing
|
|
112
|
-
// separators in `path.relative` is undefined behaviour on Windows.
|
|
113
|
-
const basePathRel = relative(root, dir);
|
|
114
|
-
const basePath =
|
|
115
|
-
sep === "/" ? basePathRel : basePathRel.split(sep).join("/");
|
|
116
|
-
scopes = [
|
|
117
|
-
...inheritedScopes,
|
|
118
|
-
{ basePath, matcher: here },
|
|
119
|
-
];
|
|
120
|
-
} catch {
|
|
121
|
-
// No .gitignore at this level — keep inherited scopes.
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
let entries;
|
|
125
|
-
try {
|
|
126
|
-
entries = readdirSync(dir, { withFileTypes: true });
|
|
127
|
-
} catch {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
for (const entry of entries) {
|
|
132
|
-
// Skip everything that isn't a regular file or a regular directory —
|
|
133
|
-
// most importantly, skip symlinks so we don't follow cycles.
|
|
134
|
-
if (!entry.isFile() && !entry.isDirectory()) continue;
|
|
135
|
-
|
|
136
|
-
const full = join(dir, entry.name);
|
|
137
|
-
const rel = relative(root, full);
|
|
138
|
-
// The `ignore` package requires forward-slash paths.
|
|
139
|
-
const posix = sep === "/" ? rel : rel.split(sep).join("/");
|
|
140
|
-
// Trailing slash so directory-only patterns (`dist/`) match.
|
|
141
|
-
const probe = entry.isDirectory() ? `${posix}/` : posix;
|
|
142
|
-
|
|
143
|
-
let ignored = false;
|
|
144
|
-
for (const scope of scopes) {
|
|
145
|
-
const within =
|
|
146
|
-
scope.basePath === ""
|
|
147
|
-
? probe
|
|
148
|
-
: posixPath.relative(scope.basePath, posix) +
|
|
149
|
-
(entry.isDirectory() ? "/" : "");
|
|
150
|
-
// If `within` escapes the scope (starts with `..`), the file isn't
|
|
151
|
-
// under this .gitignore's reach — skip the check.
|
|
152
|
-
if (within.startsWith("..")) continue;
|
|
153
|
-
if (scope.matcher.ignores(within)) {
|
|
154
|
-
ignored = true;
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (ignored) continue;
|
|
159
|
-
|
|
160
|
-
if (entry.isDirectory()) {
|
|
161
|
-
walk(full, scopes);
|
|
162
|
-
} else {
|
|
163
|
-
out.push(rel);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return out;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/** Per-file LOC + path. */
|
|
172
|
-
export type FileStats = { path: string; loc: number };
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* A "partition unit" is the atomic chunk of work that gets bin-packed into
|
|
176
|
-
* an explorer. It is always one directory (possibly drilled down to depth 2)
|
|
177
|
-
* with all of the code files that live anywhere underneath it.
|
|
178
|
-
*/
|
|
179
|
-
export type PartitionUnit = {
|
|
180
|
-
/** Repo-relative path, e.g. "src/cli" or "packages/foo/src". */
|
|
181
|
-
path: string;
|
|
182
|
-
loc: number;
|
|
183
|
-
fileCount: number;
|
|
184
|
-
/** Repo-relative file paths inside this unit (full recursive listing). */
|
|
185
|
-
files: string[];
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
export type CodebaseScout = {
|
|
189
|
-
/** Absolute path to the repository root. */
|
|
190
|
-
root: string;
|
|
191
|
-
totalLoc: number;
|
|
192
|
-
totalFiles: number;
|
|
193
|
-
/** Compact rendered directory tree (depth-bounded) for prompt context. */
|
|
194
|
-
tree: string;
|
|
195
|
-
/** Partition units, sorted by LOC descending. */
|
|
196
|
-
units: PartitionUnit[];
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
/** Resolve the project root. Prefers `git rev-parse --show-toplevel`. */
|
|
200
|
-
export function getCodebaseRoot(): string {
|
|
201
|
-
// Bun.spawnSync throws (rather than returning success:false) when the
|
|
202
|
-
// executable is missing from PATH — wrap so the documented "falls back to
|
|
203
|
-
// cwd" contract holds even on machines without git installed.
|
|
204
|
-
try {
|
|
205
|
-
const r = Bun.spawnSync({
|
|
206
|
-
cmd: ["git", "rev-parse", "--show-toplevel"],
|
|
207
|
-
stdout: "pipe",
|
|
208
|
-
stderr: "pipe",
|
|
209
|
-
});
|
|
210
|
-
if (r.success && r.stdout) {
|
|
211
|
-
return r.stdout.toString().trim();
|
|
212
|
-
}
|
|
213
|
-
} catch { /* git not on PATH — fall back to cwd */ }
|
|
214
|
-
return process.cwd();
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
function isCodeFile(p: string): boolean {
|
|
218
|
-
const dot = p.lastIndexOf(".");
|
|
219
|
-
if (dot < 0 || dot === p.length - 1) return false;
|
|
220
|
-
const ext = p.slice(dot + 1).toLowerCase();
|
|
221
|
-
return CODE_EXTENSIONS.has(ext);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* List all files in the repository, honoring `.gitignore` whenever possible.
|
|
226
|
-
*
|
|
227
|
-
* Three discovery paths, tried in order — every path respects `.gitignore`:
|
|
228
|
-
*
|
|
229
|
-
* 1. **git ls-files** — for git repos. Combines `--cached` (tracked) with
|
|
230
|
-
* `--others --exclude-standard` (untracked-but-not-ignored) so a freshly
|
|
231
|
-
* created file the user hasn't `git add`-ed yet still appears, while
|
|
232
|
-
* anything matching `.gitignore` / `.git/info/exclude` is excluded.
|
|
233
|
-
* 2. **ripgrep `rg --files --hidden`** — for non-git directories that still
|
|
234
|
-
* have a `.gitignore` (or `.ignore`). `rg` honors both without needing
|
|
235
|
-
* a repo, and always excludes `.git/`. `--hidden` keeps tracked dotfiles
|
|
236
|
-
* like `.github/`, `.claude/` visible (matching git's behavior).
|
|
237
|
-
* 3. **In-process walker** — last-resort fallback when neither git nor rg
|
|
238
|
-
* is available. Uses the `ignore` package to honor every `.gitignore`
|
|
239
|
-
* it encounters (including nested ones), seeded with `ignore-by-default`
|
|
240
|
-
* for the universal-ignore baseline (`node_modules`, `.git`, etc.).
|
|
241
|
-
*/
|
|
242
|
-
function listAllFiles(root: string): string[] {
|
|
243
|
-
// Bun.spawnSync throws (rather than returning success:false) when the
|
|
244
|
-
// executable is missing from PATH, so each branch is wrapped in try/catch
|
|
245
|
-
// and falls through to the next discovery strategy on error.
|
|
246
|
-
try {
|
|
247
|
-
const git = Bun.spawnSync({
|
|
248
|
-
cmd: ["git", "ls-files", "--cached", "--others", "--exclude-standard"],
|
|
249
|
-
cwd: root,
|
|
250
|
-
stdout: "pipe",
|
|
251
|
-
stderr: "pipe",
|
|
252
|
-
});
|
|
253
|
-
if (git.success && git.stdout) {
|
|
254
|
-
return git.stdout.toString().split("\n").filter((l) => l.length > 0);
|
|
255
|
-
}
|
|
256
|
-
} catch { /* git not on PATH — fall through to rg */ }
|
|
257
|
-
|
|
258
|
-
try {
|
|
259
|
-
const rg = Bun.spawnSync({
|
|
260
|
-
cmd: ["rg", "--files", "--hidden"],
|
|
261
|
-
cwd: root,
|
|
262
|
-
stdout: "pipe",
|
|
263
|
-
stderr: "pipe",
|
|
264
|
-
});
|
|
265
|
-
if (rg.success && rg.stdout) {
|
|
266
|
-
return rg.stdout.toString().split("\n").filter((l) => l.length > 0);
|
|
267
|
-
}
|
|
268
|
-
} catch { /* rg not on PATH — fall through to in-process walker */ }
|
|
269
|
-
|
|
270
|
-
return walkWithIgnore(root);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Count lines for a batch of files using `wc -l`. Output format:
|
|
275
|
-
* " N filename"
|
|
276
|
-
* " N total" (when more than one file is passed)
|
|
277
|
-
*
|
|
278
|
-
* We batch to avoid command-line length limits. When `wc` is missing from
|
|
279
|
-
* PATH (typical on Windows) `Bun.spawnSync` throws ENOENT — each batch is
|
|
280
|
-
* wrapped so we can fall back to an in-process newline counter rather than
|
|
281
|
-
* aborting the workflow or silently zeroing every file's LOC (which would
|
|
282
|
-
* collapse the partition bin-packer).
|
|
283
|
-
*/
|
|
284
|
-
function countLines(root: string, files: string[]): Map<string, number> {
|
|
285
|
-
const result = new Map<string, number>();
|
|
286
|
-
if (files.length === 0) return result;
|
|
287
|
-
|
|
288
|
-
const BATCH = 200;
|
|
289
|
-
for (let i = 0; i < files.length; i += BATCH) {
|
|
290
|
-
const batch = files.slice(i, i + BATCH);
|
|
291
|
-
let wcOk = false;
|
|
292
|
-
try {
|
|
293
|
-
const r = Bun.spawnSync({
|
|
294
|
-
cmd: ["wc", "-l", "--", ...batch],
|
|
295
|
-
cwd: root,
|
|
296
|
-
stdout: "pipe",
|
|
297
|
-
stderr: "pipe",
|
|
298
|
-
});
|
|
299
|
-
if (r.stdout) {
|
|
300
|
-
wcOk = true;
|
|
301
|
-
for (const line of r.stdout.toString().split("\n")) {
|
|
302
|
-
const m = line.match(/^\s*(\d+)\s+(.+)$/);
|
|
303
|
-
// Regex groups are typed `string | undefined` under strict mode even
|
|
304
|
-
// when the whole match succeeded — guard explicitly.
|
|
305
|
-
const countStr = m?.[1];
|
|
306
|
-
const filename = m?.[2]?.trim();
|
|
307
|
-
if (countStr === undefined || filename === undefined) continue;
|
|
308
|
-
if (filename === "total") continue;
|
|
309
|
-
result.set(filename, parseInt(countStr, 10));
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
} catch { /* wc not on PATH — fall through to in-process counter */ }
|
|
313
|
-
if (wcOk) continue;
|
|
314
|
-
// In-process fallback: count newline bytes. Matches `wc -l` semantics
|
|
315
|
-
// (a final line without a trailing `\n` is not counted).
|
|
316
|
-
for (const f of batch) {
|
|
317
|
-
try {
|
|
318
|
-
const content = readFileSync(join(root, f), "utf8");
|
|
319
|
-
let count = 0;
|
|
320
|
-
for (let j = 0; j < content.length; j++) {
|
|
321
|
-
if (content.charCodeAt(j) === 10) count++;
|
|
322
|
-
}
|
|
323
|
-
result.set(f, count);
|
|
324
|
-
} catch { /* unreadable — leave unset; consumer treats as 0 */ }
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
return result;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/** Group file stats by directory at the given depth (1-indexed). */
|
|
331
|
-
function aggregateAtDepth(files: FileStats[], depth: number): PartitionUnit[] {
|
|
332
|
-
const map = new Map<string, PartitionUnit>();
|
|
333
|
-
for (const f of files) {
|
|
334
|
-
const parts = f.path.split("/");
|
|
335
|
-
const key = parts.length >= depth
|
|
336
|
-
? parts.slice(0, depth).join("/")
|
|
337
|
-
: (parts.slice(0, parts.length - 1).join("/") || "(root)");
|
|
338
|
-
let cur = map.get(key);
|
|
339
|
-
if (!cur) {
|
|
340
|
-
cur = { path: key, loc: 0, fileCount: 0, files: [] };
|
|
341
|
-
map.set(key, cur);
|
|
342
|
-
}
|
|
343
|
-
cur.loc += f.loc;
|
|
344
|
-
cur.fileCount += 1;
|
|
345
|
-
cur.files.push(f.path);
|
|
346
|
-
}
|
|
347
|
-
return [...map.values()];
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
/**
|
|
351
|
-
* Build candidate partition units. Starts at depth 1 and drills down on any
|
|
352
|
-
* unit that is too large (> 20% of total LOC) to balance partitions better.
|
|
353
|
-
* A single drill-down pass is enough for typical codebases — we deliberately
|
|
354
|
-
* do not recurse to keep behavior predictable.
|
|
355
|
-
*/
|
|
356
|
-
function buildPartitionUnits(files: FileStats[]): PartitionUnit[] {
|
|
357
|
-
if (files.length === 0) return [];
|
|
358
|
-
|
|
359
|
-
const totalLoc = files.reduce((s, f) => s + f.loc, 0);
|
|
360
|
-
const drillThreshold = Math.max(Math.floor(totalLoc * 0.2), 1);
|
|
361
|
-
|
|
362
|
-
const units = aggregateAtDepth(files, 1);
|
|
363
|
-
|
|
364
|
-
// Drill down on oversized units (single pass).
|
|
365
|
-
for (let i = 0; i < units.length; i++) {
|
|
366
|
-
const unit = units[i];
|
|
367
|
-
// noUncheckedIndexedAccess makes units[i] possibly undefined; we know
|
|
368
|
-
// it's defined because i < units.length, but TS can't prove that.
|
|
369
|
-
if (unit === undefined) continue;
|
|
370
|
-
if (unit.loc <= drillThreshold) continue;
|
|
371
|
-
const subFiles = files.filter((f) =>
|
|
372
|
-
f.path === unit.path || f.path.startsWith(unit.path + "/"),
|
|
373
|
-
);
|
|
374
|
-
const subUnits = aggregateAtDepth(subFiles, 2);
|
|
375
|
-
if (subUnits.length > 1) {
|
|
376
|
-
units.splice(i, 1, ...subUnits);
|
|
377
|
-
i += subUnits.length - 1;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
return units.sort((a, b) => b.loc - a.loc);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* Render a compact, depth-bounded ASCII tree of the codebase. Used as prompt
|
|
386
|
-
* context for the scout's architectural-overview LLM call.
|
|
387
|
-
*
|
|
388
|
-
* - `maxDepth`: how many directory levels to descend before stopping.
|
|
389
|
-
* - `maxLines`: hard cap on output lines; we append "└── ..." if exceeded.
|
|
390
|
-
*
|
|
391
|
-
* Only directories show recursive file counts; leaf files appear as bare names.
|
|
392
|
-
*/
|
|
393
|
-
function renderTree(files: string[], maxDepth = 3, maxLines = 200): string {
|
|
394
|
-
type Node = { children: Map<string, Node>; isFile: boolean; fileCount: number };
|
|
395
|
-
const root: Node = { children: new Map(), isFile: false, fileCount: 0 };
|
|
396
|
-
|
|
397
|
-
for (const file of files) {
|
|
398
|
-
const parts = file.split("/");
|
|
399
|
-
let cur = root;
|
|
400
|
-
cur.fileCount += 1;
|
|
401
|
-
for (let i = 0; i < parts.length && i < maxDepth; i++) {
|
|
402
|
-
const part = parts[i];
|
|
403
|
-
if (part === undefined) continue; // unreachable in practice
|
|
404
|
-
let child = cur.children.get(part);
|
|
405
|
-
if (!child) {
|
|
406
|
-
child = { children: new Map(), isFile: false, fileCount: 0 };
|
|
407
|
-
cur.children.set(part, child);
|
|
408
|
-
}
|
|
409
|
-
child.fileCount += 1;
|
|
410
|
-
cur = child;
|
|
411
|
-
if (i === parts.length - 1) cur.isFile = true;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
const lines: string[] = [];
|
|
416
|
-
let truncated = false;
|
|
417
|
-
|
|
418
|
-
function walk(node: Node, prefix: string): void {
|
|
419
|
-
if (truncated) return;
|
|
420
|
-
const entries = [...node.children.entries()].sort((a, b) => {
|
|
421
|
-
const aIsDir = a[1].children.size > 0;
|
|
422
|
-
const bIsDir = b[1].children.size > 0;
|
|
423
|
-
if (aIsDir !== bIsDir) return aIsDir ? -1 : 1;
|
|
424
|
-
return a[0].localeCompare(b[0]);
|
|
425
|
-
});
|
|
426
|
-
for (let i = 0; i < entries.length; i++) {
|
|
427
|
-
if (lines.length >= maxLines) {
|
|
428
|
-
lines.push(prefix + "└── ...");
|
|
429
|
-
truncated = true;
|
|
430
|
-
return;
|
|
431
|
-
}
|
|
432
|
-
const entry = entries[i];
|
|
433
|
-
if (entry === undefined) continue; // unreachable in practice
|
|
434
|
-
const [name, child] = entry;
|
|
435
|
-
const last = i === entries.length - 1;
|
|
436
|
-
const branch = last ? "└── " : "├── ";
|
|
437
|
-
const isDir = child.children.size > 0;
|
|
438
|
-
const label = isDir ? `${name}/ (${child.fileCount} files)` : name;
|
|
439
|
-
lines.push(prefix + branch + label);
|
|
440
|
-
walk(child, prefix + (last ? " " : "│ "));
|
|
441
|
-
if (truncated) return;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
walk(root, "");
|
|
446
|
-
return lines.join("\n");
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
/**
|
|
450
|
-
* Run the full scout: list files, count LOC, render tree, build partition units.
|
|
451
|
-
*/
|
|
452
|
-
export function scoutCodebase(root: string): CodebaseScout {
|
|
453
|
-
const allPaths = listAllFiles(root);
|
|
454
|
-
const codePaths = allPaths.filter(isCodeFile);
|
|
455
|
-
const locMap = countLines(root, codePaths);
|
|
456
|
-
|
|
457
|
-
const fileStats: FileStats[] = codePaths.map((p) => ({
|
|
458
|
-
path: p,
|
|
459
|
-
loc: locMap.get(p) ?? 0,
|
|
460
|
-
}));
|
|
461
|
-
|
|
462
|
-
const totalLoc = fileStats.reduce((s, f) => s + f.loc, 0);
|
|
463
|
-
const totalFiles = fileStats.length;
|
|
464
|
-
const treeSource = allPaths.length > 0 ? allPaths : codePaths;
|
|
465
|
-
const tree = renderTree(treeSource, 3, 200);
|
|
466
|
-
const units = buildPartitionUnits(fileStats);
|
|
467
|
-
|
|
468
|
-
return { root, totalLoc, totalFiles, tree, units };
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
/**
|
|
472
|
-
* Bin-pack partition units into `count` balanced groups. Greedy
|
|
473
|
-
* largest-first: assign each unit to the currently-lightest bin.
|
|
474
|
-
*
|
|
475
|
-
* If there are fewer units than requested bins, the result has exactly
|
|
476
|
-
* `units.length` non-empty bins (we never return empty bins).
|
|
477
|
-
*/
|
|
478
|
-
export function partitionUnits(
|
|
479
|
-
units: PartitionUnit[],
|
|
480
|
-
count: number,
|
|
481
|
-
): PartitionUnit[][] {
|
|
482
|
-
if (units.length === 0) return [];
|
|
483
|
-
const n = Math.max(1, Math.min(count, units.length));
|
|
484
|
-
const bins: PartitionUnit[][] = Array.from({ length: n }, () => []);
|
|
485
|
-
const totals: number[] = Array.from({ length: n }, () => 0);
|
|
486
|
-
|
|
487
|
-
const sorted = [...units].sort((a, b) => b.loc - a.loc);
|
|
488
|
-
for (const u of sorted) {
|
|
489
|
-
let minIdx = 0;
|
|
490
|
-
let minTotal = totals[0] ?? 0;
|
|
491
|
-
for (let i = 1; i < n; i++) {
|
|
492
|
-
const t = totals[i] ?? 0;
|
|
493
|
-
if (t < minTotal) {
|
|
494
|
-
minIdx = i;
|
|
495
|
-
minTotal = t;
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
const bin = bins[minIdx];
|
|
499
|
-
if (bin === undefined) continue; // unreachable: minIdx ∈ [0, n)
|
|
500
|
-
bin.push(u);
|
|
501
|
-
totals[minIdx] = minTotal + u.loc;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
return bins;
|
|
505
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deterministic synthesis of per-partition explorer scratch files.
|
|
3
|
-
*
|
|
4
|
-
* Each partition is investigated by four specialist sub-agents dispatched
|
|
5
|
-
* directly via the provider SDK's `agent` parameter:
|
|
6
|
-
*
|
|
7
|
-
* - codebase-locator → file index for the partition
|
|
8
|
-
* - codebase-pattern-finder → reusable code patterns in the partition
|
|
9
|
-
* - codebase-analyzer → how the most relevant impl files work
|
|
10
|
-
* - codebase-online-researcher → external library docs (when central)
|
|
11
|
-
*
|
|
12
|
-
* Rather than spawn a fifth "synthesizer" LLM stage just to concatenate four
|
|
13
|
-
* markdown sections, we do that synthesis in plain TypeScript here. This keeps
|
|
14
|
-
* the per-partition cost at exactly four LLM calls and avoids burning tokens
|
|
15
|
-
* on a step whose output is fully determined by its inputs.
|
|
16
|
-
*
|
|
17
|
-
* The file we write is the canonical handoff to the aggregator — it MUST keep
|
|
18
|
-
* the heading shape that buildAggregatorPrompt() promises ("Scope / Files in
|
|
19
|
-
* Scope / How It Works / Patterns / External References / Out-of-Partition
|
|
20
|
-
* References"), or the aggregator will look for sections that don't exist.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
import { writeFile } from "node:fs/promises";
|
|
24
|
-
import path from "node:path";
|
|
25
|
-
import type { PartitionUnit } from "./scout.ts";
|
|
26
|
-
|
|
27
|
-
export type ExplorerSections = {
|
|
28
|
-
index: number;
|
|
29
|
-
total: number;
|
|
30
|
-
partition: PartitionUnit[];
|
|
31
|
-
/** Full assistant text from the codebase-locator sub-agent. */
|
|
32
|
-
locatorOutput: string;
|
|
33
|
-
/** Full assistant text from the codebase-pattern-finder sub-agent. */
|
|
34
|
-
patternsOutput: string;
|
|
35
|
-
/** Full assistant text from the codebase-analyzer sub-agent. */
|
|
36
|
-
analyzerOutput: string;
|
|
37
|
-
/** Full assistant text from the codebase-online-researcher sub-agent. */
|
|
38
|
-
onlineOutput: string;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
/** Heuristic: detect the "no external research applicable" sentinel. */
|
|
42
|
-
function isOnlineSkip(output: string): boolean {
|
|
43
|
-
return /\(\s*no external research applicable\s*\)/i.test(output);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/** Render the markdown body deterministically. */
|
|
47
|
-
export function renderExplorerMarkdown(sections: ExplorerSections): string {
|
|
48
|
-
const scope = sections.partition
|
|
49
|
-
.map(
|
|
50
|
-
(u) =>
|
|
51
|
-
`\`${u.path}/\` (${u.fileCount} files, ${u.loc.toLocaleString()} LOC)`,
|
|
52
|
-
)
|
|
53
|
-
.join(", ");
|
|
54
|
-
|
|
55
|
-
const lines: string[] = [
|
|
56
|
-
`# Partition ${sections.index} of ${sections.total} — Findings`,
|
|
57
|
-
``,
|
|
58
|
-
`## Scope`,
|
|
59
|
-
scope,
|
|
60
|
-
``,
|
|
61
|
-
`## Files in Scope`,
|
|
62
|
-
`<!-- Source: codebase-locator sub-agent -->`,
|
|
63
|
-
sections.locatorOutput.trim() || "_(no files located)_",
|
|
64
|
-
``,
|
|
65
|
-
`## How It Works`,
|
|
66
|
-
`<!-- Source: codebase-analyzer sub-agent -->`,
|
|
67
|
-
sections.analyzerOutput.trim() || "_(no analysis produced)_",
|
|
68
|
-
``,
|
|
69
|
-
`## Patterns`,
|
|
70
|
-
`<!-- Source: codebase-pattern-finder sub-agent -->`,
|
|
71
|
-
sections.patternsOutput.trim() || "_(no patterns surfaced)_",
|
|
72
|
-
``,
|
|
73
|
-
];
|
|
74
|
-
|
|
75
|
-
// Only include the External References section when the online researcher
|
|
76
|
-
// actually returned external findings — its skip sentinel would otherwise
|
|
77
|
-
// pollute the aggregator's view of "evidence collected".
|
|
78
|
-
if (
|
|
79
|
-
sections.onlineOutput.trim().length > 0 &&
|
|
80
|
-
!isOnlineSkip(sections.onlineOutput)
|
|
81
|
-
) {
|
|
82
|
-
lines.push(
|
|
83
|
-
`## External References`,
|
|
84
|
-
`<!-- Source: codebase-online-researcher sub-agent -->`,
|
|
85
|
-
sections.onlineOutput.trim(),
|
|
86
|
-
``,
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Out-of-partition references live in the analyzer output already, but we
|
|
91
|
-
// surface a brief pointer for the aggregator's cross-stitching pass.
|
|
92
|
-
lines.push(
|
|
93
|
-
`## Out-of-Partition References`,
|
|
94
|
-
`Look for the **Out-of-Partition References** subsection inside the`,
|
|
95
|
-
`"How It Works" section above — that is where the analyzer flagged files`,
|
|
96
|
-
`outside this partition that other partitions should examine.`,
|
|
97
|
-
``,
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
return lines.join("\n");
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Write a partition's deterministic scratch file. Returns the absolute path so
|
|
105
|
-
* the caller can record it in the explorer manifest the aggregator reads.
|
|
106
|
-
*/
|
|
107
|
-
export async function writeExplorerScratchFile(
|
|
108
|
-
scratchPath: string,
|
|
109
|
-
sections: ExplorerSections,
|
|
110
|
-
): Promise<string> {
|
|
111
|
-
const abs = path.resolve(scratchPath);
|
|
112
|
-
const md = renderExplorerMarkdown(sections);
|
|
113
|
-
await writeFile(abs, md, "utf8");
|
|
114
|
-
return abs;
|
|
115
|
-
}
|