@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,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fail-fast login checks for the agent CLIs atomic drives.
|
|
3
|
-
*
|
|
4
|
-
* Copilot exposes `CopilotClient.getAuthStatus()` — a thin JSON-RPC call
|
|
5
|
-
* that returns `isAuthenticated: boolean`. Claude Agent SDK has no
|
|
6
|
-
* direct "is signed in" primitive, but `query().initializationResult()`
|
|
7
|
-
* returns an `account` record populated with `email`, `tokenSource`,
|
|
8
|
-
* and/or `apiKeySource` whenever the CLI has valid credentials — an
|
|
9
|
-
* empty record means the user never completed the OAuth flow and no
|
|
10
|
-
* API key is in the environment.
|
|
11
|
-
*
|
|
12
|
-
* We run these probes BEFORE spawning the native CLI from `atomic chat`
|
|
13
|
-
* or `atomic workflow` so the user sees a short actionable error
|
|
14
|
-
* instead of dropping into an interactive agent that immediately
|
|
15
|
-
* prompts for login (or, in the workflow case, silently stalls).
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import type { AgentKey } from "../config/index.ts";
|
|
19
|
-
import { COLORS } from "../../theme/colors.ts";
|
|
20
|
-
import { copilotSdkLaunchOptions } from "../../sdk/providers/copilot.ts";
|
|
21
|
-
import { withAtomicTempEnv } from "../../lib/atomic-temp.ts";
|
|
22
|
-
|
|
23
|
-
export interface AuthCheckResult {
|
|
24
|
-
/** True when the SDK reports the user is authenticated. */
|
|
25
|
-
loggedIn: boolean;
|
|
26
|
-
/** Optional human-readable detail — usually the SDK's status message. */
|
|
27
|
-
detail?: string;
|
|
28
|
-
/** Login identity if reported (GitHub login for Copilot, email for Claude). */
|
|
29
|
-
identity?: string;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Verify the user is authenticated for the given agent. For agents that
|
|
34
|
-
* do not expose an SDK-level auth probe (currently `opencode`), returns
|
|
35
|
-
* `{ loggedIn: true }` so the caller can skip the check.
|
|
36
|
-
*/
|
|
37
|
-
export async function checkAgentAuth(agent: AgentKey): Promise<AuthCheckResult> {
|
|
38
|
-
if (agent === "copilot") return checkCopilotAuth();
|
|
39
|
-
if (agent === "claude") return checkClaudeAuth();
|
|
40
|
-
return { loggedIn: true };
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Print a consistent login-required banner to stderr. Exported so
|
|
45
|
-
* `chatCommand` and `workflowCommand` share the same wording.
|
|
46
|
-
*/
|
|
47
|
-
export function printAuthError(agent: AgentKey, result: AuthCheckResult): void {
|
|
48
|
-
const { name, loginHint } = AUTH_PROMPTS[agent];
|
|
49
|
-
console.error(
|
|
50
|
-
`${COLORS.red}Error: Not logged in to ${name}.${COLORS.reset}`,
|
|
51
|
-
);
|
|
52
|
-
if (result.detail) {
|
|
53
|
-
console.error(`${COLORS.dim}${result.detail}${COLORS.reset}`);
|
|
54
|
-
}
|
|
55
|
-
console.error(loginHint);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const AUTH_PROMPTS: Record<AgentKey, { name: string; loginHint: string }> = {
|
|
59
|
-
claude: {
|
|
60
|
-
name: "Claude Code",
|
|
61
|
-
loginHint:
|
|
62
|
-
"Run `claude` and complete the /login flow (or set ANTHROPIC_API_KEY), then retry.",
|
|
63
|
-
},
|
|
64
|
-
copilot: {
|
|
65
|
-
name: "GitHub Copilot CLI",
|
|
66
|
-
loginHint: "Run `copilot` and complete the `/login` flow, then retry.",
|
|
67
|
-
},
|
|
68
|
-
opencode: {
|
|
69
|
-
name: "OpenCode",
|
|
70
|
-
loginHint: "Run `opencode auth login`, then retry.",
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
async function checkCopilotAuth(): Promise<AuthCheckResult> {
|
|
75
|
-
const { CopilotClient } = await import("@github/copilot-sdk");
|
|
76
|
-
const client = new CopilotClient(copilotSdkLaunchOptions());
|
|
77
|
-
try {
|
|
78
|
-
await client.start();
|
|
79
|
-
const status = await client.getAuthStatus();
|
|
80
|
-
return {
|
|
81
|
-
loggedIn: status.isAuthenticated,
|
|
82
|
-
detail: status.statusMessage,
|
|
83
|
-
identity: status.login,
|
|
84
|
-
};
|
|
85
|
-
} catch (err) {
|
|
86
|
-
return {
|
|
87
|
-
loggedIn: false,
|
|
88
|
-
detail: err instanceof Error ? err.message : String(err),
|
|
89
|
-
};
|
|
90
|
-
} finally {
|
|
91
|
-
try {
|
|
92
|
-
await client.stop();
|
|
93
|
-
} catch {
|
|
94
|
-
// Best effort — a failed stop shouldn't shadow the probe result.
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
async function checkClaudeAuth(): Promise<AuthCheckResult> {
|
|
100
|
-
const { query } = await import("@anthropic-ai/claude-agent-sdk");
|
|
101
|
-
const { resolveHeadlessClaudeBin } = await import("../../sdk/providers/claude.ts");
|
|
102
|
-
|
|
103
|
-
// A never-yielding iterable keeps the query idle while we probe the
|
|
104
|
-
// initialization result. The SDK starts the `claude` subprocess on
|
|
105
|
-
// query construction but only blocks on the stream once a prompt is
|
|
106
|
-
// actually delivered.
|
|
107
|
-
async function* emptyStream(): AsyncGenerator<never, void, void> {}
|
|
108
|
-
|
|
109
|
-
return await withAtomicTempEnv(async () => {
|
|
110
|
-
const q = query({
|
|
111
|
-
prompt: emptyStream(),
|
|
112
|
-
options: {
|
|
113
|
-
pathToClaudeCodeExecutable: resolveHeadlessClaudeBin(),
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
try {
|
|
118
|
-
const init = await q.initializationResult();
|
|
119
|
-
const account = init.account ?? {};
|
|
120
|
-
const loggedIn = Boolean(
|
|
121
|
-
account.email || account.tokenSource || account.apiKeySource,
|
|
122
|
-
);
|
|
123
|
-
return {
|
|
124
|
-
loggedIn,
|
|
125
|
-
identity: account.email,
|
|
126
|
-
};
|
|
127
|
-
} catch (err) {
|
|
128
|
-
return {
|
|
129
|
-
loggedIn: false,
|
|
130
|
-
detail: err instanceof Error ? err.message : String(err),
|
|
131
|
-
};
|
|
132
|
-
} finally {
|
|
133
|
-
try {
|
|
134
|
-
q.close();
|
|
135
|
-
} catch {
|
|
136
|
-
// Best effort — the subprocess is torn down on process exit anyway.
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lazy first-run sync of tooling deps, bundled agents, and global skills.
|
|
3
|
-
*
|
|
4
|
-
* Why this exists: bun's package manager does NOT execute the top-level
|
|
5
|
-
* package's `postinstall` script on `bun add -g` / `bun update -g` — see
|
|
6
|
-
* `src/install/PackageManager/install_with_manager.zig` (the
|
|
7
|
-
* `!manager.options.global` guard around root lifecycle scripts). So
|
|
8
|
-
* there's no install-time hook we can register from `package.json`.
|
|
9
|
-
*
|
|
10
|
-
* Instead, we detect a fresh install or upgrade lazily on CLI startup by
|
|
11
|
-
* comparing the bundled `VERSION` constant against a marker file at
|
|
12
|
-
* `~/.atomic/.synced-version`. On a mismatch we run the same setup the
|
|
13
|
-
* production bootstrap installers (`install.sh` / `install.ps1`) provide,
|
|
14
|
-
* silently in the background:
|
|
15
|
-
*
|
|
16
|
-
* 1. tmux / psmux (terminal multiplexer for `chat` / `workflow`)
|
|
17
|
-
* 2. global agent configs (file copies — no network)
|
|
18
|
-
* 3. @playwright/cli (bun install -g)
|
|
19
|
-
* 4. @llamaindex/liteparse (bun install -g)
|
|
20
|
-
* 5. @ast-grep/cli (bun install -g)
|
|
21
|
-
* 6. global skills (file copies from bundled .agents/skills)
|
|
22
|
-
*
|
|
23
|
-
* All steps run silently. The only user-facing loading bar lives in the
|
|
24
|
-
* bootstrap installers (install.sh / install.ps1). Failures are swallowed;
|
|
25
|
-
* the marker is only written when every step succeeds, so the next launch
|
|
26
|
-
* retries (all steps are idempotent).
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
import { join } from "node:path";
|
|
30
|
-
import { homedir } from "node:os";
|
|
31
|
-
import { VERSION } from "../../version.ts";
|
|
32
|
-
import {
|
|
33
|
-
hasRequiredMuxBinary,
|
|
34
|
-
ensureTmuxInstalled,
|
|
35
|
-
upgradeGlobalToolPackages,
|
|
36
|
-
} from "../../lib/spawn.ts";
|
|
37
|
-
import { installGlobalAgents } from "./agents.ts";
|
|
38
|
-
import { installGlobalSkills } from "./skills.ts";
|
|
39
|
-
import { seedGlobalAdditionalInstructions } from "../config/additional-instructions.ts";
|
|
40
|
-
import { seedGlobalProviderEnvVars } from "../config/settings.ts";
|
|
41
|
-
|
|
42
|
-
/** Path to the version marker. Honors ATOMIC_SETTINGS_HOME for tests. */
|
|
43
|
-
function syncMarkerPath(): string {
|
|
44
|
-
const home = process.env.ATOMIC_SETTINGS_HOME ?? homedir();
|
|
45
|
-
return join(home, ".atomic", ".synced-version");
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* True when running from an installed package (under `node_modules/`),
|
|
50
|
-
* false on a dev checkout. Avoids triggering a full global setup on every
|
|
51
|
-
* `bun run dev` in the repo.
|
|
52
|
-
*/
|
|
53
|
-
function isInstalledPackage(): boolean {
|
|
54
|
-
return import.meta.dir.includes("node_modules");
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Write the version marker. Best-effort: a failed write just means the
|
|
59
|
-
* next launch will re-sync, which is wasteful but not broken.
|
|
60
|
-
*/
|
|
61
|
-
export async function markSynced(): Promise<void> {
|
|
62
|
-
try {
|
|
63
|
-
await Bun.write(syncMarkerPath(), VERSION);
|
|
64
|
-
} catch {
|
|
65
|
-
// Swallow — see docstring.
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Run a step silently, returning whether it succeeded.
|
|
71
|
-
*/
|
|
72
|
-
async function silentStep(fn: () => Promise<unknown>): Promise<boolean> {
|
|
73
|
-
try {
|
|
74
|
-
await fn();
|
|
75
|
-
return true;
|
|
76
|
-
} catch {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Sync tooling deps, bundled agents, and global skills if the marker
|
|
83
|
-
* doesn't match the bundled VERSION. No-op in dev checkouts and when the
|
|
84
|
-
* marker already matches the current version and the platform-native
|
|
85
|
-
* multiplexer is present.
|
|
86
|
-
*
|
|
87
|
-
* Runs entirely silently — no spinner, no progress bar, no banner. The
|
|
88
|
-
* only loading UI lives in the bootstrap installers (install.sh / install.ps1).
|
|
89
|
-
*/
|
|
90
|
-
export async function autoSyncIfStale(): Promise<void> {
|
|
91
|
-
// Seed the global additional-instructions AGENTS.md on every CLI start —
|
|
92
|
-
// a single `existsSync` when already present, so cheap enough to run
|
|
93
|
-
// outside the installed-package gate. This way dev checkouts also get
|
|
94
|
-
// the file and the resolver in `additional-instructions.ts` always finds
|
|
95
|
-
// a non-`undefined` path on machines that have ever run `atomic`.
|
|
96
|
-
await silentStep(seedGlobalAdditionalInstructions);
|
|
97
|
-
|
|
98
|
-
if (!isInstalledPackage()) return;
|
|
99
|
-
|
|
100
|
-
let stored = "";
|
|
101
|
-
const marker = Bun.file(syncMarkerPath());
|
|
102
|
-
if (await marker.exists()) {
|
|
103
|
-
stored = (await marker.text()).trim();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (stored === VERSION && hasRequiredMuxBinary()) return;
|
|
107
|
-
|
|
108
|
-
const steps = stored === VERSION
|
|
109
|
-
? [silentStep(() => ensureTmuxInstalled({ quiet: true }))]
|
|
110
|
-
: [
|
|
111
|
-
silentStep(() => ensureTmuxInstalled({ quiet: true })),
|
|
112
|
-
silentStep(installGlobalAgents),
|
|
113
|
-
silentStep(upgradeGlobalToolPackages),
|
|
114
|
-
silentStep(installGlobalSkills),
|
|
115
|
-
silentStep(seedGlobalProviderEnvVars),
|
|
116
|
-
];
|
|
117
|
-
|
|
118
|
-
// All steps run in parallel and silently. Failures are swallowed so the
|
|
119
|
-
// CLI can proceed. The marker is only written when every step succeeds;
|
|
120
|
-
// on partial failure the next launch retries (all steps are idempotent).
|
|
121
|
-
const results = await Promise.all(steps);
|
|
122
|
-
|
|
123
|
-
const allOk = results.every(Boolean);
|
|
124
|
-
|
|
125
|
-
if (allOk) {
|
|
126
|
-
await markSynced();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utilities for copying directories and files with exclusions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { readdir, mkdir, stat, readFile } from "node:fs/promises";
|
|
6
|
-
import { mkdirSync } from "node:fs";
|
|
7
|
-
import { join, extname, relative, resolve } from "node:path";
|
|
8
|
-
import type { Ignore } from "ignore";
|
|
9
|
-
import { getOppositeScriptExtension } from "./detect.ts";
|
|
10
|
-
import {
|
|
11
|
-
assertPathWithinRoot,
|
|
12
|
-
assertRealPathWithinRoot,
|
|
13
|
-
isPathWithinRoot,
|
|
14
|
-
} from "../../lib/path-root-guard.ts";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Safely create a directory (and parents) without throwing on EEXIST.
|
|
18
|
-
*
|
|
19
|
-
* `mkdir` with `{ recursive: true }` is supposed to be idempotent, but
|
|
20
|
-
* cloud-sync tools like OneDrive can create the directory between the
|
|
21
|
-
* internal existence check and the actual syscall, causing a spurious
|
|
22
|
-
* EEXIST error on Windows. This wrapper absorbs that race.
|
|
23
|
-
*/
|
|
24
|
-
export async function ensureDir(path: string): Promise<void> {
|
|
25
|
-
try {
|
|
26
|
-
await mkdir(path, { recursive: true });
|
|
27
|
-
} catch (error: unknown) {
|
|
28
|
-
if (
|
|
29
|
-
error instanceof Error &&
|
|
30
|
-
"code" in error &&
|
|
31
|
-
(error as NodeJS.ErrnoException).code === "EEXIST"
|
|
32
|
-
) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
throw error;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Synchronous version of {@link ensureDir}.
|
|
41
|
-
*/
|
|
42
|
-
export function ensureDirSync(path: string): void {
|
|
43
|
-
try {
|
|
44
|
-
mkdirSync(path, { recursive: true });
|
|
45
|
-
} catch (error: unknown) {
|
|
46
|
-
if (
|
|
47
|
-
error instanceof Error &&
|
|
48
|
-
"code" in error &&
|
|
49
|
-
(error as NodeJS.ErrnoException).code === "EEXIST"
|
|
50
|
-
) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Normalize a path for cross-platform comparison.
|
|
59
|
-
* Converts Windows backslashes to forward slashes so that exclusion
|
|
60
|
-
* patterns work consistently on both Windows and Unix systems.
|
|
61
|
-
*
|
|
62
|
-
* @param p - The path to normalize
|
|
63
|
-
* @returns The path with all backslashes converted to forward slashes
|
|
64
|
-
*/
|
|
65
|
-
export function normalizePath(p: string): string {
|
|
66
|
-
return p.replace(/\\/g, "/");
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Check if a target path is safe (doesn't escape the base directory)
|
|
71
|
-
* Protects against path traversal attacks
|
|
72
|
-
*/
|
|
73
|
-
export function isPathSafe(basePath: string, targetPath: string): boolean {
|
|
74
|
-
const resolvedTarget = resolve(basePath, targetPath);
|
|
75
|
-
return isPathWithinRoot(basePath, resolvedTarget);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
interface CopyOptions {
|
|
79
|
-
/** Paths to exclude (relative to source root or base names) */
|
|
80
|
-
exclude?: string[];
|
|
81
|
-
/** Gitignore-style filter for common junk patterns (via the `ignore` package) */
|
|
82
|
-
ignoreFilter?: Ignore;
|
|
83
|
-
/** Whether to skip scripts for the opposite platform */
|
|
84
|
-
skipOppositeScripts?: boolean;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Copy a single file using Bun's file API
|
|
89
|
-
* @throws Error if the copy operation fails
|
|
90
|
-
*/
|
|
91
|
-
export async function copyFile(src: string, dest: string): Promise<void> {
|
|
92
|
-
if (resolve(src) === resolve(dest)) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
try {
|
|
97
|
-
const srcFile = Bun.file(src);
|
|
98
|
-
await Bun.write(dest, srcFile);
|
|
99
|
-
} catch (error) {
|
|
100
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
101
|
-
throw new Error(`Failed to copy ${src} to ${dest}: ${message}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Copy a symlink by dereferencing it (copying the target content as a regular file)
|
|
107
|
-
* This ensures symlinks work on Windows without requiring special permissions
|
|
108
|
-
* @throws Error if the copy operation fails
|
|
109
|
-
*/
|
|
110
|
-
async function copySymlinkAsFile(
|
|
111
|
-
src: string,
|
|
112
|
-
dest: string,
|
|
113
|
-
sourceRoot: string,
|
|
114
|
-
): Promise<void> {
|
|
115
|
-
try {
|
|
116
|
-
// Resolve the symlink and ensure it cannot escape the source root
|
|
117
|
-
const resolvedPath = await assertRealPathWithinRoot(
|
|
118
|
-
sourceRoot,
|
|
119
|
-
src,
|
|
120
|
-
"Symlink source",
|
|
121
|
-
);
|
|
122
|
-
const stats = await stat(resolvedPath);
|
|
123
|
-
|
|
124
|
-
if (stats.isFile()) {
|
|
125
|
-
// Copy the target file content
|
|
126
|
-
await copyFile(resolvedPath, dest);
|
|
127
|
-
}
|
|
128
|
-
// If symlink points to a directory, we skip it (rare case, could be handled if needed)
|
|
129
|
-
} catch (error) {
|
|
130
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
131
|
-
throw new Error(`Failed to copy symlink ${src} to ${dest}: ${message}`);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
async function copyFileWithOverwriteOption(
|
|
136
|
-
src: string,
|
|
137
|
-
dest: string,
|
|
138
|
-
overwriteExisting: boolean,
|
|
139
|
-
): Promise<void> {
|
|
140
|
-
if (!overwriteExisting && (await pathExists(dest))) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
await copyFile(src, dest);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
async function copySymlinkAsFileWithOverwriteOption(
|
|
148
|
-
src: string,
|
|
149
|
-
dest: string,
|
|
150
|
-
sourceRoot: string,
|
|
151
|
-
overwriteExisting: boolean,
|
|
152
|
-
): Promise<void> {
|
|
153
|
-
if (!overwriteExisting && (await pathExists(dest))) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
await copySymlinkAsFile(src, dest, sourceRoot);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Check if a path should be excluded based on exclusion rules.
|
|
162
|
-
* Uses normalized paths (forward slashes) to ensure consistent matching
|
|
163
|
-
* on both Windows and Unix systems.
|
|
164
|
-
*
|
|
165
|
-
* When an {@link Ignore} filter is provided, gitignore-style glob patterns
|
|
166
|
-
* are evaluated first so common junk files (.DS_Store, node_modules, etc.)
|
|
167
|
-
* are filtered automatically without polluting the explicit `exclude` list.
|
|
168
|
-
*/
|
|
169
|
-
export function shouldExclude(
|
|
170
|
-
relativePath: string,
|
|
171
|
-
name: string,
|
|
172
|
-
exclude: string[],
|
|
173
|
-
ignoreFilter?: Ignore,
|
|
174
|
-
): boolean {
|
|
175
|
-
const normalizedPath = normalizePath(relativePath);
|
|
176
|
-
|
|
177
|
-
// Gitignore-style patterns take precedence
|
|
178
|
-
if (ignoreFilter?.ignores(normalizedPath)) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Check if the name matches any exclusion
|
|
183
|
-
if (exclude.includes(name)) {
|
|
184
|
-
return true;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// Check if the relative path starts with any exclusion
|
|
188
|
-
for (const ex of exclude) {
|
|
189
|
-
const normalizedExclusion = normalizePath(ex);
|
|
190
|
-
if (
|
|
191
|
-
normalizedPath === normalizedExclusion ||
|
|
192
|
-
normalizedPath.startsWith(`${normalizedExclusion}/`)
|
|
193
|
-
) {
|
|
194
|
-
return true;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Recursively copy a directory with exclusions
|
|
203
|
-
*
|
|
204
|
-
* @param src Source directory path
|
|
205
|
-
* @param dest Destination directory path
|
|
206
|
-
* @param options Copy options including exclusions
|
|
207
|
-
* @param rootSrc Root source path for calculating relative paths (used internally)
|
|
208
|
-
* @throws Error if the copy operation fails or path traversal is detected
|
|
209
|
-
*/
|
|
210
|
-
async function copyDirInternal(
|
|
211
|
-
src: string,
|
|
212
|
-
dest: string,
|
|
213
|
-
options: CopyOptions = {},
|
|
214
|
-
rootSrc?: string,
|
|
215
|
-
rootDest?: string,
|
|
216
|
-
overwriteExisting: boolean = true,
|
|
217
|
-
): Promise<void> {
|
|
218
|
-
try {
|
|
219
|
-
const { exclude = [], ignoreFilter, skipOppositeScripts = true } = options;
|
|
220
|
-
const root = rootSrc ?? src;
|
|
221
|
-
const destinationRoot = rootDest ?? dest;
|
|
222
|
-
|
|
223
|
-
assertPathWithinRoot(root, src, "Source path");
|
|
224
|
-
assertPathWithinRoot(destinationRoot, dest, "Destination path");
|
|
225
|
-
|
|
226
|
-
await assertRealPathWithinRoot(root, src, "Source path");
|
|
227
|
-
|
|
228
|
-
// Create destination directory
|
|
229
|
-
await ensureDir(dest);
|
|
230
|
-
|
|
231
|
-
// Read source directory entries
|
|
232
|
-
const entries = await readdir(src, { withFileTypes: true });
|
|
233
|
-
|
|
234
|
-
// Get the opposite script extension for filtering
|
|
235
|
-
const oppositeExt = getOppositeScriptExtension();
|
|
236
|
-
|
|
237
|
-
// Process entries in parallel for better performance
|
|
238
|
-
const copyPromises: Promise<void>[] = [];
|
|
239
|
-
|
|
240
|
-
for (const entry of entries) {
|
|
241
|
-
const srcPath = join(src, entry.name);
|
|
242
|
-
const destPath = join(dest, entry.name);
|
|
243
|
-
|
|
244
|
-
assertPathWithinRoot(root, srcPath, "Source entry path");
|
|
245
|
-
assertPathWithinRoot(destinationRoot, destPath, "Destination entry path");
|
|
246
|
-
|
|
247
|
-
if (!isPathSafe(src, entry.name) || !isPathSafe(dest, entry.name)) {
|
|
248
|
-
throw new Error(`Path traversal detected: ${entry.name}`);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// Calculate relative path from root using path.relative for cross-platform support
|
|
252
|
-
const relativePath = relative(root, srcPath);
|
|
253
|
-
|
|
254
|
-
if (relativePath.startsWith("..")) {
|
|
255
|
-
throw new Error(`Path traversal detected: ${srcPath}`);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// Check if this path should be excluded
|
|
259
|
-
if (shouldExclude(relativePath, entry.name, exclude, ignoreFilter)) {
|
|
260
|
-
continue;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// Skip scripts for the opposite platform
|
|
264
|
-
if (skipOppositeScripts && extname(entry.name) === oppositeExt) {
|
|
265
|
-
continue;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
if (entry.isDirectory()) {
|
|
269
|
-
// Directories are processed recursively (which will parallelize their contents)
|
|
270
|
-
copyPromises.push(
|
|
271
|
-
copyDirInternal(
|
|
272
|
-
srcPath,
|
|
273
|
-
destPath,
|
|
274
|
-
options,
|
|
275
|
-
root,
|
|
276
|
-
destinationRoot,
|
|
277
|
-
overwriteExisting,
|
|
278
|
-
),
|
|
279
|
-
);
|
|
280
|
-
} else if (entry.isFile()) {
|
|
281
|
-
copyPromises.push(
|
|
282
|
-
copyFileWithOverwriteOption(srcPath, destPath, overwriteExisting),
|
|
283
|
-
);
|
|
284
|
-
} else if (entry.isSymbolicLink()) {
|
|
285
|
-
// Dereference symlinks: resolve target and copy as regular file
|
|
286
|
-
copyPromises.push(
|
|
287
|
-
copySymlinkAsFileWithOverwriteOption(
|
|
288
|
-
srcPath,
|
|
289
|
-
destPath,
|
|
290
|
-
root,
|
|
291
|
-
overwriteExisting,
|
|
292
|
-
),
|
|
293
|
-
);
|
|
294
|
-
}
|
|
295
|
-
// Skip other special files (block devices, etc.)
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
// Wait for all copy operations to complete
|
|
299
|
-
await Promise.all(copyPromises);
|
|
300
|
-
} catch (error) {
|
|
301
|
-
// Re-throw errors with more context if they don't already have it
|
|
302
|
-
if (error instanceof Error && error.message.includes("Failed to copy")) {
|
|
303
|
-
throw error;
|
|
304
|
-
}
|
|
305
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
306
|
-
throw new Error(`Failed to copy directory ${src} to ${dest}: ${message}`);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Recursively copy a directory, overwriting existing destination files.
|
|
312
|
-
*/
|
|
313
|
-
export async function copyDir(
|
|
314
|
-
src: string,
|
|
315
|
-
dest: string,
|
|
316
|
-
options: CopyOptions = {},
|
|
317
|
-
rootSrc?: string,
|
|
318
|
-
rootDest?: string,
|
|
319
|
-
): Promise<void> {
|
|
320
|
-
await copyDirInternal(src, dest, options, rootSrc, rootDest, true);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* Recursively copy a directory without overwriting existing destination files.
|
|
325
|
-
*/
|
|
326
|
-
export async function copyDirNonDestructive(
|
|
327
|
-
src: string,
|
|
328
|
-
dest: string,
|
|
329
|
-
options: CopyOptions = {},
|
|
330
|
-
rootSrc?: string,
|
|
331
|
-
rootDest?: string,
|
|
332
|
-
): Promise<void> {
|
|
333
|
-
await copyDirInternal(src, dest, options, rootSrc, rootDest, false);
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Check if a path exists
|
|
338
|
-
*/
|
|
339
|
-
export async function pathExists(path: string): Promise<boolean> {
|
|
340
|
-
try {
|
|
341
|
-
await stat(path);
|
|
342
|
-
return true;
|
|
343
|
-
} catch {
|
|
344
|
-
return false;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* Check if a path is a directory
|
|
350
|
-
*/
|
|
351
|
-
export async function isDirectory(path: string): Promise<boolean> {
|
|
352
|
-
try {
|
|
353
|
-
const stats = await stat(path);
|
|
354
|
-
return stats.isDirectory();
|
|
355
|
-
} catch {
|
|
356
|
-
return false;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* Check if a file is empty or contains only whitespace.
|
|
362
|
-
*
|
|
363
|
-
* A file is considered empty if:
|
|
364
|
-
* - It does not exist (returns true to allow overwrite)
|
|
365
|
-
* - It has 0 bytes
|
|
366
|
-
* - It contains only whitespace characters (for files under 1KB)
|
|
367
|
-
*
|
|
368
|
-
* @param path - The path to the file to check
|
|
369
|
-
* @returns true if the file is empty or whitespace-only, false otherwise
|
|
370
|
-
*/
|
|
371
|
-
export async function isFileEmpty(path: string): Promise<boolean> {
|
|
372
|
-
try {
|
|
373
|
-
const stats = await stat(path);
|
|
374
|
-
|
|
375
|
-
// 0-byte files are empty
|
|
376
|
-
if (stats.size === 0) {
|
|
377
|
-
return true;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
// For small files (under 1KB), check if content is whitespace-only
|
|
381
|
-
if (stats.size < 1024) {
|
|
382
|
-
const content = await readFile(path, "utf-8");
|
|
383
|
-
return content.trim().length === 0;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// Large files with content are not empty
|
|
387
|
-
return false;
|
|
388
|
-
} catch {
|
|
389
|
-
// If file doesn't exist or can't be read, treat as empty (allow overwrite)
|
|
390
|
-
return true;
|
|
391
|
-
}
|
|
392
|
-
}
|