docagent-cli 0.0.35__py3-none-any.whl
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.
- docagent_cli/__init__.py +36 -0
- docagent_cli/__main__.py +6 -0
- docagent_cli/_ask_user_types.py +90 -0
- docagent_cli/_cli_context.py +27 -0
- docagent_cli/_debug.py +52 -0
- docagent_cli/_env_vars.py +56 -0
- docagent_cli/_server_config.py +352 -0
- docagent_cli/_session_stats.py +114 -0
- docagent_cli/_testing_models.py +144 -0
- docagent_cli/_version.py +17 -0
- docagent_cli/agent.py +1193 -0
- docagent_cli/app.py +4979 -0
- docagent_cli/app.tcss +283 -0
- docagent_cli/ask_user.py +301 -0
- docagent_cli/built_in_skills/__init__.py +5 -0
- docagent_cli/built_in_skills/doc-coauthoring/SKILL.md +375 -0
- docagent_cli/built_in_skills/docx/LICENSE.txt +30 -0
- docagent_cli/built_in_skills/docx/SKILL.md +590 -0
- docagent_cli/built_in_skills/docx/scripts/__init__.py +1 -0
- docagent_cli/built_in_skills/docx/scripts/accept_changes.py +135 -0
- docagent_cli/built_in_skills/docx/scripts/comment.py +318 -0
- docagent_cli/built_in_skills/docx/scripts/office/helpers/__init__.py +0 -0
- docagent_cli/built_in_skills/docx/scripts/office/helpers/merge_runs.py +199 -0
- docagent_cli/built_in_skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- docagent_cli/built_in_skills/docx/scripts/office/pack.py +159 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- docagent_cli/built_in_skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- docagent_cli/built_in_skills/docx/scripts/office/soffice.py +183 -0
- docagent_cli/built_in_skills/docx/scripts/office/unpack.py +132 -0
- docagent_cli/built_in_skills/docx/scripts/office/validate.py +111 -0
- docagent_cli/built_in_skills/docx/scripts/office/validators/__init__.py +15 -0
- docagent_cli/built_in_skills/docx/scripts/office/validators/base.py +847 -0
- docagent_cli/built_in_skills/docx/scripts/office/validators/docx.py +446 -0
- docagent_cli/built_in_skills/docx/scripts/office/validators/pptx.py +275 -0
- docagent_cli/built_in_skills/docx/scripts/office/validators/redlining.py +247 -0
- docagent_cli/built_in_skills/docx/scripts/templates/comments.xml +3 -0
- docagent_cli/built_in_skills/docx/scripts/templates/commentsExtended.xml +3 -0
- docagent_cli/built_in_skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- docagent_cli/built_in_skills/docx/scripts/templates/commentsIds.xml +3 -0
- docagent_cli/built_in_skills/docx/scripts/templates/people.xml +3 -0
- docagent_cli/built_in_skills/pdf/LICENSE.txt +30 -0
- docagent_cli/built_in_skills/pdf/SKILL.md +314 -0
- docagent_cli/built_in_skills/pdf/forms.md +294 -0
- docagent_cli/built_in_skills/pdf/reference.md +612 -0
- docagent_cli/built_in_skills/pdf/scripts/check_bounding_boxes.py +65 -0
- docagent_cli/built_in_skills/pdf/scripts/check_fillable_fields.py +11 -0
- docagent_cli/built_in_skills/pdf/scripts/convert_pdf_to_images.py +33 -0
- docagent_cli/built_in_skills/pdf/scripts/create_validation_image.py +37 -0
- docagent_cli/built_in_skills/pdf/scripts/extract_form_field_info.py +122 -0
- docagent_cli/built_in_skills/pdf/scripts/extract_form_structure.py +115 -0
- docagent_cli/built_in_skills/pdf/scripts/fill_fillable_fields.py +98 -0
- docagent_cli/built_in_skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- docagent_cli/built_in_skills/pptx/LICENSE.txt +30 -0
- docagent_cli/built_in_skills/pptx/SKILL.md +232 -0
- docagent_cli/built_in_skills/pptx/editing.md +205 -0
- docagent_cli/built_in_skills/pptx/pptxgenjs.md +420 -0
- docagent_cli/built_in_skills/pptx/scripts/__init__.py +0 -0
- docagent_cli/built_in_skills/pptx/scripts/add_slide.py +195 -0
- docagent_cli/built_in_skills/pptx/scripts/clean.py +286 -0
- docagent_cli/built_in_skills/pptx/scripts/office/helpers/__init__.py +0 -0
- docagent_cli/built_in_skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
- docagent_cli/built_in_skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
- docagent_cli/built_in_skills/pptx/scripts/office/pack.py +159 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- docagent_cli/built_in_skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- docagent_cli/built_in_skills/pptx/scripts/office/soffice.py +183 -0
- docagent_cli/built_in_skills/pptx/scripts/office/unpack.py +132 -0
- docagent_cli/built_in_skills/pptx/scripts/office/validate.py +111 -0
- docagent_cli/built_in_skills/pptx/scripts/office/validators/__init__.py +15 -0
- docagent_cli/built_in_skills/pptx/scripts/office/validators/base.py +847 -0
- docagent_cli/built_in_skills/pptx/scripts/office/validators/docx.py +446 -0
- docagent_cli/built_in_skills/pptx/scripts/office/validators/pptx.py +275 -0
- docagent_cli/built_in_skills/pptx/scripts/office/validators/redlining.py +247 -0
- docagent_cli/built_in_skills/pptx/scripts/thumbnail.py +289 -0
- docagent_cli/built_in_skills/remember/SKILL.md +118 -0
- docagent_cli/built_in_skills/skill-creator/LICENSE.txt +202 -0
- docagent_cli/built_in_skills/skill-creator/SKILL.md +485 -0
- docagent_cli/built_in_skills/skill-creator/agents/analyzer.md +274 -0
- docagent_cli/built_in_skills/skill-creator/agents/comparator.md +202 -0
- docagent_cli/built_in_skills/skill-creator/agents/grader.md +223 -0
- docagent_cli/built_in_skills/skill-creator/assets/eval_review.html +146 -0
- docagent_cli/built_in_skills/skill-creator/eval-viewer/generate_review.py +471 -0
- docagent_cli/built_in_skills/skill-creator/eval-viewer/viewer.html +1325 -0
- docagent_cli/built_in_skills/skill-creator/references/schemas.md +430 -0
- docagent_cli/built_in_skills/skill-creator/scripts/__init__.py +0 -0
- docagent_cli/built_in_skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- docagent_cli/built_in_skills/skill-creator/scripts/generate_report.py +326 -0
- docagent_cli/built_in_skills/skill-creator/scripts/improve_description.py +247 -0
- docagent_cli/built_in_skills/skill-creator/scripts/package_skill.py +136 -0
- docagent_cli/built_in_skills/skill-creator/scripts/quick_validate.py +103 -0
- docagent_cli/built_in_skills/skill-creator/scripts/run_eval.py +310 -0
- docagent_cli/built_in_skills/skill-creator/scripts/run_loop.py +328 -0
- docagent_cli/built_in_skills/skill-creator/scripts/utils.py +47 -0
- docagent_cli/built_in_skills/theme-factory/LICENSE.txt +202 -0
- docagent_cli/built_in_skills/theme-factory/SKILL.md +59 -0
- docagent_cli/built_in_skills/theme-factory/theme-showcase.pdf +0 -0
- docagent_cli/built_in_skills/theme-factory/themes/arctic-frost.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/botanical-garden.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/desert-rose.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/forest-canopy.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/golden-hour.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/midnight-galaxy.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/modern-minimalist.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/ocean-depths.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/sunset-boulevard.md +19 -0
- docagent_cli/built_in_skills/theme-factory/themes/tech-innovation.md +19 -0
- docagent_cli/built_in_skills/xlsx/LICENSE.txt +30 -0
- docagent_cli/built_in_skills/xlsx/SKILL.md +292 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/pack.py +159 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/soffice.py +183 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/unpack.py +132 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/validate.py +111 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/validators/__init__.py +15 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/validators/base.py +847 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/validators/docx.py +446 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/validators/pptx.py +275 -0
- docagent_cli/built_in_skills/xlsx/scripts/office/validators/redlining.py +247 -0
- docagent_cli/built_in_skills/xlsx/scripts/recalc.py +184 -0
- docagent_cli/clipboard.py +128 -0
- docagent_cli/command_registry.py +284 -0
- docagent_cli/config.py +2418 -0
- docagent_cli/configurable_model.py +162 -0
- docagent_cli/default_agent_prompt.md +12 -0
- docagent_cli/editor.py +142 -0
- docagent_cli/file_ops.py +473 -0
- docagent_cli/formatting.py +28 -0
- docagent_cli/hooks.py +206 -0
- docagent_cli/input.py +787 -0
- docagent_cli/integrations/__init__.py +1 -0
- docagent_cli/integrations/sandbox_factory.py +873 -0
- docagent_cli/integrations/sandbox_provider.py +71 -0
- docagent_cli/local_context.py +718 -0
- docagent_cli/main.py +1641 -0
- docagent_cli/mcp_tools.py +707 -0
- docagent_cli/mcp_trust.py +168 -0
- docagent_cli/media_utils.py +478 -0
- docagent_cli/model_config.py +1620 -0
- docagent_cli/non_interactive.py +948 -0
- docagent_cli/offload.py +371 -0
- docagent_cli/output.py +69 -0
- docagent_cli/project_utils.py +188 -0
- docagent_cli/py.typed +0 -0
- docagent_cli/remote_client.py +515 -0
- docagent_cli/server.py +520 -0
- docagent_cli/server_graph.py +196 -0
- docagent_cli/server_manager.py +365 -0
- docagent_cli/sessions.py +1262 -0
- docagent_cli/skills/__init__.py +18 -0
- docagent_cli/skills/commands.py +1090 -0
- docagent_cli/skills/load.py +192 -0
- docagent_cli/subagents.py +173 -0
- docagent_cli/system_prompt.md +247 -0
- docagent_cli/textual_adapter.py +1352 -0
- docagent_cli/theme.py +842 -0
- docagent_cli/token_state.py +31 -0
- docagent_cli/tool_display.py +298 -0
- docagent_cli/tools.py +236 -0
- docagent_cli/ui.py +420 -0
- docagent_cli/unicode_security.py +516 -0
- docagent_cli/update_check.py +454 -0
- docagent_cli/widgets/__init__.py +9 -0
- docagent_cli/widgets/_links.py +63 -0
- docagent_cli/widgets/approval.py +442 -0
- docagent_cli/widgets/ask_user.py +398 -0
- docagent_cli/widgets/autocomplete.py +691 -0
- docagent_cli/widgets/chat_input.py +1827 -0
- docagent_cli/widgets/diff.py +248 -0
- docagent_cli/widgets/history.py +188 -0
- docagent_cli/widgets/loading.py +177 -0
- docagent_cli/widgets/mcp_viewer.py +362 -0
- docagent_cli/widgets/message_store.py +675 -0
- docagent_cli/widgets/messages.py +1751 -0
- docagent_cli/widgets/model_selector.py +964 -0
- docagent_cli/widgets/status.py +372 -0
- docagent_cli/widgets/theme_selector.py +164 -0
- docagent_cli/widgets/thread_selector.py +1905 -0
- docagent_cli/widgets/tool_renderers.py +148 -0
- docagent_cli/widgets/tool_widgets.py +274 -0
- docagent_cli/widgets/welcome.py +339 -0
- docagent_cli-0.0.35.data/data/docagent_cli/default_agent_prompt.md +12 -0
- docagent_cli-0.0.35.dist-info/METADATA +200 -0
- docagent_cli-0.0.35.dist-info/RECORD +300 -0
- docagent_cli-0.0.35.dist-info/WHEEL +4 -0
- docagent_cli-0.0.35.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
"""Welcome banner widget for docagent-cli."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import asyncio
|
|
6
|
+
import random
|
|
7
|
+
from typing import TYPE_CHECKING, Any
|
|
8
|
+
|
|
9
|
+
from textual.color import Color as TColor
|
|
10
|
+
from textual.content import Content
|
|
11
|
+
from textual.style import Style as TStyle
|
|
12
|
+
from textual.widgets import Static
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from textual.events import Click
|
|
16
|
+
|
|
17
|
+
from docagent_cli import theme
|
|
18
|
+
from docagent_cli._version import __version__
|
|
19
|
+
from docagent_cli.config import (
|
|
20
|
+
_get_editable_install_path,
|
|
21
|
+
_is_editable_install,
|
|
22
|
+
fetch_langsmith_project_url,
|
|
23
|
+
get_banner,
|
|
24
|
+
get_glyphs,
|
|
25
|
+
get_langsmith_project_name,
|
|
26
|
+
)
|
|
27
|
+
from docagent_cli.widgets._links import open_style_link
|
|
28
|
+
|
|
29
|
+
_TIPS: list[str] = [
|
|
30
|
+
"Use @ to reference files and / for commands",
|
|
31
|
+
"Try /threads to resume a previous conversation",
|
|
32
|
+
"Use /offload when your conversation gets long",
|
|
33
|
+
"Use /mcp to see your loaded tools and servers",
|
|
34
|
+
"Use /remember to save learnings from this conversation",
|
|
35
|
+
"Use /model to switch models mid-conversation",
|
|
36
|
+
"Press ctrl+x to compose prompts in your external editor",
|
|
37
|
+
"Press ctrl+u to delete to the start of the line in the chat input",
|
|
38
|
+
"Use /skill:<name> to invoke a skill directly",
|
|
39
|
+
"Type /update to check for and install updates",
|
|
40
|
+
"Use /theme to customize the CLI colors and style",
|
|
41
|
+
"Use /skill-creator to build reusable agent skills",
|
|
42
|
+
"Use /auto-update to toggle automatic CLI updates",
|
|
43
|
+
]
|
|
44
|
+
"""Rotating tips shown in the welcome footer.
|
|
45
|
+
|
|
46
|
+
One is picked per session.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class WelcomeBanner(Static):
|
|
51
|
+
"""Welcome banner displayed at startup."""
|
|
52
|
+
|
|
53
|
+
# Disable Textual's auto_links to prevent a flicker cycle: Style.__add__
|
|
54
|
+
# calls .copy() for linked styles, generating a fresh random _link_id on
|
|
55
|
+
# each render. This means highlight_link_id never stabilizes, causing an
|
|
56
|
+
# infinite hover-refresh loop.
|
|
57
|
+
auto_links = False
|
|
58
|
+
|
|
59
|
+
DEFAULT_CSS = """
|
|
60
|
+
WelcomeBanner {
|
|
61
|
+
height: auto;
|
|
62
|
+
padding: 1;
|
|
63
|
+
margin-bottom: 1;
|
|
64
|
+
}
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
def __init__(
|
|
68
|
+
self,
|
|
69
|
+
thread_id: str | None = None,
|
|
70
|
+
mcp_tool_count: int = 0,
|
|
71
|
+
*,
|
|
72
|
+
connecting: bool = False,
|
|
73
|
+
resuming: bool = False,
|
|
74
|
+
local_server: bool = False,
|
|
75
|
+
**kwargs: Any,
|
|
76
|
+
) -> None:
|
|
77
|
+
"""Initialize the welcome banner.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
thread_id: Optional thread ID to display in the banner.
|
|
81
|
+
mcp_tool_count: Number of MCP tools loaded at startup.
|
|
82
|
+
connecting: When `True`, show a "Connecting..." footer instead of
|
|
83
|
+
the normal ready prompt. Call `set_connected` to transition.
|
|
84
|
+
resuming: When `True`, the connecting footer says "Resuming..."
|
|
85
|
+
instead of any `'Connecting...'` variant.
|
|
86
|
+
local_server: When `True`, the connecting footer qualifies the
|
|
87
|
+
server as "local" (i.e. a server process managed by the
|
|
88
|
+
CLI).
|
|
89
|
+
|
|
90
|
+
Ignored when `resuming` is `True`.
|
|
91
|
+
**kwargs: Additional arguments passed to parent.
|
|
92
|
+
"""
|
|
93
|
+
# Avoid collision with Widget._thread_id (Textual internal int)
|
|
94
|
+
self._cli_thread_id: str | None = thread_id
|
|
95
|
+
self._mcp_tool_count = mcp_tool_count
|
|
96
|
+
self._connecting = connecting
|
|
97
|
+
self._resuming = resuming
|
|
98
|
+
self._local_server = local_server
|
|
99
|
+
self._failed = False
|
|
100
|
+
self._failure_error: str = ""
|
|
101
|
+
self._project_name: str | None = get_langsmith_project_name()
|
|
102
|
+
self._project_url: str | None = None
|
|
103
|
+
self._tip: str = random.choice(_TIPS) # noqa: S311
|
|
104
|
+
|
|
105
|
+
super().__init__(self._build_banner(), **kwargs)
|
|
106
|
+
|
|
107
|
+
def on_mount(self) -> None:
|
|
108
|
+
"""Kick off background fetch for LangSmith project URL."""
|
|
109
|
+
self.watch(self.app, "theme", self._on_theme_change, init=False)
|
|
110
|
+
if self._project_name:
|
|
111
|
+
self.run_worker(self._fetch_and_update, exclusive=True)
|
|
112
|
+
|
|
113
|
+
def _on_theme_change(self) -> None:
|
|
114
|
+
"""Re-render the banner when the app theme changes."""
|
|
115
|
+
self.update(self._build_banner(self._project_url))
|
|
116
|
+
|
|
117
|
+
async def _fetch_and_update(self) -> None:
|
|
118
|
+
"""Fetch the LangSmith URL in a thread and update the banner."""
|
|
119
|
+
if not self._project_name:
|
|
120
|
+
return
|
|
121
|
+
try:
|
|
122
|
+
project_url = await asyncio.wait_for(
|
|
123
|
+
asyncio.to_thread(fetch_langsmith_project_url, self._project_name),
|
|
124
|
+
timeout=2.0,
|
|
125
|
+
)
|
|
126
|
+
except (TimeoutError, OSError):
|
|
127
|
+
project_url = None
|
|
128
|
+
if project_url:
|
|
129
|
+
self._project_url = project_url
|
|
130
|
+
self.update(self._build_banner(project_url))
|
|
131
|
+
|
|
132
|
+
def update_thread_id(self, thread_id: str) -> None:
|
|
133
|
+
"""Update the displayed thread ID and re-render the banner.
|
|
134
|
+
|
|
135
|
+
Args:
|
|
136
|
+
thread_id: The new thread ID to display.
|
|
137
|
+
"""
|
|
138
|
+
self._cli_thread_id = thread_id
|
|
139
|
+
self.update(self._build_banner(self._project_url))
|
|
140
|
+
|
|
141
|
+
def set_connected(self, mcp_tool_count: int = 0) -> None:
|
|
142
|
+
"""Transition from "connecting" to "ready" state.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
mcp_tool_count: Number of MCP tools loaded during connection.
|
|
146
|
+
"""
|
|
147
|
+
self._connecting = False
|
|
148
|
+
self._failed = False
|
|
149
|
+
self._mcp_tool_count = mcp_tool_count
|
|
150
|
+
self.update(self._build_banner(self._project_url))
|
|
151
|
+
|
|
152
|
+
def set_failed(self, error: str) -> None:
|
|
153
|
+
"""Transition from "connecting" to a persistent failure state.
|
|
154
|
+
|
|
155
|
+
Args:
|
|
156
|
+
error: Error message describing the server startup failure.
|
|
157
|
+
"""
|
|
158
|
+
self._connecting = False
|
|
159
|
+
self._failed = True
|
|
160
|
+
self._failure_error = error
|
|
161
|
+
self.update(self._build_banner(self._project_url))
|
|
162
|
+
|
|
163
|
+
def on_click(self, event: Click) -> None: # noqa: PLR6301 # Textual event handler
|
|
164
|
+
"""Open style-embedded hyperlinks on single click."""
|
|
165
|
+
open_style_link(event)
|
|
166
|
+
|
|
167
|
+
def _build_banner(self, project_url: str | None = None) -> Content:
|
|
168
|
+
"""Build the banner content.
|
|
169
|
+
|
|
170
|
+
When a `project_url` is provided and a thread ID is set, the thread ID
|
|
171
|
+
is rendered as a clickable hyperlink to the LangSmith thread view.
|
|
172
|
+
|
|
173
|
+
Args:
|
|
174
|
+
project_url: LangSmith project URL used for linking the project
|
|
175
|
+
name and thread ID. When `None`, text is rendered without links.
|
|
176
|
+
|
|
177
|
+
Returns:
|
|
178
|
+
Content object containing the formatted banner.
|
|
179
|
+
"""
|
|
180
|
+
parts: list[str | tuple[str, str | TStyle] | Content] = []
|
|
181
|
+
colors = theme.get_theme_colors(self)
|
|
182
|
+
ansi = self.app.theme == "textual-ansi"
|
|
183
|
+
|
|
184
|
+
banner = get_banner()
|
|
185
|
+
primary_style: str | TStyle = (
|
|
186
|
+
"bold"
|
|
187
|
+
if ansi
|
|
188
|
+
else TStyle(foreground=TColor.parse(colors.primary), bold=True)
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
if not ansi and _is_editable_install():
|
|
192
|
+
# Highlight local-install version tag with tool accent; art stays primary.
|
|
193
|
+
dev_style = TStyle(foreground=TColor.parse(colors.tool), bold=True)
|
|
194
|
+
version_tag = f"v{__version__} (local)"
|
|
195
|
+
idx = banner.rfind(version_tag)
|
|
196
|
+
if idx >= 0:
|
|
197
|
+
parts.extend(
|
|
198
|
+
[
|
|
199
|
+
(banner[:idx], primary_style),
|
|
200
|
+
(version_tag, dev_style),
|
|
201
|
+
(banner[idx + len(version_tag) :] + "\n", primary_style),
|
|
202
|
+
]
|
|
203
|
+
)
|
|
204
|
+
else:
|
|
205
|
+
parts.append((banner + "\n", primary_style))
|
|
206
|
+
else:
|
|
207
|
+
parts.append((banner + "\n", primary_style))
|
|
208
|
+
|
|
209
|
+
# For ANSI theme, use "bold" (terminal foreground) instead of hex
|
|
210
|
+
accent: str | TStyle = "bold" if ansi else colors.primary
|
|
211
|
+
success_color: str = "bold green" if ansi else colors.success
|
|
212
|
+
|
|
213
|
+
editable_path = _get_editable_install_path()
|
|
214
|
+
if editable_path:
|
|
215
|
+
parts.extend([("Installed from: ", "dim"), (editable_path, "dim"), "\n"])
|
|
216
|
+
|
|
217
|
+
if self._project_name:
|
|
218
|
+
parts.extend(
|
|
219
|
+
[
|
|
220
|
+
(f"{get_glyphs().checkmark} ", success_color),
|
|
221
|
+
"LangSmith tracing: ",
|
|
222
|
+
]
|
|
223
|
+
)
|
|
224
|
+
if project_url:
|
|
225
|
+
link_style: str | TStyle
|
|
226
|
+
if ansi:
|
|
227
|
+
url = f"{project_url}?utm_source=docagent-cli"
|
|
228
|
+
link_style = TStyle(bold=True, link=url)
|
|
229
|
+
else:
|
|
230
|
+
link_style = TStyle(
|
|
231
|
+
foreground=TColor.parse(colors.primary),
|
|
232
|
+
link=f"{project_url}?utm_source=docagent-cli",
|
|
233
|
+
)
|
|
234
|
+
parts.append((f"'{self._project_name}'", link_style))
|
|
235
|
+
else:
|
|
236
|
+
parts.append((f"'{self._project_name}'", accent))
|
|
237
|
+
parts.append("\n")
|
|
238
|
+
|
|
239
|
+
if self._cli_thread_id:
|
|
240
|
+
if project_url:
|
|
241
|
+
thread_url = (
|
|
242
|
+
f"{project_url.rstrip('/')}/t/{self._cli_thread_id}"
|
|
243
|
+
"?utm_source=docagent-cli"
|
|
244
|
+
)
|
|
245
|
+
parts.extend(
|
|
246
|
+
[
|
|
247
|
+
("Thread: ", "dim"),
|
|
248
|
+
(self._cli_thread_id, TStyle(dim=True, link=thread_url)),
|
|
249
|
+
("\n", "dim"),
|
|
250
|
+
]
|
|
251
|
+
)
|
|
252
|
+
else:
|
|
253
|
+
parts.append((f"Thread: {self._cli_thread_id}\n", "dim"))
|
|
254
|
+
|
|
255
|
+
if self._mcp_tool_count > 0:
|
|
256
|
+
parts.append((f"{get_glyphs().checkmark} ", success_color))
|
|
257
|
+
label = "MCP tool" if self._mcp_tool_count == 1 else "MCP tools"
|
|
258
|
+
parts.append(f"Loaded {self._mcp_tool_count} {label}\n")
|
|
259
|
+
|
|
260
|
+
if self._failed:
|
|
261
|
+
parts.append(build_failure_footer(self._failure_error))
|
|
262
|
+
elif self._connecting:
|
|
263
|
+
parts.append(
|
|
264
|
+
build_connecting_footer(
|
|
265
|
+
resuming=self._resuming,
|
|
266
|
+
local_server=self._local_server,
|
|
267
|
+
)
|
|
268
|
+
)
|
|
269
|
+
else:
|
|
270
|
+
ready_color = "bold" if ansi else colors.primary
|
|
271
|
+
parts.append(build_welcome_footer(primary_color=ready_color, tip=self._tip))
|
|
272
|
+
return Content.assemble(*parts)
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def build_failure_footer(error: str) -> Content:
|
|
276
|
+
"""Build a footer shown when the server failed to start.
|
|
277
|
+
|
|
278
|
+
Args:
|
|
279
|
+
error: Error message describing the failure.
|
|
280
|
+
|
|
281
|
+
Returns:
|
|
282
|
+
Content with a persistent failure message.
|
|
283
|
+
"""
|
|
284
|
+
colors = theme.get_theme_colors()
|
|
285
|
+
return Content.assemble(
|
|
286
|
+
("\nServer failed to start: ", f"bold {colors.error}"),
|
|
287
|
+
(error, colors.error),
|
|
288
|
+
("\n", colors.error),
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
def build_connecting_footer(
|
|
293
|
+
*, resuming: bool = False, local_server: bool = False
|
|
294
|
+
) -> Content:
|
|
295
|
+
"""Build a footer shown while waiting for the server to connect.
|
|
296
|
+
|
|
297
|
+
Args:
|
|
298
|
+
resuming: Show `'Resuming...'` instead of any `'Connecting...'` variant.
|
|
299
|
+
local_server: Qualify the server as "local" in the connecting message.
|
|
300
|
+
|
|
301
|
+
Ignored when `resuming` is `True`.
|
|
302
|
+
|
|
303
|
+
Returns:
|
|
304
|
+
Content with a connecting status message.
|
|
305
|
+
"""
|
|
306
|
+
if resuming:
|
|
307
|
+
text = "\nResuming...\n"
|
|
308
|
+
elif local_server:
|
|
309
|
+
text = "\nConnecting to local server...\n"
|
|
310
|
+
else:
|
|
311
|
+
text = "\nConnecting to server...\n"
|
|
312
|
+
return Content.styled(text, "dim")
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def build_welcome_footer(
|
|
316
|
+
*, primary_color: str = theme.PRIMARY, tip: str | None = None
|
|
317
|
+
) -> Content:
|
|
318
|
+
"""Build the footer shown at the bottom of the welcome banner.
|
|
319
|
+
|
|
320
|
+
Includes a tip to help users discover features.
|
|
321
|
+
|
|
322
|
+
Args:
|
|
323
|
+
primary_color: Color string for the ready prompt.
|
|
324
|
+
|
|
325
|
+
Defaults to the module-level ANSI `PRIMARY` constant; widget callers
|
|
326
|
+
should pass the active theme's hex value.
|
|
327
|
+
tip: Tip text to display. When `None`, a random tip is selected.
|
|
328
|
+
|
|
329
|
+
Pass an explicit value to keep the tip stable across re-renders.
|
|
330
|
+
|
|
331
|
+
Returns:
|
|
332
|
+
Content with the ready prompt and a tip.
|
|
333
|
+
"""
|
|
334
|
+
if tip is None:
|
|
335
|
+
tip = random.choice(_TIPS) # noqa: S311
|
|
336
|
+
return Content.assemble(
|
|
337
|
+
("\nReady to code! What would you like to build?\n", primary_color),
|
|
338
|
+
(f"Tip: {tip}", "dim italic"),
|
|
339
|
+
)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Project Notes
|
|
2
|
+
|
|
3
|
+
This file is for tracking project-specific context as you work.
|
|
4
|
+
You can update this file to remember decisions, patterns, and context about this project.
|
|
5
|
+
|
|
6
|
+
## Architecture Notes
|
|
7
|
+
|
|
8
|
+
(Add notes about project structure, key files, patterns as you discover them)
|
|
9
|
+
|
|
10
|
+
## Decisions
|
|
11
|
+
|
|
12
|
+
(Track important decisions and their rationale)
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: docagent-cli
|
|
3
|
+
Version: 0.0.35
|
|
4
|
+
Summary: Terminal interface for Deep Agents - interactive AI agent with file operations, shell access, and sub-agent capabilities.
|
|
5
|
+
Project-URL: Homepage, https://docs.langchain.com/oss/python/docagent/overview
|
|
6
|
+
Project-URL: Documentation, https://reference.langchain.com/python/docagent/
|
|
7
|
+
Project-URL: Repository, https://github.com/langchain-ai/docagent
|
|
8
|
+
Project-URL: Issues, https://github.com/langchain-ai/docagent/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/langchain-ai/docagent/blob/main/libs/cli/CHANGELOG.md
|
|
10
|
+
Project-URL: Twitter, https://x.com/LangChain
|
|
11
|
+
Project-URL: Slack, https://www.langchain.com/join-community
|
|
12
|
+
Project-URL: Reddit, https://www.reddit.com/r/LangChain/
|
|
13
|
+
License: MIT
|
|
14
|
+
Keywords: agents,ai,cli,deep-agent,langchain,langgraph,llm,terminal
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Environment :: Console
|
|
17
|
+
Classifier: Intended Audience :: Developers
|
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
25
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
26
|
+
Classifier: Topic :: Terminals
|
|
27
|
+
Requires-Python: <4.0,>=3.11
|
|
28
|
+
Requires-Dist: aiosqlite<1.0.0,>=0.19.0
|
|
29
|
+
Requires-Dist: deepagents-acp>=0.0.4
|
|
30
|
+
Requires-Dist: deepagents==0.4.11
|
|
31
|
+
Requires-Dist: httpx<1.0.0,>=0.28.1
|
|
32
|
+
Requires-Dist: langchain-anthropic<2.0.0,>=1.4.0
|
|
33
|
+
Requires-Dist: langchain-google-genai<5.0.0,>=4.2.1
|
|
34
|
+
Requires-Dist: langchain-mcp-adapters<1.0.0,>=0.2.0
|
|
35
|
+
Requires-Dist: langchain-openai<2.0.0,>=1.1.8
|
|
36
|
+
Requires-Dist: langchain<2.0.0,>=1.2.13
|
|
37
|
+
Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.0.0
|
|
38
|
+
Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.15
|
|
39
|
+
Requires-Dist: langgraph-sdk<1.0.0,>=0.3.11
|
|
40
|
+
Requires-Dist: langgraph<2.0.0,>=1.1.2
|
|
41
|
+
Requires-Dist: langsmith[sandbox]>=0.7.7
|
|
42
|
+
Requires-Dist: markdownify<2.0.0,>=0.13.0
|
|
43
|
+
Requires-Dist: packaging>=23.0
|
|
44
|
+
Requires-Dist: pillow<13.0.0,>=10.0.0
|
|
45
|
+
Requires-Dist: prompt-toolkit<4.0.0,>=3.0.52
|
|
46
|
+
Requires-Dist: pyperclip<2.0.0,>=1.11.0
|
|
47
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
|
48
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
49
|
+
Requires-Dist: requests<3.0.0,>=2.0.0
|
|
50
|
+
Requires-Dist: rich<15.0.0,>=14.0.0
|
|
51
|
+
Requires-Dist: tavily-python<1.0.0,>=0.7.21
|
|
52
|
+
Requires-Dist: textual-autocomplete<5.0.0,>=3.0.0
|
|
53
|
+
Requires-Dist: textual-speedups<1.0.0,>=0.2.1
|
|
54
|
+
Requires-Dist: textual<9.0.0,>=8.0.0
|
|
55
|
+
Requires-Dist: tomli-w<2.0.0,>=1.0.0
|
|
56
|
+
Requires-Dist: uuid-utils<1.0.0,>=0.10.0
|
|
57
|
+
Provides-Extra: agentcore
|
|
58
|
+
Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.1; extra == 'agentcore'
|
|
59
|
+
Provides-Extra: all-providers
|
|
60
|
+
Requires-Dist: langchain-anthropic<2.0.0,>=1.4.0; extra == 'all-providers'
|
|
61
|
+
Requires-Dist: langchain-aws<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
62
|
+
Requires-Dist: langchain-baseten<1.0.0,>=0.1.9; extra == 'all-providers'
|
|
63
|
+
Requires-Dist: langchain-cohere<1.0.0,>=0.5.0; extra == 'all-providers'
|
|
64
|
+
Requires-Dist: langchain-deepseek<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
65
|
+
Requires-Dist: langchain-fireworks<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
66
|
+
Requires-Dist: langchain-google-genai<5.0.0,>=4.2.1; extra == 'all-providers'
|
|
67
|
+
Requires-Dist: langchain-google-vertexai<4.0.0,>=3.0.0; extra == 'all-providers'
|
|
68
|
+
Requires-Dist: langchain-groq<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
69
|
+
Requires-Dist: langchain-huggingface<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
70
|
+
Requires-Dist: langchain-ibm<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
71
|
+
Requires-Dist: langchain-litellm<2.0.0,>=0.6.1; extra == 'all-providers'
|
|
72
|
+
Requires-Dist: langchain-mistralai<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
73
|
+
Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
74
|
+
Requires-Dist: langchain-ollama<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
75
|
+
Requires-Dist: langchain-openai<2.0.0,>=1.1.8; extra == 'all-providers'
|
|
76
|
+
Requires-Dist: langchain-openrouter<2.0.0,>=0.2.0; extra == 'all-providers'
|
|
77
|
+
Requires-Dist: langchain-perplexity<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
78
|
+
Requires-Dist: langchain-xai<2.0.0,>=1.0.0; extra == 'all-providers'
|
|
79
|
+
Provides-Extra: all-sandboxes
|
|
80
|
+
Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.1; extra == 'all-sandboxes'
|
|
81
|
+
Requires-Dist: langchain-daytona>=0.0.4; extra == 'all-sandboxes'
|
|
82
|
+
Requires-Dist: langchain-modal>=0.0.2; extra == 'all-sandboxes'
|
|
83
|
+
Requires-Dist: langchain-runloop>=0.0.3; extra == 'all-sandboxes'
|
|
84
|
+
Provides-Extra: anthropic
|
|
85
|
+
Requires-Dist: langchain-anthropic<2.0.0,>=1.4.0; extra == 'anthropic'
|
|
86
|
+
Provides-Extra: baseten
|
|
87
|
+
Requires-Dist: langchain-baseten<1.0.0,>=0.1.9; extra == 'baseten'
|
|
88
|
+
Provides-Extra: bedrock
|
|
89
|
+
Requires-Dist: langchain-aws<2.0.0,>=1.0.0; extra == 'bedrock'
|
|
90
|
+
Provides-Extra: cohere
|
|
91
|
+
Requires-Dist: langchain-cohere<1.0.0,>=0.5.0; extra == 'cohere'
|
|
92
|
+
Provides-Extra: daytona
|
|
93
|
+
Requires-Dist: langchain-daytona>=0.0.4; extra == 'daytona'
|
|
94
|
+
Provides-Extra: deepseek
|
|
95
|
+
Requires-Dist: langchain-deepseek<2.0.0,>=1.0.0; extra == 'deepseek'
|
|
96
|
+
Provides-Extra: fireworks
|
|
97
|
+
Requires-Dist: langchain-fireworks<2.0.0,>=1.0.0; extra == 'fireworks'
|
|
98
|
+
Provides-Extra: google-genai
|
|
99
|
+
Requires-Dist: langchain-google-genai<5.0.0,>=4.2.1; extra == 'google-genai'
|
|
100
|
+
Provides-Extra: groq
|
|
101
|
+
Requires-Dist: langchain-groq<2.0.0,>=1.0.0; extra == 'groq'
|
|
102
|
+
Provides-Extra: huggingface
|
|
103
|
+
Requires-Dist: langchain-huggingface<2.0.0,>=1.0.0; extra == 'huggingface'
|
|
104
|
+
Provides-Extra: ibm
|
|
105
|
+
Requires-Dist: langchain-ibm<2.0.0,>=1.0.0; extra == 'ibm'
|
|
106
|
+
Provides-Extra: litellm
|
|
107
|
+
Requires-Dist: langchain-litellm<2.0.0,>=0.6.1; extra == 'litellm'
|
|
108
|
+
Provides-Extra: mistralai
|
|
109
|
+
Requires-Dist: langchain-mistralai<2.0.0,>=1.0.0; extra == 'mistralai'
|
|
110
|
+
Provides-Extra: modal
|
|
111
|
+
Requires-Dist: langchain-modal>=0.0.2; extra == 'modal'
|
|
112
|
+
Provides-Extra: nvidia
|
|
113
|
+
Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.0.0; extra == 'nvidia'
|
|
114
|
+
Provides-Extra: ollama
|
|
115
|
+
Requires-Dist: langchain-ollama<2.0.0,>=1.0.0; extra == 'ollama'
|
|
116
|
+
Provides-Extra: openai
|
|
117
|
+
Requires-Dist: langchain-openai<2.0.0,>=1.1.8; extra == 'openai'
|
|
118
|
+
Provides-Extra: openrouter
|
|
119
|
+
Requires-Dist: langchain-openrouter<2.0.0,>=0.2.0; extra == 'openrouter'
|
|
120
|
+
Provides-Extra: perplexity
|
|
121
|
+
Requires-Dist: langchain-perplexity<2.0.0,>=1.0.0; extra == 'perplexity'
|
|
122
|
+
Provides-Extra: runloop
|
|
123
|
+
Requires-Dist: langchain-runloop>=0.0.3; extra == 'runloop'
|
|
124
|
+
Provides-Extra: vertexai
|
|
125
|
+
Requires-Dist: langchain-google-vertexai<4.0.0,>=3.0.0; extra == 'vertexai'
|
|
126
|
+
Provides-Extra: xai
|
|
127
|
+
Requires-Dist: langchain-xai<2.0.0,>=1.0.0; extra == 'xai'
|
|
128
|
+
Description-Content-Type: text/markdown
|
|
129
|
+
|
|
130
|
+
# 🧠🤖 Deep Agents CLI
|
|
131
|
+
|
|
132
|
+
[](https://pypi.org/project/docagent-cli/#history)
|
|
133
|
+
[](https://opensource.org/licenses/MIT)
|
|
134
|
+
[](https://pypistats.org/packages/docagent-cli)
|
|
135
|
+
[](https://x.com/langchain)
|
|
136
|
+
|
|
137
|
+
<p align="center">
|
|
138
|
+
<img src="https://raw.githubusercontent.com/langchain-ai/docagent/main/libs/cli/images/cli.png" alt="Deep Agents CLI" width="600"/>
|
|
139
|
+
</p>
|
|
140
|
+
|
|
141
|
+
## Quick Install
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
curl -LsSf https://raw.githubusercontent.com/langchain-ai/docagent/main/libs/cli/scripts/install.sh | bash
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# With model provider extras
|
|
149
|
+
# OpenAI, Anthropic, and Gemini are included by default
|
|
150
|
+
DEEPAGENTS_EXTRAS="nvidia,ollama" curl -LsSf https://raw.githubusercontent.com/langchain-ai/docagent/main/libs/cli/scripts/install.sh | bash
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Or install directly with `uv`:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Install with chosen model providers
|
|
157
|
+
uv tool install 'docagent-cli[nvidia,ollama]'
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Run the CLI:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
docagent
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## 🤔 What is this?
|
|
167
|
+
|
|
168
|
+
The fastest way to start using Deep Agents. `docagent-cli` is a pre-built coding agent in your terminal — similar to Claude Code or Cursor — powered by any LLM that supports tool calling. One install command and you're up and running, no code required.
|
|
169
|
+
|
|
170
|
+
**What the CLI adds on top of the SDK:**
|
|
171
|
+
|
|
172
|
+
- **Interactive TUI** — rich terminal interface with streaming responses
|
|
173
|
+
- **Conversation resume** — pick up where you left off across sessions
|
|
174
|
+
- **Web search** — ground responses in live information
|
|
175
|
+
- **Remote sandboxes** — run code in isolated environments (LangSmith, AgentCore, Daytona, Modal, Runloop, & more)
|
|
176
|
+
- **Persistent memory** — agent remembers context across conversations
|
|
177
|
+
- **Custom skills** — extend the agent with your own slash commands
|
|
178
|
+
- **Headless mode** — run non-interactively for scripting and CI
|
|
179
|
+
- **Human-in-the-loop** — approve or reject tool calls before execution
|
|
180
|
+
|
|
181
|
+
## 📖 Resources
|
|
182
|
+
|
|
183
|
+
- **[CLI Documentation](https://docs.langchain.com/oss/python/docagent/cli/overview)**
|
|
184
|
+
- **[Changelog](https://github.com/langchain-ai/docagent/blob/main/libs/cli/CHANGELOG.md)**
|
|
185
|
+
- **[Source code](https://github.com/langchain-ai/docagent/tree/main/libs/cli)**
|
|
186
|
+
- **[Deep Agents SDK](https://github.com/langchain-ai/docagent)** — underlying agent harness
|
|
187
|
+
|
|
188
|
+
## 📕 Releases & Versioning
|
|
189
|
+
|
|
190
|
+
See our [Releases](https://docs.langchain.com/oss/python/release-policy) and [Versioning](https://docs.langchain.com/oss/python/versioning) policies.
|
|
191
|
+
|
|
192
|
+
## 💁 Contributing
|
|
193
|
+
|
|
194
|
+
As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
|
|
195
|
+
|
|
196
|
+
For detailed information on how to contribute, see the [Contributing Guide](https://docs.langchain.com/oss/python/contributing/overview).
|
|
197
|
+
|
|
198
|
+
## 🤝 Acknowledgements
|
|
199
|
+
|
|
200
|
+
This project was primarily inspired by Claude Code, and initially was largely an attempt to see what made Claude Code general purpose, and make it even more so.
|