@bastani/atomic 0.6.8-0 → 0.7.0-1
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,348 +0,0 @@
|
|
|
1
|
-
import { lstat, readdir, rm, rmdir } from "node:fs/promises";
|
|
2
|
-
import { join, resolve } from "node:path";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
|
-
|
|
5
|
-
import { AGENT_CONFIG, getAgentKeys, type AgentKey } from "./index.ts";
|
|
6
|
-
import { syncJsonFile } from "../../lib/merge.ts";
|
|
7
|
-
import { createCommonIgnoreFilter } from "../../lib/common-ignore.ts";
|
|
8
|
-
import { copyDir, ensureDir, pathExists, shouldExclude } from "../system/copy.ts";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const ATOMIC_HOME_DIR = join(homedir(), ".atomic");
|
|
12
|
-
|
|
13
|
-
const GLOBAL_AGENT_FOLDER_BY_KEY: Record<AgentKey, string> = {
|
|
14
|
-
claude: ".claude",
|
|
15
|
-
opencode: ".opencode",
|
|
16
|
-
copilot: ".copilot",
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const TEMPLATE_AGENT_FOLDER_BY_KEY: Record<AgentKey, string> = {
|
|
20
|
-
claude: AGENT_CONFIG.claude.folder,
|
|
21
|
-
opencode: AGENT_CONFIG.opencode.folder,
|
|
22
|
-
copilot: AGENT_CONFIG.copilot.folder,
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Per-agent subdirectories copied from the bundled template into the
|
|
27
|
-
* provider home. Only `agents/` now — skills ship via the skills CLI.
|
|
28
|
-
*/
|
|
29
|
-
const GLOBAL_SYNC_SUBDIRECTORIES = ["agents"] as const;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Top-level files copied per agent. Copilot's lsp.json is renamed to
|
|
33
|
-
* lsp-config.json in the destination (see `GLOBAL_SYNC_DESTINATION_FILE_NAMES`).
|
|
34
|
-
*/
|
|
35
|
-
const GLOBAL_SYNC_FILES: Partial<Record<AgentKey, readonly string[]>> = {
|
|
36
|
-
copilot: ["lsp.json"],
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const GLOBAL_SYNC_DESTINATION_FILE_NAMES: Partial<Record<AgentKey, Partial<Record<string, string>>>> = {
|
|
40
|
-
copilot: {
|
|
41
|
-
"lsp.json": "lsp-config.json",
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Return the Atomic home directory used for global workflows/tools/settings.
|
|
47
|
-
*/
|
|
48
|
-
export function getAtomicHomeDir(): string {
|
|
49
|
-
return ATOMIC_HOME_DIR;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function resolveHomeDirFromAtomicHome(baseDir: string): string {
|
|
53
|
-
return resolve(baseDir, "..");
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Get Atomic-managed provider config directories.
|
|
58
|
-
*
|
|
59
|
-
* Atomic now installs provider configs into the provider home roots while
|
|
60
|
-
* keeping Atomic-specific state under ~/.atomic.
|
|
61
|
-
*/
|
|
62
|
-
export function getAtomicManagedConfigDirs(baseDir: string = ATOMIC_HOME_DIR): string[] {
|
|
63
|
-
const homeDir = resolveHomeDirFromAtomicHome(baseDir);
|
|
64
|
-
return [
|
|
65
|
-
join(homeDir, GLOBAL_AGENT_FOLDER_BY_KEY.claude),
|
|
66
|
-
join(homeDir, GLOBAL_AGENT_FOLDER_BY_KEY.opencode),
|
|
67
|
-
join(homeDir, GLOBAL_AGENT_FOLDER_BY_KEY.copilot),
|
|
68
|
-
];
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Get the provider home-folder suffix for the given agent.
|
|
73
|
-
*/
|
|
74
|
-
export function getAtomicGlobalAgentFolder(agentKey: AgentKey): string {
|
|
75
|
-
return GLOBAL_AGENT_FOLDER_BY_KEY[agentKey];
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Resolve the destination directory where Atomic installs provider configs.
|
|
80
|
-
*/
|
|
81
|
-
export function getAtomicManagedAgentDir(
|
|
82
|
-
agentKey: AgentKey,
|
|
83
|
-
baseDir: string = ATOMIC_HOME_DIR,
|
|
84
|
-
): string {
|
|
85
|
-
return join(resolveHomeDirFromAtomicHome(baseDir), getAtomicGlobalAgentFolder(agentKey));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Get the bundled template folder for the given agent.
|
|
90
|
-
*/
|
|
91
|
-
export function getTemplateAgentFolder(agentKey: AgentKey): string {
|
|
92
|
-
return TEMPLATE_AGENT_FOLDER_BY_KEY[agentKey];
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
interface ManagedTreeEntries {
|
|
96
|
-
directories: string[];
|
|
97
|
-
files: string[];
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
async function collectManagedTreeEntries(
|
|
101
|
-
sourceDir: string,
|
|
102
|
-
exclude: readonly string[],
|
|
103
|
-
relativeDir: string = "",
|
|
104
|
-
): Promise<ManagedTreeEntries> {
|
|
105
|
-
if (!(await pathExists(sourceDir))) {
|
|
106
|
-
return {
|
|
107
|
-
directories: [],
|
|
108
|
-
files: [],
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const directories: string[] = [];
|
|
113
|
-
const files: string[] = [];
|
|
114
|
-
const entries = await readdir(sourceDir, { withFileTypes: true });
|
|
115
|
-
|
|
116
|
-
for (const entry of entries) {
|
|
117
|
-
const relativePath = relativeDir.length > 0
|
|
118
|
-
? join(relativeDir, entry.name)
|
|
119
|
-
: entry.name;
|
|
120
|
-
|
|
121
|
-
if (shouldExclude(relativePath, entry.name, [...exclude])) {
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const sourcePath = join(sourceDir, entry.name);
|
|
126
|
-
if (entry.isDirectory()) {
|
|
127
|
-
directories.push(relativePath);
|
|
128
|
-
const nestedEntries = await collectManagedTreeEntries(
|
|
129
|
-
sourcePath,
|
|
130
|
-
exclude,
|
|
131
|
-
relativePath,
|
|
132
|
-
);
|
|
133
|
-
directories.push(...nestedEntries.directories);
|
|
134
|
-
files.push(...nestedEntries.files);
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (entry.isFile() || entry.isSymbolicLink()) {
|
|
139
|
-
files.push(relativePath);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return { directories, files };
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
async function removeEmptyDirectoryIfPresent(pathToDirectory: string): Promise<void> {
|
|
147
|
-
try {
|
|
148
|
-
const stats = await lstat(pathToDirectory);
|
|
149
|
-
if (!stats.isDirectory()) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
} catch {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const entries = await readdir(pathToDirectory);
|
|
157
|
-
if (entries.length === 0) {
|
|
158
|
-
await rmdir(pathToDirectory);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
function getGlobalSyncDestinationFileName(agentKey: AgentKey, sourceFileName: string): string {
|
|
163
|
-
return GLOBAL_SYNC_DESTINATION_FILE_NAMES[agentKey]?.[sourceFileName] ?? sourceFileName;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
async function syncManagedGlobalFile(
|
|
167
|
-
sourcePath: string,
|
|
168
|
-
destinationPath: string,
|
|
169
|
-
): Promise<void> {
|
|
170
|
-
await syncJsonFile(sourcePath, destinationPath);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Remove only the Atomic-managed entries from provider-native global roots.
|
|
175
|
-
*
|
|
176
|
-
* Mirrors `syncAtomicGlobalAgentConfigs`: walks the bundled template for
|
|
177
|
-
* each agent and removes every file/directory it would have installed. Any
|
|
178
|
-
* legacy skills or tools left behind from previous Atomic versions are
|
|
179
|
-
* intentionally untouched — those are owned by the skills CLI now.
|
|
180
|
-
*/
|
|
181
|
-
export async function removeAtomicManagedGlobalAgentConfigs(
|
|
182
|
-
configRoot: string,
|
|
183
|
-
baseDir: string = ATOMIC_HOME_DIR,
|
|
184
|
-
): Promise<void> {
|
|
185
|
-
const agentKeys = getAgentKeys();
|
|
186
|
-
|
|
187
|
-
for (const agentKey of agentKeys) {
|
|
188
|
-
const sourceFolder = join(configRoot, getTemplateAgentFolder(agentKey));
|
|
189
|
-
const destinationFolder = getAtomicManagedAgentDir(agentKey, baseDir);
|
|
190
|
-
for (const subdirectory of GLOBAL_SYNC_SUBDIRECTORIES) {
|
|
191
|
-
const sourceSubdirectory = join(sourceFolder, subdirectory);
|
|
192
|
-
if (!(await pathExists(sourceSubdirectory))) {
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
const managedTree = await collectManagedTreeEntries(sourceSubdirectory, []);
|
|
197
|
-
const destinationSubdirectory = join(destinationFolder, subdirectory);
|
|
198
|
-
|
|
199
|
-
for (const relativeFile of managedTree.files) {
|
|
200
|
-
await rm(join(destinationSubdirectory, relativeFile), { force: true });
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
const managedDirectories = [...managedTree.directories].sort(
|
|
204
|
-
(left, right) => right.length - left.length,
|
|
205
|
-
);
|
|
206
|
-
for (const relativeDirectory of managedDirectories) {
|
|
207
|
-
await removeEmptyDirectoryIfPresent(join(destinationSubdirectory, relativeDirectory));
|
|
208
|
-
}
|
|
209
|
-
await removeEmptyDirectoryIfPresent(destinationSubdirectory);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
const managedFiles = GLOBAL_SYNC_FILES[agentKey] ?? [];
|
|
213
|
-
for (const fileName of managedFiles) {
|
|
214
|
-
const sourceFilePath = join(sourceFolder, fileName);
|
|
215
|
-
if (!(await pathExists(sourceFilePath))) {
|
|
216
|
-
continue;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
const destinationFilePath = join(
|
|
220
|
-
destinationFolder,
|
|
221
|
-
getGlobalSyncDestinationFileName(agentKey, fileName),
|
|
222
|
-
);
|
|
223
|
-
await rm(destinationFilePath, { force: true });
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// Do NOT remove the top-level provider directory (e.g. ~/.claude, ~/.opencode,
|
|
227
|
-
// ~/.copilot) — Atomic does not own it and it may contain user-managed configs.
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Sync bundled agent templates into provider-native global roots.
|
|
233
|
-
*
|
|
234
|
-
* Copies each agent's `agents/` directory plus a small set of top-level
|
|
235
|
-
* files (currently just Copilot's `lsp.json` → `lsp-config.json`). Skills
|
|
236
|
-
* are NOT synced from here — they are installed globally at install time
|
|
237
|
-
* via `npx skills add` from the git repo.
|
|
238
|
-
*/
|
|
239
|
-
export async function syncAtomicGlobalAgentConfigs(
|
|
240
|
-
configRoot: string,
|
|
241
|
-
baseDir: string = ATOMIC_HOME_DIR,
|
|
242
|
-
): Promise<void> {
|
|
243
|
-
await ensureDir(baseDir);
|
|
244
|
-
|
|
245
|
-
const agentKeys = getAgentKeys();
|
|
246
|
-
for (const agentKey of agentKeys) {
|
|
247
|
-
const sourceFolder = join(configRoot, getTemplateAgentFolder(agentKey));
|
|
248
|
-
if (!(await pathExists(sourceFolder))) continue;
|
|
249
|
-
|
|
250
|
-
const destinationFolder = getAtomicManagedAgentDir(agentKey, baseDir);
|
|
251
|
-
await ensureDir(destinationFolder);
|
|
252
|
-
|
|
253
|
-
const ignoreFilter = createCommonIgnoreFilter();
|
|
254
|
-
for (const subdirectory of GLOBAL_SYNC_SUBDIRECTORIES) {
|
|
255
|
-
const sourceSubdir = join(sourceFolder, subdirectory);
|
|
256
|
-
if (await pathExists(sourceSubdir)) {
|
|
257
|
-
await copyDir(sourceSubdir, join(destinationFolder, subdirectory), { ignoreFilter });
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
const managedFiles = GLOBAL_SYNC_FILES[agentKey] ?? [];
|
|
262
|
-
for (const fileName of managedFiles) {
|
|
263
|
-
const sourceFilePath = join(sourceFolder, fileName);
|
|
264
|
-
if (!(await pathExists(sourceFilePath))) continue;
|
|
265
|
-
|
|
266
|
-
const destinationFilePath = join(
|
|
267
|
-
destinationFolder,
|
|
268
|
-
getGlobalSyncDestinationFileName(agentKey, fileName),
|
|
269
|
-
);
|
|
270
|
-
await syncManagedGlobalFile(sourceFilePath, destinationFilePath);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* Return true when every Atomic-bundled agent file is present at its
|
|
277
|
-
* destination in the provider-native global roots.
|
|
278
|
-
*
|
|
279
|
-
* This walks the bundled template for each agent and checks that every
|
|
280
|
-
* file (and the top-level files in `GLOBAL_SYNC_FILES`) has a matching
|
|
281
|
-
* entry under `~/.<agent>/`. A single missing file returns false so the
|
|
282
|
-
* caller can run a merge re-sync. User-added files in the destination
|
|
283
|
-
* that don't exist in the template are ignored — they never trigger a
|
|
284
|
-
* false-negative and they are never removed.
|
|
285
|
-
*/
|
|
286
|
-
export async function hasAtomicGlobalAgentConfigs(
|
|
287
|
-
configRoot: string,
|
|
288
|
-
baseDir: string = ATOMIC_HOME_DIR,
|
|
289
|
-
): Promise<boolean> {
|
|
290
|
-
const agentKeys = getAgentKeys();
|
|
291
|
-
|
|
292
|
-
for (const agentKey of agentKeys) {
|
|
293
|
-
const sourceFolder = join(configRoot, getTemplateAgentFolder(agentKey));
|
|
294
|
-
if (!(await pathExists(sourceFolder))) {
|
|
295
|
-
// No template for this agent in the config root — nothing to verify.
|
|
296
|
-
continue;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
const destinationFolder = getAtomicManagedAgentDir(agentKey, baseDir);
|
|
300
|
-
if (!(await pathExists(destinationFolder))) return false;
|
|
301
|
-
|
|
302
|
-
for (const subdirectory of GLOBAL_SYNC_SUBDIRECTORIES) {
|
|
303
|
-
const sourceSubdir = join(sourceFolder, subdirectory);
|
|
304
|
-
if (!(await pathExists(sourceSubdir))) continue;
|
|
305
|
-
|
|
306
|
-
const managedTree = await collectManagedTreeEntries(sourceSubdir, []);
|
|
307
|
-
const destinationSubdir = join(destinationFolder, subdirectory);
|
|
308
|
-
|
|
309
|
-
for (const relativeFile of managedTree.files) {
|
|
310
|
-
if (!(await pathExists(join(destinationSubdir, relativeFile)))) {
|
|
311
|
-
return false;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
const managedFiles = GLOBAL_SYNC_FILES[agentKey] ?? [];
|
|
317
|
-
for (const fileName of managedFiles) {
|
|
318
|
-
const sourceFilePath = join(sourceFolder, fileName);
|
|
319
|
-
if (!(await pathExists(sourceFilePath))) continue;
|
|
320
|
-
|
|
321
|
-
const destinationFilePath = join(
|
|
322
|
-
destinationFolder,
|
|
323
|
-
getGlobalSyncDestinationFileName(agentKey, fileName),
|
|
324
|
-
);
|
|
325
|
-
if (!(await pathExists(destinationFilePath))) return false;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
return true;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* Verify-and-repair entrypoint for user-facing commands (`atomic chat`).
|
|
334
|
-
* If every bundled agent file is present at its
|
|
335
|
-
* destination, returns immediately without touching disk. Otherwise
|
|
336
|
-
* runs a merge re-sync, which fills the missing files from the local
|
|
337
|
-
* config data dir while leaving user-added files alone.
|
|
338
|
-
*
|
|
339
|
-
* This helper heals drift (e.g. a user deleted `~/.claude/agents/<foo>.md`).
|
|
340
|
-
*/
|
|
341
|
-
export async function ensureAtomicGlobalAgentConfigs(
|
|
342
|
-
configRoot: string,
|
|
343
|
-
baseDir: string = ATOMIC_HOME_DIR,
|
|
344
|
-
): Promise<void> {
|
|
345
|
-
if (await hasAtomicGlobalAgentConfigs(configRoot, baseDir)) return;
|
|
346
|
-
await syncAtomicGlobalAgentConfigs(configRoot, baseDir);
|
|
347
|
-
}
|
|
348
|
-
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Config path resolution.
|
|
3
|
-
*
|
|
4
|
-
* Two installation modes:
|
|
5
|
-
* 1. Source/Development: Running from source with `bun run src/cli.ts`
|
|
6
|
-
* 2. npm/bun installed: Installed via `bun add -g @bastani/atomic`
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { join } from "node:path";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Get the root directory where config folders (.claude, .opencode, .github) are stored.
|
|
13
|
-
*
|
|
14
|
-
* Navigates up from the current file to the package/repo root:
|
|
15
|
-
* src/services/config/config-path.ts -> ../../.. -> root
|
|
16
|
-
*/
|
|
17
|
-
export function getConfigRoot(): string {
|
|
18
|
-
return join(import.meta.dir, "..", "..", "..");
|
|
19
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent configuration definitions for atomic CLI
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export interface AgentConfig {
|
|
6
|
-
/** Display name for the agent */
|
|
7
|
-
name: string;
|
|
8
|
-
/** Command to execute the agent */
|
|
9
|
-
cmd: string;
|
|
10
|
-
/** Flags used when spawning the agent in interactive chat mode */
|
|
11
|
-
chat_flags: string[];
|
|
12
|
-
/** Environment variables to set when spawning the agent (merged with process env) */
|
|
13
|
-
env_vars: Record<string, string>;
|
|
14
|
-
/** Config folder relative to repo root */
|
|
15
|
-
folder: string;
|
|
16
|
-
/** URL for installation instructions */
|
|
17
|
-
install_url: string;
|
|
18
|
-
/** Paths to exclude when copying (relative to folder) */
|
|
19
|
-
exclude: string[];
|
|
20
|
-
/** Project files applied during `atomic chat` preflight for provider onboarding */
|
|
21
|
-
onboarding_files: Array<{
|
|
22
|
-
source: string;
|
|
23
|
-
destination: string;
|
|
24
|
-
merge: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Top-level keys to strip from the source before copying or merging.
|
|
27
|
-
* Useful when a key is project-local by design (e.g. Claude's
|
|
28
|
-
* `disabledMcpjsonServers`) and must not leak into a global
|
|
29
|
-
* destination like `~/.claude/settings.json`.
|
|
30
|
-
*/
|
|
31
|
-
excludeConfigKeys?: readonly string[];
|
|
32
|
-
}>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const AGENT_KEYS = ["claude", "opencode", "copilot"] as const;
|
|
36
|
-
export type AgentKey = (typeof AGENT_KEYS)[number];
|
|
37
|
-
|
|
38
|
-
export const AGENT_CONFIG: Record<AgentKey, AgentConfig> = {
|
|
39
|
-
claude: {
|
|
40
|
-
name: "Claude Code",
|
|
41
|
-
cmd: "claude",
|
|
42
|
-
chat_flags: [
|
|
43
|
-
"--allow-dangerously-skip-permissions",
|
|
44
|
-
"--dangerously-skip-permissions",
|
|
45
|
-
],
|
|
46
|
-
env_vars: {},
|
|
47
|
-
folder: ".claude",
|
|
48
|
-
install_url: "https://code.claude.com/docs/en/setup",
|
|
49
|
-
exclude: [],
|
|
50
|
-
onboarding_files: [
|
|
51
|
-
{
|
|
52
|
-
source: ".mcp.json",
|
|
53
|
-
destination: ".mcp.json",
|
|
54
|
-
merge: true,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
source: ".claude/settings.json",
|
|
58
|
-
destination: ".claude/settings.json",
|
|
59
|
-
merge: true,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
source: ".claude/settings.json",
|
|
63
|
-
destination: "~/.claude/settings.json",
|
|
64
|
-
merge: true,
|
|
65
|
-
// `disabledMcpjsonServers` is reconciled per-project by scm-sync
|
|
66
|
-
// and must not leak into the user's global Claude settings.
|
|
67
|
-
excludeConfigKeys: ["disabledMcpjsonServers"],
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
},
|
|
71
|
-
opencode: {
|
|
72
|
-
name: "OpenCode",
|
|
73
|
-
cmd: "opencode",
|
|
74
|
-
chat_flags: [],
|
|
75
|
-
env_vars: { OPENCODE_EXPERIMENTAL_LSP_TOOL: "true" },
|
|
76
|
-
folder: ".opencode",
|
|
77
|
-
install_url: "https://opencode.ai",
|
|
78
|
-
exclude: [".gitignore", "package.json"],
|
|
79
|
-
onboarding_files: [
|
|
80
|
-
{
|
|
81
|
-
source: ".opencode/opencode.json",
|
|
82
|
-
destination: ".opencode/opencode.json",
|
|
83
|
-
merge: true,
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
},
|
|
87
|
-
copilot: {
|
|
88
|
-
name: "GitHub Copilot CLI",
|
|
89
|
-
cmd: "copilot",
|
|
90
|
-
chat_flags: ["--add-dir", ".", "--yolo", "--experimental"],
|
|
91
|
-
env_vars: {
|
|
92
|
-
COPILOT_ALLOW_ALL: "true",
|
|
93
|
-
},
|
|
94
|
-
folder: ".github",
|
|
95
|
-
install_url:
|
|
96
|
-
"https://github.com/github/copilot-cli?tab=readme-ov-file#installation",
|
|
97
|
-
exclude: ["workflows", "dependabot.yml"],
|
|
98
|
-
onboarding_files: [],
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Per-provider overrides that users can set in `.atomic/settings.json`
|
|
104
|
-
* (local) or `~/.atomic/settings.json` (global).
|
|
105
|
-
*
|
|
106
|
-
* - `chatFlags`: when set, replaces the agent's default `chat_flags` entirely.
|
|
107
|
-
* - `envVars`: environment variables merged on top of the agent's default
|
|
108
|
-
* `env_vars` (user values win on conflict).
|
|
109
|
-
*/
|
|
110
|
-
export interface ProviderOverrides {
|
|
111
|
-
chatFlags?: string[];
|
|
112
|
-
envVars?: Record<string, string>;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export function isValidAgent(key: string): key is AgentKey {
|
|
116
|
-
return key in AGENT_CONFIG;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export function getAgentConfig(key: AgentKey): AgentConfig {
|
|
120
|
-
return AGENT_CONFIG[key];
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export function getAgentKeys(): AgentKey[] {
|
|
124
|
-
return [...AGENT_KEYS];
|
|
125
|
-
}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Source-control-driven MCP server enable/disable sync.
|
|
3
|
-
*
|
|
4
|
-
* When the user sets `scm` in `.atomic/settings.json` to one of
|
|
5
|
-
* `github`, `azure-devops`, or `sapling`, Atomic keeps the corresponding
|
|
6
|
-
* MCP servers in the project's agent configs consistent on every
|
|
7
|
-
* `atomic chat` / `atomic workflow` startup:
|
|
8
|
-
*
|
|
9
|
-
* - `.claude/settings.json` → updates the `disabledMcpjsonServers` array
|
|
10
|
-
* - `.opencode/opencode.json` → flips `mcp.<server>.enabled` flags
|
|
11
|
-
*
|
|
12
|
-
* Only servers that already exist in the config are touched — we never
|
|
13
|
-
* add MCP server definitions the user didn't set up. Files that don't
|
|
14
|
-
* exist are skipped (the user may not use that agent).
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import { join } from "node:path";
|
|
18
|
-
import { pathExists } from "../system/copy.ts";
|
|
19
|
-
import type { ScmProvider } from "./atomic-config.ts";
|
|
20
|
-
import { readAtomicConfig } from "./atomic-config.ts";
|
|
21
|
-
|
|
22
|
-
const SCM_MCP_SERVERS = ["github", "azure-devops"] as const;
|
|
23
|
-
type ScmMcpServer = (typeof SCM_MCP_SERVERS)[number];
|
|
24
|
-
|
|
25
|
-
/** Which SCM MCP servers should be enabled for each scm value. */
|
|
26
|
-
function enabledServersFor(scm: ScmProvider): Set<ScmMcpServer> {
|
|
27
|
-
if (scm === "github") return new Set(["github"]);
|
|
28
|
-
if (scm === "azure-devops") return new Set(["azure-devops"]);
|
|
29
|
-
return new Set();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Copilot CLI servers to disable per scm selection. Copilot ships with a
|
|
34
|
-
* built-in `github-mcp-server`; when scm is `github` the user's own
|
|
35
|
-
* `github` MCP is redundant with it, so we keep the built-in and disable
|
|
36
|
-
* the user's. For `azure-devops` we keep the user's `azure-devops` and
|
|
37
|
-
* disable both GitHub variants. Sapling disables everything.
|
|
38
|
-
*/
|
|
39
|
-
const COPILOT_DISABLE_BY_SCM: Record<ScmProvider, readonly string[]> = {
|
|
40
|
-
github: ["github", "azure-devops"],
|
|
41
|
-
"azure-devops": ["github", "github-mcp-server"],
|
|
42
|
-
sapling: ["github", "azure-devops", "github-mcp-server"],
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Pure helper: returns the `--disable-mcp-server <name>` flag sequence to
|
|
47
|
-
* append when spawning Copilot CLI, given a selected scm provider.
|
|
48
|
-
*
|
|
49
|
-
* Copilot has no on-disk MCP server enable/disable store, so Atomic
|
|
50
|
-
* injects the flags on the CLI invocation instead. Returns an empty
|
|
51
|
-
* array when scm is unset so callers can spread unconditionally.
|
|
52
|
-
*/
|
|
53
|
-
export function copilotScmDisableFlags(scm: ScmProvider | undefined): string[] {
|
|
54
|
-
if (!scm) return [];
|
|
55
|
-
const names = COPILOT_DISABLE_BY_SCM[scm] ?? [];
|
|
56
|
-
const flags: string[] = [];
|
|
57
|
-
for (const name of names) flags.push("--disable-mcp-server", name);
|
|
58
|
-
return flags;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Resolve Copilot's scm-derived `--disable-mcp-server` flags from the
|
|
63
|
-
* project's atomic config. Best-effort — returns `[]` on any failure.
|
|
64
|
-
*/
|
|
65
|
-
export async function getCopilotScmDisableFlags(
|
|
66
|
-
projectRoot: string,
|
|
67
|
-
): Promise<string[]> {
|
|
68
|
-
try {
|
|
69
|
-
const config = await readAtomicConfig(projectRoot);
|
|
70
|
-
return copilotScmDisableFlags(config?.scm);
|
|
71
|
-
} catch {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
async function readJson(path: string): Promise<Record<string, unknown> | null> {
|
|
77
|
-
try {
|
|
78
|
-
const parsed: unknown = await Bun.file(path).json();
|
|
79
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
80
|
-
return parsed as Record<string, unknown>;
|
|
81
|
-
}
|
|
82
|
-
} catch {
|
|
83
|
-
// Missing or invalid JSON — treat as absent.
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
async function writeJson(path: string, data: Record<string, unknown>): Promise<void> {
|
|
89
|
-
await Bun.write(path, JSON.stringify(data, null, 2) + "\n");
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Update `disabledMcpjsonServers` in Claude's settings so that servers
|
|
94
|
-
* for the non-selected providers are disabled. Preserves any other
|
|
95
|
-
* entries the user has added to the array.
|
|
96
|
-
*/
|
|
97
|
-
async function syncClaudeSettings(
|
|
98
|
-
projectRoot: string,
|
|
99
|
-
enabled: Set<ScmMcpServer>,
|
|
100
|
-
): Promise<void> {
|
|
101
|
-
const path = join(projectRoot, ".claude", "settings.json");
|
|
102
|
-
if (!(await pathExists(path))) return;
|
|
103
|
-
|
|
104
|
-
const settings = await readJson(path);
|
|
105
|
-
if (!settings) return;
|
|
106
|
-
|
|
107
|
-
const rawDisabled = settings.disabledMcpjsonServers;
|
|
108
|
-
const existing: string[] = Array.isArray(rawDisabled)
|
|
109
|
-
? rawDisabled.filter((v): v is string => typeof v === "string")
|
|
110
|
-
: [];
|
|
111
|
-
|
|
112
|
-
// Drop any SCM MCP server entry, then add back the ones that should be disabled.
|
|
113
|
-
const withoutScm = existing.filter(
|
|
114
|
-
(name): name is string => !(SCM_MCP_SERVERS as readonly string[]).includes(name),
|
|
115
|
-
);
|
|
116
|
-
const toDisable = SCM_MCP_SERVERS.filter((name) => !enabled.has(name));
|
|
117
|
-
const next = [...withoutScm, ...toDisable];
|
|
118
|
-
|
|
119
|
-
if (arraysEqual(existing, next)) return;
|
|
120
|
-
|
|
121
|
-
settings.disabledMcpjsonServers = next;
|
|
122
|
-
await writeJson(path, settings);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Flip `enabled` on the GitHub / Azure DevOps MCP server entries in
|
|
127
|
-
* OpenCode's config. Only touches servers the user already has — we
|
|
128
|
-
* don't invent server definitions.
|
|
129
|
-
*/
|
|
130
|
-
async function syncOpencodeSettings(
|
|
131
|
-
projectRoot: string,
|
|
132
|
-
enabled: Set<ScmMcpServer>,
|
|
133
|
-
): Promise<void> {
|
|
134
|
-
const path = join(projectRoot, ".opencode", "opencode.json");
|
|
135
|
-
if (!(await pathExists(path))) return;
|
|
136
|
-
|
|
137
|
-
const config = await readJson(path);
|
|
138
|
-
if (!config) return;
|
|
139
|
-
|
|
140
|
-
const mcp = config.mcp;
|
|
141
|
-
if (!mcp || typeof mcp !== "object" || Array.isArray(mcp)) return;
|
|
142
|
-
const servers = mcp as Record<string, unknown>;
|
|
143
|
-
|
|
144
|
-
let changed = false;
|
|
145
|
-
for (const name of SCM_MCP_SERVERS) {
|
|
146
|
-
const server = servers[name];
|
|
147
|
-
if (!server || typeof server !== "object" || Array.isArray(server)) continue;
|
|
148
|
-
const serverObj = server as Record<string, unknown>;
|
|
149
|
-
const shouldEnable = enabled.has(name);
|
|
150
|
-
if (serverObj.enabled !== shouldEnable) {
|
|
151
|
-
serverObj.enabled = shouldEnable;
|
|
152
|
-
changed = true;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (!changed) return;
|
|
157
|
-
await writeJson(path, config);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function arraysEqual(a: string[], b: string[]): boolean {
|
|
161
|
-
if (a.length !== b.length) return false;
|
|
162
|
-
for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Apply the current `scm` selection to the project's agent config files.
|
|
168
|
-
* No-op when `scm` is unset. Swallows errors so a malformed agent
|
|
169
|
-
* config never blocks `atomic chat` / `atomic workflow` startup.
|
|
170
|
-
*/
|
|
171
|
-
export async function syncScmMcpServers(projectRoot: string): Promise<void> {
|
|
172
|
-
try {
|
|
173
|
-
const config = await readAtomicConfig(projectRoot);
|
|
174
|
-
const scm = config?.scm;
|
|
175
|
-
if (!scm) return;
|
|
176
|
-
|
|
177
|
-
const enabled = enabledServersFor(scm);
|
|
178
|
-
await Promise.all([
|
|
179
|
-
syncClaudeSettings(projectRoot, enabled),
|
|
180
|
-
syncOpencodeSettings(projectRoot, enabled),
|
|
181
|
-
]);
|
|
182
|
-
} catch {
|
|
183
|
-
// Best-effort: never block startup on a config write failure.
|
|
184
|
-
}
|
|
185
|
-
}
|