@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,441 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Stop Hook command — internal handler for Claude Code's Stop hook.
|
|
3
|
-
*
|
|
4
|
-
* Claude invokes `atomic _claude-stop-hook` at the end of every turn,
|
|
5
|
-
* piping a JSON payload via stdin. This handler has two jobs:
|
|
6
|
-
*
|
|
7
|
-
* 1. Write a per-session marker file that the workflow runtime watches via
|
|
8
|
-
* `fs.watch` to detect turn completion (replacing tmux-pane scraping).
|
|
9
|
-
*
|
|
10
|
-
* 2. Deliver follow-up prompts without tmux send-keys. After the marker is
|
|
11
|
-
* written, this process block-polls `~/.atomic/claude-queue/<session_id>`.
|
|
12
|
-
* If the workflow enqueues a prompt there, we read it, delete the queue
|
|
13
|
-
* entry, and emit `{"decision":"block","reason":<prompt>}` on stdout.
|
|
14
|
-
* Claude Code treats `reason` as the next user message and keeps the
|
|
15
|
-
* agent loop running on the same session — no TUI keystrokes required.
|
|
16
|
-
* If the workflow instead signals session end via
|
|
17
|
-
* `~/.atomic/claude-release/<session_id>`, we exit 0 and let Claude stop.
|
|
18
|
-
*
|
|
19
|
-
* Usage (configured in Claude's Stop hook):
|
|
20
|
-
* atomic _claude-stop-hook
|
|
21
|
-
*
|
|
22
|
-
* Payload (JSON via stdin):
|
|
23
|
-
* {
|
|
24
|
-
* "session_id": "abc123",
|
|
25
|
-
* "transcript_path": "/path/to/transcript",
|
|
26
|
-
* "cwd": "/path/to/cwd",
|
|
27
|
-
* "stop_hook_active": false
|
|
28
|
-
* }
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
import fs from "node:fs/promises";
|
|
32
|
-
import { watch as watchDir } from "node:fs/promises";
|
|
33
|
-
import { existsSync } from "node:fs";
|
|
34
|
-
import path from "node:path";
|
|
35
|
-
import os from "node:os";
|
|
36
|
-
import {
|
|
37
|
-
inflightDirIsEmpty,
|
|
38
|
-
sweepStaleInflight,
|
|
39
|
-
} from "./claude-inflight-hook.ts";
|
|
40
|
-
|
|
41
|
-
/** Shape of the JSON payload Claude pipes to the Stop hook via stdin. */
|
|
42
|
-
export interface ClaudeStopHookPayload {
|
|
43
|
-
session_id: string;
|
|
44
|
-
transcript_path?: string;
|
|
45
|
-
cwd?: string;
|
|
46
|
-
stop_hook_active?: boolean;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Type guard to verify that a parsed value conforms to ClaudeStopHookPayload.
|
|
51
|
-
*/
|
|
52
|
-
function isClaudeStopHookPayload(value: unknown): value is ClaudeStopHookPayload {
|
|
53
|
-
if (typeof value !== "object" || value === null) return false;
|
|
54
|
-
const obj = value as Record<string, unknown>;
|
|
55
|
-
if (typeof obj["session_id"] !== "string") return false;
|
|
56
|
-
if (obj["transcript_path"] !== undefined && typeof obj["transcript_path"] !== "string") return false;
|
|
57
|
-
if (obj["cwd"] !== undefined && typeof obj["cwd"] !== "string") return false;
|
|
58
|
-
if (obj["stop_hook_active"] !== undefined && typeof obj["stop_hook_active"] !== "boolean") return false;
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Directory paths used by the Stop hook and the workflow runtime to exchange
|
|
64
|
-
* per-session signals.
|
|
65
|
-
*
|
|
66
|
-
* Exported so tests and `src/sdk/providers/claude.ts` share one source of truth.
|
|
67
|
-
*/
|
|
68
|
-
export function claudeHookDirs(): {
|
|
69
|
-
marker: string;
|
|
70
|
-
queue: string;
|
|
71
|
-
release: string;
|
|
72
|
-
hil: string;
|
|
73
|
-
pid: string;
|
|
74
|
-
ready: string;
|
|
75
|
-
inflight: string;
|
|
76
|
-
inflightRoots: string;
|
|
77
|
-
} {
|
|
78
|
-
const base = path.join(os.homedir(), ".atomic");
|
|
79
|
-
const inflightBase = path.join(base, "claude-inflight");
|
|
80
|
-
return {
|
|
81
|
-
marker: path.join(base, "claude-stop"),
|
|
82
|
-
queue: path.join(base, "claude-queue"),
|
|
83
|
-
release: path.join(base, "claude-release"),
|
|
84
|
-
hil: path.join(base, "claude-hil"),
|
|
85
|
-
// Holds the PID of the atomic workflow process that owns each session.
|
|
86
|
-
// The Stop hook polls `process.kill(pid, 0)` against this value so that
|
|
87
|
-
// if atomic is SIGKILL'd (no chance to write a release marker), the hook
|
|
88
|
-
// can detect the orphaned session and self-exit instead of sitting in
|
|
89
|
-
// its wait loop for ~24 days.
|
|
90
|
-
pid: path.join(base, "claude-pid"),
|
|
91
|
-
// Written by the SessionStart hook on fresh spawns. The workflow runtime
|
|
92
|
-
// watches this directory to detect readiness — positive signal, unlike
|
|
93
|
-
// racing the JSONL writer.
|
|
94
|
-
ready: path.join(base, "claude-ready"),
|
|
95
|
-
// Per-root-session marker dirs (`<inflight>/<root_session_id>/<id>`)
|
|
96
|
-
// populated by the SubagentStart/SubagentStop and TaskCreated/
|
|
97
|
-
// TaskCompleted hooks. Both `clearClaudeSession` and the Stop hook gate
|
|
98
|
-
// on this dir being empty before letting the stage advance, so a stage
|
|
99
|
-
// never tears down while it still has live subagents/tasks holding FDs.
|
|
100
|
-
inflight: inflightBase,
|
|
101
|
-
// `<inflight>/.session-roots/<session_id>` → root_session_id mapping.
|
|
102
|
-
// SubagentStart writes a mapping for every spawned agent so that nested
|
|
103
|
-
// subagents (a subagent spawning its own subagent) can resolve which
|
|
104
|
-
// stage's root they belong to and write their marker under the right
|
|
105
|
-
// root. Lives alongside `inflight/` rather than under it so a `readdir`
|
|
106
|
-
// of `<inflight>/<root>/` only returns id markers.
|
|
107
|
-
inflightRoots: path.join(inflightBase, ".session-roots"),
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/** Options for {@link claudeStopHookCommand}. Primarily used by tests to shrink the wait budget. */
|
|
112
|
-
export interface ClaudeStopHookOptions {
|
|
113
|
-
/** Maximum time the hook waits for a queued follow-up prompt before letting Claude stop. */
|
|
114
|
-
waitTimeoutMs?: number;
|
|
115
|
-
/**
|
|
116
|
-
* Interval for the polling fallback that runs alongside the `fs.watch`
|
|
117
|
-
* watchers in case an inotify/FSEvent notification gets dropped. In the
|
|
118
|
-
* happy path, watcher events fire on create and the poll never matches.
|
|
119
|
-
*/
|
|
120
|
-
pollIntervalMs?: number;
|
|
121
|
-
/**
|
|
122
|
-
* Interval at which the hook checks whether the atomic workflow process
|
|
123
|
-
* that owns this session is still alive. Coarser than `pollIntervalMs`
|
|
124
|
-
* because atomic crashing is rare and `process.kill(pid, 0)` is a syscall.
|
|
125
|
-
*/
|
|
126
|
-
livenessIntervalMs?: number;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Effectively-unbounded default wait budget for the queue/release poll loop.
|
|
131
|
-
*
|
|
132
|
-
* The hook holds Claude Code in the Stop phase while the workflow runtime
|
|
133
|
-
* decides what to do next — either enqueueing a follow-up prompt (delivered
|
|
134
|
-
* back to Claude as `{decision:"block", reason:...}`) or writing a release
|
|
135
|
-
* marker on teardown. Any finite default here caps the time the workflow has
|
|
136
|
-
* between turns: when it expires, the hook exits 0, Claude stops, and the
|
|
137
|
-
* next `enqueuePrompt` writes to a file nobody's reading — the workflow
|
|
138
|
-
* hangs on `waitForIdle` for a turn that will never come.
|
|
139
|
-
*
|
|
140
|
-
* The Claude-side hook timeout (see `STOP_HOOK_TIMEOUT_SECONDS` in
|
|
141
|
-
* `src/sdk/providers/claude.ts`) is already set to ~24 days, so matching it
|
|
142
|
-
* here keeps the two bounds aligned — the hook either runs until the
|
|
143
|
-
* workflow releases it or until Claude Code itself gives up. Tests override
|
|
144
|
-
* `waitTimeoutMs` via options to keep runs fast.
|
|
145
|
-
*
|
|
146
|
-
* Expressed in ms: 2_147_483 s × 1000 = 2_147_483_000 ms, just under the
|
|
147
|
-
* max safe `setTimeout` value (2^31 - 1).
|
|
148
|
-
*/
|
|
149
|
-
const DEFAULT_WAIT_TIMEOUT_MS = 2_147_483_000;
|
|
150
|
-
const DEFAULT_POLL_INTERVAL_MS = 100;
|
|
151
|
-
const DEFAULT_LIVENESS_INTERVAL_MS = 5_000;
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Read the atomic PID that owns this session from `~/.atomic/claude-pid/<id>`,
|
|
155
|
-
* or return null if the file is missing / malformed. Missing is fine: older
|
|
156
|
-
* runtimes didn't write one, and we just skip the liveness check in that case.
|
|
157
|
-
*/
|
|
158
|
-
async function readAtomicPid(pidFilePath: string): Promise<number | null> {
|
|
159
|
-
let raw: string;
|
|
160
|
-
try {
|
|
161
|
-
raw = await fs.readFile(pidFilePath, "utf-8");
|
|
162
|
-
} catch {
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
const parsed = Number.parseInt(raw.trim(), 10);
|
|
166
|
-
return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Sleep that resolves early when `signal` is aborted. Used by the hook's
|
|
171
|
-
* wait loops so `ac.abort()` unblocks everything immediately instead of
|
|
172
|
-
* waiting for the next wake-up tick — otherwise a task that detects a hit
|
|
173
|
-
* (e.g. liveness check) can't meaningfully cancel its siblings.
|
|
174
|
-
*/
|
|
175
|
-
function abortableSleep(ms: number, signal: AbortSignal): Promise<void> {
|
|
176
|
-
return new Promise<void>((resolve) => {
|
|
177
|
-
if (signal.aborted) {
|
|
178
|
-
resolve();
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
const timer = setTimeout(() => {
|
|
182
|
-
signal.removeEventListener("abort", onAbort);
|
|
183
|
-
resolve();
|
|
184
|
-
}, ms);
|
|
185
|
-
const onAbort = (): void => {
|
|
186
|
-
clearTimeout(timer);
|
|
187
|
-
resolve();
|
|
188
|
-
};
|
|
189
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* True when a process with `pid` exists. Uses signal `0`, which performs the
|
|
195
|
-
* permission/existence check without delivering a signal. ESRCH means gone,
|
|
196
|
-
* EPERM means alive-but-not-ours (still alive for our purposes).
|
|
197
|
-
*/
|
|
198
|
-
function isProcessAlive(pid: number): boolean {
|
|
199
|
-
try {
|
|
200
|
-
process.kill(pid, 0);
|
|
201
|
-
return true;
|
|
202
|
-
} catch (e: unknown) {
|
|
203
|
-
if (e instanceof Error && "code" in e) {
|
|
204
|
-
const code = (e as NodeJS.ErrnoException).code;
|
|
205
|
-
if (code === "EPERM") return true;
|
|
206
|
-
if (code === "ESRCH") return false;
|
|
207
|
-
}
|
|
208
|
-
// Unknown error — assume alive to avoid false-positive teardown.
|
|
209
|
-
return true;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Handler for the hidden `_claude-stop-hook` subcommand.
|
|
215
|
-
*
|
|
216
|
-
* Returns an exit code (0 on success or benign failure). The caller
|
|
217
|
-
* in src/cli.ts does `process.exit(exitCode)`, so we just return the code.
|
|
218
|
-
*
|
|
219
|
-
* We always return 0 — a non-zero exit would surface as a hook error in
|
|
220
|
-
* Claude's transcript, which is not what we want.
|
|
221
|
-
*/
|
|
222
|
-
export async function claudeStopHookCommand(
|
|
223
|
-
options: ClaudeStopHookOptions = {},
|
|
224
|
-
): Promise<number> {
|
|
225
|
-
const waitTimeoutMs = options.waitTimeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
|
|
226
|
-
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
227
|
-
const livenessIntervalMs =
|
|
228
|
-
options.livenessIntervalMs ?? DEFAULT_LIVENESS_INTERVAL_MS;
|
|
229
|
-
|
|
230
|
-
// 1. Read stdin
|
|
231
|
-
const raw = await Bun.stdin.text();
|
|
232
|
-
|
|
233
|
-
// 2. Parse JSON
|
|
234
|
-
let payload: ClaudeStopHookPayload;
|
|
235
|
-
try {
|
|
236
|
-
const parsed: unknown = JSON.parse(raw);
|
|
237
|
-
if (!isClaudeStopHookPayload(parsed)) {
|
|
238
|
-
console.error("[claude-stop-hook] Invalid payload: missing or malformed 'session_id'");
|
|
239
|
-
return 0;
|
|
240
|
-
}
|
|
241
|
-
payload = parsed;
|
|
242
|
-
} catch {
|
|
243
|
-
console.error("[claude-stop-hook] Failed to parse stdin as JSON");
|
|
244
|
-
return 0;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
// NOTE: we intentionally do NOT early-exit on `stop_hook_active === true`.
|
|
248
|
-
//
|
|
249
|
-
// Claude Code sets `stopHookActive: true` in its query state after any Stop
|
|
250
|
-
// hook returns a `{decision:"block"}` response, and that flag stays true for
|
|
251
|
-
// every subsequent Stop hook invocation in the same session (see
|
|
252
|
-
// `src/query.ts` → `transition: { reason: 'stop_hook_blocking' }`). In a
|
|
253
|
-
// multi-turn workflow, every follow-up turn after the first is therefore
|
|
254
|
-
// invoked with `stop_hook_active=true`. Returning early here would skip the
|
|
255
|
-
// marker write, leaving `waitForIdle` hanging forever, and would skip the
|
|
256
|
-
// queue poll so the workflow's next `s.session.query(...)` would never
|
|
257
|
-
// reach Claude.
|
|
258
|
-
//
|
|
259
|
-
// Our design doesn't need the generic loop guard: the hook only emits a
|
|
260
|
-
// `block` decision when the workflow runtime has written a prompt to the
|
|
261
|
-
// queue file. Infinite loops are bounded by the workflow (which either
|
|
262
|
-
// enqueues a finite number of prompts or writes a release marker on
|
|
263
|
-
// teardown via `clearClaudeSession`).
|
|
264
|
-
const dirs = claudeHookDirs();
|
|
265
|
-
await Promise.all([
|
|
266
|
-
fs.mkdir(dirs.marker, { recursive: true }),
|
|
267
|
-
fs.mkdir(dirs.queue, { recursive: true }),
|
|
268
|
-
fs.mkdir(dirs.release, { recursive: true }),
|
|
269
|
-
fs.mkdir(dirs.pid, { recursive: true }),
|
|
270
|
-
]);
|
|
271
|
-
|
|
272
|
-
// 4. Write the marker file directly.
|
|
273
|
-
//
|
|
274
|
-
// We intentionally do NOT use a tmp+rename dance here. On Linux, inotify
|
|
275
|
-
// emits the rename event with `filename=<session_id>.tmp` (the source),
|
|
276
|
-
// which made `waitForIdle`'s `event.filename === session_id` filter miss
|
|
277
|
-
// the event entirely and hang forever. A direct write on a tiny payload is
|
|
278
|
-
// effectively atomic at the page-cache level and generates a single event
|
|
279
|
-
// whose filename matches the session id — which is all `waitForIdle` needs.
|
|
280
|
-
const markerPath = path.join(dirs.marker, payload.session_id);
|
|
281
|
-
await Bun.write(markerPath, raw);
|
|
282
|
-
|
|
283
|
-
// 5. Wait for either a queued follow-up prompt or a release signal.
|
|
284
|
-
//
|
|
285
|
-
// The workflow's `waitForIdle` has already been unblocked by the marker
|
|
286
|
-
// write above and is now returning control to the user's stage callback.
|
|
287
|
-
// One of three things happens next:
|
|
288
|
-
//
|
|
289
|
-
// a. The callback calls `s.session.query(next)`, which writes the next
|
|
290
|
-
// prompt to `~/.atomic/claude-queue/<session_id>`. We read it, delete
|
|
291
|
-
// the queue entry, and emit `{"decision":"block","reason":<prompt>}`
|
|
292
|
-
// on stdout. Claude Code feeds `reason` back as the next user message
|
|
293
|
-
// and keeps the turn loop running — no tmux keystrokes involved.
|
|
294
|
-
//
|
|
295
|
-
// b. The callback returns and the runtime writes a release marker at
|
|
296
|
-
// `~/.atomic/claude-release/<session_id>`. We exit 0 with no stdout
|
|
297
|
-
// payload and Claude stops as usual.
|
|
298
|
-
//
|
|
299
|
-
// c. Neither happens within `waitTimeoutMs`. We exit 0 so Claude Code
|
|
300
|
-
// doesn't hang past its own per-hook timeout. The production default
|
|
301
|
-
// for `waitTimeoutMs` is aligned with the Claude-side hook timeout
|
|
302
|
-
// (~24 days), so this path is effectively unreachable in real runs —
|
|
303
|
-
// it only fires in tests that pass a short override.
|
|
304
|
-
//
|
|
305
|
-
// Delivery uses `fs.watch` on the queue and release dirs for ~0-latency
|
|
306
|
-
// wake-up on create events, with a slower `existsSync` polling fallback
|
|
307
|
-
// in case a watcher notification gets dropped under fs load (same pattern
|
|
308
|
-
// as `watchHILMarker` in `src/sdk/providers/claude.ts`).
|
|
309
|
-
const queuePath = path.join(dirs.queue, payload.session_id);
|
|
310
|
-
const releasePath = path.join(dirs.release, payload.session_id);
|
|
311
|
-
|
|
312
|
-
type Hit = { kind: "release" } | { kind: "queue"; prompt: string };
|
|
313
|
-
|
|
314
|
-
const check = async (): Promise<Hit | null> => {
|
|
315
|
-
// Queue takes priority over release: if the runtime enqueued a follow-up
|
|
316
|
-
// prompt, we want to deliver it and let Claude run another turn. The
|
|
317
|
-
// workflow only writes a release marker when it's actually torn down, so
|
|
318
|
-
// a queue + release race only happens at session end — and in that case
|
|
319
|
-
// the queue prompt was authored before teardown, so honoring it first is
|
|
320
|
-
// correct.
|
|
321
|
-
if (existsSync(queuePath)) {
|
|
322
|
-
let prompt: string;
|
|
323
|
-
try {
|
|
324
|
-
prompt = await fs.readFile(queuePath, "utf-8");
|
|
325
|
-
} catch {
|
|
326
|
-
// Treat a failed read as a graceful release so the hook still exits.
|
|
327
|
-
return { kind: "release" };
|
|
328
|
-
}
|
|
329
|
-
try { await fs.unlink(queuePath); } catch { /* ENOENT is fine */ }
|
|
330
|
-
return { kind: "queue", prompt };
|
|
331
|
-
}
|
|
332
|
-
if (existsSync(releasePath)) {
|
|
333
|
-
// Don't consume the release marker until in-flight subagents/tasks
|
|
334
|
-
// have drained. Reaping the marker prematurely would let Claude exit
|
|
335
|
-
// while backgrounded children still hold FDs/PTYs on the atomic tmux
|
|
336
|
-
// server, which is the failure mode the inflight tracking exists to
|
|
337
|
-
// prevent. Stale-sweep first so a crashed subagent that never fired
|
|
338
|
-
// SubagentStop doesn't wedge the wait forever.
|
|
339
|
-
await sweepStaleInflight(payload.session_id);
|
|
340
|
-
if (!(await inflightDirIsEmpty(payload.session_id))) {
|
|
341
|
-
return null;
|
|
342
|
-
}
|
|
343
|
-
try { await fs.unlink(releasePath); } catch { /* ENOENT is fine */ }
|
|
344
|
-
return { kind: "release" };
|
|
345
|
-
}
|
|
346
|
-
return null;
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
const emit = (hit: Hit): number => {
|
|
350
|
-
if (hit.kind === "queue") {
|
|
351
|
-
process.stdout.write(JSON.stringify({
|
|
352
|
-
decision: "block",
|
|
353
|
-
reason: hit.prompt,
|
|
354
|
-
}));
|
|
355
|
-
}
|
|
356
|
-
return 0;
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
// Initial synchronous check — the runtime may have enqueued/released before
|
|
360
|
-
// we attached watchers, and without this the hook could hang until the
|
|
361
|
-
// polling fallback fires.
|
|
362
|
-
const early = await check();
|
|
363
|
-
if (early) return emit(early);
|
|
364
|
-
|
|
365
|
-
const ac = new AbortController();
|
|
366
|
-
const overallTimer = setTimeout(() => ac.abort(), waitTimeoutMs);
|
|
367
|
-
let hit: Hit | null = null;
|
|
368
|
-
|
|
369
|
-
// Read the atomic workflow's PID (if the runtime wrote one for this
|
|
370
|
-
// session). Used by the liveness task below to detect an atomic crash.
|
|
371
|
-
const atomicPid = await readAtomicPid(
|
|
372
|
-
path.join(dirs.pid, payload.session_id),
|
|
373
|
-
);
|
|
374
|
-
|
|
375
|
-
// Watch a single directory for change events and resolve `hit` on the
|
|
376
|
-
// first one that matches. `event.filename` is unreliable across OSes
|
|
377
|
-
// (see the comment in `watchHILMarker`), so disk state is authoritative.
|
|
378
|
-
const runWatcher = async (dir: string): Promise<void> => {
|
|
379
|
-
try {
|
|
380
|
-
for await (const _event of watchDir(dir, { signal: ac.signal })) {
|
|
381
|
-
const result = await check();
|
|
382
|
-
if (result) {
|
|
383
|
-
hit = result;
|
|
384
|
-
ac.abort();
|
|
385
|
-
return;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
} catch (e: unknown) {
|
|
389
|
-
if (!(e instanceof Error && e.name === "AbortError")) throw e;
|
|
390
|
-
}
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
// Polling fallback — catches the rare dropped inotify/FSEvent event.
|
|
394
|
-
// Only runs while the watchers are live; `ac.abort()` shuts it down.
|
|
395
|
-
const runPollFallback = async (): Promise<void> => {
|
|
396
|
-
while (!ac.signal.aborted) {
|
|
397
|
-
await abortableSleep(pollIntervalMs, ac.signal);
|
|
398
|
-
if (ac.signal.aborted) return;
|
|
399
|
-
const result = await check();
|
|
400
|
-
if (result) {
|
|
401
|
-
hit = result;
|
|
402
|
-
ac.abort();
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
};
|
|
407
|
-
|
|
408
|
-
// Liveness check — if the atomic workflow process died without writing a
|
|
409
|
-
// release marker (e.g. SIGKILL), this task abandons the wait and lets
|
|
410
|
-
// Claude stop. No-op when there's no pid file (older sessions or non-
|
|
411
|
-
// runtime spawns) so the hook still functions standalone.
|
|
412
|
-
const runLivenessCheck = async (): Promise<void> => {
|
|
413
|
-
if (atomicPid === null) return;
|
|
414
|
-
while (!ac.signal.aborted) {
|
|
415
|
-
await abortableSleep(livenessIntervalMs, ac.signal);
|
|
416
|
-
if (ac.signal.aborted) return;
|
|
417
|
-
if (!isProcessAlive(atomicPid)) {
|
|
418
|
-
// hit stays null → the hook exits 0 without emitting a block decision.
|
|
419
|
-
ac.abort();
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
};
|
|
424
|
-
|
|
425
|
-
try {
|
|
426
|
-
await Promise.all([
|
|
427
|
-
runWatcher(dirs.queue),
|
|
428
|
-
runWatcher(dirs.release),
|
|
429
|
-
runPollFallback(),
|
|
430
|
-
runLivenessCheck(),
|
|
431
|
-
]);
|
|
432
|
-
} finally {
|
|
433
|
-
clearTimeout(overallTimer);
|
|
434
|
-
ac.abort();
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
if (hit) return emit(hit);
|
|
438
|
-
|
|
439
|
-
// Timeout — no queued prompt arrived. Let Claude stop normally.
|
|
440
|
-
return 0;
|
|
441
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
bashCompletionScript,
|
|
3
|
-
zshCompletionScript,
|
|
4
|
-
fishCompletionScript,
|
|
5
|
-
powershellCompletionScript,
|
|
6
|
-
type Shell,
|
|
7
|
-
} from "../../completions/index.ts";
|
|
8
|
-
|
|
9
|
-
const SCRIPTS: Record<Shell, string> = {
|
|
10
|
-
bash: bashCompletionScript,
|
|
11
|
-
zsh: zshCompletionScript,
|
|
12
|
-
fish: fishCompletionScript,
|
|
13
|
-
powershell: powershellCompletionScript,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Print the shell completion script for the given shell to stdout.
|
|
18
|
-
* Returns 0 on success, 1 on unknown shell.
|
|
19
|
-
*/
|
|
20
|
-
export function completionsCommand(shell: Shell): number {
|
|
21
|
-
const script = SCRIPTS[shell];
|
|
22
|
-
process.stdout.write(script);
|
|
23
|
-
return 0;
|
|
24
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Config command - Manage Atomic CLI configuration
|
|
3
|
-
*
|
|
4
|
-
* Usage: atomic config set <key> <value>
|
|
5
|
-
*
|
|
6
|
-
* Currently supported:
|
|
7
|
-
* atomic config set telemetry true|false
|
|
8
|
-
* atomic config set scm github|azure-devops|sapling
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { log } from "@clack/prompts";
|
|
12
|
-
import {
|
|
13
|
-
setScmProvider,
|
|
14
|
-
setTelemetryEnabled,
|
|
15
|
-
} from "../../services/config/settings.ts";
|
|
16
|
-
import { SCM_PROVIDERS, isScmProvider } from "../../services/config/atomic-config.ts";
|
|
17
|
-
|
|
18
|
-
const SUPPORTED_KEYS = ["telemetry", "scm"] as const;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Execute the config command
|
|
22
|
-
*/
|
|
23
|
-
export async function configCommand(
|
|
24
|
-
subcommand: string | undefined,
|
|
25
|
-
key: string | undefined,
|
|
26
|
-
value: string | undefined
|
|
27
|
-
): Promise<number> {
|
|
28
|
-
if (!subcommand) {
|
|
29
|
-
log.error("Missing subcommand. Usage: atomic config set <key> <value>");
|
|
30
|
-
return 1;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (subcommand !== "set") {
|
|
34
|
-
log.error(`Unknown subcommand: ${subcommand}. Only 'set' is supported.`);
|
|
35
|
-
return 1;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (!key) {
|
|
39
|
-
log.error("Missing key. Usage: atomic config set <key> <value>");
|
|
40
|
-
return 1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (!(SUPPORTED_KEYS as readonly string[]).includes(key)) {
|
|
44
|
-
log.error(
|
|
45
|
-
`Unknown config key: ${key}. Supported keys: ${SUPPORTED_KEYS.join(", ")}.`,
|
|
46
|
-
);
|
|
47
|
-
return 1;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (!value) {
|
|
51
|
-
log.error(`Missing value. Usage: atomic config set ${key} <value>`);
|
|
52
|
-
return 1;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (key === "telemetry") {
|
|
56
|
-
if (value !== "true" && value !== "false") {
|
|
57
|
-
log.error(`Invalid value: ${value}. Must be 'true' or 'false'.`);
|
|
58
|
-
return 1;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const enabled = value === "true";
|
|
62
|
-
await setTelemetryEnabled(enabled);
|
|
63
|
-
log.success(`Telemetry has been ${enabled ? "enabled" : "disabled"}.`);
|
|
64
|
-
return 0;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// key === "scm"
|
|
68
|
-
if (!isScmProvider(value)) {
|
|
69
|
-
log.error(
|
|
70
|
-
`Invalid value: ${value}. Must be one of: ${SCM_PROVIDERS.join(", ")}.`,
|
|
71
|
-
);
|
|
72
|
-
return 1;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
await setScmProvider(value);
|
|
76
|
-
log.success(
|
|
77
|
-
`Source control provider set to ${value}. The GitHub and Azure DevOps MCP servers in .claude/settings.json and .opencode/opencode.json will be reconciled on the next 'atomic chat' or 'atomic workflow' run.`,
|
|
78
|
-
);
|
|
79
|
-
return 0;
|
|
80
|
-
}
|