@duckmind/deepquark-darwin-arm64 0.9.78 → 0.9.81

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.
Files changed (240) hide show
  1. package/.deepquark/skills/bundled/data-storytelling/SKILL.md +453 -0
  2. package/.deepquark/skills/bundled/docx/LICENSE.txt +30 -0
  3. package/.deepquark/skills/bundled/docx/SKILL.md +481 -0
  4. package/.deepquark/skills/bundled/docx/scripts/__init__.py +1 -0
  5. package/.deepquark/skills/bundled/docx/scripts/accept_changes.py +135 -0
  6. package/.deepquark/skills/bundled/docx/scripts/comment.py +318 -0
  7. package/.deepquark/skills/bundled/docx/scripts/office/helpers/__init__.py +0 -0
  8. package/.deepquark/skills/bundled/docx/scripts/office/helpers/merge_runs.py +199 -0
  9. package/.deepquark/skills/bundled/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  10. package/.deepquark/skills/bundled/docx/scripts/office/pack.py +159 -0
  11. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  12. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  13. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  14. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  15. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  16. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  17. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  18. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  19. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  20. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  21. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  22. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  23. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  24. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  25. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  26. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  27. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  28. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  29. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  30. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  31. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  32. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  33. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  34. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  35. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  36. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  37. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  38. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  39. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  40. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  41. package/.deepquark/skills/bundled/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  42. package/.deepquark/skills/bundled/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  43. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  44. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  45. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  46. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  47. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  48. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  49. package/.deepquark/skills/bundled/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  50. package/.deepquark/skills/bundled/docx/scripts/office/soffice.py +183 -0
  51. package/.deepquark/skills/bundled/docx/scripts/office/unpack.py +132 -0
  52. package/.deepquark/skills/bundled/docx/scripts/office/validate.py +111 -0
  53. package/.deepquark/skills/bundled/docx/scripts/office/validators/__init__.py +15 -0
  54. package/.deepquark/skills/bundled/docx/scripts/office/validators/base.py +847 -0
  55. package/.deepquark/skills/bundled/docx/scripts/office/validators/docx.py +446 -0
  56. package/.deepquark/skills/bundled/docx/scripts/office/validators/pptx.py +275 -0
  57. package/.deepquark/skills/bundled/docx/scripts/office/validators/redlining.py +247 -0
  58. package/.deepquark/skills/bundled/docx/scripts/templates/comments.xml +3 -0
  59. package/.deepquark/skills/bundled/docx/scripts/templates/commentsExtended.xml +3 -0
  60. package/.deepquark/skills/bundled/docx/scripts/templates/commentsExtensible.xml +3 -0
  61. package/.deepquark/skills/bundled/docx/scripts/templates/commentsIds.xml +3 -0
  62. package/.deepquark/skills/bundled/docx/scripts/templates/people.xml +3 -0
  63. package/.deepquark/skills/bundled/drawio-architect/SKILL.md +300 -0
  64. package/.deepquark/skills/bundled/drawio-architect/references/architecture-patterns.md +236 -0
  65. package/.deepquark/skills/bundled/drawio-architect/references/branding.md +180 -0
  66. package/.deepquark/skills/bundled/drawio-architect/references/cloud-icons.md +493 -0
  67. package/.deepquark/skills/bundled/drawio-architect/references/style-guide.md +268 -0
  68. package/.deepquark/skills/bundled/duckmind-deep-research/ARCHITECTURE_REVIEW.md +495 -0
  69. package/.deepquark/skills/bundled/duckmind-deep-research/AUTONOMY_VERIFICATION.md +420 -0
  70. package/.deepquark/skills/bundled/duckmind-deep-research/COMPETITIVE_ANALYSIS.md +179 -0
  71. package/.deepquark/skills/bundled/duckmind-deep-research/CONTEXT_OPTIMIZATION.md +293 -0
  72. package/.deepquark/skills/bundled/duckmind-deep-research/QUICK_START.md +167 -0
  73. package/.deepquark/skills/bundled/duckmind-deep-research/README.md +259 -0
  74. package/.deepquark/skills/bundled/duckmind-deep-research/SKILL.md +754 -0
  75. package/.deepquark/skills/bundled/duckmind-deep-research/WORD_PRECISION_AUDIT.md +476 -0
  76. package/.deepquark/skills/bundled/duckmind-deep-research/reference/methodology.md +384 -0
  77. package/.deepquark/skills/bundled/duckmind-deep-research/requirements.txt +10 -0
  78. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/citation_manager.py +177 -0
  79. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/md_to_html.py +330 -0
  80. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/research_engine.py +578 -0
  81. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/source_evaluator.py +292 -0
  82. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/validate_report.py +354 -0
  83. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/verify_citations.py +430 -0
  84. package/.deepquark/skills/bundled/duckmind-deep-research/scripts/verify_html.py +220 -0
  85. package/.deepquark/skills/bundled/duckmind-deep-research/templates/mckinsey_report_template.html +443 -0
  86. package/.deepquark/skills/bundled/duckmind-deep-research/templates/report_template.md +414 -0
  87. package/.deepquark/skills/bundled/duckmind-deep-research/tests/fixtures/invalid_report.md +27 -0
  88. package/.deepquark/skills/bundled/duckmind-deep-research/tests/fixtures/valid_report.md +114 -0
  89. package/.deepquark/skills/bundled/duckmind-multimodal/SKILL.md +171 -0
  90. package/.deepquark/skills/bundled/duckmind-multimodal/references/image-generation.md +131 -0
  91. package/.deepquark/skills/bundled/duckmind-multimodal/references/pdf-processing.md +120 -0
  92. package/.deepquark/skills/bundled/duckmind-transcribe/SKILL.md +70 -0
  93. package/.deepquark/skills/bundled/duckmind-transcribe/scripts/transcribe.sh +134 -0
  94. package/.deepquark/skills/bundled/excel-analysis/SKILL.md +247 -0
  95. package/.deepquark/skills/bundled/ge-payroll/SKILL.md +153 -0
  96. package/.deepquark/skills/bundled/ge-payroll/evals/evals.json +23 -0
  97. package/.deepquark/skills/bundled/ge-payroll/references/pain-points-improvements.md +106 -0
  98. package/.deepquark/skills/bundled/ge-payroll/references/process-detail.md +217 -0
  99. package/.deepquark/skills/bundled/ge-payroll/references/raci-stakeholders.md +85 -0
  100. package/.deepquark/skills/bundled/ge-payroll/references/timeline-mandays.md +64 -0
  101. package/.deepquark/skills/bundled/pdf/LICENSE.txt +30 -0
  102. package/.deepquark/skills/bundled/pdf/SKILL.md +314 -0
  103. package/.deepquark/skills/bundled/pdf/forms.md +294 -0
  104. package/.deepquark/skills/bundled/pdf/reference.md +612 -0
  105. package/.deepquark/skills/bundled/pdf/scripts/check_bounding_boxes.py +65 -0
  106. package/.deepquark/skills/bundled/pdf/scripts/check_fillable_fields.py +11 -0
  107. package/.deepquark/skills/bundled/pdf/scripts/convert_pdf_to_images.py +33 -0
  108. package/.deepquark/skills/bundled/pdf/scripts/create_validation_image.py +37 -0
  109. package/.deepquark/skills/bundled/pdf/scripts/extract_form_field_info.py +122 -0
  110. package/.deepquark/skills/bundled/pdf/scripts/extract_form_structure.py +115 -0
  111. package/.deepquark/skills/bundled/pdf/scripts/fill_fillable_fields.py +98 -0
  112. package/.deepquark/skills/bundled/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  113. package/.deepquark/skills/bundled/perplexity-search/SKILL.md +447 -0
  114. package/.deepquark/skills/bundled/perplexity-search/assets/.env.example +16 -0
  115. package/.deepquark/skills/bundled/perplexity-search/references/model_comparison.md +386 -0
  116. package/.deepquark/skills/bundled/perplexity-search/references/openrouter_setup.md +454 -0
  117. package/.deepquark/skills/bundled/perplexity-search/references/search_strategies.md +258 -0
  118. package/.deepquark/skills/bundled/perplexity-search/scripts/perplexity_search.py +277 -0
  119. package/.deepquark/skills/bundled/perplexity-search/scripts/setup_env.py +171 -0
  120. package/.deepquark/skills/bundled/pptx/LICENSE.txt +30 -0
  121. package/.deepquark/skills/bundled/pptx/SKILL.md +232 -0
  122. package/.deepquark/skills/bundled/pptx/editing.md +205 -0
  123. package/.deepquark/skills/bundled/pptx/pptxgenjs.md +420 -0
  124. package/.deepquark/skills/bundled/pptx/scripts/__init__.py +0 -0
  125. package/.deepquark/skills/bundled/pptx/scripts/add_slide.py +195 -0
  126. package/.deepquark/skills/bundled/pptx/scripts/clean.py +286 -0
  127. package/.deepquark/skills/bundled/pptx/scripts/office/helpers/__init__.py +0 -0
  128. package/.deepquark/skills/bundled/pptx/scripts/office/helpers/merge_runs.py +199 -0
  129. package/.deepquark/skills/bundled/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  130. package/.deepquark/skills/bundled/pptx/scripts/office/pack.py +159 -0
  131. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  132. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  133. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  134. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  135. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  136. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  137. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  138. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  139. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  140. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  141. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  142. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  143. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  144. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  145. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  146. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  147. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  148. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  149. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  150. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  151. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  152. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  153. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  154. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  155. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  156. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  157. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  158. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  159. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  160. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  161. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  162. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  163. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  164. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  165. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  166. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  167. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  168. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  169. package/.deepquark/skills/bundled/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  170. package/.deepquark/skills/bundled/pptx/scripts/office/soffice.py +183 -0
  171. package/.deepquark/skills/bundled/pptx/scripts/office/unpack.py +132 -0
  172. package/.deepquark/skills/bundled/pptx/scripts/office/validate.py +111 -0
  173. package/.deepquark/skills/bundled/pptx/scripts/office/validators/__init__.py +15 -0
  174. package/.deepquark/skills/bundled/pptx/scripts/office/validators/base.py +847 -0
  175. package/.deepquark/skills/bundled/pptx/scripts/office/validators/docx.py +446 -0
  176. package/.deepquark/skills/bundled/pptx/scripts/office/validators/pptx.py +275 -0
  177. package/.deepquark/skills/bundled/pptx/scripts/office/validators/redlining.py +247 -0
  178. package/.deepquark/skills/bundled/pptx/scripts/thumbnail.py +289 -0
  179. package/.deepquark/skills/bundled/text-to-pdf-automation/SKILL.md +91 -0
  180. package/.deepquark/skills/bundled/web-fetch/SKILL.md +56 -0
  181. package/.deepquark/skills/bundled/web-fetch/scripts/fetch.sh +54 -0
  182. package/.deepquark/skills/bundled/xlsx/LICENSE.txt +30 -0
  183. package/.deepquark/skills/bundled/xlsx/SKILL.md +292 -0
  184. package/.deepquark/skills/bundled/xlsx/scripts/office/helpers/__init__.py +0 -0
  185. package/.deepquark/skills/bundled/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  186. package/.deepquark/skills/bundled/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  187. package/.deepquark/skills/bundled/xlsx/scripts/office/pack.py +159 -0
  188. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  189. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  190. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  191. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  192. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  193. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  194. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  195. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  196. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  197. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  198. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  199. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  200. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  201. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  202. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  203. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  204. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  205. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  206. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  207. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  208. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  209. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  210. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  211. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  212. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  213. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  214. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  215. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  216. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  217. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  218. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  219. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  220. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  221. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  222. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  223. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  224. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  225. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  226. package/.deepquark/skills/bundled/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  227. package/.deepquark/skills/bundled/xlsx/scripts/office/soffice.py +183 -0
  228. package/.deepquark/skills/bundled/xlsx/scripts/office/unpack.py +132 -0
  229. package/.deepquark/skills/bundled/xlsx/scripts/office/validate.py +111 -0
  230. package/.deepquark/skills/bundled/xlsx/scripts/office/validators/__init__.py +15 -0
  231. package/.deepquark/skills/bundled/xlsx/scripts/office/validators/base.py +847 -0
  232. package/.deepquark/skills/bundled/xlsx/scripts/office/validators/docx.py +446 -0
  233. package/.deepquark/skills/bundled/xlsx/scripts/office/validators/pptx.py +275 -0
  234. package/.deepquark/skills/bundled/xlsx/scripts/office/validators/redlining.py +247 -0
  235. package/.deepquark/skills/bundled/xlsx/scripts/recalc.py +184 -0
  236. package/.deepquark/skills/bundled/youtube-downloader/SKILL.md +99 -0
  237. package/.deepquark/skills/bundled/youtube-downloader/scripts/download_video.py +145 -0
  238. package/.deepquark/skills/bundled/youtube-transcribe-skill/SKILL.md +116 -0
  239. package/bin/deepquark +0 -0
  240. package/package.json +4 -3
@@ -0,0 +1,384 @@
1
+ # Deep Research Methodology: 8-Phase Pipeline
2
+
3
+ ## Overview
4
+
5
+ This document contains the detailed methodology for conducting deep research. The 8 phases represent a comprehensive approach to gathering, verifying, and synthesizing information from multiple sources.
6
+
7
+ ---
8
+
9
+ ## Phase 1: SCOPE - Research Framing
10
+
11
+ **Objective:** Define research boundaries and success criteria
12
+
13
+ **Activities:**
14
+ 1. Decompose the question into core components
15
+ 2. Identify stakeholder perspectives
16
+ 3. Define scope boundaries (what's in/out)
17
+ 4. Establish success criteria
18
+ 5. List key assumptions to validate
19
+
20
+ **Ultrathink Application:** Use extended reasoning to explore multiple framings of the question before committing to scope.
21
+
22
+ **Output:** Structured scope document with research boundaries
23
+
24
+ ---
25
+
26
+ ## Phase 2: PLAN - Strategy Formulation
27
+
28
+ **Objective:** Create an intelligent research roadmap
29
+
30
+ **Activities:**
31
+ 1. Identify primary and secondary sources
32
+ 2. Map knowledge dependencies (what must be understood first)
33
+ 3. Create search query strategy with variants
34
+ 4. Plan triangulation approach
35
+ 5. Estimate time/effort per phase
36
+ 6. Define quality gates
37
+
38
+ **Graph-of-Thoughts:** Branch into multiple potential research paths, then converge on optimal strategy.
39
+
40
+ **Output:** Research plan with prioritized investigation paths
41
+
42
+ ---
43
+
44
+ ## Phase 3: RETRIEVE - Parallel Information Gathering
45
+
46
+ **Objective:** Systematically collect information from multiple sources using parallel execution for maximum speed
47
+
48
+ **CRITICAL: Execute ALL searches in parallel using a single message with multiple tool calls**
49
+
50
+ ### Query Decomposition Strategy
51
+
52
+ Before launching searches, decompose the research question into 5-10 independent search angles:
53
+
54
+ 1. **Core topic (semantic search)** - Meaning-based exploration of main concept
55
+ 2. **Technical details (keyword search)** - Specific terms, APIs, implementations
56
+ 3. **Recent developments (date-filtered)** - What's new in 2024-2025
57
+ 4. **Academic sources (domain-specific)** - Papers, research, formal analysis
58
+ 5. **Alternative perspectives (comparison)** - Competing approaches, criticisms
59
+ 6. **Statistical/data sources** - Quantitative evidence, metrics, benchmarks
60
+ 7. **Industry analysis** - Commercial applications, market trends
61
+ 8. **Critical analysis/limitations** - Known problems, failure modes, edge cases
62
+
63
+ ### Parallel Execution Protocol
64
+
65
+ **Step 1: Launch ALL searches concurrently (single message)**
66
+
67
+ **CRITICAL: Use correct tool and parameters to avoid errors**
68
+
69
+ Choose ONE search approach per research session:
70
+
71
+ **Option A: Use WebSearch (built-in, no MCP required)**
72
+ - Standard web search with simple query string
73
+ - Parameters: `query` (required)
74
+ - Optional: `allowed_domains`, `blocked_domains`
75
+ - Example: `WebSearch(query="quantum computing 2025")`
76
+
77
+ **Option B: Use Exa MCP (if available, more powerful)**
78
+ - Advanced semantic + keyword search
79
+ - Tool name: `mcp__Exa__exa_search`
80
+ - Parameters: `query` (required), `type` (auto/neural/keyword), `num_results`, `start_published_date`, `include_domains`
81
+ - Example: `mcp__Exa__exa_search(query="quantum computing", type="neural", num_results=10)`
82
+
83
+ **NEVER mix parameter styles** - this causes "Invalid tool parameters" errors.
84
+
85
+ **Step 2: Spawn parallel deep-dive agents**
86
+
87
+ Use Task tool with general-purpose agents (3-5 agents) for:
88
+ - Academic paper analysis (PDFs, detailed extraction)
89
+ - Documentation deep dives (technical specs, API docs)
90
+ - Repository analysis (code examples, implementations)
91
+ - Specialized domain research (requires multi-step investigation)
92
+
93
+ **Example parallel execution (using WebSearch):**
94
+ ```
95
+ [Single message with multiple tool calls]
96
+ - WebSearch(query="quantum computing 2025 state of the art")
97
+ - WebSearch(query="quantum computing limitations challenges")
98
+ - WebSearch(query="quantum computing commercial applications 2024-2025")
99
+ - WebSearch(query="quantum computing vs classical comparison")
100
+ - WebSearch(query="quantum error correction research", allowed_domains=["arxiv.org", "scholar.google.com"])
101
+ - Task(subagent_type="general-purpose", description="Analyze quantum computing papers", prompt="Deep dive into quantum computing academic papers from 2024-2025, extract key findings and methodologies")
102
+ - Task(subagent_type="general-purpose", description="Industry analysis", prompt="Analyze quantum computing industry reports and market data, identify commercial applications")
103
+ - Task(subagent_type="general-purpose", description="Technical challenges", prompt="Extract technical limitations and challenges from quantum computing research")
104
+ ```
105
+
106
+ **Example parallel execution (using Exa MCP - if available):**
107
+ ```
108
+ [Single message with multiple tool calls]
109
+ - mcp__Exa__exa_search(query="quantum computing state of the art", type="neural", num_results=10, start_published_date="2024-01-01")
110
+ - mcp__Exa__exa_search(query="quantum computing limitations", type="keyword", num_results=10)
111
+ - mcp__Exa__exa_search(query="quantum computing commercial", type="auto", num_results=10, start_published_date="2024-01-01")
112
+ - mcp__Exa__exa_search(query="quantum error correction", type="neural", num_results=10, include_domains=["arxiv.org"])
113
+ - Task(subagent_type="general-purpose", description="Academic analysis", prompt="Analyze quantum computing academic papers")
114
+ ```
115
+
116
+ **Step 3: Collect and organize results**
117
+
118
+ As results arrive:
119
+ 1. Extract key passages with source metadata (title, URL, date, credibility)
120
+ 2. Track information gaps that emerge
121
+ 3. Follow promising tangents with additional targeted searches
122
+ 4. Maintain source diversity (mix academic, industry, news, technical docs)
123
+ 5. Monitor for quality threshold (see FFS pattern below)
124
+
125
+ ### First Finish Search (FFS) Pattern
126
+
127
+ **Adaptive completion based on quality threshold:**
128
+
129
+ **Quality gate:** Proceed to Phase 4 when FIRST threshold reached:
130
+ - **Quick mode:** 10+ sources with avg credibility >60/100 OR 2 minutes elapsed
131
+ - **Standard mode:** 15+ sources with avg credibility >60/100 OR 5 minutes elapsed
132
+ - **Deep mode:** 25+ sources with avg credibility >70/100 OR 10 minutes elapsed
133
+ - **UltraDeep mode:** 30+ sources with avg credibility >75/100 OR 15 minutes elapsed
134
+
135
+ **Continue background searches:**
136
+ - If threshold reached early, continue remaining parallel searches in background
137
+ - Additional sources used in Phase 5 (SYNTHESIZE) for depth and diversity
138
+ - Allows fast progression without sacrificing thoroughness
139
+
140
+ ### Quality Standards
141
+
142
+ **Source diversity requirements:**
143
+ - Minimum 3 source types (academic, industry, news, technical docs)
144
+ - Temporal diversity (mix of recent 2024-2025 + foundational older sources)
145
+ - Perspective diversity (proponents + critics + neutral analysis)
146
+ - Geographic diversity (not just US sources)
147
+
148
+ **Credibility tracking:**
149
+ - Score each source 0-100 using source_evaluator.py
150
+ - Flag low-credibility sources (<40) for additional verification
151
+ - Prioritize high-credibility sources (>80) for core claims
152
+
153
+ **Techniques:**
154
+ - Use WebSearch for current information (primary tool)
155
+ - Use WebFetch for deep dives into specific sources (secondary)
156
+ - Use Exa search (via WebSearch with type="neural") for semantic exploration
157
+ - Use Grep/Read for local documentation
158
+ - Execute code for computational analysis (when needed)
159
+ - Use Task tool to spawn parallel retrieval agents (3-5 agents)
160
+
161
+ **Output:** Organized information repository with source tracking, credibility scores, and coverage map
162
+
163
+ ---
164
+
165
+ ## Phase 4: TRIANGULATE - Cross-Reference Verification
166
+
167
+ **Objective:** Validate information across multiple independent sources
168
+
169
+ **Activities:**
170
+ 1. Identify claims requiring verification
171
+ 2. Cross-reference facts across 3+ sources
172
+ 3. Flag contradictions or uncertainties
173
+ 4. Assess source credibility
174
+ 5. Note consensus vs. debate areas
175
+ 6. Document verification status per claim
176
+
177
+ **Quality Standards:**
178
+ - Core claims must have 3+ independent sources
179
+ - Flag any single-source information
180
+ - Note recency of information
181
+ - Identify potential biases
182
+
183
+ **Output:** Verified fact base with confidence levels
184
+
185
+ ---
186
+
187
+ ## Phase 4.5: OUTLINE REFINEMENT - Dynamic Evolution (WebWeaver 2025)
188
+
189
+ **Objective:** Adapt research direction based on evidence discovered
190
+
191
+ **Problem Solved:** Prevents "locked-in" research when evidence points to different conclusions or uncovers more important angles than initially planned.
192
+
193
+ **When to Execute:**
194
+ - **Standard/Deep/UltraDeep modes only** (Quick mode skips this)
195
+ - After Phase 4 (TRIANGULATE) completes
196
+ - Before Phase 5 (SYNTHESIZE)
197
+
198
+ **Activities:**
199
+
200
+ 1. **Review Initial Scope vs. Actual Findings**
201
+ - Compare Phase 1 scope with Phase 3-4 discoveries
202
+ - Identify unexpected patterns or contradictions
203
+ - Note underexplored angles that emerged as critical
204
+ - Flag overexplored areas that proved less important
205
+
206
+ 2. **Evaluate Outline Adaptation Need**
207
+
208
+ **Signals for adaptation (ANY triggers refinement):**
209
+ - Major findings contradict initial assumptions
210
+ - Evidence reveals more important angle than originally scoped
211
+ - Critical subtopic emerged that wasn't in original plan
212
+ - Original research question was too broad/narrow based on evidence
213
+ - Sources consistently discuss aspects not in initial outline
214
+
215
+ **Signals to keep current outline:**
216
+ - Evidence aligns with initial scope
217
+ - All key angles adequately covered
218
+ - No major gaps or surprises
219
+
220
+ 3. **Refine Outline (if needed)**
221
+
222
+ **Update structure to reflect evidence:**
223
+ - Add sections for unexpected but important findings
224
+ - Demote/remove sections with insufficient evidence
225
+ - Reorder sections based on evidence strength and importance
226
+ - Adjust scope boundaries based on what's actually discoverable
227
+
228
+ **Example adaptation:**
229
+ ```
230
+ Original outline:
231
+ 1. Introduction
232
+ 2. Technical Architecture
233
+ 3. Performance Benchmarks
234
+ 4. Conclusion
235
+
236
+ Refined after Phase 4 (evidence revealed security as critical):
237
+ 1. Introduction
238
+ 2. Technical Architecture
239
+ 3. **Security Vulnerabilities (NEW - major finding)**
240
+ 4. Performance Benchmarks (demoted - less critical than expected)
241
+ 5. **Real-World Failure Modes (NEW - pattern emerged)**
242
+ 6. Synthesis & Recommendations
243
+ ```
244
+
245
+ 4. **Targeted Gap Filling (if major gaps found)**
246
+
247
+ If outline refinement reveals critical knowledge gaps:
248
+ - Launch 2-3 targeted searches for newly identified angles
249
+ - Quick retrieval only (don't restart full Phase 3)
250
+ - Time-box to 2-5 minutes
251
+ - Update triangulation for new evidence only
252
+
253
+ 5. **Document Adaptation Rationale**
254
+
255
+ Record in methodology appendix:
256
+ - What changed in outline
257
+ - Why it changed (evidence-driven reasons)
258
+ - What additional research was conducted (if any)
259
+
260
+ **Quality Standards:**
261
+ - Adaptation must be evidence-driven (cite specific sources that prompted change)
262
+ - No more than 50% outline restructuring (if more needed, scope was severely mis scoped)
263
+ - Retain original research question core (don't drift into different topic entirely)
264
+ - New sections must have supporting evidence already gathered
265
+
266
+ **Output:** Refined outline that accurately reflects evidence landscape, ready for synthesis
267
+
268
+ **Anti-Pattern Warning:**
269
+ - ❌ DON'T adapt outline based on speculation or "what would be interesting"
270
+ - ❌ DON'T add sections without supporting evidence already in hand
271
+ - ❌ DON'T completely abandon original research question
272
+ - ✅ DO adapt when evidence clearly indicates better structure
273
+ - ✅ DO document rationale for changes
274
+ - ✅ DO stay within original topic scope
275
+
276
+ ---
277
+
278
+ ## Phase 5: SYNTHESIZE - Deep Analysis
279
+
280
+ **Objective:** Connect insights and generate novel understanding
281
+
282
+ **Activities:**
283
+ 1. Identify patterns across sources
284
+ 2. Map relationships between concepts
285
+ 3. Generate insights beyond source material
286
+ 4. Create conceptual frameworks
287
+ 5. Build argument structures
288
+ 6. Develop evidence hierarchies
289
+
290
+ **Ultrathink Integration:** Use extended reasoning to explore non-obvious connections and second-order implications.
291
+
292
+ **Output:** Synthesized understanding with insight generation
293
+
294
+ ---
295
+
296
+ ## Phase 6: CRITIQUE - Quality Assurance
297
+
298
+ **Objective:** Rigorously evaluate research quality
299
+
300
+ **Activities:**
301
+ 1. Review for logical consistency
302
+ 2. Check citation completeness
303
+ 3. Identify gaps or weaknesses
304
+ 4. Assess balance and objectivity
305
+ 5. Verify claims against sources
306
+ 6. Test alternative interpretations
307
+
308
+ **Red Team Questions:**
309
+ - What's missing?
310
+ - What could be wrong?
311
+ - What alternative explanations exist?
312
+ - What biases might be present?
313
+ - What counterfactuals should be considered?
314
+
315
+ **Output:** Critique report with improvement recommendations
316
+
317
+ ---
318
+
319
+ ## Phase 7: REFINE - Iterative Improvement
320
+
321
+ **Objective:** Address gaps and strengthen weak areas
322
+
323
+ **Activities:**
324
+ 1. Conduct additional research for gaps
325
+ 2. Strengthen weak arguments
326
+ 3. Add missing perspectives
327
+ 4. Resolve contradictions
328
+ 5. Enhance clarity
329
+ 6. Verify revised content
330
+
331
+ **Output:** Strengthened research with addressed deficiencies
332
+
333
+ ---
334
+
335
+ ## Phase 8: PACKAGE - Report Generation
336
+
337
+ **Objective:** Deliver professional, actionable research
338
+
339
+ **Activities:**
340
+ 1. Structure report with clear hierarchy
341
+ 2. Write executive summary
342
+ 3. Develop detailed sections
343
+ 4. Create visualizations (tables, diagrams)
344
+ 5. Compile full bibliography
345
+ 6. Add methodology appendix
346
+
347
+ **Output:** Complete research report ready for use
348
+
349
+ ---
350
+
351
+ ## Advanced Features
352
+
353
+ ### Graph-of-Thoughts Reasoning
354
+
355
+ Rather than linear thinking, branch into multiple reasoning paths:
356
+ - Explore alternative framings in parallel
357
+ - Pursue tangential leads that might be relevant
358
+ - Merge insights from different branches
359
+ - Backtrack and revise as new information emerges
360
+
361
+ ### Parallel Agent Deployment
362
+
363
+ Use Task tool to spawn sub-agents for:
364
+ - Parallel source retrieval
365
+ - Independent verification paths
366
+ - Competing hypothesis evaluation
367
+ - Specialized domain analysis
368
+
369
+ ### Adaptive Depth Control
370
+
371
+ Automatically adjust research depth based on:
372
+ - Information complexity
373
+ - Source availability
374
+ - Time constraints
375
+ - Confidence levels
376
+
377
+ ### Citation Intelligence
378
+
379
+ Smart citation management:
380
+ - Track provenance of every claim
381
+ - Link to original sources
382
+ - Assess source credibility
383
+ - Handle conflicting sources
384
+ - Generate proper bibliographies
@@ -0,0 +1,10 @@
1
+ # Deep Research Skill Dependencies
2
+ # These are standard library modules, no external dependencies needed for core functionality
3
+
4
+ # Optional: For enhanced features, uncomment if needed
5
+ # requests>=2.31.0 # For web fetching
6
+ # beautifulsoup4>=4.12.0 # For HTML parsing
7
+ # markdownify>=0.11.6 # For HTML to markdown conversion
8
+ # numpy>=1.24.0 # For statistical analysis
9
+ # pandas>=2.0.0 # For data analysis
10
+ # networkx>=3.1 # For knowledge graph analysis
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Citation Management System
4
+ Tracks sources, generates citations, and maintains bibliography
5
+ """
6
+
7
+ from dataclasses import dataclass, field
8
+ from typing import List, Dict, Optional
9
+ from datetime import datetime
10
+ from urllib.parse import urlparse
11
+ import hashlib
12
+
13
+
14
+ @dataclass
15
+ class Citation:
16
+ """Represents a single citation"""
17
+ id: str
18
+ title: str
19
+ url: str
20
+ authors: Optional[List[str]] = None
21
+ publication_date: Optional[str] = None
22
+ retrieved_date: str = field(default_factory=lambda: datetime.now().strftime('%Y-%m-%d'))
23
+ source_type: str = "web" # web, academic, documentation, book, paper
24
+ doi: Optional[str] = None
25
+ citation_count: int = 0
26
+
27
+ def to_apa(self, index: int) -> str:
28
+ """Generate APA format citation"""
29
+ author_str = ""
30
+ if self.authors:
31
+ if len(self.authors) == 1:
32
+ author_str = f"{self.authors[0]}."
33
+ elif len(self.authors) == 2:
34
+ author_str = f"{self.authors[0]} & {self.authors[1]}."
35
+ else:
36
+ author_str = f"{self.authors[0]} et al."
37
+
38
+ date_str = f"({self.publication_date})" if self.publication_date else "(n.d.)"
39
+
40
+ return f"[{index}] {author_str} {date_str}. {self.title}. Retrieved {self.retrieved_date}, from {self.url}"
41
+
42
+ def to_inline(self, index: int) -> str:
43
+ """Generate inline citation [index]"""
44
+ return f"[{index}]"
45
+
46
+ def to_markdown(self, index: int) -> str:
47
+ """Generate markdown link format"""
48
+ return f"[{index}] [{self.title}]({self.url}) (Retrieved: {self.retrieved_date})"
49
+
50
+
51
+ class CitationManager:
52
+ """Manages citations and bibliography"""
53
+
54
+ def __init__(self):
55
+ self.citations: Dict[str, Citation] = {}
56
+ self.citation_order: List[str] = []
57
+
58
+ def add_source(
59
+ self,
60
+ url: str,
61
+ title: str,
62
+ authors: Optional[List[str]] = None,
63
+ publication_date: Optional[str] = None,
64
+ source_type: str = "web",
65
+ doi: Optional[str] = None
66
+ ) -> str:
67
+ """Add a source and return its citation ID"""
68
+ # Generate unique ID based on URL
69
+ citation_id = hashlib.md5(url.encode()).hexdigest()[:8]
70
+
71
+ if citation_id not in self.citations:
72
+ citation = Citation(
73
+ id=citation_id,
74
+ title=title,
75
+ url=url,
76
+ authors=authors,
77
+ publication_date=publication_date,
78
+ source_type=source_type,
79
+ doi=doi
80
+ )
81
+ self.citations[citation_id] = citation
82
+ self.citation_order.append(citation_id)
83
+
84
+ # Increment citation count
85
+ self.citations[citation_id].citation_count += 1
86
+
87
+ return citation_id
88
+
89
+ def get_citation_number(self, citation_id: str) -> Optional[int]:
90
+ """Get the citation number for a given ID"""
91
+ try:
92
+ return self.citation_order.index(citation_id) + 1
93
+ except ValueError:
94
+ return None
95
+
96
+ def get_inline_citation(self, citation_id: str) -> str:
97
+ """Get inline citation marker [n]"""
98
+ num = self.get_citation_number(citation_id)
99
+ return f"[{num}]" if num else "[?]"
100
+
101
+ def generate_bibliography(self, style: str = "markdown") -> str:
102
+ """Generate full bibliography"""
103
+ if style == "markdown":
104
+ lines = ["## Bibliography\n"]
105
+ for i, citation_id in enumerate(self.citation_order, 1):
106
+ citation = self.citations[citation_id]
107
+ lines.append(citation.to_markdown(i))
108
+ return "\n".join(lines)
109
+
110
+ elif style == "apa":
111
+ lines = ["## Bibliography\n"]
112
+ for i, citation_id in enumerate(self.citation_order, 1):
113
+ citation = self.citations[citation_id]
114
+ lines.append(citation.to_apa(i))
115
+ return "\n".join(lines)
116
+
117
+ return "Unsupported citation style"
118
+
119
+ def get_statistics(self) -> Dict[str, any]:
120
+ """Get citation statistics"""
121
+ return {
122
+ 'total_sources': len(self.citations),
123
+ 'total_citations': sum(c.citation_count for c in self.citations.values()),
124
+ 'source_types': self._count_by_type(),
125
+ 'most_cited': self._get_most_cited(5),
126
+ 'uncited': self._get_uncited()
127
+ }
128
+
129
+ def _count_by_type(self) -> Dict[str, int]:
130
+ """Count sources by type"""
131
+ counts = {}
132
+ for citation in self.citations.values():
133
+ counts[citation.source_type] = counts.get(citation.source_type, 0) + 1
134
+ return counts
135
+
136
+ def _get_most_cited(self, n: int = 5) -> List[tuple]:
137
+ """Get most cited sources"""
138
+ sorted_citations = sorted(
139
+ self.citations.items(),
140
+ key=lambda x: x[1].citation_count,
141
+ reverse=True
142
+ )
143
+ return [(self.get_citation_number(cid), c.title, c.citation_count)
144
+ for cid, c in sorted_citations[:n]]
145
+
146
+ def _get_uncited(self) -> List[str]:
147
+ """Get sources that were added but never cited"""
148
+ return [c.title for c in self.citations.values() if c.citation_count == 0]
149
+
150
+ def export_to_file(self, filepath: str, style: str = "markdown"):
151
+ """Export bibliography to file"""
152
+ with open(filepath, 'w') as f:
153
+ f.write(self.generate_bibliography(style))
154
+
155
+
156
+ # Example usage
157
+ if __name__ == '__main__':
158
+ manager = CitationManager()
159
+
160
+ # Add sources
161
+ id1 = manager.add_source(
162
+ url="https://example.com/article1",
163
+ title="Understanding Deep Research",
164
+ authors=["Smith, J.", "Johnson, K."],
165
+ publication_date="2025"
166
+ )
167
+
168
+ id2 = manager.add_source(
169
+ url="https://example.com/article2",
170
+ title="AI Research Methods",
171
+ source_type="academic"
172
+ )
173
+
174
+ # Use citations
175
+ print(f"Inline citation: {manager.get_inline_citation(id1)}")
176
+ print(f"\nBibliography:\n{manager.generate_bibliography()}")
177
+ print(f"\nStatistics:\n{manager.get_statistics()}")